310 likes | 671 Views
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.
E N D
Service Oriented Architecture CPSC 410 Somecontent based on IBM’sSOA 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 • Simplifyingthe 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: • Incomplete • Performed • Managed • Defined • Quantitatively managed • Optimizing
SOA layered architecture http://www.ibm.com/developerworks/webservices/library/ws-soa-design1/
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) http://www.ibm.com/developerworks/webservices/library/ws-soa-simm/
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 http://en.wikipedia.org/wiki/Web_service
Soap Sample POST /Supplier HTTP/1.1 Host: www.somesupplier.com Content-Type: text/xml; charset="utf-8" Content-Length: nnnn SOAPAction: "Some-URI" <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body> <m:OrderItemxmlns:m="Some-URI"> <RetailerID>557010</RetailerID> <ItemNumber>1050420459</ItemNumber> <ItemName>AMF Night Hawk Pearl M2</ItemName> <ItemDesc>Bowling Ball</ItemDesc> <OrderQuantity>100</OrderQuantity> <WholesalePrice>130.95</WholeSalePrice> <OrderDateTime>2000-06-19 10:09:56</OrderDateTime> </m:OrderItem> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
HTTP/1.1 200 OK Content-Type: text/xml; charset="utf-8" Content-Length: nnnn <SOAP-ENV:Envelopexmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> <SOAP-ENV:Body> <m:OrderItemResponsexmlns:m="Some-URI"> <OrderNumber>561381</OrderNumber> </m:OrderItemResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
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