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