Scipio – Version 0.2 – Design Paper – Draft 1
Scipio Framework is being fully redesigned and implemented to
include new features and improve the implementation of the
framework's codebase.
After a careful consideration and research a
number of new features have been added that closely resemble those of
Apache Avalon Framework's project.
Brief Design Overview
Scipio Framework version 0.2 will be based on a container-component idea. The programmers will write components which will be handled by a generic all-purpose container, which is a part of the Scipio Framework package. Containers could be instantiated and started by any Java Class with one or more containers being the bridge between the entry point of the program and other containers. Components in Scipio will adhere to a specified interface and will implement other interfaces if the developer chooses to utilize different services offered to the component by a container.
To simplify and reduce the development time, container classes will be provided as a part of Scipio Framework. Also the default container starter will be provided to the developers for testing purposes. It will be advised that developers create their own container starters for security and performance reasons.
There will be two generic types of containers. The Communication Container and Service Component Container. The Communication Container is responsible for starting the components that will handle socket related communications between clients and servers. On the other hand Service Component Containers will be responsible for handling components that apply business rules to the received data.
An example of a Communications Component would be a SocketManager Component responsible for managing incoming connections, reading the data from the incoming connections and passing the data to the appropriate Service Component.
To make it more clear and understandable, the framework will consist of two types of Components, each of which will have a separate Container to handle those components. This will allow for a clear breakdown of the framework, which in turn will lead to better scalability and performance.
Features Listing
The list below is not a complete list of features of this version of the Framework, however as the project moves on in the development stages these features will remain as a part of the framework. New features that will be added to the framework will not interfere with old ones.
Container to Component relationship.
Two types of components (Communication and Service Components)
The implementation of Containers for each component included as a part of the framework
Components adhere to a common specification
Each component will be allowed to implement interfaces to use additional services provided by the container.
Component to Component Interoperability (Components will have access to other componets through Container Context)
Containers manage multiple instances of components.
Container Contexts provide access to other services and components of the server.
Easy configuration using XML.
Allows for a limit on the number of Component instances per Container.
Each container only handles many instances of one Component class. (which would be one of the component types)
These are the main features of the Framework. New features will be added as the stages of the development progress into the future.