Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

...

Introduction

  • Message Queue Services are a common means for Enterprise Application Interation Integration (EAI). Users who operate a Message Queue Service want to integrate their applications with JobSchedulerJS7. Patterns for Enterprise Application Integration EAI include:
    • applications send job start sending requests to JobScheduleradd orders to workflows using the JS7 - REST Web Service API.
    • applications receive receiving processing results from jobs and job chains executed with JobSchedulerworkflows executed by JS7.
  • Such EAI scenarios provide the following advantages:
    • reduce reduction of complexity:
      • at a the topological level , i.e. each application implements only one interface to the Message ServciceQueue Service.
      • of error handling as a Message Queue Service would be is considered to be highly available.
    • manage centralized management of messages centrally.
  • The JMS integration scenario includes a separate Java-based consumer to be which is implemented in order to receive and parse messages and to translate messages received into job start requests to add orders. The reasons Reasons for this decision areapproach include:
    • JMS is certainly standardized. However, however, the content and format of messages requires individual parsing.
    • JobScheduler offers an XML command interface JS7 offers a JSON based REST Web Service API that can be used by any consumer to request job startsadd orders using REST API calls.

Use with Generic Jobs

Implementation

  • The implementation is independent from of the JobScheduler JS7 release and consists of Java examples that are separately available, see the references below references.
    Display feature availability
    StartingFromRelease1.9
  • JMS support is added with 
    Jira
    serverSOS JIRA
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId6dc67751-9d67-34cd-985b-194a8cdc9602
    keyJITL-282

...

Scenario 1: Detached JS7 JMS Interface

1. Use Case

  • An application prompts JobScheduler makes use of the JS7 REST Web Service API to start a JobScheduler 1 job or a JS7 workflow.

2. Producer

  • JobScheduler 1: Creates a text message in the XML format for the queue "JobChains". The content of the message can be e.g.:
    <add_order job_chain='REL_PATH/JOBCHAIN_NAME' at='now'></add_order>
    
    JS7: Creates a text message in the JSON format for the queue "Workflows". The content of the message can be e.g.could be, for example:
    {"controllerId":"testsuite","orders":[{"workflowPath":"/JS7Demo/01_HelloWorld/jdHelloWorld","scheduledFor":"now"}],"auditLog":{}}
  • sends Sends the message to the specific specified queue.

3. Consumer

  • JobScheduler 1.x: Reads a message from the queue „JobChains" and sends the XML snippet via TCP/UDP to a JobScheduler instance.JS7: Reads a message from the queue „Workflows" and sends the JSON body via HTTP(S) to a JS7 JOC Cockpit instance.

...

  • using the JS7 REST Web Service API.

Scenario 2: Generic

...

JS7 JMS Interface

1. Use Case

  • A Java job runs in a JobScheduler 1: job chain and workflow and implements the Producer to send information to the Message Queue Service after completion of a number of job nodes in a job chain.JS7: workflow and implements the Producer to send information to the Message Service after completion of a number of job nodes JS7 - Job Instructions in a workflow.
  • A Java job runs in aJobScheduler 1: job chain and implements a workflow and implements the Consumer, i.e. connects to the Message Queue Service to check for new messages that include possible job start requests.JS7: workflow and implements the Consumer, i.e. connects to the Message Service to check for new messages that include possible add order requests.parameters for adding orders to JS7.
  • The Producer as well as the Consumer can run in any job chain/ workflow.

2. Producer

  • Producer:
  • JobScheduler 1: Job sends some information to a message queue to signal completion of a job chain.
  • JS7: Job A job sends some information to a message queue Message Queue to signal completion of a workflow.

3.

...

Consumer

...

  • JobScheduler 1: Reads JobScheduler XML API command from a message and hands over the XML command to JobScheduler for execution.
  • JS7: Reads JobScheduler JSON command from a message Reads JS7 REST Web Service API body from a message in JSON format and hands over the JSON body to a JS7 JOC REST Web Service API call for execution.

Use with File Transfer jobs

Implementation

  • YADE is extended to pre-process XML snippets from messages that have been received from a queue.
    Display feature availability
    StartingFromRelease1.11
     JMS support is added with  JiraserverSOS JIRAcolumnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolutionserverId6dc67751-9d67-34cd-985b-194a8cdc9602keyYADE-409

Starting Situation

The YADE Client reads a configuration from an ini file. The configuration items are mapped to an Option class. The file transfers are processed.

  • The ini file configuration will be replaced with an XML configuration in the future.
  • At the time of writing it is only possible to create an XML configuration via the XML Editor. To use the configuration it has to be exported to an ini configuration for YADE to use.

Desired Behavior

Extending the YADE Client with a pre-processing functionality.

  • The pre-processing starts after the configuration has already been mapped to the options and before the actual processing of the file transfer.
  • Advantages:
    • This is based on the decision to use the YADE XML in the future for configuration instead of the old ini configuration.
    • The pre-processing is independent of the initial configuration (ini or xml)
    • No need to save a temporary (merged) configuration to the file system for later use. The update values will be directly mapped to the options.
    • The changes to the YADE Client are kept simple, the processing of the file transfers does not have to be adjusted.

The pre-processing includes to:

  • merge the received XML snippet of a YADE configuration into the existing configuration
    • determine from the delivered nodes which options have to be changed
    • extract the values
    • map the extracted values to the relevant options

Prerequisites
The XML snippet has to consist of YADE XML compliant elements.

...

Use with the JS7 Monitoring Interface

Implementation

  • The implementation allows a Message Queue Service to be used in order to forward notifications to forward JS7 - Notifications to a System Monitor
    Display feature availabilityStartingFromRelease1.11 
  • Support for notifications via Message Queue Services is added with 
    Jira
    serverSOS JIRA
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId6dc67751-9d67-34cd-985b-194a8cdc9602
    keyJITL-280

References

Change Management References

Jira
serverSOS JIRA
columnstype,key,issuelinks,fixversions,status,priority,summary,updated
maximumIssues20
jqlQuerylabels in (jms)
serverId6dc67751-9d67-34cd-985b-194a8cdc9602

Further Resources

Resources