Presentation is loading. Please wait.

Presentation is loading. Please wait.

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 1.

Similar presentations


Presentation on theme: "Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 1."— Presentation transcript:

1 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 1

2 2 The preceding is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle.

3 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 3 ADF Architecture Square  Oracle ADF Development Essentials  ADF Code Guidelines  ADF Naming and Project Layout Guidelines

4 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 4 ADF Architecture TV

5 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 5 One Size Doesn’t Fit All Oracle ADF Architecture Fundamentals Chris Muir Senior Principal ADF Product Manager Oracle Development Tools

6 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 6 Program Agenda  Architectural Challenges for ADF Projects  Decisions that will affect your ADF Architecture  ADF Application Architecture Patterns  Anti-Patterns  Best Practices

7 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 7 Architecture Challenges for ADF Projects  Beginner teams are overwhelmed with ADF features to learn – Struggle to consider the bigger picture – Require guidance while learning – Don’t know where to start – Constantly challenged with decisions Image: winnond / FreeDigitalPhotos.net

8 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 8 8 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. If you make poor early architectural choices in your project they can have severe repercussions later Image: Rasmus Thomsen / FreeDigitalPhotos.net

9 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 9 Architecture Challenges for ADF Projects  How to select an architecture that’s – Easy to learn? – That will grow? – Provide flexibility? – Wont railroad developers into a dead end later? – But still accommodates your requirements? – Easy to maintain? Image: bennylin0724 / Flikr.com

10 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 10 Architectural Decisions  Decisions that may affect your architecture: – Team size, skills, capabilities – Requirements based around legacy decisions & architectures – Single vs multiple applications – Single vs multi-page – Multi-browser tab support – Level of reuse – Consecutive or parallel application development – Application customization (MDS) – Legacy application modernization – Integrating mobile

11 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 11 Program Agenda  Architectural Challenges for ADF Projects  Decisions that will affect your ADF Architecture  ADF Application Architecture Patterns  Anti-Patterns  Best Practices

12 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 12 Mark Valentine Courtesy of Defence Electronics (Previously RFDesign.com) “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.’”

13 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 13 ADF Application Architecture Patterns  Investigate & discuss – Separate ADF architectural patterns  The moving ADF parts within each pattern  How ADF applications can be composed and separated – Pros and cons of each approach – Match patterns to your requirements and capabilities

14 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 14 ADF Application Architecture Patterns  In scope – Architectural patterns within an ADF application  Out of scope – Architectural patterns across systems – Server, hardware & network topologies

15 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 15 ADF Application Architecture Patterns  Quotes – “The best-laid schemes of mice and men” – “No plan survives first contact with the enemy” – “One size doesn’t fit all”  Oracle is presenting “blueprints”  Oracle is not dictating end designs, you are

16 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 16 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Fine Grained Pattern Genealogy Small and Simple Application Monster Two for One Deal Sum of the Parts CylinderPillar

17 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 17 The Small and Simple Application Architecture Image Source: Fine Grained Small and Simple Application Monster Two for One Deal Sum of the Parts Cylinder Pillar

18 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 18 The Small and Simple Application Architecture  One application workspace = one deployment EAR  Model: ADF Business Components – Typically one Application Module – Transaction support provided by root AMs  ViewController – One Unbounded Task Flow – No Bounded Task Flows Characteristics

19 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 19 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. The Small and Simple Application Architecture Application Workspace Model Entity Objects View Objects AppModule Framework Extensions ViewController Unbounded Task Flow ViewController Extensions Page Templates Declarative Components Skins Pages EAR

20 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 20 The Small and Simple Application Architecture  Model: ADF Business Components – Single or multiple root Application Modules  ViewController – Design focuses on a page at a time – No need to consider reuse outside of application Design Considerations

21 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 21 The Small and Simple Application Architecture  Very simple architecture – Self contained – Easy to build and deploy  Suits small teams and/or beginners and/or small apps – Suits teams moving technical platforms and learning  Requires little development infrastructure (e.g. ALM, CI) Advantages

22 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 22 The Small and Simple Application Architecture  Poor mapping of business processes to technical solution  Tight coupling, poor modularization & separation of concerns – Developers can break each others’ work – Developers can fight for control of primary code artifacts – Unit testing is difficult – Post re-architecting is difficult  As solution grows, building & deploying slows – Build is an all or nothing affair Disadvantages

23 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 23 Pillar The Monster Architecture Image source: Find Grained Small and Simple Application Monster Two for One Deal Sum of the Parts Cylinder

24 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 24 The Monster Architecture  Synonyms: uber, monolithic  One application workspace = one deployment EAR  ViewController – One Unbounded Task Flow – One to many Bounded Task Flows  Extreme contrast to the Simple Application Architecture Characteristics

25 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 25 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. The Monster Architecture Application Workspace Model Entity Objects View Objects AppModule Framework Extensions ViewController Unbounded Task Flow ViewController Extensions Task Flow Templates Declarative Components Skins Pages Page Templates Bounded Task Flow Fragments Bounded Task Flow Fragments Bounded Task Flow Fragments EAR

26 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 26 The Monster Architecture  Granularity of Bounded Task Flows – What are their functional boundaries? – How many Bounded Task Flows? – Do we make them all find grained (~service)? – Or course grained (~complete process)? – Or a mix of both? Design Considerations

27 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 27 The Monster Architecture  Relatively simple architecture still  Bounded Task Flows introduce – 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 Advantages

28 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 28 The Monster Architecture  Developers can still accidentally tightly couple code  Build is still an all or nothing affair  Unit testing is still hard  Regression testing is an all or nothing affair  Bounded Task Flows aren’t externally reusable  Bounded Task Flows transaction options can be complicated Disadvantages

29 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 29 Pillar The Sum-of-the-Parts Architecture Fine Grained Small and Simple Application Monster Two for One Deal Sum of the Parts Cylinder

30 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 30 The Sum-of-the-Parts Architecture  One master application workspace with an Unbounded Task Flow  Model – Split into separate application workspace – Published and consumed as ADF Library  One to many separate “BTF” application workspaces – Each contains one to many Bounded Task Flows – Published and consumed as ADF Libraries Characteristics

31 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 31 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 1 Master Workspace ViewController The Sum-of-the-Parts Architecture Common Workspace Model Entity Objects View Objects AppModule Framework Extensions Task Flow Templates Unbounded Task Flow Pages BTF Workspace ViewController Bounded Task Flow Fragments Bounded Task Flow Fragments Page Templates Declarative Components Skins ViewController Extensions ViewController Extensions BTF Workspace ViewController Bounded Task Flow Fragments Bounded Task Flow Fragments ADF Libraries EAR

32 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 32 The Sum-of-the-Parts Architecture  What functionality logically goes in to a BTF application workspace?  What is the granularity of each BTF?  Task flow transaction options  Is reuse a consideration?  Deployment considerations – One EAR vs WLS shared libraries Design Considerations

33 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 33 The Sum-of-the-Parts Architecture  Full power of BTFs – Reuse is now a strong possibility – Excellent separation of concerns – Loose coupling - each BTF can be self contained – BTFs can be tested standalone – Scope of regression testing can be limited to BTFs  Suitable for large projects and teams  Ownership - developers become responsible for individual BTFs, team lead for master application Advantages

34 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 34 The Sum-of-the-Parts Architecture  Complex architecture, not suitable for beginners – Dependency management is now an issue – Build management is now an issue – Designing BTFs for reuse can be difficult  Within model layer ability to apply ADF BC security of the box is lost Disadvantages

35 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 35 Pillar The Two-for-One-Deal Architecture Image source: Fine Grained Small and Simple Application Monster Two for One Deal Sum of the Parts Cylinder

36 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 36 The Two-for-One-Deal Architecture  Extension of Sum-of-the-Parts pattern  Reuse means BTFs can be used across applications Characteristics

37 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 37 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. The Two-for-One-Deal Architecture BTF Workspace ViewController Bounded Task Flows Master Workspace Master Workspace Master Workspace Master Workspace BTF Workspace ViewController Bounded Task Flows BTF Workspace ViewController Bounded Task Flows ADF Library

38 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 38 The Two-for-One-Deal Architecture  What are the requirements of the BTF now vs the future?  What BTFs are already available?  Should all BTFs be designed for reuse? Design Considerations

39 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 39 The Two-for-One-Deal Architecture  All the benefits of “Sum of the parts” +  Reuse initially feels “cool”  It’s like reaching nirvana after learning and much hardwork Advantages

40 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 40 The Two-for-One-Deal Architecture  Repeated: – What functionality logically goes in to a BTF application workspace? – What is the granularity of each BTF?  Dependency management can become a nightmare – Different versions of BTFs between applications need to be managed – Different versions of BTFs running on different version of ADF need to be managed – Potential solutions: tools such as Maven & Ivy Disadvantages

41 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 41 Pillar The Cylinder Architecture Image source: Fine Grained Small and Simple Application Monster Two for One Deal Sum of the Parts Cylinder

42 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 42 The Cylinder Architecture  Similar in nature to Sum-of-the-Parts patterns  Application is made up of many cylinders – Cylinder is self contained business/functional area – Each cylinder is an application workspace  Model layer isn’t separated into ADF Library – Each cylinder has it’s own Model layer – ADF BC framework extensions are an exception Characteristics

43 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 43 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 1 Master Workspace ViewController The Cylinder Architecture Common Workspace Task Flow Templates Unbounded Task Flow Cylinder Workspace 1 Model Page Templates Declarative Components Skins ViewController Extensions ViewController Extensions Cylinder Workspace 2 Model ADF Libraries ViewController Bounded Task Flows ViewController Bounded Task Flows Entity Objects View Objects AppModule Framework Extensions Entity Objects View Objects AppModule Framework Extensions EAR

44 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 44 The Cylinder Architecture  Doesn’t have to align itself to a subsystem/silo.  How fat or thin should the cylinders be?  What functions should each cylinder contain?  Where’s the logical line drawn for a cylinder?  This is not just about BTF granularity;  What is the granularity of the cylinder? Design Considerations

45 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 45 The Cylinder Architecture  Reduces dependencies on most actively changing Model layer  Logically groups related BTFs together  From team and project point of view: – Related BTFs are worked on together – Independent cylinders are worked on separately – Aligns well to project phases – Regression testing can focus on one cylinder at a time Advantages

46 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 46 The Cylinder Architecture  Duplicated functionality across cylinder “Model” projects – Creates a maintenance issue  Application parts must be versioned separately  Doesn’t isolate you from database changes  No separation of concerns within a cylinder  One massive application which may overwhelm the JVM resources Disadvantages

47 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 47 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. If our cylinders end up as massive applications in their own right, the single deployed EAR and its resource requirements are going to overwhelm even the largest JVM. What’s the solution?

48 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 48 Pillar Pillar Architecture Fine Grained Small and Simple Application Monster Two for One Deal Sum of the Parts Cylinder

49 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 49 Pillar Architecture  Extension of the cylinder pattern  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 Characteristics

50 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 50 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Pillar Workspace 1 Model Pillar Workspace 2 Model ViewController Bounded Task Flows ViewController Bounded Task Flows Entity Objects View Objects AppModule Framework Extensions Entity Objects View Objects AppModule Framework Extensions Unbounded Task Flow Pillar Architecture Common Workspace Task Flow Templates Page Templates Declarative Components Skins ViewController Extensions ViewController Extensions ADF Libraries EAR #1 EAR #2

51 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 51 Pillar Architecture  A number of separate WLS servers to deploy your application  To provide a seamless user experience, you’ll need to consider: – SSO – A common UI Shell or equivalent – Find a mechanism for sharing state between disparate applications Design Considerations

52 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 52 Pillar Architecture  A flexible change control procedure: – Patching can focus on fixing affected cylinders only – Changes to one pillar doesn’t require a redeployment of the whole application – Result in less downtimes for the other pillars  Performance of one application isn’t affected by another Advantages

53 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 53 Pillar Architecture  Implementing SSO  Implementing state sharing mechanism Disadvantages

54 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 54 Program Agenda  Architectural Challenges for ADF Projects  Decisions that will affect your ADF Architecture  ADF Application Architecture Patterns  Anti-Patterns  Best Practices

55 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 55 Anti-Patterns  Everything is a template  Fine grained architecture  Silo’ed cylinders

56 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 56 Pillar Fine Grained Architecture Image source: mob_2k5 / PhotoBucket Fine Grained Small and Simple Application Monster Two for One Deal Sum of the Parts Cylinder

57 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 57 Fine Grained Architecture  Granularity of BTFs is reduced to its smallest size – The goal is reuse of totally everything  BTFs can be wrapped in BTFs to create composites of functionality  Reuse must be a mindset, not just a nice to have  Reuse must be considered at every phase of the project Characteristics

58 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 58 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Service BTF Composite BTF

59 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 59 Fine Grained Architecture  Extreme reuse (like an extreme sport)  Patterns start to appear in patterns  If you love “pain” this pattern is for you Advantages

60 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 60 Fine Grained Architecture  Not for the feint hearted  Performance issues – lots of requerying of data  Overcomplicates even simple applications  House of cards – requires strong team discipline  “Worst case” dependency management Disadvantages

61 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 61 Program Agenda  Architectural Challenges for ADF Projects  Decisions that will affect your ADF Architecture  ADF Application Architecture Patterns  Anti-Patterns  Best Practices

62 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 62 When Starting Out Best Practices  Start small – THINK BIG  Find help  Document key decisions that influence the architecture  Communicate advantages/disadvantages of such decisions  Planning  Learn  Plan to learn

63 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 63 Selecting a Pattern Guidelines  Take time to discuss merits of each pattern vs. your requirements  Consider your – Processes – Reuse requirements – Team’s size – Team’s expertise & capabilities – Organization’s infrastructure

64 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 64 ADF Architecture Best Practices  There is no perfect solution – live with your decisions  Reuse is good but shouldn’t be taken to its extreme  You must consider your team and organization’s capabilities & infrastructure when picking a pattern  Don’t create solutions that work against the overall framework  Consider all your options, what are you hoping to achieve?

65 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 65 Q&A

66 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 66 Join the Oracle ADF Community /jdeveloperADF Insider ADF Architecture JDeveloper

67 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 67 Learn More at Oracle OpenWorld TitleTimeLocation Oracle ADF and Oracle ADF Mobile: Lessons Learned in Real-World Implementations Wed 11:45 Marriot – Golden Gate C3 One Size Doesn’t Fit All: Oracle ADF Architecture Fundamentals Thu 11:00 Marriot – Golden Gate A Hands-on Lab: Developing Mobile Applications with Oracle ADF Mobile Wed 10:15 Marriot – Salon 12 Related sessions and labs Oracle ADF booth at the Oracle Demo Ground – Moscone South

68 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 68

69 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 69


Download ppt "Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 1."

Similar presentations


Ads by Google