2010-05-26

Fundamental Concept of SOA

Service Oriented Architecture (SOA) adalah sebuah permodelan perangkat lunak yang dibangun dengan pendekatan service oriented. Service oriented merupakan sebuah pendekatan yang memiliki visi ideal di mana setiap resource dari perangkat lunak terpartisi secara bersih satu sama lain. Karena istilah “service oriented" telah ada untuk beberapa waktu, SOA telah digunakan dalam konteks yang berbeda dan untuk berbagai tujuan. Logika yang diperlukan untuk memecahkan suatu masalah besar dapat dibangun lebih baik dan terkelola jika didekomposisikan menjadi kumpulan kecil. Pendekatan SOA melibatkan solusi teknologi dan otomatisasi. Hal ini membentuk sebuah teori yang dapat digunakan untuk mengatasi berbagai masalah.

Bila digabungkan dengan terminologi "architecture", service oriented mengandung pengertian teknis. "Service oriented architecture" adalah istilah yang merupakan model di mana otomatisasi logika diuraikan menjadi lebih kecil dan berbeda unit logika. Setiap resource yang terdapat dalam SOA disebut dengan service. Service ini merepresentasikan sebuah business logic atau automation logic dalam sebuah sistem besar. Setiap service memiliki otonomi sendiri yang membuatnya tidak tergantung satu sama lain. Setiap service dapat berkomunikasi satu sama lain melalui sebuah protokol yang sudah terstandarisasi sehingga memudahkan untuk melakukan integrasi service baru dan penyusunan ulang kumpulan service disebabkan proses bisnis yang berubah.

Service Oriented Architecture memungkinkan TI untuk melakukan suatu transisi dari pendekatan aplikasi menuju pada suatu pendekatan proses bisnis. TI memiliki suatu kebebasan untuk mengkombinasikan layanan bisnis dari berbagai aplikasi untuk menyampaikan suatu dukungan proses bisnis end-to-end. Mekanisme integrasi dari SOA memungkinkan terjadinya loosely coupled integration, sehingga bagian IT dapat melakukan upgrade atau mengubah aplikasi yang satu tanpa mempengaruhi aplikasi yang lain.

Adapun kelebihan dari permodelan SOA adalah sebagai berikut :
1. Dapat menyatukan berbagai sistem yang memiliki platform berbeda, seperti J2EE dan .NET. Dengan pendekatan ini, pengembang akan memilih untuk membangun sebuah layer di atas sistem - sistem tersebut yang dapat saling berkomunikasi dengan pesan yang sudah distandardisasi, misalnya menggunakan teknologi XML. Dalam sudut pandang SOA, kedua sistem itu masing-masingnya akan dianggap sebagai service.

2. Tahan terhadap perubahan. Perusahaan atau organisasi besar seringkali berubah struktur untuk meningkatkan efisiensi dan kinerja. Akibatnya, perangkat lunak juga terkena imbas untuk menyesuaikan diri terhadap proses bisnis yang baru. Permodelan perangkat lunak dengan SOA akan mengurangi effort untuk modifikasi perangkat lunak tersebut. Seluruh logic dari sistem sudah terpartisi secara bersih menjadi sekumpulan services sehingga hanya perlu menyusun ulang seluruh service tersebut dan jika perlu menambahkan yang baru. Hal ini jelas mengurangi biaya.

Benefit pengimplementasian SOA dapat dikelompokkan menjadi empat yaitu :
a. Mengurangi biaya integrasi
b. Meningkatkan reuseability
c. Meningkatkan business agility
d. Pengurangan resiko bisnis
Keempat benefit tersebut menawarkan pengembalian di berbagai tingkat dan bagian organisasi, tergantung pada rangkaian masalah bisnis perusahaan tersebut untuk menerapkan SOA.

Prinsip – prinsip yang dapat digunakan dalam penerapan SOA antara lain :
a. Dokumen Bisnis Proses. Baik bottom-up atau top-down, ketersediaan dokumentasi proses bisnis penting dalam memberikan SOA nyata dalam dirinya.
b. Implementasi SOA merupakan suatu evolusi - mulai dengan pilot, memberikan nilai bisnis dan add-on secara bertahap.
c. The SOA Pelaksanaan harus berdasarkan loosely coupled service yang memberikan fleksibilitas yang tinggi dan terus-menerus karena biaya yang lebih rendah untuk reuseability dan pemeliharaan.
d. Services tersebut harus memenuhi standar interface untuk memungkinkan integrasi yang baik dan interoperabilitas dengan layanan lainnya.
e. Bisnis mengendalikan services dan services yang akan mengendalikan teknologi.
f. Business Agility merupakan dasar untuk SOA
SOA mendorong setiap services berdiri sendiri namun tidak terisolasi satu sama lainnya. Services masih diperlukan untuk memenuhi prinsip – prinsip yang memungkinkan mereka untuk berkembang secara mandiri, tetapi tetap mempertahankan jumlah commonality dan standardisasi yang cukup.
Untuk mempertahankan independensi services, services mengenkapsulasi logika dalam konteks yang berbeda. Konteks ini dapat spesifik untuk business task, entitas bisnis, atau beberapa logical grouping lainnya.
Perhatian yang ditujukan oleh services dapat kecil atau besar. Oleh karena itu, ukuran dan ruang lingkup logika yang diwakili oleh services dapat bervariasi. Service logic dapat mencakup logika yang diberikan oleh layanan lainnya. Dalam hal ini, satu atau banyak layanan akan menjadi kolektif. Misalnya, otomatisasi solusi bisnis yang biasanya merupakan pelaksanaan proses bisnis. Proses ini terdiri dari logika yang mendikte tindakan yang dilakukan oleh solusi. Logika diuraikan menjadi serangkaian langkah-langkah yang dijalankan dalam urutan sesuai dengan standar business rules dan kondisi waktu yang sedang berjalan.

Ketika membangun otomatisasi solusi yang terdiri dari berbagai services, setiap service dapat mengenkapsulasi tugas yang dilakukan oleh individual step atau sub-proses yang terdiri dari serangkaian langkah. Services bahkan dapat mengenkapsulasi seluruh proses logika. Untuk services yang menggunakan logika yang mereka enkapsulasi, services tersebut dapat berpartisipasi dalam aktivitas bisnis. Untuk melakukannya, services tersebut harus membentuk hubungan yang berbeda dengan mereka yang ingin menggunakannya.

Dalam SOA, suatu services dapat digunakan oleh services atau program lainnya. Apapun, hubungan di antara services – services tersebut didasarkan pada pemahaman bahwa services untuk berinteraksi, services tersebut harus menyadari satu sama lainnya. Kesadaran ini dicapai melalui penggunaan service descriptions. Untuk services yang berinteraksi dan menyelesaikan sesuatu yang berarti, mereka harus saling bertukar informasi. Kerangka komunikasi yang mampu menjaga hubungan loosely coupled tersebut diperlukan. Salah satu kerangka tersebut adalah messaging.


Gambar di atas menunjukkan karena memiliki akses services description ke service B, service A mempunyai semua informasi yang dibutuhkan untuk berkomunikasi dengan service B. Setelah sebuah service mengirimkan message, service tersebut akan kehilangan kontrol atas apa yang terjadi pada message tersebut. Itulah sebabnya mengapa diperlukan pesan sebagai "independent units of communication". Hal Ini berarti message, seperti services, harus berdiri sendiri. Untuk itu, message dapat dilengkapi intelijensia yang cukup untuk memerintahkan diri mereka sebagai bagian dari processing logic.

Services yang menyediakan services description dan berkomunikasi melalui message, akan membentuk basic arsitektur. Sejauh ini, arsitektur ini muncul mirip dengan distributed architecture lama yang mendukung messaging dan pemisahan interface dari processing logic. Yang membedakan adalah tiga komponen inti tersebut (services, descriptions, dan messages) dirancang. Ini merupakan tempat di mana services-orientation hadir.


Seperti object-oriented, services-oriented menjadi sebuah pendekatan desain berbeda yang memperkenalkan prinsip – prinsip yang mengatur positioning dan desain arsitektur komponen. Aplikasi prinsip service-oriented untuk mengolah logika tampak pada service-oriented processing logic yang telah terstandarisasi. Ketika sebuah solusi terdiri service-oriented processing logic, hal tersebut menjadi apa yang kita lihat sebagai services-oriented solution. Di bawah ini merupakan beberapa aspek kunci SOA :
a. Loosely coupled, menjaga hubungan yang mengurangi dependensi dan hanya mengharuskan mereka mempertahankan kesadaran yang satu sama lainnya.
b. Service contract, sesuai dengan kesepakatan komunikasi seperti yang telah ditetapkan secara bersama oleh satu atau lebih services description dan dokumen terkait.
c. Layanan otonomi, memiliki kontrol terhadap logika yang dienkapsulasi.
d. Abstraction, selain apa yang telah disebutkan dalam service contract, services menyembunyikan logic dari dunia luar.
e. Reusability, Logic dibagi menjadi services dengan tujuan meningkatkan reusability
f. Kumpulan composability services dapat dikoordinasikan dan digabungkan untuk membentuk composite services.
g. Statelessness Services, meminimalkan menahan informasi khusus untuk suatu kegiatan.
h. Discoverability Services, dirancang untuk menjadi outwardly descriptive sehingga dapat ditemukan dan dinilai melalui mekanisme discovery yang tersedia.

Dengan pengetahuan tentang komponen yang terdiri arsitektur dasar dan sekumpulan prinsip-prinsip desain yang dapat digunakan untuk membentuk dan menstandarisasi semua komponen, yang belum dilakukan adalah implementation platform yang akan memungkinkan untuk bersama-sama membangun service-oriented automation solutions. Teknologi Web services menawarkan platform tersebut. Istilah "service-oriented" dan berbagai model abstrak SOA ada sebelum datangnya Web Services.



SOA terbagi menjadi empat komponen. Komponen SOA menetapkan level enterprise logic abstraction. Komponen tersebut antara lain :

a. Message
Sebuah message mewakili data yang diperlukan untuk menyelesaikan sebagian atau seluruh bagian dari unit kerja.

b. Operation
Sebuah operation mewakili logic yang diperlukan untuk memproses message untuk mengisi unit kerja

c. Services
Services merupakan kumpulan operation yang dikelompokkan secara logic yang mampu melakukan operasi yang berhubungan dengan unit kerja. Service yang digunakan dalam SOA harus memiliki sifat loose coupling; dan memiliki fungsi yang dapat dipanggil dari luar service itu sendiri.
Loose coupling berarti sebuah service itu tidak bergantung pada bahasa yang membangunnya, bebas dari ketergantungan platform, dan tidak bergantung pada lokasi; dan juga dapat diintegrasikan dengan sistem yang ada. Tujuan utama dari loose coupling ini adalah untuk mempermudah proses lepas / pasang pada sistem yang sudah berjalan, dan arti kata mudah di sini adalah, bahwa pada saat sebuah service dilepas/pasang, tidak ada perubahan yang berarti pada sistem yang sedang berjalan.

d. Process
Sebuah process berisi business rules yang menentukan service operation manakah yang digunakan untuk menyelesaikan unit otomatisasi. Dengan kata lain, process merupakan bagian besar dari pekerjaan yang memerlukan penyelesaian yang lebih kecil dari unit kerja


Hubungan antar komponen SOA dapat dijabarkan sebagai berikut :

a. Sebuah operation mengirim dan menerima message untuk melakukan pekerjaan.
b. Suatu operation ditentukan oleh message yang diproses.
c. Sebuah service mengelompokkan suatu kumpulan yang berkaitan dengan operations.
d. Sebuah service ditentukan oleh operations yang dikandungnya.
e. Sebuah process dapat menciptakan service.
f. Sebuah process tidak harus ditentukan oleh service-nya karena mungkin hanya memerlukan sekumpulan fungsionalitas yang ditawarkan oleh service.
g. Sebuah process membutuhkan urutan operation yang unik untuk menyelesaikan otomasi.
h. Sebagian dari setiap process ditentukan oleh service operations yang menggunakannya.

Hampir semua vendor besar platform saat ini mendukung terciptanya service-oriented solution. Adapun vendor – vendor tersebut adalah sebagai berikut :
a. IBM
IBM SOA Foundation - Model Phase:
* WebSphere Business Modeler
* Rational Software Architect
IBM SOA Foundation - Assemble Phase:
* WebSphere Integration Developer
* Rational Application Developer
* Lotus Domino Designer
* WebSphere Portlet Factory
* Rational Tester for SOA Quality
IBM SOA Foundation - Deploy Phase:
* WebSphere DataPower SOA Appliances
* WebSphere Process Server
* WebSphere ESB
* WebSphere Message Broker
* WebSphere Adapters
* WebSphere Portal
* WebSphere Application Server
* WebSphere Extended Deployment
* IBM Information Server
* WebSphere Business Services Fabric
* WebSphere MQ
* Lotus Expeditor
* FileNet P8
IBM SOA Foundation - Manage Phase:
* Tivoli Access Manager
* Tivoli Composite Application Manager for SOA
* Tivoli Federated Identity Manager
* Tivoli Provisioning Manager
* WebSphere Business Monitor
IBM SOA Foundation - Governance
* WebSphere Service Registry and Repository
* Rational Asset Manager
* Tivoli Change and Configuration Management Database
Services
* IBM Global Services
* IBM jStart Program

b. Oracle
- Untuk Development :
* Oracle WebLogic Server
* Oracle JDeveloper
- Untuk Deployment :
* Fusion Middleware, termasuk di dalamnya Oracle SOA Suite, Oracle WebCenter, Oracle Identity Management, dan komponen lainnya.
Komponen Oracle SOA Suite terdiri dari Oracle BPEL Process Manager dan Oracle Service Bus
- Oracle Application Server
- Oracle SOA Governance Suite mencakup Oracle Service Registry and Oracle Enterprise Repository

c. SAP
- SAP Enterprise Service Repository
- SAP NetWeaver Application Server
- SAP Business Suite
- SAP GRC

d. Microsoft Corporation
- .NET Framework
- BizTalk Server
- Visual Studio
- Office
- Visual SourceSafe and Team Foundation Server
e. RedHat
- JBoss Application Platform
- JBoss ESB
- JBoss jBPM

f. Sun Microsystems
- Java Enterprise Service Bus
- Java Business Integration (JBI)
- Sun Java Composite Application Platform Suite (Java CAPS)
- Developer Tool :
~ Java Studio Creator
~ Java Studio Enterprise

g. Sonic
- Sonic ESB
- Progress® Sonic BPEL Server™
- Progress® Sonic Workbench™
- Progress® Sonic Database Service™
- Progress® Sonic Deployment Manager
- Adapters for Sonic ESB®
- Progress® Sonic XML Server™
- Actional for Sonic ESB Management.
- Progress® DataXtend™ Semantic Integrator (SI)


KESIMPULAN

Service Oriented Architecture (SOA) merupakan konsep pengembangan perangkat lunak yang melakukan partisi sistemnya menjadi beberapa service yang dapat berdiri secara independent. Service menjadi kunci dari SOA. SOA menawarkan suatu bentuk arsitektur sistem yang dibangun berdasarkan service.Dalam SOA, proses bisnis yang besar dan kompleks di pecah menjadi service yang lebih kecil dan sederhana. SOA terdiri dari beberapa komponen yaitu message, operation, services, process, di mana terdapat keterkaitan antara komponen – komponen SOA tersebut. Ada baiknya jika proyek SOA tersebut tidak diserahkan sepenuhnya kepada para vendor karena perusahaan yang bersangkutan-lah yang mengetahui proses bisnis detil yang ada dalam perusahaan tersebut. Perencanaan dan waktu yang tepat untuk implementasi SOA tidak dapat dialihkan tanggungjawabnya kepada vendor. Agar implementasi SOA bisa diterima semua pihak, edukasi para stakeholder sangat diperlukan. Perusahaan perlu mengedukasi baik dari sisi teknologi maupun dari sisi bisnis perusahaan.


REFERENSI


Erl, Thomas., “Service Oriented Architecture Concept, Technology, and Design”, 2005. Prentice Hall.

http://www.ibm.com

http://www.soa.com

http://www.sonicsoftware.com

http://www.sun.com

http://torryharris.wordpress.com/2008/07/29/what-is-soa-service-oriented-architecture/

http://brahmasta.net/2006/11/04/implementasi-soa-dalam-web-services/

No comments:

Post a Comment