Licas

Version 5.3

The licas (lightweight internet-based communication for autonomic services) system is an open source framework for building p2p service-based networks, similar to what you would do on a platform for SOA / Microservices / Cloud. 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 lightweight architecture and adaptive capabilities through AI and text processing add something new that is not available in other systems. The free All-in-One GUI provides a basic operating environment, with some default services.



Product Details

An overview of the system is provided on the sourceforge site, from where the open source version can be downloaded. The sourceforge download includes a stand-alone server and the additional packages (AI heuristics, text processing and problem solver). The system was originally written for Java mobile, but is now Java 6 and Android compatible.

The All-in-One GUI is available from the download section of this page and can be used both for applications or as a test platform. It provides a lot of functionality, including some security and admin features. The licas server features are listed on the sourceforge site, where the main GUI features are as follows:

  1. Configure and load networks of (autonomic) service-based components.
  2. View and interact with local or remote servers, link and display networks of servers.
  3. Local or remote communications.
  4. A set of business applications, including instant messaging, file server, web services, information resources.
  5. The GUI doubles for running either business or scientific applications.
  6. A distributed or a centralised problem-solving framework can be setup and run from the scientific panels, giving access to all of the AI algorithms and features.
  7. Add your own modules as jar files, to load in your own classes, for particular functions or types.
  8. While the server code is mobile compatible, the GUI runs on Java 8.
  9. See the sourceforge site for the main server features, including security and other.


User Guides

Listed here are some of the user guides for the system. Browsing through these will show you the main system features. Additional documents are included with the sourceforge download and give further details, particularly for programming with the system.

  • The main system's getting started guide will show you how to quickly install and run the software, or setup a server and start using it.
  • The services guide describes the free business and scientific applications in more detail.
  • The javadoc for the main source packages can be viewed online or downloaded from the sourceforge site.


Server Registry

I have added a registry page from where you can register your server and any services that you want to share.




Service Platform and All-in-One GUI

The system is a self-contained SOA platform that you can run your own services on and make them available through the server. The All-in-One GUI application provides all of the required functionality. It comes as a windows installer that installs all of the necessary components and folders, into 'DCS' and 'licasData' folders in your root user directory. Each service that you load can be managed through its own GUI interface. This allows you to use the GUI as an OS for running apps, for example, or as a test platform. The modules page describes how you can add your own modules to the system.

The default communication protocol inside of licas itself is an XML-RPC mechanism, but the REST interface is now also fully integrated. Dynamic invocation of Web Services and AJAX interfacing is also possible. The jar file sizes and memory footprint are also quite small. 50 test services running in the GUI, used only up to 20M or so. But the CPU time can be costly, especially if the services communicate through the remote message-passing mechanism.


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.


Scientific Platform

The server packages include a lot of AI algorithms and processes. Some of these help the system to run properly and some can be used to carry out more scientific types of testing. As this has resulted in essentially a second system, the scientific panels are hidden initially, but can be opened through the GUI menu. The scientific page gives details on on how the use the GUI and all of the server AI features to run scientific tests.


Gallery

The figure below shows the main GUI as the minimised service console, with some of the bespoke services and you can hover over a gallery square to see the services again.







Tutorial Videos

Some help videos may be found here:

Setup the GUI after installing [YouTube] Start a Service Running [YouTube]
Disable the Jar Factory [YouTube] Password Protect a Service [YouTube]
Register a Remote Server [YouTube] Service Address Books [YouTube]



Download

You can download the open source version from sourceforge.net. A windows installer for the free All-in-One GUI is available from here.



Licence

The All-in-One GUI is provided for any use, but only as is. You can load and run your own modules, at your own risk, but you cannot use the source code. The rest of the system is released under the GPL licence. This includes the open source server, services and problem solving code. To use for free, you then need to make your own program open source. A licence for full commercial rights would cost £500.00 per year, or £250.00 per year in low income countries. The modules page describes how easy it is to install a new module.



Mobile Client/Server Possibilities

As the code is Java 6 and Android compatible, some form of client-server or p2p App should be relatively easy. A server running on Android has already been demonstrated. There are ever increasing numbers of possibilities for writing a mobile client, including simply HTML web pages or HTML with a Java-Javascript bridge.

A simplified server was written using JavaFX that extended the core licas package. It was able to provide all of the communication mechanisms and basic functionality, but because of a lack of resources, it has been discontinued. The focus will be on the desktop and AI environments.