web services and service oriented architecture
play

Web Services and Service Oriented Architecture CS 4720 - PowerPoint PPT Presentation

Web Services and Service Oriented Architecture CS 4720 Web & Mobile Systems CS 4720 The tradi0onal so5ware model Organiza0ons build it


  1. Web ¡Services ¡and ¡ ¡ Service ¡Oriented ¡Architecture ¡ CS ¡4720 ¡– ¡Web ¡& ¡Mobile ¡Systems ¡ ¡ CS ¡4720 ¡

  2. The ¡tradi0onal ¡so5ware ¡model ¡ • Organiza0ons ¡build ¡it ¡all ¡from ¡scratch ¡ – “ We ¡can't ¡trust ¡anyone! ¡ ¡Our ¡compe0tors ¡will ¡ sabotage ¡us! ” ¡ – “ We ¡must ¡own ¡everything! ¡ ¡Hardware ¡and ¡ so5ware! ” ¡ • Companies ¡that ¡build ¡so5ware ¡need ¡ components ¡that ¡do ¡X ¡or ¡Y… ¡ – … ¡so ¡they ¡buy ¡COTS ¡components ¡ – Service ¡contracts, ¡new ¡releases, ¡regression ¡ tes0ng… ¡ CS ¡4720 ¡ 2

  3. The ¡tradi0onal ¡so5ware ¡model ¡ ¡ • How ¡well ¡does ¡this ¡work? ¡ • Some ¡project ¡data ¡from ¡the ¡DOD: ¡ – 47% ¡of ¡so5ware ¡delivered ¡could ¡not ¡be ¡used ¡ • Usually ¡didn't ¡meet ¡requirements ¡ – 29% ¡of ¡funded ¡so5ware ¡never ¡delivered ¡ • Usually ¡canceled ¡due ¡to ¡cost/schedule ¡overruns ¡ – 19% ¡of ¡so5ware ¡useful ¡a5er ¡extensive ¡rework ¡ • Costs ¡36 ¡0mes ¡more ¡to ¡fix ¡problems ¡a5er ¡release ¡ CS ¡4720 ¡ 3

  4. A ¡push ¡to ¡distribu0on ¡ • “ We're ¡really ¡good ¡at ¡__________, ¡how ¡can ¡we ¡ get ¡our ¡__________ ¡out ¡for ¡people ¡to ¡use? ” ¡ • The ¡idea ¡of ¡distributed ¡compu0ng ¡ – “ We're ¡good ¡at ¡X, ¡but ¡not ¡so ¡good ¡a ¡Y… ” ¡ – “ What ¡if ¡we ¡got ¡someone ¡to ¡help ¡us ¡with ¡Y… ¡but ¡in ¡ a ¡way ¡that ¡we ¡didn’t ¡have ¡to ¡include ¡any ¡fancy ¡ libraries… ¡ ¡ – … ¡and ¡we ¡could ¡use ¡them ¡in ¡web ¡apps! ¡ ¡And ¡mobile ¡ devices! ¡ ¡And ¡even ¡desktop ¡apps! ” ¡ CS ¡4720 ¡ 4

  5. A ¡Web ¡Service ¡ • From ¡W3C: ¡ “ a ¡so5ware ¡system ¡designed ¡to ¡ support ¡interoperable ¡machine-­‑to-­‑machine ¡ interac0on ¡over ¡a ¡network. ¡It ¡has ¡an ¡interface ¡ described ¡in ¡a ¡machine-­‑processable ¡format ¡ (specifically ¡WSDL). ¡Other ¡systems ¡interact ¡ with ¡the ¡Web ¡service ¡in ¡a ¡manner ¡prescribed ¡ by ¡its ¡descrip0on ¡using ¡SOAP-­‑messages, ¡ typically ¡conveyed ¡using ¡HTTP ¡with ¡an ¡XML ¡ serializa0on ¡in ¡conjunc0on ¡with ¡other ¡Web-­‑ related ¡standards ” ¡ CS ¡4720 ¡ 5

  6. A ¡Web ¡Service? ¡ • Huh? ¡ • A ¡bit ¡more ¡simply: ¡A ¡program, ¡accessible ¡via ¡ the ¡Internet, ¡that ¡can ¡do ¡some ¡func0on ¡(either ¡ for ¡free ¡or ¡a ¡fee) ¡and ¡can ¡be ¡dynamically ¡ discovered ¡and ¡used. ¡ • So… ¡ ¡I ¡use ¡web ¡apps ¡all ¡the ¡0me… ¡are ¡those ¡ web ¡services? ¡ CS ¡4720 ¡ 6

  7. Web ¡Service ¡as ¡RPC ¡ • The ¡earliest ¡form ¡of ¡a ¡true ¡ “ web ¡services ” ¡was ¡ an ¡RPC ¡– ¡remote ¡procedure ¡call. ¡ • Exactly ¡what ¡it ¡sounds ¡like ¡– ¡there ¡is ¡an ¡ exposed ¡func0on/method ¡that ¡is ¡accessed ¡via ¡ the ¡web ¡where ¡you ¡pass ¡the ¡parameters ¡and ¡ the ¡method ¡name ¡and ¡you ¡get ¡back ¡a ¡return ¡ value. ¡ • No0ce ¡how ¡this ¡is ¡very ¡different ¡from ¡the ¡ RESTful ¡model ¡(verbs ¡vs. ¡nouns) ¡ CS ¡4720 ¡ 7

  8. Web ¡Service ¡as ¡SOA ¡ • RPC ¡was ¡okay… ¡but ¡it ¡turned ¡out ¡to ¡be ¡a ¡bit ¡ more ¡language ¡specific ¡than ¡we'd ¡like ¡ • What ¡if ¡we ¡just ¡a ¡structured ¡message ¡(like ¡an ¡ XML ¡document) ¡that ¡described ¡what ¡we ¡ wanted, ¡as ¡opposed ¡to ¡knowing ¡the ¡exact ¡ func0on ¡call? ¡ • This ¡is ¡the ¡basis ¡of ¡the ¡Service-­‑Oriented ¡ Architecture ¡ CS ¡4720 ¡ 8

  9. Word ¡By ¡Word ¡ • What ¡is ¡a ¡service? ¡ • "A ¡service ¡is ¡a ¡discoverable ¡resource ¡that ¡ executes ¡a ¡repeatable ¡task, ¡and ¡is ¡described ¡by ¡ an ¡externalized ¡service ¡specifica:on. ” ¡ • Business ¡alignment ¡– ¡business ¡requirements ¡ • Specifica0ons ¡– ¡self-­‑contained, ¡well ¡specified ¡ • Reusability ¡– ¡general ¡enough ¡to ¡be ¡reused ¡ • Agreements ¡– ¡based ¡on ¡func0on, ¡not ¡plalorm ¡ • Hos0ng ¡and ¡discoverability ¡– ¡available ¡ • Aggrega0on ¡– ¡can ¡be ¡combined ¡to ¡make ¡bigger ¡services ¡ CS ¡4720 ¡ 9

  10. Word ¡By ¡Word ¡ • What ¡is ¡an ¡architecture? ¡ • "A ¡formal ¡descrip:on ¡of ¡a ¡system, ¡or ¡a ¡detailed ¡ plan ¡of ¡the ¡system ¡at ¡component ¡level ¡to ¡guide ¡ its ¡implementa:on. ” ¡ ¡ • “ The ¡structure ¡of ¡components, ¡their ¡ interrela:onships, ¡and ¡the ¡principles ¡and ¡ guidelines ¡governing ¡their ¡design ¡and ¡evolu:on ¡ over ¡:me." ¡ ¡ CS ¡4720 ¡ 10

  11. Architecture ¡ • Architecture ¡is: ¡ – A ¡high-­‑enough ¡level ¡of ¡abstrac0on ¡that ¡the ¡system ¡ can ¡be ¡viewed ¡as ¡a ¡whole ¡and ¡yet ¡s0ll ¡provides ¡ enough ¡informa0on ¡to ¡make ¡decisions. ¡ – Supports ¡the ¡func0onality ¡of ¡the ¡system. ¡ – All ¡implementa0on ¡details ¡are ¡hidden. ¡ • Service ¡orienta:on ¡is ¡a ¡way ¡of ¡integra:ng ¡a ¡ business ¡as ¡a ¡set ¡of ¡linked ¡services. ¡ CS ¡4720 ¡ 11

  12. What ¡are ¡we ¡actually ¡trying ¡to ¡do? ¡ Fork Receive PO Update Customer Profile Get Items from Inventory Branch Compute Subtotal Compute Export Tax [ship outside US] [ship within US] Compute Shipping Cost Merge Compute International Shipping Compute Total Ship Order Join CS ¡4720 ¡ 12

  13. OSI ¡Model ¡ CS ¡4720 ¡ 13

  14. OSI ¡Model ¡ CS ¡4720 ¡ 14

  15. The ¡Stack ¡ CS ¡4720 ¡ 15

  16. The ¡Stack ¡ ebXML UDDI Registries Discovery ebXML Contracts and CPA agreements OWL-S Service Process and workflow BPEL4WS BPML Model orchestrations WS-AtomicTransaction and WS- BTP QoS: Transactions XLANG BusinessActivity WS-Reliable OWL-S Service WSCL WS-Coordination QoS: Choreography ebXML Messaging Profile WSCI BPSS OWL-S Service WS-Security WSCL QoS: Conversations Grounding ebXML QoS: Service WS-Policy WSDL OWL PSL CPP descriptions and bindings ebXML RDF SOAP Messaging messaging Encoding XML, DTD, and XML Schema HTTP, FTP, SMTP, SIP, etc. Transport CS ¡4720 ¡ 16

  17. The ¡Stack ¡ CS ¡4720 ¡ 17

  18. SOA ¡– ¡The ¡Quick ¡Version ¡ • Right ¡now, ¡you ¡probably ¡think ¡of ¡a ¡so5ware ¡ system ¡as ¡being ¡a ¡collec0on ¡of ¡classes ¡/ ¡objects ¡ • But ¡users ¡don't ¡think ¡of ¡systems ¡like ¡that… ¡they ¡ think ¡of ¡systems ¡as ¡sets ¡of ¡func0onality ¡that ¡ help ¡them ¡do ¡something ¡ • So… ¡why ¡do ¡we ¡use ¡objects? ¡ – Easier ¡to ¡model ¡ – Easier ¡to ¡program ¡ – Easier ¡to ¡explain ¡to ¡other ¡programmers ¡ CS ¡4720 ¡ 18

  19. Or ¡is ¡it ¡actually ¡easier? ¡ • Turn ¡our ¡idea ¡of ¡a ¡system ¡90 ¡degrees ¡ • Func0onality ¡objects ¡(procedural ¡abstrac0on) ¡ is ¡the ¡key ¡idea, ¡not ¡world ¡objects ¡(data ¡ abstrac0on) ¡ • This ¡is ¡the ¡key ¡in ¡SOA ¡ – An ¡SOA ¡system ¡has ¡the ¡func0onali0es ¡as ¡the ¡main ¡ players, ¡not ¡the ¡objects ¡themselves ¡ – But ¡more ¡so, ¡these ¡services ¡are ¡provided ¡by ¡many ¡ different ¡players ¡ CS ¡4720 ¡ 19

  20. But ¡what ¡language ¡do ¡we ¡speak? ¡ • SOAP ¡-­‑ ¡ Simple ¡Object ¡Access ¡Protocol ¡ – A ¡communica0on ¡protocol ¡ – A ¡format ¡for ¡sending ¡messages ¡ – Plalorm ¡independent ¡ – XML ¡based ¡ – Follows ¡the ¡rules ¡that ¡allow ¡for ¡transmission ¡easily ¡ over ¡HTTP, ¡SMTP, ¡etc. ¡ • Not ¡really ¡much ¡more ¡than ¡an ¡HTTP ¡request ¡ that ¡follows ¡XML/SOAP ¡standards ¡ CS ¡4720 ¡ 20

  21. SOAP ¡Model ¡ CS ¡4720 ¡ 21

  22. SOAP ¡Model ¡ CS ¡4720 ¡ 22

Recommend


More recommend