Before going into ISG Concepts, it is important to briefly understand what is a Web Service and some other related terms which can be new for beginner.
Web Services:
- Web Service in simple terms is a “software system” for machine-to-machine interaction over a network.
- Its interface is described in certain format which can be processed by machine.
- WSDL is one kind of interface format which can be created using SOAP messages
- WADL is another kind of interface format created using REST messages
- Web Services are self-describing, reusable software components encapsulating discrete functionality. Example: Employee creation can be one self-contained web service.
SOA:
Service-oriented architecture (SOA) is a set of principles and methodologies for designing and developing software in the form of interoperable services. So, it is “set of principles and methodologies ” and not a “software” in itself some people mistakenly assume.
Web Services Discovery:
The “process” of finding a suitable Web service for a given task.
Simple Object Access Protocol (SOAP):
“Protocol” for exchanging XML-based messages over networks, normally using HTTP/HTTPS.
Web Services Description Language (WSDL):
- WSDL is a “format” for describing a SOAP-based service interface.
- A way to describe services and how they should be bound to specific network addresses.
Representational State Transfer (REST):
- An “architecture principle” in which the Web services are viewed as resources
- Web services can be uniquely identified by their URLs.
- Explicit use of HTTP methods (GET, POST, PUT, and DELETE) is used to denote the invocation of different operations of a REST Web Service.
Keep in mind REST is “architecture principle” which when combined with “web service” makes it REST-based Web Service.
Web Application Description Language (WADL)
- WADL provides a “machine-processable description” of HTTP-based Web applications.
- It models the resources provided by a service and the relationships between them.
Web Service Interaction Pattern
- Interaction pattern is the “way” that a Web service client can communicate with the service.
- Interaction pattern can be synchronous and asynchronous
- Synchronous means “in sync” , so you call a web service and wait until it returns – all other code execution and user interaction is stopped until the call returns.
- Asynchronous means that you do not halt all other operations while waiting for the web service call to return.
Web Service Security
- Web service security (WS-Security) is a “specification” to enable applications to conduct secure message exchanges.
- It provides quality of protection through message integrity, message confidentiality, and single message authentication.
XML (Extensible Markup Language)
Markup “language” that defines a set of rules for encoding documents in a format that is both human-readable and machine-readable.
JSON (JavaScript Object Notation)
- Another kind of “language” like XML
- JSON is a “text-based open standard” designed for human-readable data interchange.
- The JSON format is often used with REST services to transmit structured data between a server and Web application, serving as an alternative to XML.
HTTP
Hyper-Text Transfer Protocol (HTTP) is a significant protocol used over the Web.
HTTP Clients
HTTP clients are the parties that use and consume the HTTP-based services, such as REST services, provided through HTTP protocol.
Now coming to the Integrated SOA Gateway(ISG)..
ISG is built on top of Oracle Fusion Middleware and service-oriented architecture (SOA) technology and Oracle E-Business Suite. It is a SOA based integration framework that comes along with Oracle E Business Suite. It allows user to provide , consume and monitor web services for integration with heterogenous systems.
SOAP vs REST in connection with ISG:
SOAP:
By leveraging Oracle SOA Suite running on Oracle WebLogic Server, Oracle E-Business Suite Integrated SOA Gateway provides greater capabilities and infrastructure for exposing various integration interfaces within Oracle E-Business Suite as SOAP Web services. SOAP-based services are described in WSDLs and are deployed to Oracle SOA Suite for service consumption.
REST:
Unlike SOAP services, REST services, without the dependency on Oracle SOA Suite, are developed with the infrastructure of Oracle E-Business Suite. REST services described in WADLs are directly deployed to an Oracle E-Business Suite WebLogic environment.
They can be used for user-driven applications such as Oracle E-Business Suite mobile applications.
Oracle e-Business Suite ships with an Integrated SOA gateway which can be used to generate webservices. This will help you to expose Oracle eBS functionality to other applications via a webservice
With this pre-built, reusable business services and service-oriented components, Oracle E-Business Suite Integrated SOA Gateway provides a capability of allowing various users to perform different tasks and to monitor and manage service integration throughout the entire service deployment life cycle.
Below is the basic process flow diagram for an EBS-ISG system:
Image Source: Oracle Documentation
Oracle E-Business Suite Integrated SOA Gateway contains the following features:
- Display all Oracle E-Business Suite integration interface definitions through Oracle Integration Repository
- Support custom integration interfaces from Oracle Integration Repository
- Provide service enablement capability (SOAP and REST services) for seeded and custom integration interfaces within Oracle E-Business Suite
- Use the Integration Repository user interface to perform design-time activities such as generate and deploy Oracle E-Business Suite Web services
- Support synchronous and asynchronous (callback without acknowledgement only) interaction patterns for SOAP-based Web services
- Support ONLY synchronous interaction pattern for REST-based Web services
- Support multiple authentication types for inbound service requests in securing Web service content
- Enforce function security and role-based access control security to allow only authorized users to execute administrative functions
- Provide centralized, user-friendly logging configuration for Web services generated through Oracle E-Business Suite Integrated SOA Gateway’s service provider
- Audit and monitor Oracle E-Business Suite inbound service operations from Service Monitor
- Leverage Oracle Workflow Business Event System to enable Web service invocation from Oracle E-Business Suite
Oracle E-Business Suite Integrated SOA Gateway has the following essential components in enabling Oracle E-Business Suite services.
Image Source: Oracle Documentation
- Integration Repository is the code repository in the EBS
- Service Provider is the ISG/SOA component that is sort of sitting between EBS and Client
- Service Consumer is the client that will consume the service/function
More details on the key terms:
Oracle Integration Repository (Service Broker)
- Integral part of Oracle E-business Suite
- Centralized repository that contains numerous interface endpoints exposed by applications within the Oracle E-Business Suite
- Supports various interface types including PL/SQL, XML Gateway, Concurrent Program, Business Event, Open Interface Table/View, EDI, Business Service Object
- Application users can browse these interface definitions and services through Oracle Integration Repository and view the interface details.
- Integration Administrator role can perform design-time operations, monitor the Web services, and view log messages.
Service Provider (previously known as SOA Provider)
- Is the primary engine underlying the Web services.
- It is the engine that performs the actual service generation and deployment behind the scene.
- ISG here is the service provider
Service Invocation Framework
- Serves as a service consumer to send a request through the invocation of a Web service from Oracle E-Business Suite
- By leveraging Oracle Workflow Java Business Event System (JBES) and a seeded Java rule function, this framework provides an infrastructure that facilitates Web service invocation and consumption from Oracle E-Business Suite.
Now let us break Integrated SOA Gateway operations into three phases
1) Development Phase
- Users who have the Integration Developer role can create custom interfaces and definitions
- Users who have the Integration Administrator role can validate and upload custom interfaces to the Integration Repository
Remember that in Integration Repository all the registered interfaces, regardless of custom or Oracle packaged ones
2) Design Phase
- Users having Integration Administrator role can generate SOAP services with desired operation patterns, and deploy them to Oracle SOA Suite by attaching an appropriate security policy.
- For interfaces that can be exposed as REST services, the administrator can select desired service operations before deploying them to Oracle E-Business Suite.
3) Runtime Phase
- Web service clients send request messages to invoke Oracle E-Business Suite services enabled through ISG’s Service Provider
- After authenticating and authorizing the users who request the services, services can be invoked.
Very high level steps that are used to expose API as web service:
1. Search the Integration Repository and identify the public PL/SQL API that needs to be exposed as a web service.
2. Generate a WSDL for it by pressing the Generate WSDL button and creating a Service.
3. Deploy the Service by pressing Deploy button.
4. Grant the permission controlling the access to this Service.
5. Any industry standard web service client will be able to invoke EBS PL/SQL API as a service.
In further posts on ISG we will do an exercise on creating a sample API and expose it as web service.
- Oracle Multitenant DB 4 : Parameters/SGA/PGA management in CDB-PDB - July 18, 2020
- Details of running concurrent requests in Oracle EBS - May 26, 2020
- Oracle Multitenant DB 3 : Data Dictionary Architecture in CDB-PDB - March 20, 2020