Kompleksitas IT
telah meningkat secara siginifikan dalam kurun waktu 20 tahun ini, dengan makin
banyaknya aplikasi baru yang hadir dan di-implementasikan dalam organisasi
untuk menciptakan efisiensi dalam departemen, core business, dan back office.
Trend ini akan terus berlanjut untuk tahun-tahun berikutnya karena makin
banyaknya aplikasi dan metodologi baru yang hadir, ditambah lagi dengan mulai maraknya Enterprise Aplication yang
telah banyak diadopsi oleh banyak Perusahaan.
Banyak perusahaan
sekarang menghadapi tantangan besar untuk me-manage data secara efektif untuk memastikan orang yang tepat memiliki
akses terhadap informasi yang dibutuhkan kapanpun mereka membutuhkannya.
Hal ini
mengakibatkan tingginya permintaan terhadap integrasi data real-time
intra-departemen, antar system dan antara lokasi kantor yang berbeda.
Seringkali
permintaan "SEDERHANA" dari Business Owners terhadap Informasi tepat
guna dalam kenyataannya lebih kompleks karena back-end system yang saling
terkait satu sama lain dan aplikasi existing yang sulit untuk di-trace
juntrungannya.
Application to Application (A2A) dan Business to Business (B2B)
integration
Enterprise
Application Integration (EAI) dan Message Oriented Middleware (MOM /
middleware) adalah tools yang umumnya digunakan untuk memfasilitasi A2A dan B2B
integration. Tools ini umumnya berupa adapters, transformation logic dan
reliable messaging modules di core framework-nya.
- Adapters : Adapters umumnya digunakan
sebagai sarana untuk pertukaran informasi dengan aplikasi bisnis seperti
SAP atau PeopleSoft, tapi bisa juga digunakan untuk berkomunikasi melalui
protokol seperti TCPIP atau dengan bisnis aplikasi lain dengan perantara
XML
- Transformation
logic :
Digunakan untuk mengubah tipe informasi yang bisa dibaca oleh satu system
menjadi tipe format berbeda yang bisa dimengerti system lain.
- Messaging : Kunci untuk solusi
integrasi adalah messaging yang cepat dan dapat diandalkan. Contoh
messaging : JMS, TIBCO, etc.
Notes:
Messaging hanya mensupport SOAP-based web service, dan tidak mensupport format
HTTP GET/POST, REST, dll. Itulah sebab kenapa kita pertama-tama harus dapat
menguasai SOAP web service.
Service Oriented Architecture (SOA) dan Enterprise Service Bus
(ESB) integration
Service Oriented
Architecture (SOA) adalah sebuah himpunan dari design principles (ada beberapa
design principle, bukan cuma satu) yang digunakan dalan systems development dan
integration. SOA muncul karena banyaknya inefficiencies dari implementasi yang
menggunakan arsitektur point-to-point atau arsitektur hub-and-spoke.
P2P / Hub and Spoke
Arsitektur P2P dan
hub and spoke akan melumpuhkan bisnis karena setiap perubahan memerlukan effort
yang luar biasa dan resiko yang tidak kalah besarnya.
Dengan makin
banyaknya pendatang baru dalam enterprise integration dengan membawa tools SOA
masing-masing. SOA kini digadang-gadang sebagai "future architecture for
enterprise integration" dan "significant business value" dapat
direalisasikan dari implementasi SOA asalkan di-deliver secara benar.
SOA dapat secara
tepat mengexpose functionality dari aplikasi kita sebagai services,
memungkinkan kita untuk mengorkestrasikan workflow
processes lintas system yang berbeda. Enterprise Service Bus (ESB) adalah
platform yang umum digunakan dalam merealisasikan SOA. ESB mem-provides
functionality untuk messaging, complex event processing, management, routing
dan mediation.
SOA / ESB
Enterprise service
bus mengurangi redundansi dan tight coupling diantara system yang berbeda, sehingga secara drastis mengurangi
resiko dan memungkinkan reuseability secara signifikan.
Skenario ESB bagi programmer
Implementasi yang umumnya digunakan sekarang adalah P2P. Setiap aplikasi (misalnya portals.) akan mendefine system apa saja yang harus digunakan, data apa yang harus diterima dan dikirim, validasi user diambil dari database mana, transaksi log-nya akan disimpan di system mana, dan lain sebagainya. Dan itu hanya dari satu aplikasi, coba lakukan untuk aplikasi yang lain. Proses yang sama pastinya akan berulang.
Sehingga kalo kita melihat secara global, untuk semua aplikasi, hasilnya adalah keruwetan luar biasa seperti yang kita lihat pada gambar diatas (sebelum Enterprise service bus).
Jika kita menggunakan SOA, dengan ESB sebagai platformnya, maka caranya akan sedikit berbeda. Coba lihat gambar diatas. Panah diatas mewakili Web Service. Setiap aplikasi akan melakukan pemanggilan ke web service dan sebaliknya akan dipanggil oleh aplikasi lain melalui web service.
Semua functionality akan terpusat di ESB, sehingga kita hanya harus memanage semua functionality kita (Web service) dari Web Admin ESB. Dalam ESB, kita bisa mengassign user siapa saja yang bisa mengakses web service, memberikan security berupa data encryption dalam SOAP XML datanya, dll. Lebih lanjut bisa dibaca standarisasi SOA di
https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=soa-blueprints
Karena semua functionality kita terpusat di ESB, semua pemanggilan akan melalui ESB, sehingga kita harus meningkatkan performance dari Web traffic-nya. Disini, kita memerlukan Load Balancing dan Failover strategy seperti yang kita sudah bahas sebelumnya.
Mudah-mudahan bisa memberikan pencerahan.