Architectures

Architecture of a distributed system is mostly defined by the software components that constitute the system. Architecture might be developed in a certain style, that is referred as architectural style. Such a style is formulated in terms of components, the way the components are connected to each other, the data exchanged between components, and finally how these elements are jointly configured into a system.

A component is a modular unit with well-defined required and provided interfaces that is replaceable within its environment.

A connector is generally described as a mechanism that mediates communication, coordination, or cooperation among components.

There are several style have by now been identified, of which the most important ones for distributed systems are:

Layered architecture

The basic idea for the layered style is that components are organized in a layered fashion where a component at layer $L_j$ can make a downcall to a component at a lower-level layer $L_i$ $(i <j)$ and generally expects a response. In exceptional cases the upcall might be made to a higher-level component.

Untitled

Application Layering

A large number of user applications are developed in a layered architectural style having the following levels:

Object-based and Service-oriented Architectures