Presentation is loading. Please wait.

Presentation is loading. Please wait.

Devon M. Simmonds Computer Science Department, CSC592 1 CSC550 Software Engineering Devon M. Simmonds Computer Science Department University of North Carolina,

Similar presentations


Presentation on theme: "Devon M. Simmonds Computer Science Department, CSC592 1 CSC550 Software Engineering Devon M. Simmonds Computer Science Department University of North Carolina,"— Presentation transcript:

1 Devon M. Simmonds Computer Science Department, CSC592 1 CSC550 Software Engineering Devon M. Simmonds Computer Science Department University of North Carolina, Wilmington simmondsd@uncw.edu Introduction to Software Architectures

2 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

3 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. MM BB CC AA PP KK 3

4 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. MM BB CC AA PP KK

5 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

6 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

7 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.

8 Devon M. Simmonds Computer Science Department, CSC592 8 A Layered Architectural Style Figure 2-1. Tanenbaum et al. Layered Architectures, cont.

9 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.

10 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.

11 Devon M. Simmonds Computer Science Department, CSC592 11 Architectural Styles Important architectural styles for distributed systems Layered architectures Client/Server architectures Object-based architectures Data-centered architectures Event-based architectures Model View Controller

12 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

13 Devon M. Simmonds Computer Science Department, CSC592 13 Fig. 2.2 Coulouris et al.: Clients invoke individual servers The client/Server Model Architectural Styles

14 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.

15 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

16 Devon M. Simmonds Computer Science Department, CSC592 16 Object-Based Architectural Style Figure 2-1. (b) The object-based architectural style.

17 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

18 Devon M. Simmonds Computer Science Department, CSC592 18 Event-Based Architectural Style Figure 2-2. (a) The event-based architectural style

19 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

20 Devon M. Simmonds Computer Science Department, CSC592 20 Shared repository Architectural Style Figure 2-2. (b) The shared data-space architectural style.

21 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

22 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

23 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 Functionality Data Model View Controller change notifies query

24 Devon M. Simmonds Computer Science Department, CSC592 24 Lets do an example!

25 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.

26 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

27 Devon M. Simmonds Computer Science Department, CSC592 27 TheEnd CSC550, Devon M. Simmonds, Computer Science Department, University of North Carolina Wilmington ??????????????? …CSC550 … Q u e s t i o n s ?

28 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.


Download ppt "Devon M. Simmonds Computer Science Department, CSC592 1 CSC550 Software Engineering Devon M. Simmonds Computer Science Department University of North Carolina,"

Similar presentations


Ads by Google