1 / 47

ADF EMG

ADF EMG. A place to discuss best practices and methodologies for JDeveloper ADF enterprise applications Founded mid-2008 by Chris Muir, now 650+ members , staffed by many ACE Directors & ADF experts Focus is Fusion Tech Stack (ADF Faces, ADF BC)

hestia
Download Presentation

ADF EMG

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ADF EMG • A place to discuss best practices and methodologies for JDeveloper ADF enterprise applications • Founded mid-2008 by Chris Muir, now 650+ members, staffed by many ACE Directors & ADF experts • Focus is Fusion Tech Stack (ADF Faces, ADF BC) • Online forum plus sessions at major Oracle conferences (OOW, ODTUG, UKOUG, DOAG…) <presenter, organisation> http://groups.google.com/group/adf-methodology

  2. SAGE Computing Services Customised Oracle Training Workshops and Consulting • Angels in the Architecture • ADF Application Architectural Patterns Chris Muir Consultant – “I do Oracle Stuff” http://one-size-doesnt-fit-all.blogspot.com Oracle ACE Director

  3. Angels in the Architecture • ADF Application Architectural Patterns

  4. Assumptions & Prerequisites • 11g • ADF Business Components • ADF Faces RC • Task Flows • ADF Libraries • Resource Palette

  5. Angels in the Architecture Picture removed to reduce ppt download size

  6. Design engineering is more than a mere balancing act between finding the best options among a sea of possibilities, and then implementing those options through the careful orchestration of available resources. To fully manage the challenges of the design process, it is also necessary to develop an instinct for choosing design paths and system configurations that provide some measure of flexibility. This maintains wiggle room as projects advance toward completion, often creating “an angel in the architecture” to serve as a countermeasure for situations in which “the devil is in the details.” http://rfdesign.com/mag/radio_flexibility_designers_best/

  7. ADF Architectural Patterns Picture removed to reduce ppt download size

  8. ADF Architectural Patterns • Part 1 Single Application • Part 2 Single UTF-BTF Application • Part 3 Master Application, Multi BTF Application Part 4 A Side Note on Reuse ADF BC, Skins, Pate Templates and more • Part 5 Multi Master Application, Multi BTF Application Part 6 The “Services Pattern” [Part 7 ...... Fusion Applications]

  9. Part 1: Single Application Picture removed to reduce ppt download size

  10. Characteristics Application Model Entity Object Entity Object AppModule View Object View Object ViewController Unbounded Task Flow jspx jspx

  11. Advantages • Simple architecture • Self contained, no dependencies, easy to build & deploy • Suited for small applications, teams & raw beginners Disadvantages • Developers can: • Break each other’s work • Easily ignore modularization • Poor separation of concerns & • responsibilities • Re-architecting difficult • c Picture removed to reduce ppt download size

  12. Yet More Disadvantages • Complex transactions require careful ADF BC design (unsuitable for beginners) • Poor mapping of business processes to technical solution inhibits design • Build and deployment is an all or nothing affair • Poor separation of concerns leads to difficult module testing Picture removed to reduce ppt download size

  13. Part 2: Single UTF-Multi BTF App Picture removed to reduce ppt download size

  14. Characteristics Application Model Entity Object Entity Object AppModule View Object View Object ViewController Unbounded Task Flow jspx jspx Bounded Task Flow Bounded Task Flow jsff jsff jsff jsff

  15. Advantages • Relatively simple architecture • Sophisticated BTF transactions without ADF BC AM trickery • Improved design: mapping between business process to BTFs • Improved ability to test modules and • re-architect Disadvantages • Developers can tightly couple accidentally • Version control tug of war • Build & deployment all or nothing affair Picture removed to reduce ppt download size

  16. Part 3: Master App, Multi BTF App Picture removed to reduce ppt download size

  17. Characteristics Common ADF BC Application Model AppModule EntityObject EntityObject View Object View Object View Object View Object EntityObject EntityObject BTF App BTF App ADF Library JAR Master Application BTF App Model Model Model ViewController ViewController AppModule AppModule AppModule View Object View Object View Object View Object View Object View Object Bounded Task Flow Bounded Task Flow Bounded Task Flow Bounded Task Flow jsff jsff jsff jsff ViewController ViewController Unbounded Task Flow Bounded Task Flow Bounded Task Flow jspx jspx jsff jsff ADF Library JAR ADF Library JAR ADF Library JAR

  18. Advantages • Full power of BTFs • Suited for large applications & developer teams • Excellent separation of concerns • Each BTF is self contained, loose coupling • Developers can become responsible for single BTF • Team Leader for Composite Master • Easier to reuse BTFs • BTFs can be tested standalone

  19. Disadvantages • Complex(er-er) architecture • ADF BC security is not possible • Dependency management is now an issue • Not easy to build & deploy (-> ojdeploy) • TF transaction/scope options must be perfect • Not suitable for beginners

  20. Part 4: A Side Note on Reuse Picture removed to reduce ppt download size

  21. Reuse is part of the Framework Common Application BTF Application BTF Application Model Model Master Applications Model Framework extensions AppModule View Object View Object ADF Library JAR AppModule View Object View Object Entity Object Entity Object AppModule View Object View Object ViewController ViewController BTF Templates ADF Library JAR Bounded Task Flow Bounded Task Flow Bounded Task Flow Bounded Task Flow jsff jsff Declarative Components ADF Library JAR jsff jsff Page Templates ADF Library JAR ViewController Unbounded Task Flow jspx jspx Skins JAR

  22. Part 5: Multi Master App, Multi BTF App Picture removed to reduce ppt download size

  23. Characteristics Master Application BTF Application Master Application ADF Library JAR BTF Application ADF Library JAR BTF Application ADF Library JAR BTF Application ADF Library JAR BTF Application ADF Library JAR

  24. Advantages • Total reuse of BTFs Disadvantages • BTFs need to be very flexible • Reuse must be a key design concept & concern • Dependency management nightmare

  25. Part 6: The Services Pattern Picture removed to reduce ppt download size

  26. OrganisationsList.jsff

  27. Common Organisations Services TF App common.model taskflow.org.model OrgAppModule Organisations Entity Object Common Model.jar OrganisationsView View Object Common TaskFlow Template.jar common.taskflow taskflow.org.view OrganisationsListBTF OrganisationsList common.deccomp Common DecComp.jar OrganisationsList.jsff

  28. OrganisationsForm.jsff

  29. Common Organisations Services TF App common.model taskflow.org.model OrgAppModule Organisations Entity Object Common Model.jar OrganisationsView View Object Common TaskFlow Template.jar common.taskflow taskflow.org.view OrganisationsListBTF common.deccomp Common DecComp.jar OrganisationsList.jsff OrganisationsFormBTF OrganisationsForm OrganisationsForm.jsff

  30. OrganisationsList.jsff Edit Back OrganisationsForm.jsff

  31. Common Organisations Services TF App Organisations Composite TF App common.model taskflow.orgserv.model taskflow. orgcomp.model OrgAppModule Organisations Entity Object Common Model.jar OrganisationsView View Object taskflow.orgcomp.view Common TaskFlow Template.jar common.taskflow taskflow.orgserv.view Orgs Composite BTF OrganisationsListBTF OrganisationsView.jsff common.deccomp Common DecComp.jar OrganisationsList.jsff Region Edit Back OrganisationsFormBTF OrganisationsEdit.jsff OrganisationsForm.jsff Region

  32. OrganisationsHeader.jsff EventsList.jsff

  33. Organisations Services TF App Events Composite TF App Events Services TF App taskflow.orgserv.model taskflow. orgcomp.model taskflow.evtserv.model OrgAppModule EvtAppModule OrganisationsView View Object EventsView View Object taskflow.evtcomp.view taskflow.orgserv.view EventsCompositeBTF taskflow.evtserv.view OrganisationsHeaderBTF EventsView.jsff OrganisationsHeader OrgHeader.jsff Region OrganisationsListBTF EventsListBTF EventsList Region OrganisationsList.jsff EventsList.jsff Edit Back EventsEdit.jsff OrganisationsFormBTF EventsFormBTF Region OrganisationsForm.jsff EventsForm.jsff

  34. OrganisationsHeader.jsff BookingsList.jsff

  35. Organisations Services TF App Bookings Composite TF App Bookings Services TF App taskflow.orgserv.model Taskflow.bookcomp.model Taskflow.bookserv.model OrgAppModule BookAppModule OrganisationsView View Object BookingsView View Object taskflow.bookcomp.view taskflow.orgserv.view BookingsCompositeBTF taskflow.bookserv.view OrganisationsHeaderBTF BookingsView.jsff OrgHeader.jsff Region OrganisationsListBTF BookingsListBTF Region OrganisationsList.jsff BookingsList.jsff OrganisationsFormBTF OrganisationsForm.jsff

  36. Main Application App app.model App.view Unbounded Task Flow Page3.jspx Page1.jspx Page2.jspx Region Region Region OrganisationsComposite TF App Events Composite TF App Bookings Composite TF App taskflow.orgcomp.model taskflow.evtcomp.model taskflow.bookcomp.model taskflow.orgcomp.view taskflow.evtcomp.view taskflow.bookcomp.view OrgsCompositeBTF EventsCompositeBTF BookingsCompositeBTF OrganisationsView.jsff EventsView.jsff BookingsView.jsff Region Region Region Region Region Region

  37. Advantages • Extreme reuse • Patterns start to appear in BTFs themselves Disadvantages • Not for the feint hearted • Lots of unnecessary requerying data • Overcomplicates even simple applications • c

  38. Guidelines • Use fragments and regions • Services should be promiscuous with transactions and data control scope • Control overall transactions/data control scope from composite task flows • If needed, wrap composites in composites • Reuse must be a “mindset”, not a “nice to have” if you adopt this • Reuse must be considered at the requirements level, just not the technical level

  39. Part 7: Fusion Applications Picture removed to reduce ppt download size

  40. Oracle ADF: Best Practices From Fusion Applications Teams (OpenWorld 2009) http://www.scribd.com/doc/21018676/Best-Practices-From-Fusion-Applications-Teams-OpenWorld-2009

  41. Conclusion Picture removed to reduce ppt download size

  42. SAGE Computing Services Customised Oracle Training Workshops and Consulting Questions and Answers? Presentations are available from our website: www.sagecomputing.com.au enquiries@sagecomputing.com.au chris.muir@sagecomputing.com.au http://one-size-doesnt-fit-all.blogspot.com Twitter: chriscmuir Linkedin: http://au.linkedin.com/in/chriscmuir

  43. Further Reading Inter-region communication techniques • Contextual Events • http://download.oracle.com/docs/cd/E14571_01/web.1111/b31974/web_adv.htm#CACJBFGI • JDev 11g: Programmatic Contextual Events • http://one-size-doesnt-fit-all.blogspot.com/2010/08/jdev-11g-programmatic-contextual-events.html • Master-child BTF chaperone – a contextual event alternative • http://one-size-doesnt-fit-all.blogspot.com/2010/09/master-child-btf-chaperone-contextual.html Task Flow transactions and ADF BC Application Module considerations ADF Regions and Nested Application Modules to Improve Performance • http://andrejusb.blogspot.com/2010/06/adf-regions-and-nested-application.html • How to Reduce Database Connections and Reuse ViewController Layer • http://andrejusb.blogspot.com/2010/10/how-to-reduce-database-connections-and.html • JDev11g, Task Flows & ADF BC – the Always use Existing Transaction option – it's not what it seems • http://one-size-doesnt-fit-all.blogspot.com/2011/05/jdev-11g-task-flows-adf-bc-always-use.html • JDev 11g, Task Flows & ADF BC – one root Application Module to rule them all? • http://one-size-doesnt-fit-all.blogspot.com/2011/05/jdev-11g-task-flows-adf-bc-always-use.html

More Related