PERBANDINGAN ANTARA “BIG” WEB SERVICE DENGAN RESTFUL WEB SERVICE UNTUK INTEGRASI DATA BERFORMAT GML

Adi Nugroho1 dan Khabib Mustofa2 1 Fakultas Teknologi Informasi – Universitas Kristen Satya Wacana, Salatiga – Jawa Tengah & Mahasiswa program S3 Fakultas Matematika dan Ilmu Pengetahuan Alam – Universitas Gadjah Mada di Jogyakarta. 2 Fakultas Matematika dan Ilmu Pengetahuan Alam – Universitas Gadjah Mada, Jogyakarta.

ABSTRAK: Teknologi Java Web Service berbasis SOAP (JAX-WS/Java API for XML Web Service) dan Java RESTful Web Service (JAX-RS/Java API for XML RESTful Web Service) saat ini merupakan teknologi yang saling bersaing satu sama lain dalam hal penggunaannya untuk mengintegrasikan data yang berada di berbagai sistem yang memiliki baik platform perangkat keras maupun perangkat lunak (sistem operasi) yang berbeda. Kedua teknologi Web Service itu tentu saja memiliki kekurangan dan kelebihannya masing-masing. Dalam tulisan ini, kami membahas perbandingan kedua teknologi Java Web Service itu dalam kaitannya dengan pengembangan aplikasi SIG (Sistem Informasi Geografis) terintegrasi yang menggunakan data berformat GML (Geography Markup Language), yang disimpan di dalam sistem basisdata XML (eXtensible Markup Language).

Kata kunci: Web service, GIS, integrasi data spasial, “Big” web service, RESTful web service, java web service

ABSTRACT: Web Service with Java: SOAP (JAX-WS/Java API for XML Web Services) and Java RESTful Web Service (JAX-RS/Java RESTful API for XML Web Services) are now a technology competing with each other in terms of their use for integrates data residing in different systems. Both Web Service technologies, of course, have advantages and disadvantages. In this paper, we discuss the comparison of the two technologies is a Java Web Service in relation to the development of GIS application (Geographic Information System) integrates the use of data-formatted GML (Geography Markup Language), which is stored in the system database XML (eXtensible Markup Language).

Keywords: Web service, GIS, integration of spatial data, “Big” web service, RESTful web service, java web service

PENDAHULUAN para pengembang seringkali juga membutuhkan data spasial dari berbagai sumber, baik dari sistem basis Para pengembang aplikasi Geographical data relasional maupun dari sistem basis data XML Information System/Sistem Informasi Geografis (SIG) (Native XML Database) yang mampu menyimpan saat ini memiliki 2 alternatif untuk sistem basisdata data dalam format GML. Dalam hal ini, jika yang akan digunakannya, yaitu menggunakan sistem- pengembang aplikasi SIG menggunakan bahasa sistem basisdata relasional yang mampu menyimpan pemrograman Java, saat ini mereka memiliki 2 data berformat spasial di kolom-kolom di dalam pilihan untuk melakukan integrasi data spasial itu, tabelnya (XML Enabled Database), misalnya Oracle yaitu menggunakan teknologi Java Web Service 10g, SQL Server 2008, PostgreSQL 9, dan berbasis Simple Object Access Protocol (SOAP) sebagainya, atau menggunakan sistem basisdata (sering disebut sebagai “Big” Web Service), atau Native XML Database (XML), misalnya Oracle menggunakan REST (REpresentational State Trans- Berkeley DB XML, eXist, BaseX, MonetDB/ fer) Web Service (sering disebut sebagai RESTful XQuery, EMC xDB, Sedna, dan sebagainya, untuk Web Service) [12]. Kedua teknologi Web Service ini menyimpan data spasial dalam bentuk/format data tentu saja memiliki keunggulan dan kelemahannya Geography Markup Language (GML) [13, 20]. masing-masing saat bekerja dengan data spasial Dalam hal ini, GML yang didefinisikan oleh Open berformat GML [11, 12, 14]. Tujuan tulisan ini pada Geospatial Consortium, Inc., sesungguhnya merupa- dasarnya adalah melakukan perbandingan secara kan suatu „kosa kata‟ lain dari XML eXtensible teknis terhadap kedua teknologi Java Web Service ini Markup Language (XML) yang memang saat keduanya bekerja untuk data spasial berformat dikhususkan untuk menyimpan data spasial [4, 18]. GML yang disimpan dalam sistem basis data XML. Saat mengembangkan aplikasi-aplikasi SIG Dalam hal ini, sebagai batasan permasalahan, kami terintegrasi (misalnya aplikasi-aplikasi SIG yang tidak akan melakukan pembahasan teknis terhadap berjalan di lingkup jaringan komputer atau Internet), sistem basisdata relasional konvensional (meskipun

8 Nugroho, Perbandingan Antara “BIG” Web Service Dengan Restful Web Service 9 beberapa sistem basisdata relasional terkemuka saat penafsiran GML Schema [10, 13, 18]. Secara umum, ini mampu menyimpan data spasial di dalam kolom- spesifikasi GML bersifat cukup terbuka serta bersifat kolomnya). lintas-platform, sehingga sangat layak untuk digunakan sebagai sarana pertukaran data spasial GML melintas berbagai SIG yang sangat beragam jumlahnya di dunia ini [7]. Geographic Markup Language (GML), yang saat ini sering digunakan oleh SIG-SIG dan telah e4 dibakukan oleh Open Geospatial Consortium, Inc., sesungguhnya adalah suatu berkas eXtensible Markup Language (XML) yang khusus dikembangkan untuk menyimpan data spasial [7]. GML sesungguhnya n4 merupakan sebuah „kosa kata‟ XML yang ditulis dalam bentuk XML Schema khusus yang digunakan untuk memodelkan, mentransportasikan, dan me- e3 nyimpan data spasial dan informasi geografis yang terkait [7]. GML memiliki sejumlah besar objek untuk mendeskripsikan objek-objek geografis, termasuk di dalamnya fitur-fitur, sistem-sistem koor- dinat rujukan, bentuk-bentuk geometri, topologi, e1 e2 n1 n2 n3 waktu, unit-unit pengukuran, dan nilai-nilai yang bersifat umum (misalnya warna, suhu, dan sebagai- Gambar 1. Jaringan Sederhana nya) [7]. Dalam hal ini, suatu fitur geografis se- sungguhnya merupakan “suatu abstraksi dari Untuk memperlihatkan bagaimana GML dapat fenomena yang memang hadir di dunia nyata, dan ia digunakan untuk mendeskripsikan data spasial/ merupakan suatu fitur geografis jika ia berhubungan geografis, kita melihat contoh penerapannya berikut secara langsung dengan suatu lokasi tertentu di ini. Gambar 1 merepresentasikan rekonstruksi simpul permukaan bumi” [7, 10]. Dengan demikian, repre- (node) dan garis (edge) yang, sebagai contoh saja, sentasi digital dari dunia nyata sesungguhnya dapat dipikirkan sebagai sejumlah fitur-fitur geografis. secara sederhana menggambarkan rute pember- Dalam hal ini, suatu fitur geografis sesungguhnya hentian bus di suatu jaringan jalan raya. Simpul- dapat didefinisikan menggunakan sejumlah properti, simpul, demi kemudahan, dianggap tidak memiliki dimana masing-masing properti dapat dipikirkan struktur internal di dalamnya. Sementara itu, garis- sebagai suatu kesatuan nama (name), jenis (type), dan garis memiliki simpul awal (yang memiliki nilai nilai (value) [10]. Fitur-fitur geografis dalam GML negatif) dan simpul akhir (yang memiliki nilai positif) mencakup di dalamnya tutupan (coverage) dan nilai- yang dideskripsikan sebagai pasangan properti-pro- nilai observasi langsung di lapangan sebagai subtype- perti simpul berarah, yang selanjutnya akan mem- nya. Suatu tutupan (coverage) dapat merepresentasi- bentuk batasan garis yang bersangkutan. Dengan data kan suatu fitur atau sejumlah fitur yang digunakan diatas, kita bisa memberikan pertanyaan-pertanyaan untuk “memodelkan dan memperlihatkan hubungan- yang berkaitan dengan “bagaimana urutan garis-garis hubungan spasial dan sebaran spasial di antara yang diperlukan untuk melakukan pergerakan dari fenomena-fenomena yang ada di permukaan bumi” suatu simpul ke simpul yang lainnya?” Sebagai [10]. contoh, pergerakan dari n1 ke n3 akan memiliki Saat pengembang aplikasi SIG akan mengguna- urutan {+e1, +e2}, dan dari n3 ke n4 memiliki urutan kan data berformat GML untuk aplikasi SIG-nya, {-e2, +e3}. Dalam hal ini, perhatikanlah bahwa kita mereka harus terlebih dahulu memiliki dokumen dapat merujuk garis-garis dalam 2 arah. Karena suatu GML Schema (suatu bentuk khusus dari XML garis pada dasarnya memiliki arah yang bersifat Schema yang biasanya berekstensi xsd) yang berguna implisit (sebagai contoh, e1 dapat dikatakan berarah untuk mendefinisikan tipe-tipe data dan juga mendefinisikan elemen-elemen XML yang ber- dari n1 ke n2), garis itu dapat dilintasi baik pada arah hubungan langsung dengan objek-objek GML yang itu maupun pada arah sebaliknya. Dengan demikian, - kelak akan dibuat. GML Schema ini bisa dibuat e1 dapat dikatakan bergerak dari n2 ke n1. dengan memanfaatkan spesifikasi yang dikeluarkan Jika kita melihat jaringan sederhana (simple oleh Open Geospatial Consortium Inc. [7]. Sementara network) seperti yang diperlihatkan Gambar 1, maka itu, dokumen-dokumen GML yang menyimpan sesungguhnya kita dapat merepresentasikannya dalam informasi geografis, yang sering juga disebut sebagai bentuk simpleNetwork. berikut, yang ditulis XML Instance Document (yang biasanya berekstensi menggunakan spesifikasi yang telah dikenal oleh xml), selanjutnya bisa dikembangkan dengan basis GML [7].

10 JURNAL INFORMATIKA VOL. 11, NO. 1, MEI 2012: 8-16

kan suatu peta jalan sesungguhnya yang memang API for Java adalah salah satu API dalam bahasa Java yang berpadanan dengan SQL, hanya saja alih-alih Berkas GML di atas adalah representasi jaringan melakukan query pada tabel relasional, XQuery sederhana (simple network) dalam bentuk XML bekerja dengan cara melakukan query atas berkas- seperti yang diperlihatkan dalam Gambar 1. Doku- berkas berformat XML [17].) Dalam hal ini, saat kita mentasi spesifikasi GML yang diluncurkan oleh Open akan menyimpan dokumen XML/GML di BDB Geospatial Consortium, Inc. tentunya mendeskripsi- XML, pertama kali kita harus membuat pemuat kan sintak-sintak untuk objek-objek yang jauh lebih (container) menggunakan perintah XQuery create kompleks dari yang diperlihatkan dalam jaringan Container(), dan selanjutnya kita menyimpan sederhana di atas [7, 10]. Selain itu, simpul-simpul dokumen XML/GML di dalamnya menggunakan (node) yang ada mungkin saja dikembangkan lebih perintah putDocument()dan hal ini dilakukan lanjut menjadi gambaran objek-objek kompleks yang lewat shell yang dimiliki BDB XML. Selanjutnya, sesungguhnya (misalnya stasiun pemberhentian bus setelah dokumen XML/GML berhasil disisipkan ke yang memiliki banyak objek lain di dalamnya), yang dalam pemuat, kita kemudian bisa melakukan query menggambarkan fakta yang ada di dunia nyata. Garis- terhadap berkas XML/GML yang disimpan dalam garis (edge) mungkin juga dikembangkan lebih lanjut pemuat tersebut menggunakan perintah-perintah menjadi garis-garis majemuk yang juga menggambar- XQuery. Dalam hal ini, tentu saja perintah-perintah

Nugroho, Perbandingan Antara “BIG” Web Service Dengan Restful Web Service 11

XQuery sesungguhnya cukup kompleks, sesuai document.setContent("Road") [17]. Meskipun demikian, dalam tulisan ini, kami container.updateDocument(document, hanya membahas operasi CRUD (Create-Read/ manager.createUpdateContext()) Retrieve-Update-Delete) terhadap sistem basisdata Dalam hal ini, penghapusan isi dokumen XML BDB XML yang bersifat mendasar saja. Dalam hal juga dapat dilakukan menggunakan metode update ini, alih-alih bekerja langsung melakukan query Document()dengan parameter kosong. Meski demi- XQuery menggunakan shell BDB XML, demi kian, metode updateDocument() lebih sering menghindari kerumitan-kerumitannya, kami melaku- digunakan saat bagian suatu dokumen XML -isi atau kannya dari arah aplikasi yang ditulis menggunakan metadata- diperbaharui (seperti yang kita lakukan di bahasa pemrograman Java. atas). Berkaitan dengan hal ini, jika kita mau BDB XML bekerja atas dokumen XML meng- menghapus suatu dokumen XML dari suatu pemuat, gunakan kelas XmlDocument, meski demikian di kita, sebagai alternatif, kita juga bisa menggunakan belakang layar, BDB XML sesungguhnya mengguna- metode deleteDocument(), seperti yang terlihat kan API Xerces DOM (Document Object Model) untuk pada contoh kode-kode bahasa Java di bawah ini. menyimpan dan memanipulasi dokumen-dokumen container = XML [5, 11]. Seperti yang telah diperlihatkan manager.openContainer("TEST") sebelumnya, dokumen XML dapat ditambahkan ke updateContext = pemuat menggunakan metoda Xml Container. manager.createUpdateContext() putDocument()[5]. Saat dokumen XML dibuat document = container.getDocument("simpleNetwork") XmlDocument menggunakan kelas yang berbasis container.deleteDocument(document, bahasa Java, alih-alih bekerja menggunakan shell updateContext) BDB XML, pembuatannya bisa dilakukan meng- gunakan kode-kode Java di bawah ini. Terlihat dari kode-kode Java di atas, pada document = manager.createDocument() prinsipnya kita, pada sistem basis data XML, melaku- document.setName('simpleNetwork') kan akses lebih langsung pada berkas XML, alih-alih document.setContent("") container.putDocument(document, terjadi pada sistem basis data relasional. Itulah manager.createUpdateContext()) sebabnya penggunaan sistem basis data XML untuk Selanjutnya, kita membahas operasi pembacaan aplikasi-aplikasi SIG memiliki kinerja yang relatif dokumen XML dari pemuat (container). Dalam hal lebih baik (lebih cepat) daripada penggunaan sistem ini, pada objek XmlResults yang dihasilkan dari basisdata relasional konvensional [5, 20]. Selain itu, XmlManager.Query()sebelumnya dapat dilaku- jaminan kinerja sistem basisdata XML juga terjadi kan iterasi (looping) untuk melihat isi dokumen XML akibat dari tidak diperlukannya konversi dari data yang telah dibuat sebelumnya. Adapun kode dalam yang ada pada kolom (field) tabel relasional menjadi bahasa Java-nya adalah sebagai berikut. data berformat XML/GML seperti yang terjadi saat container = pengembang aplikasi SIG menggunakan sistem manager.openContainer("TEST") basisdata relasional konvensional [2, 5, 20]. results = Seperti dapat kita lihat diatas, operasi-operasi manager.query("collection(‘TEST')/Word", CRUD pada sistem basis data XML, dapat dilakukan manager.createQueryContext()) menggunakan API XQuery, baik menggunakan shell for value in results: BDB XML, atau dari arah aplikasi yang dibuat document = value.asDocument() menggunakan bahasa pemrograman Java. Tantangan print document.getName() selanjutnya, adalah bagaimana caranya operasi CRUD print document.getContent() itu dapat dilakukan dalam konteks Web Service sebab Adapun pembaharuan (updation) isi dokumen tujuan kita sesungguhnya adalah melakukan per- XML yang ada di pemuat juga dapat dilakukan bandingan-perbandingan aplikasi SIG terintegrasi dengan cara yang relatif sederhana dengan meng- yang menggunakan sistem basis data XML di dalam gunakan metode setContent() dan update konteks Java Web Service. Document()seperti terlihat dalam kode-kode Java berikut ini. JAVA WEB SERVICE container = manager.openContainer("TEST") Web Service sesungguhnya merupakan suatu document = perangkat lunak/aplikasi yang menyediakan layanan container.getDocument("simpleNetwork") (service) bagi aplikasi-aplikasi lainnya (aplikasi klien)

12 JURNAL INFORMATIKA VOL. 11, NO. 1, MEI 2012: 8-16 dan mengikuti aturan yang selama ini didefinisikan kan/memanfaatkan teknologi “Big” Web Service oleh Web Service Interoperability Organization sering dinamakan sebagai SOA (Service Oriented (WSIO) [8, 15]. Web Service memungkinkan dikem- Architecture) [11]. bangkannya suatu aplikasi yang memanfaatkan layan- an (aplikasi klien) yang disediakan oleh penyedia layanan (server), tanpa aplikasi yang bersangkutan SISTEM INFORMASI GEOGRAFIS terlalu perlu peduli pada platform perangkat keras dan TERINTEGRASI perangkat lunak (sistem operasi) tempat layanan dikembangkan [8, 15]. Baik server layanan maupun G kliennya dapat saling berkomunikasi menggunakan M protokol HTTP (HyperText Transport Protocol) [8, L 15]. Dalam konteks penggunaan protokol transpor HTTP ini, pendekatan Web Service dalam konteks JAVA WEB SERVICE bahasa pemrograman Java sering dikategorikan meng- gunakan 2 hal yang berkaitan dengan pesan (message) X X yang dikirimkan, yaitu: SOAP over HTTP (“Big” M M L Web Service) serta POX-HTTP (Plain Old XML over L HTTP) (RESTful Web Service) [11]. Saat kita membicarakan Web Service dalam SISTEM BASIS SISTEM BASIS konteks bahasa pemrograman Java, pembahasan kita DATA XML DATA XML tentang XQuery di bagian sebelumnya menjadi sangat relevan. Operasi-operasi CRUD yang dilakukan atas dokumen-dokumen XML, menggunakan teknik- Gambar 2. Arsitektur Sistem Informasi Geografis Ter- teknik tertentu yang akan kita bahas selanjutnya, bisa integrasi dengan Basis Data XML langsung dipetakan menjadi operasi-operasi CRUD yang berpadanan dalam konteks Java Web Service. RESTful Web Service (JAX-RS/Java API for Meski demikian, sebelum kita membahas operasi- XML RESTful Web Service) yang diprakarsai oleh operasi XQuery dalam konteks Java Web Service, Roy Fielding dalam disertasinya di Universitas terlebih dahulu kita akan membahas tentang Web California (2000) [15], pada dasarnya menggunakan Service itu sendiri dalam konteks bahasa pemro- metode operasional yang sederhana, yang dimiliki graman Java karena sesungguhnya Web Service tidak oleh protokol HTTP, untuk saling berkomunikasi. hanya dikenal dalam konteks bahasa pemrograman Pada umumnya API (Application Programming Java. Teknologi Microsoft .NET misalnya, juga Interface) RESTfull Web Service menggunakan memiliki teknologi .NET Web Service yang berman- metoda-metoda standar HTTP itu sebagai parameter- faat untuk mengintegrasikan aplikasi-aplikasi yang parameter untuk URL (Uniform Resource Locator) memiliki platform dasar .NET (terutama yang yang dikirimkan klien ke server RESTful Web masing-masing berjalan di atas sistem operasi Service [15]. Dalam hal arsitektur sistem, sistem yang Windows) [3]. menggunakan/memanfaatkan teknologi RESTful Web Implementasi Web Service pada Java EE 6 (dan Service sering dinamakan sebagai ROA (Resource yang terbaru saat ini Java EE 7) menggunakan Oriented Architecture) [11]. Saat meng- teknologi JAX-WS (Java API for XML Web Service) implementasikan RESTful Web Service, saat ini para sering dinamakan sebagai “Big” Web Service. “Big” pengembang pada umumnya mengimplementasikan Web Service selalu menggunakan berkas-berkas Project Jersey, sebuah implementasi „kode terbuka‟ XML yang mengikuti standar SOAP sebagai sarana (open source) dari JAX-RS, yang juga termuat dalam dan format pertukaran pesan (message) antar sistem. spesifikasi pada Java EE 6 (dan yang terbaru saat ini Dalam hal ini, jika “Big” Web Service menggunakan Java EE 7) [12]. Dalam hal ini, JAX-RS mendefinisi- berkas-berkas SOAP sebagai sarana pertukaran kan 4 anotasi umum yang dapat secara langsung pesannya, “Big” Web Service juga menggunakan dipetakan ke operasi-operasi HTTP yang bersifat berkas XML lain yang disebut sebagai WSDL (Web spesifik, yang memiliki padanannya dengan operasi- Services Description Language) sebagai sarana bagi operasi CRUD yang terdapat di sistem basis data “Big” Web Service yang bersangkutan untuk men- XML yang digunakan. Operasi-operasi HTTP dan definisikan layanan-layanan (services) yang dimiliki- padanannya dengan operasi CRUD itu adalah sebagai nya sedemikian rupa sehingga kelak dapat diakses berikut [12]. dengan mudah oleh klien-kliennya [1, 9, 11]. Dalam - javax.ws.rs.POST (aksi CREATE) hal arsitektur sistem, sistem yang mengguna- - javax.ws.rs.GET (aksi READ)

Nugroho, Perbandingan Antara “BIG” Web Service Dengan Restful Web Service 13

- javax.ws.rs.PUT (aksi UPDATE) dari sistem basis data XML yang kita gunakan [8]. - javax.ws.rs.DELETE (aksi DELETE) Alternatif lainnya, kita bisa menggunakan XSLT (eXtensible Stylesheet Language Transformation) [3], Dalam hal visualisasi di aras aplikasi SIG, yang merupakan suatu API dalam bahasa pemro- perhatikan Gambar 2, kita bisa langsung mem- graman Java yang dapat melakukan transformasi visualisasikan data berformat GML itu, karena saat ini dokumen GML menjadi dokumen SOAP, asalkan ada beberapa penampil data GML yang mampu kita menyediakan/memliki XSLT-Stylesheet-nya [8]. melakukannya dengan baik (misalnya GML Viewer). Pada lapisan Web Service, pesan-pesan SOAP yang Meski demikian, ini bukan satu-satunya alternatif. berasal dari berbagai sistem basis data XML dapat Alternatif lainnya, kita bisa menampilkan data ber- diintegrasikan dan kemudian diuraikan kembali format GML tersebut dengan terlebih dahulu men- menjadi data berformat GML menggunakan beberapa transformasinya ke bentuk SVG (Scalable Vector parser bahasa Java yang tersedia saat ini, misalnya Graphics), karena format SVG ini saat ini dikenali JAXP (Java API for XML Processing), SAX (Simple oleh berbagai perambah (browser) yang terkemuka API for XML Processing), JAXP (Java API for XML saat ini, misalnya Internet Explorer, Opera, dan Processing Transformation), JAXB (Java API for Mozzila Firefox. Meski demikian, jika alternatif XML Binding), DOM (Document Object Model), dan terakhir ini yang pengembang aplikasi SIG ambil, ada sebagainya, untuk keperluan visualisasi [8]. Data pekerjaan tambahan yang perlu dilakukan, yaitu GML yang dihasilkan melalui proses integrasi itu mentransformasi data berformat GML yang dihasil- selanjutnya dapat divisualisasikan dalam bentuk apli- kan dari lapisan Web Service menjadi data berformat kasi SIG terintegrasi [19]. SVG, dimana secara teknis hal ini dapat dilakukan Dalam hal ini, tentu ada suatu permasalahan dengan bantuan prosesor XSLT (eXtensible Stylesheet tambahan, yaitu bagaimana caranya pesan SOAP Language Transformation). Dalam hal ini, API XSLT yang berasal dari berbagai sistem basis data XML itu ini sudah terintegrasi dengan Java EE 6/7, dan dapat diintegrasikan dan kemudian dapat dikenali pengembang aplikasi SIG bisa memanfaatkannya, oleh aplikasi? Hal ini dapat dilakukan menggunakan setelah mereka berhasil mengembangkan XSLT- berkas XML lain yang sering dinamakan sebagai Web Stylesheet-nya [8]. Service Description Language (WSDL) [8]. WSDL mendefinisikan antarmuka layanan (service interface) Aplikasi SIG Terintegrasi yang Dikembangkan secara sintak yang bersifat abstraktif. Port-type yang Menggunakan “Big” Web Service ada dalam WSDL memuat operasi-operasi abtrak, yang berhubungan dengan pesan-pesan yang masuk Saat pengembang aplikasi SIG akan mengguna- dan yang keluar. Binding yang ada pada WSDL kan/memanfaatkan layanan (service) “Big” Web selanjutnya akan mengaitkan sejumlah operasi abstrak Service, karena “Big” Web Service memiliki standar yang ada dalam berkas WSDL dengan protokol pesan SOAP (Simple Object Access Protocol), maka transpor dan format serialisasi yang sesungguhnya. data berformat GML yang ada di basis data XML Dalam hal ini, kita umumnya menganggap binding terlebih dahulu harus diubah dulu ke format SOAP, dilakukan di atas protokol HTTP (SOAP over HTTP), yang memiliki elemen XML peringkat teratas tetapi jika kita mau, sesungguhnya bukan hal yang (envelope) dan yang memuat di dalamnya elemen- tidak mungkin saat kita menggunakan protokol- elemen header dan body [12]. Program Java protokol lain selain HTTP. yang pengembang aplikasi SIG buat harus mampu menyusun/merakit pesan SOAP yang berisi data Aplikasi SIG Terintegrasi yang Dikembangkan berformat GML, dimana dalam hal ini XML Schema Menggunakan RESTful Web Service bisa digunakan untuk mendeskripsikan struktur internal pesan SOAP itu. Untuk melakukan hal ini, REST (REpresentational State Transfer) sejak pada aras rendah, pengembang aplikasi SIG bisa awal memang memang diperkenalkan sebagai arsi- melakukannya dengan membuat suatu lapisan tektur sistem untuk mengembangkan sistem/aplikasi program kecil (adapter) yang memanfaatkan API hypermedia yang berskala besar, yang digunakan SAAJ (Simple Object Access Protocol with Attach- terutama berbasis pada protokol HTTP [1, 9, 14]. ments API for Java), yang memiliki antarmuka DOM Arsitektur REST (POX-HTTP/Plain Old XML over (Document Object Model) Node, yang merupakan HTTP) sesungguhnya berbasis pada 4 hal yang kelas dasar dari semua kelas dan antarmuka bersifat mendasar, yaitu [1, 9, 14]: (interface) yang ada di dalam pesan-pesan SOAP [8]. 1. Identifikasi sumberdaya menggunakan URL Menggunakan API SAAJ, seperti sesuai dengan (Uniform Resource Locator). peringkatnya yaitu berada di aras rendah, kita bisa 2. Antarmuka yang seragam, yaitu PUT, GET,POST, „merakit‟ pesan SOAP dari data GML yang berasal dan DELETE.

14 JURNAL INFORMATIKA VOL. 11, NO. 1, MEI 2012: 8-16

3. Pesan-pesan yang bersifat deskriptif. Sumber- menggunakan RESTful Web Service, kita sesungguh- sumber daya yang diperlukan oleh aplikasi SIG nya bisa langsung melakukan pemetaan operasi- dipisahkan dari bagaimana caranya kelak mereka operasi CRUD XQuery untuk sistem basisdata XML akan dipresentasikan sehingga isinya mungkin itu ke operasi-operasi CRUD yang berpadanan pada berupa data yang memiliki format beragam RESTful Web Service. Selain itu, untuk melakukan (misalnya HTML, XML, GML, PDF, JPEG, integrasi atas data GML yang berasal dari beberapa TIFF, dan sebagainya). sistem basis data XML yang ada, kita bisa melaku- 4. Interaksi di dalam aplikasi SIG dilakukan melalui kannya dengan menggunakan URL untuk masing- hyperlink. masing sistem basis data XML itu. Setelah data GML itu diintegrasikan, selanjutnya pengembang aplikasi Dengan kata lain, saat kita melakukan integrasi SIG bisa menvisualisasikannya ke dalam bentuk aplikasi SIG atas berbagai sistem basisdata XML aplikasi SIG terintegrasi [19].

Jenis Web Kelebihan Kekurangan Service “Big” Web 1. “Big” Web Service yang menggunakan standar 1. Permasalahan yang berkaitan dengan Service pesan SOAP dan standar antarmuka layanan interoperabilitas dapat terjadi dalam WSDL relatif rumit dalam hal pemrogramannya. kaitannya dengan adanya berbagai tipe Meski demikian, keduanya saat ini telah diterima data yang ada di sisi server layanan dan secara luas di seluruh dunia. penggunaannya di sisi klien. 2. Pesan SOAP tidak melulu dapat menggunakan 2. Konversi/transformasi antarberbagai protokol HTTP, tetapi juga dapat dikirimkan bentuk berkas XML, jika dilakukan menggunakan berbagai sistem middleware yang dengan sangat intensif, dapat ada saat ini. menimbulkan permasalahan- 3. Penggunaan WSDL untuk mendeskripsikan permasalahan yang berkaitan dengan antarmuka pesan menyembunyikan rincian kinerja sistem. protokol komunikasi, rincian serialisasi, serta 3. XML Schema adalah berkas yang sangat platform implementasi layanan (sistem operasi kompleks sehingga sukar bagi dan bahasa pemrograman) yang ada di pengembang untuk mengidentifikasi bawahnya, sehingga klien Web Service tidak konstruksi yang mendukung penuh perlu mengetahui bagaimana sesungguhnya implementasi SOAP dan WSDL. layanan yang diperlukannya diimplementasikan. 4. Teknologi SOAP dan WSDL telah matang sehingga saat ini banyak tool yang dapat digunakan untuk mengotomatisasi pembentukannya. Beberapa IDE (Integrated Development Environment) bahasa Java yang ada saat ini, misalnya Netbeans, Oracle JDeveloper, atau Eclipse bisa menyembunyikan rincian pembentukan SOAP dan WSDL dan sekaligus mengotomatisasi pembentukannya. RESTful Web 1. Implementasi RESTful Web Service relatif 1. Struktur data yang sangat kompleks sukar Service sederhana dalam hal pemrogramannya karena diadaptasi ke dalam URL. menggunakan standar-standar yang telah 2. Implementasi dan kinerjanya sangat diterima secara luas (HTTP, XML, dan URL). bergantung pada kapasitas jaringan yang 2. Server dan klien HTTP dikenali oleh sebagian digunakan. besar bahasa pemrograman dan hampir semua platform perangkat keras/perangkat lunak yang saat ini populer. 3. Pengembangan RESTful Web Service cukup sederhana dan mirip dengan pengembangan aplikasi Web pada umumnya. 4. Perbaikan/peningkatan kinerja sistem/aplikasi Web Service dimungkinkan dengan adanya mekanisme caching dalam protokol HTTP. 5. Navigasi di dalam aplikasi RESTful Web Service mudah dilakukan dengan mengikuti hyperlink.

Gambar 3. Perbandingan Implementasi “Big” Web Service dengan RESTful Web Service

Nugroho, Perbandingan Antara “BIG” Web Service Dengan Restful Web Service 15

PERBANDINGAN ANTARA “BIG” WEB memanfaatkan URL untuk masing-masing sumber SERVICE DENGAN RESTFUL WEB SERVICE data (sistem basis data XML yang berbeda) dan UNTUK INTEGRASI DATA BERFORMAT memetakan operasi-operasi CRUD XQuery pada GML sistem basis data XML dengan operasi-operasi padanannya di tingkat RESTful Web Service. Dalam Kita sudah singgung di bagian sebelumnya aplikasi SIG yang berukuran sangat besar, sesuai bahwa ada karateristik dasar yang membedakan dengan karakteristiknya masing-masing, baik “Big” implementasi Java Web Service menggunakan “Big” Web Service maupun RESTful Web Service mungkin Web Service dengan implementasinya menggunakan saja hadir bersamaan untuk membentuk aplikasi SIG terintegrasi yang utuh. RESTful Web Service [1, 2, 3, 4, 6, 8, 9, 14, 16, 19] saat pengembang aplikasi akan bekerja untuk suatu DAFTAR PUSTAKA aplikasi SIG terintegrasi. Perbedaan karakteristik ini tentunya akan menimbulkan implikasi yang berkaitan 1. Adamczyk, Adam, Patrick H. Smith, Ralph E. dengan kelebihan serta kelemahannya masing- Johnson, Munawar Hafiz. REST and Web Services: masing. In Theory and In Practice. https://netfiles.uiuc. Kelebihan dan kelemahan masing-masing im- edu/mhafiz/www/research/soaprest/ASJH10-REST. plementasi Java Web Service dapat kita lihat pada pdf. Diakses 15 Agustus 2011. Gambar 3. Kami tentunya tidak bisa mere- 2. Amirian, Pouria, Ali A. Alesheikh, 2008. komendasikan implementasi Java Web Service mana Publishing Geospatial Data through Geospatial yang lebih baik, karena hal-hal itu sangat bergantung Web Services and XML Database System. pada preferensi pengembang aplikasi SIG serta sangat American Journal of Applied Science 5 (10): bergantung pada sumberdaya manusia (analis sistem 1358-1368. ISSN 1546:9239. dan pemrogram) yang diperlukan untuk mengem- 3. Amirian, Pouria, Ali A. Alesheikh, 2008. A bangkan aplikasi SIG terintegrasi yang memanfaatkan Hybrid Architecture for Implementing Efficient sistem basis data XML. Kami hanya berusaha Geospatial Web Services: Integrating .NET memberikan pandangan-pandangan secara teknis, Remoting and Web Services Technologies. selanjutnya pengembang aplikasi SIG bisa memilih American Journal of Applied Science 5 (10): implementasi Java Web Service mana yang lebih 730-742. ISSN 1812:5654. sesuai. 4. Amirian, Pouria, Ali A. Alesheikh, 2008. Imple- mentation of a Geospatial Web service Using KESIMPULAN Web Services Technologies and Native XML Databases. Middle-East Journal of Scientific Tidak ada satu pun teknologi yang bersifat Research 3 (1): 36-48, 2008 ISSN 1990-9233m sempurna, yang selalu baik untuk setiap kasus yang © IDOSI Publications. ada. Demikian juga dengan implementasi Java Web 5. Brian, Danny, 2006. The Definitive to Berkeley Service untuk mengintegrasikan data berformat GML DB XML. Springer-Verlag, New York, USA. yang tersimpan di berbagai sistem basis data XML. 6. Choimeun, C., N. Phemujaya, S. Pomnackchim, Baik “Big” Web Service maupun RESTful Web C. Chantrapornchai, 2011. Using GIS Tool for Service memiliki kelebihan dan kelemahannya Presenting Spatial Data: Case Study Phatom masing-masing, sehingga pemilihannya sangat ber- Province. International Journal of u- and e- gantung pada preferensi pengembang aplikasi SIG. Service, Science and Technology Vol. 4, No. 2, Meskipun demikian, ada hal yang bersifat mendasar June, 2011. di antara keduanya. Saat pengembang aplikasi SIG 7. Cox, Simon, Paul Daisey, Ron Lake, Clemens menggunakan sistem basisdata XML untuk aplikasi Portele, Arliss Whiteside, 2005. OpenGIS Geo- SIG-nya, mereka pada dasarnya harus memetakan graphy Markup Language (GML) Encoding operasi CRUD yang difasilitasi menggunakan Spesification. Open Geospatial Consortium. XQuery terhadap operasi-operasi yang serupa di 8. Hewitt, Eben, 2009. Java SOA Cookbook. tingkat lapisan pengintegrasi (lapisan Web Service). O‟Reily Media, Inc., Sebastopol, USA. Integrasi itu sendiri, saat pengembang aplikasi SIG 9. Jucyte, Kristina, Karolis Kevelaitis, Sung Won memilih menggunakan “Big” Web Service, bisa Park, 2006. Web Service Implementations with dilakukan dengan cara memanfaatkan standar pesan SOAP and REST. RUC Datalogi, Module 2. SOAP serta memanfaatkan standar antarmuka layan- 10. Lu, Chang-Tien, Raimando do Santos Jr., Laksmi an WSDL. Jika pengembang aplikasi SIG memilih N. Sripada, Yufeng Kuo, 2007. Advances GML menggunakan RESTful Web Service, mereka bisa for Geospatial Applications. Geoinformatica (2007)

16 JURNAL INFORMATIKA VOL. 11, NO. 1, MEI 2012: 8-16

11:131–157 DOI 10.1007/s10707-006-0013-9. 14. Pautasso, Cesare, Olaf Zimmerman, Frank Published online: 18 January 2007 # Springer Leyman, 2008. RESTful Web Services v.s. Big Science + Business Media. Web Service: Making The Right Architectural 11. Mazzeti, P., S. Nativi, J. Caroon, 2009. RESTful Decision. WWW 2008/Refereed Track: Web Implementation of Geospatial Services for Earth Engineering - Web Service Deployment, Beijing, and Space Science Applications. International China. 15. Richardson, Leonard, Sam Ruby, 2007. RESTful Journal of Digital Earth, Vol. 2, Supplement 1, Web Service. O‟Reily Media, Inc., Sebastopol, 2009, 40-61. USA. 12. Nugroho, Adi. 2010. Implementasi Java Web 16. Deskripsi Data Services. http://www.xml.com/ Service Menggunakan “Big” Web Service dan pub/a/2007/10/25/data-sources-as-web-services. REST (REpresentational State Transfer) : Sebuah html. Diakses 17 Agustus 2011. Studi Perbandingan. Dipresentasikan di KNSI 17. Klasifikasi dan spesifikasi XQuery. http://www. (Konferensi Nasional Sistem Informasi) di xquery.com/standards/. Diakses 16 Agustus 2011. STMIK Potensi Utama, Medan, Indonesia. 18. Sumber data XML (XML Data Source). http:// 13. Nugroho, Adi, Sri Hartati, 2011. Pengukuran blog.infotoad.com/category/XML-and-Web- Kinerja Beberapa Sistem Basis Data Relasional Service-Data-Sources.aspx. Diakses 14 Agustus Dengan Kemampuan Menyimpan Data Ber- 2011. format GML (Geography Markup Language) 19. ______, 2007. Geoservices Service Oriented Yang Dapat Digunakan Untuk Mendasari Architecture. ESRI, New York, USA. 20. ______. Native Oracle XML DB Web Services Aplikasi-aplikasi Sistem Informasi Geografis. in Oracle 11g Release 1. http://www.oracle- Jurnal Teknik Informatika, Universitas Kristen base.com/articles/11g/NativeOracleXmlDbWebS Petra, Surabaya, Indonesia. ervices_11gR1.php. Diakses 17 Agustus 2011.