Bermula dari analisa kebutuhan dari para perusahaan yang saya coba tangani dalam pengerjaan IT Master Plan (IT Blue Print). Beberapa solusi (Target) terutama aspek Aristektur Sistem Informasi & Arsiktetur Teknologi, khsusunya bicara mengenai pendekatan TOGAF 9.1. Solusi yang digunakan untuk WEB SERVICE, dimana fungsi webservice ini adalah salah satunya adalah menyiasati pertukaran data dari beberapa platform. Hampir semua perusahaan saat ini tidak bisa menyelesaikan 1 masalah perusahaan cukup dengan 1 solusi aplikasi (misalkan ERP :SAP, Oracle, Microsoft Dynamic, dll), akan tetapi masih membutuhkan aplikasi-aplikasi lain untuk mengelola data bisnis perusahaan. Saat ini Web Service dalam pengembangannya sudah berkembang mulai dari Web 1.0, Web 2.0, Web 3.0, untuk detail pembahasannya rekan-rekan bisa melihat tulisan mengenai perbedaan masing-masing Web
SEBAGAI CONTOH : pada 1 Perusahaan menggunakan ERP (Enterprise Resources Planing ) dengan brand anggap “A” untuk seluruh bisnis, akan tetapi ada 1 Department/ bagian yang tidak bisa tercover dengan aplikasi ERP tersebut (disebabkan karena keterbatasan modul yang tidak tersedia), tetapi perusahaan tersebut memutuskan untuk menggunakan aplikasi tambahan yang dikerjakan secara customize (baik internal team maupun oleh konsultan/ outsource). Pada saat pelaksanaanya data tersebut dibutuhkan untuk bisa diakses (pertukaran data), atau dengan kata lain dihubungkan antara aplikasi customize dengan aplikasi ERP perusahaan. Salah satu solusinya adalah dengan menggunakan aplikasi Web Services.
Untuk pembahasan lebih lanjut, berikut saya coba jelaskan mengenai apa itu Web Service, kegunaannya untuk apa.
Web service menurut W3.org mendefinisikan web service sebagai “sebuah software aplikasi yang dapat teridentifikasi oleh URI dan memiliki interface yang didefiniskan, dideskripsikan, dan dimengerti oleh XML dan juga mendukung interaksi langsung dengan software aplikasi yang lain dengan menggunakan message berbasis XML melalui protokol internet”.
Web service adalah sebuah sofware aplikasi yang tidak terpengaruh oleh platform, ia akan menyediakan method-method yang dapat diakses oleh network. Ia juga akan menggunakan XML untuk pertukaran data, khususnya pada dua entities bisnis yang berbeda.
Definisi lain : Web service adalah sistem software yang dirancang untuk mendukung interopabilitas mesin-ke-mesin yang dapat berinteraksi melalui jaringan. Web service memiliki antarmuka yang dijelaskan dalam format mesin-processable (khusus WSDL). Sistem lain berinteraksi dengan Web service dalam cara ditentukan oleh deskripsi dengan menggunakan pesan SOAP, biasanya disampaikan menggunakan HTTP dengan serialisasi XML dalam hubungannya dengan Web lainnya yang terkait standar.
MANFAAT WEB SERVICE
- Dengan format XML yang telah menjadi salah satu standar pertukaran data, penggunaan web service akan banyak memudahkan untuk pertukaran data dalam berbagai sistem dengan berbeda platform. Apabila kita membuat web service dengan teknologi Java, maka fungsi-fungsi yang ada dalam web service tersebut dapat kita baca dengan menggunakan sistem lain yang berbeda sama sekali dari Java, misalkan menggunakan .Net ataupun PHP.
- Web service di support oleh pemain utama dalam dunia TI seperti Microsoft (NET), SUN (Open Net Environment – ONE), IBM (Web Service Conceptual Architecture – WSCA), W3C (Web Service Workshop), Oracle (Web Service Broker), Hewlett-Packard (Web Service Platform).
- Dalam penerapan N-tier, untuk layer bisnis atau apllication logic dapat diterapkan dengan web service, sehingga di sisi client kita tidak direpotkan dengan instalasi layer bisnis seperti halnya dll, corba, atau jenis yang lain. Dengan web service, method atau function yang telah kita buat dapat dipergunakan berulang kali bahkan untuk keperluan aplikasi yang berbeda (reusable function). Penerapan lebih jauh dari web service adalah Service Oriented Architecture (SOA) dengan web service sebagai dasarnya.
- Web service dibangun berdasarkan text base document dengan format XML, sehingga untuk komunikasi data relatif lebih ringan dibandingkan dengan aplikasi yang mengakses langsung database melalui suatu jaringan. Apabila kita menerapkan web service untuk aplikasi yang menggunakan desktop application based, kita tidak perlu melakukan instalasi konektor database seperti misalnya menggunakan ODBC, OLEDB, ataupun jenis data provider lain. Dengan jumlah client yang cukup banyak, tentunya akan sangat merepotkan apabila kita harus melakukan instalasi satu persatu untuk konektor database. Dengan menggunakan web service kita cukup menambahkan web service reference di client, sedangkan untuk koneksi databasenya hanya perlu dilakukan di server web servicenya.
- Komunikasi data melalui web service dilakukan melalui http atau Internet protocol terbuka lainnya. Hal ini sangat memudahkan karena protocol tersebut adalah protocol yang umum dipakai.
Dalam pengertian yang sederhana , XML Web Services dapat di definisikan sebagai aplikasi yang diakses oleh aplikasi yang lain. Mungkin orang berpendapat itu semacam web site, tetapi itu bukan demikian. Ada perbedaan – perbedaan yang membedakan dengan web site.
Web service sendiri dibentuk dari :
- Service provider, merupakan pemilik Web Service yang berfungsi menyediakan kumpulan operasi dari Web Service.
- Service requestor, merupakan aplikasi yang bertindak sebagai klien dari Web Service yang mencari dan memulai interaksi terhadap layanan yang disediakan.
- Service registry, merupakan tempat dimana Service provider mempublikasikan layanannya. Pada arsitektur Web Service, Service registry bersifat optional. Teknologi web service memungkinkan kita dapat menghubungkan berbagai jenis software yang memiliki platform dan sistem operasi yang berbeda.
Beberapa karakteristik dari web service adalah:
- Message-based
- Standards-based
- Programming language independent
- Platform-neutral
KEY STANDARD DALAM WEB SERVICE
Beberapa key standard didalam web service adalah: XML, SOAP, WSDL and UDDI.
SOAP (Simple Object Access Protocol) adalah sebuah XML-based mark-up language untuk pergantian pesan diantara aplikasi-aplikasi. SOAP berguna seperti sebuah amplop yang digunakan untuk pertukaran data object didalam network. SOAP mendefinisikan empat aspek didalam komunikasi: Message envelope, Encoding, RPC call convention, dan bagaimana menyatukan sebuah message didalam protokol transport.
Sebuah SOAP message terdiri dari SOAP Envelop dan bisa terdiri dari attachments atau tidak memiliki attachment. SOAP envelop tersusun dari SOAP header dan SOAP body, sedangkan SOAP attachment membolehkan non-XML data untuk dimasukkan kedalam SOAP message, di-encoded, dan diletakkan kedalam SOAP message dengan menggunakan MIME-multipart.
WSDL (Web Services Description Language) adalah sebuah XML-based language untuk mendeskripsikan XML. WSDL menyediakan service atau layanan yang mendeskripsikan service request dengan menggunakan protokol-protokol yang berbeda dan juga encoding. WSDL memfasilitasi komunikasi antar aplikasi. WSDL akan mendeskripsikan apa yang akan dilakukan oleh web service, bagaimana menemukannya dan bagaimana untuk mengoperasikannya.
Spesifikasi WSDL mendefinisikan tujuh tipe element:
- Types – element untuk mendefinisikan tipe data. Mereka akan mendefinisikan tipe data (seperti string atau integer) dari element didalam sebuah message.
- Message – abstract, pendefinisian tipe data yang akan dikomunikasikan.
- Operation – sebuah deskripsi abstract dari sebuah action yang didukung oleh service.
- Port Type – sebuah koleksi abstract dari operations yang didukung oleh lebih dari satu endpoints.
- Binding – mendefinisikan penyatuan dari tipe port (koleksi dari operasioperasi) menjadi sebuah protokol transport dan data format (ex. SOAP 1.1 pada HTTP). Ini adalah sebuah protokol konkret dan sebuah spesifikasi data format didalam tipe port tertentu.
- Port – mendefinisikan sebuah komunikasi endpoint sebagai kombinasi dari binding dan alamat network. Bagi protokol HTTP, sebuah bentuk dari URL sedangkan bagi protokol SMTP, ini adalah sebuah form dari email address.
- Service – satu set port yang terkorelasi atau suatu endpoints.
WSDL mendefinisikan service sebagai sebuah koleksi dari endpoints network. Sebuah definisi abstrak dari endpoints dan messages adalah ia bersifat terpisah dari pembangunan network atau penyatuan data format. Pembagian ini menyebabkan penggunaan kembali abstract description dari data yang akan dipertukarkan (message exchange) dan abstract collection dari operasi (ports) Protokol konkret dan spesfikasi data format bagi tipe port tertentu menentukan binding yang dapat digunakan kembali(reusable). Sebuah port adalah sebuah network address yang dikombinasikan reusable binding; sebuah service adalah koleksi dari port-port.
Sedangkan UDDI (Universal Description, Discovery and Integration) adalah sebuah service registry bagi pengalokasian web service. UDDI mengkombinasikan SOAP dan WSDL untuk pembentukan sebuah registry API bagi pendaftaran dan pengenalan service. Ia menyediakan sebuah area umum dimana sebuah organisasi dapat mengiklankan keberadaan mereka dan service yang diberikan (web service).
Semantik pada Web service adalah harapan bersama tentang perilaku layanan, khususnya dalam menanggapi pesan yang dikirim ke tujuan. Akibatnya, ini adalah “kontrak” antara entitas pemohon dan badan penyedia tentang tujuan dan konsekuensi dari interaksi. Meskipun kontrak ini merupakan keseluruhan perjanjian antara entitas penanya dan entitas penyedia tentang bagaimana dan mengapa masing-masing agen akan berinteraksi, itu belum tentu tertulis atau eksplisit dinegosiasikan. Ini mungkin eksplisit atau implisit, lisan atau tertulis, mesin processable atau manusia berorientasi, dan mungkin suatu perjanjian hukum atau kesepakatan informal (non-hukum).
Ada banyak cara bahwa entitas penanya mungkin terlibat dan menggunakan Web service. Secara umum, langkah-langkah yang luas berikut yang diperlukan, seperti yang diilustrasikan pada Gambar 1. (1) pemohon dan penyedia entitas menjadi dikenal satu sama lain (atau setidaknya satu menjadi tahu untuk yang lain); (2) peminta dan penyedia entitas entah bagaimana setuju pada deskripsi layanan dan semantik yang akan mengatur interaksi antara pemohon dan agen penyedia; (3) deskripsi layanan dan semantik direalisasikan oleh pemohon dan agen penyedia, dan (4) pemohon dan agen penyedia bertukar pesan, sehingga melakukan beberapa tugas atas nama pemohon dan badan penyedia. (Ie, pertukaran pesan dengan agen penyedia merupakan wujud nyata dari berinteraksi dengan layanan Web penyedia entitas.)
Gambar 1. Proses Umum Web Service
Arsitektur Web service melibatkan teknologi berlapis banyak dan saling terkait. Ada banyak cara untuk memvisualisasikan teknologi ini, seperti halnya ada banyak cara untuk membangun dan menggunakan Web service. Gambar 2 di bawah ini memberikan sebuah ilustrasi dari beberapa keluarga teknologi.
Gambar 2. Arsitektur Web Service
KEAMANAN DALAM WEB SERVICES
- Authentication : menggunakan Public Key Infrastructure, atau active directory
- Authorization : membatasi hak control akses terhadap data
- Confidentiality : melakukan enkripsi pada isi message
- Data Integrity : menerapkan Secure Security Layer/SSL pada saat proses komunikasi data dalam jaringan
- Non-Repudiation : menggunakan teknologi digital signature dan timestamping dan menerapkan audit log dalam setiap transaksi.