Palvelukeskeinen arkkitehtuuri ( SOA , englanniksi service-oriented architecture - SOA ) on modulaarinen lähestymistapa ohjelmistokehitykseen , joka perustuu hajautettujen , löyhästi kytkettyjen [ helposti vaihdettavien komponenttien (palveluiden) etäkäyttöön standardoiduilla liitännöillä standardoitujen protokollien avulla .
SOA:n mukaisesti kehitetyt ohjelmistojärjestelmät toteutetaan yleensä SOAP -protokollan yli vuorovaikutteisten verkkopalveluiden joukkona , mutta muitakin toteutuksia on olemassa (esim. jini -pohjainen , CORBA -pohjainen REST -pohjainen ).
Palvelukeskeisen arkkitehtuurin komponenttirajapinnat kapseloivat toteutustiedot ( käyttöjärjestelmä , alusta , ohjelmointikieli ) muista komponenteista, mikä mahdollistaa komponenttien yhdistämisen ja uudelleenkäytön monimutkaisten hajautettujen ohjelmistojärjestelmien rakentamiseen , mikä varmistaa riippumattomuuden käytetyistä alustoista ja kehitystyökaluista. luotujen järjestelmien skaalautuvuus ja hallittavuus .
Se saavutti suosion 1990-luvun lopulla ja 2000-luvun alussa. 2010-luvun puolivälistä lähtien suosiota on noussut mikropalveluarkkitehtuuri – SOA:n variantti, joka perustuu mahdollisimman pieneen palveluiden käyttöön.
Palvelukeskeinen arkkitehtuuri ei ole sidottu mihinkään tiettyyn teknologiaan. Se voidaan toteuttaa käyttämällä laajaa valikoimaa teknologioita, mukaan lukien tekniikat, kuten REST , RPC , DCOM , CORBA tai verkkopalvelut . SOA voidaan toteuttaa jollakin näistä protokollista ja se voi lisäksi käyttää esimerkiksi tiedostojärjestelmän mekanismia tiedonvaihtoon.
Pääasia, joka erottaa SOA:sta, on sellaisten itsenäisten palveluiden käyttö, jotka suorittavat hyvin määriteltyjä tehtäviä, joita kutsutaan standarditavalla hyvin määriteltyjen rajapintojen kautta ilman, että palvelut tietäisivät niitä kutsuvista sovelluksista ja sovelluksista - tavoista, joilla palvelut hoitavat tehtävänsä.
SOA voidaan myös ajatella tietojärjestelmäarkkitehtuurin tyylinä, joka mahdollistaa sovellusten rakentamisen yhdistämällä löyhästi toisiinsa vuorovaikutuksessa olevia palveluita. Nämä palvelut toimivat vuorovaikutuksessa hyvin määritellyn alustasta ja kielistä riippumattoman käyttöliittymän (esimerkiksi WSDL ) perusteella. Käyttöliittymän määritelmä piilottaa palvelun kielitoteutuksen.
Siten SOA-pohjaiset järjestelmät voivat olla riippumattomia kehitystekniikoista ja -alustoista (kuten Java , .NET jne.). Esimerkiksi .Net-alustoilla toimivia C# -palveluita ja Java EE -alustoilla käytäviä Java-palveluita voidaan kutsua samalla tavalla yleisellä yhdistelmäsovelluksella. Kun yhdellä alustalla toimivien sovellusten sallitaan soittaa muilla alustoilla toimivia palveluita tällä tavalla, komponenttien uudelleenkäyttö on helpompaa.
SOA voi tukea toimintojen integrointia ja konsolidointia monimutkaisten järjestelmien välillä, mutta SOA ei määrittele tai tarjoa menetelmiä tai puitteita palveluiden dokumentointiin.
Korkean tason kielet, kuten BPEL tai spesifikaatiot, kuten WS-CDL ja WS-Coordination , laajentavat palvelun käsitettä tarjoamalla orkestrointimenetelmän alemman tason palveluiden yhdistämiseksi suurempiin yrityspalveluihin, joita voidaan puolestaan käyttää teknologisesti ja liiketoiminnallisesti . yhdistelmäsovelluksina tai portaaleina toteutetut prosessit .
Komponenttiarkkitehtuurin (SCA) käyttö SOA:n toteuttamiseen on nykyisen tutkimuksen ala.
Ohjelmistokehitys | |
---|---|
Prosessi | |
Korkean tason käsitteet | |
Ohjeet |
|
Kehittämismenetelmät _ | |
Mallit |
|
Merkittäviä lukuja |
|