Sonic ESB: Програмируема интеграция

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

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

Sonic ESB е един от новия набор от продукти, които се таксуват като корпоративни сервизни шини (ESB), леки брокери за интеграция, базирани на стандарти като XML и SOAP, предназначени да работят в разпределена среда.

За предприятия, които искат да възприемат допълнителен подход към интеграцията на корпоративни приложения, ESB ще бъдат изключително полезни. Използвайки модела на шината, първо могат да бъдат интегрирани няколко приложения с най-голяма възвращаемост; други приложения могат да бъдат сгънати по-късно, когато парите и ресурсите станат достъпни. Тъй като бариерите за влизане са ниски, тези интеграционни проекти могат да започнат от малък, да се управляват отблизо и да се развиват, за да отговорят на бъдещите нужди.

Sonic ESB 5.0 се стреми да предложи тези предимства, съчетавайки съобщения, маршрутизация, уеб услуги и трансформация на съобщения, за да интегрира и организира действията на множество крайни точки на интернет приложения.

Архитектура на ESB на Sonic

Типичен брокер за интеграция има архитектура на концентратор и спици. Sonic ESB, от друга страна, е изграден върху ориентирания към съобщения софтуер на Sonic Software, SonicMQ, JMS (Java Message Service) доставчик за J2EE сървъри за приложения. SonicMQ предоставя на Sonic ESB конфигурация и управление на времето за работа, брокери за съобщения и управлявани контейнери. Взаимодействията между SonicMQ и ESB са толкова фини и пълни, че не е чудно, че Sonic Software ги отнася като пакет.

Тъй като Sonic ESB е изграден върху инфраструктура за съобщения, неговата архитектура на шината може да бъде разпределена в корпоративната LAN или глобалната Интернет. Възелите за съобщения могат да бъдат инсталирани в клъстери на множество машини за надеждност и тези клъстери могат да се обединяват с клъстери на други места, за да осигурят точки за отдалечена интеграция.

В допълнение, мениджърът на домейни е интегриран със системата и служи като директория за услугите, разположени в мрежата.

Контейнерите управляват крайни точки, които след това управляват жизнения цикъл на услугите, които осигуряват маршрутизация, оркестрация на потока от процеси, трансформация на данни и сигурност. Тези контейнери също адаптират крайните точки към старите системи. Например, наличен е адаптер J2EE за свързване на системи, базирани на J2EE, към шината. Контейнерите за услуги обикновено се хостват отделно от сървърите за съобщения, като всеки се намира съвместно със старата система, която обслужва.

Съобщенията се маршрутизират чрез прикачен маршрут, създаден чрез конзолата за управление. Базираното на съдържание маршрутизиране се извършва вътре в услугите за крайни точки с помощта на XPath за преглед на прикачени XML документи и условно маршрутизиране въз основа на съдържанието на документа. Услугата за трансформация използва XSLT (eXtensible Style Language Transformation). Продуктът на Sonic Software Stylus графично създава XSLT документи, които се трансформират от една XML схема в друга, но всеки друг инструмент XSLT също ще работи.

Търсенето на интеграционния архитект

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

Въпреки че голяма част от това, което правите, когато настройвате Sonic ESB, просто манипулира конфигурационни файлове, крайният резултат е процес, който манипулира данни. Това е повече от просто конфигуриране, основано на политики - това е програмиране.

Програмирането на Sonic ESB не се извършва с единна нотация, а включва писане на фрагменти от Java и JavaScript заедно с XSLT, XML схеми и WSDL файлове. Няколко различни графични инструмента подреждат всичко това в обща конфигурация, която произвежда правилното маршрутизиране и обслужване за желания резултат. 

Sonic Software предоставя изчерпателен пример за верига за доставки в ръководството „Първи стъпки“. Работата по този пример ще ви ускори основните режими на ESB взаимодействие и ще ви запознае с концепциите и инструментите за управление, необходими за конфигуриране и използване на шината.

Докато минах през процеса на конфигуриране, бях поразен от това колко трудно беше да се проследяват всички различни части, какво правят и как се съчетават. Конзолите за управление на Sonic ESB са толкова добри, колкото съм виждал. Но те не са програмни среди - те предлагат само елементарна поддръжка за абстракция. Например процесният поток позволява именуване и вграждане, но неща, които са толкова важни, колкото условния поток, се крият в JavaScript файловете и XSLT.

Множеството формати - Java, JavaScript, XSL, XML схема и така нататък - които описват процеса и данните са допълнителна тежест. Така че, въпреки че използването на Sonic ESB е акт на програмиране, това е продукт, изграден около клъстер от технологии, а не само една добре проектирана нотация.

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

Тъй като не е налице еднаква нотация, има няколко визуални сигнала за разбиране на потока на съобщенията, условията за грешки и трансформациите на данни. Всъщност, без снимките и описанието, съдържащи се в ръководството „Първи стъпки“, разбирането на потока от съобщения в предоставения пример за веригата за доставки би било трудно. Разбрах, че обърнато отвътре, ръководството „Първи стъпки“ всъщност е системната архитектура; снимките и описанията в ръководството вероятно са същите, които разработчиците на примера са използвали, докато са го създавали.

Успешното използване на продукти като Sonic ESB ще изисква същия такъв вид внимателно планиране от разработчиците, действащи като „интеграционни архитекти“. Инструментите, техниките и методологиите за моделиране, достъпни за интеграционните архитекти, все още са елементарни, но Sonic ESB предоставя изчерпателен набор от инструменти, необходими за изпълнението на интеграцията, след като е била планирана.

Гъвкавост на цена

Sonic ESB, в комбинация със SonicMQ, осигурява стандартен метод за интегриране както на стари, така и на нови приложения от цялото предприятие по начин, който е едновременно надежден и рентабилен. Интегрирането на набор от системи с Sonic ESB трябва да струва по-малко, отколкото използването на собствени брокери за интеграция.

При прегледа на SonicXQ, предшественика на Sonic ESB, стигнахме до заключението, че „SonicXQ предоставя на разработчиците солиден набор от сигурни, надеждни BPM (управление на бизнес процеси) услуги“ (вижте „Поддържане на BPM в релси“, 30 септември, страница 26).

Това не се е променило. Но докато инструментите за управление сега са много подобрени, Sonic ESB 5.0 често изисква сложна конфигурация. Осъществяването му изисква значителни умения в технологии като J2EE, ориентиран към съобщения междинен софтуер, XML, XSLT, XPath, JavaScript и Java.

Това е цената на гъвкавостта. Някои инструменти целят лекота на използване и дори се хвалят, че бизнесмените могат да ги използват за управление на бизнес процеси. Но никой от тях не предлага гъвкавостта, необходима за пълна системна интеграция. SonicESB предлага тази гъвкавост, но само ако имате разработчици и интеграционни архитекти, които да се възползват от нея.

Карта за резултат Управляемост (15,0%) Лесна употреба (10,0%) Поддръжка (10,0%) Мащабируемост (25,0%) Оперативна съвместимост (25,0%) Надеждност (15,0%) Общ резултат (100%)
Sonic ESB 5.0 5.0 6.0 7.0 9.0 9.0 9.0 7.9