Calitko Architecture Overview

The architecture of Calitko is designed in conformance to the Calitko Architectural Aims and Design Principles. This overview presents the packages at the highest abstraction level of Calitko's architecture. Click on a package to switch to its (lower) abstraction level.

inline_dotgraph_1

The above diagram should be self-explanatory but let's comment it anyway. The middle layer contains the packages Services and Resources. Resources contains sub-packages, which provide the definitions of some basic resource types. These could be different kind of files, processors, persons. Services contains sub-packages that operate on/with or manage resources. Some of these services may be able to manage or acquire network resources. That's where the Networks package comes into play.

Note: Resources and Services are not set apart yet! Some related code can be found in Networks!

The package Protocols contains implementations of multiple P2P and client-server protocols for the corresponding P2P networks and additionally provides a protocol abstraction layer (actually its top layer). This layer enables the services to neglect the details of specific protocols and to uniformly work with the resources available via these protocols.

Finally, the top layer, the UIs, contains the user interfaces to Services. It would even be possible to choose among multiple interfaces for each service.

Note: UIs is not set apart yet. We have some related code in the directory ./Gui though!