Що таке SOA? Сервісно-орієнтований Archiтектурні принципи

Що таке SOA (сервісно-орієнтований Archiтектура)?

Орієнтований на обслуговування Archiтектура (SOA) це архітектурний шаблон у розробці комп’ютерного програмного забезпечення, в якому компоненти програми надають послуги іншим компонентам через протокол зв’язку, зазвичай через мережу. Принципи орієнтації на послуги не залежать від будь-якого продукту, постачальника чи технології.

SOA лише полегшує роботу компонентів програмного забезпечення в різних мережах один з одним.

Веб-сервіси, створені відповідно до архітектури SOA, мають тенденцію робити веб-сервіс більш незалежним. Самі веб-сервіси можуть обмінюватися даними один з одним, і через базові принципи, на яких вони створені, їм не потрібна будь-яка людська взаємодія, а також не потрібні жодні модифікації коду. Це гарантує, що веб-сервіси в мережі можуть безперебійно взаємодіяти один з одним.

Сервіс-орієнтований ArchiПринципи тектури (SOA).

Нижче наведено 9 типів принципів проектування SOA

1. Стандартизований договір про надання послуг

Послуги відповідають опису послуг. Послуга повинна мати певний опис, який описує, про що ця послуга. Це полегшує клієнтським програмам зрозуміти, що робить служба.

2. Слабке зчеплення

Less залежність один від одного. Це одна з основних характеристик веб-служб, яка лише стверджує, що має бути якомога менше залежності між веб-службами та клієнтом, який викликає веб-службу. Отже, якщо функціональні можливості служби змінюються в будь-який момент часу, це не повинно порушувати клієнтську програму або зупиняти її роботу.

3. Абстракція сервісу

Сервіси приховують логіку, яку вони інкапсулюють, від зовнішнього світу. Сервіс не повинен показувати, як він виконує свої функції; він повинен просто повідомляти клієнтській програмі про те, що він робить, а не про те, як він це робить.

4. Повторне використання послуги

Логіка розділена на служби з метою максимального повторного використання. У будь-якій компанії-розробнику можливість повторного використання є великою темою, оскільки, очевидно, ніхто не хотів би витрачати час і зусилля на створення того самого коду знову і знову в кількох програмах, які цього вимагають. Отже, після написання коду для веб-сервісу він повинен мати можливість працювати з різними типами програм.

5. Автономність обслуговування

Сервіси повинні контролювати логіку, яку вони інкапсулюють. Служба знає все про те, яку функціональність вона пропонує, і, отже, також повинна мати повний контроль над кодом, який вона містить.

6. Служба без громадянства

В ідеалі сервіси мають бути без стану. Це означає, що служби не повинні приховувати інформацію від однієї держави до іншої. Це потрібно зробити з клієнтської програми. Прикладом може бути замовлення на торговому сайті. Тепер ви можете мати веб-сервіс, який надає вам ціну певного товару. Але якщо товари додаються до кошика для покупок і веб-сторінка переходить на сторінку, де ви здійснюєте оплату, веб-служба не повинна нести відповідальність за перенесення ціни товару на сторінку оплати. Натомість це має зробити веб-додаток.

7. Виявленість сервісу

Послуги можна знайти (зазвичай у реєстрі послуг). Ми вже бачили це в концепції UDDI, яка створює реєстр, який може зберігати інформацію про веб-сервіс.

8. Компоновність сервісу

Служби розбивають великі проблеми на маленькі. Ніколи не слід вбудовувати всю функціональність програми в одну службу, замість цього слід розбивати службу на модулі, кожен з яких має окрему бізнес-функціональність.

9. Сумісність сервісів

Послуги повинні використовувати стандарти, які дозволяють різноманітним абонентам користуватися послугами. У веб-сервісах стандарти як XML і зв'язок через HTTP використовується для забезпечення відповідності цьому принципу.