SOA Web Service

download SOA Web Service

of 8

Transcript of SOA Web Service

Implementasi Service Oriented Architecture (SOA) Menggunakan Teknologi Web ServiceHendro Joko Prasetyo ( [email protected] ) Fakultas MIPA Universitas Widya Dharma Klaten Abstract, Dalam aritektur Service Oriented Architecture (SOA), suatu aplikasi dimodelkan sebagai komposisi dari sekumpulan service yang disediakan oleh suatu komponen. Lokasi keberadaan komponen tersebut dapat ditemukan oleh client secara dinamis, dalam arti tidak dinyatakan secara statis tetapi menggunakan mekanisme discovery untuk mencari keberadaan komponen tersebut. Demikian pula, client dapat meminta (invoke) service tersebut secara dinamis pula. Banyak teknologi yang dapat digunakan untuk mengimplementasikan arsitektur SOA, diantaranya adalah CORBA, DCOM, RMI, Web Service. Teknologiteknologi tersebut mempunyai kelebihan dan kekurangan untuk CORBA, DCOM, RMI bersifat system tertutup (proprietary), sedangkan untuk Web Service bersifat system terbuka (non-propriertary ) berbasis web. Sehingga tren kedepan teknologi yang digunakan adalah teknologi web service karena sifat keterbukaannya. Dalam paper ini akan mencoba mendiskripsikan bagaimana arsitektur SOA dan bagaiman penerapan arsitektur tersebut dalam teknologi Web Service.

Kata Kunci : SOA, Web Service, Proprietary

I. Pendahuluan Saat ini, banyak perusahaan menghadapi dinamika tantangan yang tinggi dalam rangka memenuhi permintaan customer dengan kualitas layanan yang tinggi dan produksi dari beberapa segmen bisnis dan industry. Dalam lingkungan seperti ini yang mengkombinasikan antara inovasi teknologi serta globalisasi ekonomi, membuat pemicu dibangunnya suatu paradigm baru dalam inovasi ekonomi, dimana konsep Virtual Enterprise (Perusahaan Virtual) menjadi posisi yang utama. Banyak perusahan yang menggabungkan sumber daya yang ada untuk supaya lebih efektif dalam merespon permintaan pasar, membuka kesempatan, serta meminimisize biaya melalui suatu bentuk kerja sama yang dinamis.

Contoh kerja sama yang mungkin sering kita jumpai adalah jika kita belanja di Amazon.com, disana kita dapat melihat-lihat catalog buku di took buku tersebut, kita bebas untuk memilih buku yang hendak untuk kita pilih. Jika kita sudah cocok untuk membeli buku, maka proses selanjutnya adalah memasukkan informasi misal kartu kredit. Data kartu kredit pelanggan tersebut harus di validasi kaitannya dengan nomer PIN, masa berlaku, saldo dan sebagainya. Untuk melakukan validasi kartu tersebut tentunya adalah perusahaan yang berwenang yaitu bank. Untuk itu toko buku on-line Amazon.com melakukan kerjasam dengan beberapa bank, untuk memudahkan dalam transaksi on-line tersebut. Jadi kedua perusahaan tersebut saling terintgrasi (kerja sama), Karena untuk memvalidasi kartu kredit, Amazon.com akan memanggil service yang disediakan oleh pihak bank 1

Implementasi SOA (Service Oriented Architecture) Menggunakan Teknologi Web Service

untuk melakukan pengecekan, dari system yanga ada di Amazon.com. Kebutuhan untuk merealisasikan konsep kerja sama yang dinamis antar perusahaan seperti contoh tersebut, maka perusahaan memfokuskan pada system enterprise dan proses integrasi antar enterprise. Disinilah professional IT secara langsung menghadapi tantangan untuk mampu membuat dan mengontrol legacy teknologi dalam batasan perusahaan/enterprise dan heterogenitasnya, yaitu suatu system yang berbasis service-oriented. Arsistektur system yang berbasis service dikenal dengan istilah Service Oriented Architecture (SOA). Berikut gambaran sebuah system dengan arsitektur berbasis SOA.

system seperti Bisnis to Bisnis (B2B), Bisnis to Customer (B2C) dalam aplikasi e-business dan Virtual Enterprise (VE).

Gambar 2 : Teknologi yang menggunakan SOA

II. Service Oriented Architecture (SOA) Service Oriented Architecture (SOA) adalah prinsip desain yang diinginkan untuk membangun system terdistribusi yang reliable dan mengirimkan service fungsionalitasnya, dengan menambahkan penekanan pada loose coupling antar pengguna service. Dalam hal ini service mempunyai beberapa karakteristik : Logical view, service yang dilihat dari level operasi bisnis yang diidentifikasi sebagai interface yang independen Message orientation, Sebuah service yang berhubungan dengan client yang bertukar message. Discription Orientation, didekripsikan sebagai metadata. Servive yang mesin pengolah

Gambar 1 : Desain Integrasi Service-oriented Arsitektur SOA dapat diimplementasikan dengan beberapa teknologi yang diantaranya adalah CORBA (Commond Object request Broker Architecture), Distributed Computing Envirentement (DCE), Distributed Command Object Model (DCOM), Remote Method Ivocation (RMI), Web Service. Untuk lebih jelasnya perhatikan gambar 2. Dari sekian banyak teknologi yang dapat mengimplemnetasikan SOA, Web Service-lah yang menjanjikan karena mampu meyediakan standart dari perbedaan aplikasi dan berjalan di banyak platform, sehingga dapat digunakan untuk integrasi

Network Orientation, Service dituntut untuk dipakai di dalam jaringan. Hal ini menenkankan pada kebutuhan service yang secara otomatis serta mudah ditemukan.

Platform neutrality, Pesan disampaikan melalui interface yang menggunakan platform netral (multi platform) dan format data yang standart seperti XML. Perhatikan gambar 3 berikut, dalam gambar tersebut mengilustrasikan siklus dari interaksi service dalam arsitektur system SOA. Pada tahap 1 service provider mempublikasikan service yang dimilikinya ke registry public. Tahap ke-2 service customer mencari service yang dibutuhkan ke registry public (kalau kita kaitkan dengan contoh diatas, maka disini Amazon.com mencari service untuk memvalidasi kartu kredit). Tahap ke-3, registry akan memeberikan respon berupa list service yang tersedia dalam registry yang dilengkapi dengan informasi alamat, cara pemanggilan service, return yang bakal diperoleh dan mengenali protocol yang digunakan. Kemudian tahap ke-4 service memberikan respon.

jaringan Dapat dibangun bersama service lain . Berdasarkan karakteristik tersebut jika digambarkan dalam model implemnetasinya dapat ditunjukkan dalam gambar 4 berikut :

Gambar 4: Breakdown komponen service Ciri utama SOA adalah mempromosikan melalui penggabungan komponen-komponen perangkat lunak. Diantara komponen perangkat lunak tersebut saling berinteraksi dalam satu kesatuan. Sedangkan keuntungan dari penggunaan Arsitektur SOA adalah flexible, scalable, replacability dan fault tolerance.

III. Teknologi Web Service Ada berbagai versi definisi mengenai Web Service, yang pada intinya menggambarkan karakteristik dari Web Service, yaitu antara lain sebagai berikut : Merupakan application logic yang dapat diakses dan dipublikasikan menggunakan standard Internet (TCP/IP, HTTP, SMTP, FTP, JMS, Web). Dideskripsikan dalam format XML. Didentifikasikan dengan Universal Resources Identifier (URI) Bersifat Loosely coupled, self-contained, modular dan terbuka (nonproprietary)

Gambar 3 : Siklus Service dalam SOA Dalam arsitektur SOA, Service dapat didefinisikan sebagai komponen (software component) yang memiliki karakteristik : Dapat dideskripsikan dalam suatu bahasa formal Dapat dipublikasikan pada suatu registry of service Dapat ditemukan (discover) menggunakan mekanisme standard Dapat diminta/diperoleh (invoke) melalui

Digunakan untuk mendukung interoperabilitas interaksi machine-to-machine melalui jaringan Internet/Intranet. Web Service dapat diimplementasikan pada lingkungan internal (Intranet) untuk kebutuhan integrasi antar sistem aplikasi ataupun pada lingkungan eksternal (Internet) untuk mendukung aplikasi B2B dan B2C (e-business). Kemudian jika dilihat lingkungan kerja web service dapat ditunjukkan pada gambar 5 berikut :

infrastruktur ini requester entity dapat mengikat dan menggunakan web service dengan beberapa cara, tetapi cycle interaksi dalam web service akan selalu sesuai dengan cycle SOA. Secara umum dapat di tunjukkan dalam gambar 4

Gambar 6 : Cycle proses dalam web service Gambar 5 : Lingkungan kerja web service Definisi Web Service menurut W3C adalah A Web service is a software system designed to support interoperable machine-to-machine interaction over a network. It has an interface described in a machine-processable format (specifically WSDL). Other systems interact with the Web service in a manner prescribed by its description using SOAP messages, typically conveyed using HTTP with an XML serialization in conjunction with other Web-related standards. Berdasarkan definisi tersebut ada beberapa terminology yang perlu mendapat perhatian khusus yaitu WSDL, SOAP, HTTP dan XML yang merupakan bagian dari arsitektur web service. Web Service menerapkan arsitektur SOA, maka cycle proses web service akan sama dengan SOA. Dalam web service bekerja pada infrastruktur melayani : mekanisme penemuan lokasi web service, mekanisme deskripsi service yang meliputi bagaimana menggunakan service dan bagaimana format standart dalam komunikasi. Penggunaan Entitas Requester dan Entitas Provider harus saling mengetahui satu sama lainnya, atau setidaknya salah satu mengetahui yang lainnya. Entitas Requester dan Provider sama-sama setuju atas diskripsi service (Web Service Discription, WSD) dan semantic yang akan mengatur interaksi antar agen (potongan software atau hardware yang mengirim dan menerima pesan) requester dan provider. Deskripsi service dan semantic berdasarkan agen requester dan provider. Agen requester dan provider bertukar pesan. Berdasarkan gambar tersebut dapat dijabarkan sebagai berikut :

Arsitektur Web Service Konsep arsitektur yang mendasari teknologi Web service adalah Service Oriented Architecure (SOA). Dalam aritektur ini, suatu aplikasi dimodelkan sebagai komposisi dari sekumpulan

service yang disediakan oleh suatu komponen. Lokasi keberadaan komponen tersebut dapat ditemukan oleh client secara dinamis, dalam arti tidak dinyatakan secara statis tetapi menggunakan mekanisme discovery untuk mencari keberadaan komponen tersebut. Demikian pula, client dapat meminta (invoke) service tersebut secara dinamis. W3C mengembangkan draft arsitekutr web service yang terdiri dari beberapa teknologi yang saling berhubungan, seperti ditunjukkan dalam gambar 7. Berdasarkan gambar tersebut, web service tersusun dari beberapa komponen yang semuanya berbasis XML (eXtensible Markup Language) yaitu SOAP, WSDL dan UDDI.

format untuk mentransmisikan pesan XML melalui jaringan, termasuk tipe data dan cara menstrukturkan pesan secara tepat sehingga dapat mudah dipahami oleh server atau end-point lainnya. Pesan SOAP terdiri dari 3 bagian, yaitu : SOAP Envelop, suatu selubung yang mendefinsiikan apa yang ada dalam message dan bagaimana message harus diproses. SOAP Header, berisi informasi yang berkaitan dengan keamanan serta routing. Dalam SOAP header bersifat optional. SOAP Body, berisi data yang berhubungan dengan aplikasi tertentun yang sedang dipertukarkan. Untuk lebih jelasnya perhatikan contoh pesan SOAP untuk requester berikut : SOAP Request : budiman

Gambar 7 : Arsitektur Web Service

Simple Object Access Protocol (SOAP) SOAP merupakan suatu protokol berbasis XML yang digunakan untuk kebutuhan pertukaran informasi dalam suatu sistem terdistribusi dan terdesentralisasi, seperti halnya IIOP (pada CORBA), ORCP (pada DCOM) dan JRMP (pada RMI). Berbeda dengan RMI, CORBA dan DCOM, SOAP merupakan protokol yang bersifat independent terhadap platform, model pemrograman, dan transport protocol yang digunakan dalam proses pertukaran pesan SOAP. Pesan SOAP dapat dikirimkan melalui HTTP, FTP atau SMTP. Pesan SOAP berbentuk sekumpulan XML Schema yang mendefinisikan

Web Service Discription Language (WSDL) Web Service Discription Language (WSDL) merupakan bahasa standard yang menyediakan mekanisme untuk mendeskripsikan Service yang disediakan oleh sistem dalam hal ini Web service, lokasi keberadaan service tersebut dan bagaimana cara memperolehnya, secara terstruktur dalam format XML. WSDL dapat dianalogikan sebagai IDL (interface definition language) dalam CORBA dan COM. Service dedeskripsi kan sebagai koleksi dari entry-point atau port komunikasi. WSDL mendeskripsikan service dengan menggunakan elemen sebagai berikut :

Type tipe data yang digunakan sebagai argumen dan return type Message merepresentasikan definisi data yang ditransmisikan Port type sekumpulan operasi yang didukung oleh satu atu lebih endpoint Binding mendefinisikan protokol dan format pertakaran data untuk operasi yang didefinisikan oleh Port type Port menspesifikasikan end-point yang digunakan untuk binding Service koleksi endpoint yang berkaitan yang disediakan oleh Web service Operation mendefinisikan kemampuan yang didukung oleh servis tertentu Sebagai gambaran perhatikan contoh dokumen WSDL berikut :

- - - - - - - - - - - - -

Universal Description, Discovery & Integration (UDDI) UDDI merupakan sekumpulan spesifikasi yang menunjukkan registry informasi mengenai Webservice. UDDI menyediakan mekanisme untuk mempublikasikan informasi mengenai bisnis dan service pada satu lokasi (repository) yang dikelola secara terpusat dan melakukan query mengenai informasi tersebut secara dinamis dan programatis. Direktory pada UDDI bertindak seperti Yellow Pages dimana service dikategorikan sesuai tujuan utamanya. Direktory UDDI terdiri dari 3 bagian, yaitu : White pages menyediakan informasi rinci

mengenai organisasi yang menawarkan service Yellow pages mencakup pengakatagorian jenis industri berdasarkan standard taxonomi industri Green pages mendeskripsikan interface dan kebutuhan untuk memperoleh service , seperti return type. UDDI merupakan file XML Schema yang mendefinisikan struktur data mengenai karakteristik bisnis dan service. Deskrisi service didefinisikan menggunakan dokumen Type Model (tModel). Secara umum UDDI berisi informasi mengenai siapa yang menyediakan service (businessEntity), Service apa yang disediakan (businessService), dimana lokasi service tersedia (bindingTemplate), referensi mengenai informasi bagaimana service tersebut diperoleh (tModel).

1. Eric Newcomer, Greg Lomow, 2004, Understanding SOA with Web Services. Addison Wesley Professional. 2. James Bean ,2003,XML for Data Architects: Designing for Reuse and Integration, Morgan Kaufmann Publishers. 3. Fani A. Tzima, Pericles A. Mitkas, 2008, "Web Services Technology: An Overview", IGI Global. 4. Wiwit Siswoutomo, 2004, Membangun Web Service Open Source Menggunakan PHP,ElexmediaKomputindo. 5. Mario Hadiwinata, 2004, Pemrograman XML Web Service Dengan VB.NET,Project Otak. 6. Scott Shot,2002,Building XML Web Service for the Microsoft .NET Platform. Microsoft Perss.

IV. Kesimpulan Service Oriented Architecture (SOA) merupakan konsep pembangunan perangkat lunak yang melakukan partisi sistemnya menjadi beberapa service yang dapat berdiri secara independent, sedangkan web service merupakan suatu aplikasi web service yang berkomunikasi dengan aplikasi web service lainnya dalam rangka pertukaran data. Dalam mengimplementasikan SOA tidak harus menggunakan web service, namun menggunakan web service meruapakan hal tepat. Hal ini disebabkan karena aplikasi web service dapat mewakili sebuah service dalam SOA. Untuk WSDL dalam web service dapat digunakan agar supaya service dapat berhubungan satu dengan yang lainnya, dengan SOAP sebagai teknologi pengiriman pesan antar service.

V. Daftar Pustaka