Valentin Stanciu 341C5
De ce SOA?Companie mare mult cod duplicat
Se poate reclicla codul in mai multe proiecte
Interactiunea cu serviciile unei companii externePosibilitatea de a standardiza interfata de
access la serviciile oferite
Se poate ascunde ce este in spate
Arhitectura simplaBrowserWeb ServerOrder-ProcessingDatabase ServerDatabase
Arhitectura simpla extinsaDorim sa mai adaugam o facilitate.Partea de procesare a comenzilor are nevoie
de a procesa platile prin card de credit/ debitNu ne intereseaza cum proceseaza cardurile
de credit/ debit, ne intereseaza doar rezultatul si cum sa ii trimitem datele Black Box
Componente elementareNici o componenta nu face mai mult decat
este necesar.Componenta de “Credit Checking” doar
verifica plata cu cardul. Nu ofera si alte servicii.
Pentru alte servicii necesare se creeaza alte componente.
Componente interschimbabileO componenta trebuie sa acopere un rol bine
definitFormat de intrare bine definitFormat de iesire bine deinitDaca modificam logica interna unei componente,
celalalte componente care interactioneaza cu aceasta nu trebuie modificate
Avand acestea definite, o componenta poate fi refolosita oriunde este nevoie, de catre oricine, daca respecta standardul de intrare/ iesire
Separarea in layereToate componentele pot fi impartite in 2
layereBusiness logic
Alcatuit din componente care rezolva sarcinile de logica si calcul
Plumbing Alcatuit din componente ce sustin layerul sus
mentionat prin menajarea resurselor calculatorului si transformarea datelor intr-un format intelesOrder
ProcessingCredit
Checking
Presentation Service
Data Service
Business logic
Plumbing
Refolosirea codului existentDe multe ori nu se poate incepe de la zeroIncercam sa refolosim componente deja
existente prin folosirea unor Adaptoare ce ajuta la comunicarea cu celalalte componente
Business logic
Plumbing
Invoicing
Adaptor Order
ProcessingCredit
Checking
Presentation Service
Data Service
SOA SupervisorArhitectura sistemului poate deveni foarte
complexaTrebuie sa vedem ca totul merge comform
planului de la un capat la celalalat (end-to-end)
Monitorizeaza fiabilitatea sistemului si anunta in cazul in care serviciile nu au performanta dorita sau au erori
Exemplu SOAMagazinul emag.ro are nevoie de detaliile despre
produsele primite de la furnizoriMulti furnizori si multe produse, nu se poate
actualiza de manaTornado foloseste o arhitectura interna de tip SOAAseSoft foloseste o aplicatie monobloc pentru
gestiuneTornado in 2 zile pune la dispozitie o adresa web
cu functii publice pentru a cere informatii despre un produs sau a lua catalogul complet
AseSoft scrie de la zero un serviciu dedicat pentru nevoile emag.ro
FunctiiO componenta poate pune la dispozitie mai
multe functii avand acelasi context logicToate pot refolosi aceiasi componenta de
interfataex: un serviciu web
Servicii WebInternetul a dat posibilitatea ca mai multe
servicii din contexte diferite sa foloseasca acelasi mediu de comunicare
Standarde servicii web:XML – date definite intr-un mod ce poate fi citit de orice
aplicatieWSDL – definirea comenzilor acceptate de o componentaSOAP – limbaj standard de conversatie intre componente
Business ProcessAvem toate componentele definite, cum le
folosim?Avem nevoie de o imagine de ansamblu a traseul
datelor si a interactiunii componentelorUn proces “business” este alcatuit din persoane,
servicii, adaptoare si o forma de management a parilor ce il alcatuiesc
El prin definitie nu este neaparat automatizat, in multe companii o mare parte este manuala
Ex: intr-un spital, “acceptarea unui pacient” este un business process
Ex: intr-un magazin de mobila, vanzarea unui dulap este un business process
Probleme end-to-endUnele componente nu pot fi integrate (usor)
Inconsistenta definitiilor de dateEx: date despre “client”: o fabrica, un om, o
companie?Duplicarea proceselor software
Ex: probleme la tratarea diferita a discounturilor sau preturilor oferta intre 2 componente
SOA avansat
Comunicare intre serviciiServiciile comunica intre ele prin mesajeDaca mediul de transmisie a mesajelor are
probleme, atunci tot sistemul de servicii probleme
Este necesara o linie Bus specializata pentru a asigura calitatea transmiterii mesajelorEnterprise Service Bus
Poate fi construit ca un layer peste stratul de retea ce asigura transmiterea mesajelor sau raportarea de erori in cazul in care acestea nu se transmit
SOA RegistryMulte servicii, in timp ajung sa se piardaNu vreau sa tin minte ca la 192.168.0.8 avem
serviciile de comenzi, la 192.168.0.13 avem serviciile de manangement si la 192.168.0.33 serverul web
Se foloseste un registru in care toate componentele isi inregistreaza serviciile
Poate tine minte doar unde se gasesc serviciile sau si cum se interconecteaza cu alte servicii
Se pot defini permisiuni pentru access public sau privat
SOA Service BrokerComponenta care leaga cu adevarat toate
serviciileEl se uita in Registry si vede unde sa caute
un serviciu si daca datele transmise catre acel serviciu sunt conform interfetei definite
Business Process ManagementPentru a interactiona cu usurinta cu toate
serviciile s-au dezvoltat procese care ajuta la dezvoltarea de procese
Uneltele BPM ajuta laIntegrarea functiilor noi – le inregistreaza in
registru si cum se interconecteaza cu alte componente
Integrarea functiilor unei aplicatii existente – unealta ajuta un dezvoltator sa vada ce functii sunt deja incluse in registru si sa le interconecteze
Ajuta la identificarea functiilor disponibile pentru obiectivul unui angajat
Garantarea serviciilorPentru ca un sistem sa poata fi folosit cu
succes este nevoie de garantia lipsei erorilorMulte firme ofera o garantie ca serviciul este
disponibil in 99% din timpPutine firme ofera o garantie de 99.999%
Mult mai dificil de atinsImportant pentru companiile care depind
economic de disponibilitatea servicilor un post de televiziune pierde milioane daca nu
difuzeaza 15 minute de reclame
Masurarea erorilorGaranta un anumit procentaj de raspuns
Masurarea erorilor Hardware Software
Existena unor sisteme de backup 2 baze de date 2 provideri de internet Generator de curent
Software as a serviceOdata cu izolarea servicilor si definirea
interfetei de intrare/iesire devine posibila vanzarea servicilor
Ex: O firma are un serviciu de calculat impozitul annual al angajatilor. Face acest serviciu public si percepe o taxa pentru folosirea lui de catre firme externe si obtine o noua sursa de profit
Clientul plateste pentru fiecare folosire a aplicatiei si poate sa incerce mai multe servicii similare fara sa cumpere licenta pentru toate
Se observa un trend ascendent in servicii accesibile pe internet in urma unei sume de bani
Impartirea pe domeniiIn realitate pot exista probleme de integrare si nu
se pot pune sub aceiasi umbrela toate serviciileEx: Intr-o firma multinationala, componenta cu
manangementul personalului va avea implementari diferite pentru China si SUA datorita mediilor diferite
Serviciile pot fi impartite in domeniiFiecare domeniu are propriile componenteToate domeniile sunt guvernate de aceleasi reguli
de bazaEx: Adobe are componente particulare pentru SUA si
componente particulare pentru Romania, dar ambele domenii respecta aceleasi restrictii de securitate. Un angajat din Romania poate accesa toate resursele online (chiar daca sunt salvate pe servere in SUA)
Referinte1. “Service Oriented Architecture for
Dummies” by Judith Hurwitz, Robin Bloor,Carol Baroudi and Marcia Kaufman
2. http://www.wikipedia.org
Top Related