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