Belajar Instan Service Oriented Architecture


Dalam pembangunan perangkat lunak kita mengenal berbagai jenis arsitektur yang direpresentasikan dalam Architecture Description Language (ADL) seperti ACME, Aesop, dan SADL. Arsitektur tersebut tidak dapat dipisahkan dengan style atau pattern yang merupakan sekumpulan prinsip pembangunan perangkat lunak. Prinsip tersebut disesuaikan dengan area domain, fokus, kapabilitas, dan batasan masalah. Jenisnya ada banyak, contoh: MVC (Model-View-Controller), client/server, component-based, layered, dan lain-lain, salah satunya adalah Service Oriented Architecture (SOA).

Style (selanjutnya akan kita sebut sebagai ‘cara’) SOA meliputi tiga kata kunci: servis, aplikasi, dan infrastuktur. Servis dalam SOA memiliki karakter yang mirip dengan komponen pada cara Component-Based, antara lain:

  • menggambarkan proses atau fungsi bisnis
  • dapat digunakan berulang-ulang
  • dapat dikonfigurasi ulang
  • berinteraksi dengan servis atau aplikasi lain

SOA dan CBSE sering diidentikkan, tetapi jika diperhatikan perbedaannya adalah sebagai berikut:

  • SOA merupakan sebuah style arsitektur, berprinsip mengumpulkan servis-servis yang saling berkomunikasi sebagaimana mereka dibutuhkan, misalnya kumpulan web service, keluarannya berupa servis atau fungsionalitas baru yang mengkoordinasikan berbagai aktivitas
  • CBSE merupakan sebuah teknik pengembangan, berprinsip membuat sistem dari komponen-komponen yang independen dan berasal dari sumber yang berbeda-beda, keluarannya berupa sistem baru

Tujuan SOA antara lain:

  • Mengeliminasi redundansi
    Servis-servis dengan fungsionalitas yang sama dapat diimplementasikan dan digunakan untuk semua aplikasi
  • Memudahkan penambahan fungsionalitas
    Aplikasi baru dapat menggunakan servis yang telah tersedia, sebaliknya servis baru pada suatu aplikasi dapat digunakan oleh aplikasi lain
  • Adaptasi sistem terhadap perubahan
    SOA menyediakan mekanisme standar komunikasi antara aplikasi dan servis sehingga jika ada perubahan pada servis tidak akan mengganggu keberjalanan aplikasi yang menggunakannya
  • Mempertahankan nilai legacy system
    Legacy system dapat diartikan sebagai sistem lama atau sistem yang telah ada sebelumnya (legacy= warisan, peninggalan). Tujuan yang ini saya agak nggak ngerti. Ceritanya, aplikasi mengakses servis dengan cara yang standar melalui infrastruktur SOA yang memang punya mekanisme standar komunikasi tadi itu lho. Yang sibuk bukan aplikasi karena servis yang bertugas meng-invoke apa-apa yang ada di legacy system


Apa yang harus dilakukan untuk mewujudkan sistem dengan cara SOA? Inilah beberapa panduan tugas untuk SDM penting yang terlibat:

Pengembang Infrastruktur Pengembang Aplikasi Penyedia Servis
  • Pemilihan standar implementasi
  • Dokumentasi infrastruktur
  • Identifikasi dan pengembangan mekanisme binding
  • Menyediakan tools untuk pengembang aplikasi dan servis
  • Pengembangan sekumpulan servis infrastruktur bersama untuk discovery, komunikasi, security, dsb.
  • Memahami infrastruktur SOA
  • Menerima dan memahami dokumentasi deskripsi servis
  • Menemukan servis yang sesuai untuk disatukan ke dalam aplikasi
  • Meng-invoke servis yang diidentifikasi pada aplikasi, termasuk konversi data, penanganan kesalahan, dan penyediaan penanganan itu sendiri
  • Menguji servis untuk validasi dalam konteks aplikasi yang sedang dibangun
  • Memahami infrastruktur SOA
  • Menggambarkan dan mempublikasikan alias dokumentasi servis
  • Memahami kebutuhan pengguna servis yang potensial
  • Membangun kode yang menerima permintaan servis, menerjemahkannya ke dalam sistem yang baru atau yang sudah ada, dan menghasilkan respon
  • Mengembangkan kode inisialisasi servis dan prosedur operasional

Tahapan SOA

Service discovery: look up repository untuk menemukan servis yang sesuai
Service composition: integrasi servis ke dalam aplikasi
Service invocation: pemanggilan servis

Infrastruktur SOA

Infrastruktur SOA mengadopsi infrastruktur aplikasi 3-tier sebagai berikut:

Client tier: disebut juga presentation tier; sebagai klien atau front-end; berkaitan dengan interaksi dengan pengguna.
Application tier: sebagai server, back-end, atau middleware; memroses permintaan dari semua klien
Resource tier: disebut juga database tier; terdiri dari sistem manajemen basis data (DBMS) untuk mengelola semua data persisten

Elemen SOA

Service directory: tempat bersemayamnya servis-servis
Service provider (server), contoh: WSDL, punya kontrak dengan service consumer berupa service interface, service description, dan service level agreement (kesepakatan standar keamanan di level apa, bagaimana performansinya, dsb.)
Service consumer (client): komunikasi ke server melalui service interface

Empat pilar pengembangan SOA

Strategic alignment
Menghubungkan strategi inovasi dengan visi perusahaan, tujuan, dan sasaran. Dalam SOA, diharapkan tercapainya infrastruktur, SOA yang fleksibel, repository servis yang kuat, dan guideline komposisi yang jelas.
SOA governance
Konsep yang digunakan untuk melaksanakan kegiatan yang berkaitan dengan layanan kontrol dalam sebuah SOA
Technology evaluation
Perlu dievaluasi apakah SOA sesuai dengan tugas atau pekerjaan, harus sesuai konteks dan kondisi
Change of mindset
Pengembangan SOA dengan cara tradisional berbeda, mulai dari hubungan aplikasi dan servis yang fleksibel, pengguna servis yang tidak tentu, dan banyaknya pihak yang terlibat dalam penyediaan servis

(bersambung)

Leave a comment

1 Comment

  1. Belajar Instan Model Driven Architecture « .:: si /-|ebat ::.

Wait! Don't forget to leave a reply here.. :D

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: