1
4.10.2004 Software Engineering 2004 Jyrki Nummenmaa 1
MORE ON ARCHI TECTURES
- The main reasons for using an architecture are
maintainability and performance.
- We want to structure the software into reasonably
independent parts for easy maintenance.
- We want to be able to increase performance if
- needed. A suitable architecture allows us to
increase processing power where it is needed.
- A good architect knows different architectural
styles (which are like design patterns) and understands the technology and application to identify the potential performance bottlenecks.
- Let’s discuss some models and history…
4.10.2004 Software Engineering 2004 Jyrki Nummenmaa 2
Monolithic Architecture / 1
- Monolithic systems are not divided into
independent parts. They typically run on a single processing unit (computer).
- There was a time when computers typically did not
talk that much with each other.
- This made monolithic systems more or less the
- nly choice.
- Lack of complicated communication speeds up
processing, but it is hard to improve performance in any other way than increasing processing power for that one computer.
4.10.2004 Software Engineering 2004 Jyrki Nummenmaa 3
Monolithic Architecture / 2
- Typically and historically, the monolithic system
talks with fairly dumb clients (like terminals).
4.10.2004 Software Engineering 2004 Jyrki Nummenmaa 4
Client/ Server Architecture / 1
- When terminals were replaced by microcom puters,
they started to have processing power.
- To use this power just to run a terminal program
was a waste of processing capabilities.
- Consequently, the microcomputers were used to
run a client program, which talked with the mainframe server.
4.10.2004 Software Engineering 2004 Jyrki Nummenmaa 5
Client/ Server Architecture / 2
- Fat clients contained more functionalities and data.
- Thin clients contained more or less terminal-type
functionalities.
- Client/ Server (C/ S) computing was the first step
towards multi-tier (multi-layer) architectures on processing unit level.
- It allowed a better division of work.
- However, fat clients also needed maintenance and
installations to keep up with current versions.
4.10.2004 Software Engineering 2004 Jyrki Nummenmaa 6
Three-tier architecture / 1
- The server side was still monolithic in a basic C/ S
architecture, which created a performance bottleneck.
- As the applications usually had a database,
multiplying the database is hard in many cases, which makes it hard to multiply the servers.
- However, by having a separate database server it
was possible to have multiple application servers.
DATABASE SERVER APPLI CATI ON SERVERS