Basic Concepts of servIoTicy

A Service Object is a standard internal servIoTicy representation of Web Objects.  This entity serves mainly for data management purposes and has a well-defined and closed API.  ServIoTicy, in an effort to embrace as many IoT transports as possible, allows Web Objects to interact with their corresponding Service Objects using a set of well- known protocols: HTTP, STOMP over TCP, STOMP over WebSockets, and MQTT over TCP.

A Stream is a data feed produced by a WebObject, associated to a Service Object. It gets data associated and can be referenced to produce, retrieve  and perform advanced queries on the data. In the case of a SmartPhone enabled with an several sensors (accelerometer, GPS, luminosity…), every sensor would be mapped to a different Stream.

A Channel is one of the dimensions of a Service Object Stream. Following the previous example, an accelerator stream would get 3 channels associated (x,y,z), corresponding to the three axis associated to the accelerometer.

A Sensor Update is the data unit in servIoTicy. Every Service Object stream will get multiple Sensor Updates associated. All operations defined for a Stream are based on Sensor Updates. Every single Sensor Update MUST contain information for all the Channels of that stream. A user-provided timestamp (namely lastUpdate) is associated to every Sensor Update.

An Actuation is an operation to be initiated in a WebObject that is mapped in servIoTicy through the corresponding Service Object. The platform performs the transport of the actuation invocation from the initiator to the WebObject, but it is the responsibility of the WebObject to perform the actual physical actuation.

A Data Processing Pipe is a data service and aggregation mechanism, which relies on the data processing and management back-end component to provide complex computations resulting from subscriptions to different Service Objects as data sources. This construct can support pseudo-real time data stream transformations, combined with queries concerning historical data. Data analytics code defined by the user may be provided as well. The end result of a Data Processing Pipe is inserted into the servIoTicy registry along with its description and may be used by higher level constructs as yet another kind of Service Object building block. Just like a Service Object, this entity serves mainly for data management purposes and has a well-defined and closed API.