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.
- 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.
- 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:
- 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.
- 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.
- 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.
[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

This thing has 8 Comments
Hiks nyuw, sumpah unyu gatau harus komentar apa…
Unyu ngomongin RDR aja gimana?
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
permisi saya mau tanya dong
bagaimana cara mengimplementasi webservice using soa dalam pembuatan website berbasis penjualan produk saja,,apa saja service2 yang mendukung agar web kita dapat menerapkan konsep SOA ini?
mohon bantuannya ya soalnya buat saya skripsi
terima kasih banyak sebelumnya
-Sarif-
Artikel yang sangat menarik dan berguna…
Saya ada beberapa pertanyaan.. Semoga bapa berkenan menjawab.. ^^
Kalo untuk kedepannya… SOA & Web Services ini akan berkembang sampai sejauh mana?
Misalkan untuk proses develop & implen nya menggunakan metodelogi khusus??
karena saya berminat untuk meneliti SOA & web services ini utk jadi bahan paper saya…
Thanks Before…
Regards,
Yogi
penjelasan yg sangat menarik dan membuka wawasan…..
dari yg saya simak dan yg pernah saya denger2 teknologi WS(Web Service), WS kan merupakan teknoogi yg digunakan pada aplikasi sehingga apliaksi tersebut merupakan aplikasi yg universal sehingga service2 nya dapat di gunakan oleh banyak platform apakah itu Java,PHP,dll…
yg mengganggu dipikiran saya,,Apakah SOAP sebelumnya harus didevinisikan/dibuat pada aplikasi dgn beda platform tersebut sehingga antar aplikasi tersebut bisa saling mengenal satu sama lain??
Kebetulan saya saat ini sedang mengerjakan project dengan mengunakan tehnologi SOA ini, Design dengan mengunakan Oracle BPA, Pemograman Java dan Database Oracle, tetapi masih mengalami kesulitan dalam implementasi nya.karena masih baru dan jarang yg menggunakan kita agak kesulitan dan menyita waktu untuk meng explore nya.
dari penjelasan di atas sebenarnya lebih membuka wawasan saya mengenai pengembangan sebuah sistem. Saya ada beberapa pertanyaan dan mohon dijawab:
1. apakah SOA merupakan sebuah framework dalam pengembangan sistem?
2. apakah penggunaan SOA memiliki batasan karakteristik dalam pengembangan sebuah sistem?
3. apakah penggunaan konsep SOA lebih lama dalam pengembangan sebuah sistem?
4. Sebaiknya metodologi seperti apa yang dapat digunakan dalam penggunaan konsep SOA sebagai pengembangan?
thanks before…!!!
@dhan:
Saya coba jawab ya sepengetahuan saya.
1. Bukan. SOA itu konsep arsitektur sistem. Sementara framework itu lebih ke komponen-komponen perangkat lunak (misalnya library) yang dapat digunakan untuk membuat software baru.
2. Batasan karakteristik, saya kurang nangkep maksudnya. Bisa lebih dijelaskan? Kalau masalah kekurangan, SOA hanya cocok untuk sistem yang besar karena menurut saya modelnya berlapis-lapis. Jadi kalau digunakan buat sistem yang kecil, mungkin performansinya akan terhitung tidak bagus.
3. Bisa iya, bisa tidak. Misalnya kalau kita mengintegrasikan sistem lama (legacy) ke dalam SOA, bisa lebih lama. Dan menurut yang saya baca sih, investasinya besar. Karena sistem lama itu harus dibangun drivernya dulu supaya bisa terhubung dengan sistem SOA.
4. Metodologi, hm.. check di Google deh, ada beberapa. Sepertinya saya tidak berkapasitas menjawab.
This thing has 2 Trackbacks
[...] Implementasi SOA dalam web servis 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. selanjutnya… [...]
[...] google. Dan terjawab sudah… fe menemukan artikel ini secara tidak sengaja melalui salah satu alamat blog dan beberapa buku referensi, setelah dipikir-pikir lebih baik tulisan ini saya posting juga di blog [...]