Senin, 12 Mei 2008

pemodelan dan sistem

pemodelan sistem

Implementasi SOA dalam Web Services

Artikel ini tadinya hanya digunakan untuk keperluan diskusi di Lab. Tapi setelah dipikir-pikir lumayan juga untuk berbagi ilmu. Kritik, saran, dan masukan diterima atas penulisan ini. Tulisan ini hanya sebuah rangkuman mengenai apa yang saya pelajari.

Service Oriented Architecture (SOA) adalah sebuah permodelan perangkat lunak yang dibangun dengan pendekatan service oriented. Service oriented sendiri merupakan sebuah pendekatan yang memiliki visi ideal di mana setiap resource dari perangkat lunak terpartisi secara bersih satu sama lain [1]. Setiap resource ini disebut dengan service. Service ini merepresentasikan sebuah business logic atau automation logic dalam sebuah sistem besar. Setiap service memiliki otonomi sendiri yang membuatnya tidak tergantung satu sama lain. Setiap service dapat berkomunikasi satu sama lain melalui sebuah protokol yang sudah terstandardisasi sehingga memudahkan untuk melakukan integrasi service baru dan penyusunan ulang kumpulan service disebabkan proses bisnis yang berubah.

enkapsulasi.JPG
Gambar 1 Bagaimana service mengenkapsulasi logic
Saat ini, SOA merupakan sebuah solusi yang baik untuk permodelan sistem di perusahaan atau organisasi besar. Sebab, permodelan ini memiliki banyak kelebihan, diantaranya:
  1. Dapat menyatukan berbagai sistem yang memiliki platform berbeda, seperti J2EE dan .NET. sebab dengan pendekatan ini, yang pengembang akan memilih untuk membangun sebuah layer di atas sistem รข€“ sistem tersebut yang dapat saling berkomunikasi dengan pesan yang sudah distandardisasi, misalnya menggunakan teknologi XML. Dalam sudut pandang SOA, kedua sistem itu masing-masingnya akan dianggap sebagai service.
  2. Tahan terhadap perubahan. Perusahaan atau organisasi besar seringkali berubah struktur untuk meningkatkan efisiensi dan kinerja. Akibatnya, perangkat lunak juga terkena imbas untuk menyesuaikan diri terhadap proses bisnis yang baru. Permodelan perangkat lunak dengan SOA akan mengurangi effort untuk modifikasi perangkat lunak tersebut. Sebab, karena seluruh logic dari sistem sudah terpartisi secara bersih menjadi sekumpulan services, kita hanya perlu menyusun ulang seluruh service tersebut dan jika perlu menambahkan yang baru. Hal ini jelas mengurangi biaya.

Web Services seringkali dikaitkan atau bahkan disamakan dengan SOA. Namun sebenarnya keduanya adalah hal yang sangat berbeda. SOA adalah sebuah konsep untuk pengembangan perangkat lunak, sementara Web Services adalah sebuah aplikasi web yang berinteraksi dengan aplikasi web lainnya untuk pertukaran data[2]. Pembangunan SOA tidak harus menggunakan Web Services, sebab ada bermacam-macam teknologi lain yang memungkinkan, tapi menggunakan Web Services untuk membangun sebuah sistem SOA adalah langkah yang baik [1].

Mengapa Web Services merupakan teknologi yang tepat untuk SOA? Untuk menjawabnya mari kita lihat beberapa design issue yang muncul dari pembuatan sebuah sistem SOA.

Menurut Thomas Erl [1], dalam sebuah perancangan sistem SOA, design issue yang harus diperhatikan adalah:
1. Bagaimana sebuah service mengenkapsulasi logic.
2. Bagaimana service berhubungan satu sama lain
3. Bagaimana service berkomunikasi satu sama lain.

Web Services sebagai sebuah teknologi dapat memfasilitasi design issue ini, yaitu:

  1. Sebuah service dalam SOA dapat berupa sebuah aplikasi web services. Pada dasarnya sebuah service di dalam SOA adalah sebuah aplikasi. Aplikasi ini 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 itu sudah dimiliki oleh sebuah aplikasi web services. Maka dari itu, implementasi service dalam SOA merupakan aplikasi web services.
  2. Hubungan satu service dengan yang lainnya didefinisikan dengan WSDL.WSDL mendeskripsikan bagaimana format sebuah pesan yang akan dikirim oleh sebuah aplikasi web service harus ditulis, agar dapat dimengerti oleh aplikasi web services lainnya yang menerima. Dalam sudut pandang SOA, yang menggunakan web services sebagai service, teknologi WSDL ini menjadi jembatan untuk menghubungkan sebuah service ke service lainnya.
  3. Service berkomunikasi satu sama lain menggunakan SOAP messaging.Kebutuhan untuk saling berkirim pesan dalam SOA merupakan hal yang paling penting. Untuk teknologi perngiriman pesan, kita dapat menggunakan SOAP. Hal ini dikarenakan SOAP fleksibel dan dapat diperluas.

Kesimpulan
SOA seringkali disamakan dengan Web Services, padahal keduanya adalah hal yang sangat berbeda. SOA merupakan konsep pengembangan perangkat lunak yang melakukan partisi sistemnya menjadi beberapa servis yang dapat berdiri secara independen, sementara Web Services merupakan aplikasi web yang berkomunikasi dengan aplikasi web services lainnya untuk tujuan pertukaran data. SOA tidak harus menggunakan Web Services untuk implementasinya, namun menggunakan Web Services untuk implementasi SOA merupakan langkah yang baik, sebab, teknologi Web Services sangat cocok untuk SOA. Sebuah aplikasi Web Services dapat mewakili sebuah service dalam SOA. WSDL dapat digunakan agar sebuah service dapat berhubungan satu sama lain, dan SOAP dapat digunakan untuk teknologi pengiriman pesan antar services.

Referensi
[1] Erl, Thomas. Service-Oriented Architecture: Concepts, Technology, and Design. Prentice Hall PTR, 2005.
[2] Lucent Glossary, http://www.lucent.com/search/glossary/w-definitions.html, Diakses 1 November 2006

5 Comments

  • 32) { this.width = 32; this.height = 32; } ; if (this.width < src="'http://wordpress.com/avatar/armyta-32.jpg';" onload="void(null);" alt="" align="left" border="0"> diBond
    On 11.04.06 said:

    Hiks nyuw, sumpah unyu gatau harus komentar apa…
    Unyu ngomongin RDR aja gimana? :P

  • 32) { this.width = 32; this.height = 32; } ; if (this.width < href =" 'http://www.gravatar.com/';" title =" '';" src="'http://www.gravatar.com/avatar.php?gravatar_id=" size="32&ampdefault=" onload="void(null);" alt="" align="left" border="0"> katrie
    On 01.24.08 said:

    Bisa dijelasin tidak apa perbedaan SOA dengan EDI? Yang mana di antara keduanya yang lebih dianjurkan jika dilihat dari biaya dan keuntungan yang dihasilkan.
    Terima kasih