Blackrock Application Server


Introduction

Welcome to the Blackrock Application Server. Blackrock has a Reactive / Event-Driven Architecture, and contains all the functionality you need to build your next Node.JS application, whether it be a web app, web service or something else.


Installing Blackrock

As a Stand-Alone Application Server

Blackrock can be installed as a stand-alone application server on your system. All you need to do is to Install Node.JS and NPM and then open up a command-line prompt and type:

> npm install -g is-blackrock

As a Dependency For Your Own Application

Blackrock can be installed as a dependency within your own Node.JS application. All you need to do is to Install Node.JS and NPM, make sure you have a new or existing Node.JS application and then open up a command-line prompt and type:

> cd /path/to/your/node.js/application

> npm install --save is-blackrock

And then open up your project in your favourite IDE and (most likely in the Javascript file you launch with) include a reference to this dependency:

const blackrock = require('is-blackrock').init();

Note: If the application isn't new (more than just a scaffold) then you have to realise the Blackrock takes over the process and instantiates its own HTTP interface (and so on). As such you may very well have to re-engineer much of your application to work with Blackrock. Also - you may need to alter the server's configuration. See Server Configuration for more information.

Also: the is-blackrock node module has ZERO dependencies. So your risk of losing access to any of your packages is minimised.



Getting Started

See Getting Started for a quick and easy guide to help you get started building with Blackrock.


Modules Specifications

Below you can find the specifications for each Blackrock module:

Module Description
AppEngine Module Loads, manages and provides access to and between all services running on your application server
CLI Module Manages execution of server actions based on command-line arguments provided at startup
Configure Module Provides methods and command line tools to manage server and service configuration
Core Module Primary dependency (application server instance) that is exported to service routes and linked applications. Loads and provides access to all other modules and interfaces
Daemon Module Provides tools to instantiate the application server as a daemon and to manage the daemon
Data Module Provides a standard abstraction to third-party databases, and has a built-in filesystem JSON-based database that you can use to quickly build and prototype applications and services
ErrorHandler Module Provides the tools to intercept and handle application server exceptions and prevent the server from crashing
Farm Module Provides the tools to share state within a distributed compute cluster or farm. And to manage job processing without duplication of effort
Generator Module Provides methods and command line tools to generate your own services for use within Blackrock
i18n Module Provides support for internationalisation and localisation within your Blackrock services
Installer Module Allows you to install additional services in to your application server from the Blackrock marketplace
Jobs Module Allows you to create, manage and execute asynchronous jobs (from your services) - recurring and scheduled
Logger Module Provides a method (log) to log your service (or intra app server) events and distribute these to any one of a number of log sinks
Router Module Routes requests and responses between interfaces and service routes
Sandbox Module Provides a sandbox environment to execute un-trusted Javascript code within your application server
Universe Module Provides the Universe object to your services, giving you access to a world of real-time data. Make your service environmentally reactive!
Utilities Module Provides a collection of popular Utility methods that you can access within the application server (modules) or from your services

Interface Specifications

Below you can find the specifications for each Blackrock interface:

Module Description
Axon Interface Provides an interface for the Axon protocol
HTTP Interface Provides an interface for the HTTP and HTTPS protocol
NanoMSG Interface Provides an interface for the NanoMSG protocol
SSH Interface Provides an interface for the SSH protocol
WebSockets Interface Provides an interface for the WebSockets protocol
ZeroMQ Interface Provides an interface for the ZeroMQ protocol



Gratitude

Thanks for downloading the Blackrock Application Server. We look forward to seeing what you build with it.