240 likes | 334 Views
Service Oriented Architecture. Valentin Stanciu 341C5. De ce SOA?. Companie mare mult cod duplicat Se poate reclicla codul in mai multe proiecte Interactiunea cu serviciile unei companii externe Posibilitatea de a standardiza interfata de access la serviciile oferite
E N D
Service Oriented Architecture Valentin Stanciu 341C5
De ce SOA? • Companie mare mult cod duplicat • Se poate reclicla codul in mai multe proiecte • Interactiunea cu serviciile unei companii externe • Posibilitatea de a standardiza interfata de access la serviciile oferite • Se poate ascunde ce este in spate
Arhitectura simpla • Browser • Web Server • Order-Processing • Database Server • Database
Arhitectura simpla extinsa • Dorim sa mai adaugam o facilitate. • Partea de procesare a comenzilor are nevoie de a procesa platile prin card de credit/ debit • Nu ne intereseaza cum proceseaza cardurile de credit/ debit, ne intereseaza doar rezultatul si cum sa ii trimitem datele Black Box
Componente elementare • Nici 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 interschimbabile • O componenta trebuie sa acopere un rol bine definit • Format de intrare bine definit • Format de iesire bine deinit • Daca 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 layere • Toate componentele pot fi impartite in 2 layere • Business 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 inteles Order Processing Credit Checking Business logic Presentation Service Data Service Plumbing
Refolosirea codului existent • De multe ori nu se poate incepe de la zero • Incercam sa refolosim componente deja existente prin folosirea unor Adaptoare ce ajuta la comunicarea cu celalalte componente Adaptor Order Processing Credit Checking Business logic Invoicing Presentation Service Data Service Plumbing
SOA Supervisor • Arhitectura sistemului poate deveni foarte complexa • Trebuie 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 SOA • Magazinul emag.ro are nevoie de detaliiledespreproduseleprimite de la furnizori • Multi furnizorisimulteproduse, nu se poateactualiza de mana • Tornado foloseste o arhitecturainterna de tip SOA • AseSoftfoloseste o aplicatiemonoblocpentrugestiune • Tornado in 2 zilepune la dispozitie o adresa web cu functiipublicepentru a cereinformatiidespre un produssau a luacatalogulcomplet • AseSoftscrie de la zero un serviciudedicatpentrunevoile emag.ro
Functii • O componenta poate pune la dispozitie mai multe functii avand acelasi context logic • Toate pot refolosi aceiasi componenta de interfata • ex: un serviciu web
Servicii Web • Internetul 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 aplicatie • WSDL – definirea comenzilor acceptate de o componenta • SOAP – limbaj standard de conversatie intre componente
Business Process • Avemtoatecomponentele definite, cum le folosim? • Avemnevoie de o imagine de ansamblu a traseuldatelorsi a interactiuniicomponentelor • Un proces “business” estealcatuit din persoane, servicii, adaptoaresi o forma de management a parilorceilalcatuiesc • El prindefinitie nu esteneaparatautomatizat, in multecompanii o mare parte estemanuala • Ex: intr-un spital, “acceptareaunuipacient” este un business process • Ex: intr-un magazin de mobila, vanzareaunuidulapeste un business process
Probleme end-to-end • Unele componente nu pot fi integrate (usor) • Inconsistenta definitiilor de date • Ex: 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
Comunicare intre servicii • Serviciile comunica intre ele prin mesaje • Daca mediul de transmisie a mesajelor are probleme, atunci tot sistemul de servicii probleme • Este necesara o linie Bus specializata pentru a asigura calitatea transmiterii mesajelor • Enterprise 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 Registry • Multe servicii, in timp ajung sa se piarda • Nu 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 Broker • Componenta care leaga cu adevarat toate serviciile • El se uita in Registry si vede unde sa caute un serviciu si daca datele transmise catre acel serviciu sunt conform interfetei definite
Business Process Management • Pentru a interactiona cu usurinta cu toateserviciiles-au dezvoltatprocesecare ajuta la dezvoltarea de procese • Uneltele BPM ajuta la • Integrareafunctiilornoi – le inregistreaza in registrusi cum se interconecteaza cu altecomponente • Integrareafunctiiloruneiaplicatiiexistente – unealtaajuta un dezvoltatorsavadacefunctiisuntdejaincluse in registrusisa le interconecteze • Ajuta la identificareafunctiilordisponibilepentruobiectivulunuiangajat
Garantarea serviciilor • Pentru ca un sistem sa poata fi folosit cu succes este nevoie de garantia lipsei erorilor • Multe firme ofera o garantie ca serviciul este disponibil in 99% din timp • Putine firme ofera o garantie de 99.999% • Mult mai dificil de atins • Important pentru companiile care depind economic de disponibilitatea servicilor • un post de televiziune pierde milioane daca nu difuzeaza 15 minute de reclame
Masurarea erorilor • Garanta 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 service • Odata cu izolareaservicilorsidefinireainterfetei de intrare/iesiredevineposibilavanzareaservicilor • Ex: O firma are un serviciu de calculatimpozitul annual al angajatilor. Face acestserviciu public sipercepe o taxa pentrufolosirealui de catrefirmeexternesiobtine o nouasursa de profit • Clientulplatestepentrufiecarefolosire a aplicatieisipoatesaincercemaimulteserviciisimilarefarasacumperelicentapentrutoate • Se observa un trend ascendent in serviciiaccesibilepe internet in urmauneisume de bani
Impartirea pe domenii • In realitate pot existaprobleme de integraresi nu se pot pune sub aceiasiumbrelatoateserviciile • Ex: Intr-o firma multinationala, componenta cu manangementulpersonaluluivaaveaimplementaridiferitepentru China si SUA datoritamediilordiferite • Serviciile pot fi impartite in domenii • Fiecaredomeniu are propriilecomponente • Toatedomeniilesuntguvernate de aceleasireguli de baza • Ex: Adobe are componenteparticularepentru SUA sicomponenteparticularepentru Romania, darambeledomeniirespectaaceleasirestrictii de securitate. Un angajat din Romania poateaccesatoateresursele online (chiardacasuntsalvatepeservere in SUA)
Referinte • “Service Oriented Architecture for Dummies” by Judith Hurwitz, Robin Bloor,Carol Baroudi and Marcia Kaufman • http://www.wikipedia.org