Message API

Applications written for Quartex Web OS (called “Amibian.js” from now on) are always hosted. This means that they are separate web applications that are executed inside an IFrame container. Security is very important, and the only way to ensure secure execution is to follow the rules and standards that exists in the browser.

The only way a hosted application can communicate with the desktop, is through a message channel. Amibian.js gives you a clean, easy to use standard for interfacing with the desktop environment – and once established, a program can make full use of the benefits the desktop provides.

Like all modern systems, access is handled through credentials and various rights – which affect what a running application can do. This is  an important part and the first message the desktop will send is a so-called “handshake” message. When an application receives this handshake, it must respond in a predictable way and deliver it’s security manifest (a JSON file).

We will dig deeper into the protocol in these pages, but first – let’s look at the benefits of writing applications for Amibian.js:

  • Windowing: all applications are hosted in a window
  • Process management: all applications are registered as a process
  • Security: all processes are bound to the credentials of the logged-in user
  • Standard dialogs: file open dialog, file save, directory services
  • Persistence: Amibian.js delivers a complete filesystem, saving or loading binary data is very simple.
  • Menu services: each application can register menu items and be signaled when a user has click on these
  • Shell scripting, if security allows scripts can be executed both server-side and client-side (in the browser)
  • REXX: inter-process communication, installed applications can talk to each other
  • Data processing: Amibian.js provides a set of codecs that programs can use for data conversion. Everything from Base64 to high-end encryption
  • Video streaming services: playing rich media from the users storage
  • System wide chat services: users logged into the same server or host can chat in real-time. External applications can provide plugin functionality for this.
  • System wide video chat: same as text chat but with live video and audio streaming between users. This is extremely beneficial for teams that want to run their own Amibian.js server as a foundation
  • Persistent databases: applications can create databases server-side that they can access at any point. Each database is sandboxed and isolated for optimal security.
  • API functions: Amibian.js has a rich set of “soft kernel” functions that all applications can call. Access is restricted by credentials, but valid programs gains a ton of power through the many RTL/API calls they can make use of
  • Serial number minting and license management: applications can mint, validate and handle licenses through the system API – meaning that software can be purchased based on the license data minted through Amibian.js