Úvod

553 views

Published on

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
553
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
15
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • predstavenie
  • see: http://www.w3.org/TR/2004/NOTE-ws-arch-20040211 iný pohľad: OASIS SOA RM process-oriented SOA je len jedna z možností
  • Predstavme si, že chceme automatizovať proces spracovania objednávky v obchodnej firme. Veľmi zjednodušene tento môžeme popísať v uvedených bodoch.
  • Praktickým problémom je, že jednotlivé úkony sa realizujú v rôznych aplikáciách (systémoch).
  • Takže integrácia týchto systémov veľmi často končí takto. Inak, pre niektoré procesy je práve toto optimálne riešenie ...
  • V iných organizáciách (najmä veľkých s veľkým rozpočtom a IS ktorý sa vyvíja už dlho) potreba integrácie môže prerásť do tzv. integračného chaosu (integračné špagety).
  • máš aplikácie, potrebuješ ich integrovať ? OK. 1) vytvor služby, 2) vytvor kompozitné aplikácie
  • obr ázok – mám služby, chcú komunikovať platform neutral, standardized format je fajn vec, ale ťažko dosiahnuteľná niekedy potrebujeme prvok, ktorý zabezpečí, aby spolu komunikovali aj inak „nekompatibilné“ služby (Java/JMS vs .Net)
  • obrázok!!!
  • tu by sa malo kresliť ... obr ázok: ESB ako vrstva medzi BPM a jednotlivými službami treba uviesť aj obrázok 2: ESB ako vrstva medzi klientom a službou (kde klient nemusí byť BPM) – čiže napr. HTTP/JSON vs. SOAP
  • v tomto pr ípade Client 1 môže byť klient, Client 2 môže byť CRM
  • more consumers – good e.g. for load balancing
  • JMSRedelivered /
  • Úvod

    1. 1. Service Oriented Architecture – Principles and Technologies Dr. Josef Withalm Mgr. Pavol Mederly
    2. 2. Course Content <ul><li>„ Theoretical part“ (jw) – 7 lectures </li></ul><ul><ul><li>Evolution of architectures „from OO to SO“ </li></ul></ul><ul><ul><li>Web Services and Semantic Web </li></ul></ul><ul><ul><li>SOA: Technological basis </li></ul></ul><ul><ul><li>SOA: Basing on Java EE </li></ul></ul><ul><ul><li>SOA: Focus on business processes </li></ul></ul><ul><ul><li>B2B Frameworks and related standards </li></ul></ul><ul><ul><li>Web 2.0 and Grid computing </li></ul></ul><ul><li>„ Practical part“ (pm) – 6 lectures </li></ul><ul><ul><li>Application integration based on SOA principles </li></ul></ul><ul><ul><li>Enterprise Service Bus as an implementation technology </li></ul></ul>
    3. 3. Practical part <ul><li>„ integration studio“ </li></ul><ul><ul><li>Progress Sonic ESB </li></ul></ul><ul><ul><li>Jetty webserver -based sample service </li></ul></ul><ul><ul><li>JMS-based sample services </li></ul></ul><ul><ul><li>JAX-WS web sample service s </li></ul></ul><ul><ul><li>SoapUI Test Client </li></ul></ul><ul><ul><li>some other ESB ? </li></ul></ul><ul><ul><li>... </li></ul></ul><ul><li>experiences with </li></ul><ul><ul><li>practical service integration / adaptation tasks </li></ul></ul><ul><ul><li>WSDL, SOAP, XSLT, XPath, JMS, ... </li></ul></ul>
    4. 4. <ul><li>Pondelok 11:30 – 13:05 </li></ul><ul><li>akvárium V I alebo M-217 </li></ul><ul><li>(bude vždy oznámené vopred + na webe) </li></ul><ul><li>http://www.fmph.uniba.sk/ ~pmederly </li></ul><ul><li>pavol.mederly @fmph.uniba.sk, M-171 </li></ul><ul><li>ukončenie: projekt (ESB) + skúška </li></ul>
    5. 5. Today <ul><li>Service Oriented Architecture </li></ul><ul><li>Enterprise Service Bus </li></ul><ul><li>Macro-Microflow Pattern </li></ul><ul><li>Sample scenario </li></ul>
    6. 6. A definition (one of) <ul><li>Service-oriented architecture (SOA) is a distributed systems architecture that is typically characterized by the following properties: </li></ul><ul><ul><li>systems developed under SOA paradigm consist of services </li></ul></ul><ul><ul><li>the service provides an abstracted (logical) view of actual HW/SW components (programs, databases, business processes, ...) </li></ul></ul><ul><ul><li>the service is formally defined in terms of the messages exchanged between provider agents and requester agents </li></ul></ul><ul><ul><li>the service description is published in machine-processable form </li></ul></ul><ul><ul><li>services tend to use a small number of operations with relatively large and complex messages </li></ul></ul><ul><ul><li>services tend to be oriented toward use over a network </li></ul></ul><ul><ul><li>messages are sent in a platform-neutral, standardized format (typically XML, but not necessarily) </li></ul></ul>W3C Web Services Architecture, 2004
    7. 7. What is it good for ... ? <ul><li>application integration </li></ul><ul><ul><li>intra-enterprise </li></ul></ul><ul><ul><li>inter-enterprise (business-to-business) </li></ul></ul><ul><li>application development </li></ul>
    8. 8. Enterprise Application Integration <ul><li>there are plenty of apps in a typical enterprise </li></ul><ul><li>there is a strong need for them to cooperate </li></ul><ul><ul><li>e.g. in order to automate business processes supported by more than one application </li></ul></ul><ul><li>main obstacle: apps developed independently , having different assumptions, data models, interfaces, platforms, etc. </li></ul>
    9. 9. An example – purchase order processing <ul><li>Input: purchase order </li></ul><ul><li>Validate customer ID and status </li></ul><ul><li>Check customer credit </li></ul><ul><li>Check inventory and package goods </li></ul><ul><li>Start the delivery </li></ul><ul><li>Prepare and send an invoice </li></ul><ul><li>Output: delivery started, invoice sent. </li></ul>
    10. 10. Systems involved <ul><li>Validate customer ID and status </li></ul><ul><ul><li>Customer Relation Management (CRM) </li></ul></ul><ul><li>Check customer credit </li></ul><ul><ul><li>Enterprise Resource Planning (ERP) </li></ul></ul><ul><li>Check inventory and package goods </li></ul><ul><ul><li>Inventory Management </li></ul></ul><ul><li>Start the delivery </li></ul><ul><ul><li>Delivery System (outsourced) </li></ul></ul><ul><li>Prepare and send an invoice </li></ul><ul><ul><li>Enterprise Resource Planning (ERP) </li></ul></ul>
    11. 13. SOA says to ... <ul><li>publish relevant application functionality as services </li></ul><ul><li>create composite (integrating) application(s) that call them </li></ul>
    12. 14. (Some) services involved <ul><li>Validate customer ID and status </li></ul><ul><ul><li>Customer Relation Management (CRM) </li></ul></ul><ul><ul><li> GetCustomerDetails </li></ul></ul><ul><li>Check customer credit </li></ul><ul><ul><li>Enterprise Resource Planning (ERP) </li></ul></ul><ul><ul><li> CheckCustomerCredit </li></ul></ul><ul><li>Check inventory and package goods </li></ul><ul><ul><li>Inventory Management </li></ul></ul><ul><ul><li> PackageGoods </li></ul></ul><ul><li>Start the delivery </li></ul><ul><ul><li>Delivery System </li></ul></ul><ul><ul><li> StartDelivery </li></ul></ul><ul><li>Prepare and send an invoice </li></ul><ul><ul><li>Enterprise Resource Planning (ERP) </li></ul></ul><ul><ul><li> BillCustomer </li></ul></ul>
    13. 15. Research in SOA / SOC <ul><li>IEEE International Conference on Web Services (ICWS) </li></ul><ul><li>IEEE International Conference on Services Computing (SCC) </li></ul><ul><li>International Conference on Service-Oriented Computing (ICSOC) </li></ul><ul><li>International World Wide Web Conference </li></ul><ul><li>IEEE Intl Enterprise Distributed Object Computing Conference </li></ul><ul><li>IEEE Digital Library </li></ul><ul><li>ACM Digital Library </li></ul><ul><li>The DBLP Computer Science Bibliography </li></ul><ul><li>service composition (esp. Semantics- and QoS- aware) </li></ul><ul><li>SOC Research Roadmap, 2006 </li></ul>
    14. 16. Today <ul><li>Service Oriented Architecture </li></ul><ul><li>Enterprise Service Bus </li></ul><ul><li>Macro-Microflow Pattern </li></ul><ul><li>Sample scenario </li></ul>
    15. 17. Nice idea but ... <ul><li>the world is not so simple </li></ul><ul><li>not everyone speaks WSDL 2.0 / SOAP 1.2 </li></ul><ul><li>what about security ? </li></ul><ul><li>not everyone shares your data model </li></ul><ul><li>failures do occur </li></ul><ul><li>... </li></ul><ul><li>Communication IS hard. </li></ul>
    16. 18. E nterprise S ervice B us <ul><li>ESB provides an infrastructure for communication of </li></ul><ul><li>service provider and service consumers, namely: </li></ul><ul><li>communication using various transport protocols </li></ul><ul><ul><li>SOAP, HTTP(S), JMS , SMTP, file transfer, ... </li></ul></ul><ul><li>configurable message transformation and routing </li></ul><ul><li>service orchestration </li></ul><ul><ul><li>possibility t o define processes consisting of individual services </li></ul></ul><ul><ul><li>centralized or decentralized execution </li></ul></ul><ul><li>common run-time environment for (internal) services </li></ul><ul><li>common (centralized) management </li></ul><ul><ul><li>configuring, administration, monitoring, logging, ... </li></ul></ul>
    17. 19. Today <ul><li>Service Oriented Architecture </li></ul><ul><li>Enterprise Service Bus </li></ul><ul><li>Macro-Microflow Patt ern </li></ul><ul><li>Sample s cenario </li></ul>
    18. 20. Business Owner View <ul><li>Validate customer ID and status </li></ul><ul><li>Check customer credit </li></ul><ul><li>Check inventory and package goods </li></ul><ul><li>Start the delivery </li></ul><ul><li>Prepare and send an invoice </li></ul>
    19. 21. IT Department View <ul><li>Customer Relation Management (CRM) </li></ul><ul><ul><li>packaged application, Windows, MS SQL Server </li></ul></ul><ul><ul><li>interface: HTTP , XML </li></ul></ul><ul><li>Enterprise Resource Planning (ERP) </li></ul><ul><ul><li>packaged application, Windows, Oracle, Java </li></ul></ul><ul><ul><li>interface: messaging, XML </li></ul></ul><ul><li>Enterprise Resource Planning (ERP) 2 </li></ul><ul><ul><li>custom built application, IBM OS/390, IMS </li></ul></ul><ul><ul><li>interface: exchanging files, fixed length records </li></ul></ul><ul><li>Inventory Management </li></ul><ul><ul><li>packaged application, Unix, Oracle </li></ul></ul><ul><ul><li>interface: HTTP, comma-separated values </li></ul></ul><ul><li>Delivery System </li></ul><ul><ul><li>external service </li></ul></ul><ul><ul><li>interface: Web Services (SOAP), XML </li></ul></ul>
    20. 22. Macro-Microflow Pattern – an approach to process-oriented SOA <ul><li>Macroflow Layer </li></ul><ul><ul><li>processes as seen by business owners/analysts </li></ul></ul><ul><ul><li>no (or little) technicalities </li></ul></ul><ul><ul><li>long running processes </li></ul></ul><ul><ul><li>utilizes Macroflow Integration Services </li></ul></ul><ul><li>Microflow Layer </li></ul><ul><ul><li>implements Macroflow Integration Services </li></ul></ul><ul><ul><li>using processes solving all the technical details </li></ul></ul><ul><ul><li>no (or little) business logic </li></ul></ul><ul><ul><li>short running processes </li></ul></ul><ul><ul><li>utilizes services of back-end applications </li></ul></ul>(Hentrich and Zdun, 2006)
    21. 23. Options custom code Option 0 custom code standard infrastructure (BPM) Option 3 standard infrastructure (ESB) standard infrastructure (BPM) Option 4 standard infrastructure (ESB) custom code Option 2 custom code custom code Option 1 Microflow Layer Macroflow Layer
    22. 24. Today <ul><li>Service Oriented Architecture </li></ul><ul><li>Enterprise Service Bus </li></ul><ul><li>Macro-Microflow Pattern </li></ul><ul><li>Sample scenario </li></ul>
    23. 25. <ul><li><?xml version=“1.0” encoding=“UTF-8”?> </li></ul><ul><li><Order> </li></ul><ul><li><OrderID> 10200341 </OrderID> </li></ul><ul><li><Customer> </li></ul><ul><li><CustomerID> 100347 </CustomerID> </li></ul><ul><li></Customer> </li></ul><ul><li><TotalPrice currency=“ EUR ”> 103.00 </TotalPrice> </li></ul><ul><li><Items> </li></ul><ul><li><Item> </li></ul><ul><li><ProductID> 491 </ProductID> </li></ul><ul><li><Quantity> 100 </Quantity> </li></ul><ul><li><UnitPrice currency=“ SKK ”> 1.03 </UnitPrice> </li></ul><ul><li></Item> </li></ul><ul><li>... </li></ul><ul><li></Items> </li></ul><ul><li><Shipping> </li></ul><ul><li><ShipTo> Astronomicko-geofyzik álne observatórium, </li></ul><ul><li>920 01 Modra </ShipTo> </li></ul><ul><li></Shipping> </li></ul><ul><li></Order> </li></ul>An Order
    24. 26. Service 1: GetCustomerDetails <ul><li>Input: HTTP POST to http://crmserver.acme.org/custinfo </li></ul><ul><li><?xml version=“1.0” encoding=“UTF-8”?> </li></ul><ul><li><GetCustomerDetails> </li></ul><ul><li><ID> 100347 </ID> </li></ul><ul><li></GetCustomerDetails> </li></ul><ul><li>Output: HTTP data returned </li></ul><ul><li><?xml version=“1.0” encoding=“UTF-8”?> </li></ul><ul><li><GetCustomerDetailsReply> </li></ul><ul><li><ID> 100347 </ID> </li></ul><ul><li><Type> CORP </Type> </li></ul><ul><li><Level> GOLD </Level> </li></ul><ul><li><Name> Fakulta matematiky, fyziky a informatiky UK </Name> </li></ul><ul><li><Address> Mlyn ská dolina, 84248 Bratislava </Address> </li></ul><ul><li>< Status > OK </Status> </li></ul><ul><li></GetCustomerDetailsReply> </li></ul>
    25. 27. HTTP document address (URL): http://server/do c ument HTTP
    26. 28. Hypertext Transfer Protocol (HTTP) Client request – get document /www/index.html HTTP 1.1: RFC 2616
    27. 29. M et hods
    28. 30. Return codes
    29. 31. Using HTTP for application communication <ul><li>method: GET; parameters in URL (limited size) </li></ul><ul><li>GET / getCustDetails ? id=100347 HTTP/1.1 </li></ul><ul><li>method: POST; parameters in message body </li></ul><ul><li>POST / getCustDetails HTTP/1.1 </li></ul><ul><li>Content-Type: text/xml </li></ul><ul><li><?xml version=“1.0” encoding=“UTF-8”?> </li></ul><ul><li>< Customer > </li></ul><ul><li><ID>100347</ID> </li></ul><ul><li></ Customer > </li></ul>
    30. 32. Properties <ul><li>simple </li></ul><ul><li>rich existing infrastructure </li></ul><ul><ul><li>application servers </li></ul></ul><ul><ul><li>proxy servers and load balancers </li></ul></ul><ul><ul><li>standard security solution (HTTPS = HTTP + SSL/TLS) </li></ul></ul><ul><ul><li>monitoring tools, test clients, client libraries, ... </li></ul></ul><ul><li>almost no compatibility issues at the protocol level </li></ul><ul><li>synchronous mode </li></ul><ul><ul><li>both parties + network connection must be available </li></ul></ul><ul><ul><li>in order to be reliable the client must implement retry mechanisms </li></ul></ul><ul><ul><li>server should respond in “reasonable” time (max. minutes) </li></ul></ul>
    31. 33. Service 2 a : CheckCustomerCredit <ul><li>Input: message sent to topic ERP.General.Entry </li></ul><ul><li>(broker MgmtBroker) </li></ul><ul><li><?xml version=“1.0” encoding=“UTF-8”?> </li></ul><ul><li>< CheckCustomerCredit > </li></ul><ul><li><Account> C-2004-10-997 </Account> </li></ul><ul><li><AmountEUR> 102.00 </AmountEUR> </li></ul><ul><li><Category> A </Category> </li></ul><ul><li></ CheckCustomerCredit > </li></ul><ul><li>Output: message recv’d from JMS Topic specified in “Reply-To” </li></ul><ul><li><?xml version=“1.0” encoding=“UTF-8”?> </li></ul><ul><li><Credit> OK </Credit> </li></ul>
    32. 34. Messaging JMS flavor <ul><li>clients communicate through messaging broker(s) </li></ul><ul><li>a broker provide s message queues and topics </li></ul>
    33. 35. Queues <ul><li>a client sends a message into the queue </li></ul><ul><li>the message waits there until (another) client consumes it </li></ul><ul><li>there can be more consumers but every message is delivered to only one of them </li></ul><ul><li>also known as point-to-point mode of operation </li></ul>
    34. 36. Topics <ul><li>a client sends a message into the topic </li></ul><ul><li>the message is delivered to all clients that </li></ul><ul><ul><li>have subscribed themselves to that topic </li></ul></ul><ul><ul><li>are currently connected to broker (exception: durable subscriptions) </li></ul></ul><ul><li>also known as publish/subscribe mode of operation </li></ul>
    35. 37. Message <ul><li>A m essage consist s of: </li></ul><ul><li>header </li></ul><ul><li>properties </li></ul><ul><li>body </li></ul>
    36. 38. Message Header <ul><li>JMSDestination ( queue or topic name ) </li></ul><ul><li>JMSDeliveryMode (persistent, non- persistent) </li></ul><ul><li>JMSExpiration </li></ul><ul><li>JMSPriority </li></ul><ul><li>JMSMessageID </li></ul><ul><li>JMSTimestamp </li></ul><ul><li>JMSCorrelationID </li></ul><ul><li>JMSReplyTo </li></ul><ul><li>JMSType </li></ul><ul><li>JMSRedelivered </li></ul>black: can be set by sending client blue: set by JMS provider when delivering the message
    37. 39. Message Properties and Body <ul><li>Properties </li></ul><ul><li>contain client-defined (application specific) name- value pairs </li></ul><ul><li>Body </li></ul><ul><li>contains client-defined content of following types: </li></ul><ul><ul><li>TextMessage (plain text) </li></ul></ul><ul><ul><li>MapMessage (java Map object) </li></ul></ul><ul><ul><li>BytesMessage (stream of bytes) </li></ul></ul><ul><ul><li>StreamMessage (stream of primitive java types) </li></ul></ul><ul><ul><li>ObjectMessage (arbitrary java object) </li></ul></ul><ul><ul><li>Message (empty one) </li></ul></ul><ul><ul><li>XMLMessage (contains XML stored as text) </li></ul></ul><ul><ul><li>MultipartMessage (contains more independent parts) </li></ul></ul>blue: Sonic specific
    38. 40. Other processing options <ul><li>acknowledgments </li></ul><ul><ul><li>receipt of message has to be acknowledged, either: </li></ul></ul><ul><ul><ul><li>implicitly by the provider after client having read it, or: </li></ul></ul></ul><ul><ul><ul><li>explicitly by client by calling message.acknowledge() </li></ul></ul></ul><ul><ul><li>messages received but not acknowledged would be redelivered </li></ul></ul>
    39. 41. Other processing options <ul><li>transactions </li></ul><ul><ul><li>messages can be sent and received transactionally (i.e. in “all or none” mode); transactions are either </li></ul></ul><ul><ul><ul><li>local (operations on one JMS connection are transacted), or </li></ul></ul></ul><ul><ul><ul><li>distributed (operations on more JMS connections and on other resources are transacted) </li></ul></ul></ul>
    40. 42. Properties <ul><li>reliable </li></ul><ul><ul><li>acknowledgments, transactions </li></ul></ul><ul><li>synchronous or asynchronous </li></ul><ul><ul><li>the only component that has to be available is the broker (can be replicated) </li></ul></ul><ul><ul><li>need to correlate requests and replies </li></ul></ul><ul><li>suitable also for event notifications </li></ul><ul><ul><li>topics with durable subscriptions </li></ul></ul><ul><li>many implementations of the idea (of messaging) </li></ul><ul><ul><li>various APIs; Java Message Service API as a standard </li></ul></ul><ul><ul><li>JMS: portable, not interoperable </li></ul></ul>
    41. 43. Service 2 b : CheckCustomerCredit <ul><li>Input: file nnnnnn.req stored into specified directory </li></ul><ul><li>(server IBM01) </li></ul><ul><li>„ 100347 102.00 1“ </li></ul><ul><li>Output: file nnnnnn.resp retrieved from the same directory </li></ul><ul><li>„ OK“ </li></ul>
    42. 44. Service 3 : PackageGoods <ul><li>Input: HTTP POST to http:// inv .acme.org/ apps/package </li></ul><ul><li>OPEN;10200341;0;0 </li></ul><ul><li>ADD ;10200341;491;100 </li></ul><ul><li>ADD;10200341;30132;3 </li></ul><ul><li>ADD;10200341;43;20 </li></ul><ul><li>ADD;10200341;400;150 </li></ul><ul><li>... </li></ul><ul><li>CLOSE;10200341;0;0 </li></ul><ul><li>(header X-OperationType: atomic ) </li></ul><ul><li>Output: HTTP data returned </li></ul><ul><li>OK </li></ul><ul><li>or </li></ul><ul><li>OutOfStock (<list of product IDs>) </li></ul><ul><li>or </li></ul><ul><li>HTTP Status Code 4xx or 5xx </li></ul>
    43. 45. Service 4: StartDelivery <ul><li>Input: SOAP message sent to URL http://express.com/services </li></ul><ul><li><?xml version=“1.0” encoding=“UTF-8”?> </li></ul><ul><li>< env: Envelope xmlns:env=„http://www.w3.org/2003/05/soap-envelope“ > </li></ul><ul><li><env:Body> </li></ul><ul><li><OrderDelivery> </li></ul><ul><li><ID> 1235471943:3381 </ID> </li></ul><ul><li><Customer>8991</Customer> </li></ul><ul><li><Package> 10200341 </Package> </li></ul><ul><li><From>...</From> </li></ul><ul><li><To>...</To> </li></ul><ul><li></OrderDelivery> </li></ul><ul><li></env:Body> </li></ul><ul><li></env:Envelope> </li></ul>
    44. 46. <ul><li>Output: SOAP response (via HTTP) </li></ul><ul><li><?xml version=“1.0” encoding=“UTF-8”?> </li></ul><ul><li>< env: Envelope xmlns:env=„http://www.w3.org/2003/05/soap-envelope“ > </li></ul><ul><li><env:Body> </li></ul><ul><li><OrderConfirmation> </li></ul><ul><li><ID> 1235471943:3381 </ID> </li></ul><ul><li><Status> CONFIRMED </Status> </li></ul><ul><li></OrderConfirmation> </li></ul><ul><li></env:Body> </li></ul><ul><li></env:Envelope> </li></ul>
    45. 47. SOAP <ul><li>flexible protocol for transfer of XML messages between applications </li></ul><ul><ul><li>application A (initial SOAP sender) sends message to application Z (ultimate SOAP receiver); message can go through applications B, C, D, ... (SOAP intermediaries) on the way </li></ul></ul><ul><li>independent of transport protocol </li></ul><ul><ul><li>usually HTTP(S), can be JMS, SMTP, ... </li></ul></ul><ul><li>message = header + body </li></ul>
    46. 48. SOAP (2) <ul><li>the header is typically used for control information for “advanced” services such as </li></ul><ul><ul><li>security (authentication, integrity, confidentiality) </li></ul></ul><ul><ul><li>transactions </li></ul></ul><ul><ul><li>reliable delivery </li></ul></ul><ul><ul><li>addressing </li></ul></ul><ul><ul><li>... </li></ul></ul><ul><li>consists of header blocks </li></ul><ul><ul><li>generalized form of well-known headers of HTTP, RFC 822, ... </li></ul></ul><ul><ul><li>standard attributes: role, mustUnderstand, relay </li></ul></ul><ul><li>not defined by SOAP as such, but by various WS-* specs </li></ul><ul><li>the body is application-specific (except for faults) </li></ul>
    47. 49. XML Namespaces <ul><li>names of elements and attributes can be globally unique , if there is a namespace specified for them </li></ul><ul><li>examples : </li></ul><ul><li>< cat:PriceList xmlns:cat= “http:// warehouse .sk/ catalogue ” > </li></ul><ul><li>< cat:Item > ... </li></ul><ul><li>< PriceList xmlns= “http:// warehouse .sk/ catalogue ” > </li></ul><ul><li>< Item > ... </li></ul>
    48. 50. <ul><li>< env:Envelope xmlns:env=&quot;http://www.w3.org/2003/05/soap-envelope&quot; > </li></ul><ul><li>< env:Header > </li></ul><ul><li>< wsse:Security env: mustUnderstand=&quot;true&quot; xmlns:wsse=... > </li></ul><ul><li>< wsse:UsernameToken > </li></ul><ul><li>< wsse:Username > peter </wsse:Username > </li></ul><ul><li>< wsse:Password > secret ! </wsse:Password > </li></ul><ul><li></wsse:UsernameToken> </li></ul><ul><li></wsse:Security > </li></ul><ul><li>... </li></ul><ul><li>< /env:Header > </li></ul><ul><li>< env:Body > </li></ul><ul><li>< obj ednavka xmlns=&quot;http://obchod.sk/schemy&quot; > </li></ul><ul><li>< predmet > matice M8 </predmet> < mno zstvo > 20 kg </mno zstvo > </li></ul><ul><li></obj ednavka > </li></ul><ul><li></env:Body > </li></ul><ul><li>< /env:Envelope > </li></ul>SOAP (3) - an example < env:Envelope xmlns:env=&quot;http://www.w3.org/2003/05/soap-envelope&quot; > < env:Body > < obj ednavka xmlns=&quot;http://obchod.sk/schemy&quot; > < predmet > matice M8 </predmet> < mno zstvo > 20 kg </mno zstvo > </obj ednavka > </env:Body > < /env:Envelope > tags defined by SOAP tags defined by WS-Security tags defined by the application
    49. 51. SOAP (4) <ul><li>message exchange can be </li></ul><ul><ul><li>synchronous ( e.g. request and reply in one HTTP session) </li></ul></ul><ul><ul><li>asynchronous ( e.g. request and reply as separate HTTP sessions) </li></ul></ul><ul><ul><li>one-way </li></ul></ul><ul><ul><li>... </li></ul></ul>
    50. 52. Properties <ul><li>platform neutral, generally accepted </li></ul><ul><ul><li>rich programming support </li></ul></ul><ul><ul><li>though compatibility is not 100% ( as of today ) </li></ul></ul><ul><li>extensible </li></ul><ul><ul><li>though more advanced specifications are not so widespread as the basic protocol </li></ul></ul><ul><li>human-friendly (sometimes) </li></ul><ul><ul><li>due to the use of XML </li></ul></ul><ul><li>performance issues </li></ul><ul><ul><li>though alternative XML encodings are emerging </li></ul></ul>
    51. 53. References <ul><li>Hentrich, C., Zdun, U. (2006). Patterns for Process-Oriented Integration in Service-Oriented Architectures. EUROPLOP 2006. </li></ul><ul><li>Papazoglou, M., van den Heuvel, W.-J. (2007). Service oriented architectures: approaches, technologies and research issues. The VLDB Journal, 16, 389-415. </li></ul><ul><li>Sonic Software Corporation (2005). Sonic ESB: An architecture and lifecycle definition. http://www.sonicsoftware.com/products/whitepapers/docs/esb_architecture_definition.pdf </li></ul><ul><li>Booth, D., Haas, H., McCabe, F., Newcomer, E., Champion, M., Ferris, Ch., Orchard, D. (2004). Web Services Architecture. W3C Working Group Note. http://www.w3.org/TR/ws-arch/ </li></ul><ul><li>McKenzie, C. M., Laskey, K., McCabe, F., Brown, P. F., Metz, R. (2006). Reference Model for Service Oriented Architecture 1.0. OASIS. http://docs.oasis-open.org/soa-rm/v1.0/soa-rm.pdf </li></ul><ul><li>Papazoglou, M. P., Traverso, P., Dustdar, S., Leymann, F., & Krämer, B.J. (2006). Service-Oriented Computing Research Roadmap , In: Cubera, F., Krämer, B.J., Papazoglou, M.P. (eds.) Dagstuhl Seminar Proceedings 05462. Internationales Begegnungs-und Forschungszentrum für Informatik (IBFI), Schloss Dagstuhl, Germany. </li></ul>

    ×