Prinsip SOA (Service Oriented Architecture)

Anonim

Arsitektur berorientasi layanan (SOA) adalah pola arsitektur dalam desain perangkat lunak komputer di mana komponen aplikasi menyediakan layanan ke komponen lain melalui protokol komunikasi, biasanya melalui jaringan. Prinsip-prinsip orientasi layanan tidak bergantung pada produk, vendor, atau teknologi apa pun.

SOA memudahkan komponen perangkat lunak melalui berbagai jaringan untuk bekerja satu sama lain.

Layanan web yang dibangun sesuai arsitektur SOA cenderung membuat layanan web lebih mandiri. Layanan web itu sendiri dapat bertukar data satu sama lain dan karena prinsip dasar pembuatannya, mereka tidak memerlukan interaksi manusia apa pun dan juga tidak memerlukan modifikasi kode apa pun. Ini memastikan bahwa layanan web di jaringan dapat berinteraksi satu sama lain dengan mulus.

SOA didasarkan pada beberapa prinsip utama yang disebutkan di bawah ini

  1. Kontrak Layanan Standar - Layanan mematuhi deskripsi layanan. Suatu layanan harus memiliki semacam deskripsi yang menjelaskan tentang apa layanan itu. Ini mempermudah aplikasi klien untuk memahami apa yang dilakukan layanan.
  1. Kopling Longgar - Lebih sedikit ketergantungan satu sama lain. Ini adalah salah satu karakteristik utama dari layanan web yang hanya menyatakan bahwa harus ada ketergantungan seminimal mungkin antara layanan web dan klien yang menjalankan layanan web. Jadi jika fungsionalitas layanan berubah kapan saja, itu tidak akan merusak aplikasi klien atau menghentikannya dari bekerja.
  1. Abstraksi Layanan - Layanan menyembunyikan logika yang diringkasnya dari dunia luar. Layanan tidak boleh mengekspos bagaimana menjalankan fungsinya; itu seharusnya hanya memberi tahu aplikasi klien tentang apa yang dilakukannya dan bukan tentang bagaimana ia melakukannya.
  1. Service Reusability - Logic dibagi menjadi beberapa layanan dengan tujuan memaksimalkan penggunaan kembali. Dalam setiap perusahaan pengembangan, penggunaan ulang adalah topik besar karena jelas orang 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.
  1. Otonomi Layanan - Layanan harus memiliki kendali atas logika yang dirangkumnya. Layanan ini tahu segalanya tentang fungsionalitas apa yang ditawarkannya dan karenanya juga harus memiliki kendali penuh atas kode yang dikandungnya.
  1. Layanan Tanpa Kewarganegaraan - Idealnya, layanan harus tanpa kewarganegaraan. Ini berarti bahwa layanan tidak boleh menahan informasi dari satu negara bagian ke negara bagian lainnya. Ini perlu dilakukan dari aplikasi klien. Contohnya dapat berupa 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 mengarah ke halaman tempat Anda melakukan pembayaran, tanggung jawab harga barang yang akan ditransfer ke halaman pembayaran tidak boleh dilakukan oleh layanan web. Sebaliknya, itu perlu dilakukan oleh aplikasi web.
  1. Kemudahan Dapat Ditemukan Layanan - Layanan dapat ditemukan (biasanya dalam registri layanan). Kami telah melihat ini dalam konsep UDDI, yang melakukan registri yang dapat menyimpan informasi tentang layanan web.
  1. Komposabilitas Layanan - Layanan memecah masalah besar menjadi masalah kecil. Seseorang tidak boleh menyematkan semua fungsionalitas aplikasi ke dalam satu layanan, melainkan memecah layanan menjadi modul yang masing-masing memiliki fungsionalitas bisnis terpisah.
  1. Interoperabilitas Layanan - Layanan harus menggunakan standar yang memungkinkan pelanggan yang beragam untuk menggunakan layanan. Dalam layanan web, standar seperti XML dan komunikasi melalui HTTP digunakan untuk memastikannya sesuai dengan prinsip ini.