Den serviceorienterede arkitektur eller SOA (Layer engelsk orienteret tjeneste arkitektur , SOA ) er en form for mægling arkitektur , der er et samspil model applikation , der implementerer services (komponenter software ):
Dette udtryk opstod i perioden 2000-2001 og vedrørte oprindeligt hovedsageligt spørgsmålene om syntaktisk interoperabilitet i forhold til de computerteknologier, der anvendes i erhvervslivet. Dette design har udviklet sig til nu at henvise til den særlige delmængde af mæglingsarkitektur afhængigt af den tilgængelige teknologi.
I hverdagen tilbyder en leverandør en service til en kunde, der forbruger den i et tillidsforhold, der er etableret mellem de to parter. Generelt er kunden kun interesseret i produktresultatet af tjenesten uden behov for eller bekymring for at vide, hvordan den opnås. SOA følger det samme princip. Service er en handling udført af en "leverandør" (eller "producent") for en "klient" (eller "forbruger"), men interaktionen mellem forbruger og producent sker dog gennem en mægler (som kan være en bus), der er ansvarlig for at forbinde komponenterne. Tjenesten er stor mesh, den omfatter og tilbyder funktionerne i systemets komponenter. Disse systemer kan også defineres som applikationslag. Tjenesteorienteret arkitektur er et meget effektivt svar på de problemer, virksomhederne støder på med hensyn til genanvendelighed, interoperabilitet og reduktion af koblingen mellem de forskellige systemer, der implementerer deres informationssystemer. Den SOA eller SOA blev populariseret med fremkomsten af standarder som Web Services i e-handel (elektronisk handel) ( B2B , mellem virksomheder eller B2C , virksomheder og forbrugere) baseret på platforme som Java EE eller .NET . De anvender en del af urbaniseringsprincipperne . Inden for den serviceorienterede arkitektur skelner vi mellem begreberne katalog, bus, kontrakt og service, hvor sidstnævnte er kernen og det centrale punkt i en serviceorienteret arkitektur. Variationen eller mere præcist implementeringen af SOA, der udelukkende er afhængig af Internettet, kaldes WOA ( Web-orienteret arkitektur ).
I løbet af årtiet 1980-1990, problemet med interoperabilitet mellem informationssystemer, særligt komplekse under fusion eller opkøb af virksomheder, fødte den forskning inden for data interoperabilitet ; Det var på dette tidspunkt, at syntaktisk interoperabilitet skelnes fra semantisk datainteroperabilitet. Denne forskning førte til multibasesystemer , udviklingen af distribuerede databaser og den fødererede arkitektur . På grund af mange uhåndterlige problemer blev den fødererede arkitektur praktisk taget forladt.
De to vigtigste funktionelle krav, der opstod i denne periode, er:
Disse funktionelle krav krystalliseret med opfindelsen ved Gio Wiederhold den mægling arkitektur i 1990-1992:
Forskning i datamægling fokuserede derefter på skabelsen af generisk arkitektur som ARPA I3, hvor de fem største familier af tjenester optrådte (tilpasning, transformation, udvidelse, styring og koordinering), udvikling af sprog med høj semantisk ekspressivitet såsom KQML og semantiske informationstransformationsværktøjer såsom ontologier .
Samtidig gjorde udviklingen af webteknologi gradvist andre distribuerede computerteknologier mindre og mindre attraktive. Ankomsten i 1996 af XML forårsagede en dille for dette sprog i forskningsmiljøet, og ad-hoc eller mere komplekse sprog som KQML blev praktisk taget opgivet, i det mindste for denne type arkitektur. Industrien udviklede mange produkter under impuls af grundlæggende forskning, for eksempel er der mere end 150 Ph.D. direkte linje fra Wiederhold, hvor flertallet har været aktivt involveret i udviklingen af denne teknologi hos IBM , Oracle , Sun , Microsoft , Cisco , Samsung , LG , Bell Laboratories , Silicon Graphics , Kodak , Google , Napster og andre; som James Duncan Davidson, der var skaberen af Tomcat ( Java Servlet og JavaServer Pages ) samt Ant . I slutningen af tiåret 1990-2000 fandt man et betydeligt antal af denne type teknologier, hvis interoperabilitet undertiden var ekstremt problematisk, i det mindste uden softwareopskrift for at opnå det.
En serviceorienteret arkitektur overholder forskellige principper for servicestyring, der direkte påvirker den iboende opførsel af en softwareløsning og stilen af dens design:
Den serviceorienterede arkitektur repræsenterer et teknisk middel til at integrere de forskellige informationssystemer i virksomheden, der betragter hver it-ressource som en tjeneste. Det gør det muligt at konstruere de byggesten, der udgør byplanlægningen af informationssystemet.
Begrebet interface er vigtigt i den serviceorienterede tilgang. Faktisk repræsenterer det det eneste indgangspunkt til softwareløsningens funktionalitet og sikrer kommunikation gennem udveksling af meddelelser. Hver meddelelse bærer semantikken, der er specifik for softwareløsningen. Derudover er denne meddelelse skrevet på et sprog, der er forståeligt for begge involverede parter. De tjenester, der tilbydes af en agil arkitektur, beskriver strukturen i de meddelelser, de forventer af kunden.
Serviceorienteret arkitektur er en distribueret softwareløsning. Det tilvejebringer en mekanisme til sikker udveksling af meddelelser mellem de underliggende informationssystemer ved anvendelse af standardiserede kommunikationsprotokoller. Denne tilgang giver arkitektur en mulighed for at åbne op for en bred vifte af eksisterende softwareløsninger.
Service er en nøglekomponent i serviceorienteret arkitektur. Den består af en veldefineret funktion eller funktionalitet. Det er også en enkeltstående komponent, der ikke afhænger af nogen sammenhæng eller ekstern tjeneste. Det er opdelt i operationer, der udgør så mange specifikke handlinger, som tjenesten kan udføre. Vi kan tegne en parallel mellem operationer og tjenester på den ene side og metoder og klasser i objektorienteret tilstand på den anden.
En serviceorienteret arkitektur er i det væsentlige en samling af tjenester, der interagerer og kommunikerer med hinanden. Denne kommunikation kan bestå af en simpel returnering af data eller af en aktivitet (koordinering af flere tjenester).
En tjeneste er en behandlingsenhed, der overholder følgende egenskaber:
En variant af tjenesten er for eksempel webservicen, der bruger WSDL (en XML-metalsprog) som beskrivelsessprog, et UDDI-bibliotek for at tillade dets lokalisering og en transportprotokol såsom HTTP i REST- arkitekturen og SOAP til SOA-arkitekturen.
Der er et hierarki af tjenester, der svarer til de forskellige tekniske lag i løsningsarkitekturen:
Servicekataloget refererer til alle de tilgængelige tjenester (og tilknyttede kontrakter) inden for IS, og den deltager således aktivt i implementeringen af en dynamisk kortlægning af IS. I en busmodel kan biblioteket leveres selv af tjenesten (registrering). UDDI- mapper udgør i dag standarden for henvisning til tjenester.
Den mest almindelige implementering af SOA er den, der er baseret på en servicebus. Denne bus har en rolle som mediator (mellemvare) mellem forbrugeren og producenten af tjenesten, hvilket gør det muligt at opnå løs kobling. Bussen kan også tilbyde en række tjenester:
Vi taler generelt om ESB ( Enterprise Service Bus ), et nyt generationsværktøj til IAE ( Enterprise Application Integration , EAI ) bygget på standarder som XML, JMS ( Java Message Service ) eller webservices. Den største forskel med IAE er, at ESB tilbyder fuldt distribueret integration gennem brug af servicecontainere. Disse "mini-servere" indeholder integrationslogikken og kan afleveres hvor som helst på netværket. ESB er hovedsageligt et asynkront udvekslingsværktøj med standardiserede (SOAP, JMS ...) eller integrerede ( JBI ...) grænseflader . Det kan også tilbyde merværditjenester (oversættelse, transformation osv.) Aktiveret af begivenheder.
En anden mulighed for at oprette SOA inden for en IS er at bruge internettet som den eneste servicestøtte (og ikke som bus). Denne tilgang er muliggjort af det faktum, at internettet allerede indeholder de kvaliteter, der er nødvendige for en SOA (routing, sikkerhed osv.).
En sådan arkitektur kræver imidlertid, at alle tjenester eksponeres på nettet (hvilket betyder, at de er tilgængelige fra en URL), hvilket foretrækker webtjenester (husk at webtjenester ikke er den eneste måde at eksponere tjenester på nettet på.). Fordelen ved dette design er, at understøttelsen af besked om serviceopkald (internettet derfor) virkelig er universel og ikke kræver nogen konfiguration, vedligeholdelse, udvikling ... Men denne løsning er i øjeblikket ret forældet i situationer, hvor ydeevne er et problem. kriterium (jf. ulemper ved webtjenester ).
Denne løsning synes med hensyn til ren arkitektur (tekniske overvejelser til side) virkelig mere i tråd med SOA-principperne.
På tidspunktet for skrivningen af dette afsnit (sommeren 2008) er WOA stadig ung og uden nogen reel formalisme giver det stadig anledning til mange debatter. Det er således nødvendigt at tage al den nødvendige afstand med hensyn til den nuværende beskrivelse af WOA.
Qworum er et eksempel på WOA-teknologi.
SOA-arkitekturer er hovedsageligt baseret på brugen af påkaldsgrænseflade ( SOAP , gammelt akronym for Simple Object Access Protocol ) og databeskrivelsesordforråd ( WSDL , Web Services Description Language og XML , Extensible Markup Language ), som skal være fælles for alle agenter (tjenesteudbydere) og servicebrugere).
Denne enhed gør det muligt at genbruge forretningsapplikationer, der har til formål at give virksomheden mulighed for hurtigt at tilpasse sig en ny markedssammenhæng.
Med hensyn til interoperabilitet er SOA-arkitekturer delvist baseret på de standarder, der er beskrevet gennem WS-I .
Blandt de forskellige lag af standarder og protokoller, der gør det muligt at opbygge sådanne arkitekturer, bemærker vi:
En SOA-arkitektur kan suppleres med:
OASIS (Organisation for fremme af strukturerede informationsstandarder) er et nonprofit-konsortium, der driver udvikling, konvergens og vedtagelse af "OPEN" -standarder for informationssystemarkitekturer.
Omkring 2013 anvendte en række virksomheder, såsom Netflix , SOA-mønstre ved at tage højde for datidens teknologiske udvikling (containerisering, kubernetes , kafka osv.). Den tidligere tilbagemelding har gjort det muligt at forfine nogle af principperne, især tjenesternes granularitet, deraf navnet " Microservices ". Fra dette synspunkt kan vi betragte mikrotjenester som en udvikling af SOA.
Den SNCF har indført en SOA arkitektur for sit reservationssystem (søg planlægning, anmodning sats, booking ...), der understøtter både terminaler wickets agenturer og stationer, og understreger sin online bestilling hjemmeside Voyages-sncf.com .
Det Air France-KLM-gruppen har også besluttet ijuli 2008at vælge en serviceorienteret arkitektur til sin IS (arkitektur baseret på webtjenester, vil den til sidst erstatte den "hjemlige" SOA-arkitektur, der har været på plads siden 1990'erne). Virksomheden vælger denne arkitektur for at "gøre sin IS både skalerbar og lydhør".
Endelig moderniserer den franske administration også gennem renovering af den tekniske infrastruktur i visse ministerier, herunder forsvar og ex-stridende. For eksempel planlægger projektteamet for det næste afdelingsopkøbssystem at bruge en servicearkitektur baseret på en ESB. Faktisk bliver denne ministerielle SI HA nødt til at udveksle med mange andre. Således vil SOA give det mulighed for at integrere i et landskab begrænset af et stærkt behov for interoperabilitet.