Monday 2 June 2014

Tutorial on Oracle SOA Suite 11g for Beginners

 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.



  1. SCA helps you think about the business services not the technology
  2. SCA helps you construct services, and their teams, around a service view
  3. SCA gives you a management entity that fits with a service architecture not a technology architecture
  4. 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
  1. Think about your services
  2. Organise your teams around those services
  3. Work out the best way to build each service
  4. Delivery
  5. 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.

new application selection

If an application is open, choose New Application from the Applications dropdown list.

new application selection

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.

creating the project

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.

configure SOA settings page
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).

create BPEL process

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:

composite with empty BPEL process


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.

drag web service into editor

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.

click generate wsdl from schema(s) icon

  1. In the Component Palette, select SOA from the dropdown list.
  2. Drag a Web Service component into the Exposed Services column of the SOA Composite Editor.
  3. In the Create Web Service dialog, enter receive in the Name field.
  4. Click the Generate WSDL from schema(s) icon to the right of the WSDL URL field.
  5. In the Create WSDL dialog, accept all default values and click OK.
  6. Click OK. 

In the IDE

After you create the binding component service, the SOA Composite Editor should look like this:

web service icon in editor

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.

drag a mediator into the 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).

create mediator dialog


  1. In the Component Palette, select the Mediator component and drag it into the Components section of the SOA Composite Editor.
  2. In the Create Mediator dialog, enter SOAP2BPEL in the Name field.
  3. 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:

mediator component in editor

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.

connect components with wires

Drag the wire to the left handle of the Mediator service component.

components wired together

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.

components wired together

The above scenario can be as follows
  1. Select the web service arrow arrow on the right side of the receive web service.
  2. Drag the web service arrow arrow to the mediator arrow arrow on the left side of the SOAP2BPEL Mediator service.
  3. Select the mediator triangle triangle on the right side of the SOAP2BPEL Mediator service.
  4. Drag the mediator triangle triangle to the bpel process arrow 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:
components wired together


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.

create a transformation routing rule

In the Request Transformation Map dialog, you select to create a new transformation mapper file.

create a new 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.

create a source-to-target mapping

  1. In SOA Composite Editor, double-click the SOAP2BPEL Mediator component.
  2. Click transformation icon next to the Transform Using field.
  3. In the Request Transformation Map dialog, select Create New Mapper File .
  4. Accept the default name in the Create New Mapper File field, and click OK.
  5. In the XSLT Mapper, drag the inp1:input node in the source panel to the client:input node in the target panel.
  6. Click save all icon Save All.
  7. Close the XSLT Mapper.
  8. 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:

xsl file in application navigator
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 then choose New . In the New Gallery, select Connections in the Categories tree and Application Server Connection in the Items list. Then click OK.

select the application server connection wizard

Enter a name for the connection.

enter a connection name

Specify a username and password to authenticate the connection.

specify the username and password

Specify the host on which the application server is installed.

specify the host on which the application server is installed

Click Test Connection to test that you have successfully created an application server connection.

test the connection

In the IDE

After creating an application server connection, select View then choose Application Server Navigator . The connection displays in the Application Server Navigator as a resource, and should look like this:


select the application server connection wizard


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 then choose m yFirstComposite .


application menu selections for deployment

Accept all default settings in the Deploy myFirstComposite wizard, and click Finish . This creates revision 1.0 of your SOA composite application.

accept default deployment plan settings


  1. Right-click myFirstComposite, and select Deplo y then choose myFirstComposite .
  2. On the Deployment Action step of the Deploy myFirstComopsite wizard, select Deploy to Application Server, and click Next .
  3. On the Deploy Configuration step, accept the defaults, and click Next .
  4. On the Select Server step, select myConnection, and click Next .
  5. On the SOA Servers step, choose the target SOA server to which to deploy the archive, and click Finish .
  6. 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.
  7. Click the Deployment tab to display any generic deployment errors.
  8. Click save all icon 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:

BUILD SUCCESSFUL message

Click the Deployment tab. The message that displays should look like this:

deployment finished message



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.















Oracle SOA 11g DB Adapter


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

Deploy n Test Human Task


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

DB Adapter

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

Testing Application

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



29 comments:

  1. thanks for explaining oracle in detail this points are very good and very useful for the begineers.

    www.erptree.com/course/oracle-fusion-financials-training-in-ameerpet/

    ReplyDelete
  2. my requirment is to create a webservice that get data from one database table and store this data to anohter database table .
    can you guide ma at ashehzad612@gmail.com

    ReplyDelete
  3. This is very important and imformative blog,thanks for good info Oracle SOA Online Training Bangalore

    ReplyDelete
  4. Good Post! Thank you so much for sharing this pretty post, it was so good to read and useful to improve my knowledge as updated one, keep blogging…!!..Oracle SOA Online Training

    ReplyDelete
  5. This is such a good post. One of the best posts that I\'ve read in my whole life. I am so happy that you chose this day to give me this. Please, continue to give me such valuable posts. Cheers!

    angularjs Training in chennai

    angularjs Training in chennai

    angularjs-Training in tambaram

    angularjs-Training in sholinganallur

    angularjs-Training in velachery

    angularjs-Training in pune

    ReplyDelete
  6. Amazing Article ! I have bookmarked this article page as i received good information from this. All the best for the upcoming articles. I will be waiting for your new articles. Thank You ! Kindly Visit Us @ Coimbatore Travels | Ooty Travels | Coimbatore Airport Taxi

    ReplyDelete
  7. Great site you have got here.. It’s difficult to find high quality writing like yours these days. I truly appreciate individuals like you! Take care!!

    ReplyDelete
  8. Your Website is Very Impressive and Interesting , Thanks for your Kind of Articles to Gaining a more Knowledge About Computer Languages Do visit below for more about it.

    python training in chennai | python training in annanagar | python training in omr | python training in porur | python training in tambaram | python training in velachery

    ReplyDelete

  9. Thanks for sharing this great information I am impressed by the information that you have on this blog. Same as your blog i found another one Oracle ADF . Actually I was looking for the same information on internet for Oracle ADF and came across your blog. I am impressed by the information that you have on this blog. It shows how well you understand this subject, you can learn more aboutOracle ADF . By attending Oracle ADF Training .

    ReplyDelete
  10. Thanks for sharing this great information I am impressed by the information that you have on this blog. Same as your blog i found another one Oracle SOA Training
    . Actually, I was looking for the same information on internet for Oracle SOA Interview Questions and Answers

    and came across your blog. I am impressed by the information that you have on this blog. It shows how well you understand this subject, you can learn more about Oracle SOA Tutorial also.

    ReplyDelete

  11. Thanks for the nice blog here.I was searching this one for a long time.This blog is very helpful for my studies..I got another one site also,which is same as yours Oracle BPM.Check this one also Oracle Fusion HCM Sure it will be helpful for you too..Once more iam thanking you for your creative blog.

    ReplyDelete
  12. I feel really happy to have seen your webpage and look forward to so many more entertaining times reading here .Same as your blog i found another one Oracle Fusion HCM . Actually I was looking for the same information on internet for Oracle Fusion HCM and came across your blog. I am impressed by the information that you have on this blog. Thanks once more for all the details.

    ReplyDelete
  13. Nice information, valuable and excellent design, as share good stuff with good ideas and concepts, lots of great information and inspiration, both of which I need, thanks to offer such a helpful information here. business analytics course in mysore

    ReplyDelete
  14. Birthday wishes are an excellent way to wish a buddy or best friend a Happy birthday! eventprofs Several messages and statements are created to assist you in finding the correctly phrased greetings to start your friend’s fantastic birthday festivities! A simple birthday message text may work as their birthday greeting for some folks. happy birthday wishes, have a wonderful weekend, cute things to say to your girlfriend, national son day quote, good morning love messages, happy saturday quote, good night my love, daughter birthday wishes quotes and skeleton puns

    ReplyDelete