Apa yang dimaksud dengan Arsitektur Berorientasi Layanan atau Service-oriented architecture (SOA) ?

Arsitektur Berorientasi Layanan atau SOA (service oriented architecture) 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 pemrograman yang mendasari aplikasi-aplikasi tersebut.

Apa yang dimaksud dengan Service-oriented architecture (SOA) ?

Service-oriented architecture (SOA) adalah suatu struktur yang menunjang komunikasi antara services. SOA mendefinisikan bagaimana dua bagian computing, seperti program-program saling berinteraksi dalam suatu cara yang memungkinkan satu bagian menjalankan suatu bagian pekerjaan untuk bagian lainnya. Interaksi-interaksi service didefinisikan dengan mengunakan bahasa tertentu. Setiap interaksi merupakan self-contained dan loosely coupled, sehingga masing-masing interaksi berdiri sendiri[1].

Proses bisnis yang terjadi dalam teknlogi informasi dapat menjadi lebih responsive. Hal tersebut disebabkan komponen serta proses yang terjadi pada SOA lebih fleksibel dan mudah dikembangkan, dikombinasikan dan didistribusikan secara cepat untuk menunjang proses bisnis. SOA memiliki peran penting dalam suatu perusahaan karena sifatnya yang loosely-coupled (tingkat kebergantungan antar komponen rendah), highly interoperable (mudah dioperasikan), reusable (dapat digunakan kembali), dan interoperability (dapat berkomunikasi antar platform) untuk mendukung tercapainya tujuan bisnis dalam suatu perusahaan.

Komponen – komponen SOA


ESB (Enterprise Service Bus)

ESB mengatur alur dari pesan melewati aplikasi yang berbeda, mendalangi komunikasi dan memunginkan sebuah methode untuk mengakses aplikasi pesan data. Proses ini bukan untuk integrasi data melainkan sebuah mekanisme pesan[2]

BPM (Business Process Management)

Sebuah prosedur untuk memetakan proses bisnis yang tidak baik dalam berbagai aplikasi yang berfungsi sebagai control apa yang harus dilakukan oleh aplikasi dan manusia dalam pengoptimalisasian proses bisnis.[3]

Service

Software yang menkordinasi infrastruktur SOA sehinggan layanan bisnis dapat didukung dan dikelola sesuai dengan yang didefinisikan dengan Servis Level Agreements.

SOA Registry

Sebuah sumber tunggal untuk semua metadata yang diperlukan untuk memanfaatkan layanan Web dari komponen software dalam lingkungan SOA.

Layanan Broker

Software dalam kerangka SOA yang membawa komponen bersama-sama menggunakan aturan yang terkait dengan setiap komponen.

SOA Service Architecture


Dalam pengimplementasian SOA, setiap perusahaan membutuhkan arsitektur layanan yang berbeda. (contoh pada gambar)

Pada contoh gambar, beberapa konsumen layanndapat meminta layanan dengan mengirimkan pesan. Pesan ini biasanya diubah dan diarahkan untuk implementasi layanan yang sesuai. Arsitektur layanan ini dapat memberikan mesin aturan bisnis yang memungkinkan bisnis dapat masuk kedalam seluruh layanan. Arsitektur layanan lainnya juga dapat menyediakan infrastruktur layanan yang dapat mengelola layanan dan kegiatan seperti audit, penagihan, dan logging.

Infrastruktur SOA


Untuk menjalankan dan mengelola aplikasi SOA, perusahaan perlu infrastruktur SOA yang merupakan bagian dari platform SOA. Infrastruktur SOA harus mendukung semua standar yang relevan dan sesuai dengan runtime containers.

SOAP,WSDL,UDDI

WSDL, UDDI, dan SOAP adalah potongan-potongan dasar infrastruktur SOA. WSDL digunakan untuk menggambarkan layanan. UDDI, untuk mendaftar dan mencari layanan dan SOAP, sebagai lapisan transport untuk mengirimkan pesan antara konsumen layanan dan penyedia layanan. Sementara SOAP adalah mekanisme standar untuk layanan Web, teknologi alternatif mencapai jenis mengikat untuk layanan. Seorang konsumen dapat mencari layanan di registry UDDI, dapatkan WSDL untuk layanan yang memiliki deskripsi, dan menjalankan layanan dengan menggunakan SOAP[1].

WS-I Basic Profile

WS-I Basic Profile , yang disediakan oleh Web Services Interoperability Organization, berubah menjadi sepotong inti lain yang diperlukan untuk pengujian layanan dan interoperabilitas. Penyedia layanan dapat menggunakan Basic Profil test suite untuk menguji interoperabilitas layanan di seluruh platform dan teknologi yang berbeda.

J2EE dan Net

Meskipun J2EE dan Net platform adalah platform pengembangan yang dominan untuk aplikasi SOA, SOA tidak hanya terbatas pada platform ini. Platform seperti J2EE tidak hanya menyediakan kerangka kerja bagi pengembang untuk secara alami berpartisipasi dalam SOA, tetapi juga, oleh sifat yang melekat mereka, membawa infrastruktur yang matang dan terbukti untuk skalabilitas, keandalan, ketersediaan, dan kinerja ke dunia SOA. Spesifikasi baru seperti API Java untuk XML Binding (JAXB), digunakan untuk dokumen pemetaan XML untuk kelas Java, Java API untuk XML Registry (JAXR), digunakan untuk berinteraksi dengan pendaftar UDDI secara standar, dan API Java untuk berbasis XML remote Procedure call (XML-RPC), yang digunakan untuk memanggil layanan terpencil di J2EE 1.4 memfasilitasi pengembangan dan penyebaran layanan Web yang portabel di wadah J2EE standar, sementara secara bersamaan interoperasi dengan layanan di seluruh platform lainnya seperti Net.

Manfaat SOA


Dengan adanya SOA respon bisnis akan lebih cepat dan efektid biaya dalam melihat kondisi pasar. Gaya arsitektur memanfaatkan menggunaan kembali pada level makro (service) dari pada level mikro (classes)[4]. Hal ini juga dapat mempermudah interkoneksi terhadap pengguna TI yang memiliki aset (legacy)

Dengan SOA, semua bisnis dapat memiliki kontrol dengan lebih menyeluruh. Mereka juga dapat mengembangkan wide-industry dengan SOA yang telah merangkum infrastruktur berorientasi bisnis.

Dalam beberapa hal, SOA dapat dianggap sebagai evolusi arsitektur daripada sebagai revolusi. Dengan merangkul pendekatan SOA, sistem tersebut dapat memposisikan diri untuk menekankan pentingnya highly inter-operable interfaces.

Referensi

[1] http://www.javaworld.com/article/2071889/soa/what-is-service-oriented-architecture.html
[2] What are the components of service-oriented architecture (SOA)? | TechTarget
[3] Software Articles - dummies
[4] Christopher Koch A New Blueprint For The Enterprise, CIO Magazine, March 1, 2005
[5] Understanding Service-Oriented Architecture | Microsoft Learn