Service Oriented Architecture CPSC 410 Some content based on IBM’s SOA material, especially SW708:...
-
Upload
ralph-lynch -
Category
Documents
-
view
213 -
download
0
Transcript of Service Oriented Architecture CPSC 410 Some content based on IBM’s SOA material, especially SW708:...
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. Incomplete2. Performed3. Managed4. Defined5. Quantitatively managed6. Optimizing
SOA layered architecture
http://www.ibm.com/developerworks/webservices/library/ws-soa-design1/
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)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 servicesht
tp:/
/en.
wik
iped
ia.o
rg/w
iki/W
eb_s
ervi
ce
Soap SamplePOST /Supplier HTTP/1.1Host: www.somesupplier.comContent-Type: text/xml; charset="utf-8"Content-Length: nnnnSOAPAction: "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:OrderItem xmlns: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 OKContent-Type: text/xml; charset="utf-8"Content-Length: nnnn
<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:OrderItemResponse xmlns: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