Title: Stiluri / tipare arhitecturale
1Stiluri / tipare arhitecturale
- Structurare metode de descompunere controlata
in subtaskuri cooperante - Layers
- Pipes and Filters
- Blackboard cu variantele Repository, Active
Database - Event-driven (Implicit Invocation) cu variantele
Publisher-Subscriber, Event-Bus - Sisteme interactive
- Model-View-Controller
- Presentation-Abstraction-Control
- Sisteme distribuite
- Client-Server
- Client-Dispatcher-Server
- Broker
- Sisteme Adaptabile
- Reflection
- Microkernel
2Sisteme interactive
- Sisteme interactive exista multe interactiuni cu
utilizatorul, de obicei prin intermediul unei
interfete grafice - Obiectiv independenta intre implementarea
functionalitatii si interfata grafica utilizata - De ce ? Pentru ca se presupune ca partea care
implementeaza functionalitatea este mai stabila,
iar partea de interfata utilizator mai mult
afectata de customizari - Tipare arhitecturale
- Model-View-Controller
- Presentation-Abstraction-Control
3Model-View-Controller
- Tiparul arhitectural MVC structureaza aplicatiile
interactive in 3 componente Model nucleul
continand functionalitatea si datele Views
afisarea informatiilor Controllers tratarea
user input. User Interface ViewsControllers.
Tiparul implementeaza un mecanism de propagare a
modificarilor care asigura consistenta intre User
Interface si Model. - Exemplu problema un sistem informatic de
reprezentare a rezultatelor electorale.
4Exemplu MVC
MODEL
INTERACTIUNI UNIDIRECTIONALE (Output)
INTERACTIUNI BIDIRECTIONALE (InputOutput)
VIEWS
CONTROLLER
POSA-Fig/P.125
5Structura MVC
Controller un ConcreteObserver avand in plus
anumite atributii speciale
POSA-Fig/P.129
6MVC Scenariu User Input
POSA-Fig/P.130
7MVC Scenariu initializare
POSA-Fig/P.131
8Proprietati ale stilului MVC
- Avantaje
- Multiple views of a model
- Synchronized views
- Pluggable views and controllers
- Exchangeability of looks
- Framework potential
- Atentionari
- Potential for excessive number of updates
- Connection between view and controller
- Coupling of views and controllers to a model
9Presentation-Abstraction-Control
- Tiparul arhitectural PAC structureaza
aplicatiile interactive sub forma unei ierarhii
de agenti cooperanti. Fiecare agent raspunde de
un anumit aspect al functionalitatii si consta
din 3 componente Presentation, Abstraction,
Control. Aceste componente separa partea de
interactiune cu utilizatorul de partea de nucleu
functional si de partea de comunicare cu ceilalti
agenti. - Exemplu problema un sistem informatic de
reprezentare a rezultatelor electorale (problema
similara cu cea de la MVC). - Ce difera de MVC metoda de abordare a
dezvoltarii aplicatiei interactive pe baza de
agenti - Agent componenta care realizeaza o procesare a
informatiei - Contine
- Structuri de date reprezentand starea sa
- Event receivers si event transmitters
- Procesor care trateaza si produce evenimente,
actualizeaza starea
10PAC Formularea Problemei Ierarhie de agenti
POSA-Fig/P.145
11PAC - Structura
POSA-Fig/P.151
12PAC Structura agentilor
- Fiecare agent este compus din 3 componente
- Presentation interfata utilizator proprie
agentului - Abstraction modelul de date specifice agentului
- Control
- conecteaza in interiorul agentului partea lui de
Presentation de cea de Abstraction - Asigura comunicarea cu alti agenti
- Ierarhie de agenti
- Top-level Realizeaza functionalitatea sistemului
- Abstraction modelul global al datelor,
independent de maniera de reprezentare - Control coordoneaza ierarhia de agenti,
autorizeaza sau nu in functie de context si
agenti solicitanti anumite operatii asupra
modelului - Presentation acele parti din interfata
utilizator care nu tin de un anume agent (de
exemplu meniul comun aplicatiei) - Bottom-level Entitati cu o semantica proprie
bine definita, asupra carora actioneaza
ujtilizatorul (chart-uri, spreadsheet) - Presentation rezolva toate operatiile facute de
utilizatori asupra lor (zoom, move chart) - Abstraction model local al datelor nu exista
alti agenti care depind de acesta. - Control intermediaza interactiunea dintre
Presentation si Abstraction in cadrul agentului
comunica cu componenta de control a agentilor
ierarhici superiori pentru schimb de date si
evenimente. - Intermediate level
- Coordonare mentinerea consistentei intre agentii
de nivel inferior (ex coordonedaza vederi
multiple ale acelorasi date) - Composite
13PAC Exemplu structura BarChartAgent
POSA-Fig/P.153
14PAC Exemplu detaliere structura BarChartAgent
POSA-Fig/P.159
15POSA-Fig/P.152
16PAC Exemplu scenariuDeschidere nou BarChart
View
POSA-Fig/P.154
17PAC Exemplu scenariu Introducere noi date prin
Spreadsheeet
POSA-Fig/P.155
18Pasi de definire a unei arhitecturi PAC
- Definirea modelului aplicatiei
- Definirea strategiei de organizare a ierarhiei de
agenti - Specificarea agentului top-level
- Specificarea agentilor bottom-level
- Specificarea agentilor intermediate-level care
compun mai multi agenti bottom-level - Specificarea agentilor intermediate-level care
coordonedaza agenti de nivel inferior - Separarea functionalitatii de interactiunea cu
utilizatorul Definirea componentelor
Abstraction, Presentation si Control pentru
fiecare agent - Realizarea mecanismului de comunicare intre
agenti (parte a componentei de Control). - Composite Message interfata uniforma, aceleasi
2 operatii pentru toate tipurile de comunicari
(in interiorul agentului sau intre agenti). - Legarea agentilor intr-o ierarhie
19Exemplu aplicatie PAC Robot mobil
POSA-Fig/P.165
20Exemplu aplicatie PAC Network management
POSA-Fig/P.164
21Proprietati ale stilului PAC
- Avantaje
- Separation of concerns concepte cu semantici
diferite sunt reprezentate prin agenti separati - Support for change and extension se pot face
schimbari in partea de Abstraction sau
Presentation a agentilor Se pot introduce agenti
noi - Support for multitasking/distributed computing
- Atentionari
- Complexitatea sistemului
- Complexitatea componentelor de control
- Eficienta scazuta datorita overhead-ului de
comunicare intre agenti - Aplicabilitate redusa la anumite categorii de
aplicatii
22Discutie PAC vs MVC