Selasa, 09 Oktober 2012

SOA (Service Oriented Architecture)


Service Oriented Architecture ( SOA )
Service Oriented Architecture ( SOA ) adalah suatu gaya arsitektur sistem 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 pemrogramanyang 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 ingin memiliki proses bisnis yang lebih fleksibel dan adaptif, pindahkan aplikasi-aplikasi TI ke SOA.

Kelebihan SOA :
Implementasi SOA pada perusahaan relative membutuhkan biaya yang cukup besar. Akan tetapi, dengan perencanaan yang baik, SOA dapat memberikan keuntungan yang lebih besar. Keuntungan dapat dirasakan dari segi biaya dan waktu, antara lain:
n Penghematan
Dengan membangun suatu koleksi services, penghematan dapat dimulai. Jika pada proyek yang pertama, waktu dan tenaga yang dihabiskan paling besar, maka proyek selanjutnya, usaha yang dikeluarkan akan makin kecil karena sudah banyak tersedia services sebagai hasil dari proyek sebelumnya yang dapat di-reuse.
n Kecepatan
Dalam SOA, proses bisnis dipecah dan disederhanakan dalam bentuk service yang lebih kecil. Ketergantungan yang ada antar service harus diminimalisir. Sehingga apabila terjadi perubahan pada suatu proses bisnis, cukup service yang berkaitan saja yang mengalami perubahan. Tidak perlu seluruh sistem. Dengan begini, sistem dapat merespon perubahan dengan cepat.
n Real-time responsive
Dalam service-service tersimpan business rules dan batasan-batasan dalam bisnis. Dan service-service ini disimpan dan dikelola dalam sebuah server aplikasi yang disebut ESB. Sehingga berbagai jenis aplikasi dapat mengakses business rules tersebut. Apabila terjadi suatu perubahan terhadap business rules, ESB akan mengelolanya secara otomatis. Sehingga business rules yang baru akan berlaku saat itu juga.
n Channel independent
Bisnis berkaitan dengan banyak pihak, Baik pelanggan maupun supplier. Berbagai pihak yang behubungan dengan organisasi tentu saja memungkinkan adanya berbagai jenis aplikasi yang berbeda-beda. Dengan adanya service dan ESB, memungkinkan untuk berbagai aplikasi tersebut untuk mengakses business rules yang telah kita definisikan. Sehingga pihak-pihak yang berkaitan dengan organisasi tidak tergantung lagi terhadap suatu aplikasi tertentu yang telah kita definisikan.
n Waktu pengembangan yang lebih singkat
Dalam SOA, bisnis proses yang dipecah dalam bentuk service yang lebih kecil memungkinkan perubahan dan pengembangan pada service yang tertentu saja. Karena pengembangan dilakukan secara terfokus, waktu yang dibutuhkanpun menjadi lebih sedikit.
n Mengurangi duplikasi
Service dalam SOA dikelola dalam server aplikasi yang disebut ESB. Karena service dikelola secara terpusat, hal ini akan mengurangi kemungkinan adanya duplikasi sistem. Selain itu, bentuk service yang memungkinkan reuseability juga mengurangi adanya fungsi yang sama yang ada didalam sebuah sistem.
Kekurangan / Kegagalan SOA
n Kegagalan dalam membuat businness case untuk SOA
Bagian IT seringkali membuat kesalahan dengan menganggap proyek SOA sebagai proyek IT. Padahal SOA bukanlah proyek yang dapat dikerjakan IT sendiri. Tetapi harus mencakup seluruh departmen dalam organisasi. Proses bisnis dimiliki dan dijalankan oleh tiap-tiap departmen. Oleh karena itu diperlukan keterlibatan setiap departmen untuk mendapatkan pengertian yang lebih mendalam dalam setiap proses bisnis yang akan diolah.
n Menyerahkan proyek SOA sepenuhnya ke vendor
Terkadang perusahaan mempercayakan sepenuhnya proyek SOA kepada vendor, dan bergantung hanya kepada teknologi. Padahal SOA bukan hanya masalah teknologi, dan pengembangannyapun tidak dapat diserahkan sepenuhnya kepada pihak luar. Yang mengetahui secara detail mengenai proses bisnis yang ada dalam perusahaan hanyalah orang-orang yang ada dalam perusahaan tersebut. Oleh karena itu tidak sebaiknya prosesnya sepenuhnya diserahkan kepada vendor diluar perusahaan.
n Kegagalan dalam rencana dan eksekusi awal dalam implementasi
SOA akan membawa banyak perubahan dalam perusahaan. Karena itu perlu waktu yang tepat untuk melakukan implementasi, agar tidak menimbulkan resiko yang tinggi. Perencanaan perlu dilakukan secara matang. Dan perencanaan dan waktu yang tepat untuk implementasi tidak dapat dialihkan tanggungjawabnya kepada vendor.

Tidak ada komentar:

Posting Komentar