Licas Version 3.4.4 Now Available
Admin Gui Version 2.3 Now Available
Introduction
Licas stands for lightweight (Internet-based) communication for autonomic services.
It is a software package written in the Java programming language which allows a
user to build distributed service-based networks that can also self-organise/self-optimise.
Functionality is provided to allow for XML-RPC based message passing and dynamic
linking between services. The framework is very lightweight and so may be used in
mobile or sensor-based environments. The architecture and adaptive capabilities through
dynamic linking add something new to what other similar systems provide. 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 (stigmergy) linking mechanism.
- Password protection of the services, providing some level of security.
- Remote communication capabilities through an XML-RPC message passing mechanism.
- Remote object loading through a Java UrlClassLoader.
- Service wrapper classes allowing legacy code to be loaded.
- Framework for adding metadata and negotiation through Service Level Agreements.
- Web Service invocation through SOAP and WSDL document parsing (J2SE only).
- Compatability with the Java mobile (J2ME) environment.
The jar file is relatively small in size. It is currently only about 550k and is
unlikely to go beyond 1M. So the package would be suitable for use on smaller devices
as well. 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.
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 useful.
Latest Version
The current version is Version 3.xx. Version 2 solved some of the design problems
of Version 1 and also fixed a number of bugs that would have caused problems. Some
of these are listed on the version updates page. The current version however is more
stable and could be used as is, with future updates unlikely to cause as many changes
to existing code interfaces as happened between versions 1 and 2.
There is now also an admin gui that may be of help for creating or testing networks
built with licas. It is also included in the package with related documentation.
Please try it out and send me relevant feedback on what you think.
Getting Started
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.
- Some packages or classes may have moved from one release to another, so you should
always unzip into a clean directory.
Mobile Environment
Since version 3.0, the licas software package has been re-written to make it compatible
with the Java 2 Micro Edition (J2ME) platform. It has been re-written to run under
the Connected Device Configuration platform (CDC version 1.0) packages. This has
been tested using the NetBeans IDE, which automatically creates a mobile application
using CDC 1.0 and the AGUI 1.0 package. The functionality of the software is essentially
the same as before, except for the parsing. Details of this can be found in the documentation.
The original J2SE-based version is also provided and can run on any PC or laptop.
However, only one version of the software will be maintained, which has to be compatible
with the mobile environment. This means that the current version and any future versions
will be restricted by the functionality of this platform.
XML-RPC or SOAP
The system uses a default XML-RPC mechansim for communication. 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 now also the possibility for making Web Service calls. This cannot be done
directly on the licas server itself, but a service or a client can call any third-party
Web Service. The calling mechanism is not based on static stub classes, but is built
dynamically from parsed wsdl documents. The current J2ME jars do not provide a good
environment in which to create dynamic SOAP messages and there have been problems
integrating third-party packages. Thus the Web Service functionality is currently
only available on the J2SE platform. This is still work in progress, but it should
provide enough functionality to make relatively simple Web Service calls.
The J2ME version will run as normal and all other functionality will work, but it
cannot make Web Service calls at the moment.
Contact Details
For any queries about the software package, please contact the project administrator,
email: admin