Perficient IBM blog

Subscribe to Emails

Subscribe to RSS feed


DataPower XC 10 seamless integration with DataPower XI 52

The need for cache is inevitable in the world of enterprise-level applications. There are boundless use cases with different combinations ranging from the data type specific cache to application specific cache. We have seen a wide variety of caching technology realizations from emerging technologies like Redis (in reality, it is more than a cache) to time-proven, simple DynaCache, which serves our purpose of caching at different levels.

IBM offers mainly two solutions for cache:

  1. IBM WebSphere DataPower XC10 Appliance
  2. WebSphere eXtreme Scale.

XC 10 can be considered a simplified version of the eXtreme scale, which can be used for HTTP session management, extension of DynaCache and also as a side cache for memory-intensive applications like IBM WebSphere Portal.

I was inspired by our recent successful implementation of DataPower XC 10 with DataPower XI 52 and WebSphere Portal for one of my clients, where the use case was to cache huge data objects ranging from 2 MB to 30 MB. We designed a tutorial to help with complete end-to-end to setup and implemented a use case to experience the power and ease of setup of XC 10 device.

Read the rest of this post »

How Will IBM Utilize Silverpop, Unica and Xtify?

Michael Porter, Principal at Perficient, recently wrote a blog post discussing how Silverpop, IBM’s latest acquisition, fits into IBM’s strategy of reaching the digital marketer.

The enterprise marketing management space has been heating up for the past couple years.  IBM, Salesforce, Oracle, Adobe, and Microsoft have all made one or more acquisitions here and it hasn’t stopped.  Just a few days ago, IBM bought Silverpop, an Atlanta based cloud marketing automation player with customers in both the B2B and B2C space.

There is an overlap of features among Silverpop, Unica and Xtify, but Michael lays out how each platform will be maximized within IBM. To read Michael’s full article, click here.

Websphere Commerce: Returns and Refunds

Websphere commerce have Out of the box functionality of handling refunds on cancellation of an order and also returns. Here i am discussing technical details of handling returns and refunds of partial order, Like if you want to cancel only 2 items out of 50 items you ordered. Let’s say you have external Order management system tide up with websphere commerce, How can we handle returns and refunds.

This external system should communicate with services. Below are the steps one has to follow for accomplising this task.

  1. Lets determince the structure of the request. Websphere commerce provided order status service to communicate. Structure of order status can be found in Update_WCS_OrderStatus_30.dtd .
  2. Once we receive request XML that follows Update_WCS_OrderStatus_30 structure. WC will invoke command implementation for OrderStatusCmd.
  3. Create a custom implementation say XOrderStatusCmdImpl and update CMDREG accordingly, Ensure XOrderStatusCmdImpl extends OrderStatusCmdImpl.
  4. This setting will ensure order will sufficient for getting the request to the our controller.
  5. Few key points to remember is, Get refund policy id and refund payment method id
  6. We can get all the values from the request xml by calling  super.getOsProp(). This will give return TypeProperties.
  7. How can we map between XML and TypeProperties? That can be done by going through sys_template.xml
  8. Ensure order status is ‘X’. This is status for cancellation of order.
  9. Execute ReturnItemAddCmd
  10. Execute ReturnPrepareCmd. You can get Return item id from ReturnItemAddCmd (ex: returnItemAddCmd.getResponseProperties().getString(RMAItemId_0))
  11. If you want to update RMA items and RMA Item component use RMAItemAccessBean and RMAItemComponentAccessBean. I used RMAItemComponentAccessBean for setting shipment should recieve to ‘N’.
  12. Create RMA entry by calling RMAAccessBean. RMA should have total amount to credit and member id
  13. Now execute ReturnProcessCmd. finally do call super.doProcess(typedproperty). This will take care of changing the order status to X

Above steps will only prepare the data ready for processing the returns and refunds. You need to configure already exisitng scheduler job ReturnCreditAndCloseScan

The above steps will allow you to return partial order and refund partially.


Posted in Commerce

Implementing Omni-Channel Marketing Strategies

Managing large quantities of data and processes can quickly become overwhelming. In a recent blog post, Mark Polly, Director at Perficient, discussed five key strategies for omni-channel marketing.

IBM recently conducted a webinar titled “5 Key Strategies for Omni-Channel Marketing” in which they discussed the following strategies:

  1. Collect data that helps create customer profiles
  2. Analyze that customer data to find actionable insights
  3. Decide how to allocate your budget across the right channels to reach the right audiences
  4. Manage the interactions with customers across the channels
  5. Optimize your messages, offers, and capture reactions to feed the data collection process

To learn more about each of these key strategies, read Mark’s full blog post here.




Posted in Portals and Collaboration

Keeping up with the Fixes

A huge number of my projects are platform upgrades, and every time I ask my customers why they haven’t applied a single published fix for any of the products involved since the system was built (sometimes upwards of 7 years ago). They usually reply with a variation on the old trope, “If it ain’t broke, don’t fix it!” I of course launch into a sermon about the ways regular maintenance will save them from the pain of multi-version upgrades in the future, protect their data and users and save money by avoiding extended support contracts (see ATMs still run Windows XP).


Reading a recent Flash (Alert) from IBM brought this perennial conversation into clear focus. I think it’s a perfect example of why keeping up with the patches is absolutely critical. IBM’s Enterprise Content Management products, as a whole, have Java Applets in their front-end applications for viewing and annotating images and a bunch of workflow features (design, administration, configuration, simulation, etc.). These Applets rely on the user having the Oracle JRE installed on their workstation, which, of late, has been a moving target in terms of security requirements. The latest versions (1.7.0_51 and above) will block most of IBM’s Java Applets because they were developed to older standards. As the Flash indicates, a series of Fix Packs and Interim Fixes have been released to address this issue.

Read the rest of this post »

JMeter Testing for a Datapower ESB Implementation – Part 1


When considering testing a Datapower implementation the first tool that is generally mentioned SoapUI. While this is a good tool for a particular aspect of testing, you may need to expand your testing capabilities to include a broader set of concerns. In this blog I’d like to consider an architectural scenario in which I will need to cover a range of architectural patterns.

The Architectural Components

Datapower deployed as a single component in in the architecture provides very little in terms of the need for a testing a solution. For this example I’ll consider the following architecture. A Datapower XI52 deployed as an ESB. Websphere MQ for protocol mediation, LADP for authentication and authorization. The client will use RESTful calls with transformation between XML and JSON. An FTP server has also been added to the scenario. O’yes the webservce is Soap based. Finally, I have two Datapower application domains, what I’ll call DEV-DEV deployed on Port 5400 and DEV deployed on Port 5420. This could also be DEV to QA or staging. This basic architectural configuration will cover the following Datapower patterns;  MQ to MQ; HTTP to MQ; MQ to HTTP; Datapower LDAP integration; Datapower FTP Integration; Many to Many Transformation; Soap WS integration; RESTfull to Soap integration;

The Test Plan

I’m in the early development phase of my project, and I need to setup some unit tests;

1. I want to place a RESTful GET call to the appliance and evaluate the Response
2. I want PUT & GET  messages from Queue’s
3. I want to be able to either a) use or b) by-pass the Datapower ESB to get a file from the FTP-Server
4. I want to call the Active Directory and get back the DN
5. Call A webservice operation using HTTP transport
6. I’d like to do some preliminary load testing

Read the rest of this post »

Creating Custom/User Defined Node in WMB/IIB

Why User Defined Node?
At one of our Large healthcare client, there were multiple SIEMENS Invision Interfaces which use SNA (Systems Network Architecture) for inbound and outbound communication.
SNA is a set of protocols and services enabling communication between host computers (Mainframes) and other servers such as Windows/AIX/Linux.
Websphere Message Broker does not have predefined nodes for SNA communication, and therefore custom nodes were created for SNA Inbound and outbound communication from Message Broker.
(Plugins are written using CPI-C for Java).

Steps for User Defined Node Creation:
1. Create a User Defined Node Project (File -> New -> User-Defined Node Project)
2. If the node falls into existing set of categories select that, otherwise create a new Category. This drives where the node will be displayed in your Toolkit Pallet.



3. Create a new User Defined node, select whether you want to implement it as Subflow or implement it in Java or C.


4. You can choose specific icons (This has be a gif file with size 16×16 or 32×32)
5. Add appropriate Terminals and Properties.
6. Write your code in implementation project. Node name declaration connnects the implementation project with actual node project.
public static String getNodeName() {
return “SNAInputNode”;

Installation of Nodes:
1. Export the node project as User-defined node plug-in
2. The node project needs to be extracted in the directory TOOLKIT_INSTALL\plugins
3. Export the implementaion project as a Jar file
4. Implementation jar file needs to be placed to following directories.
5. In case you change the implementation code, jar file needs to be exported and replaced in the directories mentioned in #4. For the code change to reflect you will have to restart the execution group which is using this node.

1. For using the WMB exception framework you should always have ‘catch’ and ‘failure’ terminals to all nodes. Names of these nodes are case sensitive, they should be completely in lower case.
2. If you are writing code for inbound node which is listening on input make sure it releases the control to WMB at certain intervals using TIMEOUT, otherwise you will not be able to stop the message flow.


Posted in News

Sequence Diagram in WMB

Using the WMB toolkit we can produce a sequence diagram with the following steps.

  1. Open Modeling Perspective

2. Within this Perspective Click on File->New->Other


3. Select Sequence Diagram within Modeling profile

4. Click Next and Select the location where the File needs to be created and Click Finish. A work area with the palette of nodes will be provided to build the diagram. A sample screenshot of the same is below.



A SOA Journey Using the TOGAF ADM – Part 3

In this article I address some of the the final elements and models in this iteration of the Preliminary phase. At this point I would like to comment about the ADM as an iterative process. In regards to Architectural Definition which includes an ideation / inception iteration. At this point in the role of Business Architect I have taken some time to consider each phase of the ADM in preparation for the next iteration. For the most part I have started to what are the possible artifacts that will be developed in the subsequent iterations. For this I generally use a heat map styled document for planning and charting progress. This artifact provides a planning snapshot for upcoming gate reviews as the transition made between iterations. Up to this point I’ve only lightly touched on the some of the essential aspect of architecture effort with a focus on governance. It should be noted that the degree of “doneness” for any particular artifact that has been produced up till this point will vary. And because I am publishing the repository content as Web documents from the modeling tool. Stakeholders are not constrained to a particular deadline for reviewing the content of the EA repository.

This is a type of model driven approach where the repository is used for dynamically doing architecture development. This is a concept that will require time for organizational socialization, and the shift in organizational behavior may be slow. This is an aspect of the TOGAF that I opted not to cover in this series. But organizational change should not be underestimated. However, the benefits of this approach are significant in that it promotes agility as a capability as well as an organizational behavior. Mgt-HeatMap.png

One key value add for the artifact development heat map, is that is can be easily used in conjunction with agile project management methods. For example, aligning the heat map with PM methodologies provides a means for enabling the use of the architecture artifacts, and governance checkpoints, and can serve as the basis for creating architectural epics. This is also my way of creating a plan for integration points for introducing new SOA capabilities into the already established business planning, portfolio, and operations management frameworks. For example, by the end of this article I will have developed an architectural definition that will address the integration points of Architectural Direction, Structured Direction, and Architectural Governance. The heat map will provide me with measure of the degree of completeness that is needed to satisfy these framework interfaces. Read the rest of this post »

IBM Pure Application Implementation Guide

I have been several calls with customers that are interested in the IBM PureApplication Systems. Once the customer is taken through the standard canned sales presentations and then a Demo there doesn’t seem to be much more guidance available. The next step is always a Business Value Assessment(BVA) but they usually take a long time and require large amounts of information from the customer. Information the customer may not want to provide during the early stages of discovery. The document I have attached uses scenarios to give further guidance on the practical uses of PureApplication. The intended audience is the customers technical staff.

IBM Pure Application Implementation Guide

Posted in News