1 / 24

Service Oriented Architecture

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

zlata
Télécharger la présentation

Service Oriented Architecture

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Service Oriented Architecture Valentin Stanciu 341C5

  2. 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

  3. Arhitectura simpla • Browser • Web Server • Order-Processing • Database Server • Database

  4. 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

  5. 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.

  6. 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

  7. 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

  8. 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

  9. 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

  10. 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

  11. 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

  12. 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

  13. 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

  14. 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

  15. SOA avansat

  16. 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

  17. 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

  18. 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

  19. 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

  20. 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

  21. 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

  22. 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

  23. 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)

  24. Referinte • “Service Oriented Architecture for Dummies” by Judith Hurwitz, Robin Bloor,Carol Baroudi and Marcia Kaufman • http://www.wikipedia.org

More Related