Slide 1

Slide 1 text

jgs CSE 460 Software Analysis and Design Lecture 22: Architectural Patterns Dr. Javier Gonzalez-Sanchez [email protected] javiergs.engineering.asu.edu | javiergs.com PERALTA 230U Office Hours: By appointment

Slide 2

Slide 2 text

jgs Previously …

Slide 3

Slide 3 text

jgs 460 00000111 Drafting an Implementation

Slide 4

Slide 4 text

jgs 460 00000111 Example Main Factory Controller View Model Gift Ball Box Envelop

Slide 5

Slide 5 text

jgs Layered Architecture

Slide 6

Slide 6 text

jgs 460 00000111 A generic layered architecture

Slide 7

Slide 7 text

jgs 460 00000111 Layered Architecture

Slide 8

Slide 8 text

jgs 460 00000111 Layered Architecture Description § Organizes the system into layers with related functionality associated with each layer. § A layer provides services to the layer above it, so the lowest-level layers represent core services that are likely to be used throughout the system. When used § Building new facilities on top of existing systems § The development is spread across several teams with each team responsibility for a layer of functionality Advantages § Allows replacement of entire layers so long as the interface is maintained. Disadvantages § In practice, providing a clean separation between layers is often difficult and a high-level layer may have to interact directly with lower-level layers rather than through the layer immediately below it. § Performance can be a problem because of multiple levels of interpretation of a service request as it is processed at each layer.

Slide 9

Slide 9 text

jgs 460 00000111 Example Factory Main Gift Ball Box Envelop Layer Layer Layer

Slide 10

Slide 10 text

jgs Blackboard

Slide 11

Slide 11 text

jgs 460 00000111 Blackboard

Slide 12

Slide 12 text

jgs 460 00000111 Blackboard Description § All data in a system is managed in a central repository § Components do not interact directly, only through the repository. When used § When Large volumes of information are generated that has to be stored for a long time. § When the inclusion of data in the repository triggers an action or tool. Advantages § Components do not need to know of the existence of other components. § Changes made by one component can be propagated to all components. Disadvantages § The repository is a single point of failure so problems in the repository affect the whole system. § May be inefficiencies in organizing all communication through the repository.

Slide 13

Slide 13 text

jgs 460 00000111 Drafting an Implementation

Slide 14

Slide 14 text

jgs 460 00000111 Implementation :: Classroom

Slide 15

Slide 15 text

jgs 460 00000111 Implementation :: Professor

Slide 16

Slide 16 text

jgs 460 00000111 Implementation :: Student

Slide 17

Slide 17 text

jgs 460 00000111 Implementation :: Blackboard

Slide 18

Slide 18 text

jgs Client-Server

Slide 19

Slide 19 text

jgs 460 00000111 Client-Server

Slide 20

Slide 20 text

jgs 460 00000111 Client-Server Description § Functionality of the system is organized into services. § Each service delivered from a separate server. § Clients are users of these services and access servers to make use of them. When used § Used when data has to be accessed from a range of locations. § May also be used when the load on a system is variable. Advantages § Distributed system Disadvantages § Each service is a single point of failure so susceptible to denial of service attacks or server failure. § Performance may be unpredictable because it depends on the network as well as the system.

Slide 21

Slide 21 text

jgs 460 00000111 Implementation :: Server chrestomathy: https://www.javatpoint.com/socket-programming

Slide 22

Slide 22 text

jgs 460 00000111 Implementation :: Client chrestomathy: https://www.javatpoint.com/socket-programming

Slide 23

Slide 23 text

jgs 460 00000111 Drafting an Implementation ...

Slide 24

Slide 24 text

jgs Next Step Assignment 04

Slide 25

Slide 25 text

jgs CSE 460 Software Analysis and Design Javier Gonzalez-Sanchez [email protected] Fall 2020 Disclaimer. These slides can only be used as study material for the class CSE460 at ASU. They cannot be distributed or used for another purpose.