martie 2019sinf.ase.ro/cursuri/integrare/cursul 3.pdfarhitectura de integrare este un set de...
TRANSCRIPT
1. Arhitecturi de integrare (continuare)
2. Modele de arhitecturi de integrare: Mainframe si terminale
Aplicatii client-server
Aplicatii multinivel
Arhitectura Peer to Peer
Arhitectura orientata pe servicii
Aplicatii in cloud
3. Modele de integrare
Integrare punct la punct
Integrare Hub and Spoke
Integrare bazata pe SOA
Architecturi se poate referi la zone tehnologice
specifice
◦ Architectura datelor
◦ Architectura informatiilor
◦ Architectura retelei
◦ Arhitectura Web
Architectura are in vedere modul de realizare a
interactiunilor intre diferite componente tehnologice si
in cadrul solutiei per ansamblu
◦ Arhitectura de aplicatii
◦ Arhitectura de solutii
◦ Arhitectura de integrare
◦ Arhitectura intreprinderii
Scopul arhitecturilor de sistem este de a asigura
integrarea componentelor sistemului (in vederea
asigurarii unei functionari optime a sistemului ):
◦ Compatibilitate
◦ Consistenta
◦ Flexibilitate
◦ Eficienta
Integrarea sistemelor inf. este un domeniu tehnic al arhitecturii
intreprinderii, care se ocupa de studiul unor aspecte precum
interconectarea sistemelor, schimbul electronic de date,
schimbul de date dintre produse si medii de calcul distribuite.
Alti termeni inruditi:
◦ EAI (Enterprise Application Integration)
◦ BPI (Business Process Integration)
Arhitectura de integrare este un set de standarde, principii,
reguli, instrumente si sabloane de proiectare care guverneaza
interactiunea intre componentele sistemului, aplicatii, procese si
persoane din cadrul si dinafara companiei.
Din punct de vedere al sistemului, arhitectura de integrare, se
ocupa de definirea starilor si granitelor obiectelor,
componentelor, subsistemelor, de datele care trebuie
schimbate, interfetele care trebuie expuse, moduri de invocare
ale acestora, promptitudinea raspunsurilor etc
Scopul arhitecturii de integrare este sa transforme inspiratia
spontana intr-o metodologie stiintifica ce poate fi repetata
Mainframe si terminale
Aplicatii client-server
Aplicatii multinivel
Arhitectura Peer to Peer
Arhitectura orientata pe servicii
Aplicatii in cloud
Era precursoare aparitiei PC-lor
Toate procesarile se realizau pe un server
mainframe central
Clientii erau doar un ecou a raspunsurilor
primite de la server
Programe populare: CICS, DB2, COBOL,
VSAM, …
Foarte matura si stabila
Arhitectura rigida – lipsa de flexibilitate
Ramane o optiune tehnologica pentru
anumite domenii (aparare, companii
aeriene, vreme…)
Au devenit populare in anii ‘80
Clienti mai inteligenti, preiau o parte
din procesarea necesara datorita
disponibilitatii unor PC-uri mai
puternice.
Cele doua componente ale aplicatiei
trebuie gestionate impreuna si
sincronizate
Aplicatii populare: Email, tiparire in
retea, www, …
Foarte matura si stabila
Mai multa flexibilitate si o complexitate
mai ridicata
Un pas inainte spre calcul distribuit si modularizare
Separare logicii de business de nivelul datelor si nivelul
prezentare
Mai flexibil si mai scalabil
Nivelul client– browsere Web, aplicatii mobile
Nivelul server Web– servere web care raspund cererilor
HTTP
Nivelul de integrare- server de aplicatii, sistem de
mesagerie, enterprise service bus, conectori/adaptori, …
Nivelul EIS (Enterprise Integrated System) – baze de
date, sisteme back-office (ERP, CRM, …), aplicatii
interne/ invechite, …
Nu e desemnat serverul si clientul
Procesarea este distribuita mai
echitabil intre masini
Example – muzica, filme, partajare
fisiere
Aplicatiile
colaboreaza prin
intermediul unei
retele de servicii
distribuite
Serviciile sunt
componente bine
definite care pot fi
gestionate in mod
dinamic
Se pot pastra in
cloud diferite
componente
Aplicatiile comunica
prin intermediul
Internetului
Integrare intre
aplicatiile in cloud si
aplicatiile interne ale
companiei
Contextul procesarii distribuite
Orientare spre utilizarea de standarde
Abordare orientata pe componente pentru a promova
reutilizarea
Facilitarea reutilizarii si partajarii
Decuplare sau cuplare slaba
Configurabilitate
Extensibilitate si scalabilitate
• Valoarea procesarii distribuite
• Scalabilitate
• Alocarea resurselor implicate
• Reducerea blocajelor
• Alinierea la distribuția geografică a întreprinderii
• Limba și alte cerințe ale pieței locale
• Reglementările locale
• Ciclurile de dezvoltare si implementare rapide ofera o mai
buna agilitate companiilor locale pentru a raspunde
schimbarilor pietelor locale
• Descentralizarea permite functiilor companiei sa opereze
rapid si relativ independent, imbunatatind performantele
• Abstractizare si incapsulare
• CE face vs. CUM face
• Componente bine definite care pot fi usor inlocuite fara a
declansa efecte in cascada
• Componentele bine definite ar trebui sa fie configurabile
• Pentru ca componentele si serviciile sa fie partajabile si reutilizabile:
• Functiile si scopul componentelor si serviciilor ar trebui sa fie bine
definite;
• Componentele si serviciile partajabile se bazeaza, de obicei, pe
standarde
• Interfetele ar trebui sa ramana relativ neschimbate, indiferent de
schimbarile implementarilor
• Compromis intre reutilizabilitate si cost
• Caracteristici cheie ale integrarii slab cuplate
• Interfete bazate mai degraba pe semantica decat pe sintaxa
• Respectarea de standarde
• Integrare asincrona
• Utilizarea unui middleware de integrare
• Avantaje
• Minimizarea interdependentelor intre sisteme• Timp
• Formatul informatiilor
• Technologie
• Reduce efectele in cascada si ofera posibilitate de plug-and-play
• Schimbare dinamica a comportamentului sistemului
• Satisfacerea unor cerinte diferite fara a schimba sistemul in sine
• Exemplu: setarile de sistem
• Limitari in configurabilitate si solutii de compromis
• Procesare batch
• Cele mai mari intarzieri
• Cea mai ieftina
• Integrare asincrona
• Aproape in timp real
• Mai scumpa
• Integrare in timp real
• Cea mai scumpa
• Sistemele se vor schimba si vor evolua
• Este necesar sa se prevada potentialele schimbari ale sistemului
chiar daca ele nu sunt necesare in prezent
• Trebuie asigurata din momentul proiectarii sistemului abilitatea de a
schimba, creste, adapta si evolua
• Arhitectura este cheia
Tehnologiile existente
Standardele curente si in dezvoltare
Tendintele din industrie
Cultura organizationala◦ Sistemele invechite din companii sunt o mare piedica in calea unei
arhitecturi IT eficiente
◦ In loc sa se depuna eforturi pentru spargerea acestora (dificil, riscant), o
strategie mai buna ar fi realizarea de punti de comunicare cu acestea
Arhitectura deschisa
◦ Schimbarile sunt proiectate in arhitectura
◦ Ofera un cadru pentru adaugare/ inlocuire/ inlaturare/ actualizarea
componentelor sistemului, pastrand scalabilitatea
◦ Ofera sistemului mai multa flexibilitate, dar solicita mai mult timp si
mai multe resurse pentru implementare. Costuri mai mici la nivelul
ciclului de viata, dar mai mari in prima parte
Arhitectura inchisa
◦ Schimbarile nu sunt prevazute de la inceput, fiind ingreunate de
arhitectura sistemului
◦ Modificări aduse sistemului pot duce la o perturbare semnificativă
a funcționalității actuale a sistemului
◦ Costul inițial mai mic și punerea în aplicare mai rapida, dar costul
total probabil mai mare(TCO)
Nici un sistem nu este 100% deschis sau 100% inchis
Caracteristici
• Directa, legaturi strans cuplate intre cele doua sisteme
• Interfete specializate dezvoltate pentru scopuri precise (date fixe,
formate de date, etc.)
• Necesita o cunoastere foarte buna a formatului in care trebuie sa
fie datele care vor fi schimbate
Avantaje• Rapida si eficienta
Dezavantaje• Numarul de conexiuni si complexitatea creste exponential
• Interdependenta conduce la efecte in cascada si e dificil de schimbat
• Costuri de mentenanta ridicate
http://msdn2.microsoft.com/en-us/library/bb220799.aspx
Caracteristici
• Hub-ul actioneaza ca acționează ca intermediar (middleware)
care mediază diferențele specifice aplicației.
• De obicei, implementat sub forma de Message Broker.
• Monitorizare si control centralizate deoarece toate transformarile
de mesaje, rutarile, maparile sunt realizate in Hub.
Avantaje• Decupleaza aplicatiile care trimit si primesc date, permitandu-le
schimbul independent
Dezavantaje• Incarcare si timp de raspuns suplimentar
• Scalabilitatea poate fi limitata din cauza tuturor sarcinilor care sunt in hub
Caracteristici
• Procesarea integrarii este distribuita intre punctele finale
• Serviciile independente de tehnologie permit plug-and-play
(Lego)
• Se utilizeaza adaptor si Enterprise Service Bus (ESB)
Avantaje• Permite flexibilitate si reutilizare maxima
• Reduce costul de dezvoltare
Dezavantaje• Necesita investitii care pot fi dificile pentru realizarea schimbarii de
paradigma
• Pot aparea probleme (performanta, limitari)
Integrare la nivelul datelor
◦ Operatii directe pe seturile de date
◦ Implica transformarea, unirea si coordonarea mai multor surse de date
Integrare la nivelul aplicatiilor
◦ Schimbul de informatii se face prin interfete de aplicatii bine definite (API) fara sa aiba loc expunerea datelor din spate
◦ Aplicatiile din spate au un control si o protectie mai buna pentru datele utilizate
Integrare la nivelul proceselor de business
◦ Integrarea si orchestrarea diferitor procese de business pentru a oferi clientilor servicii perfect unificate. De obicei implica si sisteme si oameni.
Integrarea extinsa a intreprinderii
◦ Permit colaborarea inafarea companiei (cu parteneri, furnizori…)