Webinos - a reminder of key functionality

This section defines the roles and responsibilities of the key architectural components in webinos and at a high level defines the logical flow, and process during normal webinos interactions.

Webinos builds upon the state of the art for web applications. Taking HTML5 and W3C DAP technologies as a foundation, it extends these concepts to allow for the following:

The Webinos specification

The formal specification is broken into subject areas, each of which has its own section

The webinos key architectural components

webinos Web Runtime (WRT)

A webinos web runtime, is a special type of browser. It should be capable rendering the latest Javascript, HTML4/5 and CSS specifications. It is responsible for rendering the UI elements of the webinos application

A webinos WRT must be able to access the webinos root object from Javascript. Via this root object the third party developer will be able to access the webinos functionality.

A webinos WRT differs from a normal browser or web runtime in that all extended Javascript functions as well as some normal browser behaviours (such as XHR) must be mediated by the webinos policy enforcement layer.

A webinos WRT will present environmental properties and critical events to the Personal Zone Proxy (PZP) so that it may process the security policy and contextual events, correctly.

A webinos WRT should be deemed tightly bound to the Personal Zone Proxy (PZP).

There is special case of WRT that binds to the PZH not the PZP, hence server vs device centric. This variant is called a Server Based Runtime (SRT), rather than a WRT.

Specification areas

The web runtime component must implement the following aspects of the specification

webinos Personal Zone Hub (PZH)

The Personal Zone has already been introduced in the Overlay Networking Section.

The Personal Zone is a conceptual construct, that is implemented on a distributed basis from a single Personal Zone Hub (PZH) and multiple Personal Zone Proxy (PZP)s

The critical functions that a Personal Zone hub provides are:

Specification areas

The Personal Zone Hub (PZH) component must implement the following aspects of the specification

webinos Personal Zone Proxy (PZP)

The webinos Personal zone satellite proxy, acts in place of the Personal Zone hub, when there is no internet access to the central server.

In order to act in its place, certain information needs to be synchronised between the satellites and the central hub.

This information has already been listed above.

The Personal Zone Proxy (PZP) fulfils most, if not all of the above functions described above, when there is not Personal Zone Hub (PZH) access

In addition to the Personal Zone Hub (PZH) proxy function, the Personal Zone Proxy (PZP) is responsible for all discovery using local hardware based bearers (bluetooth, zigbee , NFC etc)

Unlike the PZH, the PZH does not issue certificates and identities.

For optimisation reasons PZPs are capable of talking directly PZP-PZP, without routing messages through the PZH

Specification areas

The Personal Zone Proxy (PZP) implements all of the above functions, with the following differences

webinos Application

A webinos application runs "on device" (where that device could also be internet addressable i.e. a server).

A webinos application is packaged, as per packaging specifications, and executes within the WRT.

A webinos application has its access to security sensitive capabilities, mediated by the active policy.

A webinos application can expose some or all of its capability as a webinos service

An application developer is granted access to webinos capabilities via the webinos root JavaScript object.

Specification areas

An application developer needs to be aware of the following parts of the specification

webinos Service

A webinos service is a collection of functions and events, that are accessible by an webinos application

These functions and events are always presented to the application developer as a sets of JavaScript functions, no matter where the implementation resides.

There exist the following sub-types of webinos services

  1. native device webinos APIs: such as specified in WP3.1. These may be implemented on the same device on which the application resides, and the implementation may be provided through a Javascript binding to native code, via plugin technologies such as NPAPI, or indeed hard-coded enhancements to a JavaScript engine. Access to the API must still be mediated by the PEP (policy enforcement point) within the Personal Zone Proxy (PZP)
  2. remotable smart-device hosted webinos APIs: APIs that can be accessed remotely (using JSON RPC). A remotable webinos API is hosted by a Personal Zone Proxy (PZP) and again access is mediated by the PEP on the Personal Zone Proxy (PZP) of caller AND the Personal Zone Proxy (PZP) of provider
  3. remotable dumb-device hosted webinos APIs: As above, where the device is not a smartphone, PC or tablet, but a small sensor-like device which has its own Personal Zone Proxy (PZP) and therefore can directly authenticate to the PZ and communicate via JSON RPC
  4. remotable super-dumb-device: as above but device is even more lightweight - and cannot talk webinos directly. Instead a host device presents as webinos driver (a mini Personal Zone Proxy (PZP)) that can communicate natively to the super-dumb-device and transcode the bi-directional comms into webinos protocols.
  5. remotable server hosted APIs: these are web services, accessible javascript (using JSON RPC). These are hosted by a Personal Zone Hub (PZH) and security mediated by the PEP within the Personal Zone Hub (PZH)
  6. application hosted APIs: a full application, which is hosted by the WRT may present external services (Javascript APIs) that other applications can then make user of

Specification areas

An webinos service must take note of the following parts of the webinos specifications

Local Connections

One of the critical innovations of webinos, is the virtual overlay network that allows different applications and services to talk to each other over many different interconnect technologies.

Not only are the interconnect technologies for local messaging, there are three different scenarios in which this communication can take place

These are highlighted in the diagram below.

In turn:

  1. Connecting to a full smart device, that hosts both a PZP (therefore can host native APIs presented as services) and a WRT (so can host webinos applications exposing webinos services)
  2. Connecting to a dumb device, it hosts a PZP but not a WRT. This means that it can expose only native APIs, not webinos applications
  3. Connecting to a super-dumb device, it hosts neither a PZP nor a WRT, but can expose webinos services - if the client PZP hosts a customised driver

Specification areas

The personification that outline the detail of these connection scenarios are to be found in