Rappels Génie logiciel Philippe Dugerdil Composants, packages Couches & dépendances Principes de structuration Réutilisation / responsabilité Réutilisation & composants 09.12.2010 Oldest architecture: Batch-Sequential Frequent architecture in scientific computing and business data processing Components are independent programs Connectors are media, typically files Each step runs to completion before next step begins Modifiability tactics: Hide information Maintain semantic coherence Anticipate expected change Program Program Program Source: Lecture from Bertrand Meyer, ETHZ, 2009 1
Problem: point to point communication among components Publish-subscribe Exemple: entreprise service bus Modifiability tactics Restrict communication paths Use an intermediary Source: Patterns: Service-Oriented Architecture and Web Services. IBM Redbook. IBM 2004 2
Exemple Problem: confusion of concerns Source: Providing a backbone for connectivity with SOA Messaging, IBM White Paper, June 2009 Model-View-Controller Modifiability tactics: Maintain semantic coherence Anticipate expected change
Analogy with the analysis objects Exemple: JSP / Servlet Browser 1 Request (Controller) Servlet 2 (Model) JavaBean 5 Response (View) JSP 4 EIS Web Container Problem: remote access Proxy (remote proxy) network 4
With the proxies network Modifiability tactics Restrict communication paths Use an intermediary Performance tactics (in case of caching) Maintain multiples copies of either data or computation Exemple: Video proxy Comparaison: modele UML de la tactique Video Server Video Proxy Filter Uncached Portion Backbone Network Cache Filter/Assembler FGS stream (b i ) Video Repository Proxy Request Proxy Manager Monitor Client Request (c i ) Source: Jiangchuan Liu & al. Proxy Cache Management for Fine-Grained Scalable Video Streaming. The Chinese University of Hong Kong Source: Kim s. at al. - Quality-driven architecture development using architectural tactics. Journal of System and Software (82), 2009. 5
Problem: service location Broker network Broker Modifiability tactics Use an intermediary Restrict communication paths Performance tactics Increase available resources 6
Exemple: CORBA Problem: too many connections Facade Client Class1 Class5 Class Class4 Class6 Class7 Class2 Modifiability tactics Hide information Restrict communication paths Use an intermediary Class1 Class4 Class7 Client Facade Class Class2 Class5 Class6 27 7
Example: client-server objects & proxies New architecture: façade & proxy 29 0 Exemple: session façade Problem: too much information to process & monolytic process. server 2 8
Pipes and Filters The processing chain Filter Filter Filter Filter Pipe Pipe Pipe Performance tactics: Introduce concurrency First-in first-out Exemple: traitement d un appareil photo digital Source: Langhorst A, Steinle M. Pipes and Filter Architectural Pattern. Hasso-Plattner Institute for Software Systems Engineering, Postdam Germany, 2002. 9
Problem: network congestion Value Object client server Client Server network uses «Value Object» Data Object creates Dépendances: quel pattern Performance tactics Reduce computational overhead Maintain multiples copies of either data or computation Tactique: mettre un intermédiaire.mais lequel? 1. Syntaxe des données (paramètres) & signature 2. Sémantique des données (paramètres) & signature. Séquence des données et du contrôle 4. Identité (nom/référence) d un interface 5. Localisation d un programme 6. Qualité de service ou des données (précision) 7. Existence d un module 8. Accès aux ressources (ressources partagées) Façade Façade Publish / subscribe Broker Broker Proxy 4 10
Addresses: functional Requirements Addresses NFR: maintainability, modifiability testability Addresses NFR: availability, reliability performance Summary 4+1 views Logical models of the design Logical view Process view Concurrency and synchronization aspects Use-cases Static organization of the Software: layers, subsystems and components Development view Physical view Mappings of software to hardware Addresses NFR: maintainability, modifiability testability Addresses NFR: availability, reliability performance Reference [Source: Kruchten Ph.- The 4+1 View Model of Architecture. IEEE Software 12(6), Nov. 1995] 11