Presentation is loading. Please wait.

Presentation is loading. Please wait.

Service Oriented Architecture (SOA) Richard Godfrey CEng MBCS CITP Architect Developer & Platform Group

Similar presentations


Presentation on theme: "Service Oriented Architecture (SOA) Richard Godfrey CEng MBCS CITP Architect Developer & Platform Group"— Presentation transcript:

1 Service Oriented Architecture (SOA) Richard Godfrey CEng MBCS CITP Architect Developer & Platform Group Microsoftrgodfrey@microsoft.com

2 2 Agenda Microsoft & SOA SOA technology & frameworks (.Net) Implementation

3 3 Aligning Business and IT IT Business Business Architecture Operational Requirements Functional Requirements Information Requirements Technology Architecture Application Portfolio Information Architecture Top Down Bottom Up

4 4 Moving to SOA: The Top-Down Approach How it works: Define a business architecture Using, for example, Microsoft’s Motion methodology Discover what services are required Create service-oriented apps based on this Pros: It’s elegant, clean, and sensible Cons: It’s very difficult in most organizations Getting the up-front funding and business buy-in is tough Keeping up with business change is also tough

5 5 Moving to SOA: The Bottom-Up Approach How it works: Build a service-oriented app Then build another one Next, work on central SOA issues, e.g., security and management Then build another service-oriented app... Pros: It’s the only approach that has worked in most organizations Cons: It’s an inelegant, piecemeal way to address the problem

6 6 SOA in One Slide – The “Message” Schema Agreements Programming Language Object Model Application Server Database Operating System Database Operating System Programming Language Object Model Application Server You Your Partner Example of a tightly coupled solution Service Oriented Architecture

7 Shared Memory Procedural Parameters, returning values Components Some self definition eg Type Libraries Roles and events Objects Visibility Reuse Instances Statics Web Services Self describing WSDL, Request Response Local, w/in firewall, Machine to machine M to M IPC Global Ubiquitous WSA Decoupled & Self Describing Tightly coupled Application Scope Development Evolution and.NET

8 8 Shift To A Service-Oriented Architecture Function oriented Build to last Prolonged development cycles FromTo Process oriented Build to change Incrementally built and deployed Application silos Tightly coupled Object oriented Known implementation Orchestrated solutions Loosely coupled Message oriented Abstraction

9 9 Services Message Exchange Pattern describe Operational Requirements enforce Systems composed of Messages exchange is a set of Contracts bound by contain Schemas define structure of governed by Policies have Service Orientation Key Concepts

10 10 Policy The Anatomy of a “Service” Service State SOAPMessage Logic

11 11 Services and consumers are independently versioned, deployed, operated, and secured. Services are autonomous Data never includes behavior; Objects with data and behavior are a local phenomenon. Share schema & contract, not class Capabilities and requirements represented by a unique public name; Used to establish service suitability. Compatibility based on policy Developers opt-in to consuming, exposing, and defining public-facing service façade. Boundaries are Explicit The Four Tenets of Service-Orientation

12 12 Web Services Architecture “Secure, Reliable, Transacted services” SOAP (Logical Messaging) Transports Messaging WSDL, UDDI, Inspection Quality of Service Transactions Business Processes BPEL4WS Transport XML, Encoding Other protocols Other services Coordination Security Reliable Messaging Description

13 13 SOA Design Issues Schema definition Message definition Contract definition Message handling Process management Transaction model Operational compliance Exception handling Message to Object mapping Refinement of Analysis … Contracts Service Process Document A Document C-1 Document C-2 Document B Either C-1 or C-2 Process

14 14 Service Operations Issues Security Access control MonitoringManagement QoS and SLA enforcement VersioningScalability Dealing with unreliability Exception routing Caching Service Message Processing Infrastructure Serialize Encrypt Sign Deserialize Authenticate Authorize Audit Log Reliable messaging

15 15 BizTalk Server 2004 Windows Business Rules Engine Human Workflow Services More Business Activity Monitoring (BAM) Orchestrations.NET Framework BizTalk Server 2004 Engine Visual Studio.NET Orchestration Designer Health and Activity Tracking (HAT)

16 Unifies today’s distributed technology stacks Composable functionality Appropriate for use on-machine, cross machine, and cross Internet “The unified programming model for rapidly building service-oriented applications on the Windows platform” WS-* interoperability with applications running on other platforms Interoperability with today’s distributed stacks Service-oriented programming model Supports 4 tenets of service-orientation Maximized developer productivity “Indigo” Design Goals Unification Interoperability & Integration ProductiveService-OrientedProgramming

17 17 class HelloService { [WebMethod] [WebMethod] public String Hello(String Greeting) { public String Hello(String Greeting) { X509CertificateCollection collection = new X509CertificateCollection(); IntPtr blob = Marshal.AllocHGlobal(Marshal.SizeOf( typeof(CRYPTOAPI_BLOB))); IntPtr data = (IntPtr)((int)blob + Marshal.SizeOf(typeof(CRYPTOAPI_BLOB))); Marshal.SizeOf(typeof(CRYPTOAPI_BLOB)));… SeqAckRange range = new SeqAcknRange(id, low, high ); SeqAckRange[] ranges = { range }; ReliableQueue.ProcessAcks( ranges ); … hr = pITxDispenser->BeginTransaction (NULL, ISOLATIONLEVEL_SERIALIZABLE, 0, pITxOptions, ISOLATIONLEVEL_SERIALIZABLE, 0, pITxOptions, &pITransaction); &pITransaction);… return Greeting; return Greeting; }} 20,379 lines security 5,988 lines reliable messaging reliable messaging 25,507 lines transactions Total lines 56,296 4,442 lines infrastructure Productive Development Secure, Reliable, Transacted Application Development …Using Visual Studio.NET 2003

18 18 class HelloService { [WebMethod] [WebMethod] public String Hello(String Greeting) { public String Hello(String Greeting) { foreach ( SecurityToken tok in foreach ( SecurityToken tok in requestContext.Security.Tokens requestContext.Security.Tokens { X509SecurityToken token = tok as X509SecurityToken { X509SecurityToken token = tok as X509SecurityToken } … SeqAckRange range = new SeqAcknRange(id, low, high ); SeqAckRange range = new SeqAcknRange(id, low, high ); SeqAckRange[] ranges = { range }; SeqAckRange[] ranges = { range }; ReliableQueue.ProcessAcks( ranges ); ReliableQueue.ProcessAcks( ranges ); … hr = pITxDispenser->BeginTransaction (NULL, hr = pITxDispenser->BeginTransaction (NULL, ISOLATIONLEVEL_SERIALIZABLE, 0, pITxOptions, ISOLATIONLEVEL_SERIALIZABLE, 0, pITxOptions, &pITransaction); &pITransaction); … return Greeting; return Greeting; }} 10 lines security Total lines 27,321 1,804 lines reliable messaging 25,507 lines transactions …Using Visual Studio.NET 2003 and WSE Productive Development Secure, Reliable, Transacted Application Development

19 19 [ServiceContract(SecureChannel, SecurityMode =“Windows")] [Reliability(Guarantees.ExactlyOnce | Guarantees.InOrder)] [ServiceContract] class HelloService { [ServiceOperation(TransactionFlowAllowed = true)] [ServiceOperation(TransactionFlowAllowed = true)] String Hello(String Greeting) String Hello(String Greeting) { return Greeting; return Greeting; }} 1 line security 1 line reliable messaging reliable messaging 1 line transactions Total lines 3 Productive Development Secure, Reliable, Transacted Application Development …Using Visual Studio 2005 and Indigo

20


Download ppt "Service Oriented Architecture (SOA) Richard Godfrey CEng MBCS CITP Architect Developer & Platform Group"

Similar presentations


Ads by Google