<!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>Web API Management Meets the Internet of Things</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Paul Fremantle</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Jacek Kopecky</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Benjamin Aziz</string-name>
          <email>benjamin.azizg@port.ac.uk</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>University of Portsmouth</institution>
          ,
          <addr-line>Portsmouth PO1 3HE</addr-line>
          ,
          <country country="UK">UK</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>In this paper we outline the challenges of Web API management in Internet of Things (IoT) projects. Web API management is a key aspect of service-oriented systems that includes the following elements: metadata publishing, access control and key management, monitoring and monetization of interactions, as well as usage control and throttling. We look at how Web API management principles, including some of the above elements, translate into a world of connected devices (IoT). In particular, we present and evaluate a prototype that addresses the issue of managing authentication with millions of insecure low-power devices communicating with non-HTTP protocols. With this rst step, we are only beginning to investigate IoT API management, therefore we also discuss necessary future work.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>of the envisioned strength of the IoT will emerge when data from multiple sources
can be aggregated, analysed and acted upon. This will increase the demand for
IoT devices to communicate with open Web APIs.</p>
      <p>Our work addresses the new problem of adapting the principles and
technologies of Web API management to the landscape of the IoT, which poses challenges
stemming from the great numbers and low power of IoT devices, compared to
typical full- edged clients for Web APIs. The problems we are addressing can
be clearly stated:
{ What is the impact of the Internet of Things onto Web APIs and Web API</p>
      <p>Management
{ How do IoT devices identify themselves to Web APIs over IoT protocols?
{ How can we add IoT protocol support to existing Web API Management
systems?
{ What is the impact of adding identity, usage control and analytics to existing
IoT protocol interactions?</p>
      <p>This paper provides three clear contributions: rstly, the identi cation of new
challenges that emerge from the use of Web APIs from IoT devices, especially
those around authentication, usage control and analytics. Secondly, we have
implemented a prototype which we believe is the rst of its kind to add support
for IoT speci c protocols to API management systems. Finally we provide early
experimental data on the performance of this prototype.</p>
      <p>The rest of the paper is laid out as follows. In the next section, we look more
closely at the area of Web API Management. We then we review related work
that gives us a basis for de ning in Section 4 the unique challenges of Web API
management for the IoT, especially in connection with binary protocols such
as MQ Telemetry Transport (MQTT) or the Constrained Application Protocol
(CoAP). Section 5 introduces our prototype, a messaging gateway we call
IGNITE, designed to allow us to evaluate the viability and performance of our
approach; in Section 6 we present the design and results of our performance
experiments. We conclude the paper in Section 7 with a summary and a discussion
of further work we expect in this open research area.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Web API Management</title>
      <p>
        There is no universal de nition of this space, and little academic research as
yet, but the authors' industrial experience in this area, together with a review
of [
        <xref ref-type="bibr" rid="ref14 ref16 ref21">14, 16, 21</xref>
        ] identi es a set of key areas to be addressed:
{ Publishing details of the APIs, documentation, SDKs and other human- and
machine-readable material in a portal aimed at developers.
{ Allowing developers to sign up, de ne application clients, test out Web APIs,
and subscribe to them.
{ Managing access control and authentication of API clients using \API keys"
or tokens.
{ Usage control and throttling of tra c to speci c clients based on a Service
      </p>
      <p>Level Agreement (SLA) or other factors.
{ Monitoring the usage of speci c clients in order to be able to limit access or
charge for API usage.</p>
      <p>One of the key aims of API Management is a desire to manage these aspects
orthogonally from the creation of the API itself. This is a major bene t to
developers or organizations that wish to expose APIs, because these capabilities
can be added in a standard way to their systems without requiring custom
development that is speci c to the application or business logic.</p>
      <p>This is often achieved by the use of a pattern called a \reverse proxy", where
the client believes it is connecting to the API itself, but the reverse proxy
intercepts these calls, and acts upon them before passing them onto the \target"
API. This pattern of infrastructure is also often known as a server-side gateway.
3</p>
    </sec>
    <sec id="sec-3">
      <title>Related Work</title>
      <p>
        While there is a great deal of industrial e ort and research on Web API
management, the academic literature is sparse. In the industrial sector, much of the
literature is provided by vendors. However, the report by Forrester [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] provides
a good overview. In the academic literature, Raivio et al. [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] explore the
business models around Open APIs for the telecommunications industry, and we
discuss in [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] the challenges and approaches of managing Web APIs.
      </p>
      <p>
        In the IoT space, there are a number of e orts around creating open APIs for
IoT: for instance, HyperCat [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] is a JSON-based catalogue format for
exposing IoT information over the web, developed by a consortium of academic and
industrial partners, and ZettaJS [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] is an open source Web API for IoT devices.
      </p>
      <p>
        There are a number of existing IoT gateways, including [
        <xref ref-type="bibr" rid="ref10 ref22 ref8">8, 10, 22</xref>
        ], that deal
with the problem of connecting wireless devices to the wider Internet. They
typically bridge multiple low-power devices in a house or factory into a
traditional Internet connection. However, our literature search did not identify any
server-side gateways/reverse proxies speci cally designed for IoT.
      </p>
      <p>
        We identi ed two signi cant gaps in the current literature and existing work
in this space. Firstly, most of the work on using APIs with IoT are very limited:
there is a common assumption that devices will only communicate with a single
API, and there is no discussion of management of these APIs beyond access
control. In the access control space, there is a reliance on using outdated models
of authentication and authorization (passwords and/or client-side certi cates)
that are not suitable for device-to-server communication. Two papers address
this with token-based authentication schemes: in [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ], we addressed the use of
OAuth2 with MQTT, and in IOT-OAS [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], Cirani et al. address the use of
OAuth2 with CoAP. However, neither of these publications deal with the wider
issues around API Management including monitoring, usage control, simplicity
of key issuing, developer portals, and monetisation.
      </p>
      <p>Secondly, when looking at the API Management related work, we found no
research that addresses how API Management techniques can be used in the face
of IoT speci c challenges, especially when using IoT-friendly binary protocols
such as MQTT and CoAP. These protocols are important for IoT because of
the lower requirements for energy and the lower cost of components required to
support them.
4</p>
    </sec>
    <sec id="sec-4">
      <title>Challenges for the Internet of Things and Web APIs</title>
      <p>
        There is no accurate number of connected devices, but the best estimates all
agree that there are more devices currently than humans on the planet. Cisco
forecasts that there will be 50 billion connected devices by 2020 [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ].
      </p>
      <p>From our experience working with commercial customers of Web API
management software, we nd that most Web APIs have tens, hundreds or maybe
thousands of known clients. These clients act as machine-to-machine systems
where one Web server connects to another Web server.</p>
      <p>
        Most new Web APIs are working with the OAuth2 [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] standard and utilising
the \Bearer Token" as the API Key. One of the challenges of moving from a
model where the API clients are themselves Web servers to a more diverse model
where the clients are devices is that the security of these devices is typically much
easier to compromise than the security of Web servers. This problem has become
apparent with mobile devices. Mobile application developers must embed the
OAuth2 credentials into their mobile apps, and because those mobile devices
can be \rooted", these credentials can be stolen. There are solutions to this such
as Samsung Knox [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ], but these are proprietary and only suitable for high-end
devices. This rules them out for many IoT devices.
      </p>
      <p>
        Therefore we envisage that IoT devices will be more likely to need their own
OAuth2 credentials per device. It is impractical to think that these client keys
will be issued manually to the IoT devices: this process must be automated. This
is enabled by the extension to the OAuth2 speci cation called Dynamic Client
Registration (DCR) [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. DCR automates the process that a developer would go
through on the API portal to gain OAuth2 credentials on behalf of their API
client. We therefore intend to use our prototype to explore the use of DCR in
IoT scenarios.
      </p>
      <p>We are not aware of any API yet in production where millions of devices
each have their own API key, their own set of throttling measures, etc. It can
therefore be seen that API management systems will need to evolve to support
very large numbers of keys, with millions or even tens of millions of concurrently
connected devices.</p>
      <p>
        Another challenge is that IoT devices are often low-powered and reliant on
low energy usage. Protocols such as MQTT and CoAP are lower in bandwidth
which has a direct e ect on energy usage, especially in wireless transmission
scenarios. Nicholas [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] shows that MQTT uses considerably less energy that
HTTPS in comparative scenarios. This is particularly true in scenarios where
noti cations need to be sent to devices (\push" scenarios). The traditional way
to do this in Web APIs was to require the client to poll the server on a regular
basis for updates, which is very expensive in energy and bandwidth usage.
      </p>
      <p>In summary, our work is addressing how to adapt the existing Web API
management capabilities to support:
{ Large numbers of clients, each with their own credential.
{ Devices communicating with public APIs via binary and low-energy
protocols such as MQTT and CoAP.
{ Usage control, access control, throttling and other API management
techniques applied to IoT scenarios.</p>
      <p>{ How to apply these capabilities orthogonally to existing systems.</p>
    </sec>
    <sec id="sec-5">
      <title>5 IGNITE - an API Gateway for IoT protocols</title>
      <p>To solve these issues we are building a system that allows using the capabilities
of existing API management solutions with IoT protocols. We call the system
IGNITE (Intelligent Gateway for Network IoT Events)1. Our initial work focuses
on the MQTT protocol, but in future we intend to extend this to CoAP.</p>
      <p>
        For our proof-of-concept prototype, we extended three major existing open
source projects:
{ The WSO2 API Manager [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] project provides the main capabilities for Web
API Management including a developer portal, subscription management
system, key server, API gateway, access control, throttling, monitoring and
analytics system;
{ The MITREid-Connect project implements of OAuth2 and OpenID
Connect [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] and includes new capabilities such as Dynamic Client Registation
and Token Introspection.
{ The Mosquitto MQTT broker provides an open source messaging broker for
the MQTT protocol.
      </p>
      <p>As of March 2015, upcoming releases of both the WSO2 API Manager and
the MITREid-Connect projects plan to support using these two projects in
conjunction with each other. Both projects are written in Java.</p>
      <p>In conjunction with these projects we have created an API management
gateway for IoT | a reverse proxy for IoT protocols that plugs into the existing
key server architecture and monitoring capabilities.</p>
      <p>We currently have built a rst prototype of this gateway in Python and we
are porting it to Java to improve performance. Figure 1 shows the overall
architecture with the capabilities of the existing projects plus our added capabilities.</p>
      <p>The IGNITE component implements the following logic: On a CONNECT packet
arriving, it extracts the OAuth2 Bearer token from the username eld in the
packet. It then invokes the Token Introspection service on the MITREid-Connect
server to validate the token. If the token is valid, the gateway replaces the token
in the request with the userid returned from the introspection call, and forwards
the request on to the existing MQTT Broker, which may implement its own
validation checks as well. If the token is invalid or no longer active, the IGNITE
1 The source code is available at https://github.com/pzfreo/ignite
responds to the client with a packet that indicates that the credential was invalid
(a CONNACK packet with ReturnCode=5).</p>
      <p>The monitoring and usage control/throttling aspects of IGNITE are still in
development.
6</p>
    </sec>
    <sec id="sec-6">
      <title>Results</title>
      <p>To test the system, we evaluated the performance of this system compared to a
direct call to the MQTT broker. In this case, the MQTT broker was not running
any authentication of its own, so the comparison is not completely like-for-like.
Figure 2 shows the architecture of the test set-up.</p>
      <p>
        We used the open source Mosquitto [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] broker as the backend of the tests and
ensured that there was a subscriber attached so that the messages would require
delivery. For the tests we sampled two ows: A CONNECT ow and a PUBLISH
ow. For PUBLISH we tested all three levels of QoS: re-and-forget (QoS0), at
least once (QoS1) and exactly-once (QoS2). QoS1 and QoS2 involve multiple
packets transferring between the client and the server.
      </p>
      <p>The tests were all run on a single machine2 using the localhost networking.
The gateway tests include both the more functional Python prototype of IGNITE
and an early prototype of the Java version. The tests show the average result
over 1,000 CONNECT/CONNACK messages and 10,000 PUBLISH messages, in both
cases giving the system time to warm up before capturing timing data. The QoS
1 and 2 tests inherently capture the use of PUBACK, PUBREC, PUBREL, and PUBCOMP
messages. The focus on connection was because the authentication step during
connection is where the most work takes place, and on publication because this is
the most used ow in MQTT, as subscriptions are rare compared to publication.
(a) CONNECT
(b) PUBLISH</p>
      <p>The CONNECT results are shown in Figure 3a. The results show that the
overhead of using the Python IGNITE for CONNECT is around 7,700 s per request.
Given that this includes a HTTP REST call to the key server this is not
unexpected. In the WSO2 API Manager this overhead has been reduced by
implementing a binary key validation protocol instead of HTTP. However given that
MQTT is a persistent connection compared to existing Web API gateways and
HTTP where each request needs to be validated we feel this is a very e ective
result. We did not (yet) implement caching of token introspection results which
could improve this considerably.</p>
      <p>The PUBLISH numbers (Fig. 3b) show a much lower overhead. For QoS0
the overhead of going through the IGNITE is around 11 s. The QoS2 case has
2 Mac OS/X 10.10 running on a 3Ghz Intel Core i7 with 16Gb RAM and SSD storage
a signi cant higher overhead due to considerably more complex message ow.
Even in this case the overhead is less than 1500 s and the preliminary data
from the Java implementation shows an overhead of less than 60 s. Note that at
this stage we have not yet implemented usage control and monitoring into the
PUBLISH ow so these numbers do not yet re ect the full workload required. On
the other hand there is as yet no optimisation of this prototype code.</p>
      <p>
        To put these numbers into perspective, the typical overhead of such a
gateway in the HTTP world is around 500 s without implementing any OAuth2
token introspection [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. In addition, these numbers are all likely to be dwarfed
by average internet latencies. For example, the speed of light requires a
minimum latency of 40,000 s between the East and West Coasts of the USA, and
typical real-world latencies are twice this. Even with prototype code and no
optimization, these numbers are respectable and would t into the tolerance of many
existing IoT projects. Therefore we can conclude that this approach is eminently
practicable.
7
      </p>
    </sec>
    <sec id="sec-7">
      <title>Conclusions and further work</title>
      <p>In this paper we have outlined the challenges around applying the newly
emerging area of Web APIs and Web API to connected devices and the Internet of
Things. We outline our model of enhancing existing Web API management
systems with a new gateway | IGNITE | that focuses on IoT protocols and
demonstrates how protocols such as MQTT can be integrated into existing API
Management models with some success, in a completely orthogonal manner. In
addition, the model of the server-side IoT gateway that we have introduced with
IGNITE o ers a considerable number of possibilities for managing usage control,
access control, monitoring, etc.</p>
      <p>We have identi ed a number of areas for future research. There is work on
improving the IGNITE: to support CoAP, to optimize performance; to integrate
into the monitoring framework; and to support throttling of tra c. In addition
we believe there is considerable scope for research to be done on description
languages for using MQTT and CoAP for IoT Web APIs.</p>
      <p>Finally we present preliminary data on performance which shows that the
overheads of such approaches are reasonable even before optimisation, caching
and other techniques are introduced.
8</p>
    </sec>
    <sec id="sec-8">
      <title>Acknowledgements</title>
      <p>The travel expenses of presenting this research paper were funded by the
University of Portsmouth, Faculty of Technology Research Capital Investment Fund
(RCIF) number 46175.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          <source>1. An Open Source MQTT v3.1 Broker</source>
          , http://mosquitto.org/, (Visited on
          <year>2013</year>
          /13/11)
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2. Final:
          <article-title>OpenID Connect Dynamic Client Registration 1.0 incorporating errata set 1</article-title>
          , http://openid.net/specs/openid-connect
          <article-title>-registration-1_0</article-title>
          .html
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Power</surname>
          </string-name>
          <article-title>Pro ling: HTTPS Long Polling vs</article-title>
          .
          <source>MQTT with SSL</source>
          , on Android, http: //stephendnicholas.com/archives/1217, (Visited on
          <year>2013</year>
          /06/04)
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>WSO2 API</surname>
          </string-name>
          Manager -
          <volume>100</volume>
          % Open Source API Management Platform | WSO2 Inc, http://wso2.com/products/api-manager/
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <article-title>Xively by LogMeIn { Business Solutions for the Internet of Things</article-title>
          , https:// xively.com/
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Zetta - An API-First Internet of Things (IoT) Platform - Free</surname>
          </string-name>
          and Open Source Software, http://www.zettajs.org/
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Abeyruwan</surname>
            ,
            <given-names>D.:</given-names>
          </string-name>
          <article-title>ESB Performance Round 6.5 | WSO2 Inc</article-title>
          . http:// wso2.com/library/articles/2013/01/esb-performance-
          <volume>65</volume>
          /#latency, (Visited on
          <year>2015</year>
          /03/24)
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Chen</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jia</surname>
            ,
            <given-names>X.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Li</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          :
          <article-title>A brief introduction to IoT gateway</article-title>
          .
          <source>In: IET International Conference on Communication Technology and Application (ICCTA</source>
          <year>2011</year>
          ). pp.
          <volume>610</volume>
          {
          <issue>613</issue>
          (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Cirani</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Picone</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gonizzi</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Veltri</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ferrari</surname>
          </string-name>
          , G.:
          <article-title>IoT-OAS: An OAuthbased Authorization Service Architecture for Secure Services in IoT Scenarios (</article-title>
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Datta</surname>
            ,
            <given-names>S.K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bonnet</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nikaein</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          :
          <article-title>An IoT gateway centric architecture to provide novel M2M services</article-title>
          .
          <source>In: Internet of Things (WF-IoT)</source>
          ,
          <source>2014 IEEE World Forum on</source>
          . pp.
          <volume>514</volume>
          {
          <fpage>519</fpage>
          .
          <string-name>
            <surname>IEEE</surname>
          </string-name>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11. (ed), D.H.:
          <article-title>The OAuth 2.0 Authorization Framework</article-title>
          .
          <source>RFC 6749</source>
          ,
          <string-name>
            <surname>IETF</surname>
          </string-name>
          (
          <year>October 2012</year>
          ), available at http://www.rfc-editor.org/rfc/rfc6749.txt
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Evans</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>The internet of things. How the Next Evolution of the Internet is Changing Everything</article-title>
          , Whitepaper, Cisco Internet Business Solutions Group (IBSG) (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Fremantle</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Aziz</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Scott</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kopecky</surname>
          </string-name>
          , J.:
          <article-title>Federated Identity and Access Management for the Internet of Things</article-title>
          .
          <source>In: 3rd International Workshop on the Secure IoT</source>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>He</surname>
            <given-names>ner</given-names>
          </string-name>
          , R.:
          <article-title>The Forrester WaveTM: API Management Solutions</article-title>
          ,
          <year>Q3 2014</year>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Kopecky</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fremantle</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Boakes</surname>
            ,
            <given-names>R.:</given-names>
          </string-name>
          <article-title>A history and future of Web APIs</article-title>
          . Information
          <string-name>
            <surname>Technology</surname>
          </string-name>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Lane</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          :
          <article-title>API Evangelist Blog</article-title>
          . http://apievangelist.com/blog/, (Visited on
          <year>2015</year>
          /03/24)
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Lea</surname>
          </string-name>
          , R.:
          <article-title>HyperCat: an IoT interoperability speci cation (</article-title>
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Raivio</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Luukkainen</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Seppala</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Towards Open Telco-Business models of API management providers</article-title>
          .
          <source>In: System Sciences (HICSS)</source>
          ,
          <year>2011</year>
          44th Hawaii International Conference on. pp.
          <volume>1</volume>
          {
          <fpage>11</fpage>
          .
          <string-name>
            <surname>IEEE</surname>
          </string-name>
          (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Richer</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Greenwood</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bakis</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>Componentization of security principles</article-title>
          .
          <source>In: Symposium on Usable Privacy and Security (SOUPS)</source>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Samsung</surname>
          </string-name>
          <article-title>: Mobile Enterprise Security | Samsung KNOX</article-title>
          . https://www. samsungknox.com/en, (Visited on
          <year>2015</year>
          /03/24)
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>Williams</surname>
          </string-name>
          , A.:
          <article-title>5 Rules For API Management | TechCrunch</article-title>
          . http://techcrunch. com/
          <year>2012</year>
          /11/11/5
          <article-title>-rules-for-api-</article-title>
          <string-name>
            <surname>management</surname>
            <given-names>/</given-names>
          </string-name>
          , (Visited on
          <year>2015</year>
          /03/24)
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>Zhu</surname>
            ,
            <given-names>Q.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wang</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chen</surname>
            ,
            <given-names>Q.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Liu</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Qin</surname>
            ,
            <given-names>W.:</given-names>
          </string-name>
          <article-title>IoT gateway: Bridging wireless sensor networks into internet of things</article-title>
          .
          <source>In: Embedded and Ubiquitous Computing (EUC)</source>
          ,
          <year>2010</year>
          IEEE/IFIP 8th International Conference on. pp.
          <volume>347</volume>
          {
          <fpage>352</fpage>
          .
          <string-name>
            <surname>IEEE</surname>
          </string-name>
          (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>