Arhitectura orientată spre servicii

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită pe 23 august 2020; verificările necesită 14 modificări .

Arhitectura orientată pe servicii ( SOA , arhitectura orientată pe servicii în limba engleză  - SOA ) este o abordare modulară a dezvoltării software , bazată pe furnizarea de utilizare la distanță a componentelor (serviciilor) ușor de înlocuit , distribuite , cuplate , cu interfețe standardizate folosind protocoale standardizate .

Sistemele software dezvoltate în conformitate cu SOA sunt de obicei implementate ca un set de servicii web care interacționează prin protocolul SOAP , dar există și alte implementări (de exemplu, bazate pe jini , CORBA , bazate pe REST ).

Interfețele componente într-o arhitectură orientată spre servicii încapsulează detalii de implementare ( sistem de operare , platformă , limbaj de programare ) din alte componente, permițând astfel combinarea și reutilizarea componentelor pentru a construi sisteme software distribuite complexe , asigurând independența față de platformele și instrumentele de dezvoltare utilizate, contribuind astfel la scalabilitatea și controlabilitatea sistemelor create.

A câștigat popularitate la sfârșitul anilor 1990 și începutul anilor 2000. De la mijlocul anilor 2010, arhitectura de microservicii a câștigat popularitate  - o variantă de SOA bazată pe utilizarea unor servicii cât mai mici.

Tehnologii de implementare

Arhitectura orientată spre servicii nu este legată de nicio tehnologie anume. Poate fi implementat folosind o gamă largă de tehnologii, inclusiv tehnologii precum REST , RPC , DCOM , CORBA sau servicii web . SOA poate fi implementat folosind unul dintre aceste protocoale și, de exemplu, poate utiliza suplimentar mecanismul sistemului de fișiere pentru schimbul de date.

Principalul lucru care distinge SOA este utilizarea unor servicii independente care execută sarcini bine definite, numite în mod standard prin interfețe bine definite, fără ca serviciile să știe despre aplicațiile care le apelează, iar aplicațiile - modalitățile în care serviciile își îndeplinesc sarcina.

SOA poate fi, de asemenea, gândit ca un stil de arhitectură a sistemului informațional care permite crearea aplicațiilor prin combinarea serviciilor de interacțiune slab cuplate. Aceste servicii interacționează pe baza unei interfețe bine definite, independentă de platformă și limbă (de exemplu, WSDL ). Definiția interfeței ascunde implementarea limbajului serviciului.

Astfel, sistemele bazate pe SOA pot fi independente de tehnologiile și platformele de dezvoltare (cum ar fi Java , .NET , etc.). De exemplu, serviciile C# care rulează pe platforme .Net și serviciile Java care rulează pe platforme Java EE pot fi apelate în același mod de o aplicație compusă comună. Permițând aplicațiilor care rulează pe o platformă să apeleze servicii care rulează pe alte platforme în acest fel, este mai ușor să reutilizați componente.

SOA poate sprijini integrarea și consolidarea operațiunilor în sisteme complexe, dar SOA nu definește și nu oferă metodologii sau cadre pentru documentarea serviciilor.

Limbaje de nivel înalt, cum ar fi BPEL sau specificații precum WS-CDL și WS-Coordination extind conceptul de serviciu prin furnizarea unei metode de orchestrare pentru a combina serviciile de nivel inferior în servicii de afaceri mai mari care pot fi la rândul lor utilizate tehnologic și de afaceri. procese implementate ca aplicații compozite sau portaluri .

Utilizarea arhitecturii componente (SCA) pentru implementarea SOA este un domeniu de cercetare curent.

Link -uri