SOA – лайфстайлът на услугите
it FORUM
четвъртък, 10 Юли 2008 11:04ч
SOA е колекция от модули, наречени услуги
За да интегрират съществуващите системи и да изпълнят ИТ поддръжката за бизнес процесите си, компаниите трябва да изминат дълъг път, минаващ през всичките сегашни и бъдещи системни изисквания, нужни за управлението на бизнеса “от край до край”. Възможността за взаимодействия с потребители през интернет налага компаниите да модернизират старите и недостатъчно гъвкави технологии и да направят ИТ системите си достъпни за външни и вътрешни клиенти. ИТ архитектурата им трябва да поддържа връзка и да споделя данни с различни приложения. SOA е точно такава архитектура, защото обединява бизнес процесите, структурирайки голям набор приложения като специална колекция от малки модули наречени услуги. Тези приложения могат да бъдат използвани от различни групи хора, намиращи се във и извън компанията. Изградени от комбинирани услуги, те предоставят едновременно по-голяма гъвкавост и многообразие.
SOA изгражда приложенията на база софтуерните услуги, които повечето хора разпознават, като попълване на сметка онлайн, разглеждане на банков отчет онлайн или запазване на самолетен билет през интернет. Специфичното е, че вместо услугите да имат вградени връзки помежду си, предварително дефинирани протоколи описват как те могат да общуват. Подобна архитектура разчита на специалистите, отговарящи за бизнес процесите в компанията, да насочат, подредят или аранжират услугите, за да се изпълнят нови или вече съществуващи бизнес системни изисквания.
SOA е подходящ начин на мислене
SOA не е някаква конкретно разписана архитектура, но в крайна сметка води до такава. Тя по-скоро е нещо като перспектива или философия, не е конкретен инструмент или рамка, която може да се поръча, а подход и начин на мислене, който води до конкретни решения, когато се разработва определена софтуерна архитектура. SOA не може да се купи, няма устройство или рецепта, с която да се направи. В същността си тази архитектура представлява вземане на характерни решения в конкретна ситуация.
Основната причина компаниите да внедряват архитектурата SOA е за да им помага тя в бизнеса. Те първо имат нужда от ИТ решения, които да съхраняват и управляват информация и да позволяват автоматизация на обичайните им бизнес процеси. За да доставят обаче качествени решения навреме, им трябва повече гъвкавост. Тя от своя страна се постига с ясна организация, разписани роли, процеси и т.н. Именно на SOA е отредено да се справи с всички тези аспекти.
SOA приема промените, а не се бори срещу тях
Разбира се, гъвкавостта може да бъде много различна на различните платформи. Затова е важен въпросът за какви видове софтуерни системи е подходяща SOA (както се оказва, тя се справя добре с голям брой системи).
Когато бизнесът се разраства, започва да става все по-цялостен и да въвлича все повече системи на различни компании. В процеса на постоянно обединяване и промяна SOA е добре пригодена да се справя с различни разпространени ИТ системи. Притежава определени възможности да улеснява взаимодействията между доставчиците на услуги и клиентите, позволявайки реализацията на различни бизнес функционалности.
SOA включва в себе си практики и процеси, които се базират на обстоятелството, че разпространените мрежи и системи не се контролират от едни собственици. Различни екипи и отдели или дори компании могат да управляват различни системи. Поради това различни платформи, графици, приоритети, бюджети и т.н. трябва да бъдат вмъкнати в един акаунт. Тази концепция е важна за разбирането на SOA и големите, широко разпространени ИТ системи като цяло. Начините, по които компаниите се справят с проблемите и правят промени в средите с различни собственици и в средите, в които самите те контролират всичко, ще се различават неизбежно.
Характерно при големите ИТ системи е липсата на „хармония”. Те използват различни платформи и програмни езици и дори различен „middleware”. Представляват безпорядък от главни сървъри, хостове, бази данни, приложения и т.н., или с други думи те са много разнородни.
Подходът на SOA приема тази разнородност. Това е една от основните идеи за SOA, която й дава силата да предизвика революция. SOA приема промените, вместо да се опитва да се бори срещу тях. Това води до много различно мислене и в лицето на SOA компаниите вече имат работещ начин да се справят с големите, широко разпространени ИТ системи. Основните технически концепции, които позволяват на SOA да се справи с различните характеристики на тези системи, са три – услуги, взаимодействие между системите и слабата свързаност.
Услуги
Софтуерното разработване е изкуството на абстракцията. Разработчикът трябва да абстрахира реалността по такъв начин, че да може да разгледа само важните аспекти на даден проблем. SOA архитектурата също се концентрира само върху бизнес аспектите на проблема, като се абстрахира от останалото. В основата си услугата е ИТ представяне на някаква бизнес функционалност. Това дава ясна структура на една ИТ система в процеса на нейната разработка. Въпреки, че вътрешно тя е техническа, външният й интерфейс трябва да бъде проектиран по такъв начин, че хората да я разберат, без да виждат техническите детайли. Последствието от този подход е, че на подобно ниво от абстрахиране специфичните детайли за платформите нямат значение и поради това те могат да бъдат разнородни. Важна е самата услуга, което може да се смята за ИТ изображение на самостоятелна бизнес функционалност, като „създаване на акаунт”, „ извеждане на договора на клиента”, „трансфер на пари”, „включване на радио”, „изчисляване на най-добрия маршрут за моята кола” и т.н.
Високо взаимодействие
При разнородните ИТ системи първата задача е те да могат да бъдат свързани лесно. Това обикновено се нарича „високо взаимодействие” и не е нова идея. За SOA високото взаимодействие е началото, а не краят. Това е основата, с която започва осъществяването на бизнес функционалностите (услугите), разпространени върху множество различни системи.
Слаба свързаност
Живеем в свят, управляван от “хората на маркетинга”. В него не винаги имаме време да анализираме, проектираме и осъществяваме целите си внимателно. Трябва да продаваме възможно най-бързо и заради това гъвкавостта често е преди качеството. Това води до няколко проблема.
Ако по едно и също време компанията интегрира една или повече системи, на които да осъществява различни бизнес процеси, общо взето информацията ще се движи по такъв начин, че процесите да вървят успешно на всички засегнати системи. Компанията създава клиенти на тях, трансферира пари от една система на друга или задейства поръчка на клиент, като му изпраща продукта и сметката за него. Това, че са замесени множество системи поражда голяма сложност и може да се окаже, че един малък проблем може да спре целия бизнес. Това трябва да бъде избегнато и в основата стои слабата свързаност. Тя изразява концепцията за минималните зависимости. Когато зависимостите са минимални, модификациите имат минимален ефект и системите могат все още да работят, дори когато част от тях са повредени или изключени.
В допълнение слабата свързаност води до стабилност при голямо натоварване на ИТ системите, при което достигат предела на възможностите си. Избягването на подобни ситуации е много важно както от техническа, така и от организационна гледна точка. Всички големи ИТ системи ще работят добре само ако е възможно общоприетите бизнес процеси бъдат изградени по децентрализиран начин. И това е един от методите за постигането на слабата свързаност – да се избегне въвеждането на централизация или тя да не бъде повече от необходимата (нуждата от обща база за SOA предполага все пак известна централизация).
Съставките на SOA
Основните технически понятия на SOA са услугите, взаимодействието и слабата свързаност. Но не бива да се остава с впечатлението, че всичко, което трябва да се направи, за да се “задейства” подобна архитектура, е да се въведат тези три компонента. Тъй като SOA не може да се купи готова, важно те да се въведат по един подходящ начин - да се намери правилната степен на централизация и да се стиковат съответните процеси. Липсата на тези компоненти е най-честият проблем в реалните SOA проекти, но освен тях е нужно да бъдат създадени инфраструктурата, ИТ архитектурата и процесите (включително мета-процесът управление).
Инфраструктура
Инфраструктурата е техническата част от SOA, която разрешава високото взаимодействие. Тя се нарича Enterprise Service Bus (ESB), а терминът е взет от корпоративното интегриране на приложение, където е било наречено EAI Bus или просто Enterprise Bus.
Характерна особеност на ESB е това, че позволява услугите да се свързват между разнородни системи. Неговите отговорности включват преобразуване на информация, рутиране, справяне със сигурността и надеждността, управление на услугите, мониторинг и записване на логове.
Архитектура
Архитектурата е необходима, за да се подредят възможностите на SOA по такъв начин, че да доведе до работеща и поддържаща се система. SOA понятията, инструментите и стандартите дават такива специфични решения за подредба, за да се избегне “неразборията” при изпълнение на процесите. За целта е нужно да се класифицират различните видове услуги, да се прецени каква ще е степента им на свързаност, да се ограничи информационният модел на интерфейса на услугата, да се определят курсът на поведение, правилата и моделите, да се изяснят ролите и отговорностите, да се реши коя инфраструктурна технология ще се използва, кои стандарти и т.н. Извършвайки всичко това, компаниите вече ще могат да изградят своята системна архитектура.
Процеси
Това, което прави големите системи сложни, е, че в тях са замесени много и различни хора и екипи. Това най-често означава, че компаниите трябва да извървят дълъг път от първоначалната идея или дадено бизнес изискване, докато успеят да намерят решение. За да се избегне това трябва да се определят подходящи процеси (те могат да бъдат изрично разписани или просто да се подразбират). Бизнес процесите трябва да се моделират (Business Process Modeling) и да се разбият на по-малки дейности и задачи, които всъщност представляват самите услуги. Трябва да се дефинира жизненият цикъл на тези услуги (Service Lifecycles), т.е. различните стъпки, които се правят при предоставянето на услугата, за да може тя да стане реалност.
Управление
От всички процеси в SOA стратегията на управлението като цяло е мета-процес. Той също е от огромно значение при установяване на SOA в дадена организация. В основата му стоят правилните хора, които могат да комбинират всичките различни съставки на SOA, за да създадат подходящ резултат, който да работи. Обикновено този мета-процес се изпълнява от централен екип (понякога се нарича SOA компетентен център), който се занимава с инфраструктурата, архитектурата и процесите. Освен това този екип отговаря също и за установяване на общото разбирателство в компанията. Той трябва да притежава и компетенции по управление на персонала, защото когато става дума за време и ресурси, решителността е задължително изискване при справянето с организационните сблъсъци на SOA. С други думи, разбирателството и управлението на персонала са важни фактори за успеха на една SOA стратегия.

