SOA vs ESB
SOA är en uppsättning arkitektoniska koncept som används för utveckling och integration av tjänster. En tjänst är ett publicerat paket med funktioner som erbjuds över webben. ESB är ett stycke infrastrukturprogramvara som tillhandahåller en mjukvaruarkitekturkonstruktion för att tillhandahålla grundläggande tjänster för komplexa arkitekturer. ESB kan användas som en plattform där SOA realiseras.
Vad är SOA?
SOA (Service-oriented architecture) är en uppsättning arkitektoniska koncept som används för utveckling och integration av tjänster. SOA handlar om distribuerad datoranvändning där konsumenter konsumerar en uppsättning interoperabla tjänster. Flera konsumenter kan konsumera en enda tjänst och vice versa. Därför används SOA ofta för att integrera flera applikationer som använder olika plattformar. För att SOA ska fungera korrekt, bör tjänster vara löst kopplade till operativsystem och teknologier för underliggande applikationer. SOA-utvecklare skapar tjänster med hjälp av funktionsenheter och gör dem tillgängliga över internet. Webbtjänster kan användas för att implementera SOA-arkitektur. I så fall blir webbtjänster SOAs funktionalitetsenheter som är tillgängliga över internet. Webbtjänster kan användas av vem som helst utan att bry sig om plattformarna eller de programmeringsspråk som används för att utveckla dem. SOA bygger direkt på principen om tjänsteorientering, som talar om tjänster med enkelt gränssnitt som kan nås oberoende av användare, utan att behöva oroa sig för själva plattformsimplementeringen av tjänsten.
Vad är ESB?
ESB (Enterprise Service Bus) är en del av infrastrukturprogramvara som tillhandahåller en mjukvaruarkitekturkonstruktion för att tillhandahålla grundläggande tjänster för komplexa arkitekturer. Men det finns stora diskussioner om huruvida ESB ska kalla en arkitektonisk stil eller en mjukvaruprodukt eller till och med en grupp produkter. Den tillhandahåller tjänsterna genom händelsestyrd och standardbaserad motor för meddelandehantering (som faktiskt är servicebussen). Utöver denna meddelandemotor tillhandahålls ett lager av abstraktion för att tillåta arkitekter att utnyttja faciliteterna som erbjuds av bussen, utan att skriva någon egentlig kod. ESB implementeras vanligtvis genom standardbaserade middleware-infrastrukturer.
Användningen av termen "buss" i ESB beror på att ESB har en mycket liknande funktion som den fysiska datorbussen, men på en mycket högre abstraktionsnivå. En av de främsta fördelarna med att ha en ESB är möjligheten att minska antalet kontaktpunkter; vilket gör anpassningen till förändringarna mycket lättare. ESB kan användas som en plattform på vilken SOA realiseras. Begreppen transformation/routing (flödesrelaterat) kan överföras till SOA av ESB. Dessutom, genom att bevisa abstraktionen för endpoints (i SOA), främjar ESB lös koppling mellan tjänster.
Vad är skillnaden mellan SOA och ESB?
Det finns några viktiga skillnader mellan SOA och ESB. SOA är en arkitektonisk modell för att implementera löst kopplade tjänstebaserade applikationer. ESB är ett stycke infrastrukturprogramvara som hjälper utvecklare att utveckla tjänster och kommunicera mellan tjänster genom lämpliga API:er. ESB kan användas som en plattform på vilken SOA realiseras. ESB är bara det medium genom vilket tjänsterna flödar. ESB tillhandahåller faciliteter för sammansättning och driftsättning av tjänster, som i sin tur implementerar SOA.