<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>On Crowd Sensing Back-end</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>© Dmitry Namiot © Manfred Sneps-Sneppe</string-name>
          <email>dnamiot@gmail.com</email>
          <email>manfreds.sneps@gmail.com</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Lomonosov Moscow State University</institution>
          ,
          <addr-line>AbavaNet, Moscow</addr-line>
          ,
          <country country="RU">Russia</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Proceedings of the XVIII International Conference «Data Analytics and Management in Data Intensive Domains» (DAMDID/RCDL'2016)</institution>
          ,
          <addr-line>Ershovo</addr-line>
          ,
          <country country="RU">Russia</country>
        </aff>
      </contrib-group>
      <fpage>168</fpage>
      <lpage>175</lpage>
      <abstract>
        <p>This paper is devoted to the crowd sensing applications. Crowd sensing (mobile crowd sensing in our case) is a new sensing paradigm based on the power of the crowd with the sensing capabilities of mobile devices, such as smartphones or wearable devices. This power is based on the smartphones, usually equipped with multiple sensors. So, it enables to collect local information from the individual's surrounding environment with the help of sensing features of the mobile devices. In this paper, we provide the review of the back-end systems (data stores, etc.) for mobile crowd sensing systems. The main goal of this review is to propose the software architecture for mobile crowd sensing in Smart City environment. We discuss also the deployment of cloud-back-ends in Russia. Figure 1 Mobile Crowd Sensing [2]</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1 Introduction</title>
      <p>
        Crowd Sensing (in our case - Mobile Crowd Sensing)
is a relatively new sensing paradigm, which is based on
the power of the crowd mobile users (mobile devices)
with the sensing capabilities [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. It is illustrated in Figure
1.
So, the mobile crowd sensing is all about relying on the
crowd to perform sensing tasks through their
sensorenabled devices. The background for this process is very
obvious. We see the increasing popularity of
smartphones (wearable devices in the nearest future),
already equipped with multiple sensors. So, why do not
use them for collecting the local timely knowledge from
the individual’s surrounding environment? In this
process, we can collect various data: location data,
camera information, air pollution data, etc. In other
words, everything that could be done through the mobile
device’s sensing features. As per the latest vision, we can
collect data even from the individual itself – so-called
cyber-physical systems [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
      </p>
      <p>
        Of course, this approach presents a set of challenges.
The main challenges, mentioned in the scientific papers
are user participation and anonymity, data sensing
quality. Most of the challenges based on the fact that
humans participate in the process directly or indirectly.
Obviously, the performance and usefulness of crowd
sensing sensor networks depend on the crowd
willingness to participate in the data collection process.
The human participation raises issues regarding the
privacy and security of data, as well as issues of revealing
of sensitive information [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. Of course, there are issues
regarding the quality and trustworthiness of the
contributed data. For example, the big question is how to
detect and remove data contributed by malicious users
[
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. By the definition, there is no control over the crowd
sensors and hence, the system cannot control their
behavior. Therefore, the overall quality of the sensor
readings may deteriorate if counterfeit data is received
from malicious users. Then, the obvious question is how
to validate the sensing data that crowd sensors provide to
the system. A commonly used approach is to validate the
data depending on the trust level of the crowd sensor that
reports it [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ].
      </p>
      <p>
        The collection of potentially sensitive information
pertaining to individuals is an important aspect of crowd
sensing. For instance, sensors readings can be used to
track users movements. Such tracks can profile users and
this information could be used besides our crowd sensing
tasks [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. A popular approach for preserving users
privacy is the depersonalization. It could be done via,
removing any user identifying attributes from the sensing
data before sending it to the data store. Another approach
is to use randomly generated pseudonyms when sending
sensed data to the data store [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ].
      </p>
      <p>In our paper, we will target another challenge – data
stores for mobile crowd sensing. We will present a
review of tools (preferably – Open Source tools) and
architectures used in crowd sensing projects.</p>
      <p>The rest of our paper is organized as follows. In
section 2, we present the common models for crowd
sensing data architectures. In section 3, we will discuss
crowd sensing video applications. In section 4, we
discuss mobile back-ends. Our review has been produced
as part of a research project on Smart Cities and
applications for Smart Cities in Lomonosov Moscow
State University. The main goal of this review is to
propose the software architecture for mobile crowd
sensing in Smart City environment. We note also that the
architecture of the system must meet the existing
restrictions in the Russian Federation, which will be
discussed below.</p>
    </sec>
    <sec id="sec-2">
      <title>2 The common architecture for mobile crowd sensing</title>
      <p>
        What are the typical requirements for mobile crowd
sensing applications? The good summary has been
presented in [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], for example. Namely, the requirements
are:




      </p>
      <p>
        Minimal intrusion on client devices. The mobile
device computing overhead always must be
minimized. Of course, we should cover all the
stages: active state (passing data to data store)
and passive state (waiting for new sensing data).
The fast feedback and minimal delay in
producing stream information. It is actually a
discussable point of view. Most of the sensors
are asynchronous and this fact creates own
requirements to gathering data, for example
[
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. But in the general – yes, data must be
quickly provided.
      </p>
      <p>Openness and security.</p>
      <p>Complete data management workflow. The
application (the platform) should support all
steps the data management cycle, from
collection to communication.</p>
      <p>
        Due to a complexity of sensing collecting process, some
models propose to use local databases for accumulating
data on mobile devices and subsequent replication of
them. This schema is illustrated in Figure 2 [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ].
      </p>
      <p>For example, Android platform offers several options
for local data saving. The solution developers can choose
depends on your specific needs, such as whether the data
should be private or accessible to other applications (and
users) and how much space data requires. Developers can
use the following options:
 Shared Preferences. This option stores
private primitive data in key-value pairs.
 Internal Storage. This option stores private
data on the device memory.
 SQLite Databases. It stores structured data
in a private database.</p>
      <p>
        SQLite is the most often used solution here. It is a
self-contained, embeddable, zero-configuration SQL
database engine [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. For example, Open Source Funf
package from MIT [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] saves sensing info in SQLite
database (Figure 3).
      </p>
      <p>
        Figure 3 Funf datastore [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]
So, we can consider crowd sensing system as a set of
local databases.
      </p>
      <p>
        Another popular option in local data stores for sensing is
the deployment of cloud-based file stores, like Dropbox
[
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]. Of course, this architecture does not assume the
real-time processing, but it is simple and very easy to
implement and deploy.
      </p>
      <p>
        In the same time, many of the tasks require real-time
(or near real-time) processing. In this case, the common
use case is associated with some messaging bus. In this
connection, we should mention so-called Lambda
Architecture [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]. Originally, the Lambda Architecture
is an approach to building stream processing applications
on top of MapReduce and Storm or similar systems
(Figure 4). Nowadays it is associated with Spark and
Spark streaming too [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ]. The main idea behind this
schema is the fact that an immutable sequence of records
is captured and fed into a batch system and a stream
processing system in parallel. So, developers should
implement business transformation logic twice, once in
the batch system and once in the stream processing
system. It is possible to combine the results from both
systems at query time to produce a complete answer [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ].
      </p>
      <p>The Lambda Architecture targets applications built
around complex asynchronous transformations that need
to run with low latency. Any batch processing takes the
time. In the meantime, data has been arriving and
subsequent processes or services continue to work with
old information. The Lambda Architecture offers a
dedicated real-time layer. It solves the problem with old
data processing by taking its own copy of the data,
processing it quickly and stores it in a fast store. This
store is more complex since it has to be constantly
updated.
distributed computations over data streams. It is
illustrated in Figure 5.</p>
      <p>
        There are several Open Source solutions for data
streaming support. You can find a review in our paper
[
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]. For example, Flume [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ] is a distributed system for
collecting log data from many sources, aggregating it,
and writing it to HDFS. Chukwa [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ] has got similar
goals and features.
      </p>
      <p>
        One of the obvious disadvantages is the need for
duplicating business rules. Practically, the developers
need to write the same code twice – for real-time and
batch layers. One proposed approach to fixing this is to
have a language or framework that abstracts over both
the real-time and batch framework [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ].
      </p>
      <p>
        The database (data store) design for stream
processing has got own specific [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ]. Broadly speaking,
we have two options:
1. we can simply store every single event as it
comes in (for sensing – every single
measurement), dump them all in a database or a
Hadoop cluster. Now, whenever we need to
analyze this data in some way, we can run a
query against this dataset. Of course, this will
scan over essentially all the events, or at least
some large subset of them;
2. we can store an aggregated summary of the
measurements (events).
      </p>
      <p>The big advantage of storing raw measurements data
is the maximum flexibility for analysis. However, the
second option also has its uses, especially when we need
to make decisions or react to things in real time.
Implementing some analytical methods raw data storage
would be incredibly inefficient, because we would be
continually re-scanning the history of measurements.
The bottom line here is that raw data storage and
aggregated summaries of measurements are both could
be useful. They just have different use cases.</p>
      <p>
        One of the prospects attempts to combine batch and
real-time processing for streams is Apache Flink [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ].
Flink has got a streaming dataflow engine that provides
data distribution, communication, and fault tolerance for
      </p>
      <p>
        But the most used system (at least, in sensing tasks)
is Apache Kafka. Apache Kafka is a distributed
publishsubscribe messaging system. It is designed to provide
high throughput persistent scalable messaging. Kafka
allows parallel data loads into Hadoop. Its features
include the use of compression to optimize performance
and mirroring to improve availability, scalability. Kafka
is optimized for multiple-cluster scenarios [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ]. In
general, publish-subscribe architecture is the most
suitable approach for scalable crowd sensing
applications. Technically, there are at least three
possible message delivery guarantees in
publishsubscribe systems:
1. At most once. It means that messages may be lost
but are never redelivered.
2. At least once. It means messages are never lost
but may be redelivered.
3. Exactly once. It means each message is delivered
once and only once.
      </p>
      <p>As per Kafka's semantics when publishing a message,
developers have a notion of the message being
"committed" to the log. Once a published message is
committed, it will not be lost. Kafka is distributed
system, so it is true as long as one broker that replicates
the partition to which this message was written is still
alive. In the same time, if a crowd sensing client
(producer in terms of publish-subscribe systems)
attempts to publish a new measurement and experiences
a network error, it cannot be sure when this error
happens. Is it happened before or after the message was
committed? The most natural reaction for the client is to
resubmit the message. It means, that we could not
guarantee the message had been published exactly once.
To bypass this limitation we need some sort of primary
keys for inserted data. It is not easy to achieve in
distributed systems. For crowd sensing systems, we can
use producer’s address (e.g. MAC-address or IMEI of a
mobile phone) as a primary key.</p>
      <p>Kafka guarantees at-least-once delivery by default. It
also allows the user to implement at most once delivery
by disabling retries on the producer and committing its
offset prior to processing a batch of messages.
Exactlyonce delivery requires co-operation with the destination
storage system (it is some sort of two-phase commit).</p>
      <p>
        In connection with Kafka, we highlight two
approaches. The rising popularity of Apache Spark
creates the big set of projects for Kafka-Spark integration
[
        <xref ref-type="bibr" rid="ref25 ref26">25, 26</xref>
        ]. And second, is the recently introduced Kafka
Streams. Kafka models a stream as a log, that is, a
neverending sequence of key/value pairs. Kafka Streams is a
library for building streaming applications, specifically
applications that transform input Kafka topics into output
Kafka topics (or calls to external services, or updates to
databases, or whatever). It lets you do this with concise
code in a way that is distributed and fault-tolerant [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ].
      </p>
      <p>
        On the client side for crowd sensing applications we
could recommend the recently proposed by IBM Quarks
System [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ]. Quarks System is a programming model
and runtime that can be embedded in gateways and
devices. It is an open source solution for implementing
and deploying edge analytics on varied data streams and
devices. It can be can be used in conjunction with open
source data and analytics solutions such as Apache
Kafka, Spark, and Storm (Figure 6).
      </p>
      <p>
        As per the future, there is an interesting approach
from a new Industry Specification Group (ISG) within
ETSI, which has been set up by Huawei, IBM, Intel,
Nokia Networks, NTT DOCOMO and Vodafone. The
purpose of the ISG is to create a standardized, open
environment which will allow the efficient and seamless
integration of applications from vendors, service
providers, and third-parties across multi-vendor
Mobileedge Computing platforms [
        <xref ref-type="bibr" rid="ref29">29</xref>
        ]. This work aims to unite
the telecom and IT-cloud worlds, providing IT and
cloud-computing capabilities within the Radio Access
Network. Mobile Edge Computing proposes co-locating
computing and storage resources at base stations of
cellular networks. It is seen as a promising technique to
alleviate utilization of the mobile core and to reduce
latency for mobile end users [
        <xref ref-type="bibr" rid="ref30">30</xref>
        ].
      </p>
      <p>
        We think also that 5G networks should bring changes
to the crowd sensing models. In is still not clear, what is
a killing application for 5G. One from the constantly
mentioned approaches is so-called ubiquitous things
communicating. The hope is that 5G will provide super
fast and reliable data transferring approach [
        <xref ref-type="bibr" rid="ref31">31</xref>
        ].
Potentially, it could change the sensing too. 5G should
be fast enough, for example, to constantly save all
sensing information from any mobile device in order to
use them in ambient intelligence (AMI) applications
[
        <xref ref-type="bibr" rid="ref32">32</xref>
        ]. Actually, in this model crowd sensing is no more
than a particular use-case for ambient intelligence. But at
the moment, these are only theoretical arguments.
      </p>
    </sec>
    <sec id="sec-3">
      <title>3 Crowd sensing for video data</title>
      <p>In this section, we would like to discuss crowd sensing
for video data. From the practical point of view, the key
question here is cloud storage. Almost all existing
projects use Amazon Simple Storage Service (S3) for
media data (Figure 7)</p>
      <p>Amazon S3 is cloud storage for the Internet. It is
based on the conception of buckets. To upload your data
(photos, videos, documents etc.), you first create a bucket
in one of the AWS regions. You can then upload any
number of objects to the bucket. In terms of
implementation, buckets and objects are resources, and
Amazon S3 provides APIs for managing them.</p>
      <p>
        Let us see, for example, the typical mobile crowd
sensing application presented in [
        <xref ref-type="bibr" rid="ref33">33</xref>
        ].
      </p>
      <p>Figure 8 Amazon S3 service on practice
The cloud service provider used for this implementation
is Amazon. It uses Amazon SimpleDB, a non-relational
highly scalable data store. To store objects namely
photos, videos and voice data, it used Amazon S3. The
implementation uploads objects to S3 and maintains a
key to the upload in SimpleDB. This is a basic solution.
Amazon S3 stores media objects and a separate relational
database (NoSQL database, e.g., key-value store) keeps
keys for objects.</p>
      <p>
        So, the key question here is Amazon S3 or its
analogs. With the requirement to store data locally (data
should not cross borders) the choice is not big. From
existing Russian analogs we know about Selectel [
        <xref ref-type="bibr" rid="ref34">34</xref>
        ].
So, the real choice here is to select some Open Source
platform for IaaS and build an own cloud. As Open
Source platforms in this area, we can mention, for
example, Cloudstack [
        <xref ref-type="bibr" rid="ref35">35</xref>
        ]. Apache CloudStack is an
open source cloud computing software, which is used to
build Infrastructure as a Service (IaaS) clouds by pooling
computing resources. Apache CloudStack manages
computing, networking as well as storage resources.
      </p>
      <p>
        Eucalyptus (Elastic Utility Computing Architecture
for Linking Your Programs To Useful Systems) [
        <xref ref-type="bibr" rid="ref36">36</xref>
        ] is
free and open-source computer software for building
Amazon Web Services (AWS)-compatible private and
hybrid cloud computing environments.
      </p>
      <p>
        The OpenStack project [
        <xref ref-type="bibr" rid="ref37">37</xref>
        ] is a global collaboration
of developers and cloud computing technologists
producing the open standard cloud computing platform
for both public and private clouds.
      </p>
      <p>OpenStack has a modular architecture with various
code names for its components. We’ve mentioned just
several components which are interested in the context
of this paper. OpenStack Compute (Nova) is a cloud
computing fabric controller, which is the main part of an
IaaS system. It is designed to manage and automate pools
of computer resources and can work with widely
available virtualization technologies. It is an analog for
Amazon EC2.</p>
      <p>
        OpenStack Object Storage (Swift) is a scalable
redundant storage system [
        <xref ref-type="bibr" rid="ref38">38</xref>
        ]. With Swift, objects and
files are written to multiple disk drives spread throughout
servers in the data center, with the OpenStack software
responsible for ensuring data replication and integrity
across the cluster. It lets scale storage clusters scale
horizontally simply by adding new servers. Swift is
responsible for replication its content.
      </p>
      <p>By our opinion, the cloud solution for video in
Smart City applications is a mandatory part of
ecosystem and OpenStack Swift is the best candidate for the
platform development tool.</p>
      <p>
        Note, that EU project for Smart Cities platform
FIWARE proposes so-called stream generic enabler
Kurento [
        <xref ref-type="bibr" rid="ref39">39</xref>
        ]. Kurento proposes public API for creating
person-to-person services (e.g. video conferencing, etc.),
person-to-machine services (e.g. video recording, video
on demand, etc.) and machine-to-machine services (e.g.
computerized video-surveillance, video-sensors, etc.).
But in terms of data storage, it relies on public clouds,
like Microsoft Azure.
      </p>
      <p>
        The importance of cloud-based video services is
confirmed by the industry movements. For example, we
can mention IBM’s newest (2016) Cloud Video Unit
business [
        <xref ref-type="bibr" rid="ref40">40</xref>
        ]. As a good example (or even a prototype
for the development), we can mention also Smartvue
applications [
        <xref ref-type="bibr" rid="ref41">41</xref>
        ]. By our opinion, the video processing
for data from moving cameras (e.g., surveillance cameras
in cars) is a new hot crowd-sensing area in Smart Cities.
      </p>
    </sec>
    <sec id="sec-4">
      <title>4 Mobile back-ends</title>
      <p>
        Mobile Backend As A Service (MBaas) is a model
for providing the web and mobile app developers with a
way to link their applications to backend cloud storage
[
        <xref ref-type="bibr" rid="ref42">42</xref>
        ]. MBaaS provides application public interfaces
(APIs) and custom software development kits (SDKs)
for mobile developers. Also, MBaaS provides such
features as user management, push notifications, and
integration with social networking services. The key
moment here is the simplicity for mobile developers. As
soon as many (most) of crowd-sensing applications rely
on mobile phones, this direction is very interesting for
crowd-sensing. Actually, the additional (to data storage)
services are the key idea behind MBaaS.
      </p>
      <p>
        As an Open Source product in this area, we can
mention Convertigo [
        <xref ref-type="bibr" rid="ref43">43</xref>
        ]. It lets developers connect to
enterprise data using a wide range of connectors such as
SQL or Web Services, supports cross-platform
development for desktop and mobile apps on multiple
devices (iOS, Android), as well as server-side business
logic. As another Open Source solution in this area, we
can mention FIWARE cloud (Fig. 9)
      </p>
      <p>
        Figure 9 FIWARE mobile cloud [
        <xref ref-type="bibr" rid="ref44">44</xref>
        ]
      </p>
      <p>
        As per [
        <xref ref-type="bibr" rid="ref45">45</xref>
        ], MBaaS offerings sit squarely between
the existing platform-as-a-service vendors and the full
end-to-end solution space occupied by mobile
enterprise/consumer application platforms. The basic
features for MBaaS include also support for
programming device features (e.g., plugins or APIs) such
as cameras or sensors, support for development
environment (e.g., integrated version control or GIT),
visual development tools, multiple operational systems
support, cloud deployment, testing support, and activity
monitoring. MBaaS should support user authentication
(e.g., LDAP, Facebook Connect), mobile applications
management, and provide task scheduler for push
notifications planning [
        <xref ref-type="bibr" rid="ref46">46</xref>
        ].
      </p>
    </sec>
    <sec id="sec-5">
      <title>5 On practical use-cases and deployment in</title>
    </sec>
    <sec id="sec-6">
      <title>Russia</title>
      <p>As a conclusion for this review, we will present two
use cases for back-end selection in prototype projects
with one mobile telecom operator. Firstly, it is wireless
proximity information collection. Source data are
network fingerprints (list of wireless nodes with signal
strength). Each fingerprint has got a time stamp and
could be associated (in the most cases) with some
geocoordinates. In our prototype, we use the following
chain: Kafka – &gt; Spark Streaming - &gt; Cassandra.
Cassandra has been selected as a database suitable for
time series. Most of the measurements (including
network proximity too) are de-facto time series data
(multivariate time series). With the above mentioned
chain, we can ensure the compliance with all applicable
local restrictions: the personal data will be stored on the
territory of the Russian Federation (all the
abovementioned components could be placed in local data
centers) and Open Source components provide the
absence of claims from the import-substitution point of
view (this schema does not use any imported commercial
software). Such a bundle is in line with modern
approaches, so we can update components, reuse existing
open source solutions for them, and participate in
developers activities (in Open Source communities
around the above-mentioned components).</p>
      <p>
        The second example is much less successful. The
idea of the application is data accumulation for dash
cameras in vehicles. Data-saving entities are geo-coded
media files (media objects). So, it is crowd-sensing for
media data. The business value is transparent – city
cameras cover predefined areas only, where users (cars)
in the city can cover all the areas dynamically. De-facto
standard for media data in a cloud is Amazon S3. But due
to existing regulations (so-called personal data) it could
not be used in Russia, because physically data will be
saved out of the country. Alternatively, we can think
about Azure Cloud Blob Storage [
        <xref ref-type="bibr" rid="ref47">47</xref>
        ] (it is a rival for
Amazon S3), but there is the same question about the
physical location of data outside of Russia. We think that
the “standard” solution is preferable, because there are
many available components and systems based on
Amazon S3 API [
        <xref ref-type="bibr" rid="ref49">48</xref>
        ]. So, even the simulation of this API
on the own data model lets reuse many software
components. In our opinion, with the declared
importsubstitution and data localization regulations Amazon S3
analogue in Russia should be developed. Definitely, data
centers building is not enough and we should talk about
software too. It is a bit strange, why this topic is not
discussed. As a base for S3 analogue development, we
can probably use OpenStack (OpenStack Swift). For
example, as we understand Rackspace Cloud Files is an
analogue of Amazon S3 and based on OpenStack Swift.
We would like to highlight also two important moments.
The above-mentioned mobile backends are oriented
firstly for programming support (e.g., push notifications,
social networks support, etc.). They could not solve the
problems with data saving regulations, because they are
oriented to existing cloud solutions (e.g., Amazon
cloud).
      </p>
      <p>
        Currently, Russia starts processes on the
standardization of Internet of Things and Smart Cities.
Of course, data persistence is an important part of such
processes across the world and Russia could not be an
exception here. Again, it looks reasonable to reuse
already existing developments here. For example, we can
mention such projects as oneM2M or FIWARE (there is
a review for domestic standards in our paper [
        <xref ref-type="bibr" rid="ref50">49</xref>
        ]). But
standards in IoT (M2M) do not provide dedicated data
persistence solutions. They also rely on the existing
cloud solutions. So, all the above- mentioned data saving
regulations and restrictions are applicable here.
      </p>
      <p>
        The next important trend is the strategy of vendors
of sensors and other measuring devices. Many of them
now include data storage as a part of “sensor”. For
example, Bluetooth tags Eddystone from Google include
Google data storage too [
        <xref ref-type="bibr" rid="ref51">50</xref>
        ] (dislike iBeacons tags from
Apple, for example). In our opinion, this trend will only
rise, because data capturing lets vendors to provide
additional services. It means that with the existing
restrictions for data locations, the whole classes of
sensors will be closed to deployment in Russia.
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <surname>Tanas</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          , &amp;
          <string-name>
            <surname>Herrera-Joancomartí</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          (
          <year>2013</year>
          ).
          <article-title>Users as Smart Sensors: A mobile platform for sensing public transport incidents</article-title>
          .
          <source>In Citizen in Sensor Networks</source>
          (pp.
          <fpage>81</fpage>
          -
          <lpage>93</lpage>
          ). Springer Berlin Heidelberg.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <surname>Foremski</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gorawski</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Grochla</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          , &amp;
          <string-name>
            <surname>Polys</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          (
          <year>2015</year>
          ).
          <article-title>Energy-efficient crowdsensing of human mobility and signal levels in cellular networks</article-title>
          .
          <source>Sensors</source>
          ,
          <volume>15</volume>
          (
          <issue>9</issue>
          ),
          <fpage>22060</fpage>
          -
          <lpage>22088</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <surname>Hu</surname>
            ,
            <given-names>X.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chu</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chan</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          , &amp;
          <string-name>
            <surname>Leung</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          (
          <year>2013</year>
          ).
          <article-title>Vita: A crowdsensing-oriented mobile cyber-physical system</article-title>
          .
          <source>Emerging Topics in Computing, IEEE Transactions on, 1(1)</source>
          ,
          <fpage>148</fpage>
          -
          <lpage>165</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <surname>Ganti</surname>
            ,
            <given-names>Raghu K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fan</surname>
            <given-names>Ye</given-names>
          </string-name>
          , and
          <string-name>
            <given-names>Hui</given-names>
            <surname>Lei</surname>
          </string-name>
          .
          <article-title>"Mobile crowdsensing: current state and future challenges</article-title>
          .
          <source>" IEEE Communications Magazine 49.11</source>
          (
          <year>2011</year>
          ):
          <fpage>32</fpage>
          -
          <lpage>39</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <surname>Hirth</surname>
            , Matthias,
            <given-names>Tobias</given-names>
          </string-name>
          <string-name>
            <surname>Hoßfeld</surname>
          </string-name>
          , and Phuoc TranGia.
          <article-title>"Analyzing costs and accuracy of validation mechanisms for crowdsourcing platforms</article-title>
          .
          <source>" Mathematical and Computer Modelling</source>
          <volume>57</volume>
          .11 (
          <year>2013</year>
          ):
          <fpage>2918</fpage>
          -
          <lpage>2932</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <surname>Chen</surname>
          </string-name>
          ,
          <string-name>
            <surname>Changlong</surname>
          </string-name>
          , et al.
          <article-title>"A robust malicious user detection scheme in cooperative spectrum sensing</article-title>
          .
          <source>" Global Communications Conference (GLOBECOM)</source>
          ,
          <year>2012</year>
          IEEE. IEEE,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <surname>Beresford</surname>
            , Alastair R., and
            <given-names>Frank</given-names>
          </string-name>
          <string-name>
            <surname>Stajano</surname>
          </string-name>
          .
          <article-title>"Location privacy in pervasive computing</article-title>
          .
          <source>" IEEE Pervasive computing 1</source>
          (
          <year>2003</year>
          ):
          <fpage>46</fpage>
          -
          <lpage>55</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <surname>Konidala</surname>
            ,
            <given-names>Divyan</given-names>
          </string-name>
          <string-name>
            <surname>Munirathnam</surname>
          </string-name>
          , et al.
          <article-title>"Anonymous authentication of visitors for mobile crowd sensing at amusement parks</article-title>
          .
          <source>" Information Security Practice and Experience</source>
          . Springer Berlin Heidelberg,
          <year>2013</year>
          .
          <fpage>174</fpage>
          -
          <lpage>188</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <surname>Bellavista</surname>
          </string-name>
          ,
          <string-name>
            <surname>Paolo</surname>
          </string-name>
          , et al.
          <source>"Scalable and Cost-Effective Assignment of Mobile Crowdsensing Tasks Based on Profiling Trends and Prediction: The ParticipAct Living Lab Experience." Sensors 15.8</source>
          (
          <year>2015</year>
          ):
          <fpage>18613</fpage>
          -
          <lpage>18640</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <surname>Namiot</surname>
          </string-name>
          , Dmitry, and
          <string-name>
            <surname>Manfred</surname>
          </string-name>
          Sneps-Sneppe.
          <article-title>"On software standards for smart cities: API or DPI." ITU Kaleidoscope Academic Conference: Living in a converged world-Impossible without standards?</article-title>
          ,
          <source>Proceedings of the 2014. IEEE</source>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <surname>Yue</surname>
          </string-name>
          ,
          <string-name>
            <surname>Kun</surname>
          </string-name>
          , et al.
          <article-title>"Research of embedded database SQLite application in intelligent remote monitoring system." Information Technology and Applications (IFITA), 2010 International Forum on</article-title>
          . Vol.
          <volume>2</volume>
          . IEEE,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <surname>Namiot</surname>
          </string-name>
          , Dmitry, and
          <string-name>
            <surname>Manfred</surname>
          </string-name>
          Sneps-Sneppe.
          <article-title>"On Open Source Mobile Sensing." Internet of Things, Smart Spaces, and Next Generation Networks and Systems</article-title>
          . Springer International Publishing,
          <year>2014</year>
          .
          <fpage>82</fpage>
          -
          <lpage>94</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13] Funf Journal http://funf.org/gettingstarted.html Retrieved: Jul,
          <year>2016</year>
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <surname>Novak</surname>
            , Gabor,
            <given-names>Darren</given-names>
          </string-name>
          <string-name>
            <surname>Carlson</surname>
            , and
            <given-names>Stan</given-names>
          </string-name>
          <string-name>
            <surname>Jarzabek</surname>
          </string-name>
          .
          <article-title>"An extensible mobile sensing platform for mhealth and telemedicine applications."</article-title>
          <source>Proceeding of Conference on Mobile and Information Technologies in Medicine (MobileMed</source>
          <year>2013</year>
          ), At Prague, Czech Republic.
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <surname>Namiot</surname>
          </string-name>
          ,
          <source>Dmitry. "On Big Data Stream Processing." International Journal of Open Information Technologies 3</source>
          .8 (
          <year>2015</year>
          ):
          <fpage>48</fpage>
          -
          <lpage>51</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <surname>Kroß</surname>
          </string-name>
          ,
          <string-name>
            <surname>Johannes</surname>
          </string-name>
          , et al.
          <article-title>"Stream Processing on Demand for Lambda Architectures." Computer Performance Engineering</article-title>
          . Springer International Publishing,
          <year>2015</year>
          .
          <fpage>243</fpage>
          -
          <lpage>257</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17] Lambda architecture http://lambda-architecture.net/ Retrieved: Jul,
          <year>2016</year>
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <article-title>Simplifying the (complex) Lambda architecture http</article-title>
          ://voltdb.com/blog/simplifying-complexlambda-architecture.
          <source>Retrieved: Jul</source>
          ,
          <year>2016</year>
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <article-title>Questioning the Lambda Architecture http</article-title>
          ://radar.oreilly.com/
          <year>2014</year>
          /07/questioning-thelambda-architecture.
          <source>htm Retrieved: Jul</source>
          ,
          <year>2016</year>
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <surname>Gal</surname>
            , Zoltan,
            <given-names>Hunor</given-names>
          </string-name>
          <string-name>
            <surname>Sandor</surname>
            , and
            <given-names>Bela</given-names>
          </string-name>
          <string-name>
            <surname>Genge</surname>
          </string-name>
          .
          <article-title>"Information flow and complex event processing of the sensor network communication." Cognitive Infocommunications (CogInfoCom</article-title>
          ),
          <year>2015</year>
          6th IEEE International Conference on. IEEE,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>[21] Apache Flink http://flink.apache.org/features.html</mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <surname>Waga</surname>
            , Duncan, and
            <given-names>Kefa</given-names>
          </string-name>
          <string-name>
            <surname>Rabah</surname>
          </string-name>
          .
          <article-title>"Environmental conditions' big data management and cloud computing analytics for sustainable agriculture."</article-title>
          <source>World Journal of Computer Application and Technology 2.3</source>
          (
          <year>2014</year>
          ):
          <fpage>73</fpage>
          -
          <lpage>81</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23] Chukwa https://chukwa.apache.org/ Retrieved: Jul,
          <year>2016</year>
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <surname>Garg</surname>
            ,
            <given-names>Nishant. Apache</given-names>
          </string-name>
          <string-name>
            <surname>Kafka</surname>
          </string-name>
          .
          <source>Packt Publishing Ltd</source>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <surname>Kaveh</surname>
            ,
            <given-names>Maziar.</given-names>
          </string-name>
          <article-title>"ETL and Analysis of IoT data using OpenTSDB, Kafka, and</article-title>
          <string-name>
            <surname>Spark.</surname>
          </string-name>
          " (
          <year>2015</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <surname>Maarala</surname>
            ,
            <given-names>Altti</given-names>
          </string-name>
          <string-name>
            <surname>Ilari</surname>
          </string-name>
          , et al.
          <article-title>"Low latency analytics for streaming traffic data with Apache Spark." Big Data (Big Data)</article-title>
          ,
          <source>2015 IEEE International Conference on. IEEE</source>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          [27] Kafka Streams http://www.confluent.io/blog/introducing-kafkastreams
          <article-title>-stream-processing-made-simple Retrieved: Jul, 2016</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          [28] Quarks http://quarks-edge.github.io/ Retrieved: Jul,
          <year>2016</year>
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          [29]
          <article-title>Mobile-edge computing executing brief https://portal</article-title>
          .etsi.org/portals/0/tbpages/mec/docs/m ec%
          <source>20executive%20brief%20v1%2028-09-14.pdf Retrieved: Jul</source>
          ,
          <year>2016</year>
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          [30]
          <string-name>
            <surname>Beck</surname>
            ,
            <given-names>Michael</given-names>
          </string-name>
          <string-name>
            <surname>Till</surname>
          </string-name>
          , et al.
          <article-title>"Mobile edge computing: A taxonomy."</article-title>
          <source>Proc. of the Sixth International Conference on Advances in Future Internet</source>
          .
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          [31]
          <string-name>
            <surname>Osseiran</surname>
          </string-name>
          ,
          <string-name>
            <surname>Afif</surname>
          </string-name>
          , et al.
          <article-title>"Scenarios for 5G mobile and wireless communications: the vision of the METIS project</article-title>
          .
          <source>" Communications Magazine, IEEE 52.5</source>
          (
          <year>2014</year>
          ):
          <fpage>26</fpage>
          -
          <lpage>35</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          [32]
          <string-name>
            <surname>Namiot</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Sneps-Sneppe</surname>
          </string-name>
          .
          <article-title>"On Hyper-local Web Pages." Distributed Computer and Communication Networks</article-title>
          . Springer International Publishing,
          <year>2015</year>
          .
          <fpage>11</fpage>
          -
          <lpage>18</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref33">
        <mixed-citation>
          [33]
          <string-name>
            <surname>Sherchan</surname>
          </string-name>
          ,
          <string-name>
            <surname>Wanita</surname>
          </string-name>
          , et al.
          <article-title>"Using on-the-move mining for mobile crowdsensing." Mobile Data Management (MDM</article-title>
          ),
          <source>2012 IEEE 13th International Conference on. IEEE</source>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref34">
        <mixed-citation>
          [34]
          <string-name>
            <surname>Selectel</surname>
            <given-names>API</given-names>
          </string-name>
          (Russia) https://selectel.ru/services/cloud-storage/ Retrieved: May,
          <year>2016</year>
        </mixed-citation>
      </ref>
      <ref id="ref35">
        <mixed-citation>
          [35] Apache CloudStack https://cloudstack.apache.org/ Retrieved: May,
          <year>2016</year>
        </mixed-citation>
      </ref>
      <ref id="ref36">
        <mixed-citation>
          [36]
          <string-name>
            <surname>Kumar</surname>
            , Rakesh, and
            <given-names>Sakshi</given-names>
          </string-name>
          <string-name>
            <surname>Gupta</surname>
          </string-name>
          .
          <article-title>"Open source infrastructure for cloud computing platform using eucalyptus."</article-title>
          <source>Global Journal of Computers &amp; Technology</source>
          Vol.
          <volume>1</volume>
          .
          <issue>2</issue>
          (
          <year>2014</year>
          ):
          <fpage>44</fpage>
          -
          <lpage>50</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref37">
        <mixed-citation>
          [37] OpenStack https://www.openstack.org/ Retrieved: May,
          <year>2016</year>
        </mixed-citation>
      </ref>
      <ref id="ref38">
        <mixed-citation>
          [38]
          <string-name>
            <surname>Wen</surname>
          </string-name>
          ,
          <string-name>
            <surname>Xiaolong</surname>
          </string-name>
          , et al.
          <article-title>"Comparison of open-source cloud management platforms: OpenStack and OpenNebula." Fuzzy Systems and Knowledge Discovery (FSKD</article-title>
          ),
          <year>2012</year>
          9th International Conference on. IEEE,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref39">
        <mixed-citation>
          [39]
          <article-title>Kurento - the stream-oriented generic enabler https://www</article-title>
          .fiware.org/
          <year>2014</year>
          /07/04/kurento-thestream
          <string-name>
            <surname>-</surname>
          </string-name>
          oriented
          <string-name>
            <surname>-</surname>
          </string-name>
          generic-enabler/ Retrieved: May,
          <year>2016</year>
        </mixed-citation>
      </ref>
      <ref id="ref40">
        <mixed-citation>
          [40] IBM Cloud Video https://www.ibm.com/cloudcomputing/solutions/video/ Retrieved: May,
          <year>2016</year>
        </mixed-citation>
      </ref>
      <ref id="ref41">
        <mixed-citation>
          [41] Smartvue http://smartvue.com/cloud-services.
          <source>html Retrieved: May</source>
          ,
          <year>2016</year>
        </mixed-citation>
      </ref>
      <ref id="ref42">
        <mixed-citation>
          [42]
          <string-name>
            <surname>Gheith</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          , et al.
          <source>"IBM Bluemix Mobile Cloud Services." IBM Journal of Research and Development 60</source>
          .
          <fpage>2</fpage>
          -
          <lpage>3</lpage>
          (
          <year>2016</year>
          ):
          <fpage>7</fpage>
          -
          <lpage>1</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref43">
        <mixed-citation>
          [43] Convertigo http://www.convertigo.com Retrieved: May,
          <year>2016</year>
        </mixed-citation>
      </ref>
      <ref id="ref44">
        <mixed-citation>
          [44]
          <string-name>
            <surname>FI-WARE Cloud</surname>
          </string-name>
          Hosting https://forge.fiware.org/plugins/mediawiki/wiki/fiw are/index.php/Cloud_Hosting_Architecture Retrieved: May,
          <year>2016</year>
        </mixed-citation>
      </ref>
      <ref id="ref45">
        <mixed-citation>
          [45]
          <string-name>
            <given-names>Michael</given-names>
            <surname>Facemire Mobile Backend-As-A-Service:</surname>
          </string-name>
          The New Lightweight Middleware? http://blogs.forrester.com/michael_facemire/12-04- 25
          <article-title>- mobile_backend_as_a_service_the_new_lightweig ht_middleware Retrieved: Apr, 2016</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref46">
        <mixed-citation>
          [46]
          <string-name>
            <surname>Namiot</surname>
          </string-name>
          , Dmitry, and
          <string-name>
            <surname>Manfred</surname>
          </string-name>
          Sneps-Sneppe.
          <article-title>"Geofence and network proximity." Internet of Things, Smart Spaces</article-title>
          , and Next Generation Networking. Springer Berlin Heidelberg,
          <year>2013</year>
          .
          <fpage>117</fpage>
          -
          <lpage>127</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref47">
        <mixed-citation>
          [47]
          <string-name>
            <surname>Calder</surname>
          </string-name>
          ,
          <string-name>
            <surname>Brad</surname>
          </string-name>
          , et al.
          <article-title>"Windows Azure Storage: a highly available cloud storage service with strong consistency."</article-title>
          <source>Proceedings of the Twenty-Third ACM Symposium on Operating Systems Principles.</source>
        </mixed-citation>
      </ref>
      <ref id="ref48">
        <mixed-citation>
          <string-name>
            <surname>ACM</surname>
          </string-name>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref49">
        <mixed-citation>
          [48]
          <article-title>Amazon S3 REST API http</article-title>
          ://docs.aws.amazon.com/AmazonS3/latest/API/ Welcome.html Retrieved: Jul,
          <year>2016</year>
        </mixed-citation>
      </ref>
      <ref id="ref50">
        <mixed-citation>
          [49]
          <string-name>
            <surname>Namiot</surname>
          </string-name>
          , Dmitry, and
          <string-name>
            <surname>Manfred</surname>
          </string-name>
          Sneps-Sneppe.
          <article-title>"On the domestic standards for Smart Cities."</article-title>
          <source>International Journal of Open Information Technologies 4</source>
          .7 (
          <year>2016</year>
          ):
          <fpage>32</fpage>
          -
          <lpage>37</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref51">
        <mixed-citation>
          [50]
          <string-name>
            <surname>Namiot</surname>
          </string-name>
          , Dmitry, and
          <string-name>
            <surname>Manfred</surname>
          </string-name>
          Sneps-Sneppe.
          <article-title>"The Physical Web in Smart Cities." Advances in Wireless and Optical Communications (RTUWO</article-title>
          ),
          <year>2015</year>
          . IEEE,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>