Main Page

NeuroKernel White Paper

Web development, as we know it has been very complex including hundreds of libraries with dozens of build tools. With all these exponentially increasing complexity, the web applications still do not feel like desktop applications. Developers want to securely put easy to develop and ready to use components in their applications. Companies are reluctant to move all of their proprietary algorithms to the client side and the cloud, but they also want to utilize the new features the ubiquitous browsers bring.

On the other hand, complexity at the server side has been phenomenal. Engineers need to be much more creative and careful than ever to connect things together. The segmentation created between client and server is getting bigger every day by moving more applications to the client side and introducing proprietary server side APIs. Global companies are struggling to keep things together with their geographically sparse development groups. System integration is increasingly more complex today than yesterday.

NeuroKernel Research’s direct answer to the difficulties outlined is a new platform called NeuroKernel Operating System. NeuroKernel has been developed to integrate entire web development into a single system. Kernel or Applications can run either inside the browser or at the server side, or even distribute themselves piece by piece all around the world and execute as one. NeuroKernel’ distributed architecture makes running multiple desktop like applications possible from geographically any location, even decentralized, inside a flawless browser based workstation. Applications are developed using an extensive Java based API (Application Programming Interface). Java is a statically typed programming language and has been used in very large projects by Enterprises and other institutions.

1. Pioneering Web Computing

NeuroKernel is a revolutionary new distributed operating system that lives on top of web technologies. It is designed to answer the problems of all market segments horizontal and vertical. By utilizing the standard technologies in web browsers, NeuroKernel creates a desktop quality workstation environment for the users that can execute multiple web applications as once. Its easy-to-deploy architecture allows massive scaling at server side, and it can off load heavy processing to the client side. From embedded devices to graphical software, from PaaS (Platform as a Service) and SaaS (Software as a Service) services to social networking, NeuroKernel meets all requirements to produce applications for any use. NeuroKernel is the system that makes the vision of the Web as a platform a reality.

Just like any other operating system, NeuroKernel has a kernel that controls task execution, resource authorization, security, IPC, windowing system etc. Each application is bootstrapped in a task container, which enables communication with kernel, sockets, pipes, and hooks to the web interfaces, RPC (Remote Procedure Call) etc. Its feature array is unmatched and unique in the market. More than one application can be executed on a web based powerful windowing system. Developers can write their own display manager, desktop manager, look and feel, custom components and more using NeuroKernel API.

Each application is given a top-level window by task executor if not a background task, which can open other windows and layout other controls. User interface controls are very high quality, and their look-and-feel is the same on all supported browsers. It is almost impossible to distinguish a NeuroKernel workstation running in Web browsers from any native desktop environment. NeuroKernel does not require any extra software or extension to run at the client side.

2. Portable & Powerful API

NeuroKernel/OS has a network transparent system protocol, which gives flexibility to execute applications from any medium and development platform. Protocol is extensible and is able to handle high performance 2D and 3D graphics as well as complex interface elements. It is even possible to run applications from a command shell. NeuroKernel API is released in Java, but because of its protocol-based architecture, company can offer APIs in other programming languages or platforms as well. Applications can even cache their initial protocol for snappier re-execution.

Developed with NeuroKernel API, NeuroKernel Applications can run at server side as well as client side or both. Entire system can be launched in a browser if desired. Distributed and decentralized architecture of NeuroKernel lets developers deploy their applications in any medium they like, web server, cloud storage, torrent networks or decentralized storage systems. The most important feature of NeuroKernel applications is that they can themselves be distributed or decentralized piece by piece giving companies geographical freedom. An application can plugin other applications around the world seamlessly and runs as one. In coming years, NeuroKernel will be the next big leap in web computing, and it has the potential to change the web development landscape for good.

NeuroKernel windowing system, although runs on top of Document Object Model (DOM), is as advanced as MS Windows or MacOS, and as flexible as X Window System. NeuroKernel has no direct competitors in the market because of its unique, innovative and disruptive technology. In the future, NeuroKernel Research will also license its technology and protocol to the third party companies, so that they can build their own systems using them.

3. Adaptive Deployment

NeuroKernel applications are compiled into either Java byte code, JavaScript or Web Assembly. An application compiled to JavaScript/Web Assembly has the ability to plugin applications compiled to byte code running at server side, and vice-versa. This is a very important feature for companies to keep their propriety algorithms hidden from public eyes.

3.1 Centralized

NeuroKernel can be deployed to centralized servers by default. It is the de-facto way of deploying web applications to the web users today. NeuroKernel can be run completely at server side, or completely at client side. It is also possible to distribute parts to client and parts to server if desired. When run completely or partially at server side, NeuroKernel requires a J2EE servlet container and an RDBMS database. However, if it is to be run completely at client side then any web server can be used.

3.2 Decentralized

NeuroKernel system can live entirely on a peer-to-peer torrent network or decentralized storage system. It won’t need a web server if deployed like this. Applications can also be deployed solely to mediums like torrent networks. This pure decentralization is going to create a new application eco system on the World Wide Web. Applications can also be dragged and dropped to the NeuroKernel workstation from the native desktop in jar, zip or compiled JavaScript form giving extra layer of flexibility to the developers.

3.3 Distributed

NeuroKernel is designed to be very small and high performance. It is tested for dozens of different scenarios for maximum stability and efficiency. Entire operating system can be executed at the client side inside a browser, or at the server side. It is also possible to distribute some modules of the system to run at the client and the rest at the server. This distributed modularization is the very strength of the system. NeuroKernel is abstracted over a protocol and event based architecture. The protocol-based system lets individual applications plugin other applications. This way, an application can distribute itself piece by piece all over the world but functions as one to the end user.

4. Plugin System

Plugin system is one of the most innovative technologies introduced with NeuroKernel. It allows other applications to be plugged inside other applications. Plugged in tasks can interact with the parent task much more efficiently, their user interface, if any, seamlessly becomes the part of the parent application. High performance events and RPC method calls are the major communication channels between parent and plugin task. It is very easy to unplug a task and plug another one. It can be done in runtime as well. File systems and devices are two major interfaces that stands out in plugin system. It is also possible to create plugin trees by allowing plugin tasks to plugin others.

NeuroKernel also brings complex server-to-server communications to the web browsers. For instance, a global company can securely execute a remote plugin application from another location 2000 miles away and see the results on the screen seamlessly as if that remote application is actually part of the running application that plugs it in. Plugins do not require installation to work with the parent application that uses them.

4.1 Devices

A NeuroKernel application can be defined as a device with a well-defined interface. By embedding a device into another application, it is possible to make RPC calls to it. Creating remote file systems and making them available to NeuroKernel applications is as simple as implementing a file system device interface. For example, a cloud file system company can develop an embeddable NeuroKernel application that implements the file system interface and can only deploy this application to their web site not the operating system itself. By doing so, any NeuroKernel application in the world can plugin their file system into their structure.

4.2 Applets

A miniature version of NeuroKernel can also be launched into an application window as a component. Third party companies such as financial institutions may use this new feature to keep the system protocol private to their own domain. This component can still communicate with its parent application seamlessly.

5. Privacy and Security

NeuroKernel /OS takes security seriously. Remote tasks are limited and are not allowed to all system resources. These limitations can be found in developer manuals. Kernel keeps a threshold for task behavior. If the threshold is reached for any reason, task is forcefully terminated. There is no way to circumvent the termination process. Kernel is not just a task running by itself. It is designed like a nervous system. Different parts of the system may decide to terminate the task, but central kernel task is informed about the termination. Developers can choose multiple ways to keep the privacy of the users including peer-to-peer deployment options. A private torrent tracker can also be used for better functionality on a closed network if necessary.

6. Green Computing

NeuroKernel /OS can utilize advanced peer-to-peer features in web browsers. Applications written for NeuroKernel client or server side can be shared directly between personal computing nodes by-passing the client/server communication stack. This does not only increase the performance of NeuroKernel applications, it can also distribute the computing resources directly to personal computers instead of large server farms reducing the carbon emissions’ by utilizing unused computing resources on the user’s computer. This advanced new feature will open the gates to new ways of collaboration without disruption within corporate and research institutions around the world.

7. Cognitive Devices

NeuroKernel comes with a cognitive device support. Currently only Text-to-Speech device comes with the package. It is easy to replace the existing cognitive devices since they are also plugin devices. It is possible to drag and drop new devices to an application to experiment without installing a single thing at either client side or server side. In time, other cognitive devices will be made available commercial or open source. Standard RPC methods for the cognitive devices are yet to be determined. A community driven standardization of the methods for each supported device may be developed.