Licas is a software package written in the Java programming language that 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 architecture and adaptive capabilities add something new to what other similar systems provide and the framework is also suitable for a 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 GUI is only J2SE compatible. 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 now also the possibility for making Web Service calls. The licas server itself is not a Web Service, but a service acting as a client on it 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. It is slightly different depending on which platform you are running (J2SE or J2ME), but the documentation describes how this is done.
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.
Here are some key features of "Licas":
- 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.
- Remote object loading through a Java UrlClassLoader.
- Service wrapper classes allowing legacy code to be loaded.
- Framework for adding an Autonomic Manager to a service.
- Framework for adding metadata, and negotiation through Service Level Agreements.
- Dynamic Web Service invocation through WSDL document parsing.
- Compatibility with the Java mobile (J2ME) environment.
- Examples of instant messenger and file sharing services.
- Problem-solving framework, allowing for service organisation through a more complex heuristic search process.
- All-in-one GUI for viewing or testing your networks.
- Link class has been made abstract. Now three different derived versions - see the online javadocs. The additional options, such as add negative or individual updates not tested recently and so it is not clear how well they work. This would need to be checked through testing. Basic operations such as memory management should work as before.
- Problem solver made slightly more flexible. The clustering process can now be changed to your own classes (one public class) through the solver factory - in the same way that the other classes can be changed. So the default clustering is not definitive and should be changed for your own purposes. The documentation explains how to do this.
- Some of the mathematical evaluation operator definitions used in the metrics also changed. Two of the more experimental evaluation functions have been removed, so hopefully the existing ones are now more correct.
- The default problem solver results only use solution names. The default classes now keep the duplic...