Thursday, February 21, 2008

The Next BIG thing ADF Faces: Getting the comfort level in comparison to OAF.

Hi all.... starting with new interesting article... after I have returned from my Vaishnodevi Trip!I was thinking of writing this article from quite a some time, but was busy with various things, as I recently moved back to Delhi!

Ok, I think lets' start, as we all know Oracle Fusion techstack includes ADF faces for all web related development, I think this is the best time to optimize your skillset to ADF faces and Bpel.ADF is an extensive J2EE framework, which is
documented as well as used for two category of programmers:

1)Developers from J2EE background,i.e. people having knowldge of JSF,STRUTS,JAVASCRIPT,SWING,TOPLINKS,EJBs etc,

2)Developers from Forms background,i.e. the best suited guys are the OAF guys, who already have exposure to BC4J.Basically this category of developers, as they work on this framework, they gradually learn more and more standard J2EE technologies gradually.

In this article, I have typically covered approach for OAF developers, who I assume have a good exposure to core Java and BC4J, but have not worked/have knowledge of toplinks, ejbs',struts etc.

Here is the list of downloads, you would need to have to start with ADF Faces on your laptop/computer:

1)JDEVELOPER 10G (Download Oracle JDeveloper (10.1.3.3))
Oracle JDeveloper(10.1.3.3)

2)ADF Faces guide for forms developers (Download Developer's Guide for Forms/4GL Developers pdf version)
Download Developer's Guide for Forms/4GL Developers

3)Database server(This you would require to download, if you don't have a database server, and your working on your home pc/laptop.Download Oracle Database 10g Express Edition (Western European) )
Oracle Database 10g Express Edition

Similarities between OAF and ADF
Both OAF and ADF follow industry best pratices i.e. MVC standard(Model-View-Controller), for people who still don't have a fundamental understanding of MVC, i would suggest reading:
Article On Web-Tier Application Framework Design
Here are MVC layers of both:

OAF
--------
Model : All BC4J Component classes like AM,EO,VO,VL etc.
View : UIX
Controller : CO classes.

ADF
-----
Model : All BC4J Component classes like AM,EO,VO,VL etc.
View : JSF JSPs, in simple terms file with extension .jspx
Controller : Backing bean classes.

As we see above Model layer is same for both i.e. BC4J, hence OAF developers, have a added advantage since, working with OAF, they already have sound knowledge of this. Next comes the view layer thats changed from UIX to JSF.One major problem with UIX in OAF is that UI is not very extensive, in the sense that there are many limitations on UI front , while if you take JSF, its a Sun's standard j2ee technology where you can have all web features integrated and is also flexible enough to integrate UIs from other technologies.... like industry popular Flex, flash etc.Jsf is capable enough to deliver most complex and extensive UIs.

Now, as in OAF,most of the UI development is done through drag and drop and wizards in Jdeveloper(Or even if the page is dynamic you would write java code for adding various UIX beans to pagelayout region), hence, even if you don't have any knowledge/limited knowledge of xml and UIX, then also you can work with ease,because Jdeveloper generates the xml for you.The same is in the case of ADF, most(not all) UI development is done through wizards and drag-drop functionality in Jdeveloper.You only need to have bean level knowledge, similar to OAF.

The last layer, i.e. the controller layer is quite similar to what we code in CO classes in OAF, typically every page where you need to put event logic, you would need to attach a backing bean class to that jspx page. This can be automatically done through wizard in Jdeveloper.The backing bean class typically contain getter/setter methods of all beans in the page, so you can add your custom event methods to this class which will be attached to UI through EL.

I think by now you would have developed some comfort level with ADF! One stunning feature of ADF are the flow diagrams, like in OAF to redirect to diffent page you use vaious page forward apis' in pageContext class.In ADF, you can design the whole flow in flow-diagram, which is a completely drag and drop feature of Jdeveloper ad then attach it with action of any bean say a "command button", on whose submission you want to redirect the flow.

To start with example, Oracle provides a fantastic tutorial called SRDEMO. You can run it on your Jdev, read the guide and get aquittaned with ADF.

Recently, there was a discussion on "OAF Forum" regarding "Can ADF Faces/ADF BC aplications developed on Jdeveloper 10g can be deployed on Apps 11i?".
Here is the Steven Chan's blog comments link which gives you the answer:
Read last question on this link.

He basically says "The E-Business Suite 11.5.10.2 uses Oracle9i Application Server 1.0.2.2.2 as its application tier server. You cannot use this to run externally-developed applications.

I would recommend running your custom application on an external Oracle Application Server 10g instance.
"

Another point is pointed by Tapash for Apache Jserv application server used in Oracle Apps 11i, he says "Apache JServ module , QApache are servers built at oracle not totally open sourced, so these are not pure J2EE servers, although you can run some J2EE components like jsps/servlets/EJBs, but these servers dont have containers for all J2EE components.". So, i would say Apache name is misleading, because Apache.org things immediately flicks my mind saying open source :)!

Hence, for Apps 11i version ADF faces can't be atleast in straight forward way be deployed. If you are using Apps 11i version , you should use external J2ee compliant server, like Apache Tomcat,OC4J etc. for hosting your ADF Faces/ ADF BC application.
This is not the case with Apps R12, which is a j2ee compliant server, hence you can deploy all ur ADF faces applications on the same application server.This is because of the fact Oracle has moved to OC4J application server with R12.


I hope I am able to give some picture of vast ADF to OAF developer community through this article!I will soon write another article of making a sample page in ADF and integrating it with OAF/JTT/JTF pages in Apps.

16 comments:

Gareth said...

Hey Mukul,

Nice post, great summary. Looking forward to the example!

Regards,
Gareth

Mukul said...

Thanks Gareth,
Will soon be coming with an article with 1-2 sample pages in ADF.

--Mukul

debashis kayal said...
This comment has been removed by the author.
debashis kayal said...

Hi Mukul,

As always ur article is crisp-to the point and acts as a great launch pad for those who are starting off in ADF.

However, i have something to comment.Correct me if i am wrong.

ADF is actually; as u say and i agree, the next big thing of which "ADF Faces" is a part- the UI part actually with its heavy inclusion/borrowing of JSF components for the UI design.

Please keep up the good work.

Warm Regrads,

debashis

Mukul said...

Debashis,
Thanks for the comments.
ADF Faces is only a part of ADF BC Faces.In short it is popularly called "ADF Faces".In simple terms for front end Jdeveloper generates direct binding code for JSF componenets through wizards.

To give u a little history, developers using OAF, are actually using ADF BC UIX, popularly calles ADF UIX ( OAF is ADF BC UIX implementation of Oracle for Apps.It contains AOL/J and OA BC4J classes for developers to use directly, without having any knowledge or handling any complexities of j2ee), i.e. hence while moving to ADF BC Faces, we are essentially moving to front end to JSF and making architeture fully j2ee compliant.
The two main objectives of Oracle doing so:
1)To provide a complete j2ee comprehensive architecture to customers to develop there custom applications.

2)To have another market share on vast J2EE market.

Even when Oracle will come with Fusion, it would have additional library for supported apps features primarily AOL/J.

--Mukul

kavita said...
This comment has been removed by the author.
Sathish said...

Hi,
This blog is good. I have started my own website where you can find many articles and requesting you to publish articles in my website if you like..

http://oraappsforum.com

Thanks
Sathish

shobitha said...

Hi Mukul,

Now am working on Trade Management module.

I have a requirement like I have to auto-populate Offer end date in Trade Management module.

For this purpose I want to find out the what are the VO,CO behind the Offer page ,But I found that this page seems to be JTT/JTF page .

In these pages am unable to enable the “About this page “.



Kindly help me on this if you know any thing about JTT/JTF pages and how to find out the backend process.


Thanks,
Sree.

Priyanka said...

Hi Mukul

Great Article. Can you please update me on the existing forms in Oracle Applications that are based on ADF technology?

Regards
Priyanka

Sudhir said...

Just visit www.qlikview.com

and see a next generation BI tool
for more information contact me at sudhir@iconresources.com

Sudhir said...

There are some good features in Qlikview as well:
1. The ability to consolidate the data coming from various sources(databases and flat files) which is in a common format in the data cloud(Qliktech uses this term). this is fantastic. In other OLAP tools generally you make connection to one database and select the required tables and columns and make reports based on that subject area only.

2. many people criticise Qlikview for its associative logic which says the feild names with same names are joined automatically but the designer has the liberty to remove or edit those joins. Even Siebel analytics makes the joins automatically in BI Administrator and Hyperion Essbase sensing same field names.
I dont see anything wrong with that. It helps the designer to see the qualified members for joins and make amendments after verifying them.
Any comments on this.

Sudhir said...

. Qlikview brings all the data to the system RAM or Memory Cache and if the data is huge the application will take more time to open and process calculations.
Siebel analytics stores the data in the hard disk but uses cache to save the query results or calculations so that for the same query, the result is available in the cache to enhance performance.

2. Multi user development- It is a complete feature where you can have the repository at one place and many users having their parts which can be merged and is synchronised with the central repository. Qlikview is not just lacking, it has to develop the complete feature. Here I am not talking workarounds.
3. Alerts- Good tools have more and more features using wizards, drag and drop features with minimum programming. for reasons like ease of use, less development time, better managebility etc. Qlikview has to do this to compete and not just providing the feature.

Please ask if you have more specific questions.

Zhe said...

Hi, I'm new to Oracle cMRO. So far, I'm looking at how to add asset, to manage/track asset by tag number, and to create service request/work order in cMRO. Could you have some materials like use manual share with me?
Whatever, thanks for your good article and appreciate you in advance for the coming help.

jaganwgl said...

Thank you for some other informative web site. The place else may I get that kind of info written in such a perfect approach? I have a undertaking that I’m just now running on, and I have been on the glance out for such information.Whether you work for a startup company or a 100-year old corporation, data is at the heart of any business. You have many different kinds of data: financial data, product data, customer data, supplier data, competitive data, and human resource data. This data is stored in many different ways: databases, spreadsheets, word processing documents, web pages and multimedia files. Qlikview is solution to main your data.Thanks. qlikview training

Naviya Nair said...

I have read your blog its very attractive and impressive. I like it your blog.

Java Training in Chennai Java Training in Chennai | Core Java Training in Chennai

Online Java Training Java 8 Online Training | Java J2EE Online Training | JavaEE Training Institute in Chennai Java Training Institutes

Java Training Institutes in Chennai Java Training in Chennai

oracle fusion hcm online Training said...

Credit rating score reporting isn't always something however oracle fusion procurement way wherein viable avail with alternatives to provide the client or the economic enterprise agency with all of the credit score and debt facts
Oracle Fusion procurement Online Coaching
Oracle Fusion procurement Coaching Center