Adopting, designing, and governing SOA well

SOA Best Practices Digest

Subscribe to SOA Best Practices Digest: eMailAlertsEmail Alerts newslettersWeekly Newsletters
Get SOA Best Practices Digest: homepageHomepage mobileMobile rssRSS facebookFacebook twitterTwitter linkedinLinkedIn


SOA Best Practices Authors: Jason Bloomberg, Hollis Tibbetts, Pat Romanski, Liz McMillan, Lori MacVittie

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

Why SOA Is a Good Fit for CRM Solutions
CRM OM applications are heterogeneous and require the integration of data, process, and people. Numerous interactions across applications must be orchestrated while incorporating people, business rules, lookups, and transformations with stateful processes that last from milliseconds (such as an ATP check) to days (such as a shipment delivery). States for long-running processes are dehydrated / stored in the database while awaiting a response, and then restored and executed upon new activity.

BPEL meets these demanding needs by orchestrating services and including IT and human tasks into a unified enterprise process. BPEL also supports complex interactions, such as fire and forget, synchronous request-response, asynchronous request-response, and partial processing. Data integration across systems requires support for features such as cross-referencing and domain value maps. Cross-referencing refers to the ability to track an order number in CRM to the equivalent order number in ERP and another order number in fulfillment. Domain value maps refer to similar information across systems that have different syntaxes. For example, California and CA refer to the same information.

Another feature in most major BPEL and ESB products is support for both native Web services integration and adapter-based integration to CRM and ERP systems. For earlier releases of CRM that do not support native service interfaces, adapters wrap proprietary CRM interfaces into SOA. CRM processes (such as approve order and discount review and approve) also require human intervention, which can be handled using BPEL's human workflow list capability. These list extensions are now part of the BPEL4People specification and allow portability and interoperability across vendors. Not all scenarios end successfully, which is why a robust error-handling framework is required. BPEL in combination with ESB allows for the surfacing of underlying connectivity errors from ESB into BPEL. Key benefits include handling errors as a business process (with corporate error-handling policies), and the inclusion of human workflow so that errors appear as a task in an operator's work list. This kind of support is critical for BPEL and ESB to overcome the mismatch between existing back-end applications and serve as the glue for their processes.

In addition, CRM OM applications are a good match for SOA because they can change according to customer needs. Online customers need to be able to easily search for new products or services, compare features and prices, share feedback, and more important, form an opinion about a vendor based on ordering experience. CRM OM applications must provide flexibility in product bundling and pricing, handle complex product configuration online, and ensure that inventory check and shipment delivery dates are completed as needed.

SOA enables easier orchestration of services such as configurator, background inventory checks, shipping, and business rules. Orchestration using standards, such as BPEL, enables the creation of a consistent business process layer and allows for reuse in other business processes. Not only is it easier to create new business processes, it is easier to change them, because a service layer decouples them from back-end services. (We go into more detail on layered architecture later in this article.)

SOA patterns also help the composition on the UI layer. Standards, such as Web Services for Remote Portlets (WSRP) and Java Specification Request (JSR) 168, allow the presentation data from diverse applications onto a single UI ("on-the-glass" integration). Furthermore, the composed components are decoupled using SOA abstraction techniques so that changes do not cascade into each other and back-end applications.

SOA also allows the creation of composite applications that present each user with a different UI, showcasing only the required capabilities and necessary tasks. This level of customization is necessary because CRM applications have multiple users and channels, including customers, employees, and partners (affiliates), who each require a distinctive UI. For example, a call center agent's view is geared toward higher productivity by omitting features such as help and customer reviews, and including features such as preferred customer discounts. A customer's view makes it easier to find products, guided ordering, and related products. The information in each UI comes from different data sources, including CRM Web services (product recommendations), content management systems (images), external Web services (shipment information), ERP services (available to promise), and business rules (preferred customer discounts).

Not only does SOA help create solutions that cater to multiple channels, it also reuses the same code base to serve different channels. For example, the order process is very similar for regular and preferred customers (changes for a discount code and an alternate catalog are variations on the same business process), resulting in easier adoption for newer channels.

Because they are heterogeneous, are able to quickly change based on customer need and competition, and have numerous delivery channels, CRM OM applications are well suited for adopting SOA.

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.