Devon M. Simmonds Computer Science Department, CSC592 1 CSC550 Software Engineering Devon M....
-
Upload
berenice-montgomery -
Category
Documents
-
view
222 -
download
0
description
Transcript of Devon M. Simmonds Computer Science Department, CSC592 1 CSC550 Software Engineering Devon M....
Devon M. Simmonds Computer Science Department, CSC592 1
CSC550 Software Engineering
Devon M. SimmondsComputer Science Department
University of North Carolina, [email protected]
Introduction to Software
Architectures
Devon M. Simmonds Computer Science Department, CSC592 2
Architectural Design
• Lecture Outline– Architectural styles
• Layered• Client-server• Event-based• Shared repository• Class exercise
– Other topics on Architectures• Interceptors, adaptive software, failure models,
design requirements– Summary
Devon M. Simmonds Computer Science Department, CSC592 3
What is Software Architecture?
• A model describing the overall structure of the software in terms of components/subsystems, their interrelationships and behaviors. M
BC
A
PK
3
Devon M. Simmonds Computer Science Department, CSC592 4
General Architecture of Distributed Systems
• An architectural model defines structure - system components and their relationships as well as behaviour – how components interact.
• The goal of architectural design is to meet present and future demands on the architecture.
• Each architectural style defines a class of architectures.
M
BC
A
PK
Devon M. Simmonds Computer Science Department, CSC592 5
Architectural styles• An architecture style is a
specification of how subsystems in a software may be structured.– Specification of architectural
components– Specification of architectural
connectors– Specification of constraints on how
components can be combined• Specification of component interaction
(data exchange)– Specification of component
configuration to form a system• Specification of one or more semantic
models that specify how a system’s overall properties can be determined from the properties of its parts
5
Component N
Component N-1
Component 2
Component 1
Architectural Styles
Devon M. Simmonds Computer Science Department, CSC592 6
• What is an architectural component/subsystem?– A modular unit with well defined
provided and required interfaces that is replaceable.
• What is an architectural connector?– A mechanism that mediates
communication, coordination or cooperation among components.
• E.g. remote procedure calls, message passing
Architectural Styles, cont.
Component N
Component N-1
Component 2
Component 1
Devon M. Simmonds Computer Science Department, CSC592 7
Important architectural styles for distributed systems
• Layered architectures• Client/Server architectures• Object-based architectures• Data-centered architectures• Event-based architectures• Model View Controller
Architectural Styles, cont.
Devon M. Simmonds Computer Science Department, CSC592 8
A Layered Architectural Style
• Figure 2-1. Tanenbaum et al.
Layered Architectures,
cont.
Devon M. Simmonds Computer Science Department, CSC592 9
Classical Three-Tiered Architecture
Layered Architectures,
cont.
• Figure 2-4 (Tanenbaum). The simplified organization of an Internet search engine into three different layers.
Devon M. Simmonds Computer Science Department, CSC592 10
Characteristics of layered Architectures
• Advantages – Clear separation of parts/roles/subsystems.– Easy to plug and play components.– Relatively simple to implement as either a
concurrent or sequential system.
10
Layered Architectures,
cont.
Devon M. Simmonds Computer Science Department, CSC592 11
Architectural StylesImportant architectural styles for distributed
systems
• Layered architectures• Client/Server architectures• Object-based architectures• Data-centered architectures• Event-based architectures• Model View Controller
Devon M. Simmonds Computer Science Department, CSC592 12
Client-server (“two-tier”) architectures
• A network architecture in which each computer or process on the network is either a client or a server.
12
Devon M. Simmonds Computer Science Department, CSC592 13
Fig. 2.2 Coulouris et al.: Clients invoke individual servers
•The client/Server Model
Server
Client
Client
invocation
result
Serverinvocation
result
Process:Key:
Computer:
Architectural Styles
Devon M. Simmonds Computer Science Department, CSC592 14
Client-server characteristics• Advantages
– Distribution of data is straightforward;– Makes effective use of networked systems. May require
cheaper hardware;– Easy to add new servers or upgrade existing servers.
• Disadvantages– No shared data model so sub-systems use different data
organisation. Data interchange may be inefficient;– Redundant management in each server;– No central register of names and services - it may be
hard to find out what servers and services are available.
14
Coulouris etal.Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000
Client/Server Model, cont.
Devon M. Simmonds Computer Science Department, CSC592 15
Important architectural styles for distributed systems
• Layered architectures• Client/Server architectures• Object-based architectures• Data-centered architectures• Event-based architectures• Model View Controller
Architectural Styles, cont.
Coulouris etal.Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000
Devon M. Simmonds Computer Science Department, CSC592 16
Object-Based Architectural Style
• Figure 2-1. (b) The object-based architectural style.
Devon M. Simmonds Computer Science Department, CSC592 17
Important architectural styles for distributed systems
• Layered architectures• Client/Server architectures• Object-based architectures• Data-centered architectures• Event-based architectures• Model View Controller
Architectural Styles, cont.
Coulouris etal.Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000
Devon M. Simmonds Computer Science Department, CSC592 18
Event-Based Architectural Style
• Figure 2-2. (a) The event-based architectural style
Devon M. Simmonds Computer Science Department, CSC592 19
Important architectural styles for distributed systems
• Layered architectures• Client/Server architectures• Object-based architectures• Data-centered architectures• Event-based architectures• Model View Controller
Architectural Styles, cont.
Coulouris etal.Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000
Devon M. Simmonds Computer Science Department, CSC592 20
Shared repository Architectural Style
• Figure 2-2. (b) The shared data-space architectural style.
Devon M. Simmonds Computer Science Department, CSC592 21
Shared Repository Characteristics
• Advantages– Efficient way to share large amounts of data;– Sub-systems need not be concerned with how data is
produced Centralised management e.g. backup, security, etc.
– Sharing model is published as the repository schema.• Disadvantages
– Sub-systems must agree on a repository data model. Inevitably a compromise;
– Data evolution is difficult and expensive;– No scope for specific management policies;– Difficult to distribute efficiently.
21
Devon M. Simmonds Computer Science Department, CSC592 22
Important architectural styles for distributed systems
• Layered architectures• Client/Server architectures• Object-based architectures• Data-centered architectures• Event-based architectures• Model View Controller
Architectural Styles, cont.
Coulouris etal.Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000
Devon M. Simmonds Computer Science Department, CSC592 23
The Model-view-controller architecture
• Separates the application object (model) from• The way it is presented to the user (view),
from • The way in which the user controls it
(controller). 23
User Interface
FunctionalityData
Model
ViewController
change
change
notifiesquery
Devon M. Simmonds Computer Science Department, CSC592 24
Lets do a
n
exam
ple!
Devon M. Simmonds Computer Science Department, CSC592 25
Architectural Design Example
• Draw layered, client-server, and data-centric architectures using this description.– A school video library tracking system is to be
developed. Videos can be scientific, religious or general. General videos are classified as miscellaneous, sports or entertainment. Students and professors can belong to research groups. A research group must have at least 2 professors. Every student must belong to some research group. Professors that belong to a research group are called research professors. Research professors do not teach courses every semester. Each semester, a student must register for at least one course offered by a professor in his research group. A student cannot register for courses outside the subject areas of the research groups in his academic department. A research group can consist of members with various subject area interests. However, subject areas are only classified as an area of interest for the group if at least two members have interest in the area. In general, professors can check out any number of videos, however, visiting professors can check out at most seven videos. Unlike regular professors, visiting professors can check out videos for the duration of only two weeks. Students can check out any number of religious videos and at most 2 scientific videos. Students can check out only scientific videos in the subject areas represented in their research groups.
Devon M. Simmonds Computer Science Department, CSC592 26
Summary: What an architectural model does
• Simplify and abstract the functions of individual components
• Consider the placement of components across a network of computers, seeking to define useful patterns for the distribution of data and workload
• Consider the interrelationships between the components, i.e., the functional roles and patterns of communication between them
Devon M. Simmonds Computer Science Department, CSC592 27
The End
CSC550, Devon M. Simmonds, Computer Science Department, University of North Carolina Wilmington
???????????????
…CSC550 …
Q u e s t i o n s ?
Devon M. Simmonds Computer Science Department, CSC592 28
Architectural Design Example
• Draw layered, client-server, and data-centric architectures using this description.– The Exotic Sunshine Corporation needs software to aid
the management of its business. The corporation is made up of several different companies each having at least three of the seven divisions. The corporation classifies divisions as either production, sales or marketing. The sales and marketing divisions are given jurisdiction for a specific geographic region. This region must include the company that owns the division. Regions have managers, however, an employee may only manage two or more regions if he/she has in excess of ten years experience with the company, or ten years in a comparable position. Managers with more than ten years service and managers in the head office are allowed thirty days of paid vacation per year. In addition, they may have up to three company vehicles assigned and one of the vehicles may be a luxury vehicle. Other managers are not allowed luxury vehicles and cannot be allocated in excess of one vehicle. The corporation manufactures and sells boats, electronic equipment, fruit juices and paper.