Quick Setup Guide

1. Dynamic Edition

Dynamic Edition can use J2EE Servlet container at the server side for additional features, such as compiling and running applications from command shell. Operating System itself can be deployed to either server side or client side. We recommend deploying the kernel to client side if it is going to be with an open system such as a web site. In Dynamic Edition, the server side application deployment should only be used in local area or private networks. it is also possible to use Web Sockets with Applications to communicate with the system or other applications running at the server. NeuroKernel Dynamic edition is built on Servlet 3.0 specification. If older versions required, we can provide a custom build. NeuroKernel API is initially built for Java 6.0 for maximum compatibility with legacy systems.

1.1 RDBMS Database

Dynamic edition requires an RDBMS database to be installed. NeuroKernel installation package will come with an open source option for you to install. The JDBC library for the database must be put to the shared library folder of the servlet container.

1.2 Configure Servlet Container

In context.xml file, enter the following resource. The values with brackets are to be replaced by your database configuration. This configuration uses MySQL jdbc driver. You should replace the driver class with the one supplied with your choice of database.

  <Resource name="jdbc/neurokernel"
            auth="Container"
            type="javax.sql.DataSource"
            username="[user]"
            password="[password]"
            driverClassName="com.mysql.jdbc.Driver"
            url="jdbc:mysql:[//localhost:database_port/your_database]"
            maxActive="30"
            maxIdle="4"/>

The configuration options, such as maxActive, is configurable for your use case. Please see the servlet engine configuration manual for more options and details regarding the Resource tag entry. In addition, it may be required to set and configure some more adapters in order to communicate with another web server such as Apache Web Server.

1.3 Optional Libraries

There are some optional libraries to use with your servlet container. For instance, Atmosphere project library is supported which handles web sockets transparently. Although JSR 356 based web sockets are supported out of the box, it may be more convenient for some to use the extensive features of the Atmosphere project. Mail related libraries are also optional namely mail.jar and activation.jar.

1.4 Installing NeuroKernel

Installation of NeuroKernel on a servlet container is pretty straight forward. Decompress the NeuroKernel archive or deploy it as WAR file if possible. Do not install NeuroKernel on the ROOT path. It is important to choose another path so that the sessions do not get mixed up with other web application contexts. When first run from the designated web application, kernel starts in setup mode. It will guide you through the installation of NeuroKernel. If you already set up NeuroKernel on another machine, setup program will automatically switch to normal kernel mode. This is done by controlling the database tables and the license entries. The setup application may be initiated again if database is deleted.

1.4.1 Display Manager

It possible to write a custom display manager by extending NDisplayManager class. It must be registered in place of dspmgr application in the application registry. The guide to writing a display manager can be found in Writing Display Manager if needed. Display manager is also used for remote login. This means that when someone wants to remote login to your server from a work station, your login screen served by your custom display manager will be executed and displayed to the remote user.

2. Static Edition

Static edition comes in the package with all deployment licenses. All it requires a web server to be deployed, it does not require a specific server side stack. Entire system runs at the client side. A custom service can be registered with the system for authentication, and getting user preferences. Static edition lacks server side features such as compiling and running applications from a command shell, or opening a VT terminal.

2.1 Configure Web Server

Configuring a web server does not require any special treatment to deploy NeuroKernel. Its configuration is all up to the developer's preferences. In a near future, NeuroKernel Research will support multiple platforms for static deployment in separate bundles.

2.2 Installing NeuroKernel

It is as easy as unarchiving the NeuroKernel to a web accessible folder, and edit the configuration file. Multi-user deployments in Static Edition, requires a RDBMS setup, services to access RDBMS and a custom display manager. NeuroKernel offers a display manager, but server side services must be supplied with exact specifications. The specification can be accessed from the Writing Display Manager manual. On the other side, developer is free to implement a custom display manager that is a fit for the use case.

2.2.1 Configuration Data

Static edition does not require an RDBMS database to deploy. It is totally up to the developer to decide how to serve user data to the client. It may well be from an RDBMS or a configuration file created on the fly by a service. Configuration data may be bundled with a custom display manager as well. The XML DTD of the configuration data accepted by NeuroKernel is available here.

2.2.2 Display Manager

Other than compiling it only to JavaScript or WebAssembly, handling a display manager for Static edition deployment is as same as Dynamic edition. Please see the Dynamic edition section of this document for detailed description.