Cara Kerja Web Service

2.4 Cara Kerja Web Service

Berikut contoh skenario cara kerja Web Service. Kasusnya berupa pengaksesan sistem permintaan stok perusahaan B oleh perusahaan A. Skenario awal diperlihatkan pada Gambar 2.6. Gambar 2.6 Contoh transaksi Web Service Pada gambar di atas, perusahaan A ingin menggunakan sistem permintaan stok yang disediakan oleh perusahaan B. Langkah pertama, perusahaan A harus mencari tahu tentang Web Service perusahaan B. Hal ini dilakukan dengan menggunakan regisri UDDI. Dalam penggunaannya, ada kekuatiran yang muncul bahwa UDDI dapat digunakan oleh sembarang pihak. Hal ini tidak benar. Seperti transaksi bisnis pada umumnya, UDDI hanya dapat diakses oleh pihak-pihak yang telah saling mengenal dan bekerja sama. Pada dasarnya, UDDI menyediakan cara untuk mempublikasikan informasi tentang Web Service terbaru yg tersedia. Atau untuk menyediakan informasi tentang antarmuka Web Service yang telah diubah. Sebuah contoh UDDI ditunjukkan pada program di bawah. find_business generic=1.0 xmlns=urn:uddi-org:api nameCompany Bname find_business Selanjutnya, Gambar 2.7. menggambarkan perusahaan A menerima sebuah dokumen berisikan daftar Web Service yang dimilki oleh perusahaan B. Universitas Sumatera Utara Gambar 2.7 Perusahaan A mengambil data WSDL dari UDDI untuk dapat mengakses web service perusahaan B Untuk menyederhanakan contoh, diasumsikan perusahaan B hanya mempunyai satu buah Web Service. Maka respon dari UDDI berupa program di bawah ini. businessList generic=1.0 operator=Company B truncated=false xmlns=urn:uddi-org:api businessInfos businessInfo businessKey=cbfa05fb-277d-4b7e-a101- e6925b376c18 nameCompany Bname description xml:lang=en A leading provider of financial services description serviceInfos serviceInfo serviceKey=5f73eff6-7a85-41cf-99d9- 66cda3a82e63 businessKey=cbca05fb-277d-4b7e-a101-e6925b376c18 nameStock Ordering Servicename serviceInfo serviceInfos businessInfo businessInfos businessList Pada program di atas, terlihat nilai serviceKey untuk service permintaan stok. Perusahaan A dapat menggunakan nilai serviceKey untuk menghasilkan query untuk mendapatkan informasi binding mengenai service permintaan stok dengan menggunakan XML di program berikut ini. get_serviceDetail generic=1.0 xmlns=urn:uddi-org:api serviceKey5f73eff6-7a85-41cf-99d9-66cda3a82e63serviceKey get_serviceDetail Informasi binding yang telah diterima dari pesan get_serviceDetail seperti terlihat pada penggalan program berikut. Universitas Sumatera Utara serviceDetail generic=1.0 operator=Company B truncated=false xmlns=urn:uddi-org:api businessService serviceKey=be1a0b34-e2f1-4f4b-dae6- 258c338ae358 businessKey=cbea05fb-277d-4b7e-a101-e6925b376c18 nameStock Ordering Servicename description xml:lang=enNYSE and Nasdaq Stock Ordering Service. description bindingTemplates bindingTemplate serviceKey=be1a0b34-e2f1-4f4b-aae6- 258c338ae358 bindingKey=00cbd2b2-2333-4f85-b144-369be3d95f7c description xml:lang=enNASDAQ and NYSE Stock Ordering Service with real-time trades.description accessPoint URLType=httpshttps:www.stockorder.comStock accessPoint tModelInstanceDetails tModelInstanceInfo tModelKey=uuid:64c756d1-3374-4e00- ae83-ee12e38fae63 description xml:lang=enStock Ordering Service.description tModelInstanceInfo tModelInstanceDetails bindingTemplate categoryBag keyedReference tModelKey=uuid:a035a07c-f362-44dd-8f95- e2b134bf43b4 keyName=KEYWORD keyValue=STOCKkeyedReference categoryBag businessService serviceDetail Sekarang perusahaan A telah memiliki informasi yang cukup untuk mendapatkan dokumen WSDL dari perusahaan B. WSDL diperlukan perusahaan A untuk membangun pesan SOAP yang akan dikirimkan kepada service permintaan stok dari perusahaan B. Pesan WSDL ditunjukkan pada program berikut ini. ?xml version=1.0? definitions name=StockQuote targetNamespace=http:stockorder.comstockorder.wsdl xmlns:tns=http:stockorder.comstockquote.wsdl xmlns:xsd1=http:stockorder.comstockquote.xsd xmlns:soap=http:schemas.xmlsoap.orgwsdlsoap xmlns:wsdl=http:schemas.xmlsoap.orgwsdl wsdl:types xsd:schema targetNamespace=https:www.stockorder.comStock xmlns:xsd=http:www.w3.org200010XMLSchema xsd:element name=StockOrderRequest xsd:complexType xsd:all xsd:element name=tickerSymbol Universitas Sumatera Utara type=string xsd:element name=quantity type=string xsd:element name=market type=string xsd:all xsd:complexType xsd:element xsd:schema wsdl:types -- request StockOrder is of type StockOrderRequest -- wsdl:message name=GetLastTradePriceInput wsdl:part name=body element=xsd1:TradePriceRequest wsdl:message wsdl:portType name=StockOrderPortType wsdl:operation name=StockOrder wsdl:input message=tns:StockOrderRequest wsdl:output message=tns:StockOrderRequest wsdl:operation wsdl:portType wsdl:binding name=StockOrderSoapBinding type=tns:StockOrderPortType soap:binding style=document transport=http: schemas.xmlsoap.orgsoaphttp wsdl:operation name=GetLastTradePrice soap:operation soapAction=http:www.stockquote.com StockOrder wsdl:input soap:body use=literal wsdl:input wsdl:output soap:body use=literal wsdl:output wsdl:operation wsdl:binding wsdl:definitions Seperti terlihat pada p rogram di atas, dokumen WSDL dapat memberikan pengakses Web Service semua informasi yang diperlukan untuk merancang pesan SOAP. Pada tahap ini, sebuah pesan SOAP dapat dikirim dari perusahaan A kepada perusahaan B. Tindakan ini diilustrasikan dalam Gambar 2.8. Universitas Sumatera Utara . Gambar 2.8 Perusahaan A mengirim pesan SOAP kepada perusahaan B Program di bawah ini menampilkan pesan SOAP yang dikirimkan perusahaan A kepada perusahaan B. SOAP-ENV:Envelope xmlns:SOAP- ENV=http:schemas.xmlsoap.orgsoapenvelope SOAP-ENV:Header SOAP-ENV:Header SOAP-ENV:Body StockOrder:StockOrder xmlns:StockOrder=https:www.stockorder.comStock StockOrder:symbolSGPStockOrder:symbol StockOrder:quantity2000StockOrder:quantity StockOrder:marketNew YorkStockOrder:market order:buy SOAP-ENV:Body SOAP-ENV:Envelope Setelah ini, perusahaan B dapat memberikan pesan SOAP yang berisikan data permintaan stok yang diminta oleh perusahaan A. Dengan demikian kedua perusahaan tersebut bertukar data dengan menggunakan pesan SOAP.

2.5 Software yang Dibutuhkan