Overall architecture and components
Mantychore is implemented with the OSGi specification and works with Fuse Service Mix 4.3. Fuse works as a Service platform which implements the OSGi specification. It provides a set of libraries and tools to allow easier development of Fuse components.
The figure show a typical architecture
The picture shows how a Mantychore user connect to the Server and how Mantychore connects with its devices.
The Mantychore software is multiplatform. To set up a Mantychore architecture, you need:
- A Computer which it is going to act as a Server. It will have Fuse Service Mix installed along with the the Mantychore components.
- Configure SSH to enable access to the routers (see compatible devices).
There are two types of Mantychore client:
- GUI Client. A desktop program has implemented with RCP.
- Web site. With Ajax and RAP, it is implemented a site which simulates the GUI client
When a new router is added in the Mantychore Server, it is added as a resource which its properties and capabilities (this follows the IaaS paradigm). In this picture you can see how a Mantychore resource manages its resources:
For the last version of Mantychore, the modules and components which form Mantychore are:
- Resource. This is a representation of a router. It representes a a set of capabilities or features that are available.
- Capabilities. This is a router feature. It includes a set of actions related with this feature. For instance, IP operations (interface configuration, static route configuration) are represented in the IP Capability.
- ActionSet. This component is a set of operations which a router understands and carry out. With these operations, using named commands, an action can provide a complete configuration for a topic. For example, the action of configureing an IPv4 address in an interface.
- CommandSet. this is a representation of a command which a model router can understand. It implementes an operation that can be sent through the transport layer (using SSH for example).
- QueueManager, this is a queue implementation for the above actions.
- Protocol. This module is the implementation of a protocol which it is used to connect with a device. The ProtocolSessionManager calls these components to manage protocols.
- ProtocolSessionManager. This manages the available Protocol components used by actions. It includes a set of protocols which will be available to each resource allowing it to connect to a device.
Check meaning is preserved here
- EventManager. This is responsible for receiving and publishing events and notifications.
- Commons. Common classes which other components will be able to use.