Licas Version 7.26
Gui Version 5.34
Problem Solver Version 3.17.1

Introduction

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 or Microservice platform and is also IoT friendly. 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 system is now a lightweight message bus. In additon to this, the framework provides an Autonomic Manager and query engine, a set of AI heuristics and also some text-processing algorithms. The AI heuristics are slightly different, in that they can be used locally or remotely in a generic setting, where the data type can be determined and processed at runtime. The lightweight architecture and adaptive capabilities through AI and text processing therefore add something new that is not available in other systems. The free All-in-One GUI provides a basic operating or test environment and a suite of business services.


The default communication protocol inside of licas itself is an XML-RPC mechanism, but there is also a REST interface for mobile communications, or if that is preferred. Web Services invocation and the HTTP protocol are also accommodated. Synchronous or Asynchronous message calls can be made, including the conversion of a synchronous call into an asynchronous one. The jar file sizes and memory footprint are quite small, with the core server package unlikely to exceed 2M. Especially if you don't want to be bothered with Containers or other Enterprise technology, this system might be worth considering.


Figure 1 gives a general view of the different module combinations. 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 also be local, when direct object references are passed. A more detailed description of the architecture can be found on the Overview page.






Figure 1. Schematic of different module configurations.




Download

The downloads are available from sourceforge that include the core server and the full problem-solver package. The source code for the base server, problem-solver and services packages are provided, a well as a number of user guides. You do not need to read all of the documentation 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.



Licence

The software is released under the GPL licence. 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 as 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. The services can be passive and wait to be invoked, or they can run autonomous ‘behaviours’ that have their own internal control algorithms. Each autonomous service is wrapped by an Autonomic Manager, but the default implementation only collects some server metrics. Because further autonomic control is optional and service-specific, it is not part of the framework.


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. Because the system is intended to be a platform for building your own network, you can extend it by including your own jar files, and then add your own services as well.


1.2 Problem Solver

A problem solver package provides a number of text processing and clustering algorithms that might be used to organise the network services, based on some heuristic result.


1.3 All-in-One GUI

The All-in-One GUI contains these default packages and is downloadable separately from here. This is not open source, but it offers a flexible environment from which to run your system. 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 are included with the GUI and so it can be used - either as an admin tool for running application-specific services, or as a test platform for running (autonomous) service-based tests.


1.4 Module Stack

Figure 2 shows how the individual jar files can be used or combined:





Figure 2. Schematic of jar files stack.



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. 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 and are free, 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 Features

The key features are therefore:
  1. The capability to build distributed networks of (autonomic) service-based components.
  2. Java-based or Web-based clients.
  3. Local or remote communications, including XML-RPC, REST, SOAP or HTTP request.
  4. Message Bus communication system, with synchronous or asynchronous calls.
  5. All-in-one GUI for viewing or testing your networks.
  6. A set of business applications comes free with the GUI.
  7. Framework for adding an Autonomic Manager and policy scripts to a service.
  8. Framework for adding metadata, with default query and script execution engines.
  9. Permanent and dynamic linking mechanisms, to construct network architectures.
  10. Service wrapper classes allowing legacy code to be loaded.
  11. Problem-solving framework, allowing for the addition of more complex heuristic search processes.
  12. Java 1.8+ and Android compatible.




2. Other Details

2.1 Java Version

The software was originally written for Java Mobile but is now complied as Java 8. The server code is also Android-compatible. The All-in-One GUI uses some JavaFX components and is more useful as a desktop environment.


2.2 Mobile Environment

The server code is fully compatible with Android and the DCS web site provides a link to a mobile app. It is also possible to use the other HTML communications, but they are not integrated into the framework. The framework has some useful features to help with mobile development. These include:

2.3 Web Based

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 files can be displayed, with CSS or Javascript needing to be embedded in the HTML file, but a lightweight web server is possible.


2.4 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.


See also the version history or bug fixes pages for details about the current or future changes.




Contact Details

Author: Kieran Greer,
Distributed Computing Systems.
For any queries about the software package, please contact the project administrator.
Email: DCS email.




Awards

The awards are listed on the main DCS site.