CS 5150 So(ware Engineering 13. Three Popular Architectural Styles - - PowerPoint PPT Presentation

cs 5150 so ware engineering 13 three popular
SMART_READER_LITE
LIVE PREVIEW

CS 5150 So(ware Engineering 13. Three Popular Architectural Styles - - PowerPoint PPT Presentation

Cornell University Compu1ng and Informa1on Science CS 5150 So(ware Engineering 13. Three Popular Architectural Styles William Y. Arms Example 1: Batch Processing with Master File Update Examples Electricity uBlity customer billing


slide-1
SLIDE 1

Cornell University
 Compu1ng and Informa1on Science

CS 5150 So(ware Engineering

  • 13. Three Popular Architectural Styles

William Y. Arms

slide-2
SLIDE 2

Examples

  • Electricity uBlity customer billing (e.g., NYSEG)
  • Telephone call recording and billing (e.g., Verizon)
  • Car rental reservaBons (e.g., Hertz)
  • Bank (e.g., Tompkins Trust)
  • University grade registraBon (e.g., Cornell)

Example 1: Batch Processing with Master File Update

slide-3
SLIDE 3

Example: Electricity U1lity Billing Requirements analysis idenBfies several transacBon types:

  • Create account / close account
  • Meter reading
  • Payment received
  • Other credits / debits
  • Check cleared / check bounced
  • Account query
  • CorrecBon of error
  • etc., etc., etc.,

Master File Update

slide-4
SLIDE 4

First Attempt

Data input Master file TransacBon Bill Each transacBon is handled as it arrives.

slide-5
SLIDE 5

CriBcisms of First A\empt

Where is this first a@empt weak?

  • All acBviBes are triggered by a transacBon.
  • A bill is sent out for each transacBon, even if there are several

per day.

  • Bills are not sent out on a monthly cycle.
  • Awkward to answer customer queries.
  • No process for error checking and correc1on.
  • Inefficient in staff Bme.
slide-6
SLIDE 6

Batch Processing: Edit and ValidaBon

Data input Master file Edit & validaBon read only errors Batches of validated transacBons Batches of incoming transacBons

slide-7
SLIDE 7

Deployment Diagram: ValidaBon

MasterFile Check EditCheck ValidData DataInput RawData

slide-8
SLIDE 8

Batch Processing: Master File Update

Master file update Bills Validated transacBons in batches Sort by account errors Reports Batches of input data Checkpoints and audit trail

slide-9
SLIDE 9

Benefits of Batch Processing with Master File Update

  • All transacBons for an account are processed together at

appropriate intervals, e.g., monthly.

  • Backup and recovery have fixed checkpoints.
  • Be\er management control of operaBons.
  • Efficient use of staff and hardware.
  • Error detecBon and correcBon is simplified.
slide-10
SLIDE 10

Architectural Style: Master File Update (Basic Version)

Master file update Data input and validaBon Mailing and reports Advantages: Efficient way to process batches of transacBons. Disadvantages: InformaBon in master file is not updated immediately. No good way to answer customer inquiries. Sort

slide-11
SLIDE 11

Online Inquiry

Master file read only Customer service RepresentaBve Customer service department can read the master file, make annotaBons, and create transacBons, but cannot change the master file. New transacBon A customer calls the uBlity and speaks to a customer service representaBve.

slide-12
SLIDE 12

Online Inquiry: Use Case

CustomerRep AnswerCustomer NewTransacBon <<uses>> The representaBve can read the master file, but not make changes to it. If the representaBve wishes to change informaBon in the master file, a new transacBon is created as input to the master file update system.

slide-13
SLIDE 13

Architectural Style: Master File Update (Full)

Advantage: Efficient way to answer customer inquiries. Disadvantage: InformaBon in master file is not updated immediately. Customer services Master file update Data input and validaBon Mailing and reports Sort

slide-14
SLIDE 14

Example 2: Three Tier Architecture

The basic client/server architecture of the web has:

  • a server that delivers staBc pages in HTML format
  • a client (known as a browser) that renders HTML pages

Both client and server implement the HTTP interface. Problem Extend the architecture of the server so that it can configure HTML pages dynamically.

slide-15
SLIDE 15

Web Server with Data Store

Web browser Advantage: Server-side code can configure pages, access data, validate informaBon, etc. Disadvantage: All interacBon requires communicaBon with server Data Server

slide-16
SLIDE 16

Architectural Style: Three Tier Architecture

Each of the tiers can be replaced by other components that implement the same interfaces Presentation tier Application tier Database tier

slide-17
SLIDE 17

Component Diagram

WebServer WebBrowser HTTP ODBC Database Server These components might be located on a single node

slide-18
SLIDE 18

Three Tier Architecture: Broadcast Searching

User interface service User Databases This is an example of a multicast protocol. The primary difficulty is to avoid troubles at one site degrading the entire system (e.g., every transaction cannot wait for a system to time out).

slide-19
SLIDE 19

Extending the Architecture of the Web

Using a three Ber architecture, the web has:

  • a server that delivers dynamic pages in HTML format
  • a client (known as a browser) that renders HTML pages

Both server and client implement the HTTP interface. Every interacBon with the user requires communicaBon between the client and the server. Problem 2 Extend the architecture so that simple user interacBons do not need messages to be passed between the client and the server.

slide-20
SLIDE 20

Extending the Web with Executable Code that can be Downloaded

Data Server Web browser Executable code in a scripBng language such as JavaScript can be downloaded from the server Advantage: Scripts can interact with user and process informaBon locally Disadvantage: All interacBons are constrained by web protocols Java Script html

slide-21
SLIDE 21

Extending the Three Tier Architecture

In the three Ber architecture, a web site has:

  • a client that renders HTML pages and executes scripts
  • a server that delivers dynamic pages in HTML format
  • a data store

Further extensions The three Ber architecture with downloadable scripts is one the ways in which the basic architecture has been extended. There are some more:

  • Protocols: e.g., HTTPS, FTP, proxies
  • Data types: e.g., helper applicaBons, plug-ins
  • Executable code: e.g., applets, servlets
  • Style sheets: e.g., CSS
slide-22
SLIDE 22

Example 3: Model/View/Controller (MVC)

The definition of Model/View/Controller (MVC) is in a state of flux. The term is used to describe a range of architectures and designs.

  • Some are system architectures, where the model, view, and controller

are separate components.

  • Some are program designs, with classes called model, view, and

controller. We will look at three variants:

  • An MVC system architecture used in robotics.
  • A general purpose MVC system architecture used for interactive

systems.

  • Apple’s version of MVC as a program design for mobile apps.
slide-23
SLIDE 23

Model/View/Controller in RoboBcs

Model Controller View Example: Control of a unmanned model aircra( Controller: Receives instrument readings from the aircra(, updates the view, and sends controls signals to the aircra(. Model: Translates data received from and sent to the aircra(, and instrucBons from the user into a model of flight performance. Uses domain knowledge about the aircra( and flight. View: Displays informaBon about the aircra( to the user on the ground and transmits instrucBons to the model via the controller. Aircra(

slide-24
SLIDE 24

Example 3. Model/View/Controller for Mobile Apps

Model View Controller State query State change View control

slide-25
SLIDE 25

Model

The model records the state of the applicaBon and noBfies

  • subscribers. It does not depend on the controller or the view.
  • stores the state of the applicaBon in suitable data structures or

databases

  • responds to instrucBons to change the state informaBon
  • noBfies subscribers of events that change the state
  • may be responsible for validaBon of informaBon
slide-26
SLIDE 26

View

The view is the part of the user interface that presents the state of the interface to the user. It subscribes to the model, which noBfies it

  • f events that change the state.
  • renders data from the model for the user interface
  • provides editors for properBes, such as text fields, etc.
  • receives updates from the model
  • sends user input to the controller

A given model may support a choice of alternaBve views.

slide-27
SLIDE 27

Controller

The controller is the part of the user interface that manages user input and navigaBon within the applicaBon.

  • defines the applicaBon behavior
  • maps user acBons to changes in the state of the model
  • interacts with external services via APIs
  • may be responsible for validaBon of informaBon

Different frameworks handle controllers in different ways. In parBcular there are several ways to divide responsibiliBes between the model and the controller, e.g., data validaBon, external APIs.

slide-28
SLIDE 28

External Services for Mobile Apps

Model View Controller State query State change View control External services Mobile apps o(en make extensive use of cloud-based external services, each with an API (e.g., locaBon, validaBon). These are usually managed by the controller.

slide-29
SLIDE 29

Apple’s Version of Model/View/Controller

Controller View Model User acBon NoBfy Update Update The diagram shows the model, view, and controller as components. In practice the MVC is a program design with three major classes.

slide-30
SLIDE 30

Apple’s Version of MVC

Two challenges:

  • A multi-screen app will have several views and controllers

sharing the same model.

  • It is easy to put too much code into the controller.
slide-31
SLIDE 31

Architectural Styles and Design Pa\erns

There are many variants of the common architectural styles. Do not be surprised if you encounter a variant that is different from the one described in this course. This is parBcularly true with the Model-View-Controller style. Several programming frameworks call classes that implement a variant of the Model-View-Controller architectural style a design pa\ern. In this course we disBnguish carefully between architectural styles and design pa\erns. Architectural styles are part of system design. They are defined in terms

  • f subsystems, components, and deployment.

Design pa\erns are part of program design. They are defined in terms

  • f classes.