Licas Version 4.5
Gui Version 4.3
Problem Solver Version 2.0
The licas (lightweight (Internet-based) communication for autonomic
services) system is an open source framework for building
service-based networks, similar to what you would do on a Cloud or SOA
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.
The default communication
protocol inside of licas itself is an XML-RPC mechanism, but dynamic
invocation of external Web Services is also possible. The main server
package is now completely J2ME compatible, meaning that porting to a
mobile device should be possible. The architecture
and adaptive capabilities through dynamic linking add something new
that is not available in other similar systems.
The system can be used in a number of different ways. The download
packages include a stand-alone server, an All-in-One GUI with a
built-in server and a separate test problem solver that can be run
from a batch file. The system is also peer-to-peer, with the client
GUI also acting as a server that can be invoked.
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.
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.
The default solution type is genetic algorithms, with the idea of matching services with similar information content.
3. All-in-One GUI
The download package does provide its own GUI application.
This is not open source, but it is very flexible and can be used as
part of your own program or tests. 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 as well. The problem solver is more for
the testing of autonomous or AI behaviours, but it is easier to package all of the
functionality into the one program. 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.
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. 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 all of the communication can be remote, or from different
computers. A more detailed description of the architecture can be
found on the Overview
Figure 1. Schematic of different module configurations.
The key features are therefore:
- The capability to build distributed networks of autonomic
- Permanent and dynamic linking mechanisms to construct the network
- Autonomic self-organisation through a dynamic linking mechanism.
- Local or remote communication capabilities, including an XML-RPC message passing
mechanism, Web Services (SOAP or RESTful), or HTTP request.
- Java-based or Web-based clients.
- Service wrapper classes allowing legacy code to be loaded.
- Framework for adding an Autonomic Manager and policy scripts to a service.
- Framework for adding metadata, with a default query engine.
- Compatibility with the Java mobile (J2ME) environment.
- Examples of instant messenger and file sharing applications.
- Problem-solving framework, allowing for the addition of more complex heuristic search processes.
- All-in-one GUI for viewing or testing your networks. Not open source,
but provided free to help with development.
The server has a limited Browser-based interface for returning HTML or other, directly
from an HTTP address. This can then be converted and read, as a
standard web server would provide. Currently, only HTML and image
in the HTML file, but a lightweight web server is possible.
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 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 RESTful-style messages from web
pages, where an example is provided as part of the download package.
The licas software package is compatible with the Java 2 Micro
Edition (J2ME) CDC platform. This is becomming out of date, but it is
simply a subset of Java and therefore, the system is compatible with
most versions of Java as well. It should work with Java 1.4 upwards.
The All-in-One GUI is only J2SE 1.6+ compatible however and is more useful
as part of an internet or cloud-based system.
A more lightweight server app has been written, to accommodate a system with
possibly a mobile client. It is written in JavaFX and can be downloaded from the
See also the
version history or bug fixes pages for details about
the current or future changes.
package contains the server and problem solving jar files.The
All-in-One GUI also contains these and is downloadable separately from
. The source code and the documentation that exaplains the package
are again separate downloads from the sourceforge site. Download each package and
unzip into your working directory. The user guide will tell you how to
use the code and start programming with it. Please check the
page for version updates and other changes. You should always unzip
into a clean directory, although the code structure should not change
from now on.
The software is released under the GPL licence, but a licence would be
made available for full commercial rights. Note that this
relates to the open source server / services and problem solving code only. The GUI is not available
as open source
and is provided as a separate application, or development / test tool only.
Author: Kieran Greer,
Distributed Computing Systems
For any queries about the software package, please contact the project