Sunteți pe pagina 1din 63

Integrarea sistemelor

informatice
2020-2021
Prof.dr.ing. Mariana Mocanu
Suport curs nr. 2
Metodologia Agile
pentru dezvoltarea sistemelor
Un set codificat de practici recomandate
• O privire de ansamblu asupra ceea ce
trebuie făcut
• Comunicare către echipă
• Comunicare către clienți
• Mecanism de înțelegere a progresului
• Mijloace de redirecționare a activității dacă
/ când este necesar
Metode iterative
• Multe proiecte mici, mai degrabă decât
unul mare - Iterații
– Care este cea mai mică funcționalitate care
poate fi „ambalată și livrată”?
– Aceasta poate reprezenta prima iterație.
• Integrați și testați „produsul” după fiecare
iterație
• Obțineți feedback-ul clienților la fiecare
iterație
• Decideți când ați terminat!
Abordări iterative ale proiectelor
• Risk-driven
• Client-driven
• Timeboxed
• Test-driven
• Evolutionary and Adaptive
• Incremental Delivery
Avantajele Timeboxing
• ” Munca se extinde pentru a umple tot
timpul disponibil” – Legea lui Parkinson
• Oamenii își amintesc mai degrabă terme-
nele nerespectate, decât funcționalitățile
nelivrate
• Pași mărunți: complexitate redusă;
productivitate crescută
• Forțarea timpurie a deciziilor dificile și a
compromisurilor
Principiile dezvoltării Agile
1. Clientul listează cerințele cunoscute (nivel înalt), apoi le
prioritizează.
2. Livrați frecvent software funcțional, la termene fixe (time-
boxed increments of Working software )
3. Clientul poate lansaîn producție/utiliza software-ul primit în
orice moment dorește.
4. Clientul poate adăuga, elimina sau reprioritiza funcționalități
în orice moment (“embrace change”)
5. Respectăm termenele asumate, în ciuda schimbărilor
6. În orice moment se oprește proiectul, ceea ce a fost
construit/livrat poate fi folosit.

6
Principiile dezvoltării Agile

Promised
Shipping
All Date

features

RELEASE
Working Software =
Potentially shippable

prioritised

Backlog

Scrum 30 days NOT MINI-WATERFALL


time
XP 1 week

7
Sisteme informatice heterogene
Cerinte de baza
• Intelegerea arhitecturii de ansamblu, a
proceselor și datelor existente, într-un context
dat;
• Determinarea aplicațiilor și a datelor stocate
care necesită schimb de informație; sub ce
formă.
• Utilizarea tehnologiilor moderne pentru a facilita
integrarea aplicațiilor.
Utilizarea tehnologiilor de integrarea
aplicațiilor (IA) pentru a face ordine
Aplicatii independente
(“Stovepipe”)
Sisteme traditionale
• Sistemele tradiționale ("legacy systems")
sunt aplicații independente care coexistă
cu multe altele, într-un mediu centralizat,
fără a interacționa.
• Exemple de medii centralizate:
– structuri mainframe
– minicalculatoare
– sisteme UNIX
Sisteme traditionale
• Caracteristici:
– procesare centralizată cu acces de la
terminale;
– baza de date și procesarea funcțională
(business processing) coexistă în același
mediu;
– permit o încarcare mare de utilizatori și
procesare concurente
Sisteme de tip microcalculator
• Microcalculatoarele (PC) instrumente
uzuale ale oricarui loc de muncă, ce conțin
informatie valoroasă pentru procesele
derulate
– integrarea informațiilor este dificilă (nu există
un pattern pentru unicitatea datelor, diferență
în configurare, )
– procesele care rulează nu pot fi eficient
accesate.
Sisteme distribute
• Stații de lucru și servere care sunt legate
printr-o rețea care suportă mai multe
aplicații.
– client/server,
– internet/intranet,
– arhitecturi de prelucrarea a obiectelor
distribuite
• Beneficii: scalabilite și toleranță la defecte
• Dificil de implementat
Aplicații încapsulate
(Packaged Applications)
• Aplicații care sunt, în general achizitionate, nu
dezvoltate
• Constituie suport reutilizabil pentru procese de
afaceri
• Sunt bazate pe bune practici si nu necesită efort
mare de dezvoltare
– ERP
– CRM
– Aplicații de suport pentru vânzări,
– etc.
Sisteme virtuale
Tipuri de integrare a aplicațiilor
pentru intreprinderi
Stakeholderii trebuie să înțeleagă atât
procesele de afaceri cât și datele
(informațiile) aferente
• Nivelul de date
• Nivelul modelului de afaceri
– Nivelul interfeței aplicațiilor
– Nivelul metodelor
– Nivelul interfeței utilizator
Tipuri de integrare a aplicatiilor
pentru intreprinderi
Nivelul de date
• Procesul de transfer al datelor intre diferite
locatii – implica tehnici si tehnologii.
– Extragerea informatiei
– Prelucrarea informatiei
– Actualizarea in alta locatie (baza de date)
– Migrarea datelor (adaptarea aplicatiilor de suport al
proceselor de afaceri la tipul si structura datelor).
• Cost scazut fata de alte metode de integrare,
deoarece nu presupune modificari majore de
cod sau teste extensive.
Nivelul de date
• Modul cel mai frecvent de integrare, in care
datele sunt folosite de diverse aplicatii, unele
chiar independente
• Exista instrumente si tehnici care permit
integrarea informatiilor din baze de date in
functie de aplicatia care le prelucreaza.
• Accesul la baze de date este relativ simplu, fiind
standardizat pentru fiecare tip folosit.
Nivelul de date
• Dificultati:
– Cand se folosesc concomitent diferite tipuri de
baze de date este nevoie de procese
complexe de migrare a datelor.
• Utilizarea datelor
– in baze de date de acelasi tip
– in baze de date heterogene
Nivelul de date
Nivelul de date
• Sursa datelor (Modelul de date; Tipul
bazei de date)
– Baze de date relationale
– Baze de date orientate pe object
– Baze de date multidimensionale (data
warehousing)
– Alte tipuri
Nivelul interfetei aplicatiilor
• Se refera la utilizarea interfetelor expuse de
aplicatii pentru a accesa atat procesele de
afaceri cat si simple informatii.
• Dezvoltatorii trebuie sa aiba in vedere doar
caracteristicile specifice si functiunile interfetei
aplicatiilor.
• Se utilizeaza frecvent in cazul integrarii
aplicatiilor incapsulate (SAP, PeopleSoft, Baan,
etc) care expun interfete catre procesele si
datele lor. Solutia cea mai frecventa este prin
broker de mesaje.
Nivelul interfeței aplicațiilor
• Interfetele aplicațiilor
– Sunt interfețele pe care le expun dezvoltatorii
pentru a avea acces la diferitele niveluri sau
servicii ale aplicațiilor. Unele interfețe au
capabilități multiple "feature rich" altele sunt
restrictive. Accesul poate fi la:
• procese de afaceri,
• la date, sau
• la ambele.
API
• Un API este un mecanism bine definit pentru
conectarea la una sau mai multe resurse cum ar
fi serverul de aplicatie, nivelul middleware sau
baza de date.
• API-ul permite dezvoltatorului să invoce
serviciile acestor entități pentru a obține un
rezultat.
API
Architecturi

• Arhitectura centralizata
• Arhitectura “two-tier”
• Arhitectura “three-tier”
• Arhitectura “n-tier”
• SOA
• Arhitecturi bazate pe microservicii
Architectura centralizata
Arhitectura “two-tier”
Arhitectura “three-tier”
Service Oriented Architecture
Nivelul metodelor
• Folosirea in comun a unor metode de catre mai
multe aplicatii.
• Se poate crea un set comun de servere de
aplicatii sau
• Se pot utiliza in comun metode existente in
aplicatii, folosind tehnologii de utilizare in comun
ale metodelor, cum ar fi obiectele distribuite.
• In acest fel se folosesc in comun procese de
afaceri
Nivelul metodelor
•Metodele includ:
–Scenarii
–Reguli
–Logica
–Date
–Obiecte
•Framework
–este o abstractizare în care un software, care ofera
funcționalitati generice, poate fi schimbat în mod
selectiv prin adaugarea unui cod adițional scris de
utilizator, generand astfel o aplicatie specifica
Framework
• Framework-urile permit refolosirea de
resurse nu numai in cadrul unei
organizatii/intreprinderi, ci la nivel de
industrie/branșă.
• Framework-urile oferă un set standard de
arhitecturi de aplicații ce sunt gata
proiectate și testate
Tipuri de framework
• Object frameworks
• Service frameworks
• Procedural Frameworks
• Component Frameworks
• Categorii
– Application Service Frameworks
– Domain Frameworks
– Support Frameworks
Nivelul interfetei utilizator
• Abordare mai simplistă
• Integrarea se face prin cumularea mai multor
interfete utilizator (screen scraping).
• Se poate folosi in aplicatiile care nu permit
acces la nivelul bazei de date sau al proceselor
de afaceri.
• In anumite cazuri, utilizatorul este singurul
capabil sa acceseze logica si datele intr-un mod
coerent, reprezentativ pentru afacere.
• Nu necesita modificari ale aplicatiilor integrate.
Nivelul interfetei utilizator
• Intelegerea aplicatiei
• Crearea unui catalog al ecranelor
• Maparea ecranelor
Terminologie, definitii
Sistem
– un ansamblu de software, hardware și de
resurse umane care realizează împreună una
sau mai multe funcții ale procesului de
afaceri.
– un sistem poate fi pre-proiectat sau poate
apare ad-hoc prin acțiunea uneia sau a mai
multor resurse umane sau software,
participante.
Terminologie, definitii
Proiectarea sistemului
– o specificație a structurii sistemului, incluzând
perspectivele asupra componentelor,
informațiilor și a procesului de calcul.
– o descompunere a funcțiilor sistemului în
secvențe de subfuncţii (grafice), atribuite
subsistemelor componente, asociate cu o
specificație pentru informațiile și materialele
care trebuie să fie disponibile la nivelul
interfețele componentor astfel încât
subfuncţiile să poată fi realizate.
Terminologie, definitii
Componentă (agent)
– un (sub)sistem care joacă un rol deosebit,
prin furnizarea funcțiilor sale sub formă de
subfuncţii ale unui sistem mai mare.
Componentă specifică sistemului
– un (sub)sistem conceput pentru a prelua un
set specific de roluri definite într-un sistem
mai mare pentru care sunt cunoscute a priori
functionalitatile și specificațiile de interfațare.
Terminologie, definitii
Proiectarea unei componente specifice
sistemului
– specificarea unui subsistem pentru a juca un
anumit rol într-un sistem specific.
Componentă reutilizabilă (strange agent)
– un sistem proiectat pentru a îndeplini un
anumit set de roluri într-un sistem mai mare,
fără ca proiectul sistemului mare și
specificațiile de interfață pentru componentă
să fie cunoscute a priori.
Terminologie, definitii
Proiectarea unei componente reutilizabile
– specificarea unui subsistem care prezintă un
comportament util pentru un sistem, care
include:
• caietul de sarcini al fluxurilor de informații și
interfețele explicite folosite
• posibilităţile de configurare pentru a expune mai
multe variante comportamentale și interfețe, prin
intermediul unor unor parametri.
Terminologie, definitii
Comportament
– ceea ce face sistemul / componenta -
activitățile unei componente / sistem aşa cum
sunt percepute de sine, de alte componente
ale sistemului și / sau de proiectantul
sistemului, prin efectul asupra mediului și /
sau prin atribute măsurabile.
Comportamentul unui element al sistemului
poate fi influențat de condițiile de mediu, de
acțiuni din trecut, sau de configurare.
Terminologie, definitii
Funcţie
– partea comportamentului unei componente
care satisface anumite obiective sau scopuri.
Când comportamentul sistemului este
modelat ca un set de tranziții ale stării în
mediul observat, atunci funcția poate fi
modelată ca subset al acestor tranziții care
servește scopului sistemului.
– rezultatul generat de comportament.
Terminologie, definitii
Proces
– "descompunerea" unei funcții - ordonarea
temporală sau logică (un grafic) de
evenimente / activități care realiză o funcție
sau mai multe funcții.
– un proces este considerat a fi automat dacă
nu există nici o implicare umană în inițierea
sau executarea acestuia.
Terminologie, definitii
Proces automatizat
– exclude intervenția umană după inițiere, cu
excepția unor circumstanțe extraordinare.
(poate permite intervenția umană pentru a
trece peste deciziile sale automate și poate
solicita intervenția umană în cazul în care
detectează o situație pentru care nu are nici un
algoritm de luare a deciziilor.
Terminologie, definitii
Proces semi-automatizat asistat de calculator
– o parte din proces este automatizat, dar
inteligența umană este angajată în procesul de
luare a deciziilor importante și realizarea
obiectivului.
Proces manual
– nu există nici un ajutor semnificativ dat de
calculator în executarea sa.
Terminologie, definitii
Resursa
– orice persoană, dispozitiv, sistem software,
materiale, sau set de informații care
efectuează, sau este utilizată în îndeplinirea
unei sau mai multor funcții
Resursa activă (actor)
– o resursă care efectuează în mod direct una
sau mai multe funcții și (de obicei) ia decizii în
exercitarea funcției.
Terminologie, definitii
Agent
– o resursă activă, de regulă, un sistem software
Resursa pasivă
– materiale, echipamente sau informații folosite
de resurse active în exercitarea unei funcții.
Terminologie, definitii
Rol într-o activitate
– participarea unei resurse nominale într-o
activitate
Rol într-un sistem
– setul tuturor rolurilor din activităţi, jucate de o
anumită resursă în procesele corespunzătoare
setului de funcțiile realizate de sistem.
Terminologie, definitii
Acţiune comună
– orice mod productiv în care mai multe resurse
participă activ la realizarea unei funcții, inclusiv
de coordonare, colaborare, cooperare,
asistenţă involuntară, chiar și concurența.
Factorul critic este faptul că interacțiunea între
resurse implică comunicarea din partea
fiecărui actor participant, iar acțiunea comună
realizează o parte dintr-o funcție a sistemului
integrat.
Terminologie, definitii
Informaţia
– o secvență de simboluri, care poate fi
interpretată ca un mesaj
– orice fel de eveniment care afectează starea
unui sistem dinamic, care poate interpreta
informații
– cunoașterea comunicată sau primită cu privire
la un anumit fapt sau circumstanță
– un răspuns la o întrebare
Terminologie, definitii
Comunicaţia
– orice operație care are ca rezultat un flux de
informații de la un actor la altul, inclusiv
redarea de informații interne, generarea de
date de către diferite mecanisme, și
interpretarea datelor primite de la surse
interne. Fluxul se produce prin acțiuni specifice
ale doi (sau ale mai multor) actori care pot fi,
sau nu, direct conștienți de celălalt.
– nu necesită un limbaj anume
Terminologie, definitii
Comunicaţia
– schimbul de date între actori în exercitarea
unei acțiuni comune, cu conținut semantic
suficient conservat (prin fluxul de date și
operațiuni de interpretare a datelor) astfel încât
acțiunea comună să își atingă scopul.
– scopul comunicării între componente software
este de a influența comportamentul agenţilor,
conștient sau inconștient
Terminologie, definitii
Mecanism de comunicaţie
– modul în care are loc transferul de informație
între resurse.
– caracterizat de comportamentul fundamental
asociat operațiunilor de comunicare
– mecanism de nivel mai mare de abstractizare
Protocolul
– regulile detaliate ale fluxurilor de informatie
Terminologie, definitii
Resurse de comunicaţie
– fişiere sau documente
– baze de date partajate
– apel de procedură sau invocarea unei operaţii
– mesaje sau stream-uri
– blackboard (publish and subscribe, shared
memory, etc.)
– semnale (semnale fizice sau evenimente
software)
– mecanisme de interfaţare umană (display,
tastatură, mouse, etc.)
Terminologie, definitii
Automatizarea integrării
– automatizarea procesului de integrare
– inginerii identifica necesităţile, precizează
scopul, identifică acțiunile comune și atribuie
roluri pentru resurse.
– software-ul automatizează comunicațiile care
generează suport pentru acțiunile comune.
Terminologie, definitii
Auto-integrarea
– automatizarea unor aspecte ale proiectării și
dezvoltării unui sistem prin acțiunea uneia sau
mai multor componentele reutilizabile.
– proces de integrare în care agenții software se
adapteze pentru desfăşura acțiuni comune și /
sau comunicarea.
Terminologie, definitii
Auto-integrarea
• cerințele tehnice de comunicare sunt soluţionate în
mod automat de către agentul de comunicare, spre
deosebire de a fi pre-rezolvate în proiectarea
sistemului/ agentului și pre-programate în componente
Cerinţe tehnice
• tehnologie comună pentru transmiterea și primirea
datelor
• protocoale comune pentru transferul de informaţie
• structura și reprezentare comune, pentru date
Terminologie, definitii
Sistem auto-integrator
– un sistem care este capabil de a se reconfigura
și / sau a configura comunicaţiile astfel încât să
coopereze cu alte sisteme pentru a satisface
noile cerințe.
– capacitatea unui sistem de a răspunde unor
cerințe noi depinde de modul in care sunt
îndeplinite acele cerințe:
• cerinţe satisfăcute prin comportamentul proiectat al
sistemului (care poate fi configurabil)
• prin comportamente modificate generate de
"mecanisme de învățare“, proiectate pentru sistem.
Terminologie, definitii
Sistem auto-descriptiv
– un sistem auto-integrator, conectat la alte
sisteme în rețea, care îşi publicită capabilitățile
(rolurile posibile) și determină în mod automat
a capabilitățile (rolurile) celorlalte sisteme.
– scopul auto-descrierii este de a facilita
refolosirea componentelor

S-ar putea să vă placă și