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

web services and service oriented architecture
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

CS ¡4720 ¡

Web ¡Services ¡and ¡ ¡ Service ¡Oriented ¡Architecture ¡

CS ¡4720 ¡– ¡Web ¡& ¡Mobile ¡Systems ¡ ¡

slide-2
SLIDE 2

CS ¡4720 ¡

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… ¡

2

slide-3
SLIDE 3

CS ¡4720 ¡

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 ¡

3

slide-4
SLIDE 4

CS ¡4720 ¡

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!” ¡

4

slide-5
SLIDE 5

CS ¡4720 ¡

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” ¡

5

slide-6
SLIDE 6

CS ¡4720 ¡

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? ¡

6

slide-7
SLIDE 7

CS ¡4720 ¡

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) ¡

7

slide-8
SLIDE 8

CS ¡4720 ¡

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 ¡

8

slide-9
SLIDE 9

CS ¡4720 ¡

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 ¡

9

slide-10
SLIDE 10

CS ¡4720 ¡

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 ¡

  • ver ¡:me." ¡ ¡

10

slide-11
SLIDE 11

CS ¡4720 ¡

Architecture ¡

11

  • 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. ¡

slide-12
SLIDE 12

CS ¡4720 ¡

What ¡are ¡we ¡actually ¡trying ¡to ¡do? ¡

12

Receive PO Get Items from Inventory Update Customer Profile Compute Subtotal Compute Shipping Cost Compute Export Tax Compute International Shipping Compute Total

[ship within US] [ship outside US]

Ship Order

Fork Join Branch Merge

slide-13
SLIDE 13

CS ¡4720 ¡

OSI ¡Model ¡

13

slide-14
SLIDE 14

CS ¡4720 ¡

OSI ¡Model ¡

14

slide-15
SLIDE 15

CS ¡4720 ¡

The ¡Stack ¡

15

slide-16
SLIDE 16

CS ¡4720 ¡

The ¡Stack ¡

16 BPEL4WS OWL-S Service Model ebXML CPA Process and workflow

  • rchestrations

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

slide-17
SLIDE 17

CS ¡4720 ¡

The ¡Stack ¡

17

slide-18
SLIDE 18

CS ¡4720 ¡

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 ¡

18

slide-19
SLIDE 19

CS ¡4720 ¡

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 ¡

19

slide-20
SLIDE 20

CS ¡4720 ¡

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 ¡

  • ver ¡HTTP, ¡SMTP, ¡etc. ¡
  • Not ¡really ¡much ¡more ¡than ¡an ¡HTTP ¡request ¡

that ¡follows ¡XML/SOAP ¡standards ¡

20

slide-21
SLIDE 21

CS ¡4720 ¡

SOAP ¡Model ¡

21

slide-22
SLIDE 22

CS ¡4720 ¡

SOAP ¡Model ¡

22

slide-23
SLIDE 23

CS ¡4720 ¡

SOAP ¡Request ¡

POST /InStock HTTP/1.1 Host: www.example.org Content-Type: application/soap+xml; charset=utf-8 Content-Length: nnn
 
 <?xml version="1.0"?>
 <soap:Envelope
 xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
 soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
 
 <soap:Body xmlns:m="http://www.example.org/stock">
 <m:GetStockPrice>
 <m:StockName>IBM</m:StockName>
 </m:GetStockPrice>
 </soap:Body>
 
 </soap:Envelope>

23

slide-24
SLIDE 24

CS ¡4720 ¡

SOAP ¡Response ¡

  • HTTP/1.1 200 OK


Content-Type: application/soap+xml; charset=utf-8
 Content-Length: nnn
 
 <?xml version="1.0"?>
 <soap:Envelope
 xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
 soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
 
 <soap:Body xmlns:m="http://www.example.org/stock">
 <m:GetStockPriceResponse>
 <m:Price>34.5</m:Price>
 </m:GetStockPriceResponse>
 </soap:Body>
 
 </soap:Envelope>

24

slide-25
SLIDE 25

CS ¡4720 ¡

Parts ¡of ¡SOAP ¡

  • The ¡Envelope ¡– ¡required ¡root ¡element ¡defining ¡

the ¡document ¡as ¡being ¡a ¡SOAP ¡request ¡

  • The ¡Header ¡– ¡not ¡required, ¡but ¡contains ¡

authen0ca0on ¡and/or ¡payment ¡info ¡for ¡the ¡ request ¡

  • The ¡Body ¡– ¡the ¡actual ¡message ¡being ¡sent ¡

25

slide-26
SLIDE 26

CS ¡4720 ¡

But ¡I ¡like ¡to ¡be ¡dirty! ¡

  • …. ¡ ¡ ¡
  • Bad ¡0tle ¡aside, ¡some ¡didn't ¡like ¡to ¡be ¡“0ed ¡

down” ¡by ¡such ¡“conserva0ve ¡talk” ¡of ¡having ¡to ¡ follow ¡the ¡SOAP ¡rules! ¡

  • “It's ¡just ¡XML!” ¡they ¡said. ¡ ¡“I ¡don't ¡need ¡of ¡this ¡

extra ¡stuff! ¡ ¡Just ¡good ¡Plain ¡Old ¡XML…!” ¡

  • “And ¡that's ¡what ¡we'll ¡call ¡it! ¡ ¡POX!” ¡

26

slide-27
SLIDE 27

CS ¡4720 ¡

What's ¡the ¡difference? ¡

  • Following ¡the ¡agreed ¡upon ¡rules… ¡
  • Valida0ng ¡POX ¡can ¡be ¡hard; ¡SOAP ¡is ¡

comparably ¡easy ¡

  • SOAP ¡services ¡are ¡beqer ¡at ¡being ¡dynamically ¡

bound ¡

  • How ¡we ¡do ¡this ¡is ¡Thursday's ¡lecture ¡

¡

27

slide-28
SLIDE 28

CS ¡4720 ¡

A5er ¡all ¡this… ¡What ¡about ¡REST? ¡

  • REST ¡is ¡an ¡architectural ¡style ¡that ¡is ¡

independent, ¡but ¡compa0ble, ¡with ¡XML ¡

  • POX/HTTP ¡means ¡exchanging ¡plain ¡old ¡XML ¡

documents ¡over ¡HTTP; ¡can ¡be ¡RESTful ¡

  • SOAP ¡is ¡a ¡standard ¡document ¡format ¡for ¡

building ¡high-­‑level ¡protocols. ¡Anything ¡that ¡ uses ¡SOAP ¡is ¡(by ¡defini0on) ¡not ¡just ¡using ¡plain ¡

  • ld ¡XML, ¡and ¡thus ¡not ¡POX; ¡it ¡can ¡also ¡be ¡

RESTful ¡ ¡

28

slide-29
SLIDE 29

CS ¡4720 ¡

So… ¡

  • So ¡there ¡can ¡be ¡RESTful ¡SOAP ¡applica0ons, ¡and ¡

RESTful ¡POX ¡applica0ons, ¡and ¡non-­‑RESTful ¡ SOAP ¡applica0ons, ¡and ¡non-­‑RESTful ¡POX ¡ applica0ons, ¡but ¡no ¡POX/SOAP ¡combina0on… ¡ sort ¡of ¡

29

slide-30
SLIDE 30

CS ¡4720 ¡

Thoughts ¡

  • If ¡you ¡want ¡a ¡great ¡experience ¡for ¡.NET/Java ¡devs, ¡

you'll ¡typically ¡publish ¡schemas ¡and ¡support ¡SOAP. ¡ ¡

  • If ¡you ¡want ¡a ¡great ¡experience ¡for ¡LAMP ¡folks, ¡you'll ¡

support ¡POX ¡messages ¡(or ¡JSON) ¡and ¡will ¡provide ¡a ¡ non-­‑XSD ¡descrip0on ¡of ¡your ¡formats. ¡

  • If ¡you ¡want ¡to ¡reach ¡both ¡audiences, ¡you'll ¡do ¡both ¡#1 ¡

and ¡#2. ¡

  • If ¡you ¡want ¡to ¡reach ¡both ¡audiences ¡before ¡your ¡

compe00on ¡does, ¡you'll ¡avoid ¡indulging ¡in ¡religious ¡ debates ¡and ¡ship ¡something. ¡

30

slide-31
SLIDE 31

CS ¡4720 ¡

Using ¡a ¡Web ¡Service ¡

  • If ¡you ¡took ¡the ¡0me ¡to ¡create ¡a ¡service, ¡then ¡

you ¡probably ¡want ¡people ¡to ¡use ¡it ¡

  • In ¡order ¡to ¡use ¡a ¡service, ¡users ¡need ¡to ¡know ¡

what ¡informa0on ¡they ¡can ¡send ¡the ¡service ¡ and ¡what ¡informa0on ¡is ¡going ¡to ¡be ¡sent ¡back ¡

  • What ¡would ¡be ¡even ¡beqer ¡is ¡if ¡the ¡so5ware ¡

could ¡do ¡all ¡this ¡automa0cally… ¡

31

slide-32
SLIDE 32

CS ¡4720 ¡

Enter ¡WSDL ¡ ¡

  • WSDL: ¡Web ¡Services ¡Descrip0on ¡Language ¡

– An ¡XML ¡document ¡used ¡to ¡give ¡the ¡specifics ¡of ¡a ¡ service ¡

  • Loca0on ¡
  • Methods ¡
  • Allowed ¡messages ¡
  • Poten0al ¡error ¡messages ¡

32

slide-33
SLIDE 33

CS ¡4720 ¡

Enter ¡WSDL ¡

33

slide-34
SLIDE 34

CS ¡4720 ¡

The ¡HelloService ¡Example ¡

  • hqp://oreilly.com/catalog/webservess/

chapter/ch06.html ¡

34

slide-35
SLIDE 35

CS ¡4720 ¡

Quick ¡Sidestep: ¡UDDI ¡

  • UDDI: ¡Universal ¡Descrip0on, ¡Discovery ¡and ¡

Integra0on ¡

  • A ¡solu0on ¡in ¡search ¡of ¡a ¡problem ¡
  • The ¡idea ¡is ¡okay: ¡a ¡language ¡and ¡schema ¡for ¡

allowing ¡people ¡to ¡publish ¡their ¡WSDL ¡schemas ¡ so ¡that ¡others ¡can ¡discover ¡their ¡services ¡

  • IBM, ¡Microso5, ¡and ¡SAP ¡announced ¡they ¡were ¡

closing ¡their ¡public ¡UDDI ¡nodes ¡in ¡January ¡2006 ¡

  • No ¡one ¡used ¡it! ¡

35

slide-36
SLIDE 36

CS ¡4720 ¡

Quick ¡Sidestep: ¡UDDI ¡

  • Where ¡might ¡it ¡work ¡decently? ¡

– Perhaps ¡inside ¡a ¡single ¡organiza0on ¡for ¡internal ¡ code ¡

  • The ¡public ¡sides ¡were ¡either: ¡

– Empty ¡ – Overrun ¡with ¡junk ¡

  • Whichever ¡it ¡was ¡UDDI, ¡isn't ¡really ¡used ¡
  • Quote ¡Marty ¡Humphrey: ¡“It ¡was ¡a ¡good ¡

problem ¡to ¡solve, ¡but ¡a ¡terrible ¡solu0on.” ¡

36

slide-37
SLIDE 37

CS ¡4720 ¡

The ¡Original ¡Idea ¡

37

slide-38
SLIDE 38

CS ¡4720 ¡

Back ¡to ¡WSDL ¡

  • We ¡DO ¡use ¡WSDL ¡though ¡
  • It ¡is ¡how ¡a ¡web ¡service ¡is ¡bound ¡to ¡an ¡

applica0on ¡

  • It's ¡more ¡XML… ¡which ¡kinda ¡sucks… ¡
  • But… ¡the ¡best ¡part ¡is… ¡

38

slide-39
SLIDE 39

CS ¡4720 ¡

The ¡Best ¡Part ¡about ¡WSDL ¡

  • No ¡one ¡ever ¡writes ¡the ¡stuff ¡themselves! ¡
  • It's ¡auto-­‑generated! ¡

39

slide-40
SLIDE 40

CS ¡4720 ¡

BPEL ¡

  • Business ¡Process ¡Execu0on ¡Language ¡

– Standard ¡executable ¡language ¡for ¡specifying ¡ interac0ons ¡with ¡Web ¡Services ¡

  • Basic ¡goal: ¡an ¡“execu0on ¡language” ¡to ¡write ¡

“systems” ¡by ¡tying ¡available ¡web ¡services ¡ together ¡

40

slide-41
SLIDE 41

CS ¡4720 ¡

The ¡Basic ¡Idea ¡

41

slide-42
SLIDE 42

CS ¡4720 ¡

Video ¡

  • hqp://www.youtube.com/watch?v=XRzTySj-­‑

aak ¡

42

slide-43
SLIDE 43

CS ¡4720 ¡

Okay… ¡so… ¡

  • In ¡a ¡SOA… ¡

– Every ¡func0on ¡is ¡a ¡service ¡ – Every ¡service ¡is ¡independent ¡ – Each ¡service ¡can ¡talk ¡to ¡other ¡services ¡through ¡a ¡ specified ¡protocol ¡(SOAP) ¡ – Each ¡service ¡defines ¡what ¡messages ¡it ¡can ¡deal ¡ with ¡through ¡a ¡specified ¡protocol ¡(WSDL) ¡ – Services ¡can ¡announce ¡themselves ¡to ¡everyone ¡ else ¡(UDDI ¡or ¡some ¡other ¡publishing ¡scheme) ¡ – And ¡services ¡can ¡be ¡bundled ¡into ¡processes ¡(BPEL) ¡

43

slide-44
SLIDE 44

CS ¡4720 ¡

That ¡was ¡exhaus0ng… ¡

  • Oh, ¡it ¡gets ¡beqer. ¡ ¡Look ¡at ¡all ¡the ¡QoS ¡stuff… ¡

44

BPEL4WS OWL-S Service Model ebXML CPA Process and workflow

  • rchestrations

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

slide-45
SLIDE 45

CS ¡4720 ¡

What ¡could ¡possibly ¡go ¡wrong? ¡

  • QoS: ¡Quality ¡of ¡Service ¡

– Availability ¡(MTTR): ¡is ¡it ¡up? ¡ – Accessibility: ¡if ¡it's ¡up, ¡can ¡I ¡get ¡to ¡it? ¡ – Conformance ¡to ¡Standards: ¡play ¡by ¡the ¡rules? ¡ – Integrity: ¡actually ¡does ¡what ¡the ¡WSDL ¡says? ¡ – Performance: ¡how ¡fast ¡does ¡it ¡come ¡back? ¡ – Reliability: ¡how ¡does ¡it ¡handle ¡failures? ¡ – Scalability: ¡how ¡does ¡it ¡handle ¡lots ¡of ¡requests? ¡ – Security: ¡what ¡about ¡all ¡my ¡data ¡flying ¡around? ¡ – Transac0ons: ¡if ¡one ¡part ¡fails, ¡does ¡it ¡all ¡fail? ¡

45

slide-46
SLIDE 46

CS ¡4720 ¡

Bring ¡in ¡the ¡lawyers ¡

  • Service ¡Level ¡Agreements ¡

– Web ¡services ¡can ¡come ¡with ¡contracts ¡between ¡the ¡ provider ¡and ¡the ¡consumer ¡that ¡specify ¡the ¡ requirements ¡of ¡the ¡previous ¡slide ¡ – Basically ¡will ¡boil ¡down ¡to ¡how ¡it ¡will ¡handle: ¡

  • Performance ¡and ¡capacity ¡
  • Availability ¡
  • Security/Privacy ¡
  • There ¡are ¡protocols ¡for ¡this ¡too! ¡

46

slide-47
SLIDE 47

CS ¡4720 ¡

BAH! ¡ ¡Is ¡it ¡worth ¡it? ¡

  • Verizon ¡thinks ¡so: ¡
  • Rebuilt ¡fraud ¡detec0on ¡system ¡into ¡BPEL ¡from ¡

J2EE ¡

  • Used ¡Oracle's ¡BPEL ¡Process ¡Manager ¡system ¡
  • Original ¡system: ¡

– Three ¡large ¡DBs ¡consis0ng ¡of ¡2.5 ¡billion ¡records ¡ – Team ¡of ¡100 ¡

47

slide-48
SLIDE 48

CS ¡4720 ¡

BPEL-­‑arific ¡

  • Tossed ¡all ¡the ¡Java ¡
  • Now ¡it's ¡one ¡Shockwave ¡(Flash) ¡and ¡one ¡JSP ¡

page ¡on ¡top ¡of ¡the ¡BPEL ¡

  • Flash ¡makes ¡web ¡services ¡calls ¡into ¡the ¡BPEL ¡

processes ¡

  • All ¡business ¡rules ¡wriqen ¡into ¡the ¡BPEL ¡

language ¡

  • Web ¡2.0 ¡UI ¡

48

slide-49
SLIDE 49

CS ¡4720 ¡

BPEL-­‑arific ¡

  • New ¡code ¡base ¡is ¡0.5% ¡of ¡original ¡size ¡
  • 192 ¡processor ¡cores ¡down ¡to ¡a ¡single ¡8-­‑core ¡

server ¡

  • Energy ¡consump0on ¡down ¡99% ¡
  • 20 ¡terabytes ¡of ¡DB ¡to ¡64 ¡gigabytes ¡

49

slide-50
SLIDE 50

CS ¡4720 ¡

According ¡to ¡Verizon ¡

  • Based ¡on ¡event-­‑driven ¡architecture, ¡data ¡on ¡cell ¡phone ¡usage ¡coming ¡from ¡

the ¡Verizon ¡switches ¡is ¡analyzed ¡and ¡checked ¡for ¡business ¡excep0ons, ¡ Chappell ¡explains. ¡He ¡site ¡examples ¡of ¡possible ¡fraud ¡including ¡business ¡ excep0ons ¡such ¡as ¡the ¡detec0on ¡of ¡excessive ¡data ¡thresholds. ¡This ¡might ¡ indicate ¡that ¡someone ¡is ¡doing ¡"phone ¡cloning" ¡to ¡make ¡calls ¡by ¡stealing ¡a ¡ customer's ¡account ¡informa0on. ¡When ¡this ¡sort ¡of ¡excep0on ¡is ¡detected, ¡an ¡ event ¡starts ¡a ¡BPEL ¡process. ¡ ¡

  • With ¡the ¡SOA ¡implementa0on, ¡Chappell ¡explains ¡"the ¡BPEL ¡process ¡invokes ¡

a ¡number ¡of ¡services, ¡which ¡includes ¡going ¡out ¡directly ¡to ¡the ¡source ¡of ¡the ¡ call ¡detail ¡records ¡to ¡get ¡the ¡informa0on ¡necessary ¡to ¡enrich ¡the ¡event ¡data. ¡ It ¡is ¡then ¡fed ¡into ¡a ¡rules ¡engine ¡to ¡check ¡for ¡viola0ons, ¡make ¡decisions ¡ based ¡on ¡policy, ¡and ¡then ¡on ¡to ¡generate ¡more ¡detailed ¡reports." ¡

  • Using ¡this ¡services ¡approach ¡rather ¡than ¡data ¡warehousing ¡to ¡retrieve ¡and ¡

process ¡the ¡required ¡informa0on ¡reduces ¡the ¡storage ¡requirements. ¡

50

slide-51
SLIDE 51

CS ¡4720 ¡

Thanks ¡

  • Many ¡thanks ¡to ¡Ken ¡Anderson ¡@ ¡Colorodo ¡for ¡

some ¡of ¡this ¡informa0on ¡

  • Some ¡info ¡also ¡from ¡the ¡fine ¡folks ¡at ¡Wikipedia ¡
  • hqp://www.pluralsight.com/community/blogs/

dbox/archive/2006/02/17/18869.aspx ¡

  • This ¡slide ¡deck ¡brought ¡to ¡you ¡by ¡the ¡leqer ¡“∫” ¡

and ¡the ¡number ¡“awesome.” ¡

51