Tuesday, April 19, 2011

Getting started with Oracle SOA Suite development

I'm often asked by colleagues who either want to get started with Oracle SOA Suite development or take it to the next level and become SOA Architects, on how to embark on this effort. This post describes, at a high level, how to familiarize yourself with integration development utilizing Oracle SOA Suite.

The advantages are numerous. The market is hot for Oracle SOA resources, and I definitely encourage this as a field for Oracle IT professionals to consider.

This post is intended to be a high-level overview, and does not go into detail. Reach out to other senior Oracle SOA resources and they can guide you further.

Step 1: Learn XML Basics (2 hours)

I can't emphasize this enough. The goal of this step is to understand core concepts such as nodes, operations, attributes, and SOAP. Learn when to create elements versus attributes. Understand terminology. Familiarize yourself with the the components in a WSDL and SOAP message.

1. Read the following tutorials.
XML           http://w3schools.com/xml/default.asp
XSLT          http://w3schools.com/xsl/default.asp
XPath         http://w3schools.com/xsl/default.asp
Schema        http://w3schools.com/schema/default.asp
Web Services  http://w3schools.com/webservices/default.asp
WSDL          http://w3schools.com/wsdl/default.asp
SOAP          http://w3schools.com/xml/xml_soap.asp
2. Quiz yourself on terminology. 

Step 2: Understand Oracle SOA products (1 hour)

If you don't have familiarity with the suite of Oracle products, the best thing to do is have someone seasoned explain it to you.

- What is Oracle Fusion Middleware?
- What is installed with Oracle SOA Suite 11g?
- Explain the differences between various Oracle SOA products such as BAM, OSR, OER, AIA, OSB, etc.

Step 3: Install Oracle SOA Suite 11g (8 hours)

Even if your focus is on development, it is important to familiarize yourself with the core components that comprise the Oracle SOA Suite infrastructure. Familiarity with the consoles and core configuration is also necessary. Furthermore, this environment is needed to perform your hands-on development exercises.

My recommendation is to install this on Red Hat 5 or Oracle Enterprise Linux 5. Although Windows is okay for development purposes, of the hundreds of deployments out there, I only know of 1 that is running Oracle SOA Suite on Windows.

1. Install Red Hat 5 and apply the prerequisites documented here:

2. Download the required software. Links are located here:

3. Figure out how to startup/shutdown each components.

4. Log in to each console.

5. Software to install:
  • Oracle Database 11g (
  • Oracle WebLogic Server 11g (10.3.4)
  • Oracle SOA Suite 11g (
  • Oracle JDeveloper 11g (

Step 4: Create Java web services (2 hours)

Get comfortable with the concept of web services. Even if you don't have much Java experience, it helps to have a junior level understanding of Java in general. This step involves creating both top-down and bottom-up web services, and testing those services. This is to provide you with a basic understanding of web service development and usage. The goal is to be comfortable with WSDLs and XSDs, top-down vs. bottom-up web service development, tools such as SoapUI, etc.

1. Create a top-down Java web service:

2. Create a bottom-up Java web service:

3. Observe and understand the WSDL and schemas.

4. Download SoapUI  from http://sourceforge.net/projects/soapui/files/

5. Invoke the web services from SoapUI.

Step 5: Create your first SOA project (2 hours)

Create multiple projects to test various SOA application functionality. This will help you understand how to create basic projects, how to deploy them, and introduce you to the concept of adapters.

1. Create a BPEL-only HelloWorld composite.

2. Create a Mediator-only composite that calls the BPEL composite.

3. Create a BPEL-only composite that uses the database adapter.

Step 6: Learn more about composites (1 hour)

Start reading up on composites a bit more. What is the relationship between a composite and a BPEL process? What is the SCA model? Should you have a single composite with 5 BPEL processes, or 5 composites with a single BPEL process in each? There is no right or wrong answer, but familiarize yourself with composites and the SCA model a bit more at this point.

1. Go through the following documentation:

Step 7: BPEL vs Mediator (1 hour)

I don't have links for this yet. But this is where you want to be able to answer these questions:

- What is the difference between Mediator and ESB?
- When should you use BPEL versus Mediator?
- What is a routing rule?
- How do you do error handling in Mediator?
- When should you consider OSB versus Mediator?

This can easily be explained by someone with a bit of experience in under 10 minutes.

Step 8: Understand the MDS (3 hours)

In the future, I will be posting details on how to use the MDS for newbies. The idea is to understand the the MDS (Meta Data Services) is a central database repository used by SOA Suite to store artifacts such as DVMs, schemas, WSDLs, fault policies, and configuration files.

1. Export all artifacts from the MDS using Ant.

2. Import an artifact, such as an XSD, into the MDS using Ant.

3. In your SOA project, import an XSD into your WSDL from the MDS to understand how this works.

Step 9: Deploy the Oracle Fusion Order Demo Application (4 hours)

This is Oracle's standard SOA demo application. Deploy it and try to test it out.

1. Follow the instructions here to download and install the Oracle Fusion Order Demo application.

Step 10: SOA concepts (1 hours)

Read up on integration patterns. I will be posting about this in the future, and will be a link here when done.

1. Read up on the various integration patterns. For example:
  • Synchronous
  • Asynchronous
  • Asynchronous with callback
  • Point-to-point
  • Bulk data load
  • Data enrichment
  • Guaranteed delivery
  • FIFO

Step 11: Introduction to DVMs (1 hours)

Do a simple exercise with DVMs (Domain Value Maps) just to under what it is and how it works.

1. Create a DVM locally (which is just an XML file).

2. Import the DVM to the MDS.

3. In your transformation or XSL file, use the "dvm-lookup" XPath function to look up values from the DVM.


The concepts above introduce additional development concepts. There are obviously many other areas not addressed, such as reporting and governance, leveraging other Oracle products such as Oracle Service Registry (OSR), Business Activity Monitoring (BAM), Oracle Enterprise Repository (OER), Oracle Web Services Manager (OWSM), Oracle Service Bus (OSB), and more. 

Ask questions in the comments section below, and I'll do my best to respond. Good luck!

Ahmed Aboulnaga


Anonymous said...

Hi Ahamed ... I think u r doing a great job by sharing your knowledge .. Keep up the good work .... Almost all members of my project are familiar of ur famous thisisahamed website which provides good solutions for SOA issues ...

Keep up the good work ..

Ahmed Aboulnaga said...

Thanks for the kind words.

It's funny, because at the same exact time you posted your comment, I was making updates to this blog entry.

I will continue adding more detail to this in the future.

Thanks again.

Yves Chaix said...

Hi Ahmed:
As a SOA Certified Consultant and Architect, I wonder if you make a difference between integration and interoperation?

I have found particularly interesting that JDev does support the Thomas Erl contract-first approach. This is not common, I think. Or maybe I am not familiar with too many modelling tools.

Now, does JDevelopper support any type of diagram for modeling SOA and/or services (SOAP or REST)?

Best regards and I will be following your blog.

Ravi said...

Hi Ahmed,

This is a very comprehensive list. You could also add the "Quick start guide to Oracle SOA Suite 11gR1" (http://www.oracle.com/technetwork/middleware/soasuite/overview/quickstartguidesoasuite11gr1ps3-313245.pdf). This guide contains details of installation and configuration of SOA Suite.


Thomas Isaksen said...

A more than excellent writeup on how to get started. Thank you !

Anonymous said...

Cheers Ahmed!

Rafi said...

Thanks Ahmed...For the time and guidance...

SOA and OIC Technology for beginners and learners said...

Hi Ahmed.. i need an urgent help.

i have an esb..

with one routing service and one soup service

when i am migrating to 11g.. i am getting in service reference and one reference pointing to 10g wsdl..ok

when i deployed the same code to 11g it got deployed successfully..

now i want to point the both routing service and soap service to 11g port..

i am able to get the routing service wsdl ,can you please let me know where can i find the soup service wsdl pointing to 11g port..