
Gambar 1. Bagaimana Service Oriented Architecture (SOA) mengenkapsulasi logic
Saat ini, Service Oriented Architecture (SOA) merupakan sebuah solusi yang baik untuk permodelan sistem di perusahaan atau organisasi besar. Sebab, permodelan ini memiliki banyak kelebihan, diantaranya:
- 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 Service Oriented Architecture (SOA), kedua sistem itu masing-masingnya akan dianggap sebagai service.
- 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 Service Oriented Architecture (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 Service Oriented Architecture (SOA). Namun sebenarnya keduanya adalah hal yang sangat berbeda. Service Oriented Architecture 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 Service Oriented Architecture (SOA) tidak harus menggunakan Web Services, sebab ada bermacam-macam teknologi lain yang memungkinkan, tapi menggunakan Web Services untuk membangun sebuah sistem Service Oriented Architecture (SOA) adalah langkah yang baik [1].
Mengapa Web Services merupakan teknologi yang tepat untuk Service Oriented Architecture (SOA) ? Untuk menjawabnya mari kita lihat beberapa design issue yang muncul dari pembuatan sebuah sistem Service Oriented Architecture (SOA).
Menurut Thomas Erl [1], dalam sebuah perancangan sistem Service Oriented Architecture (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:
- Sebuah service dalam Service Oriented Architecture (SOA) dapat berupa sebuah aplikasi web services. Pada dasarnya sebuah service di dalam Service Oriented Architecture (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 Service Oriented Architecture (SOA) merupakan aplikasi web services.
- 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 Service Oriented Architecture, yang menggunakan web services sebagai service, teknologi WSDL ini menjadi jembatan untuk menghubungkan sebuah service ke service lainnya.
- Service berkomunikasi satu sama lain menggunakan SOAP messaging.Kebutuhan untuk saling berkirim pesan dalam Service Oriented Architecture (SOA) merupakan hal yang paling penting. Untuk teknologi perngiriman pesan, kita dapat menggunakan SOAP. Hal ini dikarenakan SOAP fleksibel dan dapat diperluas.
KesimpulanSOA seringkali disamakan dengan Web Services, padahal keduanya adalah hal yang sangat berbeda. Service Oriented Architecture (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. Service Oriented Architecture (SOA) tidak harus menggunakan Web Services untuk implementasinya, namun menggunakan Web Services untuk implementasi Service Oriented Architecture (SOA) merupakan langkah yang baik, sebab, teknologi Web Services sangat cocok untuk Service Oriented Architecture (SOA). Sebuah aplikasi Web Services dapat mewakili sebuah service dalam Service Oriented Architecture (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.