170 likes | 339 Views
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.
E N D
SOAService-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 utilizarii serviciilor prin tot ciclul lor de viata (de la conceptie la retragere). • 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
Caracteristici SOA • Functionalitateaunei aplicatiieste impartitain unitati mai mici, distincte (servicii) care pot fi distribuite intr-o retea si pot fi utilizate impreuna pentru a crea aplicatii destinate afacerilor • Promoveaza reutilizarea software-ului • Deseori 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