Service Oriented Architecture CPSC 410 Some content based on IBM’s SOA material, especially SW708: For Business Partners: Service-Oriented Architecture Design Patterns
Service-Oriented Architectures Big problem in business is integration of IT.
BEWARE! TLAs ahead. A lot of good ideas cluttered with industry/vendor jargon, incl. SOA: – WSDL, ESB, WS-*, CORBA, J2EE, SOAP Challenge is to identify the useful benefits and adopt the tech you need Thinking in terms of NFRs can be helpful.
SOA: Why? (IBM) Increasing the speed at which businesses can implement new products and processes or change existing ones Reducing implementation and ownership costs Enabling flexible pricing models by outsourcing Simplifying integration Achieving better IT utilization and ROI Simplifying the enterprise architecture and computing model
SOA: Challenges (IBM) Changes to one system tend to imply ripples of change at many levels to many other systems. No single, fully functional integration solution will "talk to," or work with, them all. No single data, business, or process model spans, much less extends beyond, the enterprise. All these issues apply even more to integration with the systems of existing or future partners.
What is SOA? Service-oriented architecture Model business IT functions as modular, decoupled, independent services Enterprise-wide in scale and scope (think all of Coca-Cola) Use open standards to exchange data
Diversion: CMMI SEI’s Capability Maturity Model Integration Levels of organizational capability: 1.Incomplete 2.Performed 3.Managed 4.Defined 5.Quantitatively managed 6.Optimizing
SOA layered architecture
SOA Architectural Style
SOA design principles Services are loosely coupled – Must figure out correct level of abstraction Services are location-transparent – Use a registry to find them Services are interoperable – Use standards like XML, SOAP, WSDL, HTTP Services are composable – Business processes made of multiple services
Levels of service maturity Silo (data integration) Integrated (application integration) Componentized (functional integration) Simple services (process integration) Composite services (supply-chain integration) Virtualized services ( virtual infrastructure) Dynamically reconfigurable services (eco- system integration)
Questions What services might be relevant if we modeled the Microsoft HR department? – Scheduling interviews – Scheduling interviewers – Reimbursing expenses – Managing hiring decisions – Making an offer/financial modeling
SOAP The “Simple” Object Access Protocol Exchange structured messages for web services Basic WS messaging framework Send message (primarily) with HTTP XML de facto message format
SOAP in web services
Soap Sample POST /Supplier HTTP/1.1 Host: Content-Type: text/xml; charset="utf-8" Content-Length: nnnn SOAPAction: "Some-URI" <SOAP-ENV:Envelope xmlns:SOAP-ENV=" SOAP-ENV:encodingStyle=" AMF Night Hawk Pearl M2 Bowling Ball :09:56
HTTP/ OK Content-Type: text/xml; charset="utf-8" Content-Length: nnnn <SOAP-ENV:Envelope xmlns:SOAP- ENV=" SOAP- ENV:encodingStyle=" >
Web services stack “Big” web services use protocols like SOAP, WS-Integration, WS-Messaging etc (WS-*) Popular in the enterprise Often seen as too complex or YAGNI for smaller applications REST style preferred for support of scale and modularity