Monday, October 15, 2012

Prolog to Enterprise Service Bus [In Bahasa]


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.



4 comments:

  1. Bagus nih gan, menambah wawasan ane soal ESB-SOA.
    Cuma kok ane masih butuh prolog dari prolog tulisan ini yeah :D

    ReplyDelete
  2. Yup, memang masih banyak kata-kata asing yang harus dijelaskan satu persatu. Cuma akan kepanjangan dan bakalan jadi buku tentang SOA dan ESB, padahal niatnya cuma buat nge-blog .. hehehe ..

    Gimana kalo bro adityamukti, menanyakan aja secara spesifik yang bikin bingung yang mana. Mudah-mudahan bisa bantu.

    ReplyDelete
  3. Wah... benar-benar jelas dan sangat membantu pak :D
    Jadi untuk implemetasi ESB rata-rata pake P2P ya?

    Makasih atas artikelnya pak... :D

    ReplyDelete
    Replies
    1. Bukan nur, P2P adalah arsitektur klasik yang harus diganti oleh ESB. Karena seiring dengan semakin kompleksnya arsitektur sistem kita akan semakin sulit me-maintain P2P.

      Mungkin bisa dibaca lagi, agar lebih jelas. Contoh yang saya sebutkan adalah bagaimana P2P harus digantikan dengan teknologi yang berbasis Web Services (REST, SOAP) dan Messaging (JMS, TIBCO, etc). ESB bertindak sebagai Middlelayer-nya.

      Untuk lebih jelas mengenai produknya, bisa coba untuk lihat open source seperti MuleESB, WSO2 ESB, Jboss juga ngeluarin. Cuma disarankan pake yang lebih lengkap dokumentasi dan banyak ebook nya aja.

      Selamat mencoba

      Delete