Benefit dari Implementasi SOA
- Reusable (memaksimalkan penggunaan kembali dari service)
- Flexible
- Low-cost system
- Meningkatkan kualitas sistem secara keseluruhan
- Respon bisnis menjadi lebih cepat
- Service dapat dijalankan dari bermacam-macam platform dan dapat diakses antar network
Dalam SOA, aplikasi dibangun atas beberapa service yang dikombinasikan dengan membuat akses/network di antara service tersebut. Dengan prinsip ini, developer dapat membuat aplikasi baru dengan membuat kombinasi baru dan menggunakannya kembali dalam bisnis proses yang lain.
Dapat digunakan oleh orang-orang yang berbeda group, baik di dalam dan luar organisasi.
Dikarenakan service-service yang bersifat reusable, pembuatan aplikasi baru akan memakan biaya yang lebih rendah. Dengan kata lain, developer dapat mengefektifkan biaya/cost dalam kaitannya dengan perubahan kondisi pasar
Challenges dalam Mengadopsi SOA
Penerapan SOA dalam real-time sistem memang masih menghadapi beberapa kendala, antara lain:
- Managing service metadata
- Lack of testing
- Appropriate level of security
Dalam sistem berbasis SOA, komunikasi antar service dilakukan dengan saling melempar/passing message. Dengan bergantung pada desain, sebuah single aplikasi bisa menghasilkan jutaan message. Mengatur dan menyediakan informasi dalam interaksi antar service merupakan tugas yang kompleks. Dan akan bertambah kompleks ketika service-service ini dikirim oleh bagian-bagian yang berbeda dalam satu perusahaan atau bahkan pada perusahaan yang berbeda (partner, supplier, dsb)
Sampai sejauh ini, dalam sebuah arsitektur SOA, belum ada tools yang dapat digunakan untuk melakukan pengetesan terhadap semua service (termasuk message dan database service bersama dengan web service)
Tantangan lainnya adalah dalam penyediaan level keamanan yang sesuai. Model sekuritas yang dibangun dalam sebuah aplikasi menjadi tidak lagi sesuai ketika kemampuan aplikasi tersebut diadaptasikan sebagai sebuah service dan digunakan oleh aplikasi lainnya
How to Use SOA?
SOA terdiri dari service-service yang independent. Service-service tersebut kemudian dihubungkan melalui link antar service. Kombinasi link antar service digambarkan dalam sebuah orchestration.
Orchestration adalah link dan urutan dari service-service yang akan membentuk suatu sistem. Dalam prosesnya, developer mengasosiasikan service-service yang ada dalam sebuah non-hierarchical arrangement. Bentuk orchestration tergantung pada bisnis prosesnya (dimodifikasi sedemikian rupa sampai sesuai dengan bisnis proses requirement).
Komunikasi antar service dilakukan dengan passing data/message dari service yang satu ke service yang lain melalui link yang sudah terbentuk.
SOA biasa diimplementasikan dengan menggunakan standard web service dan teknologi web. Web service adalah sebuah sistem software yang didesain untuk mendukung interaksi interoperable machine to machine melalui jaringan, di mana memungkinkan sistem dapat dieksekusi melalui remote sistem.
Secara garis besar, web service dibagi menjadi dua:
- Big Web Service
- RESTful web service (Representational State Transfer)
Menggunakan XML yang mengikuti standard SOAP.
SOAP (Simple Object Access Protocol) adalah sebuah spesifik protocol untuk penukaran struktur informasi dalam implementasi web service di jaringan komputer. SOAP bergantung pada XML (message format) dan HTTP sebagai application protocol lainnya (tempat message negotiation dan transmission). SOAP membentuk layer dasar dari web service protocol stack, menyediakan framework dasar dari sistem messaging, di mana web service dibentuk.
WSDL adalah bahasa pemrograman yang menghasilkan file xml (XML-based language), yang nantinya digunakan sebagai model dalam web service
Memiliki integrasi yang lebih baik dengan HTTP dan tidak membutuhkan XML Message atau WSDL service-API definitions.
Beberapa hal yang harus diperhatikan agar SOA bisa digunakan secara efisien, antara lain:
- Interoperability antar sistem dan bahasa pemrograman yang digunakan sebagai dasar dari integrasi antar aplikasi pada platform yang berbeda. Komunikasi antar sistem dilakukan salah satunya dengan menggunakan message, yang dapat mengurangi kompleksitas dari end aplikasi
- Pembentukan dan pemeliharaan kumpulan resources. Mis pemeliharaan data flow untuk membentuk sebuah data warehouse. Hal ini akan memudahkan dalam pengembangan function baru dengan mereferensi pada bentuk umum untuk setiap elemen data
SOA dapat diterapkan pada bahasa pemrograman yang memiliki pengaturan pada alokasi memori dan reklamasi, mengijinkan ad hoc dan late binding, dan menyediakan level tertentu indeterminate data typing. Mis. JAVA, .NET
SOA biasa diimplementasikan dengan menggunakan SOAP, REST, RPC, DCOM, CORBA, Web Services atau WCF.
