service oriented architecture

Post on 25-Jan-2016

32 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

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 - PowerPoint PPT Presentation

TRANSCRIPT

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