Apa itu SOA? Berorientasi Layanan ArchiPrinsip Tekstur
Apa itu SOA (Berorientasi Layanan Architekstur)?
Berorientasi pada Layanan Architekstur (SOA) adalah pola arsitektur dalam desain perangkat lunak komputer di mana komponen aplikasi menyediakan layanan kepada komponen lain melalui protokol komunikasi, biasanya melalui jaringan. Prinsip orientasi layanan tidak bergantung pada produk, vendor, atau teknologi apa pun.
SOA hanya memudahkan komponen perangkat lunak melalui berbagai jaringan untuk bekerja satu sama lain.
Layanan web yang dibangun berdasarkan arsitektur SOA cenderung membuat layanan web lebih mandiri. Layanan web itu sendiri dapat saling bertukar data dan karena prinsip dasar pembuatannya, layanan web tidak memerlukan interaksi manusia apa pun dan juga tidak memerlukan modifikasi kode apa pun. Hal ini memastikan bahwa layanan web pada jaringan dapat berinteraksi satu sama lain dengan lancar.
Berorientasi Layanan ArchiPrinsip Teknologi (SOA).
Ada 9 jenis prinsip desain SOA yang disebutkan di bawah ini
1. Kontrak Layanan Standar
Layanan mematuhi deskripsi layanan. Suatu layanan harus memiliki semacam deskripsi yang menjelaskan tentang layanan tersebut. Hal ini memudahkan aplikasi klien untuk memahami apa yang dilakukan layanan.
2. Kopling Longgar
Less ketergantungan satu sama lain. Ini adalah salah satu karakteristik utama layanan web yang menyatakan bahwa harus ada ketergantungan sesedikit mungkin antara layanan web dan klien yang memanggil layanan web. Jadi jika fungsi layanan berubah pada suatu waktu, hal itu tidak akan merusak aplikasi klien atau menghentikannya dari bekerja.
3. Abstraksi Pelayanan
Layanan menyembunyikan logika yang mereka rangkum dari dunia luar. Layanan tidak boleh mengungkapkan cara menjalankan fungsinya; itu seharusnya hanya memberi tahu aplikasi klien tentang apa yang dilakukannya dan bukan bagaimana cara melakukannya.
4. Layanan Dapat Digunakan Kembali
Logika dibagi menjadi beberapa layanan dengan tujuan memaksimalkan penggunaan kembali. Di perusahaan pengembang mana pun, kegunaan kembali adalah topik besar karena tentu saja seseorang tidak ingin menghabiskan waktu dan tenaga untuk membuat kode yang sama berulang kali di beberapa aplikasi yang memerlukannya. Oleh karena itu, setelah kode untuk layanan web ditulis, kode tersebut harus memiliki kemampuan untuk bekerja dengan berbagai jenis aplikasi.
5. Otonomi Pelayanan
Layanan harus memiliki kendali atas logika yang dirangkumnya. Layanan mengetahui segalanya tentang fungsionalitas yang ditawarkannya dan karenanya juga harus memiliki kontrol penuh atas kode yang dikandungnya.
6. Pelayanan Tanpa Kewarganegaraan
Idealnya, layanan harus bersifat stateless. Ini berarti bahwa layanan tidak boleh menyembunyikan informasi dari satu negara bagian ke negara bagian lainnya. Ini perlu dilakukan dari aplikasi klien. Contohnya adalah pesanan yang dilakukan di situs belanja. Sekarang Anda dapat memiliki layanan web yang memberi Anda harga barang tertentu. Namun jika barang ditambahkan ke keranjang belanja dan halaman web menavigasi ke halaman tempat Anda melakukan pembayaran, tanggung jawab harga barang yang akan ditransfer ke halaman pembayaran tidak boleh dilakukan oleh layanan web. Sebaliknya, hal ini perlu dilakukan oleh aplikasi web.
7. Kemampuan untuk Menemukan Layanan
Layanan dapat ditemukan (biasanya dalam registri layanan). Kita telah melihat hal ini dalam konsep UDDI, yang menjalankan registri yang dapat menyimpan informasi tentang layanan web.
8. Komposabilitas Layanan
Pelayanan memecah masalah besar menjadi masalah kecil. Seseorang tidak boleh menanamkan semua fungsionalitas aplikasi ke dalam satu layanan tunggal, melainkan memecah layanan menjadi modul-modul yang masing-masing memiliki fungsi bisnis terpisah.
9. Interoperabilitas Layanan
Layanan harus menggunakan standar yang memungkinkan beragam pelanggan untuk menggunakan layanan tersebut. Dalam layanan web, standar sebagai XML dan komunikasi melalui HTTP digunakan untuk memastikannya sesuai dengan prinsip ini.