Облачен компютинг

© Христо Тужаров, 2012

СЕРВИЗ ОРИЕНТИРАНА АРХИТЕКТУРА SOA

 

Home | Съдържание | Облачен компютинг | Консултации | Асеневци

 

РАЗПРЕДЕЛЕНА ОБРАБОТКА НА ДАННИ

 

СЕРВИЗ ОРИЕНТИРАНА АРХИТЕКТУРА SOA

 

ОБЛАЧЕН КОМПЮТИНГ

  

Подход SOA (Service-Oriented Architecture)

Подход, същността на който се състои в разработка на програмно осигуряване, основано на използване на сервизи със стандартизирани интерфейси.

 

Архитектура SOA не е зависима от езици за програмиране, платформи, или протоколни спецификации. Тя не е продукт или спецификация, поради което тя не може да бъде закупена и инсталирана като готово решение.

 

При SOA програмното приложение се събира на части от няколко модула (комплектуващи), а не се пише код „ от  и до”.

 

Практически архитектурата  SOA изисква не само сервизи, но и средства, с помощта на които тези сервизи могат да бъдат открити  и включени, независимо от  използваната инфраструктура.

 

Архитектурата включва множество компоненти – сървъри за приложения, свързващо ПО, репозитари и даже специализирани пакети за централизирано управление на SOA.

 

                    Цели на подхода SOA

  • Повишаване  мащабируемостта на създаваните системи;

  • Опростяване на процесите по контрол и управление на създаваните системи;

  • Съкращаване на разходите, свързани с разработка на приложения;

  • Увеличаване на частта повторно използван код;

  • Постигане на независимост на системите от платформата, инструментите за разработка и езиците на програмиране.

                    Базис на подхода SOA

  • Многократно използване на функционалните елементи;

  • Отстраняване на дублиране на функционала;

  • Стандартизация и унификация на типовите процеси;

  • Преход на компаниите към функционална организация.

 

Определение за SOA

Парадигма, предназначена за проектиране, разработка и управление на дискретни единици логика (сервизи) в компютърна среда

 

      Приложението на този подход изисква от разработчиците:

  • Проектиране на приложенията като набор от сервизи (даже ако липсват предимства от такъв подход)

  • Да излязат от границите на своите приложения и да помислят как да се възползват от съществуващите сервизи, както и как да направят своите сервизи унифицирани с възможност за използване от други техни колеги.

  • Използване на алтернативни технологии и подходи (такива като обмен на съобщения) за създаване на приложения, посредством свързване на сервизи, вместо писане на нов програмен код.

Функционална схема на SOA

В най общ вид предполага наличието на три основни участника: доставчик на сервиза, потребител на сервиза и регистър на сервизите.

 

Взаимодействието на участниците се състои в следното:

  • Доставчика на сервиза регистрира своите сервизи в регистъра;

  • Потребителят се обръща към регистъра със запитване.

 

Функционална схема на SOA

 

 

SOA реализира мащабируемост на сервизите – възможност за добавяне на сервизи, както и тяхната модернизация.

 

Доставчикът на сервизи и неговите потребители не са свързани – те общуват с помощта на съобщения. Тъй като интерфейсът не трябва да зависи от платформата, то и технологията използвана за определяне на съобщението също не трябва да зависи от платформата. Поради това като правило, съобщението се явява XML-документи, които съответстват на  XML-схемата.

 

Откритите стандарти, описващи XML и Web - сервизите, позволяват прилагане на SOA във всички технологии и приложения, използвани в компаниите.

 

Сервизите, ключов компонент на  SOA

 

          Определения за сервизи

 

       Сервиз – инфраструктура и специализирани приложения, създавани за удовлетворяване на определени потребности.

 

      Сервис - единица работа, изпълнявана от името на някакъв информационен субект, например, потребител или друга програма.

 

Сервис - функция, явяваща се точно определена, самодостатъчна и не зависеща от контекста или състоянието на другите сервизи.

       Услуга – предоставена функция на потребителите, по заявена от тях потребност.

 

Сервизите, ключов компонент на  SOA

 

Сервизите в архитектурата се явяват бизнес - функции, предназначени за осигуряване на съгласувана работа на големи, състоящи се от много части програмни приложения.

 

По същество сервизите са строителни блокове, отразяващи бизнес логиката в разработваните приложения.

 

Мястото където сервизите „обитават” се явява сървъра за приложения (WebLogic от BEA Systems, WebSphere от IBM, Application Server от Oracle или Java AS).

 

             Web-сервизи

Без значение на това, че основните принципи и положения на SOA  са установени много преди появата на Web-сервизите, днес те заемат централно място в концепцията SOA. Използването на XML и Web-сервизи поставя  SOA на по-високо ниво.

 

Web-сервизите се базират на широко разпространени и открити Интернет протоколи: HTTP, XML, UDDI, WSDL и SOAP. Именно тези стандарти реализират основните изисквания на  SOA:

  • Сервизът трябва да се поддава на динамично откриване и заявяване (UDDI, WSDL и SOAP);

  • Трябва да се използва независим от платформата интерфейс (XML); HTTP осигурява функционална съвместимост.

Днес  Web-сервизите се разглеждат като ефективен инструмент за интеграция, в т.ч. за взаимодействие на процеси изпълнявани в различни компании.

 

       Web-сервизите се явяват крайъгълен камък за архитектурата SOA по следните причини:

  • Те изискват използване на стандарти и по този начин съдействат за постигане на съвместимост и преносимост;

  • Те не зависят от платформи и езици за програмиране;

  • Те се поддържат навсякъде, което съществено облекчава внедряването на  SOA;

  • Те са ориентирани към съобщения;

  • Те осигуряват по-бърза поддръжка на инструменталните средства, което ускорява реализацията на SOA.

Връзка на SOA с XML

Архитектурата SOA се базира на открити стандарти и поддържа платформено - независима бизнес интеграция. В тази връзка, на нея е необходима съответна инфраструктура, която трябва да се поддържа от всички участващи страни. В центъра на тази инфраструктура се намира технологията XML.

        Причини за използване на XML:

  • XML се явява фундамент на практически всички стандарти за Web - сервизите, в т. ч. XML Schema, SOAP, WSDL (Web Services Description Language) и UDDI (Universal Description, Discovery, and Integration). Тези стандарти са всепризнат формат за обмен на информация между провайдерите на сервизи и потребителите на SOA.

  • Използването на XML решава проблема на работа с различни формати данни в различни приложения, работещи на различни платформи.

  • Преимуществото на XML се състои в простотата на представяне, явяваща се по своята природа текстова, гъвкава и разширяема.

       Примери за стандарти, основани на XML и използвани в SOA:

 

       SOAP  - прост, основан на XML протокол, позволяващ обемен на информация с транспортен протокол, такъв като HTTP. Благодарение на използването на XML протокола SOAP има следните предимства:

  • Платформено-независим;

  • Пригоден за използване в Интернете.

  • Читабилен, структуриран и текстови.

      WSDL. -  документ, написан на XML и описващ Web - сервиз. Той определя месторазположението на  сервиза.

WSDL-файла описва четири неща:

  • Сервизи, достъпни чрез интерфейса на Web - сервиза, такива като списък от имена на методи и съобщения - атрибути.

  • Тип на данните в съобщение.

  • Информация за връзки за транспортния протокол, такъв като HTTP и JMS.

  • Адрес на сервиза, използван за неговото повикване.

 

       Electronic Business using eXtensible Markup Language (ebXML) - езикът ebXML се явява стандартен начин за определяне на бизнес транзакциите, които си се извършват между различни бизнес субекти.