Beruflich Dokumente
Kultur Dokumente
ORACLE
PRODUCT
LOGO
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 pattern
How ADF applications can be composed and separated
Consider the pros and cons of each approach
Acknowledge potential anti-patterns and best practices
Match patterns to your requirements and capabilities
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.
Mark Valentine
Courtesy of Defence Electronics (Previously RFDesign.com)
http://rfdesign.com/mag/radio_flexibility_designers_best/
In scope
Architectural patterns within an ADF application
Out of scope
Architectural patterns across systems
Server, hardware & network topologies
Program Agenda
Pattern Genealogy
Two for One
Deal
Sum of the
Parts
Cylinder
Fine Grained
Colossal
Small and
Simple
Application
Pillar
Multi-Access
Channel
Pillar
Cylinder
Fine Grained
Multi-Access
Channel
Colossal
Small and
Simple
Application
10
11
Entity Objects
View Objects
AppModule
Pages
12
ViewController
Extensions
Page Templates
Declarative Components
Skins
EAR
ViewController
13
14
Pillar
Cylinder
Find Grained
Multi-Access
Channel
Colossal
Small and
Simple
Application
16
17
View Objects
AppModule
Framework
Extensions
Entity Objects
ViewController
18
Fragments
Bounded Task Flow
Fragments
EAR
Pages
ViewController
Extensions
20
21
Cylinder
Fine Grained
Colossal
Small and
Simple
Application
22
Pillar
Multi-Access
Channel
Common Workspace
ViewController
ViewController
Model
Fragments
Fragments
Fragments
Entity Objects
View Objects
AppModule
Fragments
Master Workspace
ViewController
EAR
ADF Libraries
ADF Libraries
24
Framework
Extensions
BTF Workspace
Page Templates
Declarative Components
Skins
ViewController
Extensions
25
27
BTF Workspace
Model
Model
View Objects
Entity Objects
View Objects
ViewController
ViewController
Fragments
Fragments
ViewController
Unbounded Task Flow
Pages
Copyright 2013, Oracle and/or its affiliates. All rights reserved.
ADF Libraries
Master Workspace
EAR
ADF Libraries
28
AppModule
Framework
Extensions
AppModule
Model
Framework
Extensions
AppModule
Framework
Extensions
View Objects
Common Workspace
Page Templates
Declarative Components
Skins
ViewController
Extensions
Pillar
Cylinder
Fine Grained
Multi-Access
Channel
Colossal
Small and
Simple
Application
29
30
ADF
Library
Master
Workspace
BTF Workspace
ViewController
Bounded Task Flows
BTF Workspace
ViewController
ADF
Library
ADF
Library
BTF Workspace
ViewController
Bounded Task Flows
31
ADF
Library
What are the requirements of the BTF now vs. the future?
What BTFs are already available?
Should all BTFs be designed for reuse?
32
33
Pillar
Cylinder
Fine Grained
Multi-Access
Channel
Colossal
Small and
Simple
Application
35
36
Cylinder Workspace 2
Model
AppModule
Entity Objects
View Objects
AppModule
ViewController
ViewController
Master Workspace
ViewController
EAR
Common Workspace
Task Flow Templates
Page Templates
Declarative Components
ADF Libraries
ADF Libraries
37
Framework
Extensions
View Objects
Framework
Extensions
Entity Objects
Model
Skins
ViewController
Extensions
38
39
40
41
Pillar Architecture
Two for One
Deal
Sum of the
Parts
Cylinder
Fine Grained
Colossal
Small and
Simple
Application
42
Pillar
Multi-Access
Channel
Pillar Architecture
Characteristics
43
AppModule
View Objects
AppModule
ViewController
EAR #2
Common Workspace
Task Flow Templates
Page Templates
Declarative Components
ADF Libraries
ViewController
EAR #1
44
Entity Objects
Framework
Extensions
View Objects
Model
Framework
Extensions
Entity Objects
Pillar Workspace 2
Skins
ViewController
Extensions
45
46
Implementing SSO
Implementing state sharing mechanism
47
Pillar
Cylinder
Fine Grained
Multi-Access
Channel
Colossal
Small and
Simple
Application
48
Exercise
ADF Mobile and other solutions can
make reuse of our ADF BC projects
remotely via SDO web service calls.
Let's consider the following picture....
49
Cylinder Workspace
Model
View Objects
AppModule
Framework
Extensions
Entity Objects
ViewController
Bounded Task Flows
SOAP - HTTP
Master Workspace
ViewController
Unbounded Task Flow
50
HTML - HTTP
Exercise
Should we directly
reuse all of our ADF
BC components for
web services?
Is this architecture
suitable for multi-access?
51
Program Agenda
52
Anti-Patterns
Everything is a template
Fine grained architecture
53
Cylinder
Fine Grained
Colossal
Small and
Simple
Application
54
Pillar
Multi-Access
Channel
55
Service BTF
Service BTF
Service BTF
Service BTF
Service BTF
Composite BTF
56
57
58
Program Agenda
59
Tables
EO
VO
AM
Services
Task Flows
CRM
996
1137
2520
341
377
2122
Financials
1310
1534
4867
563
119
2329
GRC
170
173
405
86
57
764
HCM
1269
1597
4038
558
130
2872
171
230
46
167
Procurement
211
285
953
113
14
428
PPM
480
523
1775
207
21
691
SCM
932
1028
3336
512
439
1422
Setup
73
86
261
45
50
162
Total
5,610
6,534
18,385
2,501
1,215
10,957
60
61
62
64
65
67
Exercise
What pattern does
Fusion Applications
use?
68
Conclusion
69
Further Reading
70
71