SOA proti ESB
SOA je nabor arhitekturnih konceptov, ki se uporabljajo za razvoj in integracijo storitev. Storitev je objavljen paket funkcionalnosti, ki je na voljo prek spleta. ESB je del infrastrukturne programske opreme, ki zagotavlja konstrukcijo programske arhitekture za zagotavljanje osnovnih storitev za kompleksne arhitekture. ESB se lahko uporablja kot platforma, na kateri je realiziran SOA.
Kaj je SOA?
SOA (Service-oriented architecture) je nabor arhitekturnih konceptov, ki se uporabljajo za razvoj in integracijo storitev. SOA se ukvarja s porazdeljenim računalništvom, pri katerem uporabniki uporabljajo nabor interoperabilnih storitev. Več potrošnikov lahko porabi eno storitev in obratno. Zato se SOA pogosto uporablja za integracijo več aplikacij, ki uporabljajo različne platforme. Za pravilno delovanje SOA morajo biti storitve ohlapno povezane z operacijskimi sistemi in tehnologijami osnovnih aplikacij. Razvijalci SOA ustvarjajo storitve z uporabo enot funkcionalnosti in jih dajo na voljo prek interneta. Spletne storitve se lahko uporabljajo za implementacijo arhitekture SOA. V tem primeru postanejo spletne storitve enote funkcionalnosti SOA, dostopne prek interneta. Spletne storitve lahko uporablja kdorkoli, ne da bi ga skrbeli platforme ali programski jeziki, ki se uporabljajo za njihov razvoj. SOA je neposredno zgrajena na načelu storitvene usmerjenosti, ki govori o storitvah s preprostim vmesnikom, do katerega lahko uporabniki dostopajo neodvisno, ne da bi skrbeli za dejansko implementacijo storitve na platformo.
Kaj je ESB?
ESB (Enterprise Service Bus) je del infrastrukturne programske opreme, ki zagotavlja konstrukcijo programske arhitekture za zagotavljanje osnovnih storitev za kompleksne arhitekture. Vendar obstaja veliko razprav o tem, ali naj ESB imenujemo arhitekturni slog ali programski izdelek ali celo skupina izdelkov. Storitve zagotavlja prek mehanizma za sporočanje, ki temelji na dogodkih in na standardih (ki je pravzaprav storitveno vodilo). Poleg tega mehanizma za sporočanje je na voljo plast abstrakcije, ki arhitektom omogoča izkoriščanje zmogljivosti, ki jih ponuja avtobus, brez pisanja dejanske kode. ESB se običajno izvaja prek infrastruktur vmesne programske opreme, ki temeljijo na standardih.
Uporaba izraza "vodilo" v ESB je posledica dejstva, da ESB zagotavlja zelo podobno funkcijo kot fizično računalniško vodilo, vendar na veliko višji ravni abstrakcije. Ena od glavnih prednosti ESB je zmožnost zmanjšanja števila kontaktnih točk; tako je prilagajanje na spremembe veliko lažje. ESB se lahko uporablja kot platforma, na kateri se realizira SOA. Koncepte transformacije/usmerjanja (povezano s tokom) lahko ESB prenese v SOA. Poleg tega ESB z dokazovanjem abstrakcije za končne točke (v SOA) spodbuja ohlapno povezavo med storitvami.
Kakšna je razlika med SOA in ESB?
Med SOA in ESB je nekaj ključnih razlik. SOA je arhitekturni model za implementacijo ohlapno povezanih aplikacij, ki temeljijo na storitvah. ESB je del infrastrukturne programske opreme, ki razvijalcem pomaga razvijati storitve in komunicirati med storitvami prek ustreznih API-jev. ESB se lahko uporablja kot platforma, na kateri se realizira SOA. ESB je samo medij, skozi katerega tečejo storitve. ESB zagotavlja zmogljivosti za sestavo in uvajanje storitev, ki izvajajo SOA.