SOA vs ESB
SOA adalah sekumpulan konsep arsitektur yang digunakan untuk pengembangan dan integrasi layanan. Layanan adalah paket fungsionalitas yang dipublikasikan yang ditawarkan melalui web. ESB adalah perangkat lunak infrastruktur yang menyediakan konstruksi arsitektur perangkat lunak untuk menyediakan layanan dasar untuk arsitektur kompleks. ESB dapat digunakan sebagai platform di mana SOA direalisasikan.
Apa SOA?
SOA (arsitektur berorientasi layanan) adalah sekumpulan konsep arsitektur yang digunakan untuk pengembangan dan integrasi layanan. SOA berurusan dengan komputasi terdistribusi di mana konsumen mengkonsumsi satu set layanan interoperable. Banyak konsumen dapat mengonsumsi satu layanan dan sebaliknya. Oleh karena itu, SOA sering digunakan untuk mengintegrasikan beberapa aplikasi yang menggunakan platform berbeda. Agar SOA dapat beroperasi dengan benar, layanan harus digabungkan secara longgar dengan sistem operasi dan teknologi aplikasi yang mendasarinya. Pengembang SOA membuat layanan menggunakan unit fungsionalitas, dan membuatnya tersedia melalui internet. Layanan web dapat digunakan untuk mengimplementasikan arsitektur SOA. Dalam hal ini, layanan web menjadi unit fungsionalitas SOA yang dapat diakses melalui internet. Layanan web dapat digunakan oleh siapa saja tanpa mengkhawatirkan platform atau bahasa pemrograman yang digunakan untuk mengembangkannya. SOA secara langsung dibangun di atas prinsip orientasi-layanan, yang berbicara tentang layanan dengan antarmuka sederhana yang dapat diakses secara independen oleh pengguna, tanpa mengkhawatirkan implementasi platform layanan yang sebenarnya.
Apa itu ESB?
ESB (Enterprise Service Bus) adalah bagian dari perangkat lunak infrastruktur yang menyediakan konstruksi arsitektur perangkat lunak untuk menyediakan layanan dasar untuk arsitektur yang kompleks. Tetapi ada banyak perdebatan mengenai apakah menyebut ESB sebagai gaya arsitektur atau produk perangkat lunak atau bahkan sekelompok produk. Ini menyediakan layanan melalui event driven dan mesin berbasis standar untuk olahpesan (yang sebenarnya adalah bus layanan). Di atas mesin pengiriman pesan ini, lapisan abstraksi disediakan untuk memungkinkan arsitek memanfaatkan fasilitas yang ditawarkan oleh bus, tanpa menulis kode yang sebenarnya. ESB biasanya diimplementasikan melalui infrastruktur middleware berbasis standar.
Penggunaan istilah "bus" dalam ESB disebabkan oleh fakta bahwa ESB memang menyediakan fungsi yang sangat mirip dengan bus komputer fisik, tetapi pada tingkat abstraksi yang jauh lebih tinggi. Salah satu keuntungan utama memiliki ESB adalah kemampuan untuk mengurangi jumlah titik kontak; dengan demikian, adaptasi terhadap perubahan menjadi lebih mudah. ESB dapat digunakan sebagai platform di mana SOA direalisasikan. Konsep transformasi / routing (terkait aliran) dapat dibawa ke SOA oleh ESB. Selanjutnya, dengan membuktikan abstraksi untuk titik akhir (dalam SOA), ESB mempromosikan kopling longgar antar layanan.
Apa perbedaan antara SOA dan ESB?
Ada beberapa perbedaan utama antara SOA dan ESB. SOA adalah model arsitektur untuk mengimplementasikan aplikasi berbasis layanan yang digabungkan secara longgar. ESB adalah perangkat lunak infrastruktur yang membantu pengembang untuk mengembangkan layanan, dan berkomunikasi antar layanan melalui API yang sesuai. ESB dapat digunakan sebagai platform di mana SOA direalisasikan. ESB hanyalah media di mana layanan mengalir. ESB menyediakan fasilitas untuk komposisi dan penyebaran layanan, yang pada gilirannya mengimplementasikan SOA.