Architectural Design
Tom Kelliher, CS 319
Nov. 4, 1998
Presentation Friday?
- System model design examples. Conclusions?
- Architectural design.
- System structuring: repository, client-server, abstract machine
models.
Read Chapter 13.
- Compare/contrast software, building architects. Where does this
break down?
- Architecture is the framework upon which system design is built. Get
this framework wrong and problems result.
Architectural design activities:
- System structuring: Decompose the system into independent sub-systems
and define the relationships between the sub-systems.
- Control modeling: Establish a general model between parts of the
system. (``Parts'' are not necessarily the sub-systems.)
- Modular decomposition: Decompose sub-systems into modules. Modules
are generally not independent.
Building architecture is typically homogeneous, whereas software
architecture is not.
- Block diagrams are used to informally indicate the structure of a
system. Allows many different people to understand.
- Windows NT architecture:
- Three models: repository, client-server, abstract machine (layering).
- Sub-systems must exchange information. Two ways to do this:
- Central, shared database (the repository).
- Each sub-system maintains its own data, passing messages with
other sub-systems.
- Most Applicable in situations where data is generated by one
sub-system and used by others.
- Example: A CASE toolset.
- Advantages:
- Efficient for maintaining large stores of data.
- No explicit communication between sub-systems --- promotes
independence of sub-systems.
- Maintenance activities (backup, etc.) are centralized.
- The sharing model is explicit in the repository schema, making
integration of new tools simple.
- Disadvantages:
- Sub-systems must compromise on the repository data storage
scheme.
- Repository evolution may be difficult, due to the large volume of
data.
- Every sub-system is stuck with the same repository services
policy. Suppose a sub-system needs a different security model?
- A distributed repository may be difficult to design.
- A distributed model, showing how applications and data interact
across a network.
- Client-Server components:
- A set of standalone servers which offer services to other
sub-systems.
- Clients which call upon the services of the servers. Usually
several instances of the clients.
- A communication network (real or virtual).
- Example --- DNS:
- Advantages:
- Due to distributed nature, scales well: integrate new servers,
upgrade servers.
- No shared data model, so servers can optimize storage layout.
- Disadvantages:
- Performance problems when large amounts of data are exchanged.
- Clients and servers may have to be changed to take advantage of
new servers.
- No shared data model, so integrating new servers may be difficult.
- Servers must provide own maintenance tools.
- Discovering services and names is a problem. Migration,
replication and synchronization.
- Layered model, modeling interfaces between sub-systems.
- Layers provide services, from raw to abstract. Each layer defines an
abstract machine
- Example: p-code in Pascal systems.
- Example --- TCP/IP:
- Advantages:
- Supports incremental development.
- Changeable, portable.
- Disadvantages:
- Devising a workable structure can be difficult. May not be
possible to maintain strict layering, reducing changeability.
- Poor performance, due to layer call overhead.
Thomas P. Kelliher
Wed Nov 4 10:11:23 EST 1998
Tom Kelliher