Hi,
I am
Jagadish and I am
a Certified Oracle Fusion Middleware Consultant (I work on SOA, BPM, OSB & WebCenter) and
Corporate Trainer as well.
This Blog refers to
SOA Implementations and Its features.
With My Personal Experience on Oracle SOA Suite I'm just sharing to you all.
Well,
Oracle introduced its one of the Fusion Middleware Products as ORACLE SOA SUITE but after releasing the Oracle SOA Suite's 11g version into the Market, The word Suite really became as Sweet. Infact we should pronouns the Suite as Sweet.
Okay, Let me go with the subject first.
We have few popular Architectures in the Present IT Market.
One of them is SOA and It stands for Service Oriented Architecture.
* A service is a function that is well-defined, self-contained, and does not depend on the context or state of other services.
Let me give you an Idea for this and just have a look at bellow diagram
The above diagram represents the Orientation of Services. That diagram suggests that how the services are grouped together to provide a Business Logic.
For more clarification, I will take an Example of Google Services.
When the above diagram compares to Google Search,
Broker is GOOGLE
Service Provider is FACEBOOK (Just take it as an example)
Consumer is User or YOU.
Now please keep your attention over here,
let me think that I'm the Facebook owner and initially i have to provide/publish/deliver all of my services first in the form of URL to a Mediator such as Broker(Google).
So Google has got the URL of Facebook homepage.
The
USER enters into the picture now,
Lets think that he doesn't know the Facebook's URL as he didn't ever open it. So he requests the Broker (Google) to FIND it (as shown in the above) and Broker will take you to the home page of Facebook with the provided information to it(Facebook has already published its URL to Google).
So finally you will be directly communicating with the Facebook (Service Provider).
Here you need to know that, all the services such as Provider, Consumer(Requester) and Broker are grouped together to develop a Business Logic.
All the Business Services are binding together for providing a better Business Logic.
Note: Please think that i am just sharing the general example.
So SOA is also follow the same thing as i said with general example.
Now go with Technical Aspect.
What is SOA.?
* SOA is one of the Middleware Components.
* SOA (service-oriented architecture) is essentially a collection of services. These services communicate with each other.
Well, SOA is strategy for developing and integrating the different business systems with mainly three features as follows
1. Interoperability (Providing Communication for more than one systems at a time and make them to work together)
2. Re-usability (You can reuse the developed service any time and any where)
3. Agility (flexible)
If you are searching for a complete, integrated and hot-pluggable SOA
platform, then Oracle SOA Suite 11g is the ideal solution. This unified
platform enables next-generation business applications by simplifying
service access, integration, orchestration, Complex Event Processing
(CEP), monitoring and management. Oracle SOA Suite 11g is 100 percent
standards based allowing it to interoperate with existing IT
investments, thus lowering upfront costs. Numerous benefits of this
infrastructure include:
- The integrated SCA-based designer improves developer efficiency and
productivity via its intuitive drag-and-drop interface, allowing the
rapid creation and deployment of business applications, while promoting
asset re-use and fostering collaboration.
- Unified events and services allow the creation of highly flexible
and responsive applications while also allowing end-to-end IT and
business visibility into wide sweeping implementations, helping clients
detect patterns and trends in real time.
- With its integration of event driven network and services
capabilities, Oracle SOA Suite 11g enables the straight-forward
development of event based applications utilizing built in asynchronous
messaging protocols.
- Oracle SOA Suite 11g provides centralized support for human-centric, system-centric, and document-centric processes.
Orchestrate Healthcare’s expert integration consultants work with your
internal staff to provide technical expertise, project management,
project methodologies, and process improvement. Our proven
implementation, version upgrade / migration, and custom Interface
expertise with Oracle SOA Suite 11g and other leading solutions in
healthcare integration allows us to efficiently manage any size project.
The bellow example can give you a clear idea as i said before.
The above diagram shows the SOA implementation with its Benefits as follows.
* Service-oriented architectures are not a new thing. The first
service-oriented architecture for many people in the past was with the
use
DCOM or Object Request Brokers (ORBs) based on the CORBA
specification.
Benefits of SOA:
* Reuse of functions across different business organizations.
* Providing Integration between different business systems at a time.
* Reaching the business changes through different functional implementation (you can do any kind of modifications by adding new to the existing program. so no need to change the service or program from beginning level)
* Not much of any Technology is needed for the Business implementation.
How SOA has Captured the IT market..?
Before SOA come into the picture, there was a middle-ware component called CORBA (Common Object Request Broker Architecture) used for Integrating the different business systems and also VSAM(Virtual storage access method) was used for updating operation.
CORBA carries big problems as follows.
Mainly CORBA provides Tightly Coupled Structure.
1. Contains Legacy systems. So they are not much flexible to make better integration.
2. Uses acute coding for developing and integrating.
3. Very Cost Effective
4. Takes long time for making communication between different business systems.
5. ROI (Return of Investment) is very less. It means the share value of any product will be less and it doesn't give much profit compare to your investments.
But SOA has overcome the above problems as its a
LOOSELY Coupled System.
This shows as follows.
The above example will make you to realize the exact difference between Loosely and Tightly Coupling.
So SOA is provides best Business and Web Logic through this Loosely coupling implementation.
* SOA follows XML standers to convert every thing as WebService and this can be done through Web designing components such as XML, XSD, XSLT and WSDL.
These are the prerequisites of Learning and knowing SOA.
You can learn these web designing tools from the following pasted URLs
http://www.w3schools.com/schema/schema_editor.asp
http://www.w3schools.com/wsdl/wsdl_intro.asp
* SOA we need the services to be loosely coupled. A web service communicates using SOAP protocol which is XML based which is very loosely coupled. It answers the what part of the service.
Please refer the bellow Url for getting the idea of SOAP structure and uses.
http://publib.boulder.ibm.com/infocenter/cicsts/v3r1/index.jsp?topic=%2Fcom.ibm.cics.ts31.doc%2Fdfhws%2Fconcepts%2Fsoap%2Fdfhws_message.htm
* SOA services should be able to describe themselves.WSDL describes how we can access the service
How many SO-Architectures are presented right now:
Now We have different SO-Architectures for both IT and Business Systems.
They are as follows.
1. Oracle SOA Suite (Very popular one and It has captured the IT market with its amazing features from 11g version as It provides best Web Logic)
2. IBM SOA (It requires more perfection in JAVA EE concepts because IBM SOA contains acute Java fundamentals and working environment as well)
Note: IBM SOA was much popular one before Oracle SOA 11g came into the Market.
3. TIBCO SOA (Its very faster in Clustering mode)
4. Web Methods (It had shutdown all of its services as It was Migrated by IBM)
5. Java CAPS (It had adopted to Oracle Corp. as Sun Micro Systems was taken by Oracle itself)
These are the few popular Architectures which follows SOA principles.
Lets have look on Oracle SOA Suite 11g.
Oracle has Introduced a collection of
Fusion Middleware Tools and we can call it as
Oracle Fusion Middleware.
Fusion means it consists of everything such as Front End, Back End, Middlware, Services, Financial Applications(E-Business suite) and etc.
Few Oracle Fusion Middleware Tools:
0
. AIA(Application Integration Architecture) is most advanced one for faster integration.
1. Oracle SOA Suite (contains components like BPEL, Human Workflow, BAM, Mediator and etc)
2. Oracle Service Bus (It was acquired by BEA and BEA was acquired by Oracle Corp)
3. Oracle B2B (Its for Electronic Data Interchanging)
4. Oracle BPM (for Business Processing)
5. Oracle UCM (Universal Content Manager)
these are the few Oracle Fusion Middleware tools which i have known completely.
Now We go with the Oracle SOA Suite 11g Architecture:
Architecture of Oracle SOA Suite 11g
This is the Architecture of Oracle SOA Suite-11g and it internally it has SCA.
* Service-component architecture (SCA) is a group of specifications intended for the development
of applications
based on service-oriented architecture (SOA), which defines how computing entities interact to
perform work for each other.
- SCA helps you think about the business services not the
technology
- SCA helps you construct services, and their teams,
around a service view
- SCA gives you a management entity that fits with a
service architecture not a technology architecture
- SCA destroys the dreadful layer marketectures that
vendors push
So simply put SCA helps you build
better SOA by giving you more of a SOA view of the world. The way to build good
SCA is the way to build good architectures
- Think about your services
- Organise your teams around those services
- Work out the best way to build each service
- Delivery
- Operate
Therefore these are the main goals of SCA.
Well, the Information flow of Oracle SOA is like bellow.
The above diagrams directly tells that the flow of information which is passing in Oracle SOA Suite.
1. Creating an XML file
2. Converting the XML into XSD for defining database
3. Generating a WSDL file in SOA Layer based on the XSD.
4. Providing a mapping transaction or function through XSLT then after the process will be vice versa.
So this is how the information can be flown into SCA of Oracle SOA.
Service Components in SOA:
We have few different Service Components which are mainly come into the picture of SOA.
They are
1. BPEL process: It is an Orchestration process of technology which builds the SOA Applications.
* BPEL has to be primarily used for orchestrating the services.
* Do not add complex business logic here. It should belong to the service layer.
2. Business Rules:
A Business Rule is a software system that executes one or more Business rules in a run-time production environment.
3. Human Task: Human task or Human workflow is a piece of work done by a Human during Run-time.
4. Mediator: Mediator provides a lightweight framework to mediate or transmit the information between various components within a composite application.
Design an SOA Composite Application:
You can easily create an application
and project in which to design a service-oriented architecture (SOA) composite
application. You then design the contents of the application to include binding
components that make the application accessible to the outside world and
service components that implement the business logic or processing rules of the
application. You connect these components together with wires to enable message
communication and create a transformation to map the message (payload) contents
from the source binding component to the target service component.
You must install a database and
configure it with the Oracle SOA Suite schema before creating an application
server connection and deploying an SOA composite application.
Create an Application and a Project: Use the Create SOA Application wizard to create an
application and a project with a business process execution language (BPEL)
service component. A BPEL process service component enables you to integrate a
series of business activities and services into an end-to-end process flow.
Add a Web Service Binding Component: Use the Create Web Service dialog to create a binding
component service that provides a SOAP protocol entry point into the SOA
composite application for the outside world.
Add a Mediator Service Component: Use the Create Mediator dialog to create a Mediator service
component for routing data through the SOA composite application.
Connect the Components: Connect the binding component service and service
components together with wires that enable message communication.
Pass the Payload: Use the Routing Rules panel, Request Transformation Map
dialog, and XSLT Mapper to create a transformation mapper file that maps the
message (payload) contents from the source web service WSDL file to the target
BPEL process WSDL file.
Create an Application Server
Connection: Use the Create Application Server
Connection wizard to create a connection to the application server to which to
deploy the SOA composite application.
Deploy the Application: Deploy the application to the application server in which
you created the connection. When prompted, accept all default settings on the
Revision ID dialog and the Deployment Plan dialog that display during the
deployment process.
Creating an Application and a Project
The JDeveloper application is the
highest level in the organizational structure. It stores information
about the objects you are working with, while you are creating your
application. It keeps track of your projects and the environment
settings while you are developing.
To begin creating a new
application and project, you will open the Create Application dialog. To
open the dialog, in the Application Navigator, choose
New Application.
If an application is open, choose
New Application from the
Applications dropdown list.
To follow along with the example, enter the values mentioned in the steps.
A
JDeveloper application allows you to specify a predefined type of
environment, based on prebuilt templates, depending on the type of
application you want to create (web application, Java application, and
so on). The template you select determines the initial project
structure, and the named project folders within the application. You can
alter existing templates or create new ones.
A JDeveloper project
is used to logically group files that are related. A project keeps
track of the source files, packages, classes, images, and other elements
that your program may need. You can add multiple projects to your
application to easily access, modify, and reuse your source code.
Projects
manage environment variables such as the source and output paths used
for compiling and running your program. Projects also maintain compiler,
runtime, and debugging options so that you can customize the behavior
of those tools per project.
In the Application Navigator, projects are displayed as the top level in the hierarchy.
When
you create a project in the Create SOA Application Wizard, an SOA
composite is automatically selected. SOA composite applications conform
to the Service Component Architecture (SCA) assembly model. SCA provides
the service details and their interdependencies to form composite
applications. SCA enables you to represent business logic as reusable
service components that can be easily integrated into any SCA-compliant
application. The resulting application is known as an SOA composite
application.
You
also select the BPEL process service component to initially include in
your project. A BPEL process service component enables you to integrate a
series of business activities and services into an end-to-end process
flow. The BPEL process service component provides process orchestration
and storage of long running, asynchronous processes.
This
invokes the Create BPEL Process dialog for defining the type of BPEL
process to include in your SOA composite application (for example,
synchronous, asynchronous, or one way).
You
must install a database and configure it with the Oracle SOA Suite
schema before creating an application server connection and deploying an
SOA composite application.
Now
- Open the Create Application wizard [
file > new > applications > SOA application] .
- In the
Application Name
field, enter
SOA-first-composite
.
- Select
SOA Application in the
Applica
tion Template
list, and click
Next
.
- In the
Project Name
field, enter
myFirstComposite
, and click
Next
.
- In the
Composi
te Template
list, select
Composite With BPEL, and click
Finish
.
- In the Create BPEL Process dialog, enter
emptyBPEL
in the
Name
field.
- From the
Template
list, select
One Way BPEL Process.
- Deselect the
E
xpose as a SOAP Service
checkbox.
- Click
OK. The BPEL Process Designer appears.
- Close the BPEL Process Designer.
In the IDE
After you create your application and project, the Application Navigator and SOA Composite Editor should look like this:
The following BPEL process service component files appear in the Application Navigator:
- emptyBPEL.xsd defines a default schema XSD file for the one-way BPEL process service component.
- composite.xml defines the components and attributes of the SOA composite application.
- emptyBPEL.bpel
contains a minimal set of activities based upon the process type you
selected (for this example, one-way BPEL process). You add syntax to
this file when you add activities, create variables, create partner
links, and so on.
- emptyBPEL.componentType describes the services and references for the BPEL process.
- emptyBPEL.monitor describes the meta data for the BPEL process monitors.
- emptyBPEL.wsdl
defines the input and output messages for the BPEL process flow, the
supported client interface and operations, and other features.
- monitor.config defines the deployment parameters for BPEL process monitors.
Double-clicking the BPEL process
service component icon in the SOA Composite Editor invokes the Oracle
BPEL Designer. The Oracle BPEL Designer enables you to design the
contents of your BPEL process by dragging elements (known as activities)
into the process and editing their property pages. You can also
integrate technology adapters and services, such as human tasks,
transformations, notifications, sensors, and business rules into the
process.
The Application Overview page guides you as you build a
Fusion Web application, to create files and objects and view the status
of them.
Adding a Web Service Binding Component
Binding components such as web
services make SOA composite applications accessible to the outside
world. There are two types of binding components in an SOA composite
application: services and references.
- Services advertise and provide an
entry point for messages sent from the outside world to the SOA
composite application. Services are created in the
Exposed Services swimlane of the SOA Composite Editor.
- References enable messages to be sent from the SOA composite application to external services. References are created in the
External References swimlane of the SOA Composite Editor.
The binding component for a web service contains the following:
- A Web Services Description Language (WSDL) file that describes service capabilities
- The binding connectivity that
describes the protocols that can communicate with the service (a web
service using the simple object access protocol (SOAP))
You add a web service to an SOA composite application by dragging it from the Component Palette into the
Exposed Services swimlane
of the SOA Composite Editor. This provides the entry point for messages
sent from the outside world to the SOA composite application.
This
invokes the Create Web Service dialog for creating a binding component
service that provides a SOAP protocol entry point into the SOA composite
application for the outside world. You create the WSDL file and port
type for the service by selecting the
Generate WSDL from schema(s)
icon to invoke the Create WSDL dialog. This dialog enables you to create
a standard WSDL file that describes service capabilities.
- In the Component Palette, select
SOA from the dropdown list.
- Drag a
Web Service component into the
Exposed Services column of the SOA Composite Editor.
- In the Create Web Service dialog, enter
receive
in the
Name
field.
- Click the
Generate WSDL from schema(s) icon to the right of the
WSDL URL
field.
- In the Create WSDL dialog, accept all default values and click
OK.
- Click
OK.
In the IDE
After you create the binding component service, the SOA Composite Editor should look like this:
The web service WSDL file,
receive.wsdl, displays in the Application Navigator and advertises the service capabilites to the outside world. The
singleString.xsd file provides a schema XSD file for the web service.
Adding a Mediator Service Component
Service components implement the
business logic or processing rules of the SOA composite application. A
Mediator service component routes data through an SOA composite
application. Using the Mediator service component, you create routing
services and rules for them. A routing service is the key component for
moving a message from entry point to exit point in an application. The
rules determine how a message instance processed by the routing service
gets to its next destination.
You add a Mediator service component to an SOA composite application by dragging it from the Component Palette into the
Components section of the SOA Composite Editor.
This
invokes the Create Mediator dialog for defining the type of Mediator
service component to create (for example, to route data synchronously,
to route data asynchronously, or to define an interface at a later
time).
- In the Component Palette, select the
Mediator component and drag it into the
Components section of the SOA Composite Editor.
- In the Create Mediator dialog, enter
SOAP2BPEL
in the
Name
field.
- Select
Define Interface Later from the
Template
dropdown list, and click
OK.
In the IDE
After creating the Mediator service component, the SOA Composite Editor should look like this:
Two Mediator files,
SOAP2BPEL.componentType and
SOAP2BPEL.mplan, appear in the Application Navigator. The
.componentType file describes the services and references for the Mediator service component and the
.mplan file contains Mediator component metadata.
Connecting the Components
Wires enable you to connect binding
component services, service components, and binding component references
in an SOA composite application for message communication.
To
connect a binding component service to a Mediator service component,
place the cursor over the right handle of the binding component service.
Drag the wire to the left handle of the Mediator service component.
To
connect the Mediator service component to the BPEL process service
component, place the cursor over the right handle of the Mediator
service. Drag the wire to the left handle of the BPEL process service
component.
The above scenario can be as follows
- Select the
arrow on the right side of the
receive web service.
- Drag the
arrow to the
arrow on the left side of the
SOAP2BPEL Mediator service.
- Select the
triangle on the right side of the
SOAP2BPEL Mediator service.
- Drag the
triangle to the
arrow on the left side of the
emptyBPEL BPEL process.
In the IDE
After you connect the binding
component service, Mediator service component, and BPEL process
component, the SOA Composite Editor should look like this:
Passing the Payload
You must pass the incoming payload
from the binding component service to the Mediator service component to
the BPEL process service component. This requires you to create a
transformation to map the payload contents from the source schema WSDL
file of the web service to the target schema WSDL file of the BPEL
process. The Mediator service component routes the payload between the
two.
Double-click the Mediator service component and click the icon to the right of the
Transform Using field.
In the Request Transformation Map dialog, you select to create a new transformation mapper file.
This
action opens the XSLT Mapper. The XSLT Mapper enables you to create
data transformations by mapping source schema elements to target schema
elements. Transformations are saved in an XSL map file.
- In SOA Composite Editor, double-click the
SOAP2BPEL Mediator component.
- Click
next to the
Transform Using field.
- In the Request Transformation Map dialog, select
Create New Mapper File
.
- Accept the default name in the
Create New Mapper File
field, and click
OK.
- In the XSLT Mapper, drag the
inp1:input node in the
source panel to the
client:input node in the
target panel.
- Click
Save All.
- Close the XSLT Mapper.
- Close the
SOAP2BPEL Mediator component.
In the IDE
Once created, the
singleString_To_process.xsl file in the
xsl folder of the Application Navigator should look like this:
This file contains the source schema to target schema mapping you created in the XSLT Mapper
Creating an Application Server Connection
You must create a connection to an
Oracle Application Server to which to deploy your SOA composite
application. You must install a database and configure it with the
Oracle SOA Suite schema before creating an application server
connection.
Select
File
New
. In the New Gallery, select
Connections in the
Categories
tree and
Application Server Connection in the
Items
list. Then click
OK.
Enter a name for the connection.
Specify a username and password to authenticate the connection.
Specify the host on which the application server is installed.
Click
Test Connection
to test that you have successfully created an application server connection.
In the IDE
After creating an application server connection, select
View
Application
Server Navigator
. The connection displays in the Application Server Navigator as a resource, and should look like this:
The SOA node in the connection tree indicates that SOA has already been configured in this application server.
Deploying the Application
In order to test and monitor your
SOA composite application, you deploy the application deployment profile
to the Oracle WebLogic Server instance to which you created a
connection. Select
Deplo
y
m
yFirstComposite
.
Accept all default settings in the Deploy myFirstComposite wizard, and click
Finish
. This creates revision 1.0 of your SOA composite application.
- Right-click
myFirstComposite, and select
Deplo
y
myFirstComposite
.
- On the Deployment Action step of the Deploy myFirstComopsite wizard, select
Deploy to Application Server, and click
Next
.
- On the Deploy Configuration step, accept the defaults, and click
Next
.
- On the Select Server step, select
myConnection, and click
Next
.
- On the SOA Servers step, choose the target SOA server to which to deploy the archive, and click
Finish
.
- In the Log window that appears at the bottom, click the
SOA tab to display any SOA compilation errors. If deployment was successful, the words
BUILD SUCCESSFUL
display at the bottom.
- Click the
Deployment tab to display any generic deployment errors.
- Click
Save All.
In the IDE
If deployment was successful, the message that displays in the Log window at the bottom of the designer should look like this:
Click the
Deployment tab. The message that displays should look like this:
Tool for Alerts, real time Dashboards, Reporting and monitoring
BAM: Business Activity Monitoring (BAM) is one of the Service Components of SOA and is mainly used for generating the reports. It is a collection of tools that allow you to manage aggregations, alerts, and profiles to monitor relevant business metrics.
* BAM uses its active data cache to display real-time dashboards.
Now let me describe the Service Adapters in Oracle SOA Suite:
Adapters:
Adapters are must needed because most systems do not provide Web services interfaces, thus adapters are still required in such cases.
* Adapters are just like bridges for existing systems. They act as Interfaces between different business systems.
SOA provides different Service Adapters which are as follows.
1. DB Adapter
2. File Adapter
3. JMS Adapter
4. AQ Adapter
5. MQ Adapter
6. BAM Adapter
7. FTP Adapter
8. Socket Adapter
9. Third party Adapter
and few services such as ADF-BC service, Web Service, B2B, EJB, Direct Binding, HTTP Binding.
One sample example for DB Adapter to retrieve the data from Database.
Architecture and Requirement
|
High level Requirement : Every Job
has a particular minimum and max salary offered , if the min salary for
any Job is more than 15000 , then that needs to be approved by the
finance officer , these approved Jobs are written in a database table,
in case when the salary is less than the specified 15000 then this is
simply written into a file system . Technical Requirement : A Mediator
Driven Process invokes 2 Services based on the Min salary, if its
greater than 15000 , it invokes a particular BPEL process which would
insert Job Data into HR Database after approval, if min salary is less
than 15000 then mediator invokes another BPEL process that writes the
Job data into file system, Yes there can be many other designs including
using Rules Engine to decide on salary and routing it to different
processes but that’s not considered in this example for simplicity
sake.
Design : BPEL Process 1 with Database Adapter and Human Task (This will be responsible for Sending Jobs Data to Database if Approved by Jobs Officer)
Design 2 : BPEL Process 2 with File Adapter and Rules Engine (This will be responsible for writing Jobs Data to a file based on some rules set by Rules Engine)
Design 3 : Mediator Driven Process Connecting BPEL Process 1 and 2 (This
is the main mediator process that would be responsible for connecting
Process 1 and Process 2 , routing and transforming data based on certain
conditions set at Mediator)
Initial Setup Db Adapter Configuration on Console
|
Login to SOA WLS Admin Console at http://localhost:7001/console ,
Create a new data source by name “localhost-hr” and JNDI name as “jndi/localhost-hr”
Since our SOA is running on Admin Server , let the target be admin server
Its assumed that you are running Oracle
XE database , and you have HR Schema installed , incase you dont have
this schema installed you can aswell create the simple table as shown
below
CREATE TABLE “HR”.”JOBS”
(
"JOB_ID" VARCHAR2(10 BYTE),
"JOB_TITLE" VARCHAR2(35 BYTE) CONSTRAINT "JOB_TITLE_NN" NOT NULL ENABLE,
"MIN_SALARY" NUMBER(6,0),
"MAX_SALARY" NUMBER(6,0),
CONSTRAINT "JOB_ID_PK" PRIMARY KEY ("JOB_ID")
)
Give the required username password , test connection
Under deployments , go to DB adapter,
create a Outbound connection pool. in the xADatasource give the value as
“jndi/localhost-hr” which is our JNDI name , save and Update the DB
Adapter plan .
Seeding Users such as Jcooper, Cdoyle etc
|
We would need to have few users like
jcooper, cdoyle , jstein etc including their management chain , refer
the download link here http://download.oracle.com/docs/cd/E12839_01/integration.1111/e10226/appx_users.htm ,
download file is DemoCommunitySeedApp.zip , extract and
deploy SOATestDemoApp.ear file from the WLS Admin Console, this is
easier than running Ant script for the same file , once deployed in the
browser type in the following URL and hit Submit
http://localhost:7001/integration/SOADemoCommunity/DemoCommunitySeedServlet
Design 1 Details : Human Task
|
Its important to get the XSD Schema right , Create a new SOA Application
by Name “Grade1App” , choose the option composite with Bpel process,
modify the schema as shown in the figure , that is change input to
job_id, job_title, max_sal, min_sal
On the components create a Human Task , by name “GradeHT”
Enter General info , task owner is weblogic,
Data needs to be Process element of Grade1Proc.xsd ,
Approver , can be choosen as jcooper or can be picked up from the list
from the “Create Form” , Auto generate task flow ADF form , name it as “Grade1HTForm”
It would take some time to generate necessary ADF UI , you can modify this if required.
Edit the BPEL Process, add Human Task after receive input activity
Task flow parameters needs to be selected from XSD Process element
Click OK
Right click on the Grade1Proc Project, select Deploy to Server option
Select overwrite option , version number
Select the check boxes to include the ADF
Human Task form, this can be one time operation ,
on sub-subsequent updation of BPEL you can deploy only that with out ADF
HT UI
Choose Admin Server
Login to SOA EM Enterprise Manager http://localhost:7001/em Test the Process with proper input values
The Human task is invoked , login to BPM
Worklist application as jcooper
, http://localhost:7001/integration/worklistapp , you can go to
Settings and select Developer mode to view XML details and process flow
Process flow can be viewed under Flow Tab
NOTE : It is important that do need to
link up worklist app with Human Task ADF UI , to do this perform
following steps go to “Component Matrix” under the BPEL Process, click
on Human task , add URI
Application Name is : worklist
Host Name is : localhost
HTTP Port : 7001
URI : /workflow/Grade1HTForm/faces/adf.task-flow?_id=Grade1HT_TaskFlow&_document=WEB-INF/Grade1HT_TaskFlow.xml
/workflow/<your task form application name>/faces/adf.task-flow?_id=
<human task component name in your composite>_TaskFlow&_document=WEB-INF/
<the .xml file you see in your task application's WEB-INF directory>
Click on GradeHT
refer :
http://soaprofessional.blogspot.com/2011/06/details-not-available-for-this-task.html
On the composite , under External references add Database adapter
Give the name as “Hrjobsadapter”
choose a DB connection , ensure that
JNDI name is “eis/DB/localhost-hr” this is same as what we had defined
as a DB Adapter Outbound connection under WLS Admin console
Choose insert only
Select Jobs table
No need to select Sequence
Wire HR DB Adapter to Grad1Proc in the composite
Edit BPEL Process, Add invoke activity to connect to JobsDBAdapter
Just Ensure that this Invoke is under
Accept Switch case after approval , so that only after approval , we
invoke the DB adapter to write into table.
Add an assign activity before invoke jobs adapter , map the input parameters to database table inputs in the invoke
Save all and deploy the BPEL process
Login to EM
Send the required parameters
Login to worklist app as jcooper, Approve
Conclusion : The Jobs Data is sent for Approval , if Approved then the data is written into Database using DB Adapter
I hope this is a briefe Article which gives you an Idea about SOA.
This is just a sample one but we can have lot of examples on Service Components of Oracle SOA.
See-
http://www.oracle.com/technetwork/testcontent/adapter-tutorial11-filedbintegratio-132061.pdf
for best practice, please refer to the Oracle site as follows
http://docs.oracle.com/cd/E12839_01/integration.1111/e10223/tutorial_build.htm
http://www.oracle.com/technetwork/middleware/soasuite/overview/index.html
Therefore This is the small article which i took from my personal experience.
Finally Thank you very much for spending valuable time on my article.
Note: Suggestions are Accepted. Feel free to contact me.
Best Regards,
Jagadish Challa
A Certified Oracle Fusion Middleware Specialist
Email: jagadeesh.ravi4@gmail.com
Skype: jagadeesh.ravi