Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney
-
Upload
ganesh-prasad -
Category
Technology
-
view
1.241 -
download
2
description
Transcript of Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney
![Page 1: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/1.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Dependency-Oriented ThinkingSession 1 – Inculcating Dependency-Oriented
Thinking
![Page 2: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/2.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Agenda
● Introduction – Presenter bio, Participants' backgrounds
● Prior experiences with SOA● Expectations from this workshop● Case studies (interactive)● Notation (UML) for inter-system dependencies● Surrogate principles and why they don't always
apply● Exercises (interactive)
![Page 3: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/3.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
SOA is not just Technology● Technology is the implementation of business intent
● A lot of analysis and design is required before business intent can be implemented
![Page 4: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/4.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
How did SOA get to be seen as Technology?● “Service” is a weasel word
![Page 5: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/5.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Understanding the term “dependency”
● Not a fancy technical term; just a regular English word
● We can represent it using a formal notation
![Page 6: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/6.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Why are dependencies important?
● A system with a large number of interconnections (dependencies)
● Some of the dependencies are not even obvious
● Now move the orange block without disturbing any of the others
● How confident are you?
![Page 7: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/7.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
The impact of reducing dependencies● A system with far fewer interconnections (dependencies)
● No dependencies are unknown or hidden
● How confident are you of making changes without breaking anything?
● How fast can you move the block?
● How much do you need to plan for the move?
![Page 8: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/8.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
The trap of surrogate principles
● “Point-to-point connections considered harmful” considered harmful
![Page 9: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/9.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
The converse trap
● Mediated connections considered harmful
![Page 10: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/10.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Logical mediation
● A “point-to-point” connection can in fact be mediated
![Page 11: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/11.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Dependency view● The dependency view of a true point-to-point connection
![Page 12: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/12.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Dependency view● The dependency view of a mediated “point-to-point” connection
![Page 13: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/13.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Logical tight coupling● A “mediated” connection may in fact be tightly coupled
![Page 14: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/14.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Dependency view
● The dependency view of a tightly coupled mediated system
![Page 15: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/15.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Reducing dependencies – the Linux way
● Linux uses the Unix mechanism of symbolic links to abstract changes
![Page 16: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/16.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Dependency-Oriented ThinkingSession 2 – Dependency-Oriented Thinking as a
Formal Approach
![Page 17: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/17.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Agenda
● The BAIT Model of the enterprise● Entities and Relationships in the TOGAF Model● The core elements applicable to Analysis and
Design (Design Artifacts)● Dependency Principles● The Method
![Page 18: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/18.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
A Few Words on BAIT
![Page 19: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/19.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
How should an architect view “applications”?● The literal view of systems does not provide architectural insights
● The Application layer of BAIT is to be viewed functionally, not physically
![Page 20: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/20.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
The Layered view of Applications● The correct way to see the Application layer is as logical groupings of
business capabilities
● Physical systems (hardware and software) are Technology layer entities used to implement these capabilities
![Page 21: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/21.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Interdependencies between BAIT layers● The Application and Information layers always go hand in hand
![Page 22: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/22.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
BAIT as a “Four I” model of SOA
● Intent – what is to be done
● Internal Cohesion – how functions hang together
● Interfaces and Integration – how functions interoperate
● Implementation – what the tangible, working system looks like
![Page 23: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/23.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
BAIT and “Operation-Oriented Architecture”
● Operations are the fundamental building blocks of an enterprise
● Determine operations (the steps of business processes)
● Group related operations together (based on internals and interfaces)
● Expose operations to external consumers
● Execute operations, either alone or in combination with others
![Page 24: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/24.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
BAIT versus TOGAF
● BAIT is only a framework● It shows how to view an enterprise but doesn't
show what comprises each layer● We need a model that is based on BAIT to
define a generic set of entities at each layer● A good model to use is TOGAF● TOGAF is based on industry experience and
practice, and is comprehensive yet generic
![Page 25: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/25.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
TOGAF as a well-known set of dependencies● TOGAF's vocabulary includes “viewpoints”, which are subsets of the
entities that make up the model of an enterprise
● We can mine this rich set of data to search for dependency relationships
![Page 26: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/26.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Enterprise-Level Entities and Relationships
![Page 27: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/27.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Business Layer Entities and Relationships
![Page 28: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/28.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Business Layer Design Artifacts
● Not all Business Layer entities are important to an analyst or designer
![Page 29: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/29.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Application Layer Entities and Relationships
![Page 30: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/30.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
A Detailed Look at “Applications”
![Page 31: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/31.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Application Layer Design Artifacts
● Note the two types of “applications” formed by grouping Operations in two different ways
![Page 32: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/32.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Information Layer Entities and Relationships
![Page 33: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/33.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Information Layer Design Artifacts
![Page 34: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/34.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Technology Layer Entities and Relationships
![Page 35: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/35.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Technology Layer Design Artifacts
![Page 36: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/36.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Design Artifacts by BAIT Layer
![Page 37: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/37.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Dependency Principles by BAIT Layer
![Page 38: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/38.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
The Formal Dependency-Oriented Method● Starting at the Business layer, identify the Key Design Artifacts and
apply Dependency Principles to arrive at an optimal design
● Rinse and repeat at the next lower level
![Page 39: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/39.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Dependency-Oriented ThinkingSession 3 – The Business Layer
![Page 40: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/40.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Agenda
● Business Intent● The Chain from Vision to Process Step● Traceability and Minimalism● The role of Domain Insight● Dealing with changing requirements (intent
versus detail)
![Page 41: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/41.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Business Layer Design Artifacts
![Page 42: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/42.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Vision and Mission
● Vision – your idea of Utopia● Mission – your role in bringing about that Utopia● Together referred to as “Goal” in TOGAF
![Page 43: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/43.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
The hidden role of Strategy● Strategy shapes organisations
● The same Mission may be accomplished in different ways
![Page 44: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/44.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Business Functions are largely Stable
● Changes in Strategy tend to impact Business Processes, but curiously, need not impact Business Functions once established
● Changes in Business Function are known as “restructures”
![Page 45: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/45.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Function, Process and Process Step
● Function is both Structure and mini-Mission● Processes are what Functions “do”● Processes are composed of Steps (which may
or may not be reusable)
![Page 46: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/46.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
The Traceability Principle● Think of Traceability as a chain of “existential dependencies”
● It's a discipline that makes a business “lean and mean”
![Page 47: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/47.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
The Minimalism Principle● “The simplest way to get a job done”
● A discipline that leads to agility
![Page 48: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/48.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Domain Insight
● Helps in applying the Traceability and Minimalism principles
● More Art than Science● Think of examples from your own organisation
![Page 49: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/49.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Changing Requirements
● Intent versus Detail
![Page 50: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/50.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Dependency-Oriented ThinkingSession 4 – Process Design
![Page 51: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/51.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Agenda
● The generic business process● Human workflow and asynchronous process
steps● Orchestration and Choreography● "Orchestrable" and "Choreographable"
Operations
![Page 52: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/52.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
The Crucial Design Step between Process and Process Step
● How should Process Steps be coordinated into a Process?
● Design Exercise
![Page 53: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/53.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Top-Down Design of the Business Layer
![Page 54: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/54.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Orchestrated Processes● The dependency relationships in an orchestrated process mirror the
flow of control
![Page 55: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/55.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Choreographed Processes● The dependency relationships bear no resemblance to the flow of
control
![Page 56: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/56.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
A Simple Business Process
● An Event Trigger followed by one or more Process Steps
![Page 57: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/57.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
A Generic Business Process
● A generic process does not run to completion in one go
● It may pause, and resume based on intermediate event triggers
![Page 58: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/58.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
“Non-blocking” Processes and Callback
● It's often efficient for a paused process to do something else instead of idly waiting for an event trigger
● This model enables the design of long-running processes
![Page 59: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/59.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Human workflow as a long-running process● Non-blocking process design can be used to design human workflow
● Pause and Resume junctures occur wherever human interaction is required
![Page 60: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/60.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Dependencies in Orchestrable and Choreographable Operations
● Recall the different graphs for dependency versus flow of control
● The dependencies are similar, just in different places
![Page 61: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/61.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
The Overhyped Notion of “Reuse”
● Reuse is not a first-class benefit● It's unreasonable to expect reuse from a SOA
initiative if the process steps of a business are not inherently reusable
![Page 62: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/62.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
The potential for reuse is first seen at the Business layer
![Page 63: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/63.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Lower layers should confirm if reuse is in fact possible
![Page 64: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/64.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Dependency-Oriented ThinkingSession 5 – The Application Layer
![Page 65: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/65.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Agenda
● What is an "Application"?● The principles of High Cohesion and
Decoupling of Internals from Interfaces● "Goldilocks" Signatures (Stability versus
Precision of Interfaces)● Variants, Versions and dealing with change● Shared Semantics for effective Choreography
![Page 66: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/66.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Application Layer Design Artifacts● Process Steps at the Business layer map to Operations at the
Application layer
![Page 67: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/67.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Application Layer vs Technology Layer● The Technology layer provides a detailed “street view”
● The Application layer provides a high-level “map view”
![Page 68: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/68.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
The Relationship between Design Artifacts at the Application and Information Layers
● Products are defined by a shared Internal Data Model
● Services are defined by a shared Interface Data Model
![Page 69: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/69.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
The Cohesion and Coupling Principles● At each layer, there is an internal focus (Cohesion) and an external
focus (Coupling)
![Page 70: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/70.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Cohesion Exercise 1
![Page 71: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/71.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
![Page 72: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/72.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
![Page 73: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/73.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Cohesion Exercise 2
![Page 74: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/74.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
![Page 75: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/75.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
![Page 76: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/76.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
![Page 77: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/77.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Cohesion Exercise 3
![Page 78: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/78.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
![Page 79: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/79.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
![Page 80: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/80.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Simultaneous Groupings● It is possible to group entities in more than one way at the same time
![Page 81: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/81.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Simultaneous Grouping of Operations● A dynamic grouping of Operations is a Process
● A static grouping of Operations is an Application (Product or Service)
![Page 82: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/82.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Anatomy of a Product● Grouping by internals is the design principle
● External access is “canned” through a relatively rigid native interface
![Page 83: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/83.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Anatomy of a Service● Grouping by Interfaces is the design principle
● External access is the very raison d'être!
![Page 84: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/84.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
SOFEA – Architecture for Front-ends● For the best of both worlds, build user interfaces on top of services
![Page 85: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/85.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Demystifying Versioning
● Variants and Versions
● Interfaces and Internals
●
![Page 86: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/86.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Variants● A Variant is an operation “flavour” that may coexist with other flavours
without deprecating them
![Page 87: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/87.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Versions
● There is always a latest Version that deprecates earlier ones
![Page 88: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/88.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Interfaces as Abstractions of Operations● An Interface represents the Business Intent of an Operation
● Details are taken care of by implementation variants (“internals”)
![Page 89: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/89.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
The Impact of Changing Interfaces
● Consumers of operations have a dependency on the interface
● Changes to operations may impact consumers to different degrees
![Page 90: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/90.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Impacts classified by Version Type● Versions can be thought of as “x.y.z”
● The only criterion for classification is the level of impact from a change
● A term like “bug fix version” makes no sense from a dependency perspective
![Page 91: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/91.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Changes to Internals● A change to the internal logic of an operation with no visibility at the
interface changes only the implementation version, not the minor or major versions
![Page 92: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/92.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
“Minor” Changes to Interfaces● Some kinds of changes to operations are visible at the interface, but
do not impact consumers in a practical sense
● They only change the minor version number
● Minor version changes are “backward compatible” (continue to support older consumers while supporting new ones)
![Page 93: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/93.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Types of changes that do not break an interface
● Interfaces that become more lenient tend not to impact consumers
![Page 94: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/94.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Major Changes to Interfaces● A change to an operation that is not only visible at the interface but
also forces a change to the consumer is a change to the major version number
![Page 95: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/95.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Types of changes that break an interface● An interface that becomes stricter or more restrictive tends to impact
consumers
![Page 96: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/96.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Version Mapping Convention● Exploit the dependency level expressed by the “x.y.z” version numbering
scheme
● The minor version number should always refer to the latest implementation version
![Page 97: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/97.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Version Mapping Convention, cont'd● The major version number should always map to the latest minor
version
![Page 98: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/98.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Version Routing Exercise● Which implementation version will be executed by this call?
![Page 99: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/99.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Solution● Thumb rule – It's always the latest version at the lower level
![Page 100: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/100.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
![Page 101: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/101.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
![Page 102: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/102.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
The “Minor Version Lockstep Dependency”● When dealing with multiple variants, changes to the minor version
number of one variant will require corresponding changes to the minor version numbers of all the other variants!
![Page 103: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/103.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
The “Goldilocks Signature” Principle● A balance is required between the stability and the precision of an
operation's interface
![Page 104: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/104.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
What is a “Well-Designed” Interface?
● Well-designed interfaces are stable in the face of change
● i.e., they do not create unnecessary dependencies
![Page 105: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/105.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Why the scheme works
![Page 106: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/106.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Managing Breaking Changes
![Page 107: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/107.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Managing Breaking Changes, cont'd
![Page 108: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/108.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Managing Non-Breaking Changes
![Page 109: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/109.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Dependency-Oriented ThinkingSession 6 – The Information Layer
![Page 110: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/110.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Agenda
● "Data on the Outside versus Data on the Inside"
● Elements of Low Coupling● Type Hierarchy and Interface Abstraction● Identity Association● Context versus Content
![Page 111: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/111.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Information Layer Design Artifacts
● Only two major categories – “Data on the Outside” and “Data on the Inside”
● Deceptively simple!
![Page 112: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/112.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Variants from a Data Perspective● A single abstract interface can map to multiple concrete
implementation variants
● But the -------- ------ remains the same
![Page 113: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/113.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
The Notion of “Context”
● “Context” is a way of formalising aspects of an operation that are not core to its business intent
![Page 114: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/114.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Low Coupling, or “Need to Know”
● A form of minimalism applied to data
![Page 115: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/115.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Decoupling of Internal Data from Interface Data
● To be decoupled, interface and internal data models cannot have dependencies on each other
![Page 116: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/116.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
The Domain-Specific Data Dictionary
● Efficiencies are still possible!
● The internal and interface data models do talk about similar entities
![Page 117: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/117.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
What a Data Dictionary Looks Like
● Entities and Value Objects are defined here
![Page 118: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/118.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Types and Instances● Both internal and interface data models define instances of types
● Types common to both should be in the common data dictionary
![Page 119: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/119.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Data Model Example● Internal and interface data models have some elements in common
and some elements that are unique to each
![Page 120: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/120.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
The Relationship between Interface/Internals and Type Hierarchy
● This is why Application and Information layer design is done together!
![Page 121: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/121.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
A Problem We Glossed Over!
● Abstract interfaces are stable and shield consumers from many internal changes, but...
● How does a consumer know which concrete data elements to send and receive?
● The answer becomes clear if we jettison a fallacy of SOA – that a formal “interface contract” is sufficient for a consumer to begin transacting with an operation
● In practice, designers of consuming applications always discuss with the designers of operations and negotiate data exchange
● Use this knowledge to design pragmatic design processes
![Page 122: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/122.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Building an abstract interface to an existing implementation
![Page 123: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/123.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
When a new consumer is supported by an existing variant
![Page 124: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/124.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
When a new consumer is not supported by an existing variant
![Page 125: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/125.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
The Internal Data Model● Deals with Entities rather than Value objects
![Page 126: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/126.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
The Interface Data Model● Never references Entities! (That would be tight coupling)
● Value objects are packaged into messages that are exchanged
● Value objects can also be called “representations”
![Page 127: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/127.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
The Identity Association Principle
● A common design error
![Page 128: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/128.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
How Identity Association Works
● Consumers must not develop dependencies on internal data entities
![Page 129: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/129.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Revisiting the Goldilocks Signature Principle● Think about stability and precision afresh from the viewpoint of data
![Page 130: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/130.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Message Data Model
● The Goldilocks Signature principle is supported by this model
![Page 131: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/131.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
A Terrible Way to Implement Extensible Interfaces
● Extensions gradually destroy structure and meaning
![Page 132: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/132.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Extensibility with Control● Setting up a Type Hierarchy supports change gracefully
![Page 133: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/133.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Isolation of Context from Content● Keep extraneous considerations separate from the core business
intent
![Page 134: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/134.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
The Context Type Hierarchy● Context has its own hierarchy with a single, optional base type called
“Context Type”
![Page 135: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/135.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Supporting New Variants that Differ only in Context
● Building in an optional context element into every interface is insurance against breaking change
![Page 136: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/136.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Context of Output Data● Context of input data is used to determine appropriate variants to
invoke
● Context of output data can support choreographable operations
![Page 137: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/137.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Service Content and Process Context● When considering a single operation, some data elements may be
considered content rather than context (i.e., they follow from the business intent)
![Page 138: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/138.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Modelling Service Content as Context
● Sometimes, a process may have operations with common content
● This content could be considered to be their common context
![Page 139: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/139.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Context By Reference● Operations sharing “content context” with other operations can then deal
with references to common data
● These reference IDs are a form of context that is common to the process
![Page 140: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/140.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Context By Reference, cont'd
● Subsequent operations refer to common content through the context ID
![Page 141: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/141.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Example – Bringing Application and Data Layer Principles Together
![Page 142: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/142.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
The Type Hierarchy supporting Late Binding
![Page 143: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/143.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
“Schema Validation”
![Page 144: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/144.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Routing/Binding from Interface to Implementation
![Page 145: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/145.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Dependency-Oriented ThinkingSession 7 – The Technology Layer
![Page 146: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/146.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Agenda
● Standards, Bundling and Tooling● Standards and Standards Families - SOAP and
REST● Bundling - Data, Logic, Physical Components
and their association● Tooling - the core and supporting components
of a distributed solution● Implementing a logical design
![Page 147: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/147.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Technology Layer – The Design of Implementation
● Not implementation itself, but the design of implementation
![Page 148: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/148.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Technology Layer Design Artifacts● At the most abstract level, Technology consists of three elements
● They are Standards, Tooling and Bundling
![Page 149: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/149.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Bundling Decisions
● “Where to place what” is a bundling decision
![Page 150: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/150.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Logic Bundling Principle● This is a variant of the Cohesion principle – what belongs together
must go together
![Page 151: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/151.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
The State or “Stickiness” Principle● Placing logic on one physical component as opposed to another could
be the difference between a stateless and a stateful system
● Stateless systems have significant architectural advantages on account of their reduced bundling dependencies (scalability, failure recovery)
![Page 152: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/152.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Topology “Hotspots”● The way physical components are connected or “wired” together can
create bundling dependencies of another kind
● Performance bottlenecks and single points of failure are common results of topology-related bundling decisions
![Page 153: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/153.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Reference Architecture of a Deployable Application
![Page 154: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/154.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Determining Standards for Orchestrable Operations
![Page 155: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/155.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Determining Standards for Choreographable Operations
![Page 156: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/156.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Determining Tooling Components
![Page 157: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/157.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Determining Deployment Bundles
![Page 158: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/158.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Determining Description Bundles
![Page 159: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/159.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
The Service Provider
![Page 160: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/160.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
The Service Consumer
![Page 161: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/161.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Legacy Systems
![Page 162: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/162.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Functional Symbols for Tooling● From Gregor Hohpe's “Enterprise Integration Patterns”
![Page 163: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/163.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Additional Symbol for Tooling● Internal logic has no symbol in “Enterprise Integration Patterns”
● We have to “roll our own”!
![Page 164: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/164.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
The Core Technology Layer Components
● Service Container
● Broker
● Process Coordinator
![Page 165: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/165.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Service Container● Implements Business Logic and exposes it
![Page 166: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/166.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
How a Service Container is Used
● The logic implemented by the Service Container and exposed as an operation is consumed by a service consumer
![Page 167: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/167.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Broker
● Mediates access to existing logic
![Page 168: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/168.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
How a Broker is Used● The special protocols and interfaces of legacy systems are hidden
through “adapters”
● Data formats are converted through “transformer” logic
● Physical locations are hidden and variants are abstracted through “mediator” logic
![Page 169: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/169.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Process Coordinator
● Combines existing operations into business processes
● More relevant for orchestrable operations
![Page 170: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/170.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
How a Process Coordinator is Used● The Process Coordinator runs stateful process logic (orchestration)
● It invokes operations as required
● The operations themselves are stateless
![Page 171: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/171.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
The Components Working Together
● The three core technology components are designed to work together
![Page 172: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/172.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Broker Design Error 1● Topology Hotspot – the Broker is not meant to be a centralised
component
![Page 173: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/173.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Broker Design Error 2
● Always use the right tool for the job
● The Broker is a mediator
● Do not use the Broker as a Service Container
● Do not use the Broker as a Process Coordinator
![Page 174: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/174.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Dependencies introduced by SOAP● Static Description dependency
● Bundling dependency
● Synchronisation dependency
![Page 175: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/175.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Dependencies introduced by REST● Semantic dependency
● Synchronisation dependency
![Page 176: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/176.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
What is a “Semantic Dependency”?● The requirement for a system to resolve ambiguity
![Page 177: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/177.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
The Problem with WSDL
● WSDL is a static description of a group of operations
● Three dependencies arise from this design
![Page 178: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/178.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
The WSDL Dependency Multiplied● A popular service can have many consumers that are then dependent
on its interface contract
![Page 179: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/179.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Cascading Impacts of Change● WSDL is a dependency hotspot
![Page 180: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/180.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Calculating the Brittleness of WSDL● A WSDL file describes exactly 1 service consisting of 5 operations, each
with an input and an output document
● If any given document has a 10% probability of changing, what is the probability of the WSDL file changing?
![Page 181: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/181.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Strategies to minimise change● Dependency principles can be applied to minimise the effects of
change due to the WSDL dependency hotspot
![Page 182: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/182.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Dependencies arising from REST's Hypermedia Constraints
● There is no static description of operations in REST (WADL is not RESTian)
● There are still 3 dependencies
![Page 183: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/183.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Miscellaneous Technology Layer Considerations
![Page 184: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/184.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
The “Canonical Data Model” Fallacy● A Canonical Data Model could be too heavyweight and rigid
![Page 185: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/185.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Domain Data Models● Domain Data Models are more flexible and federation-friendly
![Page 186: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/186.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
“The SOA Ecosystem”● The logical view of service providers and consumers
![Page 187: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/187.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Processes as Service Consumers● Processes are a special type of service consumer
![Page 188: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/188.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Processes as Operations
● A process abstracts coarse-grained logic
● This coarse-grained logic may in turn be invoked by a service consumer
![Page 189: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/189.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Processes in the SOA Ecosystem
● A process is both a service provider and a service consumer
![Page 190: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/190.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Operation Signatures implemented in SOAP and REST
![Page 191: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/191.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Dependency-Oriented ThinkingSession 8 – Worked-Out Examples
![Page 192: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/192.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Agenda
● Option 1: Detailed analysis of participants' own design problems
● Option 2: Canned case studies:● Conducting a post-mortem based on dependency
principles● Designing a system based on an orchestrated business
process● Designing a system based on a choreographed
business process● Designing an interface data model to cater to change
(Type Hierarchy and Goldilocks Signatures)
![Page 193: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/193.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Post-Mortem Example
![Page 194: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/194.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Exercise – Post-Mortem
● What is wrong with this design?
![Page 195: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/195.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
A More Flexible Design
![Page 196: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/196.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Synchronous Orchestrated Process
![Page 197: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/197.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Banking Application Sequence Diagram
![Page 198: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/198.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Processes, Services and Operations
● Dynamic grouping of operations into a single process “Open Account”
● Static grouping of operations into 3 services
![Page 199: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/199.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
High-Level Solution Diagram – Banking
![Page 200: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/200.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Asynchronous Orchestrated Process
![Page 201: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/201.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Insurance Application Sequence Diagram
![Page 202: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/202.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Processes, Services and Operations● Two dynamic groupings (processes): Get Quote and Purchase Policy
● 6 static groupings (services)
![Page 203: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/203.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
High-Level Solution Diagram – Insurance
![Page 204: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/204.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Choreographed Process
![Page 205: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/205.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
A Maze Game
![Page 206: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/206.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Allowed Movements
![Page 207: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/207.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Cell Identifiers – Identity Association● A cell's location must not be derivable from its name or vice-versa
![Page 208: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/208.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
The Design – Hypermedia Constraints
![Page 209: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/209.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Interaction at the start of the game
![Page 210: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/210.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Interaction in the middle of the game
![Page 211: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/211.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Interaction at the end of the game
![Page 212: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/212.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Managing Change
![Page 213: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/213.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
The 70s● Banking in a simpler (and more rigid) time
![Page 214: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/214.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Service Interfaces to Support Arbitrary Clients
![Page 215: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/215.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Variants of Similar Operations
![Page 216: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/216.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Standardised Variants, Abstract Interfaces
![Page 217: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/217.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Processes as Standardised Operation Variants
![Page 218: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/218.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Supporting a New Variant
![Page 219: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/219.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
Deployment of Components
![Page 220: Workshop Slides - Introduction to Dependency-Oriented Thinking" Feb 15, 2014, Sydney](https://reader031.fdocuments.in/reader031/viewer/2022020306/554b9958b4c905764c8b491b/html5/thumbnails/220.jpg)
(C) Ganesh Prasad, Eigner Pty Ltd
A More Likely Scenario!