170 likes | 258 Views
Architectural Design. Architectural design. Process of establishing sub-systems and frameworks in which these sub-systems will interact (control and communications Advantages: Stakeholders communication: focus for discussion by different stakeholders
E N D
Architectural design • Process of establishing sub-systems and frameworks in which these sub-systems will interact (control and communications • Advantages: • Stakeholders communication: focus for discussion by different stakeholders • System Analysis: early application of the analysis stage • Large-scale reuse
Architecture selection • Performance: small number of subsystems with little communication • Security: many layers of protection • Safety: small number of subsystems (easy to validate) • Availability: redundant subsystems and components • Maintainability: fine-grain self-contained components
Architectural models • Static structural: shows sub-systems or components • Dynamic process: system’s organization as runtime processes • Interface: services offered by each sub-system • Relationship: data flow between sub-systems • Distribution: physical distribution of sub-systems (computers)
System organization • Repository model • Client-server model • Layered model
Repository model • All data is shared in a central database • Advantages and disadvantages: • Data is shared efficiently • sub-systems must agree in a unique data model • Data is cohesive/coherent to all subsystems • Evolution is harder • Backup, security, access control and recovery from error are centralized • All policies (for the above mentioned activities) must be uniform • Easy to add new procedures • Hard to make a distributed system
Client-server model • A set of servers • A set of clients (subsystems) • Underlying network system • Advantages: • Distributed architecture => effective use of resources • Easy to add new services and servers • Disadvantages: • Hard to make changes to clients • Different data formats (hard to have shared data)
Layered model • Abstract machine model • Advantages: • Supports incremental development • Changeable and portable • Disadvantages: • Difficult to structure • Low performance
Modular decomposition styles • Sub-system: system whose operation does not depend on other subsystems. Contains modules and interfaces • Module: system component that provides services to one or more modules
Decomposing a sub-system into modules • Object-oriented decomposition: modules as objects • Function-oriented pipelining: modules as functional transformations
Object-oriented decomposition • Describes object classes, attributes and methods • Loosely coupled objects with well defined interfaces • Advantages: • Easy to understand, maintain, reuse • Can be implemented straightforwardly from architectural components • Disadvantages: • Changes affect interfaces and other objects
Function-oriented pipelining • Based on functional transformations that process I/O operations (data flow diagrams) • Also know as pipe (conduits) and filter (transformation) operations • Advantages: • Supports reuse of transformations • Diagrams are intuitive • Evolution is straightforward • Simple to implement • Disadvantages: • Impose a common format for all transformations • Hard to implement for interactive systems
Control Styles • Model how the control flows between sub-systems • Centralized control • Event-based control
Centralized control • One sub-system manages the execution of all other sub-systems • Two classes: • Call-return model: sequential • Manager model: parallel. One process manages execution. Processes can run in parallel
Event-driven systems • Control decisions depend on externally generated events • Event-driven control models: • Broadcast: each events is broadcasted to all sub-systems • Interrupt-driven: events are handled by their corresponding sub-system (mostly on real-time systems)
Additional Reading • 11.5 Reference architectures