Application architectures

blabbingunequaledAI and Robotics

Oct 24, 2013 (3 years and 7 months ago)

70 views

©Ian Sommerville 2004


Software Engineering, 7th edition. Chapter 13


Slide
1

Application architectures

©Ian Sommerville 2004


Software Engineering, 7th edition. Chapter 13


Slide
2

Objectives


To explain the organisation of two fundamental
models of business systems
-

batch
processing and transaction processing
systems


To describe the abstract architecture of
resource management systems


To explain how generic editors are event
processing systems


To describe the structure of language
processing systems

©Ian Sommerville 2004


Software Engineering, 7th edition. Chapter 13


Slide
3

Topics covered


Data processing systems


Transaction processing systems


Event processing systems


Language processing systems

©Ian Sommerville 2004


Software Engineering, 7th edition. Chapter 13


Slide
4

Generic application architectures


Application systems are designed to meet an
organisational need.


As businesses have much in common, their
application systems also tend to have a
common architecture that reflects the
application requirements.


A generic architecture is configured and
adapted to create a system that meets specific
requirements.

©Ian Sommerville 2004


Software Engineering, 7th edition. Chapter 13


Slide
5

Use of application architectures


As a starting point for architectural design.


As a design checklist.


As a way of organising the work of the
development team.


As a means of assessing components for
reuse.


As a vocabulary for talking about application
types.


©Ian Sommerville 2004


Software Engineering, 7th edition. Chapter 13


Slide
6

Application types


Data processing applications


Data driven applications that process data in batches
without explicit user intervention during the processing.


Transaction processing applications


Data
-
centred applications that process user requests
and update information in a system database.


Event processing systems


Applications where system actions depend on
interpreting events from the system’s environment.


Language processing systems


Applications where the users’ intentions are specified in
a formal language that is processed and interpreted by
the system.

©Ian Sommerville 2004


Software Engineering, 7th edition. Chapter 13


Slide
7

Application type examples


Data processing systems


Billing systems;


Payroll systems.


Transaction processing systems


E
-
commerce systems;


Reservation systems.


Event processing systems



Word processors;


Real
-
time systems.


Language processing systems


Compilers;


Command interpreters.


©Ian Sommerville 2004


Software Engineering, 7th edition. Chapter 13


Slide
8

Data processing systems


Systems that are data
-
centred where the
databases used are usually orders of
magnitude larger than the software itself.


Data is input and output in batches


Input: A set of customer numbers and associated
readings of an electricity meter;


Output: A corresponding set of bills, one for each
customer number.


Data processing systems usually have an
input
-
process
-
output structure.

©Ian Sommerville 2004


Software Engineering, 7th edition. Chapter 13


Slide
9

Input
-
process
-
output model

©Ian Sommerville 2004


Software Engineering, 7th edition. Chapter 13


Slide
10

Input
-
process
-
output


The
input

component reads data from a file or
database, checks its validity and queues the
valid data for processing.


The
process

component takes a transaction
from the queue (input), performs computations
and creates a new record with the results of
the computation.


The
output

component reads these records,
formats them accordingly and writes them to
the database or sends them to a printer.

©Ian Sommerville 2004


Software Engineering, 7th edition. Chapter 13


Slide
11

Data
-
flow diagrams


Show how data is processed as it moves
through a system.


Transformations are represented as round
-
edged rectangles, data
-
flows as arrows
between them and files/data stores as
rectangles.

©Ian Sommerville 2004


Software Engineering, 7th edition. Chapter 13


Slide
12

Salary payment DFD

©Ian Sommerville 2004


Software Engineering, 7th edition. Chapter 13


Slide
13

Transaction processing systems


Process user requests for information from a
database or requests to update the database.


From a user perspective a transaction is:


Any coherent sequence of operations that satisfies
a goal;


For example
-

find the times of flights from London
to Paris.


Users make asynchronous requests for
service which are then processed by a
transaction manager.

©Ian Sommerville 2004


Software Engineering, 7th edition. Chapter 13


Slide
14

Transaction processing

©Ian Sommerville 2004


Software Engineering, 7th edition. Chapter 13


Slide
15

ATM system organisation

©Ian Sommerville 2004


Software Engineering, 7th edition. Chapter 13


Slide
16

Transaction processing middleware


Transaction management middleware

or
teleprocessing monitors handle
communications with different terminal types
(e.g. ATMs and counter terminals), serialises
data and sends it for processing.


Query processing takes place in the system
database and results are sent back through
the transaction manager to the user’s terminal.

©Ian Sommerville 2004


Software Engineering, 7th edition. Chapter 13


Slide
17

Transaction management

©Ian Sommerville 2004


Software Engineering, 7th edition. Chapter 13


Slide
18

Information systems architecture


Information systems have a generic
architecture that can be organised as a
layered architecture.


Layers include:


The user interface


User communications


Information retrieval


System database

©Ian Sommerville 2004


Software Engineering, 7th edition. Chapter 13


Slide
19

Information system structure

©Ian Sommerville 2004


Software Engineering, 7th edition. Chapter 13


Slide
20

LIBSYS architecture


The library system LIBSYS is an example of an
information system.


User communications layer:


LIBSYS login component;


Form and query manager;


Print manager;


Information retrieval layer


Distributed search;


Document retrieval;


Rights manager;


Accounting.

©Ian Sommerville 2004


Software Engineering, 7th edition. Chapter 13


Slide
21

LIBSYS organisation

©Ian Sommerville 2004


Software Engineering, 7th edition. Chapter 13


Slide
22

Resource allocation systems


Systems that manage a fixed amount of some
resource (football game tickets, books in a
bookshop, etc.) and allocate this to users.


Examples of resource allocation systems:


Timetabling systems where the resource being
allocated is a time period;


Library systems where the resource being
managed is books and other items for loan;


Air traffic control systems where the resource
being managed is the airspace.

©Ian Sommerville 2004


Software Engineering, 7th edition. Chapter 13


Slide
23

Resource allocation architecture


Resource allocation systems are also layered
systems that include:


A resource database;


A rule set describing how resources are allocated;


A resource manager;


A resource allocator;


User authentication;


Query management;


Resource delivery component;


User interface.

©Ian Sommerville 2004


Software Engineering, 7th edition. Chapter 13


Slide
24

Layered resource allocation

©Ian Sommerville 2004


Software Engineering, 7th edition. Chapter 13


Slide
25

Layered system implementation


Each layer can be implemented as a large
scale component running on a separate
server. This is the most commonly used
architectural model for web
-
based systems.


On a single machine, the middle layers are
implemented as a separate program that
communicates with the database through its
API.


Fine
-
grain components within layers can be
implemented as web services.

©Ian Sommerville 2004


Software Engineering, 7th edition. Chapter 13


Slide
26

E
-
commerce system architecture


E
-
commerce systems are Internet
-
based
resource management systems that accept
electronic orders for goods or services.


They are usually organised using a multi
-
tier
architecture with application layers associated
with each tier.

©Ian Sommerville 2004


Software Engineering, 7th edition. Chapter 13


Slide
27

Event processing systems


These systems respond to events in the
system’s environment.


Their key characteristic is that event timing is
unpredictable so the architecture has to be
organised to handle this.


Many common systems such as word
processors, games, etc. are event processing
systems.

©Ian Sommerville 2004


Software Engineering, 7th edition. Chapter 13


Slide
28

Editing systems


Real
-
time systems (Chapter 15) and editing
systems are the most common types of event
processing system.


Editing system characteristics:


Single user systems;


Must provide rapid feedback to user actions;


Organised around long transactions so may
include recovery facilities.

©Ian Sommerville 2004


Software Engineering, 7th edition. Chapter 13


Slide
29

Editing system components


Editing systems are naturally object
-
oriented:


Screen
-

monitors screen memory and detects
events;


Event
-

recognises events and passes them for
processing;


Command
-

executes a user command;


Editor data
-

manages the editor data structure;


Ancillary data
-

manages other data such as styles
and preferences;


File system
-

manages file I/O;


Display
-

updates the screen display.

©Ian Sommerville 2004


Software Engineering, 7th edition. Chapter 13


Slide
30

Editing system architecture

©Ian Sommerville 2004


Software Engineering, 7th edition. Chapter 13


Slide
31

Language processing systems


Accept a natural or artificial language as input and
generate some other representation of that language.


May include an interpreter to act on the instructions in
the language that is being processed.


Used in situations where the easiest way to solve a
problem is to describe an algorithm or describe the
system data


Meta
-
case tools process tool descriptions, method
rules, etc and generate tools.

©Ian Sommerville 2004


Software Engineering, 7th edition. Chapter 13


Slide
32

A language processing system

©Ian Sommerville 2004


Software Engineering, 7th edition. Chapter 13


Slide
33

Language processing components


Lexical analyser


Symbol table


Syntax analyser


Syntax tree


Semantic analyser


Code generator

©Ian Sommerville 2004


Software Engineering, 7th edition. Chapter 13


Slide
34

Data
-
flow model of a compiler

©Ian Sommerville 2004


Software Engineering, 7th edition. Chapter 13


Slide
35

Repository model of a compiler

©Ian Sommerville 2004


Software Engineering, 7th edition. Chapter 13


Slide
36


Generic models of application architectures
help us understand and compare applications.


Important classes of application are data
processing systems, transaction processing
systems, event processing systems and
language processing system.


Data processing systems operate in batch
mode and have an input
-
process
-
output
structure.

Key points

©Ian Sommerville 2004


Software Engineering, 7th edition. Chapter 13


Slide
37

Key points


Transaction processing systems allow
information in a database to be remotely
accessed and modified by multiple users.


Event processing systems include editors and
real
-
time systems.


In an editor, user interface events are detected
and an in
-
store data structure is modified.


Language processing systems translate texts
from one language to another and may
interpret the specified instructions.

©Ian Sommerville 2004


Software Engineering, 7th edition. Chapter 13


Slide
38

Exercise


Using the four basic application types introduced in this
chapter, classify the following systems and explain your
classification:


A point
-
of
-
sale system in a supermarket


A system that sends out reminders that magazine subscriptions
are due to be paid


A photo album system that provides some facilities for restoring
old photographs


A system that reads web pages to visually disable users


An interactive game in which move around, cross obstacles and
collect treasure


An inventory control system that keeps track of what items are in
stock and automatically generates orders for new stock when the
level falls below a certain value.

©Ian Sommerville 2004


Software Engineering, 7th edition. Chapter 13


Slide
39

Exercise


Based on a input
-
process
-
output model, expand the Compute
salary function in
Figure 13.2
and draw a data
-
flow diagram
that shows the computations carried out in that function. You
need the following information to do this:


The employee record identifies the grade of employee. This
grade is then used to look up the table of pay rates.


Employees below a particular grade may be paid overtime at the
same rate as their normal hourly pay rate. The extra hours for
which they are to be paid are indicated in their employee record.


The amount of tax deducted depends on the employee’s tax
code (indicated in the record) and their annual salary. Monthly
deductions for each code and a standard salary are indicated in
the tax tables. These are scaled up or down depending on the
relationship between the actual salary and the standard salary
used.

©Ian Sommerville 2004


Software Engineering, 7th edition. Chapter 13


Slide
40

Exercise


In an editing system, all user interface events can be translated
into implicit or explicit commands. Explain why, in Figure 13.10,
the Event object therefore communicates directly with the
editor data structures as well as the Command object.


Modify
Figure 13.10
to show the generic architecture of a
spreadsheet system. Base your design on the features of any
spreadsheet system that you have used.


Using the generic model of a language
-
processing system
presented in
this Chapter
, design the architecture of a system
that accepts natural language commands and translates these
into database queries in a language such as SQL.