Nodes

Spheres, van Gogh

A node consists of a small JAVA microkernel, that is, a JAR file about 1.2 MByte in size. It includes the messaging core, timers, threads, the namespaces and the logging. All other functionalities, especially networking, are loaded via plugins at start time.

This leads to the fact that containers containing a node are usually all identical. A configuration determines which plugins should be loaded. Only the plugins add specific functions to the nodes, i.e. the tasks that make up the character of a node.

The nyssr.net usually consists of several nodes. However, this is more a matter of workload and order. Even a single node can offer all the services that a smaller installation offers. The distribution of plugins to other nodes in a network is done at your own choice. The advantage of this approach is a particularly high flexibility. Basically, all services of a nyssr.net are structured in such a way that it is irrelevant on which nodes they are offered.

The microkernel as well as the included system plugins are almost independent of libraries from other manufacturers. This is intended because the microkernel can be included as a library in normal client and server programs. A dependency on other software would only make integration more difficult, and the advantages of a microkernel would be lost.

The following third-party libraries are used:

Library Vendor Size in KBytes
annotations JetBrains 19
json-simple Google 24

Together, that's just over 40 KBytes (!) of third-party libraries.

One effect of this small size is the high speed at startup of the node. A central system node with various central registries and TCP servers starts in about 400 ms. A UI node including Swing needs about 600 ms from the first to the last log message.

nyssr.net - Innovative Distributed System