SOA срещу ESB
SOA е набор от архитектурни концепции, използвани за разработване и интегриране на услуги. Услугата е публичен пакет от функционалности, предлагани в мрежата. ESB е част от инфраструктурен софтуер, който предоставя конструкция на софтуерна архитектура за предоставяне на основни услуги за сложни архитектури. ESB може да се използва като платформа, на която се реализира SOA.
Какво е SOA?
SOA (ориентирана към услугите архитектура) е набор от архитектурни концепции, използвани за разработване и интегриране на услуги. SOA се занимава с разпределени изчисления, при които потребителите консумират набор от оперативно съвместими услуги. Множество потребители могат да консумират една услуга и обратно. Следователно SOA често се използва за интегриране на множество приложения, които използват различни платформи. За да работи SOA правилно, услугите трябва да са в тясна връзка с операционните системи и технологиите на основните приложения. Разработчиците на SOA създават услуги, използвайки функционални единици, и ги правят достъпни през интернет. Уеб услугите могат да се използват за внедряване на SOA архитектура. В този случай уеб услугите стават единици на функционалността на SOA, достъпни през интернет. Уеб услугите могат да се използват от всеки, без да се безпокоят за платформите или програмните езици, използвани за тяхното разработване. SOA е директно изграден на принципа на ориентация към услугата, който говори за услуги с опростен интерфейс, който може да бъде достъпен независимо от потребителите, без да се притеснявате за действителното внедряване на платформата на услугата.
Какво е ESB?
ESB (Enterprise Service Bus) е част от инфраструктурния софтуер, който предоставя конструкция на софтуерна архитектура за предоставяне на основни услуги за сложни архитектури. Но има значителни спорове дали да се нарече ESB архитектурен стил или софтуерен продукт или дори група продукти. Той предоставя услугите чрез управляван от събития и базиран на стандарти двигател за съобщения (който всъщност е шината за услуги). На върха на този механизъм за съобщения е предвиден слой абстракция, който позволява на архитектите да използват съоръженията, предлагани от шината, без да пишат никакъв действителен код. ESB обикновено се прилага чрез базирана на стандарти инфраструктура за мидълуер.
Използването на термина „шина“в ESB се дължи на факта, че ESB предоставя много подобна функция на физическата компютърна шина, но на много по-високо ниво на абстракция. Едно от основните предимства на ESB е възможността да се намали броят на точките за контакт; по този начин, улеснявайки адаптирането към промените. ESB може да се използва като платформа, на която се реализира SOA. Концепциите за трансформация / маршрутизация (свързани с потока) могат да бъдат доведени до SOA от ESB. Освен това, доказвайки абстракцията за крайни точки (в SOA), ESB насърчава свободното свързване между услугите.
Каква е разликата между SOA и ESB?
Има някои ключови разлики между SOA и ESB. SOA е архитектурен модел за внедряване на свободно свързани приложения, базирани на услуги. ESB е инфраструктурен софтуер, който помага на разработчиците да развиват услуги и да комуникират между услугите чрез подходящи API. ESB може да се използва като платформа, на която се реализира SOA. ESB е само средата, през която преминават услугите. ESB предоставя съоръжения за съставяне и внедряване на услуги, които от своя страна прилагат SOA.