Page 137 - ITU Kaleidoscope 2016
P. 137

ICTs for a Sustainable World





                                                                                                 S4T OpenStack
                                                                IoTronic                           Cloud
                                communication with internal services  command
                  smartphone                      OS            line client            IoTronic  IoTronic   WS tunnel
                                                                                       AMQP
                 command/response stream   (from/to the Cloud)  s4t lightning-rod  services  browser  dashboard  IoTronic APIs  conductor  agent  agent
                                                                                                        IoTronic
                                                                                       queues
                                                                                               GCM
                                                                                     IoTronic
                           s4t wstunnel lib
                                                                 Web
                                                                       IoTronic
                                                   ...
                                                                                     IoTronic
                                                  ADB
                            s4t lightning-  plugin                                   database
                                         s4t
                                                                                             command/response   communication with
                            rod  engine  plugin loader  package   GCM signaling  WS   REST interaction  AMQP pub/sub  other interaction  stream (to/from   smartphone services
                                                                     communication            smartphones)
                                                 manager
                                                             Figure 4. Stack4Things Cloud-side MCS platform architec-
                             s4t virt lib
                                                             ture.
                            Sensing APIs
                                                             IoTronic is characterized by the standard architecture of
                                                             an OpenStack service. The IoTronic conductor includes the
                GCM signaling  WS   IPC    RPC    local (service)
                         communication            interaction
                                                             core logic of the service, and manages the IoTronic database,
                                                             which stores required information about IoT devices, e.g.,
          Figure 3. Stack4Things node-side MCS platform architec-
                                                             unique identifiers of nodes, any ownership or delegation
          ture.
                                                             role nodes may obey to with respect to users and tenants,
                                                             board properties and hardware/software characteristics. The
                                                             conductor also dispatches RPCs among other components.
          successful booking requests, and to constraints dependent on
          the APIs granularity, specific to the transducing resources.  The IoTronic APIs exposes RESTful interfaces for end users.
                                                             The OpenStack Horizon dashboard has been extended to ex-
          The S4T lightning-rod engine sits at the core of the node-
                                                             pose all the functionalities provided by the IoTronic service
          side software architecture, and communicates with the Cloud
                                                             and other S4T subsystems. The dashboard exposes also ac-
          through a GCM-based messaging channel, at the very least,
                                                             cess to node-side services, relaying traffic from the user to
          and, when needed, switching to a WebSocket-based full-
                                                             the IoTronic WS tunnel agent. This agent acts as a controller
          duplex channel for WAMP messaging (see also Figure 4), in
                                                             for the WS endpoint to which nodes connect through wstun-
          particular to support a wider range of functionalities, such as,
                                                             nel libraries.
          e.g., sending data to (and receiving data from) the Cloud, or
                                                             Likewise, the IoTronic GCM agent works as a bridge for
          even executing commands input by the users via the Cloud,
                                                             GCM-based communication between any node and other
          respectively. User-provided commands may be related to the
                                                             components. The command stream gets delivered by this
          interaction with the node-hosted resources (through the S4T
                                                             agent during bootstrapping phases, as well as under situa-
          virt libraries) and with operating system-level resources and
                                                             tions of restrictions on traffic. It converts AMQP messages
          tools (e.g., package manager, background services, filesys-
                                                             on the wire into GCM-compliant ones, and brokers from
          tems). Bootstrapping communication with the Cloud is thus
                                                             GCM to AMQP as well, conversely. In accordance to the
          enabled by primitives for push-based messaging available
                                                             current philosophy among OpenStack contributors, any com-
          through the platform-native SDK. Furthermore, WebSocket-
                                                             munication occurring among Cloud-side subsystems, in this
          based libraries (S4T wstunnel libraries) augment the engine
                                                             case IoTronic components, is implemented as pub/sub mes-
          to act as a WS-powered (reverse) tunneling server, connect-
                                                             saging over the network via AMQP queues. This enables the
          ing to a specific WS endpoint in the Cloud. This mecha-
                                                             whole design to be as scalable as needed, as all components
          nism [16] enables internal services to be exposed through the
                                                             may be deployed on different hosts without affecting service
          tunnel for direct access by external users, whose incoming
                                                             behaviour. Also, multiple tunnel agents and GCM/WAMP
          traffic is forwarded automatically to any internal service of
                                                             agents may be instantiated, in that case each dealing with a
          choice running in the background. Outgoing traffic is cap-
                                                             subset of enrolled mobiles. Given all of the aforementioned
          tured and redirected into the tunnel and eventually reaches
                                                             options, high availability and redundancy may be guaranteed
          the end user that connects to the WS server in the Cloud, a
                                                             as well.
          user then ready, at last, to consume the node-hosted service.
          The S4T lightning-rod subsystem also provides a plugin
          loader. By this component, custom plugins may be injected           5. AN EXAMPLE
          into the node environment from the Cloud, and loaded at run-
          time to expose specific (user-defined) primitives, including  As an example of a S4T-powered MCS application, let us
          system-level interactions, albeit subject to sandboxing, such  feature Smart City-like traffic service, specifically focusing
          as, e.g., involving the system-native package manager, or any  on a Pothole Detection and Mapping (PDM). aiming at de-
          service automatically started at boot-time. The S4T Cloud-  tecting and identifying road potholes through traveler mo-
          side MCS platform architecture (see Figure 4) features an  biles. The PDM application is based on two components: an
          OpenStack service newly designed for IoT, named IoTronic.  Android app, running on S4T-enabled mobiles and a central-
                                                          – 119 –
   132   133   134   135   136   137   138   139   140   141   142