Oracle Open World – Forms Modernization & Data Integration

From the 21st of September until the 25th 2008, Oracle OpenWorld 2008 wil take place in San Francisco. Oracle OpenWorld 2008 is the world’s largest gathering of Oracle customers, partners, developers, and technology enthusiasts.

Two sessions will be given by iAdvise/O2U at Oracle OpenWorld 2008:

  • O2U is proud to present it’s customer case study: The ZLM Case: New Forms Modernization Case Study using Oracle Forms, Web Services, JDeveloper and ESB (Hans Heremans, Nathalie Roman)

In this case study, we will showcase how you can modernize an existing Forms Application to move towards a SOA Environment. The existing Forms and web application will be sharing web services orchestrated using an Enterprise Service Bus.

In the second presentation we will talk about the data integration aspects in which different approaches and toolings will be discussed.

  • The Next Generation of Business Integration: Making the right choice! (Hans Heremans, Nathalie Roman)

In this presentation a practical overview will be given of the Data Integration and Management requirements that are needed for data integration projects today. Having a look at the different aspects that aren’t addressed in current integration projects and how these can be leveraged using the Oracle Technology Stack. Using Oracle Warehouse Builder, Oracle Data Integrator ODI Suite or SOA Suite, you’re able to address all the needs of today’s Business Integration.

If you’re interested in attending these sessions (forms, webservices, data integration, …) :

  • S298887, “Oracle Forms in an SOA World,” on Tuesday, September 23;
  • S301400, “The Next Generation of Business Integration: Making the Right Choice” on Wednesday, September 24.

I hope to see you all there !

Oracle Open World – New Integration Solution Offering

Sunday morning I went to a session regarding Application Integration Architecture, the new Oracle integration-solution offering.

The session was given by Selim Burduroglu of the IOUG Group.

During this session Selim was going to explain the SOA and Integration strategy of Oracle.
The goal : Nothing proprietary in AIA or SOA Suite, every technology, layer, approach is standards-based.

As you would have noticed already in the different presentations given by Oracle regarding Oracle Soa Suite or Oracle Application Server => the main goal is: pick your flavor ;o) You can choose any Application Server you want, any database you want …

The Application Integration Architecture proposal holds 5 different tiers, from top-to-bottom:
– Integrated UI Tier (J2EE (webcenter, adf), apex, Forms)
– Process Tier
(Process Integration Packs-offering)
– Virtual Service Tier (Services
– Data Management Tier (Oracle Data Integrator)
– Application Tier (Oracle Apps, legacy or third party applications)

Now what is a PIP, a Process Integration Pack exactly: the PIP holds all the needed logic, adapters, processes, business objectsd, business services for a given business requirement. To give you an example: you want to integratie Siebel with your existing services, which can be a bpel process, a webservice, well this is all packaged in a given PIP.

What are the Common Objects & Services being delivered with AIA:
– Enterprise Business Object: an object that describes your common data model throughout the business in a unified way (an xsd)
– Enterprise Business Service (EBS): A service that interacts with your business object, transforms and routes to other EBSes where necessary
– Services Repository / Enterprise Service Repository: A catalog of all the different business processes/services which are inside your company’s portfolio.

The Enterprise Business Object (EBO) can be described in any given format used by your businerss analyst or architects, such as UML Class Diagrams, …

In the AIA the Application Business Connector Services will map the Enterprise Business Object to an Application Object used by partners, third-party applications which will transparently transform the data to your needs.

In this AIA Oracle also offers the needed tools and methodology to guide you through the entire development lifecycle.

– Business Services Repository for SOA Governance
– Composite Application Validation Systems to provide the needed unit- and regression testing throughout your application integration lifecycle
– Common Error Handling & Diagnostics

No Unified versioning mechanism is made available yet in this release, but my comment has been noted ;o)

– AIA Developers Guide which gives you a blue print on the process definition, integration standards, design patterns and extensions you can define.

Create a demo using EJB 3.0, Toplink and ADF as the UI layer and Bpel and ESB as the back-end layer (through web service invocation) – Episode 1

The case I worked out for my demo application is the following: Create a new person via the UI (using JSF and EJB3.0 as data-layer) and initiate a bpel process for the creation of the person. The bpel process will check if all business requirements were met for the person that needs to be created using Business Rules.
A human task was added to make sure the Personal Manager has approved the new person and finally an ESB was added to actually create the person.
The ESB will transform the person-object, an xml-file, to the specific format I need to be able to insert the person in my db.

During the creation of my demo-project I faced some design problems which I will explain in the following chapters:

The first part of the case was simple, create a UI using EJB 3.0 and ADF Faces using JDeveloper as my IDE.
The UI consists of a ListPersons.jspx – page that lists all existing persons of my persons-db and a link to the CreatePerson.jspx-page. In the CreatePerson.jspx page I will create a new Person and initiate the bpel process from here.

But it wasn’t as simple as I thought … to be able to initiate my bpel process using the EJB-objects I needed to prefetch the sequence-value needed for uniquely identifying the person-object, e.g. the Person.personid. This is needed because the bpel process needs all xml-tags to be filled in. If for example the personid, or firstname isn’t filled in you will get the following exception ‘unexpected null value for literal data’.

To be able to prefetch the id in my EJB i thought I could ‘eagerly fetch’ this id using an annotation in EJB 3.0, but there’s no such annotation available :(

What to do next … fetch the sequence value myself and populate the Person.personID with my sequence-value.

I’ve added a new method in my SessionBean that gets the sequence value from my db-sequence, this method is invoked from my custom-method ‘createPersonObject() which constitutes a valid person-object.

The custom-method to fetch the sequence-value uses the ‘createNativeQuery’-method on the EntityManager:

em.createNativeQuery(“select person_seq.nextval from dual”);

The UI now works correctly, using the createPersonObject()-method as binding-layer to go to the CreatePerson.jspx file.

Now I need to link my existing Bpel Process to this UI … coming up soon …