
Andromeda is the ANSI C parent of Nebula. It allows more deeply embedded headless (not requiring a KVM) devices with limited memory to communicate with the higher level Nebula Java based devices.
Nebula is primarily a Java implementation of the Andromeda networking protocol with working example code to assist developers in getting their applications up and running quickly. Most of the following applies equally to Nebula.
Andromeda: Embedded Services Over the Web

Andromeda creates a Services-Over-HTTP layer in a similar vein as enterprise class XML-based methodologies such as SOAP or REST. However, what separates Andromeda over these XML methods is how both commands and data are passed over the web. Through a patent-pending method, Andromeda is able to embed commands along with data inside a standard HTTP data stream. This is possible as Andromeda is not simply just a services platform, but a total client and server software solution. With Andromeda and the design services provided by Galixsys Networks, any embedded system can have enterprise-class service-over-the-web capability.
What is the Andromeda Embedded Services Platform?
Andromeda addresses the fundamental software requirements of devices making use of the Internet in a seamless and non-intrusive manner. With the ubiquity of low cost wireless interfaces now available, a plethora of devices once unable to be networked due to cost or infrastructure limitations are now able to have a network connection.
Although hardware costs and infrastructure barriers are fast disappearing, how these devices are actually able to make use of their new networked functionality needs to be addressed. Andromeda solves this by providing a means for the device application software to make general service calls to their hosts. With this service ability in place, devices and hosts are able to share and act upon requests without explicit knowledge or interaction by the end user.
Andromeda can enable automated, real-time communication for devices in a variety of applications, including:
-
Sensors, monitors, or controllers with automatic storage and retrieval of captured or generated data.
-
Robotic or device artificial intelligence (AI) enhancement via server or cloud computing.
-
Digital still cameras or video players with automatic upload or streaming of pictures and video.
-
Remote monitors that need greater functionality or automation over web page serving.
How Does Andromeda Work?
In order to facilitate automated communication, four major functions are provided:
-
A web client
-
A web server based parser
-
A common API between client and web server parser
-
A service handler in the client and parser
The combined use of each of these major functions allows automated communication to occur, as well as provides the means to integrate into a device's software stack and the host's IT infrastructure.

The device's applications are able to make network system calls by calling an Andromeda Client service API. From there, the Andromeda Client breaks down the service request into a series of Andromeda APIs that are sent as an HTTP data stream to the web server which is running the Andromeda Parser. The web server then performs the desired network operation and sends the appropriate replies back to the client. These replies are also sent over HTTP, as part of the HTTP response packet, and decoded directly by the Andromeda Client. Multiple clients can be handled by a single server, and a device may have both an Andromeda client and server running concurrently.
Andromeda Web Client
The Andromeda web client is a standard web client that replaces the user interface components of a web browser with the Andromeda API and Service Handler engines. It has the following features:
-
Support for HTTP1.0 and 1.1, including persistent or chunked responses over IPv4 or IPv6.
-
Encryption via TLS or SSLv3
-
Available in stand-alone or library format for a variety of platforms. Packages exist for Intel and ARM based Linux devices, and libraries exist for glib, Android and Arduino
-
Pure ANSI C code base. Can easily target any processor architecture
Andromeda Parser
The Andromeda Parser runs within a standard web server as a CGI program, or as a server module. It holds the Andromeda API and Service Handler engines for server functions. It has the following features:
-
All functionality contained; no special server settings or features are required. No new TCP/IP ports are required to be opened.
-
Runs at the web server's user level, just like a standard CGI program
-
Pure ANSI C code base. Can easily target any processor architecture
Andromeda API
The Andromeda API is the key communication method between the Andromeda Client and Parser. Both the client and server have an identical API engine, insuring codes sent from both the client and server are matched. This allows the automated communication to occur between devices. It has the following features:
-
Based on a unique technique to frame general commands and data as part of the HTTP data payload.
-
Special paging mode supplied that allows the server to be the communication master if desired.
-
Optimized for low bandwidth, low network latency usage.
Andromeda Service Handler
The Andromeda Service Handler interfaces the Andromeda core functions with the device and server application suites. It has the following features:
-
Runs as symbiotic engines in both the Andromeda Client and Parser; output to the host server application suite is dependent upon the input of the device client application's requests.
-
Standard calling mechanisms on the client (OS service call or linked library), and interfaces to the host (file system write, database interface, etc).
Key Features
The key features of Andromeda are listed below:
-
Network Physical Layer Agnostic. As the bridge and control point between a device's application software layer and the physical network connection, the software architecture of Andromeda is such that any physical network medium, be it cellular (3G/LTE), WiFi (802.11), ZigBee (802.15) or physical (Ethernet) is supported.
-
Enhanced Security. As Andromeda runs within an existing web infrastructure environment, all security enhancements in place carry over to Andromeda. Further, the Andromeda API allows for the inclusion of unique identifiers in each packet sent, adding another security mechanism above standard web practices.
-
Extremely Flexible. With the unique ability to support a general command and data packet over HTTP, any sort of device command can be initiated across the network. The web becomes a general data pipe without the processing overhead, server and infrastructure requirements of XML-based solutions.
-
Easy Integration and Maintenance. As a web server module, Andromeda Parser plugs directly into the existing web IT infrastructure. Andromeda Client is completely OS and processor agnostic and requires no special libraries or hardware functions.
Product System Requirements
A key benefit of Andromeda is that great care has been taken to avoid dependencies on any other system function or third-party tools and software. Andromeda is able to run in the deepest of embedded systems, and as such, conveniences provided by a full high-level OS stack or third-party tool may not be available.
Any ANSI C compiler (such as GCC) with Sockets API support will be able to compile both Andromeda Client and Parser. If database operations are desired on the server side, Perl with DBI support is required on the server.