M3Ly4

BiNusian weblog

SOA (Service Oriented Architecture)

April17

SOA (Service Oriented Architecture) adalah suatu gaya arsitektur sistem y yang membuat dan menggunakan proses bisnis dalam bentuk paket layanan sepanjang siklus hidupnya . SOA juga mendefinisikan dan menentukan arsitektur teknologi informasi (TI) yang dapat menunjang berbagai aplikasi untuk saling bertukar data dan berpartisipasi dalam proses bisnis. Fungsi-fungsi ini tidak terikat dengan sistem operasi dan bahasa pemrograman yang mendasari aplikasi-aplikasi tersebut.

SOA membagi fungsi-fungsi menjadi unit-unit yang berbeda (layanan), yang dapat didistribusikan melalui suatu jaringan dan dikombinasikan serta digunakan ulang untuk membentuk aplikasi bisnis. Layanan-layanan ini saling berkomunikasi dengan mempertukarkan data antar mereka atau dengan mengkoordinasikan aktivitas antara dua atau lebih layanan. Konsep SOA sering dianggap didasari atau berkembang dari konsep-konsep yang lebih lama dari komputasi terdistribusi dan pemrograman modular .

Arsitektur Berorientasi menyediakan layanan yang lebih komprehensif dan tangkas cara untuk mengintegrasikan sistem informasi dan proses bisnis lebih dari integrasi pendekatan tradisional. Perusahaan perlu reskill staf mereka untuk memanfaatkan metodologi baru ini.

Dengan SOA, aplikasi-aplikasi tidak lagi dibangun bersifat monolitik, SOA dibentuk dengan merangkai berbagai service modular. “Suatu service bisa berupa satu fungsi dari sebuah piranti lunak, misalnya fungsi GetAccountBalance atau CancelOrder. Fungsi tersebut bisa dieksekusi atas permintaan sistem apapun, tanpa memandang platform sistem operasinya, bahasa pemrogramannya, maupun lokasi geografisnya.

Implementasinya SOA dewasa ini, dalam bentuk web services , boleh dibilang merevolusi pengembangan piranti lunak. Dulu memang sudah ada distributed software architecture , yang juga menjanjikan agility dan penggunaan kembali komponen. Namun, cara itu memiliki kelemahan.

Untuk melakukan integrasi, seluruh komponen harus menggunakan object model atau bahasa pemrograman yang sama. Nah, web services menghilangkan halangan itu dan sanggup beroperasi melampaui batas yang memisahkan platform Microsof dari Unix, atau .Net dari J2EE,

Singkatnya, SOA bisa membantu menyederhanakan integrasi aplikasi dan manajemen proses.Jika Anda ingin memiliki proses bisnis yang lebih fleksibel dan adaptif, pindahkan aplikasi-aplikasi TI Anda ke SOA.

Keunggulan SOA

Pada SOA, para software developer membangun aplikasi-aplikasi komposit ( composite applications ) dengan saling menghubungkan atau memadukan berbagai layanan dalam suatu alur proses, yang semuanya ditampilkan sebagai satu service .

Kemampuan SOA memadukan proses dengan merangkai building block service standar merupakan inti dari kelincahan yang dijanjikan BPM. Piranti desain SOA standar menjadikan pembuatan sebuah model service secepat dan semudah menggambar sebuah diagram alur layanan. Piranti yang sama juga akan membuat model tersebut menjadi sebuah proses bisnis yang dapat dieksekusi.

Selain itu, bahasa berbasis XML yang digunakan untuk memadukan berbagai service itu juga telah distandarkan. Bahasa yang dinamakan Business Process Execution Language (BPEL) ini didukung berbagai vendor BPM dan hampir sebagian besar vendor infrastruktur maupun vendor enterprise application integration (EAI). Jadi, SOA juga memperlihatkan portabilitas model proses, yang bisa dieksekusi di berbagai platform infrastruktur dan dikelola menggunakan piranti desain yang tidak bergantung vendor tertentu.

Ada berbagai pendekatan untuk mewujudkan service – service ini. Salah satu cara adalah membuat kode programnya dari nol. Saat ini, server-server aplikasi dari vendor seperti IBM, Microsoft, BEA dan Oracle saling bersaing dalam hal piranti untuk membuat custom code yang bisa digunakan sebagai reusable web services . Kalau tidak ingin repot membuat kode sendiri, tersedia alternatif lain, yaitu “membungkus” sistem yang ada dengan komponen-komponen middleware bernama integration adapter . Adapter ini bisa ditampilkan fungsionalitasnya sebagai web service tanpa harus membuat kode.

Cara lain adalah membeli service itu dari para vendor aplikasi enterprise. Versi terbaru aplikasi enterprise, seperti dari SAP dan Siebel kini sudah dikemas dalam bentuk koleksi web services , yang siap dipadukan secara terpisah ( out-of-the-box ). Terakhir, Anda juga bisa mengakses service pihak ketiga melalui Web dengan menggunakan registry . Atau, Anda bisa mengombinasikan service – service yang diterapkan dengan cara di atas dalam suatu paduan proses bisnis. Keunggulan-keunggulan seperti itulah yang ditawarkan SOA.

Di banyak perusahaan, TI identik dengan cost center. Itulah sebabnya mengapa banyak perusahaan kini menaruh minat pada gagasan SOA (Service Oriented Architecture), yang menjanjikan pengembangan peranti lunak lebih cepat, fleksibel dan hemat biaya. Namun, ada beberapa hal yang perlu diperhatikan ketika perusahaan memutuskan untuk melangkah lebih jauh dengan SOA.

Pada dasarnya, SOA adalah arsitektur teknologi informasi yang menitikberatkan pada layanan (services), dimana komponen-komponen peranti lunak dapat digunakan kembali (reused) dan dipadukan kembali (recombined) dengan fleksibel.

Di lingkungan arsitektur peranti lunak berbasis SOA, yang memanfaatkan berbagai mekanisme standar seperti misalnya eXtensible Markup Language (XML), komponen-komponen peranti lunak itu tampil di jaringan menawarkan services, yang kemudian dimanfaatkan aplikasi-aplikasi lainnya. Alhasil, bagi departemen TI, cara ini lebih produktif. Kini mereka bisa dengan mudah mengubah atau membangun services baru tanpa harus membongkar berbagai jenis aplikasi satu per satu.

Filosofi desain peranti SOA memaksa perusahaan untuk membuat reusable service, ketimbang membuat satu aplikasi utuh. Aspek reuse atau penggunaan kembali di dalam SOA ini berdampak pada penghematan biaya, karena para pengembang peranti lunak bisa meminimalkan kode-kode software yang berlebihan, selain waktu pengembangan software juga lebih cepat. Hal ini berarti pula perusahaan bisa lebih siap merespon perubahan kebutuhan kastamer maupun rekanan usahanya.

Alan Goldstein, managing director, divisi technology risk management dan architecture, Bank of New York mengatakan bahwa SOA memungkinkan banknya memangkas 15 sampai 20 persen biaya pengembangan dan pengujian aplikasi baru. Waktu pengembangannya pun bisa dipangkas 10 persen.

“Hal yang benar-benar diperhatikan  manajemen dan para pengelola bisnis di tempat kami adalah bagaimana menyediakan fungsionalitas yang inovatif kepada kastamer secepat mungkin, bekualitas tinggi dan cost-effective,” ujar Goldstein.

Efisiensi semacam inilah yang menjadi daya tarik utama SOA. Tak heran jika tren SOA belakangan semakin merebak. Perusahaan-perusahaan utama di AS misalnya, kini semakin banyak yang merangkul teknologi SOA.

Perusahaan riset Forrester Research tahun lalu mengeluarkan prediksi bahwa lebih dari separuh perusahaan-perusahaan besar di AS akan menggunakan SOA mulai akhir tahun lalu. Sementara perusahaan-perusahaan yang sudah terlebih dulu memanfaatkan SOA, hampir 70 persennya berniat meningkatkan penggunaannya di masa depan.


Kolaborasi TI dan bisnis

Seperti halnya inisiatif TI lainnya, SOA pun membutuhkan kerjasama erat antara departemen TI dengan lines of business perusahaan. Karena, bagaimanapun juga, seperti dikatakan Ajjampur dari Hartford, sebuah service didefinisikan sesuai dengan suatu kebutuhan spesifik bisnis. “Untuk membangun SOA seutuhnya, Anda perlu memahami apa yang ingin dicapai pengelola bisnis,” ujarnya.

Agar kolaborasi TI – bisnis ini berjalan lancar, sejumlah perusahaan melakukan pendekatan yang berbeda-beda. Thompson Learning misalnya membentuk semacam dewan yang terdiri dari para chief technology officer (CTO) dari masing-masing unit bisnis grup perusahaan. Mereka rutin melakukan pertemuan untuk membuat dan memperbaiki strategi teknologinya berdasarkan strategi masing-masing unit bisnis.

“Dengan cara ini, kami memastikan bahwa strategi teknologi kami sudah sejalan dengan strategi bisnisnya. Sedangkan dari sisi pengembangan peranti lunak, kami pun bisa memastikan bahwa kami memanfaatkan services yang sudah ada dan membuat servicesservices itu,” ujar Ray Lowrey, senior vice president dan CTO di Thomson Learning. sedemikian rupa sehingga memungkinkan penggunaan kembali (reuse).

Sementara itu, Bank of New York juga membentuk semacam dewan enterprise architecture. Dewan ini mengumpulkan para pakar arsitektur dari berbagai aktifitas pengembangan bank, yang biasanya berafiliasi dengan masing-masing link bisnis. Dewan ini mendorong pengadopsian common services dan juga memainkan peran dalam mengkaji seluruh usulan pengembangan aplikasi. Sebuah proyek pengembangan aplikasi di bank tersebut tidak akan berjalan sebelum arsitekturnya disetujui.

Agar implementasi SOA bisa diterima semua pihak, edukasi para stakeholder pun sangat diperlukan. Perusahaan perlu mengedukasi baik sisi teknologi maupun bisnis perusahaan. Edukasi semacam ini diharapkan juga akan memicu dialog antara kedua pihak, yang nantinya diharapkan juga akan menguak nilai positif SOA dengan lebih cepat.

Hubungan antara bisnis dan teknologi yang lebih dekat akan meningkatkan kemungkinan departemen TI bisa memberikan apa yang diinginkan para pengelola bisnis.

Salah satu keunggulan SOA adalah perusahaan tidak perlu membuang aplikasi-aplikasi legacy-nya, sekalipun SOA akan lebih banyak melibatkan pengembangan peranti-peranti lunak baru. Menurut Kevin Bohan, CIO Proginet Corp., sebuah vendor peranti lunak integrasi data, aplikasi-aplikasi lama sebenarnya dapat ditampilkan sebagai services, apakah itu melalui integrasi dari titik-ke-titik (point-to-point integration), peranti messaging queue maupun middleware, dan menghubungkannya dengan arsitektur yang lebih luas.


enam hal yang perlu dicermati.

Pertama, harus selalu diingat bahwa SOA adalah sebuah arsitektur. Jadi SOA tidak tergantung pada satu jenis teknologi atau metodologi saja. SOA bisa diimplementasi dengan berbagai teknik dan teknologi, karena SOA terdiri dari berbagai design principles. Berdasarkan pengamatan, kesuksesan implementasi SOA banyak ditentukan oleh mind frame seperti tersebut di atas.

Kedua, perlu diingat juga bahwa SOA bukan web services karena penerapan SOA adalah untuk semua jenis jasa (services) di sebuah perusahaan. Organisasi atau institusi yang tidak bisa membedakan antara SOA dan web services akan tertinggal dalam memanfaatkan SOA dalam konteks skalabilitas dan fleksibilitas.

Ketiga, dahulukanlah fungsi yang dibutuhkan bukan produk. Institusi yang lebih mendahulukan produk akan terperangkap dengan keterbatasan kemampuan/kapabilitas produk yang telah dibeli. Kita harus selalu mendahulukan fungsi yang dibutuhkan, karena dari kebutuhan tersebut kita bisa menganalisis secara objektif kapabilitas apa saja yang kita inginkan dari produk.

Keempat , tidak semua aplikasi harus diubah (convert) ke SOA. Harus selalu diingat bahwa keunggulan SOA adalah fleksibilitas. Jadi, aplikasi-aplikasi yang akan diubah ke SOA adalah aplikasi-aplikasi yang memang membutuhkan fleksibilitas tinggi.

Kelima, SOA bisa dimulai dalam skala yang kecil. Walaupun SOA menawarkan keuntungan yang sangat besar, implementasi SOA tetap mengandung risiko kegagalan. Sebaiknya organisasi/institusilebih konservatif melalui penerapan SOA secara bertahap dan dimulai dalam skala yang kecil.

Keenam, melakukan balancing antara hasil jangka pendek dan tujuan/objektif jangka panjang. Dengan melakukan proyek SOA secara bertahap, dimungkinkan untuk melakukan analisis bagaimana hasilnya bisa menjadi komplemen dari tujuan jangka panjang pada penerapan SOA secara menyeluruh.