Licas Version 3.35
Gui Version 3.19
Problem Solver Version 1.3
Introduction
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 default communication
protocol inside of licas itself is an XML-RPC mechanism, but dynamic
invocation of external Web Services is also possible. The architecture
and adaptive capabilities through dynamic linking add something new
that is not available in other similar systems.
The download
packages also come with an all-in-one GUI that can be used either to
test systems or as a practical platform on which to run your own real
system. The system is also peer-to-peer, with the client GUI also
acting as a server that can be invoked. Licas can therefore be used in
one of two different ways. Because of resource constraints, these have
been packaged together in the one GUI application. The key features are as follows:
- The capability to build distributed networks of autonomic service-based components.
- Permanent and dynamic linking mechanisms to construct the network architecture.
- Autonomic self-organisation through a dynamic linking mechanism.
- Password protection of the services, providing some level of security.
- Remote communication capabilities through an XML-RPC message passing mechanism.
- Java-based or Web-based clients.
- Possibilities for creating services through remote jar file
communications.
- 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.
- Dynamic Web Service invocation through WSDL document parsing.
- Compatibility with the Java mobile (J2ME) environment.
- Examples of instant messenger and file sharing applications.
- Problem-solving framework, allowing for service organisation through
a more complex heuristic search process.
- All-in-One GUI for viewing or testing your networks.
Autonomous behaviour can be realised through self-organisation where
related services, or network nodes, can build dynamic links between
each other, reflecting how they have been used together. The system
also allows for permanent links that represent the static network
structure. The services are password protected and there is a framework
in place to implement service level agreements. The
overview page gives more details on the
general architecture.
Latest Version
The current version is relatively stable
and comes with an admin/test gui that can be used to test networks
built with the server platform.
The user guide included with the download package provides descriptions of the key
packages and classes, and also some coding tips on how to get started.
There are also some coding examples on the
Knowledge Base page, which also
describes how certain operations work. If you find the software package useful, wish to contribute, or are interested in
any of the related work, then please contact the project administrator through the
sourceforge system.
Contact details are
also given at the end of this page. Resources for the project are
limited, in particular with regard to testing. So please report any
bugs or other information that you think might be important.
Mobile Environment
The licas software package is compatible with the Java 2 Micro Edition (J2ME) platform. The
server code can be compiled to run under the latest CDC platform from SUN.
The server is also compiled under J2SE and can run on any PC or laptop.
However, any version that is now released will be compatible with the mobile environment.
This means that the current version and any future versions will be
restricted by the functionality of that platform.
The All-in-One GUI is only J2SE compatible, but the server also
accepts HTTP POST requests with RESTful-style messages. You can
therefore write an HTML web page and invoke the server from it.
The download package includes an example web page and javascript code
for testing a server with. See the
version history or bug fixes pages for details about
the current or future changes.
Web Services Invocation
The system uses a default XML-RPC message passing mechanism. To make
a call on a service, a Java object is parsed in the order
'Object-XML-String', which is then sent to the server and parsed back
from 'String-XML-Object', when the appropriate method on the
appropriate service can be called. There is also the possibility
for making Web Service calls. 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. There are also
classes to allow a service acting as a client, to call any
third-party Web Service. This calling mechanism is not based on static
stub classes, but is built dynamically from parsed WSDL documents. It
is slightly different depending on which platform you are running (J2SE
or J2ME), but the documentation describes how this is done.
Problem Solving
The system now has a problem solving version as a new separate
package, written on-top of the main licas system. It is innovative in
the sense that you can integrate it with a network and organise the
services on the network based on the results of the heuristic problem
solving search. Default solution type is genetic algorithms, with the
idea of matching services with similar information content. This has
been integrated into the GUI as well.
Download
The
download
package contains the jar files, the source code and the
documentation required to use the package. Download the package and
unzip into your working directory. The user guide will tell you how to
use the package and start programming with it. Please check the
version history
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. If you wish to obtain
unrestricted rights, please read the licence details
here.
Contact Details
Author: Kieran Greer,
Distributed Computing Systems.
For any queries about the software package, please contact the project
administrator.
Email:
admin.