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 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 Patterns Literature Gang of Four Design Patterns Integration Patterns Data Patterns Enterprise Application Patterns
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.
11 Hierarchy of Patterns Architecture Design Implementation
12 Patterns in Layers Portal Integration Process Integration Entity Aggregation
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 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 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 Capabilities Mapping High-level example - Banking Business Value
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
20 More refinement… Introduce a message broker to reduce inter-connections Use publish/subscribe to abstract interconnections
21 More refinement… Merge the two use-cases Introduce process integration. Why? Introduce asynchronous messaging
22 Baseline Implementation from Patterns Assume MS technology stack Implement using BizTalk Server and ASP.NET
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 Business Process Login Get existing financial position Get customer profile and account balance Get list scheduled payments Combine information and display
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 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 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