SOA & WEB SERVICE


Ketika membangun SOA (Service Oriented Architecture) mungkin kita akan bertemu dengan pernyataan bahwa kita tidak memerlukan web service untuk membangun SOA. Namun pernyataan ini akan diikuti pernyataan selanjutnya yang menyatakan bahwa memulai membangun SOA dengan menggunakan web service adalah awal yang baik.
Web Service dimulai dari konsep ringan yang kualitas layanan yang tinggi. Kebutuhan produksi dari berbagai segmen dan industri menuntut inovasi teknologi dan globalisasi ekonomi. Konsep ini terwujud dalam bentuk virtual enterprise (perusahaan virtual) . Kerjasama dengan berbagai perusahaan dan unit usaha dengan teknologi web mendukung konsep ini, salah satunya dengan web service.
Salah satu contoh kerjasama yang dapat kita lihat misalnya pada konsep toko online. Kita dapat memilih produk yang kita minati pada katalog produk toko tersebut. Jika transaksi pembayaran dimulai akan dibutuhkan data tentang jenis pembayaran yang kita pilih, misalnya kartu kredit. Informasi yang diperlukan dari kartu kredit dapat mencakup masa berlaku, minimal transaksi dan seterusnya. Pihak yang berwenang melakukan validasi transaksi adalah Bank yang menerbitkan kartu kredit. Dalam hal ini toko online dapat bekerjasama dengan beberapa bank dengan cara memanggil service yang disediakan oleh Bank untuk memeriksa dan melakukan validasi transaksi pembayaran dengan kartu kredit.
Selain sebagai bentuk kerjasama antar organisasi, service juga dapat dikembangkan di internal perusahaan. Masing-masing  area atau proses bisnis menyediakan modul service yang dapat diakses pihak lain untuk data tertentu yang dibutuhkan. Konsep kerjasama berorientasi servis ini yang menjadi landasan dibangunnya Service Oriented Architecture (SOA).   

Service Oriented Architecture (SOA) merupakan salah satu pendekatan untuk memenuhi standar kebutuhan dan kualitas dari pembangunan sebuah perangkat lunak (software). Prinsipnya, SOA “membungkus” fungsionalitas sebuah sistem ke dalam bentuk layanan-layanan. Dengan demikian, beragam aplikasi dengan platform yang berbeda-beda dapat saling terhubung dan melakukan pertukaran data tanpa harus terikat kuat satu sama lain (loosely coupled). SOA juga merupakan konsep arsitektur perangkat lunak yang memanfaatkan service yang telah dibuat pada jaringan sistem yang telah ada, contohnya ketika kita memanggil service  dari sebuah Bank untuk mengetahui nilai tukar rupiah yang berlaku pada saat itu. Konsep SOA  berupa komponen perangkat lunak yang dapat berdiri sendiri sehingga services yang ada dapat digunakan kembali untuk pengembangan perangkat lunak yang baru.
Seperti telah dijelaskan sebelumnya, untuk mengimplementasikan sebuah service, terdapat beberapa isu utama, yaitu bagaimana service berkomunikasi, bagaimana service didesain, dan bagaimana pesan/message antar service didefinisikan. Web service merupakan sebuah teknologi yang dapat memenuhi kebutuhan ini.
Bagaimana web service sebagai sebuah teknologi dapat memfasilitasi beberapa isu perancangan tersebut dapat dijelaskan sebagai berikut :
  • Sebuah service dalam SOA adalah sebuah aplikasi web service. Pada dasarnya sebuah service dalam SOA adalah sebuah aplikasi yang merepresentasikan sebuah business logic atau automation logic dari sebuah proses sistem besar yang mencakupinya. Tuntutan dari sistem ini adalah dia harus bisa berdiri sendiri dan bisa berkomunikasi satu sama lain. Hal ini sudah dimilki oleh sebuah aplikasi web service. Maka dari itu, implementasi service dalam SOA merupakan aplikasi web service.
  • Hubungan satu service dengan yang lainnya didefinisikan dengan Web Service Description Language (WSDL). WSDL mendeskripsikan bagaimana format sebuah pesan yang akan dikirim oleh sebuah aplikasi web service harus ditulis, agar dapat dimengerti oleh aplikasi web service lainnya yang menerima. Dalam sudut pandang SOA, yang menggunakan web service serbagai service, teknologi WSDL ini menjadi jembatan untuk menghubungkan sebuah service ke service lainnya. 
  •  Service berkomunikasi satu sama lain menggunakan SOA messaging. Kebutuhan untuk saling berkirim pesan dalam SOA merupakan hal yang paling penting. Untuk teknologi pengiriman pesan, kita dapat menggunakan SOAP. Hal ini dikarenakan SOAP fleksibel dan dapat dikembangkan lebih jauh.
Untuk mengkomposisi sekumpulan web services menjadi workflow, dibutuhkan sebuah standar. Hal ini dimungkinkan dengan adanya WS-BPEL (Web service- Business Process Execution Language) atau BPEL4WS (Business Process Execution Language for Web Service).
World Wide Web Consortium (W3C) mendefinisikan web service sebagai suatu sistem perangkat lunak yang didesain untuk mendukung operasi interaksi antara mesin dengan mesin melalui suatu jaringan. Web service merupakan suatu Aplication Programming Interface (API) yang dapat diakses melalui suatu jaringan seperti internet, dan dieksekusi pada sistem remote yang merupakan pemilik dari service yang diminta. Web service ini memiliki dua spesifikasi dasar yang harus dipenuhi, yaitu:
  •  Berkomunikasi melalui protokol internet (umumnya menggunakan HTTP).
  • Mengirim dan menerima data dalam format dokumen XML
Web service adalah suatu sistem perangkat lunak yang dirancang untuk mendukung interoperabilitas dan interaksi antar sistem pada suatu jaringan. Web service digunakan sebagai suatu fasilitas yang disediakan oleh suatu web site untuk menyediakan layanan (dalam bentuk informasi) kepada sistem lain, sehingga sistem lain dapat berinteraksi dengan sistem tersebut melalui layanan-layanan (service) yang disediakan oleh suatu sistem yang menyediakan web service. Service  mampu menyimpan data informasi dalam format XML, sehingga data ini dapat diakses oleh sistem lain walaupun berbeda platform, sistem operasi, maupun bahasa compiler. Web service bertujuan untuk meningkatkan kolaborasi antar pemrogram dan perusahaan, yang memungkinkan sebuah fungsi di dalam web service dapat dipinjam oleh aplikasi lain tanpa perlu mengetahui detil pemrograman yang terdapat di dalamnya.  

Posting selanjutnya akan memperlhatkan bagaimana membuat web service dengan bahasa pemrograman Java.

Sumber : Analisa dan Desain Berorientasi Servis untuk Aplikasi Manajemen Proyek - Riyanarto Sarno 
0 comments