3 Understanding Integrations in a SOA Environment

This chapter contains the following topics:

3.1 JD Edwards Enterprise Integrations in a SOA Environment

As systems evolve, Service Oriented Architecture (SOA) environments are instrumental for providing a standards-based approach for interoperability between disparate systems. In a SOA environment, web services provide a common interface between systems. JD Edwards EnterpriseOne provides and consumes web services in a SOA environment by leveraging business services. JD Edwards EnterpriseOne also supports event notification in a SOA environment using JMS Queue and JMS Topic.

3.1.1 Web Service Provider

As a web service provider, JD Edwards EnterpriseOne exposes web services for consumption by external systems. JD Edwards EnterpriseOne web services call business services. Business services perform a specific business process. Multiple Java classes are used to perform the requested business process. The web service is generated from a Java class called a published business service class. The methods of the published business service class receive and return data through payload classes called value objects. Within each method, internal business service and value object classes are used to access existing logic and data in JD Edwards EnterpriseOne. The business processes exposed through the published business service class can be accessed from an external system using a web service call or from other published business service classes.

3.1.2 Web Service Consumer

As a web service consumer, JD Edwards EnterpriseOne calls an external web service from within the JD Edwards EnterpriseOne business logic layer. An action that uses a business function occurs in JD Edwards EnterpriseOne. The business function calls a business service. The business service calls the external web service. A web service proxy provides end points and security information for the external web service. The results of the call are returned to the published business service that is provided in the web service proxy. The published business service calls the business service method, which passes the result to the business function. JD Edwards EnterpriseOne can also consume web services using HTTP instead of the business services server.

See "Understanding Business Services Development in the JD Edwards EnterpriseOne Tools Business Services Development Guide.

3.1.3 Event Notification

JD Edwards EnterpriseOne sends event notifications as JMS messages through JMS Queue and JMS Topic. The transaction server is the primary business event system for publishing guaranteed event notifications. When a transaction occurs in JD Edwards EnterpriseOne, the transaction server retrieves the data based on event configuration, converts the data to a properly formatted XML document, and routes the event to the JMS Queue or JMS Topic subscriber.

3.2 Business Services Architecture

The following diagram illustrates the architecture for JD Edwards EnterpriseOne web services and business services:

Figure 3-1 Architecture for JD Edwards EnterpriseOne web services and business services

Description of Figure 3-1 follows
Description of "Figure 3-1 Architecture for JD Edwards EnterpriseOne web services and business services"

This table discusses the servers and systems depicted in the diagram:

System Description
Application Server Runs the business services server, the transaction server, and the HTML Web server. The application server can be an Oracle Application Server or a WebSphere Application Server.
HTML Web Server Runs JD Edwards EnterpriseOne interactive applications. Communicates with the enterprise server to run business functions.
Enterprise Server Runs business functions that generate request/reply messaging events.
Transaction Server Transports the XML message generated from the request/reply messaging API to the receiving systems using JMS Queue and JMS Topic.
Security Server Provides authentication for JD Edwards EnterpriseOne components.
Business Services Server Hosts the business service Java programs that communicate with JD Edwards EnterpriseOne. Provides a business services development client for developing and testing services as both a web service provider and a web service consumer.
Orchestration System Used for SOA orchestration, for example, Oracle BPEL-PM and Oracle ESB.
Database Server Hosts tables.

3.3 Environments

JD Edwards EnterpriseOne provides a business services development client for developing and testing business services as both a web service provider and a web service consumer.

3.4 Integration Patterns

JD Edwards EnterpriseOne supports the following integration patterns for interoperating with other Oracle applications and third-party applications or systems:

  • JD Edwards EnterpriseOne as a web service provider – synchronous request/reply.

  • JD Edwards EnterpriseOne as a web service provider – asynchronous notification.

  • JD Edwards EnterpriseOne as a web service provider – asynchronous request/reply.

  • JD Edwards EnterpriseOne as a web service consumer – notification.

  • JD Edwards EnterpriseOne as a web service consumer – synchronous web service request/reply.

  • JD Edwards EnterpriseOne as a service consumer – asynchronous HTTP request/response.

  • JD Edwards EnterpriseOne as a service consumer – synchronous HTTP request/response.

  • JD Edwards EnterpriseOne as a web service consumer – asynchronous web service.

These patterns are typically used for point-to-point integrations with individual third-party systems.

3.4.1 JD Edwards EnterpriseOne as a Web Service Provider - Synchronous Request/Reply

JD Edwards EnterpriseOne supports two methods for processing the web service provider synchronous request/reply pattern. The most frequently used model is to expose a web service that accesses the JD Edwards EnterpriseOne data through a set of business function calls.

This pattern uses these systems:

  • Orchestration system

  • Business services server

  • Enterprise server

  • Database server

The orchestration system calls a JD Edwards EnterpriseOne web service. The web service calls a business service. The business service calls a business function. The business function performs the task that updates the JD Edwards EnterpriseOne database.

This diagram shows this model:

Figure 3-2 JD Edwards EnterpriseOne as a web service provider - synchronous request/reply using business function calls

Description of Figure 3-2 follows
Description of "Figure 3-2 JD Edwards EnterpriseOne as a web service provider - synchronous request/reply using business function calls"

The other method uses JDBj to perform direct data access to the JD Edwards EnterpriseOne database.

This pattern uses these systems:

  • Orchestration system

  • Business services server

  • Database server

The orchestration system calls a JD Edwards EnterpriseOne web service. The web service calls a business service. The business service makes a database operation call that updates the JD Edwards EnterpriseOne database.

This diagram illustrates this model:

Figure 3-3 JD Edwards EnterpriseOne as a web service provider - synchronous request/reply using JDBj

Description of Figure 3-3 follows
Description of "Figure 3-3 JD Edwards EnterpriseOne as a web service provider - synchronous request/reply using JDBj"

3.4.2 JD Edwards EnterpriseOne as a Web Service Provider - Asynchronous Notification

JD Edwards EnterpriseOne supports two methods for processing the web service provider asynchronous notification pattern. The most frequently used method is to expose a web service that accesses the JD Edwards EnterpriseOne data through a set of business function calls.

This pattern uses these systems:

  • Orchestration system

  • Business services server

  • Enterprise server

  • Database server

The orchestration system calls a JD Edwards EnterpriseOne web service. The web service calls a business service. The business service calls a business function. The business function performs the task that updates the JD Edwards EnterpriseOne database.

This diagram illustrates this model:

Figure 3-4 JD Edwards EnterpriseOne as a web service provider - asynchronous notification using business function calls

Description of Figure 3-4 follows
Description of "Figure 3-4 JD Edwards EnterpriseOne as a web service provider - asynchronous notification using business function calls"

The other method uses JDBj to perform direct data access to the JD Edwards EnterpriseOne database.

This pattern uses these systems:

  • Orchestration system

  • Business services server

  • Database server

The orchestration system calls a JD Edwards EnterpriseOne web service. The web service calls a business service. The business service makes a database operation call that updates the JD Edwards EnterpriseOne database.

This diagram illustrates this model:

Figure 3-5 JD Edwards EnterpriseOne as a web service provider - asynchronous notification using JDBj

Description of Figure 3-5 follows
Description of "Figure 3-5 JD Edwards EnterpriseOne as a web service provider - asynchronous notification using JDBj"

3.4.3 JD Edwards EnterpriseOne as a Web Service Provider - Asynchronous Request/Reply

JD Edwards EnterpriseOne supports two methods for processing the web service provider asynchronous request/reply pattern. The most frequently used method is to expose a web service that accesses the JD Edwards EnterpriseOne data through a set of business function calls.

This pattern uses these systems:

  • Orchestration system

  • Business services server

  • Enterprise server

  • Database server

  • Transaction server

The orchestration system calls a JD Edwards EnterpriseOne web service. The web service calls a business service. The business service calls a business function. The business function performs the task that updates the JD Edwards EnterpriseOne database. The EnterpriseOne application notifies the transaction server that an update has occurred. The transaction server retrieves the information and creates an event (outbound notification) and places the event in JMS Queue or JMS Topic for the orchestration system to send to the subscriber. The reply is received through the orchestration system and returned to JD Edwards EnterpriseOne as an XML document through the transaction server.

This diagram illustrates this model:

Figure 3-6 JD Edwards EnterpriseOne as a web service provider - asynchronous request/reply using business function calls

Description of Figure 3-6 follows
Description of "Figure 3-6 JD Edwards EnterpriseOne as a web service provider - asynchronous request/reply using business function calls"

3.4.4 JD Edwards EnterpriseOne as a Web Service Consumer - Notification

JD Edwards EnterpriseOne supports two methods for processing the web service consumer asynchronous notification pattern. The most frequently used method is to publish a real-time event using the transaction server.

This pattern uses these systems:

  • Enterprise server

  • Transaction server

  • Orchestration system

A business function performs a task that updates the JD Edwards EnterpriseOne database. The Call Object kernel notifies the transaction server. The transaction server retrieves the data and creates an event in the form of an XML document and places the event in JMS Queue or JMS Topic for the orchestration system to process. The orchestration system retrieves the XML document and sends it to the third-party system. The data mapping between the request and reply is provided by the cross-reference correlation utility in the orchestration system.

This diagram illustrates this model:

Figure 3-7 JD Edwards EnterpriseOne as a web service consumer — asynchronous notification using real-time events

Description of Figure 3-7 follows
Description of "Figure 3-7 JD Edwards EnterpriseOne as a web service consumer — asynchronous notification using real-time events"

The other method uses Z-tables to send information to third-party systems.

This pattern uses these systems:

  • Enterprise server

  • Transaction server

  • Orchestration system

An update is made to a JD Edwards EnterpriseOne application. The application has processing options that load data into a specified Z-table. The system is then configured to publish the Z-table record using the transaction server.

This diagram illustrates this model:

Figure 3-8 JD Edwards EnterpriseOne as a web service consumer – outbound notification using Z-tables

Description of Figure 3-8 follows
Description of "Figure 3-8 JD Edwards EnterpriseOne as a web service consumer – outbound notification using Z-tables"

3.4.5 JD Edwards EnterpriseOne as a Web Service Consumer – Synchronous Web Service Request/Reply

JD Edwards EnterpriseOne supports using a web service for processing the synchronous request/reply pattern. This method uses a JD Edwards business service to call an external web service.

This pattern uses these systems:

  • HTML web server

  • Enterprise server

  • Business services server

A request for information from a third-party system is made through the JD Edwards EnterpriseOne HTML web client. This request invokes a business function. The business function calls a business service. The business service calls an external web service. A web service proxy provides end points and security information for calling the external web service. The results of the call are returned to a JD Edwards EnterpriseOne published business service, which calls a business service to pass the results to the business function, which then processes the information for the HTML web client.

This diagram illustrates this model:

Figure 3-9 JD Edwards EnterpriseOne as a web service consumer – synchronous web service request/reply

Description of Figure 3-9 follows
Description of "Figure 3-9 JD Edwards EnterpriseOne as a web service consumer – synchronous web service request/reply"

3.4.6 JD Edwards EnterpriseOne as a Service Consumer – Asynchronous HTTP Request/Response

JD Edwards EnterpriseOne supports using HTTP POST for processing an asynchronous HTTP request/response pattern. This method uses HTTP POST as the request and expects an HTTP callback. In this pattern, the web server client continues to process other information while waiting for the response.

This pattern uses these systems:

  • HTML web server

  • Enterprise server

  • Business services server

A request for information from a third-party system is made through the JD Edwards EnterpriseOne HTML web client. This request invokes a JD Edwards EnterpriseOne business function. The business function calls a JD Edwards EnterpriseOne business service. The business service contains the request and callback information for the third-party system. The third-party system uses the callback information to send a response that is in XML format to a JD Edwards EnterpriseOne published business service. The published business service can send the response to the business function, and the business function sends the response to the HTML web client. The published business service can also send the response to the HTML web client directly.

This diagram illustrates this model:

Figure 3-10 JD Edwards EnterpriseOne as a service consumer – asynchronous HTTP request/response

Description of Figure 3-10 follows
Description of "Figure 3-10 JD Edwards EnterpriseOne as a service consumer – asynchronous HTTP request/response"

3.4.7 JD Edwards EnterpriseOne as a Service Consumer – Synchronous HTTP Request/Response

JD Edwards EnterpriseOne supports using HTTP POST for processing a synchronous HTTP request/response pattern. This method uses HTTP POST as the request and waits for the response from the third-party system.

This pattern uses these systems:

  • EnterpriseOne HTML web server

  • EnterpriseOne server

  • Business services server

A request for information from a third-party system is made through the JD Edwards EnterpriseOne HTML web client. This request invokes a JD Edwards EnterpriseOne business function. The business function calls a JD Edwards EnterpriseOne business service. The business service calls the third-party and receives a reply in XML format. The business service sends the response to the business function, and the business function sends the response to the HTML web client.

This diagram illustrates this model:

Figure 3-11 JD Edwards EnterpriseOne as a web service consumer – synchronous HTTP request/response

Description of Figure 3-11 follows
Description of "Figure 3-11 JD Edwards EnterpriseOne as a web service consumer – synchronous HTTP request/response"

3.4.8 JD Edwards EnterpriseOne as a Web Service Consumer – Asynchronous Web Service

You can initiate an asynchronous request by leveraging either JD Edwards EnterpriseOne as a Web Service Consumer – Notification or JD Edwards EnterpriseOne as a Web Service Consumer – Synchronous Web Service Request/Reply, and then use JD Edwards EnterpriseOne as a Web Service Provider to handle the response back into EnterpriseOne. JD Edwards EnterpriseOne does not provide any specific feature such as correlation or web services addressing to support calling a web service for processing the asynchronous request/reply pattern. If you use this pattern, you must manage correlation data using application data or payload such as an order number.