Web Service dapat diimplementasikan baik untuk lingkungan internal intranet maupun untuk lingkungan publik internet. Dalam lingkungan internal, Web Service
memberikan kemudahan dan solusi baru untuk mengintegrasikan berbagai platform aplikasi yang ada dalam organisasi atau perusahaan. Pada lingkungan publik, Web
Service akan memperbaharui konsep transaksi data berbasis internet, dan menawarkan teknologi yang mampu mengintegrasikan data dari berbagai sumber data dalam
organisasi atau perusahaan terkait maupun dengan rekan bisnis secara lebih mudah, sederhana, dan murah. Dan secara umum, Web Service akan mengubah paradigma
para pengguna maupun pengembang perangkat lunak, dari berbasis API application program interface menjadi berbasis pesan message-based.
2.3 Komponen Web Service
2.3.1 HTTP
Hypertext Transfer Protocol HTTP adalah sebuah protokol jaringan
lapisan aplikasi yang digunakan untuk
sistem informasi terdistribusi , kolaboratif, dan
menggunakan hypermedia
. Atau bisa disebut juga sebagai sebuah protokol yang memintamenjawab antara
klien dan
server . Protokol ini adalah protokol yang ringan,
tidak berstatus, dan generik yang dapat dipergunakan berbagai macam tipe dokumen.
Penggunaan HTTP pada umumnya berupa pengambilan sumber daya yang saling terhubung dengan tautan, yang disebut dengan dokumen
hypertext . Dengan
menggunakan dokumen hypertext inilah, Tim Berners-Lee
, seorang fisikawan
Inggris ,
kemudian membentuk World Wide Web
pada tahun 1990
. Sumber daya
yang hendak diakses dengan menggunakan HTTP diidentifikasi dengan menggunakan
Uniform Resource Identifier
URI, atau lebih khusus melalui Uniform Resource Locator
URL, menggunakan skema URI
http: atau https:.
Sebuah klien HTTP misal, web browser atau robot, dan sebagainya biasanya memulai permintaan dengan membuat hubungan ke port tertentu di sebuah server
Web hosting tertentu biasanya port 80. Klien yang mengirimkan permintaan HTTP
Universitas Sumatera Utara
dikenal sebagai user agent. Server yang meresponnya, yang juga menyimpan sumber daya seperti berkas HTML dan gambar, dikenal sebagai origin server. Di antara user
agent dan origin server bisa terdapat penghubung, seperti tunnel, proxy, dan gateway.
Hingga kini, ada dua versi mayor dari protokol HTTP, yakni HTTP1.0 yang menggunakan koneksi terpisah untuk setiap dokumen, dan HTTP1.1 yang dapat
menggunakan koneksi yang sama untuk melakukan transaksi. Dengan demikian, HTTP1.1 bisa lebih cepat karena tidak membuang waktu untuk pembuatan koneksi
berulang-ulang.
Pengembangan HTTP dikoordinasi oleh Konsorsium World Wide Web W3C dan Internet Engineering Task Force IETF. Kedua grup ini bekerja dalam
pengembangan standar HTTP yang menghasilkan beberapa dokumen Request for
Comments RFC.
Dukungan untuk HTTP1.1 yang belum disahkan pada waktu itu dikenal sebagai
RFC 2068 , secara cepat diadopsi oleh banyak pengembang
penjelajah Web pada tahun
1996 awal. Hingga
Maret 1996, HTTP1.1 tersebut didukung
oleh Netscape 2.0
, Netscape Navigator Gold 2.01
, Mosaic 2.7
, Lynx 2.5
, dan
Microsoft Internet Explorer 3.0 . Salah satu perusahaan Web hosting melaporkan
bahwa hingga Juni
1996 , 65 dari semua penjelajah yang mengakses server-
server mereka merupakan
penjelajah Web yang mendukung HTTP1.1. Maka, standar
HTTP1.1 yang didefinisikan dalam RFC 2068
secara resmi dirilis pada bulan Januari 1997. Peningkatan dan pembaruan terhadap standar HTTP1.1 dirilis dengan
dokumen RFC 2616
pada bulan Juni 1999, dan menjadi versi HTTP yang umum digunakan sekarang ini.
HTTP tidaklah terbatas untuk penggunaan dengan TCPIP, meskipun HTTP merupakan salah satu protokol aplikasi TCPIP paling populer melalui Internet.
Memang HTTP dapat diimplementasikan di atas protokol yang lain di atas Internet atau di atas jaringan lainnya, tapi HTTP membutuhkan sebuah protokol lapisan
transport yang dapat diandalkan.
2.3.2 XML
Universitas Sumatera Utara
XML terletak pada inti Web Service, yang digunakan untuk mendeskripsikan data. Fungsi utama dari XML adalah komunikasi antar aplikasi, integrasi data, dan
komunikasi aplikasi eksternal dengan partner luaran. Dengan standarisasi XML, aplikasi-aplikasi yang berbeda dapat dengan mudah berkomunikasi antara satu dengan
yang lain.
XML dikembangkan mulai tahun 1996 dan mendapatkan pengakuan dari W3C pada bulan Februari 1998. Teknologi yang digunakan pada XML sebenarnya bukan
teknologi baru, tapi merupakan turunan dari SGML yang telah dikembangkan pada awal 80-an dan telah banyak digunakan pada dokumentasi teknis proyek-proyek
berskala besar. Ketika HTML dikembangkan pada tahun 1990, para penggagas XML mengadopsi bagian paling penting pada SGML dan dengan berpedoman pada
pengembangan HTML menghasilkan markup language yang tidak kalah hebatnya dengan SGML.
XML adalah singkatan dari eXtensible Markup Language. Bahasa markup adalah sekumpulan aturan-aturan yang mendefinisikan suatu sintaks yang digunakan
untuk menjelaskan, dan mendeskripsikan teks atau data dalam sebuah dokumen melalui penggunaan tag. Bahasa markup lain yang populer seperti HTML,
menggambarkan kepada web browser tentang bagaimana menampilkan format teks, data, dan grafik ke layar komputer ketika sedang mengunjungi sebuah situs web.
XML adalah sebuah bahasa markup yang digunakan untuk mengolah meta- data informasi tentang data yang menggambarkan struktur dan maksudtujuan data
yang terdapat dalam dokumen XML, namun bukan menggambarkan format tampilan data tersebut. XML adalah sebuah standar sederhana yang digunakan untuk
mendeskripsikan data teks dengan cara self-describing deskripsi diri. XML juga dapat digunakan untuk mendefinisikan domain tertentu lainnya, seperti musik,
matematika, keuangan dan lain-lain yang menggunakan bahasa markup terstruktur.
Berikut ini adalah contoh sebuah dokumen XML untuk informasi contact person.
Universitas Sumatera Utara
?xml version=1.0 encoding=ISO-8859-1?contact contact
nameYadi Utamaname companyPT. Gamatechno Indonesiacompany
addressJl. Cik Di Tiro No.34address cityYogyakartacity
stateIndonesiastate zip55284zip
phone081328462499phone emailyadigamatechno.comemail
contact
Seperti HTML, XML juga menggunakan elemen yang ditandai dengan tag pembuka diawali dengan ‘’ dan diakhiri dengan ‘’, tag penutup diawali dengan
‘ ‘diakhiri ‘’ dan atribut elemen parameter yang dinyatakan dalam tag pembuka, misalnya:
form name=”isidata”
. Tag pada dokumen XML bersifat case sensitif di mana tag pembuka dan tag penutup harus ekivalen. Seperti pada contoh, tag
pembuka “
Buku
” harus ditutup dengan tag “
Buku
”.
Pada HTML tag dan atribut yang dipakai didefinisikan dari awal, sedangkan pada XML, tag dan atribut bisa digunakan sesuai dengan kehendak pemrogram.
Berikut ini adalah tampilan dokumen XML dari program di atas apabila dijalankan pada sebuah browser.
Gambar 2.2 Tampilan dokumen XML pada browser
Universitas Sumatera Utara
Dokumen XML memiliki sintaks yang sederhana. Perhatikan kembali contoh dokumen XML contact person di atas. Baris pertama pada dokumen XML di atas
adalah deklarasi header standar yang mendefinisikan versi XML dan karakter encoding yang digunakan dalam dokumen XML. Dalam dokumen ini, XML mengacu
pada versi 1.0 dan menggunakan standar encoding karakter set ISO-8859-1 Latin- 1West European. Perlu diingat bahwa header standar XML
?xml version=”1.0” encoding=”iso-8859-1”?
bukanlah node instruksi. Header standar bukanlah bagian dari hirarki pohon dokumen XML dan tidak turut dikompilasi.
Baris selanjutnya menggambarkan elemen induk root dokumen “
contact..contact
”. Kemudian baris ke 3-10 menggambarkan elemen anak child dari elemen induk dokumen name, company, address, city, state, zip, phone,
dan email. Dengan demikian, dapat diasumsikan bahwa dokumen XML ini mengandung data contact person milik orang yang bernama Yadi Utama.
Pada dasarnya, dokumen XML harus mempunyai elemen root, yang merupakan induk dari semua elemn lainnya. Elemen-elemen dalam dokumen XML
membentuk struktur pohon. Struktur ini bermula dari root hingga ke bagian terbawah pohon. Semua elemen bisa memiliki subelemen elemen child, teks, dan atribut sama
seperti HTML.
root child
subchild…..subchild child
root
Misalkan ada sebuah dokumen XML dengan sebuah elemen root
bookstore
. Semua elemen
book
terkandung dalam
bookstore
. Dengan demikian, elemen
book
merupakan elemen child dari elemen
bookstore
. Elemen
book
memiliki 4 child:
title
,
author
,
year
, dan
price
.
Universitas Sumatera Utara
Gambar 2.3. Contoh diagram hirarki pohon pada dokumen XML
Struktur penulisan dokumen XML dari diagram di atas dapat ditulis sebagai berikut.
bookstore book category=COOKING
title lang=enEveryday Italiantitle authorGiada De Laurentiisauthor
year2005year price30.00price
book book category=CHILDREN
title lang=enHarry Pottertitle authorJ K. Rowlingauthor
year2005year price29.99price
book book category=WEB
title lang=enLearning XMLtitle authorErik T. Rayauthor
year2003year price39.95price
book bookstore
Pada penjelasan sebelumnya, diberikan contoh sebuah dokumen XML yang berisi data contact person yang terdiri dari elemen “name”, “company”, “address”,
“city”, “state”, “zip”, “phone”, dan “email”. Tidak seperti HTML, data-data dalam dokumen XML tidak dapat ditampilkan dalam format tampilan tertentu dalam web
browser. Namun XML dapat dimanipulasi sebagai “pulau data” untuk ditampilkan pada web browser melalui HTML sesuai dengan format tampilan yang diinginkan.
Universitas Sumatera Utara
Dokumen XML tersebut dapat digabungkan dengan HTML untuk ditampilkan dalam sebuah web browser dengan membangun sebuah tabel dalam kode HTML dan
mengasosiasikan nilai pada kolom-kolomnya dengan data dari elemen-elemen XML tersebut.
html body
xml id=contact-person contact
nameYadi Utamaname companyPT. Gamatechno Indonesiacompany
addressJl. Cik Di Tiro No.34address cityYogyakartacity
stateIndonesiastate zip55284zip
phone081328462499phone emailyadigamatechno.comemail
contact xml
table border=1 datasrc=contact-person trthNameth tdspan datafld=namespantdtr
trthCompanyth tdspan datafld=companyspantdtr trthAddressth tdspan datafld=addressspantdtr
trthCityth tdspan datafld=cityspantdtr trthStateth tdspan datafld=statespantdtr
trthZIPth tdspan datafld=zipspantdtr trthPhoneth tdspan datafld=phonespantdtr
trthEmailth tdspan datafld=emailspantdtr table
body html
Ketika ditampilkan melalui web browser, tampilannya akan terlihat seperti gambar di bawah ini.
Universitas Sumatera Utara
Gambar 2.4 Dokumen XML yang digabung dalam HTML
XML untuk saat ini bukan merupakan pengganti HTML. Masing-masing dikembangkan untuk tujuan yang berbeda. Jika HTML digunakan untuk menampilkan
informasi dan berfokus pada bagaimana informasi terlihat, maka XML mendeskripsikan susunan informasi dan berfokus pada informasi itu sendiri. XML
terutama dibutuhkan untuk menyusun dan menyajikan informasi dengan format yang tidak mengandung format standar layaknya heading, paragraph, table dan lain
sebagainya.
Sama dengan HTML, file XML berbentuk teks sehingga bila diperlukan dapat dibaca tanpa memerlukan bantuan software khusus. Hal ini memudahkan pengembang
aplikasi yang menggunakan XML untuk men-debug programnya. XML lebih fleksibel dibanding HTML dalam hal kemampuannya menyimpan informasi dan data. Pada
XML, data bisa disimpan, baik dalam atribut maupun sebagai isi elemen yang diletakkan di antara tag pembuka dan tag penutup.
Kelebihan lain yang dimiliki XML adalah bahwa informasi bisa dipertukarkan dari satu sistem ke sistem lain yang berbeda platform. Misalnya dari Windows ke
Unix, atau dari PC ke Macintosh, bahkan dari internet ke handphone dengan teknologi WAP.
2.3.3 WSDL Web Service Description Language
WSDL adalah sebuah dokumen yang diajukan oleh World Wide Consortium W3C untuk mendeskripsikan service. Dokumen WSDL dibentuk dengan format XML yang
isinya menjelaskan spesifikasi operasi yang dapat dilakukan oleh sebuah service. WSDL dapat dikatakan sebagai “kontrak” yang menjamin service yang tersedia.
WSDL menyediakan deskripsi lengkap Web Service berupa: a.
Nama Web Service dan informasi pengalamatan b.
Protokol dan gaya encoding yang digunakan saat mengakses operasi publik Web Service
Universitas Sumatera Utara
c. Tipe informasi seperti operasi, parameter, dan tipe data yang membentuk
antarmuka Web Service.
Dalam dokumen WSDL terdapat pernyataan versi XML yang dipakai. Kemudian sebuah komponen root Definition yang merupakan tag tertinggi dalam
dokumen WSDL. Tag-tag lainnya harus berada di dalam tag ini. Di dalamnya terdapat berbagai atribut berupa sebuah Name nama service dan sebuah TargetNameSpace
dan nol atau lebih namespaces. Namespaces digunakan untuk menghindari konflik penamaan ketika beberapa service atau aplikasi diintegrasikan.
Sebuah komponen Definition mengandung komponen-komponen berikut: a.
Types, mendefinisikan tipe data yang digunakan dalam pesan, misal XSD. Di dalam bagian ini didefinisikan tipe-tipe data kompleks yang digunakan oleh
Web Service. Tipe data sederhana seperti integer, double, dan string tidak didefinisikan lagi.
b. Message merupakan bagian yang mengandung informasi yang dibutuhkan
untuk melakukan operasi, serta parameter input dan output apa saja yang akan digunakan.
c. Operation adalah sebuah deskripsi abstrak dari aksi yang dilakukan oleh service.
Setiap operation dapat disamakan dengan method atau function call dalam sebuah bahasa pemrograman tradisional. Di sini aksi SOAP didefinisikan dan
pesan di-encode.
d.
Port Type, mendefinisikan operasi yang tersedia dalam Web Service dan pesan yang digunakan untuk melakukan operasi.
e. Binding, menspesifikasikan Port Type, mendefinisikan operasi, protokol yang
digunakan untuk memanggil operasi tersebut HTTP atau SMTP, bagaimana operasi tersebut dilakukan, dan gaya binding yang diterapkan document atau
RPC. f.
Port, mendefinisikan alamat jaringan Web Service. Bagian ini biasanya direperesentasikan dengan sebuah string url http sederhana.
g. Service, dapat dianggap sebagai kontainer untuk sekumpulan fungsi sistem yang
telah diekspos ke protokol-protokol berbasis web.
Universitas Sumatera Utara
2.3.4 SOAP
SOAP mulanya merupakan kepanjangan dari Simple Object Access Protocol. Namun seiring dengan perkembangan Web Service, kepanjangan tersebut tidak lagi dipakai.
Dalam Web Service, SOAP merupakan format standar dokumen berbentuk XML yang digunakan untuk melakukan proses request dan response antara Web Service dengan
aplikasi yang memanggilnya. Peran SOAP di dalam teknologi Web Service adalah sebagai protokol pemaketan untuk pesan-pesan yang digunakan secara bersama.
SOAP menjadi sangat mudah diterima oleh berbagai pihak, terutama oleh kalangan TI karena protokol ini memanfaatkan berbagai teknologi yang sudah ada dan
telah banyak digunakan. Misalnya untuk protokol transport, yang paling sering digunakan adalah HTTP, walaupun dimungkinkan untuk menggunakan protokol
transport lainnya. Sedangkan untuk format data, digunakan XML yang tidak diragukan lagi manfaat dan perannya di dalam pertukaran data.
SOAP menspesifikasikan secara jelas bagaimana cara untuk meng-encode header HTTP dan file XML sehingga program pada suatu komputer dapat memanggil
program pada pada komputer lain dan mengirimkan informasi, dan bagaimana program yang dipanggil memberikan tanggapan.
Sebuah pesan SOAP terdiri dari SOAP Envelop dan bisa terdiri dari Attachments atau tidak memiliki attachment. SOAP Envelop tersusun dari SOAP
Header dan SOAP Body. SOAP Attachment membolehkan data non-XML untuk dimasukkan ke dalam pesan SOAP.
Method-1 Method-2
… Method-n
APLIKASI SOAP Response XML
SOAP Request XML
Universitas Sumatera Utara
Gambar 2.5 Proses Perpesanan menggunakan SOAP
Sebuah pesan SOAP adalah sebuah dokumen XML yang berisi elemen-elemen berikut.
a. Elemen envelope mengidentifikasi dokumen XML sebagai sebuah pesan
SOAP. b.
Elemen header berisi informasi yang sifatnya tambahan dan opsional. c.
Elemen body berisi panggilan dan respon terhadap informasi yang dipertukarkan antara Web Service dan aplikasi.
d. Elemen fault berisi pesan kesalahan yang terjadi pada waktu proses. Elemen
ini bersifat opsional.
2.3.4.1 Manfaat SOAP
Adapun manfaat penggunaan SOAP dalam Web Service adalah sebagai berikut. 1.
Menggunakan SOAP melalui HTTP memberikan kemudahan komunikasi
melewati proxy dan firewall.
2. SOAP memungkinkan penggunaan protokol transpor yang berbeda.
3. SOAP adalah protokol independen.
4. SOAP adalah bahasa yang independen.
2.3.4.2 Kelemahan SOAP
SOAP memiliki beberapa kelemahan seperti berikut ini. 1.
SOAP lambat jika dibandingkan dengan teknologi middleware seperti CORBA. 2.
Kebanyakan penggunaan HTTP sebagai protokol transport digunakan dengan ketidaktahuan bagaimana operasi dapat dimodelkan dalam HTTP.
3. Walaupun SOAP merupakan standar terbuka, tidak semua bahasa menyediakan
layanan ini. JAVA, Delphi, .Net dan Flex menawarkan integrasi SOAP dengan layanan IDE dengan sangat baik. Sedangkan Python dan PHP memiliki layanan
yang lebih lemah.
Universitas Sumatera Utara
2.3.5 UDDI Universal Description, Discovery, and Integration
UDDI Universal Description, Discovery, and Integration adalah spesifikasi yang diakui secara luas untuk mendaftarkan suatu Web Service. UDDI mendefinisikan
metadata dan protokol yang digunakan untuk mengetahui dan mengubah informasi dari Web Service. Registri ini dapat digunakan untuk jaringan publik maupun dalam
sebuah infrastruktur internal organisasi.
UDDI menawarkan sebuah mekanisme berstandar untuk mengklasifikasi, mengkatalog, dan mengatur Web Services sehingga dapat ditemukan dan digunakan
oleh aplikasi lain. Dengan demikian, UDDI menawarkan beberapa manfaat penting bagi sebuah organisasi, yakni:
1. Mempublikasikan informasi tentang Web Service dan mengkategorisasikan aturan-
aturan yang spesifik pada sebuah perusahaan. 2.
Menemukan Web Service dalam sebuah organisasi atau dalam organisasi lain yang memenuhi kriteria yang diperlukan.
3. Menentukan protokol transport dan keamanan yang didukung oleh Web Service
dan parameter yang dibutuhkan untuk memanggil service. 4.
Menyediakan cara untuk melindungi aplikasi dan menyediakan routing intelijen dari kegagalan atau perubahan dalam service.
Dalam UDDI, penyimpanan dilakukan dalam tiga cara yaitu: 1.
Public UDDI, dianggap sebagai sumber resource bagi Web Service berbasis internet. Salah satu contohnya adalah UDDI Businnes Registry UBR yang terdiri
dari IBM, Micosoft, SAP. 2.
Intra Enterprise UDDI, merupakan tempat penyimpanan pribadi yang menyediakan service bagi kalangan internal suatu perusahaan.
3. Inter Enterprise UDDI, merupakan repository yang dapat diakses oleh perusahaan-
perusahaan yang merupakan rekanan bisnis.
Universitas Sumatera Utara
2.4 Cara Kerja Web Service