Whenever I finish showing an ADF 11g demo to people who are working on enterprise applications like Oracle E-Business Suite or Peoplesoft or Siebel - the first question I get is "can we use ADF with our existing application".
Basically they would like to build new UIs on top of their existing systems - and leverage the cool new Ajax based functionality in ADF Faces.
The short answer is YES.
There are two ways of doing this.
One is just build an ADF application directly accessing the database underlying your application.
All you need is the DB connection info and an understanding of the underlying tables.
However one thing to note here is that Oracle EBS and other applications usually use roles when they are accessing the DB from UIs - and using the above approach you are not using the roles/security that are set in the applications.
So the more "correct" way of accessing these enterprise systems would be to use SOA - or basically access the applications through the official interfaces they expose. These would basically be web services that allow you to interact with the system using correct roles and security.
A very basic way of doing this from ADF is to use the Web Service Data Control - or just create a java class that access the Web Service and then expose it as a data control.
You can also of course bring in the full Oracle SOA Suite with its set of adapters into the picture.
Some other questions you might have are:
Is this recommended by Apps?
Yes it is one of the top ways they tell you to prepare for Fusion apps. See the "Highlight" section of this page.
Do you have samples/demos?
Here's one for PeopleSoft.
Here's a how-to for Siebel.
Do you have customers doing this?
The answer is yes - we have several customers doing it (for example see Viewsonic story) and we also have Oracle products doing this (Siebel Self Service 8.1).
Where do I get more info?
One place to start would be the fusion middleware for apps page on OTN.
Comments (2)
hi
I have a question or two here.
1. Doesnt it affect the overall performance of the application given that the UI access all the backend via web services.
2. Doesnt it affect the transaction management . I feel that the now this would be completely 2 transactions and not one ie in in the user side and another in the server side.
Posted by Pradip | August 14, 2008 2:51 PM
Posted on August 14, 2008 14:51
Pradip,
1. Yes there is some overhead in using Web Services for operations. However this is a common practice now in many systems.
I guess at the end of the day the question becomes how much interaction are you doing.
The SOA approach probably lands itself to doing occasional access to the enterprise system.
I wouldn't build an OLTP system that does all its db access on top of Web services.
But if I build a new system (on my own DB) and from time to time I need to get some info from my enterprise application to integrate into my application - this is a valid approach.
2. I'm not sure I completely understand your point. Generally, transactions are managed on the server side - you finish your business step and you commit - that's it.
Posted by shay | August 14, 2008 3:00 PM
Posted on August 14, 2008 15:00