SOA срещу ESB
SOA е набор от архитектурни концепции, използвани за разработване и интегриране на услуги. Услугата е рекламиран пакет от функционалности, предлагани в мрежата. ESB е част от инфраструктурен софтуер, който предоставя конструктор на софтуерна архитектура за предоставяне на основни услуги за сложни архитектури. ESB може да се използва като платформа, на която се реализира SOA.
Какво е SOA?
SOA (Service-ориентирана архитектура) е набор от архитектурни концепции, използвани за разработване и интегриране на услуги. 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.