Monday, March 21, 2011

Pengenalan – Arsitektur yang berorientasi layanan (SOA – Service Oriented Architecture)

Pengenalan SOA dalam bentuk 5 Roll
Roll pertama : SOA
Service-oriented architecture (SOA) adalah sebuah paradigma untuk realisasi dan pemeliharaan proses bisnis yang besar dan menjangkau sistem terdistribusi. Hal ini didasarkan pada tiga konsep teknis utama:
  1. Layanan (Service)
  2. Interoperabilitas melalui ESB (Enterprise Service Bus)
  3. Keterikatan yang renggang (Loose Coupling)
Untuk lebih jelasnya mari saya jelaskan satu-persatu bagaimana 3 hal diatas tersebut:
  • Sebuah layanan (service) adalah bagian dari bisnis yang mandiri secara fungsionalitas. Bisa jadi merupakan fungsi sederhana (menyimpan atau mengambil data pelanggan), atau kompleks (suatu proses bisnis untuk pesanan pelanggan). Karena layanan berkonsentrasi pada nilai bisnis dari sebuah antarmuka, dimana layanan dapat menjembatani usaha atau mengurangi kesenjangan TI.
  • Sebuah Enterprise Service Bus (ESB) adalah suatu infrastruktur yang memungkinkan interoperabilitas tinggi antara layanan sistem yang terdistribusi. Itu memudahkan untuk mendistribusikan proses bisnis-proses bisnis pada beberapa sistem yang menggunakan berbeda platform dan teknologi (multi-platform/hybrid dan monolithic).
  • Loose coupling adalah sebuah konsep sistem untuk mengurangi ketergantungan (interdependency) dari suatu sistem, karena seluruh proses bisnis dapat didistribusikan kepada beberapa backend sekaligus, disini sangat menjadi penting utk diperhatikan bahwa meminimalisir efek dari suatu perubahan dan kegagalan. Jika tidak modifikasi sistem akan sangat beresiko terhadap keseluruhan lansekap sistem.
Roll kedua :: Policies and Processes (Kebijakan-kebijakan dan Proses-proses)
Sistem Terdistribusi bukanlah teknis semata, namun Sistem Terdistribusi dapat merubah cara kerja suatu perusahaan seperti: Memperkenalkan suatu fungsi baru adalah bukan merupakan suatu assignment terhadap suatu spesifik departemen dan tugas spesifik saja, namun sekarang sudah merupakan beberapa tugas kombinasi utk beberapa sistem, dimana sistem ini membutuhkan team utk berkolaborasi satu sama lainnya.
Sebagai konsekuensinya adalah kita harus segera mendefinisikan secara jelas roles, policies dan processes. Dimana proses-proses tersebut adalah termasuk tapi tidak terbatas dalam mendefinisikan service-lifecycle dan mengimplementasikan model-driven dalam membangun suatu layanan. Sebagai tambahan anda harus melakukan set-up terhadap beberapa proses membangun software terdistribusi.

Roll ketiga ::: Web Service
Web Service adalah suatu cara dalam merealisasikan aspek teknis dari SOA (Notes: Namun SOA tidak hanya aspek teknis saja SOA lebih dari itu).
Implementasi Web Service haruslah disesuaikan dalam beberapa hal, seperti berikut ini:
  1. Menggunakan Web Service Standard, web service yang sudah distandarisasi oleh W3C dan OASIS
  2. Dapat disesuaikan dengan kebutuhan yang mengacu kepada loose couple modul dari sistem
  3. Dapat melakukan re-use terhadap beberapa service yang sering digunakan dengan menerapkan Shared-Service
  4. Web Service tidak tepat utk dilakukan pada sistem yang menggunakan high-speed transaction, cobalah menggunakan messaging yg native.
  5. Hindari koneksi point-to-point integrasi karena akan menciptakan masalah dikemudian hari.
  6. Gunakan Enterprise Service Bus (ESB) dalam mengimplementasi koneksi Web Service sehingga dapat mengimplementasikan secara penuh SOA Governance dimana pada ESB terdapat Service Management, Penetapan SLA dan QoS dari service-service yang telah dideploy pada ESB.
Roll keempat :::: SOA in Practice
Ada quote menarik :
In theory, theory and practice are the same. In practice, they are not.
—L. Berra
Tentu saja quote tersebut juga berlaku untuk SOA, dimana General Business Case dan konsep tidak dapat bekerja seperti yang diharapkan ketika beberapa faktor seperti performansi dan keamanan menjadi suatu issue. Pada contoh simple realitanya bahwa SOA adalah merupakan suatu strategi untuk existing sistem yang mana dalam kondisi under-maintenance (pemeliharaan) dan mempunyai issue dalam masalah performansi dan kestabilan sistem.
Pada suatu IT, bahwa setiap sistem itu berbeda maka konsekuensinya adalah anda harus membangun SOA yang spesifik, anda tidak dapat membelinya, utk membangun dan membentuknya, anda perlu waktu dan suatu metode yang mengacu pada suatu lifecycle : approach -> incremental dan small iteratif.
Sebagai catatan: Bagaimanapun anda memperkenalkan pentingnya SOA, namun jangan hanya hal yg pentingnya saja, Yang tepat adalah apakah solusi tersebut sesuai dengan kebutuhan konteksnya dan requirementnya anda.
Roll kelima ::::: SOA Governance and Management Support.
Yang paling penting dalam SOA aspek adalah menemukan pendekatan yang tepat dan sejumlah governance dibawah ini:
  • Anda membutuhkan central team dimana ini akan menjadi Center of Excellent (CoE), dimana tugasnya adalah dapat menentukan beberapa aspek umum dari spesifikasi SOA anda. Namun sebagai Ultimate goalnya adalah melakukan de-sentralisasi (dimana ini merupakan sebuah kunci dari sistem yang besar dan kompleks), maka anda haruslah menemukan dan menentukan keseimbangan antara centralization-decentralization, jika anda menemui sistem seperti itu gunakan cara memecah (de-couple) dan melakukan re-arrange dan re-coupling lagi disesuaikan dengan fungsi dan kebutuhannya agar menghindari duplikasi fungsi, juga dapat melakukan re-use terhadap komponen-komponen atau fungsi-fungsi yang sering digunakan dan memisahkannya kedalam Shared-Service sementara yang bersifat core dan unik dapat stay dalam lingkungan backend aplikasi.
  • Anda memerlukan orang yang tepat, dimana sistem yang besar dan kompleks adalah berbeda dgn sistem yang sederhana dan kecil, maka pilihlah orang yang sangat mengenal dan berpengalaman dengan sistem tersebut.
  • First thing first, jangan memulai dengan level Management Service, anda memerlukan management jika Service/layanan sudah banyak. jangan memulai dengan pendekatan dimana mendahulukan design utk seluruh service atau mendahulukan service pada level infrastuktur, itu harus dilakukan bersama ketika sedang berkembang ketika sedang tumbuh dan berproses maka anda dapat memikirkan solusi utk melakukan improvement terhadap service-service tersebut dan menyelesaikan issue-issue yang terkait dengan problem-problem yang sedang berjalan pada service tersebut.
  • Last but not least, anda harus mendapatkan support dari CEO dan CIO ini sangat penting agar SOA yang anda rancang dan implementasikan dapat berjalan tanpa ada hambatan, alasannya adalah karena SOA merupakan suatu strategy yang melibatkan perusahaan secara keseluruhan, dapatkan support dan yakinkan konsep SOA anda ke mereka guna mendapatkan waktu dan biaya dalam mengimplementasikan SOA anda. Bukan investasi besar untuk jangka pendek yang tepat utk SOA namun investasi pada jangka panjang, memotong budget SOA tidaklah bijaksana dimana nantinya akan me-lead anda pada jurang kehancuran/kegagalan.
sumber : http://miftahfauzy.wordpress.com/2010/03/03/84/

No comments:

Post a Comment