Wednesday, September 13, 2017

[ORACLE ADF INTEGRATION - PART 1] Integrating Oracle ADF with Fusion suite of products and third party applications




Integrating Oracle ADF with Fusion suite of products and third party applications

This series of blog posts will focus on how well Oracle ADF can integrate with other products/systems.
Oracle ADF is an end-to-end Java EE framework that simplifies application development by providing out-of-the-box infrastructure services and a visual and declarative development experience.
In today's world, there is none to be developed from scratch as we all know, as there are existing applications or solutions and any new solution should be capable enough to reuse or integrate to those existing solutions. Oracle ADF promotes high re-usability and integration.

Oracle ADF can be integrated using out of box capabilities with various oracle products. Here is a overview of the integration possibilities:




1. Oracle ADF integration with Oracle BPM

Oracle BPM is the business process management product which deals with business flow and user interaction activities. Human Task Activity which needs user interaction is fulfilled by Oracle ADF user interfaces.

Mapping is done at the ADF task flow level for each human task.
2. Oracle ADF integration with Oracle SOA Suite using Web Services (SOAP)

Oracle SOA Suite exposes its functionality as Web Services potentially BPEL endpoints which can be consumed by Oracle ADF using Web Service Data Controls or Web Service Proxies.


3. Oracle ADF integration with Third Party Applications using Web Services (REST or SOAP)

Any third party application does not matter which technology (Java, .NET etc) can be exposed as SOAP/REST service and can be consumed by Oracle ADF using Web Service Data Controls or Web Service Proxies.
In fact Oracle ADF Business Components(EO/VO/AM) can be exposed as SOAP/REST services and can be consumed in other ADF or third party applications.

Social Media applications like Facebook, Twitter, LinkedIn provides services or API to be integrated. Oracle ADF can use the provided interface and be integrated with these social apps.

4. Oracle ADF integration with Oracle Web Center

In object oriented terms, Oracle Web Center extends Oracle ADF.
Web Center is a portal framework. Its capability is to use re-use existing user interfaces and interlace them with ADF task flows. 
Web Center exposes different applications as portlets. We need to prepare ADF or JSF based Application as a portlet and configure/deploy them using WSRP (Web Services for Remote Portlets). 

5. Oracle ADF integration with E Business Suite R12.1.3 (Forms application)

Usually all the extensions or customizations would be done in OAF for EBS R12.1.3. But If you are planning a stand alone application, not requiring the tight integration provided with OAF, ADF would be an excellent choice.

There are two scenarios here:
1. Customization or Personalization - Here existing EBS pages or forms need to be modified using OAF.
OAF is a MVC framework and fully oriented towards EBS application development.
OAF uses UIX and BC4J technologies.

2. Extensions or New User Interfaces: Use Oracle ADF.
Existing OAF/EBS Application will redirect to ADF application by setting below parameters in EBS.
Set the profile value of FND_EXTERNAL_ADF_URL to ADF Application context URL.
Create a function using ADFX function type and set the HTML call appropriately to the specific ADF page.
Assign EBS Security to the above created function.

There is a lot of information about when to and when not to use Oracle ADF in the context of EBS.

6. Oracle ADF extending Fusion Application (12c).
This is more of ADF development as Fusion Applications are developing using Oracle ADF framework. The only difference could be the pages inside Fusion Applications will be using Fusion datasources, but rest all will be the same environment as in any other ADF Application.


7. Oracle ADF integration with OBIEE

After adding JDeveloper extensions (links provided in references section) specific to OBIEE, we should be able to create a "BI Presentation Services" connection in JDeveloper.
Once connection is available, you will be able to see all Reports, Dashboards available. Just Drag n Drop into your ADF Page to show OBIEE reports in ADF Application.

JDeveloper OBIEE extensions provides xml tags specific to OBIEE like adfbi

Alternative, old approach is to add a "iframe" in ADF Page and include OBIEE report URL

Trade off using "iframe" is layout issues.

8. Oracle ADF integration with Oracle BAM using BAM Data Controls.

Same as #7, we should be able create a BAM connection and access BAM reports.

Alternative, old approach is to add a "iframe" in ADF Page and include BAM report URL
Trade off using "iframe" is layout issues.

9. Oracle ADF integration with PL/SQL procedures. (Backend integration).

Easiest way is to use callable statements to invoke SQL statements.
Best Practice would be to create a web service on top of PL/SQL procedure and consume the service in ADF Application.
Always use binding layer to invoke a PL/SQL function and use Wrapper to wrap up your PL/SQL invocation calls for better abstraction and maintenance.

References:
Latest JDeveloper release 12.2.1.3 & JDeveloper extensions available below

Acronyms:
EBS - Enterprise Business Suite application.
OAF - Oracle Application Framework
UIX - User Interface XML
BC4J - Business Components for Java.
BAM - Business Activity Monitoring
ADF - Application Development Framework
ADF BC - Business Components
BI  - Business Intelligence



In the upcoming posts, I would talk about these integrations in detail.