design - adf architectural patterns

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

Post on 12-Feb-2018

226 views

Category:

Documents


0 download

TRANSCRIPT

7/23/2019 Design - ADF Architectural Patterns

http://slidepdf.com/reader/full/design-adf-architectural-patterns 1/71

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

7/23/2019 Design - ADF Architectural Patterns

http://slidepdf.com/reader/full/design-adf-architectural-patterns 2/71

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

Real World ADF Design & Architecture Prin

 ADF Architectural Patterns

7/23/2019 Design - ADF Architectural Patterns

http://slidepdf.com/reader/full/design-adf-architectural-patterns 3/71

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

Learning Objectives

• 

 At the end of this module you should be able to:

 – 

Identify separate ADF architectural patterns

• 

Understand the moving ADF parts within each patte

• 

How ADF applications can be composed and separ

 – 

Consider the pros and cons of each approach –

 

 Acknowledge potential anti-patterns and best practice

 – 

Match patterns to your requirements and capabilities

Imag

7/23/2019 Design - ADF Architectural Patterns

http://slidepdf.com/reader/full/design-adf-architectural-patterns 4/71

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

“Design engineering is more than a mere balancing act betweenbest options among a sea of possibilities, and then implementing

options through the careful orchestration of available resources. manage the challenges of the design process, it is also necessa

develop an instinct for choosing design paths and systemconfigurations that provide some measure of flexibility . This

wiggle room as projects advance toward completion, often crea

angel in the architecture’ to serve as a countermeasure for sitwhich ‘the devil is in the details.’”

Mark ValentineCourtesy of Defence Electronics (Previously RFDesign.com)

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

7/23/2019 Design - ADF Architectural Patterns

http://slidepdf.com/reader/full/design-adf-architectural-patterns 5/71

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

ADF Application Architecture Patterns

• 

In scope 

 – 

 Architectural patterns within an ADF application

• 

Out of scope 

 – 

 Architectural patterns across systems –

 

Server, hardware & network topologies

7/23/2019 Design - ADF Architectural Patterns

http://slidepdf.com/reader/full/design-adf-architectural-patterns 6/71

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

ADF Application Architecture Patterns

•  “However beautiful the strategy, you should occasionally look a

• 

“The best-laid schemes of mice and men” (often go awry)

• 

“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

7/23/2019 Design - ADF Architectural Patterns

http://slidepdf.com/reader/full/design-adf-architectural-patterns 7/71

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

ADF Application Architecture Patterns

• 

Take time to discuss merits of each pattern vs. your requ

• 

Consider your  

 – 

Processes

 –  Reuse requirements

 – 

Team’s size –

 

Team’s expertise & capabilities

 – 

Organization’s infrastructure

7/23/2019 Design - ADF Architectural Patterns

http://slidepdf.com/reader/full/design-adf-architectural-patterns 8/71

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

Program Agenda

• 

 ADF Application Architecture Patterns

• 

 Anti-Patterns

• 

 A Peek at Oracle’s Fusion Applications

7/23/2019 Design - ADF Architectural Patterns

http://slidepdf.com/reader/full/design-adf-architectural-patterns 9/71

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

Multi-Access

ChannelFine Grained

Pattern Genealogy

Small and

Simple

Application 

Colossal 

Two for One

Deal

Sum of the

Parts Cylinder

Pillar

7/23/2019 Design - ADF Architectural Patterns

http://slidepdf.com/reader/full/design-adf-architectural-patterns 10/71

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

The Small and Simple Application Arch

Fine Grained

Small and

Simple

Application 

Colossal 

Two for One

Deal

Sum of the

Parts Cylinder

7/23/2019 Design - ADF Architectural Patterns

http://slidepdf.com/reader/full/design-adf-architectural-patterns 11/71

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

The Small and Simple Application Arch

• 

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

7/23/2019 Design - ADF Architectural Patterns

http://slidepdf.com/reader/full/design-adf-architectural-patterns 12/71

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

The Small and Simple Application Arch

 Application Workspace

Model

Entity Objects

View Objects

 AppModule

F r  am ew or k 

E x  t   en s i   on s 

ViewController

Unbounded Task FlowV i   ew C  on t  r  ol  l   er 

E x  t   en s i   on s 

Page Templates

Declarative Components

Skins

Pages

7/23/2019 Design - ADF Architectural Patterns

http://slidepdf.com/reader/full/design-adf-architectural-patterns 13/71

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

The Small and Simple Application Arch

• 

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

7/23/2019 Design - ADF Architectural Patterns

http://slidepdf.com/reader/full/design-adf-architectural-patterns 14/71

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

The Small and Simple Application Arch

• 

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

• 

Not essential to have complete development infrastructu

 Advantages

7/23/2019 Design - ADF Architectural Patterns

http://slidepdf.com/reader/full/design-adf-architectural-patterns 15/71

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

The Small and Simple Application Arch

• 

Poor mapping of business processes to technical solutio

• 

Tight coupling, poor modularization & separation of conc

 – 

Developers can break each others’ work

 – 

Developers can fight for control of primary code artifa

 – 

Unit testing is difficult

 – 

Post re-architecting is difficult

• 

 As solution grows, building & deploying slows

 – 

Build is an all or nothing affair

Disadvantages

7/23/2019 Design - ADF Architectural Patterns

http://slidepdf.com/reader/full/design-adf-architectural-patterns 16/71

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

The Colossal Architecture

Find Grained

Small and

Simple

Application 

Colossal 

Two for One

Deal

Sum of the

Parts Cylinder

7/23/2019 Design - ADF Architectural Patterns

http://slidepdf.com/reader/full/design-adf-architectural-patterns 17/71

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

The Colossal 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

7/23/2019 Design - ADF Architectural Patterns

http://slidepdf.com/reader/full/design-adf-architectural-patterns 18/71

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

The Colossal Architecture

 Application Workspace

Model

Entity Objects

View Objects

 AppModule

F r  am ew or k 

E x  t   en s i   on s 

ViewController

Unbounded Task FlowV i   ew C  on t  r  ol  l   er 

E x  t   en s i   on s 

Task Flow Templates

Declarative Component

Skins

Pages Page Templates

Bounded Task Flow

Fragments

Bounded Task FlowFragments

Bounded Task Flow

Fragments

7/23/2019 Design - ADF Architectural Patterns

http://slidepdf.com/reader/full/design-adf-architectural-patterns 19/71

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

The Colossal Architecture

• 

Granularity of Bounded Task Flows

 – 

What are their functional boundaries?

 – 

How many Bounded Task Flows?

 – 

Do we make them all fine grained (~service)?

 – 

Or coarse grained (~complete process)?

 – 

Or a mix of both?

• 

What makes a suitable declarative component and what

suitable single view activity Bounded Task Flow?

Design Considerations

7/23/2019 Design - ADF Architectural Patterns

http://slidepdf.com/reader/full/design-adf-architectural-patterns 20/71

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

The Colossal 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 –

 

Programming by contract now possible

• 

Improved ability to test modules

 Advantages

7/23/2019 Design - ADF Architectural Patterns

http://slidepdf.com/reader/full/design-adf-architectural-patterns 21/71

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

The Colossal 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 complic

Disadvantages

7/23/2019 Design - ADF Architectural Patterns

http://slidepdf.com/reader/full/design-adf-architectural-patterns 22/71

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

The Sum-of-the-Parts Architecture

Fine Grained

Small and

Simple

Application 

Colossal 

Two for One

Deal

Sum of the

Parts Cylinder

7/23/2019 Design - ADF Architectural Patterns

http://slidepdf.com/reader/full/design-adf-architectural-patterns 23/71

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

The Sum-of-the-Parts Architecture

• 

One master application workspace with an Unbounded T

• 

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

7/23/2019 Design - ADF Architectural Patterns

http://slidepdf.com/reader/full/design-adf-architectural-patterns 24/71

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

Master Workspace

ViewController

The Sum-of-the-Parts ArchitectureCommon

Mo

Entity Obje

View Obje

 AppModu

Task Flow

Unbounded Task Flow

Pages

BTF Workspace

ViewController

Bounded Task Flow

Fragments

Bounded Task Flow

Fragments

Page Te

Declarative

Sk

ViewCExten

BTF Workspace

ViewController

Bounded Task Flow

Fragments

Bounded Task Flow

Fragments

 ADF Libraries

A DF 

L i   b r  ar i   e s 

   E   A   R 

S f

7/23/2019 Design - ADF Architectural Patterns

http://slidepdf.com/reader/full/design-adf-architectural-patterns 25/71

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

The Sum-of-the-Parts Architecture

• 

What functionality logically goes in to a BTF application w

• 

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

Th S f th P t A hit t

7/23/2019 Design - ADF Architectural Patterns

http://slidepdf.com/reader/full/design-adf-architectural-patterns 26/71

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

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 individu

team lead for master application

 Advantages

Th S f th P t A hit t

7/23/2019 Design - ADF Architectural Patterns

http://slidepdf.com/reader/full/design-adf-architectural-patterns 27/71

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

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 out o

lost

Disadvantages

Th S f th P t "Alt ti "

7/23/2019 Design - ADF Architectural Patterns

http://slidepdf.com/reader/full/design-adf-architectural-patterns 28/71

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

Master Workspace

ViewController

The Sum-of-the-Parts "Alternative"

Common

Mo

Entity Obje

View Obje

Task Flow

Unbounded Task Flow

Pages

BTF Workspace

ViewController

Bounded Task Flow

Fragments

Page Te

Declarative

Sk

ViewCExten

BTF Workspace

ViewController

Bounded Task Flow

Fragments

 ADF Libraries

A D

F L i   b r  ar i   e s 

   E   A   R 

Model

View Objects

 AppModule

F r  am e

w or k 

E x  t   en s i   on s 

Model

View Objects

 AppModule

F r  am e

w or k 

E x  t   en s i   on s 

 AppModu

Th T f O D l A hit t

7/23/2019 Design - ADF Architectural Patterns

http://slidepdf.com/reader/full/design-adf-architectural-patterns 29/71

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

The Two-for-One-Deal Architecture

Fine Grained

Small and

Simple

Application 

Colossal 

Two for One

Deal

Sum of the

Parts Cylinder

Th T f O D l A hit t

7/23/2019 Design - ADF Architectural Patterns

http://slidepdf.com/reader/full/design-adf-architectural-patterns 30/71

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

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 Architecture

7/23/2019 Design - ADF Architectural Patterns

http://slidepdf.com/reader/full/design-adf-architectural-patterns 31/71

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

The Two-for-One-Deal Architecture

BTF Workspace

ViewController

Bounded Task Flows

MasterWorkspace

BTF Workspace

ViewController

Bounded Task Flows

BTF Workspace

ViewController

Bounded Task Flows

 ADFLibrary

 ADFLibrary

 ADFLibrary

 ADFLibrary

The Two for One Deal Architecture

7/23/2019 Design - ADF Architectural Patterns

http://slidepdf.com/reader/full/design-adf-architectural-patterns 32/71

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

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 Architecture

7/23/2019 Design - ADF Architectural Patterns

http://slidepdf.com/reader/full/design-adf-architectural-patterns 33/71

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

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 hard w

 Advantages

The Two for One Deal Architecture

7/23/2019 Design - ADF Architectural Patterns

http://slidepdf.com/reader/full/design-adf-architectural-patterns 34/71

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

The Two-for-One-Deal Architecture

• 

Repeated:

 – 

What functionality logically goes into a BTF application work –

 

What is the granularity of each BTF?

• 

Dependency management can become a nightmare

 – 

Different versions of BTFs between applications need

managed –

 

Different versions of BTFs running on different version

need to be managed

 –  Potential solutions: tools such as Maven & Ivy

Disadvantages

The Cylinder Architecture

7/23/2019 Design - ADF Architectural Patterns

http://slidepdf.com/reader/full/design-adf-architectural-patterns 35/71

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

The Cylinder Architecture

Fine Grained

Small and

Simple

Application 

Colossal 

Two for One

Deal

Sum of the

Parts Cylinder

The Cylinder Architecture

7/23/2019 Design - ADF Architectural Patterns

http://slidepdf.com/reader/full/design-adf-architectural-patterns 36/71

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

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 Architecture

7/23/2019 Design - ADF Architectural Patterns

http://slidepdf.com/reader/full/design-adf-architectural-patterns 37/71

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

Master Workspace

ViewController

The Cylinder Architecture

Common

Task Flow

Unbounded Task Flow

Cylinder Workspace 1

Model

Page Te

Declarative

Sk

ViewCExten

Cylinder Workspace 2

Model

 ADF Libraries

A DF 

L i   b r  ar i   e s 

ViewController

Bounded Task Flows

ViewController

Bounded Task Flows

Entity Objects

View Objects

 AppModule

F r  am ew or k 

E x  t   en s i   on s 

  Entity Objects

View Objects

 AppModule

F r  am

 ew or k 

E x  t   e

n s i   on s 

   E   A   R 

The Cylinder Architecture

7/23/2019 Design - ADF Architectural Patterns

http://slidepdf.com/reader/full/design-adf-architectural-patterns 38/71

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

The Cylinder Architecture

• 

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 Architecture

7/23/2019 Design - ADF Architectural Patterns

http://slidepdf.com/reader/full/design-adf-architectural-patterns 39/71

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

The Cylinder Architecture

• 

Reduces dependencies on most actively changing Mode•

 

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 Architecture

7/23/2019 Design - ADF Architectural Patterns

http://slidepdf.com/reader/full/design-adf-architectural-patterns 40/71

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

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

Disadvantages

If our cylinders end up

7/23/2019 Design - ADF Architectural Patterns

http://slidepdf.com/reader/full/design-adf-architectural-patterns 41/71

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

applications in their o

single deployed EA

resource requirements

overwhelm even the l

What’s the solu

Pillar Architecture

7/23/2019 Design - ADF Architectural Patterns

http://slidepdf.com/reader/full/design-adf-architectural-patterns 42/71

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

Pillar Architecture

Fine Grained

Small and

Simple

Application 

Colossal 

Two for One

Deal

Sum of the

Parts Cylinder

Pillar Architecture

7/23/2019 Design - ADF Architectural Patterns

http://slidepdf.com/reader/full/design-adf-architectural-patterns 43/71

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

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

The Pillar Architecture

7/23/2019 Design - ADF Architectural Patterns

http://slidepdf.com/reader/full/design-adf-architectural-patterns 44/71

44  Copyright © 2013, Oracle and/or its affiliates. All rights reserved.44 Copyright © 2013, 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

F r  am

 ew or k 

E x  t   e

n s i   on s 

  Entity Objects

View Objects

 AppModule

F r  am

 ew or k 

E x  t   e

n s i   on s 

  Unbounded Task Flow Unbounded Task Flow

The Pillar Architecture

Common

Task Flow

Page Te

Declarative

Sk

ViewCExten

A DF L i   b r  ar i   e s 

EAR #1 EAR #2

The Pillar Architecture

7/23/2019 Design - ADF Architectural Patterns

http://slidepdf.com/reader/full/design-adf-architectural-patterns 45/71

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

• 

 A number of separate WLS servers to deploy your applic

• 

To provide a seamless user experience, you’ll need to co

 –  SSO

 –   A common UI Shell or equivalent

 – 

Find a mechanism for sharing state between disparate applications

Design Considerations

The Pillar Architecture

7/23/2019 Design - ADF Architectural Patterns

http://slidepdf.com/reader/full/design-adf-architectural-patterns 46/71

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

• 

 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

 –  Result in less downtimes for the other pillars

• 

Performance of one application isn’t affected by another

 Advantages

The Pillar Architecture

7/23/2019 Design - ADF Architectural Patterns

http://slidepdf.com/reader/full/design-adf-architectural-patterns 47/71

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

• 

Implementing SSO

• 

Implementing state sharing mechanism 

Disadvantages

The Multi-Access Channel Architecture

7/23/2019 Design - ADF Architectural Patterns

http://slidepdf.com/reader/full/design-adf-architectural-patterns 48/71

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

Fine Grained

Small and

Simple

Application 

Colossal 

Two for One

Deal

Sum of the

Parts 

Image so

Cylinder

Exercise

7/23/2019 Design - ADF Architectural Patterns

http://slidepdf.com/reader/full/design-adf-architectural-patterns 49/71

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

 ADF Mobile and other solutions canmake reuse of our ADF BC projects

remotely via SDO web service calls.

Let's consider the following picture....

Ima

The Multi-Access Channel Architecture

7/23/2019 Design - ADF Architectural Patterns

http://slidepdf.com/reader/full/design-adf-architectural-patterns 50/71

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

Master Workspace

ViewController

CommonWorkspace

Unbounded Task Flow

Cylinder Workspace

Model

ViewController

Bounded Task Flows

Entity Objects

View Objects

 AppModule

F r  am ew or k 

E x  t   en s i   on s 

SOAP - HTTP

HTML - HTTP

WhaExercise

7/23/2019 Design - ADF Architectural Patterns

http://slidepdf.com/reader/full/design-adf-architectural-patterns 51/71

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

Is this architecturesuitable for multi-access?

Should we directlyreuse all of our ADF

BC components forweb services?

advan

disadv

Ima

Program Agenda

7/23/2019 Design - ADF Architectural Patterns

http://slidepdf.com/reader/full/design-adf-architectural-patterns 52/71

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

•  ADF Application Architecture Patterns

• 

 Anti-Patterns

• 

 A Peek at Oracle’s Fusion Applications

Anti-Patterns

7/23/2019 Design - ADF Architectural Patterns

http://slidepdf.com/reader/full/design-adf-architectural-patterns 53/71

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

• 

Everything is a template

• 

Fine grained architecture

Fine Grained Architecture

7/23/2019 Design - ADF Architectural Patterns

http://slidepdf.com/reader/full/design-adf-architectural-patterns 54/71

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

Fine Grained

Small and

Simple

Application 

Colossal 

Two for One

Deal

Sum of the

Parts Cylinder

Fine Grained Architecture

7/23/2019 Design - ADF Architectural Patterns

http://slidepdf.com/reader/full/design-adf-architectural-patterns 55/71

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

• 

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 f

• 

Reuse must be a mindset, not just a nice to have

• 

Reuse must be considered at every phase of the project

Characteristics

7/23/2019 Design - ADF Architectural Patterns

http://slidepdf.com/reader/full/design-adf-architectural-patterns 56/71

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

Fine Grained Architecture

7/23/2019 Design - ADF Architectural Patterns

http://slidepdf.com/reader/full/design-adf-architectural-patterns 57/71

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

• 

Extreme reuse (like an extreme sport)

• 

Patterns start to appear in patterns

• 

If you love “pain” this pattern is for you

 Advantages

Fine Grained Architecture

7/23/2019 Design - ADF Architectural Patterns

http://slidepdf.com/reader/full/design-adf-architectural-patterns 58/71

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

• 

Not for the feint hearted

• 

Performance issues – lots of re-querying of data

• 

Overcomplicates even simple applications

• 

House of cards – requires strong team discipline

• 

“Worst case” dependency management

Disadvantages

Program Agenda

7/23/2019 Design - ADF Architectural Patterns

http://slidepdf.com/reader/full/design-adf-architectural-patterns 59/71

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

• 

 ADF Application Architecture Patterns

• 

 Anti-Patterns

• 

 A Peek at Oracle’s Fusion Applications

A Peek at Oracle’s Fusion ApplicationsS St ti ti

7/23/2019 Design - ADF Architectural Patterns

http://slidepdf.com/reader/full/design-adf-architectural-patterns 60/71

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

Some Statistics!"#$%&' )*+,-. /0 10 23 4-"56&-.

!"# %%& ''() *+*, (-' ())

./0102/134 '(', '+(- -5&) +&( ''%

6"! '), ')( -,+ 5& +)

7!# '*&% '+%) -,(5 ++5 '(,

80290:;9 !<=> '&% ')' *(, -& 5

?@<2A@9=90B *'' *5+ %+( ''( '-

??# -5, +*( '))+ *,) *' C!# %(* ',*5 (((& +'* -(%

C9BA> )( 5& *&' -+ +,

)#'*, :;<=> <;:?@ =A;?A: B;:>= =;B=:

A Peek at Oracle’s Fusion ApplicationsO i

7/23/2019 Design - ADF Architectural Patterns

http://slidepdf.com/reader/full/design-adf-architectural-patterns 61/71

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

• 

Made up of multiple Java EE applications (not 1) –

 

Financials, CRM etc. plus a Common application

• 

One app would result in a massive JVM heap

• 

Growing problem as more applications are added•

 

No one customer will install and run all applications

Overview

A Peek at Oracle’s Fusion ApplicationsO i

7/23/2019 Design - ADF Architectural Patterns

http://slidepdf.com/reader/full/design-adf-architectural-patterns 62/71

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

•  Each application is designed to

 – 

Be sold separately

 – 

Run standalone if need be

 – 

Presents itself as a self contained page with overall FA

• 

 Applications are divided into functional areas

 – 

Financials: payable, receivables

 – 

Division of functions per application is up to the respe

Overview

A Peek at Oracle’s Fusion ApplicationsO i

7/23/2019 Design - ADF Architectural Patterns

http://slidepdf.com/reader/full/design-adf-architectural-patterns 63/71

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

• 

There is no single composite “Fusion Apps” Java EE app

• 

Each application has

 – 

Its own WLS domain/cluster (and by inference URL)

 – 

Served in a page with its own UI Shell

• 

UI Shell is present in each EE application

 – 

Feels like one application to users, really many

 – 

Runtime applications do not share state via Java EE

 – 

 All state is shared via database and FMW infrastructu

Overview

A Peek at Oracle’s Fusion Applications

7/23/2019 Design - ADF Architectural Patterns

http://slidepdf.com/reader/full/design-adf-architectural-patterns 64/71

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

JDeveloper Workspaces

A Peek at Oracle’s Fusion Applications

7/23/2019 Design - ADF Architectural Patterns

http://slidepdf.com/reader/full/design-adf-architectural-patterns 65/71

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

• 

1 to1 relationship with Java EE application and JDev wo

• 

There are no non-runnable workspaces (common works

• 

 All projects for application are contained in the 1 worksp

JDeveloper Workspaces

Workspaces and Projects

A Peek at Oracle’s Fusion Applications

7/23/2019 Design - ADF Architectural Patterns

http://slidepdf.com/reader/full/design-adf-architectural-patterns 66/71

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

• 

Projects can have broad or fine granular functionality

• 

Projects can be divided by following dimensions:

 – 

Functional – e.g. Expenses could have Entry, Auditing

 Approval projects

 – 

Technology – e.g. ADF BC vs. UI

 – 

Internal or common/shared

• 

Common projects are designed to: –

 

Be reused by other applications through ADF Librarie

 – 

Have few/zero dependencies from other workspace p

Workspaces and Projects

A Peek at Oracle’s Fusion ApplicationsTask Flows

7/23/2019 Design - ADF Architectural Patterns

http://slidepdf.com/reader/full/design-adf-architectural-patterns 67/71

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

• 

The granularity of task flows takes all sizes

• 

Many common fragments = 1 to 1 with task flow

• 

e.g. Customer header, customer popups

• 

Other more “complex” task flows have many fragments/a

Task Flows

Exercise

7/23/2019 Design - ADF Architectural Patterns

http://slidepdf.com/reader/full/design-adf-architectural-patterns 68/71

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

What pattern doesFusion Applications

use?

Im

Conclusion

7/23/2019 Design - ADF Architectural Patterns

http://slidepdf.com/reader/full/design-adf-architectural-patterns 69/71

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

• 

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 capabil

infrastructure when picking a pattern

• 

Don’t create solutions that work against the overall frame

• 

Consider all your options, what are you hoping to achiev

Further Reading

7/23/2019 Design - ADF Architectural Patterns

http://slidepdf.com/reader/full/design-adf-architectural-patterns 70/71

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

• 

Section 38 Reusing Application Components of the Fusi

Developer's Guide for Oracle Application Development F

11.1.2.3.0

 –  http://bit.ly/adfdevguide11123sect38

7/23/2019 Design - ADF Architectural Patterns

http://slidepdf.com/reader/full/design-adf-architectural-patterns 71/71

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