Live News, Features and Article Updates Covering Oracle Technologies

Oracle on Ulitzer

Subscribe to Oracle on Ulitzer: eMailAlertsEmail Alerts newslettersWeekly Newsletters
Get Oracle on Ulitzer: homepageHomepage mobileMobile rssRSS facebookFacebook twitterTwitter linkedinLinkedIn


Oracle Authors: Elizabeth White, Yakov Fain, Liz McMillan, Pat Romanski, Carmen Gonzalez

Related Topics: Oracle Journal, SOA Best Practices Digest, SOA & WOA Magazine, Java Developer Magazine

Article

Why SOA Is a Good Fit for CRM Solutions

Provides scalable architecture and modern toolsets

CRM SOA Primer
As mentioned earlier, the key elements of a SOA-based OM platform include a set of robust services exposed by the CRM application and other applications such as ERP and billing, a SOA platform for integration and orchestration in the middle-tier, and a robust composition framework that brings all these together in the UI tier. In this section, we examine the SOA capabilities of a CRM application.

CRM applications expose business services and workflows as Web services. Business services are functions that take input and return output while performing business logic (usually acting upon a set of CRM business objects). Workflows are similar to business processes and follow a sequential execution of steps. A step can be an invocation of a business service or input from the CRM event framework (such as an order create event, which can start a workflow), or an invocation of a CRM scripting service. Internal CRM business objects are typically not exposed as Web services, because interactions at that layer are too fine-grained and have a number of interdependencies. Working with business objects requires an understanding of the relationship between objects (for example, object opportunity is related to contact and activity, while contact is related to account, and account is related to product), rendering it unsuitable for SOA. As a result, a higher level of abstraction (business services) is preferred. Commonly, a Java API can access business objects (and for other interfaces). In addition to Web services and Java, most CRM systems support messaging interfaces such as the Java Message Service (JMS).

Using Web service interfaces, CRM applications also provide tools and wizards to help create bidirectional-process-based integrations (inbound to and outbound from CRM applications).

In an outbound integration, CRM invokes an external application such as BPEL. This is a common use case in which the order (after capture in CRM) is passed to back-end ERP for fulfillment, with BPEL as the middleware layer.

Since CRM invokes an external service endpoint, it must consume the external endpoint Web Services Description Language (WSDL). In this case, the endpoint is a BPEL process. As mentioned earlier, every BPEL process is a Web service, and capturing the WSDL is straightforward. Many CRM applications provide wizards that allow users to import external WSDLs and automatically generate the integration objects and Web service proxy that will be used to invoke BPEL.

The CRM developer then uses a CRM workflow to tie the data to be passed to the BPEL process. In this case, sending order information to ERP can be accomplished by placing a submit button on the customer-facing order UI, thereby kicking off a workflow when the button is pressed. The workflow uses an out-of-the-box CRM business service to extract the order information, then runs through a set of steps (including mapping from the CRM internal data model to integration objects), and finally invokes the Web service proxy that was generated when the BPEL-process WSDL was consumed. The proxy delivers the integration-object-based payload to BPEL, which then processes the order and runs the enterprise-wide, order management business process that integrates with the back-end ERP.

Inbound integration to CRM, such as external applications calling a CRM Web service, is simpler. The CRM admin console, which is a Web-based UI, provides mechanisms to expose business services and workflows as Web services. This generates a physical WSDL file that can be saved and consumed by external applications such as BPEL to invoke a CRM Web service. On the tooling side, CRM applications provide both desktop and browser-based tools to import and export WSDL, define input and output parameters, create schemas for exchanged objects, and autogenerate a number of artifacts required to tie the Web service calls to internal elements.

Figure 3 provides a list of order management services exposed by a CRM application, and Figure 4 shows these order management services inside a CRM admin console.

Each of these services is based on an internal business-service or a workflow implementation. Figure 4 exposes the details of ports and operations for order service within the order management component. Most CRM services have a common set of operations, such as insert, delete, query by ID, and query by example.

In summary, most CRM technology stacks provide capabilities for bidirectional Web services interactions. In addition, they support Web Services Security (WSS) and allow the invocations to be secured. Together, these present a formidable set of capabilities on which to build distributed service-enabled and process-centric solutions.

Implementing a SOA-Based Solution for Order Management
In this section, we investigate how best to integrate and orchestrate a robust set of CRM services using SOA infrastructure products such as BPEL and ESB.

A heterogeneous order management solution interacts across multiple applications. Figure 5 provides a component interaction view, which has been color-coded to indicate the application (CRM, ERP, or both) they reside in. A number of variations are possible, and Figure 5 highlights the complexity of interactions.

Customers can order via multiple channels, including Web, call center, and other devices. An order submission initiates a number of interactions between components, as indicated by the green lines. These interactions can be bidirectional, synchronous, and asynchronous, and can also be processed in real time or in batches. Order validation and policy enforcements require that the components are called in a specific sequence. The back-end service invocation sequence will vary based on actual user clicks from the UI. Key components that require integration and orchestration include pricing, catalog, configurator, customer data, product data, fulfillment, and invoicing, as well as the human operators who work with each of these systems.

Such a complex problem is best handled by a layered architecture. To capture multichannel customer interactions, a robust, Java-based application development framework is used in the user-interaction layer. BPEL is deployed to integrate people and processes, and ESB is put in place to provide granular Web services across diverse back-end applications. This converts application-proprietary APIs to Web services (using adapters) and aggregates low-level, fine-grained services into higher-level, coarse-grained services that can be consumed by business processes. The end goal is to create a layered architecture as shown in Figure 6.

More Stories By Nishit Rao

Nishit Rao is director of product management for Oracle Fusion Middleware. He is focusing on enhancing and evangelizing the middleware platform to meet the demanding needs of Oracle customers. He has more than 15 years experience in engineering and product management for messaging, Common Object Requesting Broker Architecture, J2EE, integration, and SOA products. He also has experience rolling out middleware solutions as an architect for a large global logistics company. He holds an MBA from the University of California, Berkeley, and a BS in electrical engineering.

More Stories By Murali Varmaraja

Murali Varmaraja is director of order management product strategy at Oracle. He has more than 15 years of experience in the information technology industry, including 8 years of enterprise product management. His experience spans a wide spectrum of technology, including Web, client/server, and multitier and distributed architectures involving Oracle and IBM DB2. He has experience with CRM business processes for the transportation, communications, media, energy, finance, high-tech, and manufacturing industries. He holds an MS degree in computer applications from Sadar Patel University in Gujarat, India, and is currently pursuing an MBA at the Graziadio School of Business and Management at Pepperdine University.

Comments (0)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.