SESSION CODE ARC 302 Architecting Your Enterprise with

  • Slides: 31
Download presentation

SESSION CODE: ARC 302 Architecting Your Enterprise with Patterns Ulrich Roxburgh Services 2 Ltd.

SESSION CODE: ARC 302 Architecting Your Enterprise with Patterns Ulrich Roxburgh Services 2 Ltd.

Agenda Design Patterns What are Patterns? How do we use them Design using Patterns

Agenda Design Patterns What are Patterns? How do we use them Design using Patterns Creating the initial design Refinement Design Heuristics 3

Patterns in Nature 4

Patterns in Nature 4

Patterns in Sport Football 5

Patterns in Sport Football 5

Patterns in Business Convergence “In the Convergence pattern, competitors from previously distinct industries start

Patterns in Business Convergence “In the Convergence pattern, competitors from previously distinct industries start competing to satisfy the requirements of a specific customer set. There are three distinct flavors of this pattern: product, in which product boundaries blur; supplier, in which suppliers become ‘one stop shops’; and complementor, in which companies combine to deliver greater value” - Profit Patterns, Adrian J. Slywotsky 6

What is a Pattern? “Mind sized” chunk of information about decisions Shows a good

What is a Pattern? “Mind sized” chunk of information about decisions Shows a good solution to a common problem within a specific context Patterns describe relationships Re-useable design element Common vocabulary for talking about a solution Not an implementation Mitigate technical risk 7

Patterns Literature ‘Gang of Four’ Design Patterns Integration Patterns Data Patterns Enterprise Application Patterns

Patterns Literature ‘Gang of Four’ Design Patterns Integration Patterns Data Patterns Enterprise Application Patterns 8

Structure of a Pattern Name and Classification Intent: Goal behind the pattern Motivation (Forces):

Structure of a Pattern Name and Classification Intent: Goal behind the pattern Motivation (Forces): Problem and context in which this pattern can be used. Also Applicability. Structure: A graphical representation of the pattern. Participants: Classes and objects and their Collaboration: How classes and objects interact Consequences: A description of the results, side effects, and trade offs caused by using the pattern. 9

Enterprise Architecture - Patterns Enterprise Integration Patterns Database Application Deployment Infrastructure Architecture Business Architecture

Enterprise Architecture - Patterns Enterprise Integration Patterns Database Application Deployment Infrastructure Architecture Business Architecture Design Integration Architecture Implementation üIntegration Architecture üApplication Architecture Enterprise Solution Patterns Database Application Operational Architecture Development Architecture Design Implementation 10 Deployment Infrastructure

Hierarchy of Patterns Architecture Design Implementation 11

Hierarchy of Patterns Architecture Design Implementation 11

Patterns in Layers Portal Integration Process Integration Entity Aggregation 12

Patterns in Layers Portal Integration Process Integration Entity Aggregation 12

Designing with Patterns Industry has used pattern-based design for decades. Design elements (patterns) are

Designing with Patterns Industry has used pattern-based design for decades. Design elements (patterns) are used to engineer Automobiles and aircraft Machine tools Applying pattern-based design to software promises predictability risk mitigation increased productivity. 13

Designing with Patterns Experience is still key! Known good mechanisms can be used to

Designing with Patterns Experience is still key! Known good mechanisms can be used to build Planes that do not fly Applications that do not scale. Applying patterns involves an iterative design process. As a guiding principle, you want to keep your design as "simple as possible and no simpler" Albert Einstein Do not use patterns just for the sake of using them. 14

What are Capabilities An abstract view of a business function – the WHAT Capabilities

What are Capabilities An abstract view of a business function – the WHAT Capabilities are hierarchical Capabilities are measurable and have properties Current performance Technology 15 Business value Processes Owners Maturity

Capabilities Mapping High-level example - Banking Business Value 16

Capabilities Mapping High-level example - Banking Business Value 16

Designing a Capability 1 - View/Change Address Details A. k. a “One Touch” or

Designing a Capability 1 - View/Change Address Details A. k. a “One Touch” or “One Customer View” Complexities Capability is the aggregation of multiple simple business services Some services are inherently asynchronous May require business rules to be executed May require transactional logic or compensation Has complex integration requirements 17

High Level Architecture Patterns View Address Details (Portal Integration) Database 18 Main frame Update

High Level Architecture Patterns View Address Details (Portal Integration) Database 18 Main frame Update Address Details (Process Integration) CRM Database Main frame CRM

Refine to Design Patterns 19

Refine to Design Patterns 19

More refinement… Introduce a message broker to reduce inter-connections Use publish/subscribe to abstract interconnections

More refinement… Introduce a message broker to reduce inter-connections Use publish/subscribe to abstract interconnections 20

More refinement… Merge the two use-cases Introduce process integration. Why? Introduce asynchronous messaging 21

More refinement… Merge the two use-cases Introduce process integration. Why? Introduce asynchronous messaging 21

Baseline Implementation from Patterns Assume MS technology stack Implement using Biz. Talk Server and

Baseline Implementation from Patterns Assume MS technology stack Implement using Biz. Talk Server and ASP. NET 22

Designing a Capability 2 - Self Service (View Financial Position) Complexities Capability is the

Designing a Capability 2 - Self Service (View Financial Position) Complexities Capability is the aggregation of multiple simple business services Some services are external to our enterprise Some services are inherently asynchronous May require business rules to be executed May require transactional logic or compensation Has complex integration requirements 23

Business Process Login Get existing financial position Get customer profile and account balance Get

Business Process Login Get existing financial position Get customer profile and account balance Get list scheduled payments Combine information and display 24

Baseline Architecture from Patterns 25

Baseline Architecture from Patterns 25

Baseline Implementation from Patterns Biz. Talk ASP. NET and WCF 26

Baseline Implementation from Patterns Biz. Talk ASP. NET and WCF 26

Baseline Deployment from Patterns 27

Baseline Deployment from Patterns 27

Patterns in other places… Composite User Interface patterns: Composite and Composite View Command Adapter

Patterns in other places… Composite User Interface patterns: Composite and Composite View Command Adapter Modularity patterns: Service Locator Event Aggregator Façade Testability patterns: Inversion of Control Separated Presentation 28

Interface Design Heuristics 29 Easy to Consume Interfaces that are as simple as possible

Interface Design Heuristics 29 Easy to Consume Interfaces that are as simple as possible Document centric rather than method centric Conforms to WS-I base profile Right Granularity Able to accomplish a business unit of work in a single call Reusable across many different contexts Models business processes rather than lower level functionality Easy To Version Easily extended with the addition of new parameters Don’t break clients when a new interface is defined Loosely Coupled Insulate the consumer from changes in the implementation Don’t require anything other than the schema and contract Don’t leak internal abstractions outside the service boundary

Design Heuristics 30 Interception services Build interception services that are shared by all services

Design Heuristics 30 Interception services Build interception services that are shared by all services Pipelines are a common implementation mechanism Pipelines process both content and the context Composite Services Compose multiple distinct services into a new business process, Services are composed in a similar manner to objects Process Manager Provide an extra layer of abstraction by separating process from implementation Deal with Failure Provide robust exception handling for business processes Hand off to humans for complex exception handling Provide a mechanism to re-submit requests

© 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows Vista and other product names

© 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U. S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.