A company is building a new customer self-service website. The company has an existing CRM application that contains customer information that needs to be integrated into the self-service website. The CRM application provides a synchronous interface to access the needed customer information. The CRM application takes 5 to 30 seconds to respond to the request for customer information. The requirements for the new customer self-service website is to respond within 3 seconds 90% of the time. What integration pattern would you suggest that the company use to integrate the CRM application into the new customer self-service website?
Correct Answer: B
Explanation/Reference:
An asynchronous exchange pattern would be good here. Asynchronous communication can be used when the response time for the source system is too slow to support the timelines of the calling systems.
Note: Store-and-forward is a special case of asynchronous communication. In the store-and-forward pattern, the request message is put onto a queue for later retrieval by the target of the request message.
Similarly, the response message is put onto a response queue for later retrieval. This is a very common approach used by messaging systems (e.g. MQ Series) to integrate with legacy systems. The architecture must support this integration pattern to facilitate integration with legacy systems and existing messaging systems.
Incorrect answers:
A: The request-response message exchange pattern is a standard two-way message exchange where the consumer initiates with a message, the provider responds with a message or the provider may respond with a fault if it fails to process the request.
C: The request optional-response pattern is a standard two-way message exchange where the provider's response is optional. Consumer and provider both have the option of generating a fault in response to a message received during the interaction.
D: The publish-and-subscribe communication pattern is used when a single message is of interest to multiple consumers.
E: Polling is a common mechanism used to find messages or changes in applications that require action.
This is one application for polling. Polling is also commonly used as an event generation approach for systems that do not natively support eventing.
Note: Over the years there have been many different approaches used to integrate applications. Some of the approaches that proved to be particularly prevalent and successful have become known as integration patterns. There are entire books written on the different types of integration patterns.
There are some patterns that are so common and so foundational that any integration architecture must support them.
A) Message Exchange Patterns
Message exchange patterns describe the order and sequence of messages passing between a service consumer and a service provider. The foundational message exchange patterns that the architecture must support include A1) One-way
A2) Reliable one-way
A3) Request-Response
A4) Request Optional-Response
B) Synchronous Communications
C) Asynchronous Communications
C1) Bridging Synchronous and Asynchronous
C2) Store and Forward
D) Publish and Subscribe
E) Polling
Reference: Oracle Reference Architecture, Service-Oriented Integration, Release 3.0