NYSSR.NET / RESOURCES

Add distributed capabilities to an existing Java program

Turn an existing Java application into a nyssr.net node with a small runtime footprint, then add messaging and services without introducing a separate server.

Replacing an existing application or adding a separate integration server can be expensive. A gradual path is often more practical: any Java program can become a nyssr.net node by including the kernel JAR, then use messages and services as part of the network.

Any Java program can become a nyssr.net node by including the kernel JAR. The program can then use messages and services, and it can start additional applications as part of the network.

A small Java foundation

nyssr.net requires Java 8 or higher. The kernel uses only a small number of third-party libraries:

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

Together, these dependencies add just over 40 KBytes.

Load only what the node needs

The kernel is approximately 1.3 MBytes. It contains the messaging core, timers, threads, namespaces, and logging. Networking and other capabilities are loaded as plugins when the node starts.

The most commonly used plugins add roughly another 600 KBytes. Including dependencies and plugins, a typical node adds about 1.9 MBytes to the host application.

Key idea: The node starts with a small kernel and loads only the capabilities it needs.

Startup performance

A typical node starts in about 200 ms, measured from the first to the last log message. A RemoteSkin client needs a little longer because Swing has to initialize; the first dialog usually appears after about 400 ms.

These times do not necessarily add to the application's startup time: components can start concurrently.

Integration path

  1. Include the kernel JAR
  2. Add the required plugin list
  3. Start the program as a nyssr.net node
  4. Register or use services through messages

No separate server is required for the Java program to participate in the network.

Footprint: Keep the host application small and add capabilities as plugins.

Deployment: Use the same Java application as a local development node or as part of a larger mesh.