MODUL SESI 12
ENTERPRISE SERVICE BUS (ESB)
DISUSUN OLEH
ADI WIDIANTONO, SKOM, MKOM.
Tidak ada standar global untuk konsep atau implementasi ESB. Namun sebagian
besar penyedia middleware yang berorientasi pesan telah mengadopsi konsep ESB
sebagai standar de facto untuk arsitektur berorientasi layanan (SOA). Implementasi
ESB menggunakan middleware berorientasi pesan yang digerakkan oleh event dan
berbasis standar dalam kombinasi dengan antrian pesan sebagai kerangka kerja
teknologi. Namun, beberapa produsen perangkat lunak memberi nama ulang
middleware dan solusi komunikasi yang ada sebagai ESB tanpa mengadopsi aspek
penting dari konsep bus.
Arsitektur ESB adalah middleware, artinya perangkat lunak yang ada untuk
menyatukan program yang ada dan kompleks dan melakukannya dengan
menghubungkan semua jenis aplikasi dan layanan lain-lain.
Fungsi utama dari ESB dapat diilustrasikan pada gambar berikut ini :
Transparasi Lokal
Message Enhancement
Security
Diperlukan banyak perangkat lunak yang menyediakan interface antar aplikasi yang
berbeda-beda, dan spesifik. Jika terjadi perubahan di salah satu aplikasi, maka
interface juga akan mengalami perubahan, menjadi rumit dan tidak fleksibel.
Manfaat
Dari arsitektur pada gambar 1.3. Secara teori, ESB terpusat menawarkan potensi untuk
menstandarisasi—dan secara dramatis menyederhanakan—komunikasi, pengiriman
pesan, dan integrasi antar layanan di seluruh perusahaan. Biaya perangkat keras dan
perangkat lunak dapat dibagi, menyediakan server sesuai kebutuhan untuk
penggunaan gabungan, memberikan solusi terpusat yang terukur. Satu tim spesialis
dapat ditugaskan (dan, jika perlu, dilatih) untuk mengembangkan dan memelihara
integrasi.
Kelemahan
Sementara ESB berhasil diterapkan di banyak organisasi, tetapi di banyak organisasi
lain ESB dipandang sebagai penghambat. Membuat perubahan atau peningkatan pada
satu integrasi dapat mengganggu kestabilan orang lain yang menggunakan integrasi
yang sama. Pembaruan pada middleware ESB sering memengaruhi integrasi yang ada,
sehingga diperlukan pengujian signifikan untuk melakukan pembaruan apa pun. Karena
ESB dikelola secara terpusat, tim aplikasi segera menunggu dalam antrean untuk
integrasi mereka. Seiring dengan meningkatnya volume integrasi, penerapan
ketersediaan tinggi dan pemulihan bencana untuk server ESB menjadi lebih mahal.
Dan sebagai proyek lintas-perusahaan, ESB terbukti sulit untuk didanai, membuat
tantangan teknis ini menjadi lebih sulit untuk diselesaikan.
Berikut ini kita lihat bagaimana menerapkan ESB pada arsitektur monolithic/n-tier.
Pada gambar 1.4. merupakan arsitektur tipikal untuk aplikasi berbasis JEE. Diharapkan
akan membangun aplikasi khusus pengguna (client) yang merupakan gabungan
informasi dari aplikasi enterprise lainnya. Dalam padangan dari sisi pengguna, maka
tidak perduli dibelakangnya ada aplikasi lain yang mendukung. Maka pandangan dari
sisi pengguna (client) dapat dilihat pada gambar 1.5. Kemudian diterapkan integrasi
aplikasi-aplikasi dalam arsitektur n-tier (gambar 1.6).
Integrasi aplikasi diterapkan solusi dengan konsep ESB, maka arstiektur menjadi
seperti pada gambar 1.7.
Di sisi lain, SOA, atau Arsitektur Berorientasi Layanan, juga merupakan arsitektur
perangkat lunak yang digunakan untuk membangun aplikasi bisnis yang berfokus pada
pengembangan berbasis layanan dan hasil akhir dari layanan tersebut. Dengan kata
lain, arsitektur berorientasi layanan adalah jenis desain perangkat lunak di mana
layanan disediakan oleh komponen aplikasi melalui serangkaian protokol komunikasi
dalam jaringan.
Dari hal di atas, keduanya adalah arsitektur perangkat lunak, tetapi bukan jenis
arsitektur biasa, tetapi yang berbasis bisnis. Dan, meskipun mereka mungkin tampak
serupa, mereka sebenarnya tidak. SOA dan ESB tidak boleh dilihat hanya sebagai
solusi perangkat lunak, tetapi sebagai prinsip integrasi aplikasi perusahaan. Pada
dasarnya, SOA harus dianggap sebagai seperangkat ide untuk mendekati integrasi
aplikasi, sedangkan ESB adalah inti sebenarnya dari struktur arsitektur ini.
Jika diperhatikan (gambar 2.1.), maka ESB adalah alat yang dapat digunakan
untuk mencapai prinsip dan ide yang menyusun SOA. Sederhananya, dalam konsep,
baik SOA dan ESB adalah arsitektur perangkat lunak, tetapi ketika mempraktikkannya,
SOA menjadi tujuannya, sedangkan ESB menjadi alat yang memungkinkan integrasi
aplikasi perangkat lunak dan komponen dapat digunakan untuk memberikan layanan
dan meningkatkan kelincahan dalam proses pengembangan perangkat lunak.
Sekarang sudah diketahui bahwa kedua arsitektur ini sangat berbeda satu sama
lain, dalam arti SOA fokus pada membangun aplikasi bisnis yang dapat dengan mudah
diratakan dan memungkinkan perusahaan untuk tumbuh, sementara bus layanan
perusahaan hanyalah bagian dari strategi untuk melakukan itu, itu saatnya untuk
mempertimbangkan penerapan ESB untuk mencapai arsitektur berorientasi layanan.
Arsitektur layanan mikro memungkinkan internal satu aplikasi dipecah menjadi bagian-
bagian kecil yang dapat diubah, diskalakan, dan dikelola secara independen. Layanan
mikro muncul dan memperoleh kekuatan dengan munculnya virtualisasi , komputasi
awan , praktik pengembangan Agile, dan DevOps . Dalam konteks ini, layanan mikro
menawarkan yang berikut:
Ketahanan yang lebih besar, karena kegagalan satu komponen tidak berdampak
pada yang lain, dan setiap layanan mikro dapat melakukan persyaratan
ketersediaannya sendiri tanpa mempertaruhkan komponen lain ke persyaratan
'ketersediaan umum terbesar'.
Granularitas yang sama yang dibawa layanan mikro ke desain aplikasi dapat dibawa ke
integrasi, dengan manfaat serupa. Ini adalah ide di balik integrasi tangkas , yang
memecah ESB menjadi komponen integrasi yang terdesentralisasi dan berbutir halus,
tanpa saling ketergantungan, yang dapat dimiliki dan dikelola sendiri oleh tim aplikasi
individu.
ESB dipecah menjadi API sebagai komponen integrasi dengan format/arsitektur API
yang standar dalam bentuk Library yang dapat digunakan komunikasi dan bersifat
independen. Dengan konsep arsitektur ini dan kelebihan dari API (lihat materi
sebelumnya tentang API), hal ini mengatasi kelemahan dari ESB yang telah diuraikan
sebelumnya.