SOA vs ESB
SOA je skup arhitektonskih koncepata koji se koriste za razvoj i integraciju usluga. Usluga je objavljeni paket funkcionalnosti koji se nudi putem weba. ESB je dio infrastrukturnog softvera koji pruža konstrukciju softverske arhitekture za pružanje osnovnih usluga za složene arhitekture. ESB se može koristiti kao platforma na kojoj se realizira SOA.
Što je SOA?
SOA (Service-oriented architecture) je skup arhitektonskih koncepata koji se koriste za razvoj i integraciju usluga. SOA se bavi distribuiranim računalstvom u kojem potrošači koriste skup interoperabilnih usluga. Više potrošača može koristiti jednu uslugu i obrnuto. Stoga se SOA često koristi za integraciju više aplikacija koje koriste različite platforme. Da bi SOA pravilno funkcionirala, usluge bi trebale biti labavo povezane s operativnim sustavima i tehnologijama temeljnih aplikacija. SOA programeri stvaraju usluge pomoću jedinica funkcionalnosti i čine ih dostupnima putem interneta. Web usluge se mogu koristiti za implementaciju SOA arhitekture. U tom slučaju web usluge postaju jedinice funkcionalnosti SOA-e dostupne putem interneta. Web usluge može koristiti bilo tko bez brige o platformama ili programskim jezicima koji se koriste za njihov razvoj. SOA je izravno izgrađena na principu uslužnog usmjerenja, koji govori o uslugama s jednostavnim sučeljem kojima korisnici mogu samostalno pristupiti, bez brige o stvarnoj platformskoj implementaciji usluge.
Što je ESB?
ESB (Enterprise Service Bus) dio je infrastrukturnog softvera koji pruža konstrukciju softverske arhitekture za pružanje osnovnih usluga za složene arhitekture. Ali postoje značajni argumenti oko toga treba li ESB nazvati arhitektonskim stilom ili softverskim proizvodom ili čak skupinom proizvoda. Pruža usluge putem mehanizma za razmjenu poruka koji se temelji na događajima i na standardima (koji je zapravo sabirnica usluga). Povrh ovog mehanizma za razmjenu poruka, sloj apstrakcije omogućuje arhitektima da iskoriste pogodnosti koje nudi autobus, bez pisanja stvarnog koda. ESB se obično implementira kroz standardizirane infrastrukture međuopreme.
Upotreba izraza "sabirnica" u ESB-u je zbog činjenice da ESB pruža vrlo sličnu funkciju kao fizička računalna sabirnica, ali na mnogo višoj razini apstrakcije. Jedna od glavnih prednosti posjedovanja ESB-a je mogućnost smanjenja broja točaka kontakta; čime je prilagodba promjenama znatno lakša. ESB se može koristiti kao platforma na kojoj se realizira SOA. ESB može u SOA unijeti koncepte transformacije/usmjeravanja (povezano s protokom). Nadalje, dokazujući apstrakciju za krajnje točke (u SOA-i), ESB promiče labavu spregu između usluga.
Koja je razlika između SOA i ESB?
Postoje neke ključne razlike između SOA i ESB. SOA je arhitektonski model za implementaciju labavo povezanih aplikacija temeljenih na uslugama. ESB je dio infrastrukturnog softvera koji pomaže programerima da razviju usluge i komuniciraju između usluga putem odgovarajućih API-ja. ESB se može koristiti kao platforma na kojoj se realizira SOA. ESB je samo medij kroz koji teku usluge. ESB pruža mogućnosti za sastavljanje i implementaciju usluga, koje zauzvrat implementiraju SOA.