Licas Version 5.7
Gui Version 4.41
Problem Solver Version 2.19
Licas stands for 'lightweight (Internet-based) communication for autonomic services'. The system is an open source framework for building service-based networks, similar to what you would do on a SOA, Microservice or Cloud platform. The framework comes with a server for running the services on, mechanisms for adding services to the server, mechanisms for linking services with each other, and mechanisms for allowing the services to communicate with each other. The free All-in-One GUI provides a basic operating environment, with some default services. In additon to this, the jar builds provide a set of AI heuristics and also some text-processing algorithms, to allow you to intelliently process the information sources. The emphasis is on a generic framework, where you should be able to pass different data types through the system and have them processed in the same way.
The default communication protocol inside of licas itself is an XML-RPC mechanism, but the REST interface is now also fully integrated. Dynamic invocation of Web Services and AJAX interfacing is also possible. The lightweight architecture and adaptive capabilities through AI and text processing add something new that is not available in other systems. The jar file sizes and memory footprint are also quite small. 50 test services running in the GUI, used only up to 20M or so. But the CPU time can be costly, especially if the services communicate through the remote message-passing mechanism.
Figure 1 gives a general view of what the different modules or programs might look like. The All-in-One GUI has a server and problem solver built-in, or you can add these to your own program. You can also run a stand-alone server, or run a test from a batch file. Note that the communication can be local or remote. A more detailed description of the architecture can be found on the Overview page. You can download the code from sourceforge.net.
Figure 1. Schematic of different module configurations.
The downloads are available from sourceforge and include a stand-alone server or the full problem-solver package. The All-in-One GUI also contains these and is available from the DCS site. The source code for the base server, problem-solver and services packages are provided. The documentation is another separate download from the sourceforge site, but you do not need to read all of it to get started. The user guide will tell you how to use the framework and start programming with it. Please check the version history page for version updates and bug fixes.
The software is released under the GPL licence. Note that this relates to the open source server/services and problem solving code only. The All-in-One GUI is not available as open source and is provided as a separate application, for any use, but not part of a commercial package. The rest of the system is also free for non-commercial use. A licence could be made available for full commercial rights of other parts.
1. Licas Modules
Licas provides the framework for building and managing distributed services, which can run autonomous ‘behaviours’ that have their own internal control algorithms. Because it does not have to be used this way however, specific implementations have been left out of the base package. You can use it to run any type of service that does not have to include any intelligent behaviour. The services package includes an instant messenger and a peer-to-peer file server, for example.
1.1 Stand-Alone Server
A stand-alone server can be started from a batch file. It will run in a command box and can be invoked either locally or remotely. As the system is intended to be a platform on which to build service-based networks, you can extend or add the licas server to your own programs, to create more complex or application-specific systems.
1.2 Problem Solver
A problem solver package is also provided. You can integrate this with a network and organise the services on the network, based on the results of a heuristic problem solving search.
1.3 All-in-One GUI
The All-in-One GUI also contains these and is downloadable separately from here. This is not open source, but it is very flexible and can be used for different purposes. The GUI includes an interactive network graphic and the ability to configure and add new modules that would contain your own service classes. Both the server and the problem solver can be used through the GUI. The GUI can therefore be used, either as an admin tool for running a few application-specific services, or as a test platform for running (autonomous) service-based tests.
1.4 Module Stack
Figure 2 might be able to show how the individual jar files can be used, or combined:
Figure 2. Schematic of jar files stack.
- If you are just interested in the server, you can use the licas.jar file from the server folder.
- The problem-solving package sits on-top of the main licas package and adds some more AI-related features, to allow for more intelligent processing of information. It is also able to make use of all of the licas features and can be used for distributed or centralised problem-solving. In the download therefore, in the solver folder, you can use the licas_solver.jar file to access both the main licas server and also the problem-solving classes.
- The licas_services.jar file is also provided in the services folder, but it is more useful through the All-in-One GUI that already integrates all of the modules together.
If you go up the left-hand module stack therefore, you can create and run services on a SOA platform. If you go up the right-hand side, you can create and run AI tests. Using these jars in code still requires a fair amount of programming and so the All-in-One GUI provides access to these classes through its interfaces. It also allows you to plug-in or add your own classes, or jar files. While both the problem-solver and the server are open source, they both use other licas packages that provide more AI-related features, text processing and other features. These are included in the main jar builds, but are not open source. The ai_heuristic package is particularly relevant for the problem-solver and its Javadoc API is available from here. As the classes continually change, it would be advisable to check on what is available from time to time.
1.5 Key FeaturesThe key features are therefore:
- The capability to build distributed networks of (autonomic) service-based components.
- Java-based or Web-based clients.
- Local or remote communications, including XML-RPC, REST, SOAP or HTTP request.
- All-in-one GUI for viewing or testing your networks.
- A set of business applications comes free with the GUI.
- Framework for adding an Autonomic Manager and policy scripts to a service.
- Framework for adding metadata, with default query and script execution engines.
- Permanent and dynamic linking mechanisms, to construct network architectures.
- Service wrapper classes allowing legacy code to be loaded.
- Problem-solving framework, allowing for the addition of more complex heuristic search processes.
- Java 6 and Android compatible.
2. Other Details
2.1 Web Based
2.2 Web Services Invocation
The system uses a default XML-RPC message passing mechanism, but there is also the possibility for making Web Service calls. The open source package also contains a WSDL parser and classes for making dynamic SOAP web service calls. This is not based on static stub classes, but is built dynamically from parsed WSDL documents. The licas server is a Web server but not a web service. It can be invoked like one however, because it accepts String-based messages and can automatically parse them into the correct format for further processing. It can therefore accept HTTP POST requests, with REST-style messages from web pages, where an example is provided as part of the download package.
2.3 Mobile Environment
The licas software probably requires J2SE 1.5 now, to be fully compatible with all of the third-party jar files as well. As the server accepts REST-style messages, it can be communicated with through AJAX or simply HTTP requests from HTML web pages, making it mobile-compatible. The All-in-One GUI is J2SE 1.6 compatible however and is more useful as a desktop-based system.
A more lightweight server GUI has been written, to accommodate a mobile client. It is written in JavaFX and can be downloaded from the main web site. This is free for use in a commercial system, but is not as configurable.
The system is quite large with a lot of options and so if something does not work 100%, the quickest way to get it fixed is to send a bug or feature request. You can send it by email.
Contact DetailsAuthor: Kieran Greer, Distributed Computing Systems.
For any queries about the software package, please contact the project administrator.
Email: DCS email.
The awards are listed on the main DCS site.