What is Nebula?
Nebula is for engineers, Computer Science students or experienced hobbyists interested in building networked applications. Nebula requires basic Java programming ability in order to make User Interfaces (UI) and commands unique to an application.
Nebula native code will build and maintain a network (VPN) of devices for purposes of monitoring, control and communication. Nebula provides the client, server and device management functions. It uses a unique "binary over HTTP" command/response protocol that makes getting your application up and running fast and easy. Nebula is supplied as source code project files for use in the Android Studio, IntelliJ and Arduino Integrated Development Environments.
There is no sign-up, outside server or service fees associated with Nebula. As a developer you decide the complexity and use of your application whether it's simply controlling or monitoring something in your home, or a world wide commercial product or social media application.
It's your network and will keep all your data private and secure. Unlike traditional models where devices communicate through a central server, all devices from a simple WiFi module to a full server farm connected on a Nebula VPN can communicate either point-to-point or connect through a VPN master device for mobile-to-mobile situations.
How does It Work?
Nebula is a web services platform but unlike REST or SOAP no associated HTML or XML code is used. Devices are tracked through a distributed database similar to Block-Chain where each device, command or network operation can be a secure block. Each device knows of or can quickly retrieve details of any other device on the network. Each device acts as a client, a server or a network relay hub. All devices respond to the essential VPN management commands like add, modify or delete device, among others, that are built into Nebula.
Other commands for a specific application purpose are written by you the developer. Commands are derived from a high level Command class built into Nebula. You write the individual commands for your application using a minimum of 3 methods. The methods are first that the client prepares any necessary data to send to another device. The second method is where the server executes the command and returns a reply. The final method is post-execute. That is what the client does with the response from the server. Nebula automatically runs the 3 methods, in sequence, when the command is sent.
The client and server are symbiotic by nature. That is when a command installed on a device the device can both send or receive the command. The demo package includes many useful and well documented commands. As supplied, the Galixsys protocol over HTTP handles 64K commands with 64K devices however, the binary nature of the protocol allows virtually unlimited expansion or customization.
What Devices are Supported?
The Nebula APK package opens in the Android Studio IDE. It supports any Android phone or tablet running version 4.4 or higher.
The Nebula JAR package opens in the IntelliJ IDE. It supports devices that can run a Java .jar file. These include Linux, Windows or MacOS desktop or laptop computers. Also, in the case of Linux, Single Board Computers (SBC) like Raspberry Pi and Beaglebone as well as Cloud Server instances have been fully tested and are ideal candidates for use in your application.
The Nebula BIN package opens in the Arduino IDE. While written specifically for use with ESP8266 WiFi modules, the project code is easily adaptable to any Arduino compatible with Ethernet or WiFi network hardware available. The code is written in Arduino .ino format. Included in the BIN package is WEMOS example code for discovery and ON/OFF voice commands via Amazon Alexa.
What Commands are Included?
The demo package includes built-in commands to: add, modify and delete devices on your network, ping devices, get and send files, send text, read and write sensor data to databases, graphical representation of database data, stream Android camera video, locate devices that have GPS, interpret and execute voice commands and more. The purpose of Nebula is that you can easily add your own commands, string them together as needed and add any suitable UI components to complete your application.
Is Nebula Open Source?
All objects, classes and methods used in the Nebula project package are licensed under either General Purpose License(GPL) or FreeBSD. The Galixsys protocol over HTTP is covered by US patent 8918516. Galixsys Networks grants free personal use of the patented technology to anyone who purchases the Nebula package. Commercial users must purchase a license to embed the technology in their product.
Galixsys Networks also provides Andromeda, a C language library for Native Development of commercial products. Andromeda works with the same HTTP payload protocol as Nebula so communication and command execution is commonly understood.
How is it Delivered?
How Do I Get Started?
The Documents link provides even more detailed information. There you can review the requirements for evaluating the free trial or the development system recommendations for using the Nebula source code. Tutorials are continually being added to help you get going quickly and to better understand Nebula. Now is a good time to purchase or download the free evaluation and start building your own networked device application.