Wednesday, August 25, 2010

Integrating with Salesforce.com

Salesforce.com (aka Salesforce) is the most commonly used cloud-based Software as a Service platform for Customer Relationship Management (CRM). Recently, we have been involved with a lot of customers who are planning to start migrating to or have made a strategic decision to use Salesforce to manage their customer contacts, track sales orders, streamline their sales processes, etc. In fact, Prolifics itself is a Salesforce customer.

Our own experiences, and those with our customers who use Salesforce, have given us an in-depth understanding of what it takes to ensure that this CRM solution is made universally available within the enterprise – to business processes that require customer information or to portal applications that mash up customer information with data from other systems. This blog entry details three patterns that we have commonly used when integrating with Salesforce and that we believe can be reused – entirely at the design level and to a good extent at the implementation level.

1. Enterprise CRM Services – Every enterprise has defined standards when it comes to their enterprise services and data formats. The reusable enterprise services are exposed via the ESB and all the end applications use these enterprise services to communicate with end systems so that the ESB can provide the common functionality and the governance needed when performing system integration. Using this same concept when working with Salesforce allows enterprises to centralize the Salesforce integration at the ESB layer (the ESB communicates with Salesforce using SOAP/HTTP web services), do transformation, security, etc. at one common place and provide clients – processes, portals or mashups, etc. – with the consistent enterprise-wide data representation to which they are accustomed. The enterprise services provide the generic CRM interface to the clients, so that if the CRM system has to be changed, the hundreds of clients that use the CRM system in the enterprise do not have to change. The IBM WebSphere Enterprise Service Bus is commonly used for implementing this pattern.


2. Publish CRM Data – Another common requirement is to ensure that CRM data is passed from Salesforce to back end systems based upon changes that happen within Salesforce to this information. The ESB provides a service (SOAP/HTTP web service) that gets invoked by Salesforce (with all the relevant information from Salesforce) when data of interest changes in Salesforce. This data is then transformed and passed to the back end systems. The benefits of this approach include a centralized service definition on the ESB, transformation of data, centralized security management, supporting legacy applications that are not web service enabled [but still need CRM data], etc. The IBM WebSphere Enterprise Service Bus or IBM WebSphere Message Broker is commonly used for implementing this pattern. [Note: the reverse flow from end systems to Salesforce is handled similarly, instead of being invoked by Salesforce; the ESB invokes a service on Salesforce.]

3. Bulk Load of CRM data – It is very typical for customers to need the ability to bulk load customer data from their existing homegrown systems into Salesforce. These kinds of requirements are also common when mergers and acquisitions happen and new customer data needs to be loaded. During the bulk load of CRM data, there may also be a need to cleanse the information before loading it into Salesforce. The IBM InfoSphere DataStage, IBM InfoSphere QualityStage, and the IBM InfoSphere Information Server Pack for Salesforce.com together support this pattern that involves the definition of ETL jobs that extract data from different sources, cleanse, map the data to Salesforce format, and load it into Salesforce.


I want to conclude by saying that we at Prolifics believe in “eating our own dog food.” Prolifics has a production implementation of IBM WebSphere Enterprise Service Bus that was built using the pattern described above (Publish CRM Data) that enables the data we have in our Salesforce instance to be published to IBM’s Global Partner Portal based on Siebel.

In my next set of blog entries, I will focus on couple of related topics:

  • IBM’s acquisition of Cast Iron Systems and how the solution supports these patterns of integrating with Salesforce

  • A set of assets that we are currently working on at Prolifics to help customers jump start their own Salesforce integration initiatives.

Rajiv Ramachandran first joined Prolifics as a Consultant, and is currently the Practice Director for Enterprise Integration. He has 11 years experience in the IT field — 3 of those years at IBM working as a developer at its Object Technology Group and its Component Technology Competency Center in Bangalore. He was then an Architect implementing IBM WebSphere Solutions at Fireman’s Fund Insurance. Currently, he specializes in SOA and IBM’s SOA-related technologies and products. An author at the IBM developerWorks community, Rajiv has been a presenter at IMPACT and IBM's WebSphere Services Technical Conference.

Monday, August 9, 2010

Mobile Portal – Creating A Simple Mobile Portlet - Part III

Samuel Sharaf, Solution Director, West Coast

Part 3 of this blog series takes you through series of steps to demonstrate the creation, development and deployment of a simple Mobile Portlet using Rational Application Developer. While working on this blog I found out that this could be a long one with all the images/screenshots. So this first entry just focuses on pre requisites, creating a Mobile Portlet project and exploring the project artifacts.

Before you get started, please download and install the following software images on your machine:
  1. Rational Application Developer 7.5.1
  2. WebSphere Portal 6.1.x
  3. Mobile Portal Toolkit 6.1

Step – 1 Create a new Project
Start Rational application developer, hereafter called RAD, you can use either an existing workspace, or create a new workspace.



Create a new Portlet Project and name it MobilePortlet, set runtime to WebSphere Portal 6.1. Set the Portlet Type to JSR 286. Set the Portlet type to Mobile Portlet and click Next.



Once the project is created, the workspace looks like the figure below:


Note that a new Portlet has been created in the com.ibm.mobileportlet package in the Java Resource:src directory. Lets review the WebContent folder, the key folders under that directory are:
  1. _MobilePortlet and mcs-policies
  2. Within _MobilePortlet there are two folders called html and xdime. These two folders contain JSP files with the same names (MobilePortletView.jsp)

Note that if the request comes from the web browser, the MobilePortletView.jsp under the html folder gets rendered; however, if the request is from the mobile device MobilePortletView.jsp under the xdime folder gets rendered.

The mcs-policies will hold the device-dependent aspects of the mobile portal e.g. policies for various layouts, themes, components and assets etc. A sample layout file has been created by RAD.

In the next part of this blog series, we will start creating the code artifacts.

Stay tuned…

Samuel Sharaf is a Solution Director at Prolifics on the West coast with real world customer expertise with Portal implementations, Dashboard, Forms and Content Management. Sam also has expertise with migrating applications from non-IBM platforms to IBM WebSphere Application and Portal Servers.

Wednesday, August 4, 2010

2010 Portal Excellence Conference

Samuel Sharaf, Solution Director, West Coast

This year the IBM Portal Excellence conference was held in Hilton Chicago. I was there with one of our key clients (American Express Corporate Travel) to co-present on the solution Prolifics developed. For those of you who are familiar with the IBM world, there is a conference every year for each of the five main brands. For me, this one was nearest and dearest to my heart as I have been involved with IBM Portal technology for several years.

So let’s go over some of the key highlights of the conference…
  • Portal and LWCM 7.0 will be officially released around mid September time frame this year
  • IBM acquired Coremetrics (http://www-01.ibm.com/software/websphere/announcement061510.html)
    The plan is to integrate Coremetrics with the WebSphere platform and exposed the web metrics through out of box Portlets so that organizations can make intelligent business decisions.
  • Project NorthStar was announced, which reflects IBM’s vision and multi-year roadmap for how organizations can create next-generation online experiences. (http://www-01.ibm.com/software/info/northstar/)

Since I am intimately involved on daily basis interacting with the clients, the announcement of Portal 7.0 coming out soon was big news. Besides supporting JSR 286 and Web 2.0, Lotus Web Content Management will finally be fully integrated with the WebSphere Portal and will take advantage of Web 2.0 features for authoring and presentation templates. Also, the integration of Coremetrics with the WebSphere platform and the ability for the companies using Portal internally/externally to perform web trending will be huge.

I might sound biased; however, my presentation with American Express was received very well by the attendees. The session was full and we had lot of live interaction via Q&A with the attendees. The presentation was divided into two main parts. Chris, from American Express, talked about the business case and how the solution brought overall value to their business, while I focused on how the Prolifics team helped designed the overall solution and implement it. What drew attendee’s interest was the fact that the solution is scalable to millions of end users and has been rolled out in 22 different languages; and people in all 5 continents are actively using it to book their travel. If you are interested in learning more about the solution we developed for American Express Corporate Travel, our marketing department has done a great job in providing an overview. (http://www.prolifics.com/travel-portal.htm)

Overall I found the conference very informative and hey – where else could you meet the co-author of JSR 168 and JSR 286 (Stefan Hepper) and some key IBM architects one on one?

Samuel Sharaf is a Solution Director at Prolifics on the West coast with real world customer expertise with Portal implementations, Dashboard, Forms and Content Management. Sam also has expertise with migrating applications from non-IBM platforms to IBM WebSphere Application and Portal Servers.