First of all, C2 style is the most commonly used software architecture style. (For a C2-style architecture diagram)
C2 is a component-and message-based architectural style that can be used to create flexible, scalable software systems. A C2 architecture can be seen as a hierarchical network of many components connected by a certain set of rules: the components and connectors in the system have a "top" and a "bottom"; a component's top or bottom can be connected to the bottom or top of a connector, and for a connector, There is no limit to the number of components or connections connected to it, but the components and components cannot be directly connected.
The C2 style has the following characteristics: (1) The components in the system can realize the application requirements, and can encapsulate the functions of any complexity, and (2) the communication between all the components is realized by the asynchronous message exchange mechanism which is mediated by the connecting parts; (3) The components are relatively independent and the components are less dependent. Some artifacts in the system do not exist within the same address space, or some artifacts share a dependency hypothesis such as a particular control thread
The most important feature of the C2 architecture style is the "bottom-level independence", which has a significant effect on the substitution and reusability of components, and the C2 architecture introduces the concept of "event transformation", where the domain interpreter transforms the request of the component into a specific form that the receiver can receive. It also translates the notification into a form that the component can understand.
We are designed to be a teaching name software, which is divided into 3 parties, students, teachers, and educational administration. Each party can communicate with each other, for example, students can leave a message to the teacher, the Dean can give students notice and so on. Each party has a different function. According to our design, the C2 architecture style does not apply to our software. The C2 architectural style can be summed up as: a network of parallel components bound together by connectors. The system must have components and fittings. For our system, the components and connectors are not OK. I think C2 is more suitable for that kind of division of software, each component has a specific division of labor. And we designed the system between 3 parties can communicate with each other, if we put teachers, students, teaching and education package into 3 components in accordance with the style of the C2, the 3 can not directly connect between, must pass through the connection pieces, so how many interactive features to design how many connectors, resulting in system complexity improvement. So I think our software is not very suitable for C2 style.
Software Architecture C2 Style