Се́рвісно-орієнто́вана архітекту́ра (англ. Service-oriented architecture, SOA) — архітектурний шаблон програмного забезпечення, модульний підхід до розробки програмного забезпечення, заснований на використанні розподілених, слабко пов'язаних замінних компонентів, оснащених стандартизованими інтерфейсами для взаємодії за стандартизованими протоколами.
Значення
За словами [en], автора [en], до появи концепції SOA при розробці систем відправним моментом для програмування бізнес-логіки слугували діаграми робочих потоків і блок-схеми систем. Розроблені вручну програми ретельно тестувалися, після чого впроваджувалися. Сьогодні ситуація змінилася докорінно: сучасні інструменти управління бізнес-процесами дозволяють обійтися без ручної розробки та тестування. Так, за допомогою методів моделювання можна перевіряти коректність виконання бізнес-логіки, представленої в діаграмах, а потім автоматично отримувати описи цих діаграм на XML-мовах управління бізнес-процесами.
На думку Клайва Фінкельштейна, така технологія управління бізнес-процесами є великим кроком вперед з точки зору підвищення ефективності розробки систем; за значимістю її можна порівняти із створенням наприкінці 50-х років компіляторів мови високого рівня. Дійсно, даний підхід дозволяє спростити виклик Web-сервісів з будь-якого місця розташування і їх виконання на основі бізнес-правил. Крім того, при зміні цих правил, коригується відповідна логіка в діаграмах: діаграми автоматично генеруються заново. Таким чином, закладаються передумови для переходу від повільного ручного кодування, використовуваного зараз при створенні систем, до автоматизованого. Завдяки цьому компанії зможуть реалізовувати зміни бізнес-правил за хвилини або години, а не за місяць або рік.[]
Основні поняття
Дуже часто становлення того чи іншого підходу супроводжується появою невірних або хибних трактувань, як це було, наприклад, з концепцією федеративного сховища даних. Не оминуло стороною це і сервіс-орієнтовану архітектуру. Так вважає представник компанії BEA Джерімі Уестерман (Jeremy Westerman). Саме тому в одній із своїх статей, присвячених SOA, він спеціально зупиняється на «проблемних місцях» і наводить докладні пояснення:
- SOA не є чимось новим: IT-відділи компаній успішно створювали і розгортали застосунки, що підтримують сервіс-орієнтовану архітектуру, вже багато років — задовго до появи XML і Web-сервісів.
- SOA — це не технологія, а спосіб проектування і організації інформаційної архітектури та бізнес-функціональності.
- Купівля найновіших продуктів, що реалізують XML і Web-сервіси, не означає побудову застосунків згідно з принципами SOA.
Джерімі Уестерман дає наступне визначення SOA: це парадигма, призначена для проектування, розробки та управління дискретних одиниць логіки (сервісів) в обчислювальному середовищі. Застосування цього підходу вимагає від розробників проектування застосунків як набору сервісів, навіть якщо переваги такого рішення відразу неочевидні. Розробники повинні вийти за межі своїх застосунків і розміркувати, як скористатися вже наявними сервісами, або вивчити, як їхні сервіси можуть бути використані їх колегами.
SOA підштовхує до використання альтернативних технологій і підходів (таких як обмін повідомленнями) для побудови застосунків за допомогою зв'язування сервісів, а не за допомогою написання нового програмного коду. У цьому випадку, за належного проектування, застосування повідомленнь між застосунками дозволяє компаніям своєчасно реагувати на зміну ринкових умов — налаштовувати процес обміну повідомленнями, а не розробляти нові програми.
Ще донедавна термін «сервіс-орієнтована архітектура» був синонімом «Web-сервіс». SOA — виклик Web-сервісів за допомогою засобів і мов управління бізнес-процесами. SOA — це термін, який з'явився для опису виконуваних компонентів — таких як Web-сервіси — які можуть викликатися іншими програмами, які виступають клієнтами або споживачами цих сервісів. Ці сервіси можуть бути повністю сучасними — або навіть застарілими — прикладними програмами, які можна активізувати як "чорну скриню". Від розробника не потрібно знати, як працює програма, необхідно лише розуміти які вхідні та вихідні дані потрібні, і як викликати певні програми для виконання. У найзагальнішому вигляді SOA припускає наявність трьох основних учасників: постачальника сервісу, споживача сервісу та реєстру сервісів. Взаємодія учасників виглядає досить просто: постачальник сервісу реєструє свої сервіси в реєстрі, а споживач звертається до реєстру із запитом.
Для використання сервісу необхідно дотримуватися угоди про інтерфейс для звернення до сервісу — інтерфейс повинен не залежати від платформи. SOA реалізує масштабованість сервісів — можливість додавання сервісів, а також їх модернізацію. Постачальник сервісу і його споживач виявляються непов'язаними — вони спілкуються за допомогою повідомлень. Оскільки інтерфейс не повинен залежати від платформи, то і технологія, використовувана для визначення повідомлень, також не повинна залежати від платформи. Тому, як правило, повідомлення є XML-документами, які відповідають певній XML-схемі.
Дійсно, відкриті стандарти, що описують XML і Web-сервіси, дозволяють застосовувати SOA до всіх технологій і застосунків, встановлених в компанії. Як відомо, Web-сервіси базуються на широко поширених і відкритих протоколах: HTTP, XML, UDDI, WSDL і SOAP. Саме ці стандарти реалізують основні вимоги SOA — по-перше, сервіс має піддаватися динамічному виявленню і виклику (UDDI, WSDL і SOAP), по-друге, повинен використовуватися незалежний від платформи інтерфейс (XML). Нарешті, HTTP забезпечує функціональну сумісність.
Переваги використання SOA
Перш ніж, перерахувати переваги використання SOA, буде доречним нагадати, що переваги бувають різні: стратегічні і тактичні. SOA має ряд переваг як стратегічних, так і тактичних.
Стратегічна цінність SOA
- Скорочення часу реалізації проектів, або «часу виходу на ринок».
- Підвищення продуктивності.
- Швидша і дешевша інтеграція застосунків і інтеграція B2B.
Тактичні переваги SOA
- Простіша розробка і впровадження застосунків.
- Використання поточних інвестицій.
- Зменшення ризику, пов'язаного з впровадженням проектів в області автоматизації послуг і процесів.
- Можливість безперервного поліпшення наданої послуги.
- Скорочення числа звернень за технічною підтримкою.
- Підвищення показника повернення інвестицій (ROI).
- Перспективи
Джерела
- Що таке сервісно-орієнтована архітектура, англійською мовою (What is SOA?) [ 12 березня 2010 у Wayback Machine.]
- Принципи сервісно-орієнтованої архітектури, англійською мовою (SOA Principles) [ 9 липня 2007 у Wayback Machine.]
- Дізнатися про Сервісно-орієнтовану архітектуру, англійською мовою (MS Biztalk Server: Learn About Service Oriented Architecture) [ 3 липня 2007 у Wayback Machine.]
Див. також
Це незавершена стаття про програмування. Ви можете проєкту, виправивши або дописавши її. |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Se rvisno oriyento vana arhitektu ra angl Service oriented architecture SOA arhitekturnij shablon programnogo zabezpechennya modulnij pidhid do rozrobki programnogo zabezpechennya zasnovanij na vikoristanni rozpodilenih slabko pov yazanih zaminnih komponentiv osnashenih standartizovanimi interfejsami dlya vzayemodiyi za standartizovanimi protokolami ZnachennyaZa slovami en avtora en do poyavi koncepciyi SOA pri rozrobci sistem vidpravnim momentom dlya programuvannya biznes logiki sluguvali diagrami robochih potokiv i blok shemi sistem Rozrobleni vruchnu programi retelno testuvalisya pislya chogo vprovadzhuvalisya Sogodni situaciya zminilasya dokorinno suchasni instrumenti upravlinnya biznes procesami dozvolyayut obijtisya bez ruchnoyi rozrobki ta testuvannya Tak za dopomogoyu metodiv modelyuvannya mozhna pereviryati korektnist vikonannya biznes logiki predstavlenoyi v diagramah a potim avtomatichno otrimuvati opisi cih diagram na XML movah upravlinnya biznes procesami Na dumku Klajva Finkelshtejna taka tehnologiya upravlinnya biznes procesami ye velikim krokom vpered z tochki zoru pidvishennya efektivnosti rozrobki sistem za znachimistyu yiyi mozhna porivnyati iz stvorennyam naprikinci 50 h rokiv kompilyatoriv movi visokogo rivnya Dijsno danij pidhid dozvolyaye sprostiti viklik Web servisiv z bud yakogo miscya roztashuvannya i yih vikonannya na osnovi biznes pravil Krim togo pri zmini cih pravil koriguyetsya vidpovidna logika v diagramah diagrami avtomatichno generuyutsya zanovo Takim chinom zakladayutsya peredumovi dlya perehodu vid povilnogo ruchnogo koduvannya vikoristovuvanogo zaraz pri stvorenni sistem do avtomatizovanogo Zavdyaki comu kompaniyi zmozhut realizovuvati zmini biznes pravil za hvilini abo godini a ne za misyac abo rik dzherelo Osnovni ponyattyaDuzhe chasto stanovlennya togo chi inshogo pidhodu suprovodzhuyetsya poyavoyu nevirnih abo hibnih traktuvan yak ce bulo napriklad z koncepciyeyu federativnogo shovisha danih Ne ominulo storonoyu ce i servis oriyentovanu arhitekturu Tak vvazhaye predstavnik kompaniyi BEA Dzherimi Uesterman Jeremy Westerman Same tomu v odnij iz svoyih statej prisvyachenih SOA vin specialno zupinyayetsya na problemnih miscyah i navodit dokladni poyasnennya SOA ne ye chimos novim IT viddili kompanij uspishno stvoryuvali i rozgortali zastosunki sho pidtrimuyut servis oriyentovanu arhitekturu vzhe bagato rokiv zadovgo do poyavi XML i Web servisiv SOA ce ne tehnologiya a sposib proektuvannya i organizaciyi informacijnoyi arhitekturi ta biznes funkcionalnosti Kupivlya najnovishih produktiv sho realizuyut XML i Web servisi ne oznachaye pobudovu zastosunkiv zgidno z principami SOA Dzherimi Uesterman daye nastupne viznachennya SOA ce paradigma priznachena dlya proektuvannya rozrobki ta upravlinnya diskretnih odinic logiki servisiv v obchislyuvalnomu seredovishi Zastosuvannya cogo pidhodu vimagaye vid rozrobnikiv proektuvannya zastosunkiv yak naboru servisiv navit yaksho perevagi takogo rishennya vidrazu neochevidni Rozrobniki povinni vijti za mezhi svoyih zastosunkiv i rozmirkuvati yak skoristatisya vzhe nayavnimi servisami abo vivchiti yak yihni servisi mozhut buti vikoristani yih kolegami SOA pidshtovhuye do vikoristannya alternativnih tehnologij i pidhodiv takih yak obmin povidomlennyami dlya pobudovi zastosunkiv za dopomogoyu zv yazuvannya servisiv a ne za dopomogoyu napisannya novogo programnogo kodu U comu vipadku za nalezhnogo proektuvannya zastosuvannya povidomlenn mizh zastosunkami dozvolyaye kompaniyam svoyechasno reaguvati na zminu rinkovih umov nalashtovuvati proces obminu povidomlennyami a ne rozroblyati novi programi She donedavna termin servis oriyentovana arhitektura buv sinonimom Web servis SOA viklik Web servisiv za dopomogoyu zasobiv i mov upravlinnya biznes procesami SOA ce termin yakij z yavivsya dlya opisu vikonuvanih komponentiv takih yak Web servisi yaki mozhut viklikatisya inshimi programami yaki vistupayut kliyentami abo spozhivachami cih servisiv Ci servisi mozhut buti povnistyu suchasnimi abo navit zastarilimi prikladnimi programami yaki mozhna aktivizuvati yak chornu skrinyu Vid rozrobnika ne potribno znati yak pracyuye programa neobhidno lishe rozumiti yaki vhidni ta vihidni dani potribni i yak viklikati pevni programi dlya vikonannya U najzagalnishomu viglyadi SOA pripuskaye nayavnist troh osnovnih uchasnikiv postachalnika servisu spozhivacha servisu ta reyestru servisiv Vzayemodiya uchasnikiv viglyadaye dosit prosto postachalnik servisu reyestruye svoyi servisi v reyestri a spozhivach zvertayetsya do reyestru iz zapitom Dlya vikoristannya servisu neobhidno dotrimuvatisya ugodi pro interfejs dlya zvernennya do servisu interfejs povinen ne zalezhati vid platformi SOA realizuye masshtabovanist servisiv mozhlivist dodavannya servisiv a takozh yih modernizaciyu Postachalnik servisu i jogo spozhivach viyavlyayutsya nepov yazanimi voni spilkuyutsya za dopomogoyu povidomlen Oskilki interfejs ne povinen zalezhati vid platformi to i tehnologiya vikoristovuvana dlya viznachennya povidomlen takozh ne povinna zalezhati vid platformi Tomu yak pravilo povidomlennya ye XML dokumentami yaki vidpovidayut pevnij XML shemi Dijsno vidkriti standarti sho opisuyut XML i Web servisi dozvolyayut zastosovuvati SOA do vsih tehnologij i zastosunkiv vstanovlenih v kompaniyi Yak vidomo Web servisi bazuyutsya na shiroko poshirenih i vidkritih protokolah HTTP XML UDDI WSDL i SOAP Same ci standarti realizuyut osnovni vimogi SOA po pershe servis maye piddavatisya dinamichnomu viyavlennyu i vikliku UDDI WSDL i SOAP po druge povinen vikoristovuvatisya nezalezhnij vid platformi interfejs XML Nareshti HTTP zabezpechuye funkcionalnu sumisnist Perevagi vikoristannya SOAPersh nizh pererahuvati perevagi vikoristannya SOA bude dorechnim nagadati sho perevagi buvayut rizni strategichni i taktichni SOA maye ryad perevag yak strategichnih tak i taktichnih Strategichna cinnist SOA Skorochennya chasu realizaciyi proektiv abo chasu vihodu na rinok Pidvishennya produktivnosti Shvidsha i deshevsha integraciya zastosunkiv i integraciya B2B Taktichni perevagi SOA Prostisha rozrobka i vprovadzhennya zastosunkiv Vikoristannya potochnih investicij Zmenshennya riziku pov yazanogo z vprovadzhennyam proektiv v oblasti avtomatizaciyi poslug i procesiv Mozhlivist bezperervnogo polipshennya nadanoyi poslugi Skorochennya chisla zvernen za tehnichnoyu pidtrimkoyu Pidvishennya pokaznika povernennya investicij ROI PerspektiviDzherelaSho take servisno oriyentovana arhitektura anglijskoyu movoyu What is SOA 12 bereznya 2010 u Wayback Machine Principi servisno oriyentovanoyi arhitekturi anglijskoyu movoyu SOA Principles 9 lipnya 2007 u Wayback Machine Diznatisya pro Servisno oriyentovanu arhitekturu anglijskoyu movoyu MS Biztalk Server Learn About Service Oriented Architecture 3 lipnya 2007 u Wayback Machine Div takozhPodijno oriyentovana arhitektura EDA Bagatoetapna podijno oriyentovana arhitektura SEDA Ce nezavershena stattya pro programuvannya Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi