Presentation is loading. Please wait.

Presentation is loading. Please wait.

Ulrich Roxburgh Services2 Ltd. Architecting Your Enterprise with Patterns SESSION CODE: ARC302.

Similar presentations


Presentation on theme: "Ulrich Roxburgh Services2 Ltd. Architecting Your Enterprise with Patterns SESSION CODE: ARC302."— Presentation transcript:

1

2 Ulrich Roxburgh Services2 Ltd. Architecting Your Enterprise with Patterns SESSION CODE: ARC302

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

4 4 Patterns in Nature

5 5 Patterns in Sport Football

6 6 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

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

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

9 9 Structure of a Pattern 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.

10 10 Enterprise Architecture - Patterns Business Architecture Integration Architecture Application Architecture Application Architecture Operational Architecture Development Architecture Integration Architecture Integration Architecture Architecture Design Implementation DatabaseApplication DeploymentInfrastructure Enterprise Solution Patterns Architecture Design Implementation DatabaseApplication DeploymentInfrastructure Enterprise Integration Patterns

11 11 Hierarchy of Patterns Architecture Design Implementation

12 12 Patterns in Layers Portal Integration Process Integration Entity Aggregation

13 13 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.

14 14 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.

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

16 16 Capabilities Mapping High-level example - Banking Business Value

17 17 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

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

19 19 Refine to Design Patterns

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

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

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

23 23 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

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

25 25 Baseline Architecture from Patterns

26 26 Baseline Implementation from Patterns BizTalk ASP.NET and WCF

27 27 Baseline Deployment from Patterns

28 28 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

29 29 Interface Design Heuristics Easy to Consume Interfaces that are as simple as possible Document centric rather than method centric Conforms to WS-I base profile RightGranularity 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 Dont break clients when a new interface is defined LooselyCoupled Insulate the consumer from changes in the implementation Dont require anything other than the schema and contract Dont leak internal abstractions outside the service boundary

30 30 Design HeuristicsInterceptionservices Build interception services that are shared by all services Pipelines are a common implementation mechanism Pipelines process both content and the context CompositeServices Compose multiple distinct services into a new business process, Services are composed in a similar manner to objects ProcessManager 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

31 © 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, 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.


Download ppt "Ulrich Roxburgh Services2 Ltd. Architecting Your Enterprise with Patterns SESSION CODE: ARC302."

Similar presentations


Ads by Google