slide1 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
ADF Architecture Square PowerPoint Presentation
Download Presentation
ADF Architecture Square

Loading in 2 Seconds...

play fullscreen
1 / 69

ADF Architecture Square - PowerPoint PPT Presentation


  • 224 Views
  • Uploaded on

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 .

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'ADF Architecture Square' - jeri


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide2

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.

adf architecture square
ADF Architecture Square

http://bit.ly/adfarchsquare

  • Oracle ADF Development Essentials
  • ADF Code Guidelines
  • ADF Naming and Project Layout Guidelines
adf architecture tv
ADF Architecture TV

http://bit.ly/adftvsub

one size doesn t fit all oracle adf architecture fundamentals
One Size Doesn’t Fit AllOracle ADF Architecture Fundamentals

Chris Muir

Senior Principal ADF Product Manager

Oracle Development Tools

program agenda
Program Agenda
  • Architectural Challenges for ADF Projects
  • Decisions that will affect your ADF Architecture
  • ADF Application Architecture Patterns
  • Anti-Patterns
  • Best Practices
architecture challenges for adf projects
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

slide8

If you make poor early architectural choices in your project they can have severe repercussions later

Image: Rasmus Thomsen / FreeDigitalPhotos.net

architecture challenges for adf projects1
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

architectural decisions
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
program agenda1
Program Agenda
  • Architectural Challenges for ADF Projects
  • Decisions that will affect your ADF Architecture
  • ADF Application Architecture Patterns
  • Anti-Patterns
  • Best Practices
slide12
Mark Valentine

Courtesy of Defence Electronics (Previously RFDesign.com)

http://rfdesign.com/mag/radio_flexibility_designers_best/

“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.’”

adf application architecture patterns
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
adf application architecture patterns1
ADF Application Architecture Patterns
  • In scope
    • Architectural patterns within an ADFapplication
  • Out of scope
    • Architectural patterns across systems
    • Server, hardware & network topologies
adf application architecture patterns2
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
pattern genealogy
Pattern Genealogy

Two for One Deal

Cylinder

Pillar

Sum of the Parts

Fine Grained

Monster

Small and Simple Application

the small and simple application architecture
The Small and Simple Application Architecture

Two for One Deal

Pillar

Cylinder

Sum of the Parts

Fine Grained

Monster

Small and Simple Application

Image Source: http://bit.ly/GzVLDf

the small and simple application architecture1
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
the small and simple application architecture2
The Small and Simple Application Architecture

Application Workspace

Model

Entity Objects

Framework Extensions

View Objects

AppModule

ViewController

EAR

Unbounded Task Flow

Page Templates

Pages

Declarative Components

ViewController Extensions

Skins

the small and simple application architecture3
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
the small and simple application architecture4
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
the small and simple application architecture5
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
the monster architecture
The Monster Architecture

Two for One Deal

Pillar

Cylinder

Sum of the Parts

Find Grained

Monster

Small and Simple Application

Image source: http://bit.ly/GzDTsR

the monster architecture1
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
the monster architecture2
The Monster Architecture

Application Workspace

Model

Entity Objects

Framework Extensions

View Objects

AppModule

ViewController

EAR

Unbounded Task Flow

Bounded Task Flow

Task Flow Templates

Fragments

Pages

Page Templates

ViewController Extensions

Declarative Components

Bounded Task Flow

Bounded Task Flow

Fragments

Fragments

Skins

the monster architecture3
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
the monster architecture4
The Monster Architecture
  • Relatively simple architecture still
  • Bounded Task Flows introduce
    • Improved business processtodesign 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
the monster architecture5
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
the sum of the parts architecture
The Sum-of-the-Parts Architecture

Two for One Deal

Pillar

Cylinder

Sum of the Parts

Fine Grained

Monster

Small and Simple Application

the sum of the parts architecture1
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
the sum of the parts architecture2
The Sum-of-the-Parts Architecture

Common Workspace

BTF Workspace

BTF Workspace

ViewController

ViewController

Model

Bounded Task Flow

Bounded Task Flow

Entity Objects

Fragments

Fragments

Framework Extensions

View Objects

Bounded Task Flow

Bounded Task Flow

AppModule

1

Fragments

Fragments

Task Flow Templates

Page Templates

ADF Libraries

ADF Libraries

Declarative Components

Master Workspace

ViewController

Skins

Unbounded Task Flow

ViewController

Extensions

EAR

Pages

the sum of the parts architecture3
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
the sum of the parts architecture4
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
the sum of the parts architecture5
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
the two for one deal architecture
The Two-for-One-Deal Architecture

Two for One Deal

Pillar

Cylinder

Sum of the Parts

Fine Grained

Monster

Small and Simple Application

Image source: http://bit.ly/GzDTsR

the two for one deal architecture1
The Two-for-One-Deal Architecture
  • Extension of Sum-of-the-Parts pattern
  • Reuse means BTFs can be used across applications
  • Characteristics
the two for one deal architecture2
The Two-for-One-Deal Architecture

Master

Workspace

BTF Workspace

Master

Workspace

ADF Library

ViewController

Bounded Task Flows

BTF Workspace

ADF Library

ViewController

Bounded Task Flows

BTF Workspace

ADF Library

ADF Library

ViewController

Bounded Task Flows

the two for one deal architecture3
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
the two for one deal architecture4
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
the two for one deal architecture5
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
the cylinder architecture
The Cylinder Architecture

Two for One Deal

Pillar

Cylinder

Sum of the Parts

Fine Grained

Monster

Small and Simple Application

Image source: http://yhoo.it/GzStM7

the cylinder architecture1
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
the cylinder architecture2
The Cylinder Architecture

Cylinder Workspace 1

Cylinder Workspace 2

Model

Model

Entity Objects

Entity Objects

Common Workspace

Framework Extensions

Framework Extensions

View Objects

View Objects

Task Flow Templates

AppModule

AppModule

Page Templates

ViewController

ViewController

Declarative Components

1

Bounded Task Flows

Bounded Task Flows

Skins

ADF Libraries

ADF Libraries

ViewController

Extensions

Master Workspace

ViewController

Unbounded Task Flow

EAR

the cylinder architecture3
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
the cylinder architecture4
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
the cylinder architecture5
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
slide47

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?

pillar architecture
Pillar Architecture

Two for One Deal

Pillar

Cylinder

Sum of the Parts

Fine Grained

Monster

Small and Simple Application

pillar architecture1
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
pillar architecture2
Pillar Architecture

Pillar Workspace 1

Pillar Workspace 2

Model

Model

Entity Objects

Entity Objects

Common Workspace

Framework Extensions

Framework Extensions

View Objects

View Objects

Task Flow Templates

AppModule

AppModule

Page Templates

ViewController

ViewController

Declarative Components

Bounded Task Flows

Bounded Task Flows

Skins

Unbounded Task Flow

Unbounded Task Flow

ADF Libraries

ViewController

Extensions

EAR #1

EAR #2

pillar architecture3
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
pillar architecture4
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
pillar architecture5
Pillar Architecture
  • Implementing SSO
  • Implementing state sharing mechanism
  • Disadvantages
program agenda2
Program Agenda
  • Architectural Challenges for ADF Projects
  • Decisions that will affect your ADF Architecture
  • ADF Application Architecture Patterns
  • Anti-Patterns
  • Best Practices
anti patterns
Anti-Patterns
  • Everything is a template
  • Fine grained architecture
  • Silo’ed cylinders
fine grained architecture
Fine Grained Architecture

Two for One Deal

Pillar

Cylinder

Sum of the Parts

Fine Grained

Monster

Small and Simple Application

Image source: mob_2k5 / PhotoBucket

fine grained architecture1
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
slide58

Service BTF

Service BTF

Service BTF

Service BTF

Service BTF

Composite BTF

fine grained architecture2
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
fine grained architecture3
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
program agenda3
Program Agenda
  • Architectural Challenges for ADF Projects
  • Decisions that will affect your ADF Architecture
  • ADF Application Architecture Patterns
  • Anti-Patterns
  • Best Practices
when starting out best practices
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
selecting a pattern guidelines
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
adf architecture best practices
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?
join the oracle adf community
Join the Oracle ADF Community

http://oracle.com/ADF

@jdeveloper

JDeveloper

/jdeveloper

ADF Insider

ADF Architecture

learn more at oracle openworld
Learn More at Oracle OpenWorld

Related sessions and labs

Oracle ADF booth at the Oracle Demo Ground – Moscone South