c2.fw
Applications developed in the C2 architectural style are subject to constraints beyond those imposed by object-oriented programming. While object-oriented programming languages provide a level of services ideal for developing object-oriented programs, additional services are useful for developing applications in a particular architectural style like C2. For example, whereas OO languages provide direct support for procedure calls, they do not provide primitives for sending messages among components.
To assist developers in developing C2-style applications, we have developed an object-oriented framework in Java that provides C2-oriented elements and services. These include:
- Base classes for components, connectors, and links (welds).
- Base classes for messages and several reusable generic message types.
- A plugin-style threading policy interface, with several reusable threading policies provided.
- A plugin-style message-queuing policy interface, with several reusable message-queueing policies provided.
- Several reusable connectors provided, including bus connectors and distributed connectors.
- Support for generic event-based architectures as well as "legacy C2" (top+bottom interfaces only) event-based architectures.
- Automatic translation from distributed procedure-call interfaces to event-based communication and back.
Currently, c2.fw is distributed as an integrated part of the ArchStudio 3 download. However, at some future point it will be productized and have its own website. For more information about c2.fw, send email to Eric Dashofy.