Serviceorienteret arkitektur

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 23. august 2020; checks kræver 14 redigeringer .

Serviceorienteret arkitektur ( SOA , engelsk  serviceoriented architecture - SOA ) er en modulær tilgang til softwareudvikling , baseret på at give fjernbrug af distribuerede , løst koblede let udskiftelige komponenter (tjenester) med standardiserede grænseflader ved hjælp af standardiserede protokoller .

Softwaresystemer udviklet i overensstemmelse med SOA implementeres normalt som et sæt webtjenester, der interagerer over SOAP -protokollen , men der findes andre implementeringer (for eksempel baseret på jini , CORBA , baseret på REST ).

Komponentgrænseflader i en serviceorienteret arkitektur indkapsler implementeringsdetaljer ( operativsystem , platform , programmeringssprog ) fra andre komponenter, hvilket tillader komponenter at blive kombineret og genbrugt til at bygge komplekse distribuerede softwaresystemer , hvilket sikrer uafhængighed af de anvendte platforme og udviklingsværktøjer, hvilket bidrager til skalerbarhed og kontrollerbarhed af de skabte systemer.

Det vandt popularitet i slutningen af ​​1990'erne og begyndelsen af ​​2000'erne. Siden midten af ​​2010'erne har mikroservicearkitektur vundet popularitet  - en variant af SOA baseret på brugen af ​​tjenester så små som muligt.

Implementeringsteknologier

Serviceorienteret arkitektur er ikke bundet til nogen bestemt teknologi. Det kan implementeres ved hjælp af en bred vifte af teknologier, herunder teknologier som REST , RPC , DCOM , CORBA eller webtjenester . SOA kan implementeres ved hjælp af en af ​​disse protokoller og kan for eksempel yderligere bruge filsystemmekanismen til dataudveksling.

Det vigtigste, der adskiller SOA, er brugen af ​​uafhængige tjenester, der udfører veldefinerede opgaver, kaldet på en standard måde gennem veldefinerede grænseflader, uden at tjenesterne ved om de applikationer, der kalder dem, og applikationerne - de måder, hvorpå tjenester udfører deres opgave.

SOA kan også opfattes som en stil af informationssystemarkitektur, der gør det muligt at bygge applikationer ved at kombinere løst koblede interagerende tjenester. Disse tjenester interagerer baseret på en veldefineret platform- og sproguafhængig grænseflade (f.eks. WSDL ). Interfacedefinitionen skjuler sprogimplementeringen af ​​tjenesten.

SOA-baserede systemer kan således være uafhængige af udviklingsteknologier og -platforme (såsom Java , .NET , etc.). For eksempel kan C# -tjenester, der kører på .Net-platforme, og Java-tjenester, der kører på Java EE-platforme , kaldes på samme måde af en fælles sammensat applikation. Ved at tillade applikationer, der kører på én platform, at kalde tjenester, der kører på andre platforme på denne måde, er det lettere at genbruge komponenter.

SOA kan understøtte integration og konsolidering af operationer på tværs af komplekse systemer, men SOA definerer eller leverer ikke metoder eller rammer til dokumentation af tjenester.

Sprog på højt niveau som BPEL eller specifikationer som WS-CDL og WS-Coordination udvider konceptet for en tjeneste ved at tilbyde en orkestreringsmetode til at kombinere tjenester på lavere niveau til større forretningstjenester, der igen kan bruges teknologisk og forretningsmæssigt processer implementeret som sammensatte applikationer eller portaler .

Brugen af ​​komponentarkitektur (SCA) til at implementere SOA er et område af aktuel forskning.

Links