Object-oriented Design - University of Nebraska Omaha

Download Report

Transcript Object-oriented Design - University of Nebraska Omaha

Models of Software Architectures
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 1
Topics covered

Distributed architectures (Chapter 12)
•
•
•
•

Client-server architectures
Distributed object architectures
Peer-to-peer architectures
Service-oriented architectures
Application architectures (Chapter 13)
•
•
•
•
Data processing systems
Transaction processing systems
Event processing systems
Language processing systems
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 4
Use of 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.
We will examine some important architectural
models from two perspectives:
•
•
Distribution strategy – how subsystems are decomposed
and distributed over several computers
Application types – how subsystems are decomposed
based on application-specific functionality
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 5
Computer systems



Personal systems that are not distributed and that
are designed to run on a personal computer or
workstation.
Embedded systems that run on a single processor
or on an integrated group of processors.
Distributed systems where the system software runs
on a loosely integrated group of cooperating
processors linked by a network.
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 6
Distributed systems



Information processing is distributed over
several computers rather than confined to a
single machine.
Virtually all large computer-based systems
are now distributed systems.
Distributed software engineering is therefore
very important for enterprise computing
systems.
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 7
Distributed system characteristics

Resource sharing
•

Openness
•

Concurrent processing to enhance performance.
Scalability
•

Use of equipment and software from different vendors.
Concurrency
•

Sharing of hardware and software resources.
Increased throughput by adding new resources.
Fault tolerance
•
The ability to continue in operation after a fault has
occurred.
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 8
Distributed system disadvantages

Complexity
•

Security
•

More susceptible to external attack.
Manageability
•

Typically, distributed systems are more complex than
centralised systems.
More effort required for system management.
Unpredictability
•
Unpredictable responses depending on the system
organisation and network load.
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 9
Intra-organizational distributed
systems architectures

Client-server architectures
•

Distributed services which are called on by
clients. Servers that provide services are treated
differently from clients that use services.
Distributed object architectures
•
No distinction between clients and servers. Any
object on the system may provide and use
services from other objects.
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 10
Middleware



Software that manages and supports the different
components of a distributed system. In essence, it
sits in the middle of the system.
Middleware is usually off-the-shelf rather than
specially written software.
Examples
•
•
•
Transaction processing monitors;
Data converters;
Communication controllers.
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 11
Topics covered

Distributed architectures (Chapter 12)
•
•
•
•

Client-server architectures
Distributed object architectures
Peer-to-peer architectures
Service-oriented architectures
Application architectures (Chapter 13)
•
•
•
•
Data processing systems
Transaction processing systems
Event processing systems
Language processing systems
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 14
Client-server architectures




The application is modelled as a set of
services that are provided by servers and a
set of clients that use these services.
Clients know of servers but servers need not
know of clients.
Clients and servers are logical processes
The mapping of processors to processes is
not necessarily 1 : 1.
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 15
A client-server system
c3
c2
c4
c1 2
c1 1
s4
s1
c1
Serv er pro cess
c1 0
c5
s2
c6
c7
Modifed from Sommerville’s originals
Client pro cess
s3
c9
c8
Software Engineering, 7th edition. Chapter 12 & 13
Slide 16
Computers in a C/S network
c1
CC1
c2
CC2
c3 , c4
CC3
Netwo rk
s1 , s 2
s3 , s 4
SC2
Serv er
co mpu ter
SC1
c5 , c6, c7
c8 , c9
CC4
Modifed from Sommerville’s originals
CC5
c1 0 , c1 1 , c1 2
Client
co mpu ter
CC6
Software Engineering, 7th edition. Chapter 12 & 13
Slide 17
Layered application architecture

Presentation layer
•

Application processing layer
•

Concerned with presenting the results of a computation to
system users and with collecting user inputs.
Concerned with providing application specific functionality
e.g., in a banking system, banking functions such as open
account, close account, etc.
Data management layer
•
Concerned with managing the system databases.
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 18
Thin and fat clients

Thin-client model
•

In a thin-client model, all of the application
processing and data management is carried out
on the server. The client is simply responsible
for running the presentation software.
Fat-client model
•
In this model, the server is only responsible for
data management. The software on the client
implements the application logic and the
interactions with the system user.
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 20
Thin and fat clients
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 21
Thin client model

Used when legacy systems are migrated to
client server architectures.
•

The legacy system acts as a server in its own
right with a graphical interface implemented on
a client.
A major disadvantage is that it places a
heavy processing load on both the server
and the network.
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 22
Fat client model



More processing is delegated to the client as
the application processing is locally
executed.
Most suitable for new C/S systems where the
capabilities of the client system are known in
advance.
More complex than a thin client model
especially for management. New versions of
the application have to be installed on all
clients.
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 23
Three-tier architectures



In a three-tier architecture, each of the
application architecture layers may execute
on a separate processor.
Allows for better performance than a thinclient approach and is simpler to manage
than a fat-client approach.
A more scalable architecture - as demands
increase, extra servers can be added.
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 25
A 3-tier C/S architecture
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 26
An internet banking system
Client
HTTP interactio n
Client
Database server
Web s erv er
SQL q u ery
Acco u nt service
p rov is ion
SQL
Cus tomer
acco un t
d atabase
Client
Client
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 27
Topics covered

Distributed architectures (Chapter 12)
•
•
•
•

Client-server architectures
Distributed object architectures
Peer-to-peer architectures
Service-oriented architectures
Application architectures (Chapter 13)
•
•
•
•
Data processing systems
Transaction processing systems
Event processing systems
Language processing systems
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 29
Distributed object architectures




There is no distinction in a distributed object
architectures between clients and servers.
Each distributable entity is an object that provides
services to other objects and receives services from
other objects.
Object communication is through a middleware
system called an object request broker.
However, distributed object architectures are more
complex to design than C/S systems.
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 30
Distributed object architecture
o1
o2
o3
o4
S (o 1)
S (o 2)
S (o 3)
S (o 4)
Object req u est brok er
o5
o6
S (o 5)
S (o 6)
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 31
Advantages of distributed object architecture




It allows the system designer to delay decisions on
where and how services should be provided.
It is a very open system architecture that allows new
resources to be added to it as required.
The system is flexible and scaleable.
It is possible to reconfigure the system dynamically
with objects migrating across the network as
required.
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 32
Uses of distributed object architecture


As a logical model that allows you to structure and
organise the system. In this case, you think about
how to provide application functionality solely in
terms of services and combinations of services.
As a flexible approach to the implementation of
client-server systems. The logical model of the
system is a client-server model but both clients and
servers are realised as distributed objects
communicating through a common communication
framework.
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 33
CORBA


CORBA is an international standard for an Object
Request Broker - middleware to manage
communications between distributed objects.
Middleware for distributed computing is required at 2
levels:
•
•
At the logical communication level, the middleware allows
objects on different computers to exchange data and
control information;
At the component level, the middleware provides a basis
for developing compatible components. CORBA
component standards have been defined.
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 36
CORBA application structure
App lication
o bjects
Domain
facilities
Horizo ntal C ORBA
facilities
Object req u est brok er
CORBA services
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 38
CORBA standards

An object model for application objects
•



A CORBA object is an encapsulation of state
with a well-defined, language-neutral interface
defined in an IDL (interface definition language).
An object request broker that manages
requests for object services.
A set of general object services of use to
many distributed applications.
A set of common components built on top of
these services.
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 39
CORBA objects




CORBA objects are comparable, in principle, to
objects in C++ and Java.
They MUST have a separate interface definition that
is expressed using a common language (IDL) similar
to C++.
There is a mapping from this IDL to programming
languages (C++, Java, etc.).
Therefore, objects written in different languages can
communicate with each other.
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 40
ORB-based object communications
o1
o2
S (o 1)
S (o 2)
IDL
st ub
IDL
sk el eto n
Object Requ es t Bro ker
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 41
Object request broker (ORB)



The ORB handles object communications. It knows
of all objects in the system and their interfaces.
Using an ORB, the calling object binds an IDL stub
that defines the interface of the called object.
Calling this stub results in calls to the ORB which
then calls the required object through a published
IDL skeleton that links the interface to the service
implementation.
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 42
Inter-ORB communications




ORBs are not usually separate programs but are a
set of objects in a library that are linked with an
application when it is developed.
ORBs handle communications between objects
executing on the sane machine.
Several ORBS may be available and each computer
in a distributed system will have its own ORB.
Inter-ORB communications are used for distributed
object calls.
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 43
Inter-ORB communications
o1
o2
o3
o4
S (o 1)
S (o 2)
S (o 3)
S (o 4)
IDL
stub
IDL
sk eleto n
IDL
stub
IDL
sk eleto n
Object Requ es t Bro ker
Object Requ es t Bro ker
Netwo rk
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 44
CORBA services

Naming and trading services
•

Notification services
•

These allow objects to discover and refer to
other objects on the network.
These allow objects to notify other objects that
an event has occurred.
Transaction services
•
These support atomic transactions and rollback
on failure.
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 45
Topics covered

Distributed architectures (Chapter 12)
•
•
•
•

Client-server architectures
Distributed object architectures
Peer-to-peer architectures
Service-oriented architectures
Application architectures (Chapter 13)
•
•
•
•
Data processing systems
Transaction processing systems
Event processing systems
Language processing systems
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 46
Inter-organisational computing



For security and inter-operability reasons,
most distributed computing has been
implemented at the enterprise level.
Local standards, management and
operational processes apply.
Newer models of distributed computing have
been designed to support interorganisational computing where different
nodes are located in different organisations.
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 47
Peer-to-peer architectures



Peer to peer (p2p) systems are decentralised
systems where computations may be carried out by
any node in the network.
The overall system is designed to take advantage of
the computational power and storage of a large
number of networked computers.
Most p2p systems have been personal systems but
there is increasing business use of this technology.
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 48
P2p architectural models

The logical network architecture
•
•

Application architecture
•

Decentralised architectures;
Semi-centralised architectures.
The generic organisation of components making
up a p2p application.
Focus here on network architectures.
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 49
Decentralised p2p architecture
n4
n6
n8
n7
n2
n 13
n 12
n3
n 13
n9
n1
n 10
n 11
n5
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 50
Semi-centralised p2p architecture
Discov ery
serv er
n4
n1
n3
n6
n5
n2
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 51
Topics covered

Distributed architectures (Chapter 12)
•
•
•
•

Client-server architectures
Distributed object architectures
Peer-to-peer architectures
Service-oriented architectures
Application architectures (Chapter 13)
•
•
•
•
Data processing systems
Transaction processing systems
Event processing systems
Language processing systems
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 52
Service-oriented architectures


Based around the notion of externally
provided services (web services).
A web service is a standard approach to
making a reusable component available and
accessible across the web
•
A tax filing service could provide support for
users to fill in their tax forms and submit these
to the tax authorities.
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 53
A generic service


An act or performance offered by one party
to another. Although the process may be tied
to a physical product, the performance is
essentially intangible and does not normally
result in ownership of any of the factors of
production.
Service provision is therefore independent of
the application using the service.
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 54
Web services
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 55
Services and distributed objects







Provider independence.
Public advertising of service availability.
Potentially, run-time service binding.
Opportunistic construction of new services through
composition.
Pay for use of services.
Smaller, more compact applications.
Reactive and adaptive applications.
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 56
Services standards


Services are based on agreed, XML-based
standards so can be provided on any
platform and written in any programming
language.
Key standards
•
•
•
SOAP - Simple Object Access Protocol;
WSDL - Web Services Description Language;
UDDI - Universal Description, Discovery and
Integration.
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 57
Services scenario


An in-car information system provides drivers with
information on weather, road traffic conditions, local
information etc. This is linked to car radio so that
information is delivered as a signal on a specific
radio channel.
The car is equipped with GPS receiver to discover
its position and, based on that position, the system
accesses a range of information services.
Information may be delivered in the driver’s
specified language.
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 58
Topics covered

Distributed architectures (Chapter 12)
•
•
•
•

Client-server architectures
Distributed object architectures
Peer-to-peer architectures
Service-oriented architectures
Application architectures (Chapter 13)
•
•
•
•
Data processing systems
Transaction processing systems
Event processing systems
Language processing systems
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 60
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.
A generic architecture can be used as a basic
vocabulary for talking about application types.
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 61
Application types

Data processing applications
•

Transaction processing applications
•

Data-centred applications that process user requests and
update information in a system database.
Event processing systems
•

Data driven applications that process data in batches without
explicit user intervention during the processing.
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.
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 62
Application type examples

Data processing systems
•
•

Transaction processing systems
•
•

E-commerce systems;
Reservation systems.
Event processing systems
•
•

Billing systems;
Payroll systems.
Word processors;
Real-time systems.
Language processing systems
•
•
Compilers;
Command interpreters.
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 63
Topics covered

Distributed architectures (Chapter 12)
•
•
•
•

Client-server architectures
Distributed object architectures
Peer-to-peer architectures
Service-oriented architectures
Application architectures (Chapter 13)
•
•
•
•
Data processing systems
Transaction processing systems
Event processing systems
Language processing systems
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 64
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.
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 65
Input-process-output model
Sy stem
In pu t
Proces s
Outp u t
Prin ter
Database
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 66
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.
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 67
Data-flow diagrams


Show how data is processed as it moves
through a system.
Transformations are represented as roundedged rectangles, data-flows as arrows
between them and files/data stores as
rectangles.
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 68
Salary payment DFD
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 69
Topics covered

Distributed architectures (Chapter 12)
•
•
•
•

Client-server architectures
Distributed object architectures
Peer-to-peer architectures
Service-oriented architectures
Application architectures (Chapter 13)
•
•
•
•
Data processing systems
Transaction processing systems
Event processing systems
Language processing systems
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 70
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.
Transaction processing systems are often also
client-server systems.
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 71
Transaction processing
I/O
p roces sin g
Modifed from Sommerville’s originals
Application
lo gic
Trans action
man ag er
Database
Software Engineering, 7th edition. Chapter 12 & 13
Slide 72
ATM system organisation
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 73
ATM client-server architecture
ATM
ATM
Acco u nt server
Telep roces sin g
mon ito r
Cus tomer
acco un t
d atabase
ATM
ATM
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 74
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.
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 75
ATM transaction management
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 76
Information system structure
Use r inte r fa ce
Use r c om m unica tions
Inform a tion r etrie va l a nd m odif ic ation
Tra nsac tion m anagem e nt
Database
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 78
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.
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 84
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.
Web
b rowser
Web server
Modifed from Sommerville’s originals
App lication
serv er
Database
serv er
Software Engineering, 7th edition. Chapter 12 & 13
Slide 85
Topics covered

Distributed architectures (Chapter 12)
•
•
•
•

Client-server architectures
Distributed object architectures
Peer-to-peer architectures
Service-oriented architectures
Application architectures (Chapter 13)
•
•
•
•
Data processing systems
Transaction processing systems
Event processing systems
Language processing systems
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 86
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.
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 87
Editing system architecture
File Sy ste m
Save
Ope n
Anc illar y da ta
Editor da ta
Anc illar y
c om m ands
Editing
c om m ands
Com m a nd
Displa y
Inte rpre t
Update
Eve nt
P roce ss
Scre e n
Ref re sh
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 89
Topics covered

Distributed architectures (Chapter 12)
•
•
•
•

Client-server architectures
Distributed object architectures
Peer-to-peer architectures
Service-oriented architectures
Application architectures (Chapter 13)
•
•
•
•
Data processing systems
Transaction processing systems
Event processing systems
Language processing systems
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 91
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.
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 92
A language processing system
Tra nsla tor
Instructions
Che ck sy ntax
Chec ksemantics
Gener ate
Abstra ct m /c
instr uc tions
Inte rpre ter
Data
Modifed from Sommerville’s originals
Fe tch
Exe cute
Results
Software Engineering, 7th edition. Chapter 12 & 13
Slide 93
Data-flow model of a translator
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 95
Repository model of a translator
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 96
Key points



Architectural models are useful starting
points for system design.
In distributed systems, subsystems are
distributed over several computers.
Generic models of application architectures
help us understand and compare certain
types of applications.
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 97
Key points

Client-server architectures
•
•

Distributed object architectures
•
•
•

No distinction between clients and servers.
Require middleware to handle object communications and to
add and remove system objects.
CORBA – a set of middleware standards.
Peer to peer architectures
•

Involve services being delivered by servers to programs
operating on clients.
Three layers distributed over client and server: user interface,
application processing, data management.
Decentralised systems where computations may be carried out
by any node in the network.
Service-oriented architectures
•
Make a service available externally.
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 98
Key points

Data processing systems
•

Transaction processing systems
•
•

Users interact with the system through atomic data transactions.
Includes a transaction management subsystem.
Event processing systems
•
•

Data is input and output in batches.
Respond to events in a timely manner.
No central controller; critical components respond directly to
events.
Language processing systems
•
•
Process languages (natural or artificial) as input to accomplish
some complex data processing function.
Includes a translator and an interpreter.
Modifed from Sommerville’s originals
Software Engineering, 7th edition. Chapter 12 & 13
Slide 99