Unit 5 Software Architecture and Communication Flashcards
What is a software architecture?
The structure of a system. What elements it is comprised of and how they are related.
Define Fault tolerance.
The ability of a system to fail gracefully ie if a part of the system fails, the system should only fail proportionally.
What factors measure the performance of a distributed system’s architecture?
Responsiveness - If one part of the system needs to wait a long time to get a response from another part this is inadequate. For users poor responsiveness is frustrating.
Throughput - the rate at which the work gets done. influenced by speed of software components and reliability of network connections.
Describe the client-server architecture
Client sends requests to server. Server responds.
Disadvantage, too many clients connected to a single server will eventually affect responsiveness. Central role of server = single point of failure.
Load balancing may be achieved by getting the client to download and run an applet from the server.
What is Load Balancing
Load balancing is distributing the work across the system, maximising use of resources.
Multiple Servers acting together - advantages and disadvantages
Client speaks to one server that in turn may request information fro other servers. This system may be implemented using data partitioning or data replication.
Advantage. - better fault tolerance as clients can be diverted to another server in case of failure.
Also if all ops on the data are mirrored on each server, it may be easier to pick up and detect failure if a server fails.
Describe a proxy server architecture and list what a proxy server can do.
The proxy server acts as an intermediary between clients and servers.
- can remove identifying info from client ensuring anonymity
- can cache data allowing for faster service - eg BBC website latest news stories stored locally in cache saves overpowering their servers
- can block offensive content
Peer to peer - what are the advantages?
No distinct clients or servers. Data can be replicated as in multiple server style. no single point of failure.
Give an example of load balancing for each style of software architecture
Client Server - some processing can be done by clients (applets)
Multiple server - load can be shared among servers.
Proxy Server - proxy takes over some work.
Peer to peer network - work is shared across peers.
Describe a traditional two-tier architecture.
Thick clients (able to do some processing) form one tier, while a database server provides the second tier. The database acts only as a repository for data and enforces some constraints to preserve the data.
What are the advantages and disadvantages of two tier architecture?
Advantages - Clients can work independently with their own view of the data (user, administrator). Best suited to situations where the number of clients is limited and there are no major security issues.
Disadvantages - Scalability - the server will only support a limited amount of connections.
Single point of failure.
Distribution - if changes are made to the software for the client then this will have to be distributed to each client.
N Tier architecture - describe
Three or more tiers. Often a clear distinction between operations of the application (presentation, middletier, database). typically uses a thin client as these let the server do the processing.
What are the benefits of the N tier model?
Scalabilty
Reuse - modularised so reuse is possible. Can
Improved Data integrity and security. All data passes through middle tier so this can ensure data is valid. More security points.
Redundancy in event of failure.
Drawbacks of the n tier model?
Increased complexity, doubling of communication.
Security - more points in the system to secure.
What is an Enterprise?
An enterprise is an organisation of some kind. Typically an enterprise has the following resources, people, plant, processes and it wishes to protect/preserve these resources while expanding.
Preserve - eg integrate legacy system within newer system
Protect - security measures