Komponen Web Service Web Service Sebagai Metode Penghubung Antaraplikasi Komputer Dengan Bahasa Pemrograman Yang Berbeda

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