Devon M. Simmonds Computer Science Department, CSC592 1 CSC550 Software Engineering Devon M....

28
Devon M. Simmonds Computer Science Department, CSC592 1 CSC550 Software Engineering Devon M. Simmonds Computer Science Department University of North Carolina, Wilmington [email protected] Introduction to Software Architectures

description

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

Transcript of Devon M. Simmonds Computer Science Department, CSC592 1 CSC550 Software Engineering Devon M....

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

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

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

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

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

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

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

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

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

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

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

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

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

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.

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

Devon M. Simmonds Computer Science Department, CSC592 8

A Layered Architectural Style

• Figure 2-1. Tanenbaum et al.

Layered Architectures,

cont.

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

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.

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

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.

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

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

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

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

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

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

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

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.

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

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

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

Devon M. Simmonds Computer Science Department, CSC592 16

Object-Based Architectural Style

• Figure 2-1. (b) The object-based architectural style.

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

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

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

Devon M. Simmonds Computer Science Department, CSC592 18

Event-Based Architectural Style

• Figure 2-2. (a) The event-based architectural style

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

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

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

Devon M. Simmonds Computer Science Department, CSC592 20

Shared repository Architectural Style

• Figure 2-2. (b) The shared data-space architectural style.

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

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

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

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

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

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

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

Devon M. Simmonds Computer Science Department, CSC592 24

Lets do a

n

exam

ple!

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

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.

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

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

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

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 ?

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

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.