SOA vs ESB
SOA er et sett med arkitektoniske konsepter som brukes for utvikling og integrering av tjenester. En tjeneste er en publisert pakke med funksjonalitet som tilbys over nettet. ESB er et stykke infrastrukturprogramvare som gir en programvarearkitekturkonstruksjon for å tilby grunnleggende tjenester for komplekse arkitekturer. ESB kan brukes som en plattform der SOA realiseres.
Hva er SOA?
SOA (Service-oriented architecture) er et sett med arkitektoniske konsepter som brukes for utvikling og integrering av tjenester. SOA omhandler distribuert databehandling der forbrukere bruker et sett med interoperable tjenester. Flere forbrukere kan bruke en enkelt tjeneste og omvendt. Derfor brukes SOA ofte til å integrere flere applikasjoner som bruker forskjellige plattformer. For at SOA skal fungere ordentlig, bør tjenester være løst koblet med operativsystemer og teknologiene til underliggende applikasjoner. SOA-utviklere lager tjenester ved å bruke funksjonsenheter, og gjør dem tilgjengelige over internett. Webtjenester kan brukes til å implementere SOA-arkitektur. I så fall blir webtjenester funksjonalitetsenhetene til SOA tilgjengelig over internett. Webtjenester kan brukes av hvem som helst uten å være bekymret for plattformene eller programmeringsspråkene som brukes til å utvikle dem. SOA er direkte bygget på prinsippet om tjenesteorientering, som snakker om tjenester med enkelt grensesnitt som kan nås uavhengig av brukere, uten å bekymre deg for den faktiske plattformimplementeringen av tjenesten.
Hva er ESB?
ESB (Enterprise Service Bus) er et stykke infrastrukturprogramvare som gir en programvarearkitekturkonstruksjon for å tilby grunnleggende tjenester for komplekse arkitekturer. Men det er betydelig uenighet om hvorvidt ESB skal kalles en arkitektonisk stil eller et programvareprodukt eller til og med en gruppe produkter. Den tilbyr tjenestene gjennom hendelsesdrevet og standardbasert motor for meldingstjenester (som faktisk er servicebussen). På toppen av denne meldingsmotoren er det gitt et lag med abstraksjon for å tillate arkitekter å utnytte fasilitetene som tilbys av bussen, uten å skrive noen faktisk kode. ESB implementeres vanligvis gjennom standardbaserte mellomvareinfrastrukturer.
Bruken av begrepet "buss" i ESB skyldes at ESB gir en veldig lik funksjon som den fysiske databussen, men på et mye høyere abstraksjonsnivå. En av hovedfordelene med å ha en ESB er muligheten til å redusere antall kontaktpunkter; dermed gjør tilpasningen til endringene mye enklere. ESB kan brukes som en plattform der SOA realiseres. Konseptene transformasjon/ruting (flytrelatert) kan bringes til SOA av ESB. Videre, ved å bevise abstraksjonen for endepunkter (i SOA), fremmer ESB løs kobling mellom tjenester.
Hva er forskjellen mellom SOA og ESB?
Det er noen viktige forskjeller mellom SOA og ESB. SOA er en arkitektonisk modell for implementering av løst koblede tjenestebaserte applikasjoner. ESB er et stykke infrastrukturprogramvare som hjelper utviklere med å utvikle tjenester, og kommunisere mellom tjenester gjennom passende APIer. ESB kan brukes som en plattform der SOA realiseres. ESB er bare mediet som tjenestene flyter gjennom. ESB tilbyr fasiliteter for sammensetning og distribusjon av tjenester, som igjen implementerer SOA.