• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Adf-fusion-architecture_manage-modular-approach_4581
 

Adf-fusion-architecture_manage-modular-approach_4581

on

  • 412 views

Fusion Apps ADF architecture

Fusion Apps ADF architecture

Statistics

Views

Total Views
412
Views on SlideShare
412
Embed Views
0

Actions

Likes
0
Downloads
11
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Adf-fusion-architecture_manage-modular-approach_4581 Adf-fusion-architecture_manage-modular-approach_4581 Presentation Transcript

    • ADF Fusion architecture: manage the modular approach CON4581 Aino Andriessen, 24 september 2013
    • 2 Aino Andriessen Technical Consultant Technical Architect Training ADF, Java, PL/SQL, XML, ... SOA , Integration Software engineering Agile aino.andriessen@amis.nl http://www.fttech.net
    • 3 • • • • • Systems integrator Consultancy Oracle, Java, Open Source, ADF, SOA, BPM, Database, Mobile, ... AMIS Technology School Pagoni • http://www.amis.nl • http://technology.amis.nl/blog/
    • 4 Architectural patterns
    • 5 Simple application
    • 6 Small application
    • 7 Monster application
    • 8 Enterprise
    • 9 ADF Architecture
    • 10 ADF Pattern genealogy Sum of the Parts Two for One Deal Cylinder Monster Fine Grained Small Application Small and Simple Application Source: Chris Muir, Oracle Corporation - One size doesn't fit all - Oracle ADF Architecture Fundamentals Pillar
    • 11 Small application • One application workspace = one deployment EAR • Model: ADF Business Components – Moderate amount of BC's – One or a few Application Modules • ViewController – – – – One Unbounded Task Flow Some Bounded Task Flows Some page fragments One or a few pages Source: Chris Muir, Oracle Corporation - One size doesn't fit all - Oracle ADF Architecture Fundamentals
    • 12 Small application Application Workspace Model View Objects AppModule Framework Extensions Entity Objects ViewController Bounded Task Flow Fragments Fragments Bounded Task Flow Fragments Task Flow Template Page Template Declarative Components Skin Source: Chris Muir, Oracle Corporation - One size doesn't fit all - Oracle ADF Architecture Fundamentals EAR Pages Bounded Task Flow ViewController Extensions Unbounded Task Flow
    • 13 Small Application Advantages • Simple architecture – Easy to build and deploy • Suits small teams and/or small apps • Bounded Task Flows – Improved business process to design mapping – Improved modularization but not perfect – Options such as transaction features (vs root ADF BC AMs) – Programming by contract now possible • Improved ability to test modules • Requires little development infrastructure Disadvantages • Developers can still accidentally tightly couple code • Bounded Task Flows aren’t externally reusable • Application tends to grow in size
    • 14 Monster application • Synonyms: uber, monolithic • One application workspace = one deployment EAR • Model – Many, many BC's – Multiple Application Modules • ViewController – – – – One Unbounded Task Flow Many Bounded Task Flows Many page fragments Multiple Pages Source: Chris Muir, Oracle Corporation - One size doesn't fit all - Oracle ADF Architecture Fundamentals
    • 15 Monster Application Application Workspace Model Entity Objects Entity Objects View Objects View Objects View Objects AppModule AppModule AppModule Framework Extensions Entity Objects AppModule ViewController Pages Fragments Bounded Task Flow Fragments Bounded Task Flow Fragments Fragments Bounded Task Flow Fragments Bounded Task Flow Fragments Bounded Task Flow Fragments Task Flow Templates Page Templates Declarative Components Skins Bounded Task Flow Fragments Bounded Task Flow Fragments Source: Chris Muir, Oracle Corporation - One size doesn't fit all - Oracle ADF Architecture Fundamentals EAR Bounded Task Flow Bounded Task Flow ViewController Extensions Unbounded Task Flow
    • 16 Monster application Advantages Disadvantages • Relatively simple architecture still • • • Bounded Task Flows • Requires little development infrastructure • • Hard to maintain Size (# of objects) – Difficult to understand and oversee everything – Dependencies – Developer's don’t dare to touch existing code Build is an all or nothing affair Bounded Task Flows transaction options can be complicated Source: Chris Muir, Oracle Corporation - One size doesn't fit all - Oracle ADF Architecture Fundamentals
    • 17 Modular ADF Architectures Sum of the Parts Two for One Deal Cylinder Monster Fine Grained Small Application Small and Simple Application Source: Chris Muir, Oracle Corporation - One size doesn't fit all - Oracle ADF Architecture Fundamentals Pillar
    • 18 Examples • Shop • Insurance application – Policies, Customers, Cases, Claims, Commission, Financials, … • Judicial system • Booking system • … Business application • Multiple small applications with repeated functionalities • Multi-brand application • Multi channel – web, desktop, mobile, services
    • 19 Implementation patterns
    • 20 Basic ADF Application ADF ViewController ADF Model DB
    • 21 Modularization 1 Main Main Main EAR ADF Lib ADF Lib ADF Lib ADF Lib Party Policy Claim … ADF Lib Comm ons ADF Lib Fwkext DB
    • 22 Modularization 2 Main EAR ADF Lib ADF Lib ADF Lib ADF Lib Party Policy Claim … ADF Lib Comm ons ADF Lib ADF Lib ADF Lib ADF Lib ADF Lib Party Policy Claim … Fwkext DB
    • 23 Modularization 2a Main EAR ADF Lib ADF Lib ADF Lib ADF Lib Party Policy Claim … ADF Lib Comm ons ADF Lib Party Policy Claim DB ADF Lib … Fwkext
    • 24 Modularization 2b Main EAR ADF Lib Taskflows ADF Lib ADF Lib ADF Lib Party Policy Claim … Comm ons AM Viewobjects ADF Lib Entities / LOV ADF Lib Party ADF Lib ADF Lib Policy Claim DB ADF Lib ADF Lib … Fwkext
    • 25 Module interdependencies Main Main ADF Lib ADF Lib ADF Lib ADF Lib Party Policy Party Policy PParty PPolicy 1 Main ADF Lib ADF Lib Main ADF Lib ADF Lib ADF Lib ADF Lib ParPol Party Party 3 Policy 4 Policy 2 ADF Lib
    • 26 Multi Channel Mobile SOA Browser ADF Mobile Consumer Main Service Service AM, VO BC BTF BTF AM, VO Domain Entities, lov's
    • 27
    • 28 Implementation
    • 29 Goal Organize the application(s) in manageable components while maintaining optimal development experience
    • 30 Organization - general • One workspace for main • One workspace per 'unit' • One or more common workspaces – – – – – – Framework extensions Declarative components Taskflow templates Pagetemplates Skins Utilities • Each 'unit' is delivered as an ADF library
    • 31 General principals • Each workspace is able to run / tested on its own • Full debugging must be available everywhere – sources libraries • Automated build, test, deliver and deploy process
    • 32 Development Issues • • • • • Every object must be unique, worldwide UI (page, tf, pagedef) hot deployment is only possible within a project Libraries cannot be hot-deployed Taskflows must be delivered in an ADF library to be used elsewhere Testing taskflows – Testpages (and pagedefs) and setup – ADF EMG Taskflow Tester • Limited ADF library configuration • Refactoring over projects • Build automation (with ant) is not easy
    • 33 Single workspace nightmare • May sound as a good idea: start small and grow bigger • Use working sets to organize the projects within the workspace But… • Boundaries become fuzzy • Running the application can be slow • Testing is a problem • Workspace might grow organically • Using taskflows is confusing • Hot deployment issues • Fighting the framework • Beware for the monster…
    • 34
    • 35 Challenges • • • • • • Manage the build Artifact management Library management Versioning Sources and JavaDoc Deployment
    • 36 The importance of being automated • • • • Deliver adf libraries and ear Deploy Test … • • • • • • • • • • • • Consistent Less mistakes Easier Faster Fun Everybody's party Repeatable Predictable Transparent Trackable Reporting Reuse
    • 37 Build automation • 11g: ant • 12c: Maven • Tasks – – – – – – Package source, javadoc jar Version / build information Publish to artifact repository Release Deploy to WLS • • latest version
    • 38 Continuous Integration
    • Artifact management • Central environment to store and manage deliverables / artifacts • Publish and download:
    • 40 Delivery
    • 41 Maven ant tasks
    • 42 Library management
    • 43 Where to store (adf) libraries? • ant – project lib directory • Maven – local repository • Internal Application libraries – Build them locally and then deploy them to lib dir / local repo – Don't submit then to scm but build them when needed • External libraries (aka dependencies): – Download from artifact repository main -> HR -> OE
    • 44 ADF library dependencies • • • • Dependencies of ADF libraries Included in the consuming project Works as a charm ADF_Library_Dependencies.library • Multiple versions of nl/amis/demo/hr/view/DataBindings.cpx appear in your project run classpath – Path is not world-wide unique – Circular dependency: project itself is included as library because its used by dependent project main -> HR -> commons
    • 45 Artifact versioning • Always provide version information – MANIFEST.MF • define in deploy profile – Filename – WLS Deployment version • Manifest entry: Weblogic-Application-Version • Remarks – – – – – – – OJDeploy failure when manifest file fails 'Internal' libraries could do without version in the file name max # of redeployments on WLS Update library definition Use ojdeploy outputfile parameter for version in filename Store version in local file to be used in ant build scripts scm revision
    • 46 ant Manifest
    • 47 Sources and JavaDoc • Always deliver sources and javadoc • ant / maven tasks • sources jar can also be generated with separate deploy profile • Include as project library
    • 48 Organize the build • Multiple build files – Build project – per application – per project • Split build files – build, artifact mgt, build-info, deploy • Fix the generated build files • Consistent naming – use prefixes • Externalize properties • Manage project ant settings • Reuse using svn externals • Build scripting is hard
    • 49 • this page is left blank intentionally
    • 50
    • 51 Summary • • • • • Modularization allows for better understandability and manageability Choose the right architecture Module autonomy Build automation JDeveloper doesn't always provide optimal support
    • 52
    • 53
    • 54 References • Chris Muir - One size doesn't fit all: Oracle ADF Architecture Fundamentals - CON2203 - Thursday, Sep 26, 11:00 AM - 12:00 PM Golden Gate A • ADF EMG • Oracle ADF Architecture Square • ADF Code Guidelines • ADF Naming and Project Layout Guidelines - Marriott Marquis -
    • 55
    • 56