Sunteți pe pagina 1din 12

SOA

Service Oriented Arhitecture

SOA
Termenul a fost introdus de Yefim Natis intr-o lucrare de cercetare din 1994: SOA este o arhitectura software care porneste de la o definitie de interfata si construieste intreaga topologie a aplicatiei ca o topologie de interfere, implementari de interfete si apeluri de interfete. 'Schimbul de servicii Utilizeaza serviciul ca si componenta reutilizabila: Serviciile au o granularitate mai mare decat componentele Comunicarea dintre servicii si cu clientii se realizeaza pe baza unor interfete bine definit A fost dezvoltata pentru a solutiona problemele legate de integrare si automatizarea proceselor interne si externe cu alte companii sau parteneri in retea.

Fundamente SOA
1. Serviciul

Implementeaza logica si expune logica prin interfete bine definite.


2. Registrul

Serviciul publica interfetele pentru a permite clientilor sa descopere serviciul.


3. Clientii

Descopera serviciul utilizand registru si acceseaza serviciul direct prin interfetele expuse.

Ciclul de viata SOA Etape:


i.

Modelare - se cristalizeaza cerintele de business si se construiesc procesele de afaceri aferente.


1. 2. 3.

design-ul serviciilor software asociate si al nivelului de suport necesar stabilirea unei intelegeri comune la nivelul managementului IT si de business, a proceselor si obiectivelor identificarea unui nivel de referinta pentru masurarea performantelor

ii.

Asamblare - sunt create serviciile necesare interactiunii dintre date, sisteme, fluxuri si procese.
1. 2. 3.

crearea serviciilor necesare pe baza infrastructurii existente crearea si testarea de noi servicii acolo unde nu exista functionalitatile necesare si livrarea acestora pentru procesele implicite orchestrarea tuturor serviciilor pentru atingerea cerintelor de business.

iii. Implementare - este dezvoltat un mediu integrat si securizat in care serviciile specializate asigura interactiunea dintre oameni, procese si informatii.
1. 2. 3.

configurarea unui mediu IT pentru asigurarea unui nivel de suport necesar fiecarui proces optimizarea mediului IT pentru sustinerea proceselor critice reducerea complexitatii prin pastrarea unui nivel de integrare point-to-point

iv. Administrare - functionalitatea unui SOA trebuie monitorizata atat din perspectiva de business cat si din perspectiva IT.
1. 2. 3. 4.

identificarea si pastrarea ratelor de diponibilitate a serviciilor si a timpului de raspuns monitorizarea, real-time, a indicilor de performanta (key performance indicators-KPIs) prevenirea, izolarea, diagnosticarea si rezolvarea problemelor oferirea unui feedback real si vital pentru imbunatatirea proceselor

Beneficii (1)
Imbunatatirea vizibilitatii afacerii Integrarea sistemelor si colectionarea datelor pentru o perceptie exacta si consistenta a clientilor: Informatii actualizate permanent pentru imbunatatirea serviciilor catre clienti Informatii inter-companii pentru activitati de tipul 1:1 Informatii consistente, precise si usor de inteles, importante in actul decizional. Obtinerea flexibilitatii afacerii Crearea unei infrastructuri de software integrata si agila, care sa raspunda rapid nevoilor afacerii: Livrarea rapida a functionalitatilor noii afacerii Reducerea impactului schimbarilor de business si de tehnologie Protejarea investitiilor in timpul creari noilor functionalitati. Obtinerea eficientei afacerii Fluidizeaza, automatizeaza si permite o mai buna supervizare si vizibilitate a proceselor de business: Permite transmiterea securizata a proceselor de business in interiorul si in afara barierelor de siguranta ale companiei Creaza punti intre calupuri de date si asigura integritatea acestora Administreaza deciziile de business in mod proactiv folosind indicatori de performanta.

Beneficii (2)
Recuperarea rapida a investitiilor Un nivel de servicii robust are avantajul unei recuperari rapide si substantiale a investitiilor aduse in construirea componentelor software. Serviciile individualizeaza domeniile distincte ale afacerii. Mobilitatea codului Conectarea dinamica la un serviciu inseamna ca activitatea utilizatorului nu este influentata de locatie. De aceea, o organizatie are flexibilitatea necesara pentru a muta servicii pe o masina diferita sau catre un furnizor extern. Functionalitati specializate pentru dezvoltatori SOA va forta aplicatia sa fie organizata pe mai multe niveluri, fiecare cu un rol specific pentru dezvoltatori. Asamblarea serviciilor Utilizatorii vor ajunge sa inteleaga serviciile ca pe niste bunuri refolosibile, ce pot fi combinate intr-o multitudine de moduri. Utilitatea va consta in dezvoltarea mai rapida de noi aplicatii. Mentenanta superioara Prin orientarea spre servicii, ca locatie a logisticii, operatiunile de mentenanta se imbunatatesc deoarece dezvoltatorii pot localiza defectele de cod mai usor.

Beneficii (3)
Suport pentru mai multe tipuri de clienti Posibilitatea companiilor de a folosi o varietate de clienti pentru accesarea unui serviciu. Un PDA ce foloseste J2ME poate accesa un anumit serviciu prin HTTP, iar un client SWING poate accesa acelasi serviciu via RMI. Teste superioare - mai putine erori Dezvoltatorii au la dispozitie instrumente precum JUnit pentru crearea de teste. Acestea pot fi rulate pentru a valida serviciul, independent de orice aplicatie care il foloseste. Scalabilitate O cerinta importanta pentru arhitecturile orientate spre servicii este transparenta locatiei. Pentru a obtine aceste lucru, aplicatiile cauta servicii intr-un director si se conecteaza la ele dinamic.

Avantaje SOA
reducerea timpului de reactie la schimbarile din piata cresterea agilitatii in organizatie depasirea unor limitari organizationale si sinergie intre toate unitatile de business sau intre caile de acces catre client reducerea timpului de implementare a solutiilor IT descoperirea ineficientelor in procesele de business alinierea resurselor IT cu strategia si obiectivele de business scaderea costurilor de complianta si securitate adoptarea de standarde, inlesnirea colaborarii si intercomunicarii cu partenerii garantarea consistentei proceselor modernizarea sau schimbarea aplicatiilor precum si a fuziunilor

Implementare SOA

Principala provocare in implementarea SOA este data de complexitatea proceselor implicite in elaborarea conceptelor de proiect.

Abordari:
1. Top-down

Sunt create scenarii de utilizare Sunt elaborate specificatiile necesare pentru implementarea serviciilor Procesele de business sunt descompuse in sub-procese independente urmand a fi implementate ca servicii modulare.
2. Bottom-up

proiectele curente ale partenerilor sunt analizate procesele de business sunt identificate pentru a fi convertite in servicii independente.

Tehnologii de implementare
Obiecte distribuite CORBA, J2EE, COM/DCOM Middleware orientat spre mesaje (MOM) WebSphere MQ, Tibco Rendezvous Monitoare CICS, IMS, Encinia, Tuxedo Platforme B2B precum ebXML, RosettaNet Servicii Web

CORBA?
Avantaje: Este un standard deschis Suporta RMI, transmitere de mesaje asincrona si comunicare de grup Ofera securitate, servicii de numire, administrarea tranzactiilor si mesagerie de incredere Suporta limbaje de programare multiple Ofera CORBA IDL utilizat ca un limbaj de definire a serviciilor Obiectele pot fi expuse ca servicii Web deoarece OMG a definit o mapare de la CORBA IDL la WSDL

Dezavantaje: Perceput ca fiind complex Cere ca atat solicitantul cat si furnizorul sa utilizeze CORBA. Nu ofera suport explicit pentru XML Nu ofera suport pentru schimb asincron de documente peste Internet

Platforme B2B
Exemple: ebXML si RosettaNet Avantaje:
Sunt standarde deschise.

Sunt cuplate slab Sunt bazate pe XML Sunt bazate pe schimb asincron de documente (respectiv documente XML) Ofera mecanisme integrate pentru: Inregistrarea serviciului Securitatea serviciului Monitorizarea si administrarea serviciilor Administrarea proceselor de afaceri Tranzactii Trasnmitere de incredere a mesajelor

S-ar putea să vă placă și