Prinsip SOA (Senibina Berorientasikan Perkhidmatan)

Anonim

Senibina berorientasikan perkhidmatan (SOA) adalah corak seni bina dalam reka bentuk perisian komputer di mana komponen aplikasi menyediakan perkhidmatan kepada komponen lain melalui protokol komunikasi, biasanya melalui rangkaian. Prinsip orientasi perkhidmatan tidak bergantung pada produk, vendor atau teknologi.

SOA memudahkan komponen perisian melalui pelbagai rangkaian untuk saling bekerjasama.

Perkhidmatan web yang dibina mengikut seni bina SOA cenderung menjadikan perkhidmatan web lebih mandiri. Perkhidmatan web itu sendiri dapat bertukar-tukar data antara satu sama lain dan kerana prinsip-prinsip asas yang mereka buat, mereka tidak memerlukan interaksi manusia dan juga tidak memerlukan pengubahsuaian kod. Ini memastikan bahawa perkhidmatan web di rangkaian dapat berinteraksi antara satu sama lain dengan lancar.

SOA berdasarkan beberapa prinsip utama yang dinyatakan di bawah

  1. Kontrak Perkhidmatan Standard - Perkhidmatan mematuhi keterangan perkhidmatan. Perkhidmatan mesti mempunyai beberapa jenis penerangan yang menerangkan tentang perkhidmatan tersebut. Ini memudahkan aplikasi pelanggan memahami apa yang dilakukan oleh perkhidmatan.
  1. Loose Coupling - Kurang bergantung antara satu sama lain. Ini adalah salah satu ciri utama perkhidmatan web yang hanya menyatakan bahawa harus ada ketergantungan sesedikit mungkin antara perkhidmatan web dan pelanggan yang meminta perkhidmatan web. Oleh itu, jika fungsi perkhidmatan berubah pada bila-bila masa, ia tidak boleh mematahkan aplikasi pelanggan atau menghentikannya daripada berfungsi.
  1. Perkhidmatan Abstraksi - Perkhidmatan menyembunyikan logik yang mereka kumpulkan dari dunia luar. Perkhidmatan tidak boleh mendedahkan bagaimana ia melaksanakan fungsinya; ia hanya perlu memberitahu aplikasi pelanggan mengenai apa yang dilakukannya dan bukan bagaimana cara melakukannya.
  1. Perkhidmatan Reusability - Logik dibahagikan kepada perkhidmatan dengan tujuan memaksimumkan penggunaan semula. Di mana-mana syarikat pembangunan, kebolehgunaan semula adalah topik yang besar kerana jelas seseorang tidak mahu menghabiskan masa dan usaha untuk membina kod yang sama berulang-ulang di pelbagai aplikasi yang memerlukannya. Oleh itu, setelah kod untuk perkhidmatan web ditulis, ia harus mempunyai kemampuan bekerja dengan pelbagai jenis aplikasi.
  1. Autonomi Perkhidmatan - Perkhidmatan harus mempunyai kawalan ke atas logik yang dirangkumnya. Perkhidmatan ini mengetahui segala fungsi yang ditawarkan dan oleh itu juga harus mempunyai kawalan penuh terhadap kod yang terdapat di dalamnya.
  1. Statelessness Perkhidmatan - Sebaik-baiknya, perkhidmatan mestilah tidak bernegara. Ini bermaksud bahawa perkhidmatan tidak boleh menahan maklumat dari satu negeri ke negeri lain. Ini perlu dilakukan sama ada dari aplikasi pelanggan. Contohnya ialah pesanan yang dibuat di laman membeli-belah. Sekarang anda boleh memiliki perkhidmatan web yang memberi anda harga barang tertentu. Tetapi jika item tersebut ditambahkan ke keranjang belanja dan halaman web menavigasi ke halaman di mana anda melakukan pembayaran, tanggungjawab harga barang yang akan dipindahkan ke halaman pembayaran tidak boleh dilakukan oleh perkhidmatan web. Sebaliknya, ia perlu dilakukan oleh aplikasi web.
  1. Kebolehcapaian Perkhidmatan - Perkhidmatan dapat ditemui (biasanya dalam pendaftaran perkhidmatan). Kami telah melihat ini dalam konsep UDDI, yang menjalankan pendaftaran yang dapat menyimpan maklumat mengenai perkhidmatan web.
  1. Keserasian Perkhidmatan - Perkhidmatan memecahkan masalah besar menjadi masalah kecil. Kita tidak boleh memasukkan semua fungsi aplikasi ke dalam satu perkhidmatan tetapi sebaliknya, memecah perkhidmatan menjadi modul masing-masing dengan fungsi perniagaan yang terpisah.
  1. Interoperabiliti Perkhidmatan - Perkhidmatan harus menggunakan piawaian yang membolehkan pelbagai pelanggan menggunakan perkhidmatan tersebut. Dalam perkhidmatan web, standard seperti XML dan komunikasi melalui HTTP digunakan untuk memastikannya sesuai dengan prinsip ini.