Khamelios is Java application built on Eclipse Rich Client Platform (RCP) v4.x technologies. It brings all advantages of this platform such as:
- multiplatform support (Windows, Unix, Linux, Mac, etc), both commercial and open source platforms
- component approach used when building the product when an application is assembled from required and existing modules (if some modules don't exist then they can be developed by third software development companies or by own developers)
- high performance because the application is based on the native components built specially for targeted operation system (another word, the application components aren't drawn on the graphic canvas in runtime as in the standard Java resulting to loss in performance but they are created as native libraries for the respective OS)
Khamelios software consists of separate levels where each of them includes single components which can be assembled on principle of mosaic. Here, we can see 3 levels.
At the lowest level, there are base Eclipse RCP components:
- OSGi is a realization of OSGi specification which enables a development model where applications are (dynamically) composed of many different (reusable) components (OSGi Alliance).
- Equinox is an implementation of the OSGi core framework specification, a set of bundles that implement various optional OSGi services and other infrastructure for running OSGi-based systems.
- EMF Core is central part of Eclipse Modeling Framework which is designed for creation of Java objects in runtime based on the models and specifications defined in XMI format.
- UI Core is presented by sets of graphic components from SWT and JFace libraries which are compatible with a lot of operation systems.
- Application Model is an RCP application model which defines the graphic objects displayed in runtime and how they are been positioning on a screen. The application model of Khamelios product is dynamic which is built in accordance to the description from active GUI theme created by user before the software is started.
- Rendering Engine is a component of Khamelios product which provides linking an application model to the presentation view of GUI controls. By default, Khamelios uses SWT controls but if required the application can display the GUI controls in other formats without any changes into the application core.
- Dependency Injection is a mechanism of linking objects and services in runtime based on Java Specification Request 330 (JSR330).
- Services is a set of services delivered together with the parent Eclipse platform.
- Workbench is an agile way to organize local application workspace. It adds and fixes single GUI controls when the application is started. Additionally, workspace is a container for saving temporary data which can be read or written by an RCP application.
Next level is assembled from specific Khamelios components providing the main product functionality:
- Khamelios Core is base component of Khamelios which defines specific elements of the product based on UI Core. Khamelios Core manages by building GUI components in runtime, provides the rules for GUI theme description and activation of a theme, additional configuring the application, interaction with other components of application.
- Devices Management defines a set of supported devices and their communication protocols.
- Profile Management is responsible for loading a specific profile which contains additional parameters managed by server in case of client-server deployment. For example, if ATM is built based on Khamelios then it enables distributing profiles with additional configuration from server to a group of ATMs, define remotely presentation and behavior of the software clients by request.
- Server Mediator is an interface which defines all aspects of interaction between Khamelios and server in case of client-server deployment. Interaction is provided by creating and sending XML documents from client to server.
- Service Menu is an additional capability which is available for administrators only. It enables setup additional application parameters with existing GUI forms.
- Logger is functionality which provides managing the logs and saving the events history in runtime when Khamelios software operates.
At the last third level, additional custom components can be developed by other software development companies or single developers. These components are able give an unbelievable specifics to Khamelios tool.
Khamelios in the base variant is presented by first two levels. We can develop the components for third level by your request as well as it can be done by others.