Arhitectura orientată spre servicii

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

În domeniul tehnologiei informației , termenul englezesc Service-Oriented Architecture (SOA) indică în general o arhitectură software adecvată pentru susținerea utilizării serviciilor web pentru a asigura interoperabilitatea între diferite sisteme, astfel încât să permită utilizarea aplicațiilor individuale ca componente ale afacerii procesează și răspunde cererilor utilizatorilor într-un mod integrat și transparent.

Elementele unui SOA, de Dirk Krafzig, Karl Banke și Dirk Slama. Enterprise SOA . Prentice Hall, 2005

Definiții existente

O arhitectură orientată spre servicii este concepută pentru conectarea la cerere a resurselor de calcul (în principal aplicații și date), pentru a obține un rezultat dat pentru utilizatori, care pot fi utilizatori finali sau alte servicii. Organizația pentru avansarea standardelor de informații structurate definește arhitectura orientată spre servicii după cum urmează:

«O paradigmă pentru organizarea și utilizarea resurselor distribuite care pot fi sub controlul domeniilor de proprietăți diferite. Oferă un mijloc uniform de a oferi, descoperi, interacționa și utiliza capacitățile de a produce efectele dorite în mod consecvent cu presupuneri și așteptări măsurabile. "

( Organizația pentru avansarea standardelor de informații structurate )

În ciuda faptului că există mai multe definiții ale arhitecturii orientate către servicii , numai grupul Organizația pentru avansarea standardelor de informații structurate a produs o definiție formală care este profund aplicabilă atât tehnologiei, cât și domeniilor de afaceri.

Deși multe definiții ale arhitecturii orientate spre servicii sunt limitate la tehnologie sau numai la servicii web, acest aspect este predominant pentru furnizorii de tehnologie. În 2003 au vorbit despre serviciile web, iar în 2006 despre motoarele de proces legate de notația modelului proceselor de afaceri.

Posterul

Manifestul SOA spune:

«Orientarea către serviciu este paradigma care circumscrie ceea ce faci. Arhitectura orientată spre servicii (SOA) este tipul de arhitectură bazat pe aplicația orientării serviciilor. Aplicăm orientarea către servicii pentru a ajuta în mod constant organizațiile să ofere performanțe de afaceri durabile, cu o mai mare ușurință în utilizare și eficiență a costurilor, adaptându-ne în același timp la nevoile în schimbare ale afacerii. Experiența noastră ne conduce la prioritizarea:

  • Valoarea afacerii versus aspectul tehnic
  • La obiectivele strategice cu privire la beneficiile specifice ale unui proiect
  • La interoperabilitate intrinsecă versus integrare personalizată
  • Serviciilor partajate versus implementări particulare
  • Flexibilitate versus optimizare
  • La îmbunătățirea evoluției în ceea ce privește căutarea perfecțiunii inițiale

Adică, deși apreciem valoarea elementelor afișate în dreapta, preferăm elementele afișate în stânga. "

( Manifestul SOA )

Descriere

Prin urmare, în contextul unei arhitecturi orientate spre servicii, este posibil să se modifice, într-un mod relativ mai simplu, modalitățile de interacțiune dintre servicii sau combinația în care serviciile sunt utilizate în proces. În plus, este mai ușor să adăugați servicii noi și să modificați procesele pentru a satisface nevoile specifice ale afacerii. Procedând astfel, procesul de afaceri nu mai este legat de o anumită platformă sau aplicație; dar poate fi considerat ca o componentă a unui proces mai mare și, prin urmare, reutilizat sau modificat.

Arhitectura orientată spre servicii este deosebit de potrivită pentru companiile cu o complexitate moderată a proceselor și aplicațiilor. De fapt, interacțiunea dintre diferitele companii este facilitată. Întreprinderile pot dezvolta acum procese eficiente atât pe plan intern, cât și pe plan extern. În același timp, crește flexibilitatea și adaptabilitatea proceselor.

În timp ce multe companii oferă produse care pot sta la baza unei arhitecturi orientate spre servicii, ar trebui subliniat faptul că arhitectura orientată spre servicii nu este un produs.

Cheia constă în absența totală a logicii de afaceri pe clientul SOA, care este total agnostic în ceea ce privește platforma de implementare, în ceea ce privește protocoalele, legarea, tipul de date, politicile cu care serviciul va produce informațiile solicitate. Toate în beneficiul independenței serviciilor, care pot fi apelate pentru a-și îndeplini sarcinile într-un mod standard, fără ca serviciul să cunoască cererea de apelare și fără ca aplicația să cunoască sau să aibă nevoie de serviciul pe care îl are va efectua efectiv operația.

Arhitectura orientată spre servicii poate fi văzută și ca un stil de arhitectură a sistemelor informaționale care permite crearea de aplicații dezvoltate, combinând servicii cuplate slab și interoperabilitatea acestora. Aceste servicii interacționează în conformitate cu o definiție formală, numită protocol sau contract, ca și pentru limbajul de descriere a serviciilor web, independent de platforma de bază și de tehnologiile de dezvoltare (cum ar fi Java, .NET etc.). De exemplu, serviciile scrise în Java utilizând platforma Java EE și cele din C # cu .NET pot fi utilizate de aplicația de mai sus. Aplicațiile care rulează pe o platformă pot utiliza, de asemenea, servicii care rulează pe altele, cum ar fi cu serviciile web, facilitând astfel reutilizarea.

Arhitectura orientată spre servicii poate sprijini integrarea și consolidarea activităților în cadrul sistemelor de afaceri complexe (sisteme EAI ), dar nu specifică sau oferă metodologia sau cadrul pentru a documenta capacitățile și potențialul serviciilor.

Limbaje la nivel înalt, cum ar fi Limbajul de execuție a proceselor de afaceri și specificații, cum ar fi Limba de descriere a coregrafiei serviciilor web și coordonarea WS, extind conceptul de serviciu, oferind o metodă de definire și susținere a coordonării serviciilor de finisare cu cele majore, care, în consecință, pot fi incluse în fluxurile de control și procesele de afaceri implementate cu aplicații sau portaluri compozite.

Tehnologii conexe

Printre tehnologiile care vă permit să creați arhitecturi orientate spre servicii, există:

  • rețele de comunicații , fără de care ar fi imposibil să comunicați aplicații localizate pe diferite servere;
  • Servicii web care vă permit să definiți metodele de comunicare ale diferitelor aplicații;
  • Enterprise Service Bus (ESB) care are funcția de coordonare și orchestrare a diferitelor aplicații pentru îndeplinirea funcțiilor de afaceri.

Protocoale de comunicare conexe

Calculul orientat spre servicii nu este legat de o tehnologie specifică. Poate fi realizat folosind o gamă largă de tehnologii, inclusiv:

Trebuie subliniat faptul că, pentru ca o arhitectură să fie definită ca orientată spre servicii , protocolul de comunicație trebuie să permită și definirea serviciilor, a parametrilor de intrare și ieșire, așa cum se face, de exemplu cu Limbajul de descriere a serviciilor web .

Mai multe dintre protocoalele enumerate mai sus preced definiția arhitecturii orientate spre servicii și sunt asociate cu ingineria software bazată pe componente . Când au fost introduse tehnologii legate de limbajul de marcare eXtensible, a devenit mai ușor și mai profitabil să se creeze arhitecturi de acest tip.

Aspecte ale dezvoltării

Valabilitatea unei arhitecturi orientate spre servicii (SOA) este o consecință a elementelor și standardelor pe care se bazează. În special, trebuie avute în vedere următoarele aspecte:

  • Standarde deschise : pentru a opera în medii multi-platformă este necesar, sau cel puțin recomandabil, să se utilizeze numai standarde deschise precum XML , WSDL și WS-Security (WSS).
  • Modularitate : trebuie găsit echilibrul corect între serviciile furnizate de fiecare componentă individuală, creând un set echilibrat de servicii mici reutilizabile pentru funcții comune și servicii mai mari pentru procese specifice. Acest aspect este împrumutat de la ingineria software bazată pe componente [1] .
  • Acorduri de servicii : Limbajul de descriere a serviciilor web este specificația standard pentru crearea acordurilor de servicii web, un acord definit va avea ca rezultat servicii mai flexibile. O alternativă este Limbajul de descriere a aplicației web , care vă permite să definiți servicii care utilizează Transferul de state reprezentative și tehnologia JSON .
  • Cadrele de integrare : implementează tiparele de integrare [2] și permit o gestionare mai ordonată a orchestrării serviciilor.
  • Enterprise Service Bus : coloana vertebrală pentru publicarea serviciilor și activarea aplicațiilor pentru a le accesa. De asemenea, include caracteristici precum adaptoare pentru sisteme vechi , capabilități de orchestrare a serviciilor, autentificare și autorizare din partea securității, transformarea datelor, suport pentru reguli de afaceri și capacitatea de a monitoriza acordurile la nivel de serviciu .

Critici

Arhitectura SOA a fost criticată de Martin Fowler [3] și Jim Webber [4] . Critica se referă la complexitatea coordonării dintre diferitele servicii web care sunt apelate. De obicei, pentru această sarcină este utilizat un produs propriu Enterprise Service Bus. Acest produs brevetat ascunde în sine complexitatea coordonării diferitelor componente. De-a lungul timpului, schimbarea configurațiilor ESB devine din ce în ce mai dificilă și există tendința de a nu mai folosi ESB, ci de a face componentele să se apeleze reciproc direct, prezentând din nou problemele pe care ESB și-a propus să le rezolve.

Microserviciu

Microserviciile au o legătură strânsă cu arhitectura orientată spre servicii, de fapt, stilul de dezvoltare al microserviciilor este foarte similar cu cel promovat de cei care susțin SOA. Diferența este că autobuzele de servicii pentru întreprinderi au fost adesea folosite pentru a integra aplicații monolitice.

Încercarea de a ascunde complexitatea integrării în autobuzele de servicii pentru întreprinderi, potrivit lui Martin Fowler, a dus la proiecte care au durat câțiva ani și au costat milioane de dolari, dar nu au produs nicio valoare. Și mai rău, au condus la modele de conducere centralizate care au inhibat schimbarea și au făcut dificilă observarea acestor probleme.

Martin Fowler scrie:

„Când am vorbit despre microservicii, o întrebare comună este dacă aceasta este doar arhitectură orientată spre servicii (SOA) pe care am văzut-o acum un deceniu. Există un merit în acest punct, deoarece stilul microserviciului este foarte asemănător cu ceea ce au susținut unii susținătorii SOA. Cu toate acestea, problema este că SOA înseamnă prea multe lucruri diferite și că, de cele mai multe ori, când întâlnim ceva numit „SOA” este semnificativ diferit de stilul pe care îl descriem aici, de obicei datorită concentrării pe ESB-uri obișnuite integrați aplicații monolitice.

În special, am văzut atât de multe implementări greșite ale orientării serviciilor - de la tendința de a ascunde complexitatea în ESB, la inițiative multianuale eșuate care costă milioane și nu oferă nici o valoare, la modele de guvernanță centralizate care inhibă activ schimbarea, încât uneori este greu de văzut în trecut aceste probleme.

Cu siguranță, multe dintre tehnicile utilizate în comunitatea de microservicii au crescut din experiențele dezvoltatorilor care integrează servicii în organizații mari. Modelul Tolerant Reader este un exemplu în acest sens. Eforturile de utilizare a internetului au contribuit, utilizarea protocoalelor simple este o altă abordare derivată din aceste experiențe - o reacție departe de standardele centrale care au atins o complexitate care este, sincer, uluitoare. (De fiecare dată când aveți nevoie de o ontologie pentru a vă gestiona ontologiile, știți că aveți probleme profunde.)

Această manifestare comună a SOA a determinat unii avocați ai microserviciului să respingă în totalitate eticheta SOA, deși alții consideră că microserviciile sunt o formă de SOA, poate că orientarea către servicii este făcută corect. Oricum ar fi, faptul că SOA înseamnă lucruri atât de diferite înseamnă că este valoros să ai un termen care să definească mai clar acest stil arhitectural. "

( Martin Fowler, Microservicii )

Notă

Bibliografie

Elemente conexe

Alte proiecte

linkuri externe

Definiții ale arhitecturii orientate spre servicii

Controlul autorității LCCN (EN) sh2008008368 · GND (DE) 4841015-9
Internet Portal internet : accesați intrările Wikipedia care se ocupă de internet