Introduction
- Message Queue Services are a common means for Enterprise Application Integration (EAI). Users who operate a Message Queue Service want to integrate their applications with JS7. Patterns for EAI include:
- applications sending requests to add orders to workflows using the JS7 - REST Web Service API.
- applications receiving processing results from jobs and workflows executed by JS7.
- EAI scenarios provide the following advantages:
- reduction of complexity:
- at the topological level each application implements only one interface to the Message Queue Service.
- of error handling as a Message Queue Service is considered to be highly available.
- centralized management of messages.
- reduction of complexity:
- The JMS integration scenario includes a separate Java-based consumer which is implemented in order to receive and parse messages and to translate messages into requests to add orders. Reasons for this approach include:
- JMS is standardized. However, the content and format of messages requires individual parsing.
- JS7 offers a JSON based REST Web Service API that can be used by any consumer to add orders using REST API calls.
Use with Generic Jobs
Implementation
- The implementation is independent of the JS7 release and consists of Java examples that are separately available, see the references below.
Scenario 1: Detached JS7 JMS Interface
1. Use Case
- An application makes use of the JS7 REST Web Service API to start a workflow.
2. Producer
- Creates a text message in JSON format for the queue "Workflows". The content of the message could be, for example:
{"controllerId":"testsuite","orders":[{"workflowPath":"/JS7Demo/01_HelloWorld/jdHelloWorld","scheduledFor":"now"}],"auditLog":{}}
- Sends the message to the specified queue.
3. Consumer
- Reads a message from the queue „Workflows" and sends the JSON body using the JS7 REST Web Service API.
Scenario 2: Generic JS7 JMS Interface
1. Use Case
- A Java job runs in a workflow and implements the Producer to send information to the Message Queue Service after completion of a number of JS7 - Job Instructions in a workflow.
- A Java job runs in a workflow and implements the Consumer, i.e. connects to the Message Queue Service to check for new messages that include parameters for adding orders to JS7.
- The Producer as well as the Consumer can run in any workflow.
2. Producer
- A job sends some information to a Message Queue to signal completion of a workflow.
3. Consumer
- Reads JS7 REST Web Service API body from a message in JSON format and hands over the JSON body to a JS7 REST Web Service API call for execution.
Use with the JS7 Monitoring Interface
Implementation
- The implementation allows a Message Queue Service to be used to forward JS7 - Notifications to a System Monitor.
- Support for notifications via Message Queue Services is available, see JS7 - Notifications - Configuration Element JMSFragment.
Resources
- JS7 - Example - How to send and receive messages with a JMS Message Queue Service
- JS7 - Example - How to implement a workflow for communication with a Message Queue Service
Overview
Content Tools