This content has been marked as final. Show 6 replies
The answer to your question is straightforward: you don't integrate them in JDeveloper.
Here's why. The pillar architecture possesses the following characteristics:
- Each application is an application in its own right
- Each “pillar” results in its own EAR
- But to the user it feels like one application
When you choose the pillar architectural pattern, you produce self-contained applications that integrate with each other at the data or process layer. Thus, each pillar possesses its own JDeveloper workspace. Any code shared between pillars will be used through ADF libraries and/or JAR files.
Ok you are right but I have some questions:
1)how to connect one application with the other. If I have a button in application A that has to call to a page in application B. Is just do a URL redirect? do I have to use a call to a remote task flow?.
2)Is necessary to implement a Single Sign On or a simple login case?. I never implemented this.
3)How do i pass a parameter from one application to the other without exposing them in the URL?
To answer your first question: yes, you would use a redirect or a remote taskflow. My colleague Frank Nimphius explained the difference between the two in a blog post earlier this year: (https://blogs.oracle.com/jdevotnharvest/entry/remote_task_flow_vs_wsrp):
+« The difference between a remote task flow call using the task flow call activity and a simple redirect to a remote Java EE application is that the remote task flow has a state token attached that allows to restore the state of the calling application upon task flow return. » + You will find a full working example built by Frank here: http://www.oracle.com/technetwork/developer-tools/adf/learnmore/43-remote-task-flow-169185.pdf
To ensure a smooth user experience, you will need to use the same templates (or very similar ones) on both applications.
In the same vein, SSO will probably be a necessary part of your infrastructure. You do not necessarily need to buy additional products, as WebLogic has a lot to offer itself. See http://docs.oracle.com/cd/E23943_01/web.1111/e13707/saml.htm for an example.
To pass parameters between applications without passing them in the URLs, you will need a mechanism to share state between applications. There are several possibilities here. The simplest would probably be to use Oracle Coherence, since it integrates well with WebLogic.
I can pass parameters to a remote task flows in the inputt parameters properties as the example of Frank shows.
I see i can't use a remote task flow as region, this is a problem for me. My idea is to work with my own UIShell tabs using regions and fragments as a good practice.
For example one application would be the login case and it also will contains a page with a region where all the modules will be shown as a single application. Can I achive this with another way working with the pillar arquitecture?. Maybe I has to work with the cylinder architecture.
Working with UIShell tabs and using regions/fragment is without a doubt a recommended practice. However, if you want to have multiple tabs opened that are from the different modules of your application, the pillar architecture isn't probably the best choice.
You could devise your own shell that would display each module in an iFrame placed in a tab. Or you could use multiple browser tabs to achieve the same effect. It all depends on your requirements.
The pillar architecture is a good fit for large applications. Fusion Applications are built that way; but their modules are loosely coupled. If you have strong requirements for tighter UI integration, maybe the cylinder architecture would indeed be a better choice. The decision will hinge on how scalable your application must be. You must find the set of trade-offs that fit your use case best.
Edited by: Blueberry Coder on Dec 19, 2012 11:32 AM