Migrating to a Service Oriented Architecture with Microsoft

  • Slides: 34
Download presentation
Migrating to a Service Oriented Architecture with Microsoft Technology Ulrich Roxburgh (ulrich@services 2. co.

Migrating to a Service Oriented Architecture with Microsoft Technology Ulrich Roxburgh (ulrich@services 2. co. nz) Solution Architect Services 2 Ltd 1

Overview This presentation examines how an enterprise can migrate its existing systems toward a

Overview This presentation examines how an enterprise can migrate its existing systems toward a service oriented architecture, in order to develop more agile business systems that better meet the constantly changing needs of the business. It focuses on exposing business systems as reusable services, aggregation of services to build new systems, management and monitoring of these business systems, and presents some bestpractices for service design and business process management. 2

SOA Today’s Architectures Human Users 3 Business Applications Data Storage

SOA Today’s Architectures Human Users 3 Business Applications Data Storage

Service Oriented Architecture A Simplistic View ERP . Net Application XML SOAP Packaged Application

Service Oriented Architecture A Simplistic View ERP . Net Application XML SOAP Packaged Application WSDL UDDI UNIX J 2 EE Oracle Mainframe CICS 4 CRM AS 400 Application

Service Oriented Architecture A More Realistic View ERP . Net Application Packaged Application Business

Service Oriented Architecture A More Realistic View ERP . Net Application Packaged Application Business Partner EDI UNIX J 2 EE Business Process Management Enterprise Application Integration Oracle Mainframe CICS 5 CRM AS 400 Application

2002: Enter the ESB “A Web-services-capable infrastructure that supports intelligently directed communication and mediated

2002: Enter the ESB “A Web-services-capable infrastructure that supports intelligently directed communication and mediated relationships among loosely coupled and decoupled biz components. ” –Gartner Group “The ESB label simply implies that a product is some type of integration middleware product that supports Web services protocols. ” –Burton Group “A standards-based integration backbone, combining messaging, Web services, transformation, and intelligent routing. ” –Sonic Software “An enterprise platform that implements standardized interfaces for communication, connectivity, transformation, and security. ” –Fiorano Software “To put it bluntly: If you have Web. Sphere MQ and other Web. Sphere brokers and integration servers, you have an ESB. ” –Bob Sutor, IBM 6

A Combined ESB definition Focused on integrating assets of a single enterprise Provides value

A Combined ESB definition Focused on integrating assets of a single enterprise Provides value added standards based services such as routing & transformation Logical topology that supports pluggable messaging end points 7

Survive and Thrive… Crawling Wrap existing business processes Factor out common functionality Walking Develop

Survive and Thrive… Crawling Wrap existing business processes Factor out common functionality Walking Develop new business processes by composing existing services Support long running business processes Running Real-time access to KPIs Define & own business policies 8

Crawling… Start the migration by wrapping existing business processes, and exposing them as services

Crawling… Start the migration by wrapping existing business processes, and exposing them as services Can be incrementally overlaid on existing systems Unifies heterogeneous networks Factor out common functionality 9

Service Facades Simulate request/response or one-way interaction over the non-service access model Transform incoming

Service Facades Simulate request/response or one-way interaction over the non-service access model Transform incoming data (canonical schemas) to a representation that non-service components can understand Use adapters Message-based SAP RFC/IDOC Queues based (MQSeries to access mainframe) API-based SAP’s DCOM Component Connector JDE’s One. World API Microsoft WCF Adapter API 10 File-based/FTP

Create Canonical Schemas Model the entities Create a static, canonical schema Agree on XML

Create Canonical Schemas Model the entities Create a static, canonical schema Agree on XML namespaces Only expose XSD data types Standardize on Doc/Literal Make use of industry standards (eg HL 7) Canonical schema Represents the authoritative, common definition Other representations can be derived from this It is not one large XML-Schema – really a bucket of schemas that collectively form the canonical schema 11

Interface Design Best Practices 12 Easy to Consume Interfaces that are easy to consume

Interface Design Best Practices 12 Easy to Consume Interfaces that are easy to consume 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 Don’t require “out of band” services like 2 PC to function

XSD Schema Editors Visual Studio 2005 Biz. Talk XML Schema Editor XMLSpy 13

XSD Schema Editors Visual Studio 2005 Biz. Talk XML Schema Editor XMLSpy 13

Cross-Cutting Concerns Authentication Authorization Message Transformation Message Validation Transactions Business Events and Auditing Logging

Cross-Cutting Concerns Authentication Authorization Message Transformation Message Validation Transactions Business Events and Auditing Logging Instrumentation 14

Use Web services to thin down code Security Reliable Messaging Coordination 15 Very Thin

Use Web services to thin down code Security Reliable Messaging Coordination 15 Very Thin Business Logic

Aspect-weaving with Pipelines Address cross-cutting concerns with interception services Sign May be pipelined for

Aspect-weaving with Pipelines Address cross-cutting concerns with interception services Sign May be pipelined for efficiency and Encrypt manageability Interception chain dependent on context and content, e. g. , Service Message Processing Infrastructure Authorize Message Processing Infrastructure Regulatory compliance Deserialize Transaction value 16 Log Service Serialize Reliable messaging Audit Authenticate

WSE 3. 0 Updated WS-Security based on the OASIS standard. WS-Secure. Conversation to define

WSE 3. 0 Updated WS-Security based on the OASIS standard. WS-Secure. Conversation to define mechanisms for establishing and sharing security contexts, and deriving session keys from security contexts MTOM, enables documents, media files, and other binary data to be readily composed with other Web services specifications like WSSecurity WS-Addressing defines a transport-neutral mechanism to address Web services and messages so that messages can be routed WS-Policy provides the framework for expressing a service’s communication requirements including the security requirements, reliable messaging assurances, and protocol versions WS-Security. Policy specifies the assertions for expressing requirements related to WS-Security including integrity, confidentiality, and required tokens 17

Contract First Development Develop the Schemas Create the. NET classes (xsd. exe) Model the

Contract First Development Develop the Schemas Create the. NET classes (xsd. exe) Model the application using App Designer Design the Web Service Interface Configure Profile and Security Settings (or use WSCF) 18

WCF Microsoft’s distributed systems technology Extends the. NET Framework 2. 0 Build WCF services

WCF Microsoft’s distributed systems technology Extends the. NET Framework 2. 0 Build WCF services in Visual Studio 2008 using Visual Basic. NET, C#, … Provides a unified programming model for WS-*, Messaging, Queuing, Transactions, etc. 19

WCF Runtime Architecture Service Layer Client Method Service Method objects Proxy Message Dispatcher Messaging

WCF Runtime Architecture Service Layer Client Method Service Method objects Proxy Message Dispatcher Messaging Layer transport Channel Stack 20 Message protocol encoder Method raw message bytes 0101101 protocol encoder transport Channel Stack

WCF Bindings Binding Class Name Transport Message Security Encoding Version Mode RM Tx Flow*

WCF Bindings Binding Class Name Transport Message Security Encoding Version Mode RM Tx Flow* Basic. Http. Binding HTTP Text SOAP 1. 1 None X X WSHttp. Binding HTTP Text SOAP 1. 2 Message WS-A 1. 0 Disabled WS-AT Net. Tcp. Binding TCP Binary SOAP 1. 2 Transport Disabled Ole. Tx Net. Named. Pipes. Binding Net. Msmq. Binding Named Pipes MSMQ Binary SOAP 1. 2 Transport X Ole. Tx Binary SOAP 1. 2 Message X X Custom. Binding You decide You decide Notes: X = Not Supported, WS-A = WS-Addressing, WS-AT = WS-Atomic. Transactions, Ole. Tx = Ole. Transactions * Transaction flow is always disabled by default, but when you enable it, these are the default protocols 21

Contract First comes naturally to WCF! Specify the data flowing between services and clients

Contract First comes naturally to WCF! Specify the data flowing between services and clients (Data. Contract) Specify the service contract (Service. Contract) Specify the service implementation (Service. Behavior) 22

WS Software Factory Uses Domain Specific Languages (DSL) to model services: Service Contract Model

WS Software Factory Uses Domain Specific Languages (DSL) to model services: Service Contract Model Data Contract Model Host Model VS tooling and automation Web Service Guidance 23 Architecture Message Design and Versioning Exception Handling

WS Software Factory 24

WS Software Factory 24

Walking Rapidly develop new business processes, by composing existing services Add support for long

Walking Rapidly develop new business processes, by composing existing services Add support for long running business processes 25

What Is BPM? Rules Definition Runtime Rule Engine Process Definition Runtime BPM Engine Logical

What Is BPM? Rules Definition Runtime Rule Engine Process Definition Runtime BPM Engine Logical Modeling Analysis 26 Physical Modeling Monitoring Optimization

Long Running Business Processes “Sequences of peer-to-peer message exchanges, both synchronous and asynchronous, within

Long Running Business Processes “Sequences of peer-to-peer message exchanges, both synchronous and asynchronous, within stateful long-running interactions, involving 2 or more parties” Process Controller needs to be able to… Correlate messages with the process instance they were intended for Maintain state for the process instance, possibly for long periods of time Support transactions (ACID and “long-running”) Compensation and Exception Handling 27

Best Practices Interception services Composite Services 28 Build interception services that are shared by

Best Practices Interception services Composite Services 28 Build interception services that are shared by all services Pipelines are a common implementation mechanism Pipelines process both content and the context 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

Microsoft Biz. Talk Server Modifiable Business Rules Effective Process Implementation Mainframe Highly Scalable Event

Microsoft Biz. Talk Server Modifiable Business Rules Effective Process Implementation Mainframe Highly Scalable Event Driven Architecture Heterogeneous Connectivity Service Business Activity Monitoring Human Workflow Line of Business 29

Microsoft ESB Guidance Extends the functionality of Biz. Talk Server Provides a range of

Microsoft ESB Guidance Extends the functionality of Biz. Talk Server Provides a range of new capabilities focused on 30 Robust service-oriented applications Itinerary-based service invocation for lightweight services Dynamic resolution of endpoints Web service and WS-* integration Fault management and reporting Integration with third-party SOA governance solutions.

Running Empower the business… Real-time access to business performance indicators to improve speed and

Running Empower the business… Real-time access to business performance indicators to improve speed and effectiveness of business processes Define & own business policies without coding, and change business policies in real time 31

Business Activity Monitoring Business Analyst Business End User Defines business data to collect and

Business Activity Monitoring Business Analyst Business End User Defines business data to collect and how to interpret View Business activities and perform everyday business operations Ask real-time questions How long is production taking right now? Developer 32 Instruments the implementation to capture the required data Ask aggregation questions How much money did we make last month? Use data from documents or process Complements existing BI solutions

Business Rules/Policy Use business process rules for simple cases or complete inference engine for

Business Rules/Policy Use business process rules for simple cases or complete inference engine for more complex scenarios Rules change more often than processes Business Rules provide increased flexibility Rules are abstracted from process and user code Complements orchestration of services Rules allow users to 33 Define & own business policies without coding Change business policies in real time without rebuilding/redeploying applications

© 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only.

© 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY. 34