Oracle Service Bus and 12c

You might also like

Download as odp, pdf, or txt
Download as odp, pdf, or txt
You are on page 1of 33

1

Introduction

Oracle Service Bus


And
Service-Oriented Architecture 12c

TCS Confidential
3

Service-Oriented Architecture Course Content


SOA Overview

Key Concepts

SOA Suite Architecture

Design patterns

SOA Adapters

Polling in Oracle SOA

Error handling

Encryption and Decryption

Oracle WSM Policy Manager

Steps to create BPEL process

TCS Confidential
4
Introduction to OSB
“OSB presents a communication backbone for transport and routing of messages
across an enterprise. It is designed for high-throughput and reliable message delivery
to a variety of service providers and consumers.”

TCS Confidential
5
Key difference between 11g and 12c
• Pluggable Database
The main difference between Oracle 11g and 12c is that the Oracle 11g has no pluggable databases while Oracle
12c has pluggable databases. Moreover, Oracle 12c allows running multiple databases on the same hardware
while maintaining the security and isolation among the databases.
• Multitenant Architecture
Another important difference between Oracle 11g and 12c is that, in Oracle 11g, there is no multitenant
architecture. But, in contrast, there is multitenant architecture in Oracle 12c.
• Cloud Service
Cloud service is also a major difference between Oracle 11g and 12c. Oracle 11g does not have cloud support
while Oracle 12c provides Oracle database cloud service.
• In-memory Capability
Moreover, Oracle 11g does not provide in-memory capabilities. However, Oracle 12c provides in-memory
capabilities.
• JSON Support
JSON support is another difference between Oracle 11g and 12c. Oracle 11g has no JSON support whereas Oracle
12c
supports the JSON.

TCS Confidential
6
OSB Diagram

TCS Confidential
Service Bus 12c Architecture 7

TCS Confidential
8
Synchronous and Asynchronous

TCS Confidential
9

MAA Architectures for Continuous Availability

Maximum availability architecture (MAA) solutions that can be used to provide continuous availability to protect an
Oracle WebLogic Server system against downtime across multiple data centers. It also describes how the Continuous
Availability features can be used with each architecture.

• Active-Active Application Tier with an Active-Passive Database Tier
• Active-Passive Application Tier with an Active-Passive Database Tier
• Active-Active Stretch Cluster with an Active-Passive Database Tier

TCS Confidential
10

Work Manager

Work Manager when configured on Proxy service is used to limit the number of threads running a proxy Service and
Work Manager when configured for a Business service used to limit the number of threads that process response from
the back end system. It is important to understand that work managers are used to prioritize work unlike throttling
which is used to restricts the number of records. So there is a chance that you might loose some data when you have
enabled throttling but with work manager you will not loose the data, it will be just the prioritization of service will
change.

Work-Manager can be configured in OSB for proxy as well as business services.

TCS Confidential
11

Error handling

Error handling in OSB is fairly straight forward but can seem more complex than needed.

Error handling can be configured at 4 different areas in and OSB Proxy Service.

• Proxy Service
• Route Node
• Pipeline
• Stage Node

If an error is not handled in any of these areas then it will be caught in the System error handler.
An error will be handled by the inner-most encompassing error handler. In other words, if there is no error handler
configured at the level the error occurred then the error will be processed by the next level error handler. Below is an
outline of how the error handlers are nested.

Stage Node -> Pipeline -> Proxy Service -> System Error Handler
Route Node -> Proxy Service -> System Error Handler

TCS Confidential
12

REST Adapter in Service Bus


The Representational State Transfer (REST) adapter enables you to exchange messages between remote clients or web
service servers and the Integration Server. It supports dynamic URLs, REST API polling, multiple operations per channel
as well as XML and JSON data formats.

Implementation of REST adapter in Oracle Service Bus (12C). REST adapter allows an easy way of calling/exposing REST
services based on a Web Application Description Language (WADL).

Create a REST service with OSB 12c.


• Create OSB project.
• Create OSB Project. ...
• Please verify that Full path will be http://host-port/proxy-uri/relative-path. ...
• After completing this adapter looks like. ...
• Configure it with previously created REST adapter and uncheck expose as proxy service option.

Using Translate activity for XML to JSON


• Click gear icon to define NXSD schema as per required JSON data.
• Finish the wizard as shown below to create NXSD.
• Create BPEL variable varJson of NXSD complex type as shown below.
• Create XSLT transformation to transform the input variable to varJson.
TCS Confidential
13
Java callout in OSB
Java callouts are static operations implemented in Java and packaged in a jar file. The jar file and all dependencies
have to be included into the OSB project. Then it is possible to select the operation in the java callout node. There are
some restrictions to use Java Callout activity: Java code must be packaged as jar. The java method that will be called
from OSB

• Create a simple java class: JAVA callout in OSB


• Create jar that will contain the .class file.
• Copy the jar file in the OSB project
Drag the Java Callout activity in the pipeline and configure the properties JAVA callout in OSB
Method: Browser the jar and select the method that you want to call and click OK
Arguments: Set the value of arguments
Return: Assign the variable in which you want to get the output of the method
• Drag the log activity and print the greeting variable
• Run the pipeline and see the output

TCS Confidential
14

Transports, Adapters, and Bindings


• Service Bus supports the following transport protocols:
• DSP (Oracle Data Service Integrator)
• EJB/RMI
• Email (POP/SMTP/IMAP)
• File
• (S)FTP
• HTTP(S)
• JCA
• JEJB
• JMS (including MQ using JMS, and JMS/XA)
• Local (Oracle proprietary for inter-ESB communication)
• MQ (WebSphere MQ)

TCS Confidential
15
Adapters
• AQ Adapter
• Coherence Adapter
• Database Adapter
• File Adapter
• FTP Adapter
• JDE World Adapter
• JMS Adapter
• LDAP Adapter
• LDAP Adapter
• MQ Series Adapter
• MSMQ Adapter
• Oracle E-Business Suite Adapter
• Salesforce Cloud Adapter
• SAP Adapter
• Socket Adapter
• Third Party Adapter
• User Messaging Service Adapter

TCS Confidential
16

Oracle WebLogic Scripting Tool (WLST)


WLST (WebLogic Scripting Tool) is one of the many WebLogic features that ease the management and administration of
WLS instances. It is a command line based tool that can be used to create, manage, and monitor WebLogic domains.
The Oracle WebLogic Scripting Tool (WLST) can be used to manage Oracle Fusion Middleware components, such as
WebCenter Content with a Content Server instance, from the command line.

The WebLogic Scripting Tool is a command-line scripting environment for creating, managing, and monitoring Oracle
WebLogic Server domains. It is based on the Java scripting interpreter, Jython. In addition to supporting standard Jython
features such as local variables, conditional variables, and flow control statements, the WebLogic Scripting Tool provides a
set of scripting functions (commands) that are specific to Oracle WebLogic Server instances 

TCS Confidential
17
OWSM policies and Auth/Identity
Security is one of the main aspects while developing any service and is no different from our regular web applications.
Service Bus supports open industry standards for ensuring the integrity and privacy of communications and to ensure
that only authorized users can access resources in a Service Bus domain. It uses the underlying WebLogic security
framework as building blocks for its security services.

Service Bus uses Oracle Platform Security Services (OPSS) and Oracle Web Services Manager (OWSM) as the building
blocks for higher-level security services including authentication, identity assertion, authorization, role mapping,
auditing, and credential mapping. In order to configure Service Bus access security, you must first configure Oracle
WebLogic Server security. Service Bus uses OWSM to provide a policy framework to manage and secure web services
consistently across your organization.

• Create http based proxy and assign owsm policy to created proxy.
• Create relevant user and group in server.
• Assign particular group to particular user.
• Assign group created in server with proxy service.
• Test the proxy service from soap UI, by passing username and password in soap-header.

TCS Confidential
18
Jenkins and CI-CD
Jenkins is an open source automation server. With Jenkins, organizations can accelerate the software development
process by automating it. Jenkins manages and controls software delivery processes throughout the entire lifecycle,
including build, document, test, package, stage, deployment, static code analysis and much more.
You can set up Jenkins to watch for any code changes in places like GitHub, Bitbucket or GitLab and automatically do a
build a with tools like Maven and Gradle. You can utilize container technology such as Docker and Kubernetes, initiate
tests and then take actions like rolling back or rolling forward in production.

Continuous integration
In modern application development, the goal is to have multiple developers working simultaneously on different features
of the same app. However, if an organization is set up to merge all branching source code together on one day (known as
"merge day"), the resulting work can be tedious, manual, and time-intensive. That’s because when a developer working in
isolation makes a change to an application, there’s a chance it will conflict with different changes being simultaneously
made by other developers. This problem can be further compounded if each developer has customized their own
local rather than the team agreeing on one cloud-based IDE.
Continuous integration (CI) helps developers merge their code changes back to a shared branch, or "trunk," more
frequently—sometimes even daily. Once a developer’s changes to an application are merged, those changes are validated
by automatically building the application and running different levels of automated testing, typically unit and integration
tests, to ensure the changes haven’t broken the app. This means testing everything from classes and function to the
different modules that comprise the entire app. If automated testing discovers a conflict between new and existing code,
CI makes it easier to fix those bugs quickly and often.
TCS Confidential
19

Continuous delivery
Following the automation of builds and unit and integration testing in CI, continuous delivery automates the release of that
validated code to a repository. So, in order to have an effective continuous delivery process, it’s important that CI is already
built into your development pipeline. The goal of continuous delivery is to have a codebase that is always ready for
deployment to a production environment.
In continuous delivery, every stage—from the merger of code changes to the delivery of production-ready builds—involves
test automation and code release automation. At the end of that process, the operations team is able to deploy an app to
production quickly and easily.

TCS Confidential
20
Creating an Oracle Service Bus Application with Oracle
JDeveloper 12c

• Creating Service Bus Application, Project, Proxy and Business services.


• Working with resources like WSDL, XSD, XSLT, XQuery etc.
• Sharing Service Bus resources across Service Bus projects to enable reuse and modularity.
• Creating Pipeline Templates, Pipelines and using nodes like Pipeline Pair, Stage, Routing and Operational Branches.
• Using Domain Value Maps (DVM) for storing configuring properties and using them in message flow.
• Creating Service Accounts and using them in message flow at Runtime.
• Enriching the messages using intermediate Service callouts in Pipelines.
• Routing messages to business services using Service Callout, Routing and Routing Table.
• Working with Split-Joins.
• Using Service error handlers in Pipelines.
• Securing Proxy service using OWSM.
• Deploying and Testing Proxy and Business services.

TCS Confidential
21

SOA Overview
An architectural style whose goal is to achieve loose coupling among interacting
software agents Protocol Independence Interoperability. Oracle SOA Suite is a
comprehensive, hot-pluggable software suite that enables you to build, deploy, and
manage integration using service-oriented architecture (SOA). A single deployment and
management model. End-to-end security. Unified metadata management. Oracle
SOA Suite enables you to transform complex application integration into agile and
reusable service-based applications to shorten the time to market, respond faster to
business requirements, and lower costs. Critical business services, such as customer,
financial, ordering information, and others that were previously accessible only in
packaged application user interfaces can now be rapidly modeled for mobile devices
such as smart phones and tablets.

TCS Confidential
22
Key Concepts

• Unifies cloud applications with on-premises applications to minimize complexity.


• Leverages existing functionality for rapid mobile enabling with representational
state transfer (REST) support.
• Designs SOA composite applications from disparate services and applications.
• Connects to virtually any data source technology (messaging, database, and
• so on), application, or trading partner through a unified connectivity framework,
• including adapters and B2B gateways, and preintegration with Oracle Data
• Integration Suite.
• Routes, transforms, and virtualizes services through the highly scalable
• Oracle Service Bus.
• Orchestrates and builds process automation with Oracle BPEL Process Manager.
• Builds agility by externalizing specific blocks of logic using Oracle Business Rules.
• Performs real-time detection of specific patterns across multiple data streams
• and time windows through Oracle Event Processing.

TCS Confidential
23
SOA Suite Architecture
The basic life cycle of an SOA composite application is as follows:
• Use Oracle JDeveloper to design an SOA composite application with various SOA components.
• Package the composite application for deployment.
• Deploy the SOA composite application to the SOA Infrastructure. The SOA Infrastructure is a Java EE-compliant
application running in Oracle WebLogic Server. The application manages composites and their life cycle, service
engines, and binding components.
• Use Oracle Enterprise Manager Fusion Middleware Control to monitor and manage the composite application for a
farm's SOA infrastructure.

TCS Confidential
24
Design patterns
• One-Way Messages
• Synchronous Interactions
• Asynchronous Interactions
• Asynchronous Interactions with a Timeout
• Asynchronous Interactions with a Notification Timer
• One Request, Multiple Responses
• One Request, One of Two Possible Responses
• One Request, a Mandatory Response, and an Optional Response
• Partial Processing
• Multiple Application Interactions

TCS Confidential
25
SOA Adapters
Oracle Adapters use JCA technology to connect external systems to the Oracle SOA Suite.
Oracle SOA Suite provides the following technology adapters to integrate with transport protocols, data stores, and
messaging middleware:

• BAM
• FTP
• Java Messaging Service (JMS)
• Advanced Queuing (AQ)
• Files
• Message Queuing (MQ) Series

Oracle also provides support for third-party adapters.

TCS Confidential
26
Polling in Oracle SOA
Oracle SOA Database Adapters provide a polling mechanism that will periodically query a table to see if a there is a
new or changed record. If so, it can trigger a BPEL process.

When deciding to use the Oracle SOA Database Adapter the use of a good poller friendly staging table makes life a bit
easier.  It is also good to know a few things about how the database adapter works.

• The adapter only invokes wizard generated SQL for polling purposes, no externally created SQL or PL/SQL can be
leveraged.
• The adapter builds the pre-polling, polling, and post-polling queries automatically based on fields and values
chosen in the polling setup wizard.
• In a clustered environment there will be a SOA DBAdapter application running and polling on each managed server
in the cluster.  With multiple adapter polling, duplicate record processing and other problematic record
processing scenarios can easily occur.
• When using the Reserved Value feature/setting in a logical delete scenario, the database adapter must update
source table that is being polled, with system specific data for a short period of time.  This means the column
updated will need to be able to accommodate the system value used for the update.

TCS Confidential
27

Error handling
Oracle SOA Suite provides a generic fault management framework for handling faults in BPEL processes. If a fault
occurs during runtime in an invoke activity in a process, the framework catches the fault and performs a user-specified
action defined in a fault policy file associated with the composite or component. Fault policies are applicable to the
faults that result from the invoke activity. Faults can occur because of preassertion, postassertion, invocation, or actual
business failures in the target service.
If a fault results in a condition in which human intervention is the prescribed action, you perform recovery actions
from Oracle Enterprise Manager Fusion Middleware Control. The fault management framework provides an
alternative to designing a BPEL process with catch activities in scope activities.
This section provides an overview of the components that comprise the fault management framework.


• The fault management framework catches all faults (business and runtime) for an invoke activity.

• A fault policy file defines fault conditions and their corresponding fault recovery actions. Each fault condition
specifies a particular fault or group of faults, which it attempts to handle, and the corresponding action for it. A
set of actions is identified by an ID in the fault policy file.

• A set of conditions invokes an action (known as a fault policy).

TCS Confidential
28

• Email or JMS notify users of errors associated with a condition.

• A fault policy bindings file associates the policies defined in the fault policy file with the following:
• SOA composite applications
• BPEL process and Oracle Mediator service components
• Reference binding components for BPEL processes and Oracle Mediator service components

The framework looks for fault policy bindings in the same directory as the composite.xml file of the SOA composite
application or in a remote location identified by two properties that you set. The remote location is in the MDS
Repository.

• The fault policy file (fault-policies.xml) and fault policy bindings file (fault-bindings.xml) are placed in either of the
following locations:
• In the same directory as the composite.xml file of the SOA composite application.
• In a different location that is specified with two properties that you add to the composite.xml file. This
option is useful if a fault policy must be used by multiple SOA composite applications. This option
overrides any fault policy files that are included in the same directory as the composite.xml file. The
following example provides details about these two properties. In this example, the fault policy files are
placed into the SOA part of the Oracle Metadata Services (MDS) Repository shared area.


TCS Confidential
29

Encryption and Decryption


Oracle SOA Suite is used for reliable transfer of information, it stores whole the message in SOA_INFRA schema. We can
see incoming and outgoing messages in audit trail from EM console. That means user which has access to EM console can
see all the messages coming and going through middleware, sometimes some of the information which is flowing
through Oracle SOA Suite is very critical and SOA Suite user should not have access to see that critical piece of
information. In this post we will discuss how to fulfill this requirement using Oracle SOA Suite.

TCS Confidential
30

In Oracle SOA 12c, encryption policy is used to encrypt and decrypt the message, message encryption happens at
component binding that means message get encrypted before it come to component (BPEL or Mediator) and we see only
encrypted message in audit trail. Message decryption happens at reference binding level that means message fields get
decrypted before it is sent to target service/system.

TCS Confidential
31
Steps to create BPEL process
In a new application:
• From the Applications window, select File > New > Application.
• Under General in the Categories list, select Applications.
• In the Items list, select SOA Application, and click OK. This starts the Create SOA Application wizard.
• In the Application Name dialog, enter an application name in the Application Name field.
• In the Directory field, accept the default location or enter a new directory path in which to create the SOA composite
application.
• Click Next.
• In the Project Name dialog, enter a name in the Project Name field.
• In the Directory field, accept the default location or enter a new directory path in which to create the project.
• Click Next.
• In the Start from section, ensure that Standard Composite is selected. The other selection, SOA Template, enables you
to create a reusable part of a SOA project to bootstrap new projects. For more information, see Oracle SOA Suite
Templates and Reusable Subprocesses .
• In the Project SOA Settings dialog, select Composite With BPEL Process.
• Click Finish.

TCS Confidential
32

After completion of the above steps, it invokes the Create BPEL Process dialog shown here below

TCS Confidential
33

TCS Confidential
34

THANK YOU

TCS Confidential

You might also like