Transcript SOA
SOA Service-Oriented Architecture -Notiuni de baza- Cristina Surdu 341 C5 Cuprins ► Istoric ► Definire ► Caracteristici ► Principiile SOA ► Componentele de baza ► Avantaje SOA ► Bibliografie Istoric SOA ► Termen introdus de Yefim Natis intr-o lucrare de cercetare (1994): SOA este o arhitectura software care porneste de la o definitie de interfata si construieste intreaga topologie a aplicatiei ca o topologie de interfete, implementari de interfete si apeluri de interfete ►A devenit popular numai la inceputul anilor 2000 > o data cu aparitia serviciilor Web si proceselor de business care respecta WSDL Definire SOA -un stil arhitectural► Stil de design care ghideaza toate aspectele crearii si ► Modalitate de a defini si oferi o infrastructura IT pentru a permite aplicatiilor diferite sa schimbe date si sa participe la procese, indiferent de sistemul de operare si indiferent de limbajele de programare care stau la baza acestor aplicatii ► O abordare de constructie a sistemelor IT in care primeaza necesitatea pentru business utilizarii serviciilor prin tot ciclul lor de viata (de la conceptie la retragere). Caracteristici SOA ► Functionalitatea unei aplicatii este impartita in unitati mai mici, distincte (servicii) care pot fi distribuite intr-o retea si pot fi utilizate impreuna pentru a crea aplicatii destinate afacerilor ► Promoveaza ► Deseori reutilizarea software-ului vazuta ca o evolutie a programarii distribuite si a programarii modulare. Caracteristici SOA(2) -Servicii► Unitati functionale neasociate care nu au apeluri unele catre altele inglobate in ele => sunt implementate functionalitati pe care majoritatea oamenilor le-ar recunoaste ca si serviciu ► Nu au in codul propriu implementat modul in care acestea sa comunice intre ele (acest lucru este implementat in cadrul protocoalelor) Principiile SOA ► Explicit boundaries: cand este nevoie de functionalitatile unui anumit serviciu, sa fie oferite & accesul la serviciu sa fie numai prin interfata sa publica ► Shared Contract and Schema, not Class: serviciul trebuie sa vina impreuna cu o descriere (contract) => ofera consumatorului si providerului toate informatiile necesare despre serviciu Principiile SOA(2) ► Policy-driven: pentru a interactiona cu un serviciu: functionalitatea, semantica si sintaxa providerului trebuie sa corespunda cerintelor utilizatorului & toate nevoile si capacitatile tehnice trebuie sa se potriveasca; ► Autonomy: unica legatura a serviciului cu lumea de afara este prin interfata sa; serviciile trebuie sa poata fi modificate independent unele de altele Principiile SOA(3) ► Wire formats, not Programming Language APIs: accesibilitate – un serviciu trebuie sa fie accesibil independent de platforma, atata timp cat sunt respectate cerintele din interfata ► Document-oriented: pentru a interactiona cu serviciul, data este pasata in documente; functiile serviciului sunt descrise in aceste documente Principiile SOA(4) ► Loosely coupled: un serviciu poate fi accesat de oriunde, oricand & descompunerea in servicii independente => scaderea dependentei de un singur proces ► Standards-compliant: serviciile trebuie sa functioneze dupa anumite standarde, nu in functie de API-uri & serviciul trebuie sa depinda numai de descriere Principiile SOA(5) ► Vendor independent: asigura interoperabilitatea si portabilitatea & transmiterea de mesaje bazate de exemplu pe XML => cresterea capacitatii de a atinge neutralitatea de platforma ► Metadata driven: toata metadata din SOA trebuie sa fie stocata intr-un mod in care sa fie usor descoperita si interpretata, si ca design si ca functionalitate (interfete, participanti, legaturi, scheme, relatii consumator-provider) Principiile SOA(6) ► Reusability: logica aplicatiei divizata in unitati logice mici => servicii usor reutilizate ► Scalability: procesele descompuse in unitati mici => adaugarea de noi logici usor de realizat & noua logica poate fi adaugata ca o unitate extinsa a unui serviciu curent sau poate fi construita ca un serviciu nou Componentele de baza SOA ► Furnizor de serviciu (Serviciu) - ofera procese in forma de servicii ► Consumator de serviciu (Consumator) – serviciile oferite de furnizor sunt apelate de consumator ► Servicii director (permise de Broker) – intre furnizor si consumator Componentele de baza SOA(2) ► Serviciul care este disponibil consumatorului este publicat in serviciile director la broker. ► Consumatorul descopera serviciile de la broker ► Daca serviciul este gasit, se ofera legatura la serviciu si se executa logica de procesare Avantajele SOA Beneficii in domeniul Business: ► Eficienta – transforma procesul business, dintr-un proces greoi intr-un proces rapid si eficient, ce foloseste servicii cu un cost redus al mentenantei ► Adaptabilitate – se pot face schimbari ale sistemului cu un minim de efort si complexitate, in mai putin timp si cu mai putini bani Avantajele SOA(2) Beneficii in domeniul IT: ►Complexitate redusa – compatibilitate bazata pe standarde versus o integrare pas cu pas, care reduce complexitatea ►Resurse refolosite – se pot refolosi resursele deja create, reducandu-se astfel costurile pentru mentenanta si integrare Bibliografie ► http://www.infoq.com/articles/tilkov-10-soa- principles ► Curs Sisteme distribuite – Tehnologii: Arhitecturi orientate spre servicii ► http://en.wikipedia.org/wiki/Service- oriented_architecture