0
2.1kviews
C2 Style Architecture

Mumbai University > Computer Engineering > Sem 7 > Soft Computing

Marks: 10M

Year: Dec 2015

1 Answer
0
17views

An indirect invocation style in which independent components communicate exclusively through message routing connectors. Strict rules on connections between components and connectors induce layering.

Components:

Independent, potentially concurrent message generators and/or consumers

Connectors:

Message routers that may filter, translate, and broadcast messages of two kinds: notifications and requests.

Data Elements:

Messages – data sent as first-class entities over the connectors. Notification messages announce changes of state. Request messages request performance of an action.

Topology:

Layers of components and connectors, with a defined “top” and “bottom”, wherein notifications flow downwards and requests upwards

enter image description here

  • C2 is an asynchronous, event-based architectural style, which promotes reuse, dynamism, and flexibility through limited visibility. Components and connectors have a defined top and bottom that cause them to be arranged in layers.
  • Components are aware of elements that reside above them but not below.
  • Hence, they may send requests, events that travel up an architecture, with an expectation that they will be fulfilled by some set of components above.
  • Components may also send out notifications, messages that travel down an architecture, without any expectation of whether they will be handled.
  • A component within this architecture has limited visibility or “substrate independence”; components are assembled in a layered manner, and a component is entirely unknowledgeable of components that exist “beneath” it.
  • This independence has obvious possibilities for promoting the interchangeability and reuse of components across architectures.
  • Components request services from components “above“ it via message passing, and are not in possession of knowledge of components “below” it (in this architecture, messages are passed “up”, meaning the interface layer is considered to be closer to the “bottom” and the “application” layer is considered to be closer to the top.Request flow upwards and message or notifications flow downwards).
  • The C2 style is characterized as an association of components linked by communication forwarders known as connectors.

Benefits

The benefits of this architectural style according to the Institute for Software Research include:

Separation of Concerns

  • The concept that architectural design should be separate from its implementation, arranging and decomposing software into more manageable and understandable pieces.
  • Open Architectures that encourage a modular strategy where there is a clear separation of module design from the implementation mechanisms through which that design materializes.

Scalability

  • Understanding operational constraints and the support of multiple levels of component interface granularity.

Extensibility

  • The substitution of components sharing the same interface, limiting component interdependence.

Flexibility

  • The modification of systems architecture by incorporating additional components or reconfiguring existing components prior to or during execution.

Reliability

  • Leveraging existing components that have been carefully designed, implemented, and verified.
  • Cost Reduction, the reduction in the development effort through component reuse and architectural guidance.

Understandability

  • Increasing the comprehensibility of complex systems through the use of high level models.

C2 is well suited for use in a distributed system. As there is no assumption of shared memory or address space, which allows composition of these components in a highly distributed, heterogeneous environment.

  • Components interact via connectors, the components themselves do not need to reside on the same physical machine or network.
  • Services may be employed using a complex chain of mediators and multiple distributed servers, distributing the processes.
  • The C2 style provides for the development of distributed, dynamic applications by focusing on the structured handling of connectors to achieve layer independence.
Please log in to add an answer.