Tjänsteorienterad arkitektur (SOA): Vad du behöver veta

Tjänsteorienterad arkitektur (SOA): Vad du behöver veta

Tjänsteorienterad arkitektur (SOA) är en form av klient-serverarkitektur som nu har utbredd användning i företagssystem. Denna artikel ger en grundläggande översikt.

SOA definieras

I allmänhet består en SOA av en uppsättning tjänster och en uppsättning klientprogram som använder dessa tjänster. En klientbegäran kan innebära en enda tjänst eller kan omfatta två eller flera tjänster att samordna vissa verksamhet, som kräver kommunikation med varandra. Tjänsterna finns tillgängliga via publicerade och upptäckbar.

Jämfört med traditionella klient-metoder

SOA skiljer sig från tidigare klient-metoder i tre betydande sätt. Först, en tjänst funktionella omfattning kan variera från mycket låg nivå eller finkornigt upp till funktionalitet som mappar direkt i räckvidd, terminologi och intresse för företagsanvändare. För att tillåta detta spektrum av möjligheter, ordnar en SOA affärsfunktioner i en modulär struktur och inte som monolitiska applikationer för varje avdelning. Som ett resultat, kan gemensamma funktioner användas av olika avdelningar internt och av externa affärspartner också. Den mer detaljerade modulerna, ju mer de kan återanvändas.
För det andra, en väl utvecklad, och fortfarande utvecklas, uppsättning av öppna standarder definiera allt från servicebeskrivningen, kommunikation med tjänsten, till att upptäcka och ansluta till tjänsten, till detaljer på att kombinera tjänster för att skapa sammansatta service, transaktionen slutförts och säkerhet. Standardiserade gränssnitt används för att aktivera tjänsten moduler att kommunicera med varandra och klientprogram att kommunicera med tjänsten moduler. Mest populära gränssnittet är användningen av XML (Extensible Markup Language) över HTTP (Hypertext Transfer Protocol), känd som Web services. SOAs implementeras även med andra standarder, som CORBA (gemensamma objekt begär Broker Architecture).
Tredje är medel för att kommunicera med tjänster, oavsett omfattning, Internet protocol. Detta innebär att tjänsten kan vara lokala eller fjärranslutna, och kan ges inom ett företag eller av en utomstående leverantör. Vidare kan information om tjänsten bearbetning ändra utan att påverka användaren, eftersom kommunikationen sker via standardiserade gränssnitt och protokoll.

Arkitektoniska element

At en toppnivå, en SOA innehåller tre typer av arkitektoniska element, som siffran med denna artikel visar.

--Tjänsteleverantör: en nätverksnod som tillhandahåller en tjänst för en programvara som hanterar en specifik uppsättning uppgifter. En service provider nod kan representera tjänster av en affärsentitet eller det kan helt enkelt representera tjänstens gränssnitt för en återanvändbar undersystem.
--Service requestor: en nätverksnod som upptäcker och åberopar andra programvarutjänster för att ge en affärslösning. Service requestor noder representerar ofta en komponent business program som utför RPC-anrop till en distribuerade objekt, tjänsteleverantören. I vissa fall noden leverantör kan finnas lokalt inom ett intranät eller i andra fall kan det finnas distans över Internet. Konceptuella arten av SOA lämnar de nätverk, transportprotokoll och info för specifika genomförandet.
--Service broker: en viss tjänsteleverantör som fungerar som register och möjliggör sökning av service provider gränssnitt och servicedepåer. Service broker kan skicka tjänstförfrågningar till en eller flera ytterligare tjänsteleverantörer.

Viktiga kännetecken för en SOA

Följande är viktiga egenskaper för effektiv användning av tjänster:

--Coarse-grained: Operationer på tjänster genomförs ofta för att omfatta mer funktionalitet och verka på större datamängder, jämfört med komponent-interface design.
--Gränssnitt-baserad design: tjänster genomföra separat definierade gränssnitt. Fördelen med detta är att flera tjänster kan genomföra ett gemensamt gränssnitt och en tjänst kan genomföra flera gränssnitt.
--Upptäckbar: Tjänster måste hittas på både designen och körning, inte bara av unik identitet men också gränssnittet identitet och service slag.
--Enda instans: till skillnad från komponentbaserad utveckling, som instansierar komponenter som behövs, varje tjänst är en enda, alltid kör instans som ett antal klienter kommunicerar med.
--Löst sammansatta: tjänster är ansluten till andra tjänster och klienter som använder standard, att minska beroendet, frikopplat meddelande-baserade metoder som XML dokument utbyten.
--Asynkron: I allmänhet tjänster använder en asynkron meddelande förbi strategi; Detta är dock inte krävs. I själva verket använder många tjänster synkron meddelande passerar ibland.

Slutsats

SOA innebär en betydande förändring i hur programvarulösningar byggs. SOA är byggd kring idén om tjänster, och dessa tjänster fungera i ett löst kopplade miljö och arbeta tillsammans för att leverera värde till verksamheten. SOA möjliggör flexibla lösningar och en hög grad av hävstång som möjliggjorts genom snabb montering av dessa tjänster att skapa nya affärer funktioner.
För en lista över alla mina artiklar, gå till williamstallings.com/Articles