Units 5 & 6 Flashcards
Software archtiectures
concerned with the structure of a system
Fault tolerance
the ability of a system to respond gracefully to an unexpected hardware or software failure
Client-server style architecture
server - service provider role - waits for arrival of requests
client - issues requests to the server + awaits responses
server process is normally placed on a different host than the client process
server typically manages large amounts of data + files
many clients can connect to one server
Load balancing
avoiding situations where one component has to do all the work, while other components remain idle
enables the available resources to be better utilised
Multiple servers acting together
variation of client server style - 2 ways:
- data partitioning
- resources are distributed among the servers
- each server is responsible for its own section
- servers interact with each other to provide replies to
requests
- data replication
- each server holds an identical copy of the data
- better performance + availability + improved fault
tolerance
Proxy servers
a server that acts as an intermediary between clients and other servers
Peer-to-peer style
an architecture in which computer resources + services are directly exchanged between computer systems without the need for distinct clients and servers
computers communicate among themselves + can act both as clients and as servers
Which factors measure the performance of a distributed system’s software architecture ?
throughput
responsiveness
What are the weaknesses of the client-server style?
central role of the server forms a bottleneck + thus limits the performance of the system
this central role also forms a single point of failure - if the server goes down the whole system goes down
What is load balancing?
a strategy to improve the performance of a distributed system such that the workload is shared among many processes
Two-tier model
the clients, taken together, form one tier - the client tier
the database sever forms another tier - the database tier
Layer
a layer of software in which implementation details are hidden but functionality of the layer can be invoked through a well defined interface
OSI model
defines a modular approach to networking, with each layer responsible for some discrete aspect of the networking process
- Application layer
- Presentation layer
- Session layer
- Transport layer
- Network layer
- Data link layer
- Physical layer
each layer able to communicate with layer directly above or below
Software component
an independent software unit that can be combined with other components to create a software system
each component has an interface
Interface
an abstraction that a component or some other entity provides of itself to the outside
What are thin + thick clients?
Thin clients do not carry much processing and leave this to the server
Think clients carry out more processing
Java Platform Enterprise edition (Java EE)
EIS tier - holds application data + stores it permanently in some kind of database
business tier - contains the software relating to the business logic
web tier - required in those cases where the clients are web clients, role is to make business logic accessible for we applications
client tier - presentation or user interface of the application as a whole
Asynchronous message passing
sending + receiving processes to not have to be at their synchronisation points at the same time
possible that one process is ahead of the other
if receiving process is ahead of the sending process it will have to wait
synchronous message passing
both processes are required to be at the point of sending + receiving at the same time
the message goes straight from the sending process to the receiving process
Addressing
needed so processes in a distributed system can identify each other in order to communicate
addressing is a standard naming process
IP address
a symbolic address of a computer
for communication to be possible the IP address has to be translated + the actual computer located - done via Domain Name Service (DNS)
port is also needed - map incoming data to a particular process running on a computer
What form of communication requires a buffer?
asynchronous communication
if a message arrives before the recipient is ready to receive it the message must be stored somewhere - i.e. buffered until the recipient can read it
Marshalling
the process of taking a collection of data items + assembling them into a form suitable for transmission in a message
Unmarshalling
the process of disassembling a message on arrival in order to produce the equivalent collection of data items at the destination