NOMRHIS components

Kernel Panic (client program, NOMRHIS-browser)

Kernel Panic - is program implementing client side of NOMRHIS protocol. As long as NOMRHIS server applications can hold different type of content, Kernel Panic may be referred as browser. Primary functions of Kernel Panic are:

  • Rendering 3D/2D graphics to user's display
  • Playing back audio content
  • Dealing with audio and video data, images, fonts, models, etc.
  • Getting input from user (keyboard, mouse, joystick, etc.)
  • Storing data locally
  • Handling connection to server

NomrhisD (server program, NOMRHIS daemon)

NomrhisD is basis for server-side NOMRHIS applications. It handles basic server functions:

  • Reading configuration files
  • Listening for, accepting and processing network connections
  • Loading and starting up NOMRHIS sites
  • Dispatching incoming connections for specified site

But NomrhisD is worthless without attached plug-ins (NOMRHIS site engines)

Site engines (plug-ins)

There are 2 kinds of site engines:

  • general site processors
  • bindings for script languages

Let's say, if you need to write fast 3D-shooter server with minimal overhead, then general plug-in written in C - is best choice.

On the other hand in places where low-latent interaction isn't a primary need, Lua, Python or some other embeddable language could be safer choice.

Site instances

Site instances are configured through NOMRHIS server. Each site instance is based on specified site engine and has working directory. Everything else about site instance depends on specified site engine.

Usually most resources (models, textures, sounds, music, video, scripts, etc.) are stored inside working directory of site instance. It also usually has storage private/public key pair to gain exclusive access to client-side resource storage.

Sample picture of general architecture

NOMRHIS architecture

Feature review