Complete Overview of Oracle Fusion Middleware Setup
Oracle Fusion Middleware Setup from Developers’ Perspective Intro Having taken part in large Oracle Fusion Middleware projects (several in banking and aeroflight), I always see people struggling to setup and interlink the different OFM pieces, usually SOA, BPM, Webcenter and ADF. Usually the start of the project takes a lot of time and any decision […]
Oracle Fusion Middleware Setup from Developers’ Perspective
Intro
Having taken part in large Oracle Fusion Middleware projects (several in banking and aeroflight), I always see people struggling to setup and interlink the different OFM pieces, usually SOA, BPM, Webcenter and ADF.
Usually the start of the project takes a lot of time and any decision here may impact the development on later stage. So I decided to write this article, which will hopefully decrease the setup time and give you some good ideas on how to do the proper architecture.
Oracle SOA Suite - SOA Composites
I start with this, as it is the “backend” or the core of the Oracle Fusion Middleware solution. We will have all the business logic here and later we will expose it through ADF.
First we need to setup our SOA application in JDeveloper (of course we need to download the required JDeveloper SOA and BPM plugins). Usually under the SOA project we create multiple Composite projects, each of which is different module, that provides a number of services to be consumed by the business processes.
Each composite will have its BPELs calling different web services, JCA (DB) adapters or SDO (services exposed by ADF Application Module). Here you might want to take into consideration:
Storage of WSDL files (you don’t want to stop your development if external WSDLs are not accessible or you are offline)
Management of different WSDL and xsd versions
Deployment profiles - create different deployment configurations for each environment.
You can also add Java logic using the Spring Beans component.
Oracle SOA Suite - BPMN Processes
In most of the cases you will have a separate SOA Application that contains your BPM related processes in an Oracle Fusion Middleware aolution. In a composite project you create a BPMN process that will keep the process logic. The BPMN will be calling WebServices (either the ones you’ve created or external ones for your organization).
The main complexity of a BPM project comes in the integration of the so-called Human Tasks. These represent human interaction in a form, usually located in the Oracle BPM Workspace. The other option is to implement a custom BPM workspace - we have already developed such for clients of ours as an outsourced project.
In order to create customized task you now proceed to the ADF layer.
ADF Implementation of Oracle BPM Human Task
The most time-consuming part of the implementations in an Oracle Fusion Middleware project is usually the ADF part. This is because you usually want really functional and at the same time user friendly interface. ADF is also quite sophisticated technology with a steep learning curve. Maybe that is why we are contacted by companies for outsourcing their ADF development work.
When you want to customize a human task, you create a separate ADF UI project. In the project you create a new “Task Flow from Human Task”. It will ask you to point to the task file located in your BPM project. Once you create the taskflow, you will see:
Generated JSPX page and corresponding PageDefinition
Generated Data Control
The page generated by default is a great start for creating your customized ADF page. With some development effort and use of the generated Data Controls you can create a really good page, that suits your exquisite user needs.
Finally, once created you can deploy the ADF Application (note you need to deploy the application, not the project). Now when you open the Task in the Oracle BPM Workspace you will see your customized page, instead of the default one.
ADF Implementation of web pages, consuming Oracle SOA Suite web services
You might need to create separate ADF pages (not BPM based) that consume your REST services, created in SOA Suite. Then you have 2 approaches, 1 of which is really more efficient:
Data Control based on REST service - this is really inflexible approach, which I do not recommend unless it is for a WS that you know will never change or you will never need to modify its output
Java Proxy - this is the method that I would usually use
You will almost always go for the Java Proxy. To do so you create a separate Proxy project. There you create “Web Service Client and Proxy”, which will point to the url of your REST web service.
Don’t forget that you need to be able to adjust the WS endpoint url for each environment you deploy to. This is usually done with some custom Java code and a static config file.
Additionally in ADF 12c you can consume REST services.
Webcenter Portal and ADF
Finally you might have Webcenter in the big mix of technologies in an Oracle Fusion Middleware project. What many people don’t get is that Webcenter Portal is a wrapper for ADF Taskflows (or other containers).
It provides security, navigation and pre-built features (such as BPM worklist inside the portal). It also has the great feature to create pages during runtime - unfortunately I have not taken part in project that makes good use of this.
The standard architecture includes a separate Webcenter application with Webcenter Portal project. This project then consumes other ADF projects published as ADF Shared libraries. To do that you deploy your ADF application to Shared Library and include it in the Webcenter Portal dependencies. Then you can reuse the taskflows by drag and dropping them in a page, directly making a link through the Webcenter Navigation or add them during runtime.
Conclusion
The Oracle Fusion Middleware stack is very powerful, but at the same time quite complex. It requires many different skillsets in order to develop a fully working enterprise solution. Last but not least, you need to establish a good development process in order to coordinate the output of different teams/experts and deliver a fully-working Oracle Fusion Middleware enterprise solution.
if you have any questions or need any help contact me at [email protected]
Having entrepreneurial and business knowledge, I am eager to help innovative companies and startups to build their sales strategy and business model, improve their value proposition and
design and develop their product. If you want a software project delivered, you can message me and I will make sure to do my best to propose the best solution. My main expertise is in the Oracle Fusion Middleware stack - I have been heavily involved in actual development, consulting and delivery of Webcenter, ADF, SOA Suite, BPM and Java EE solutions.
Sign up for our newsletter and never miss an article
[mc4wp_form id=8036]
Manage Consent
To provide the best experiences, we use technologies like cookies to store and/or access device information. Consenting to these technologies will allow us to process data such as browsing behavior or unique IDs on this site. Not consenting or withdrawing consent, may adversely affect certain features and functions.
Functional
Always active
The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.
Preferences
The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
Statistics
The technical storage or access that is used exclusively for statistical purposes.The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.