Internet DRAFT - draft-tuwien-dsg-diameterofthings
draft-tuwien-dsg-diameterofthings
Distributed Systems Group S. Qanbari
Internet-Draft S. Mahdizadeh
S. Dustdar
Intended status: Informational TU Wien
Expires: March 2016 N. Behinaein
R. Rahimzadeh
BIHE
September 20, 2015
Diameter of Things (DoT): A Protocol for Real-time
Telemetry of IoT Applications
draft-tuwien-dsg-diameterofthings-01
Abstract
The Diameter of Things (DoT) protocol is intended to provide a real-
time metering framework for IoT applications in resource-constraint
gateways. Respecting resource capacity constraints on edge devices
establishes a firm requirement for a lightweight protocol in support
of fine-grained telemetry of IoT deployment units. Such metering
capability is needed when lack of resources among competing
applications dictates our schedule and credit allocation. In response
to these findings, the authors offer the DoT protocol that can be
incorporated to implement real-time metering of IoT services for
prepaid subscribers as well as Pay-per-use economic models. The DoT
employs mechanisms to handle the composite application resource usage
units consumed/charged against a single user balance. Such charging
methods come in two models of time-based and event-based patterns. The
former is used for scenarios where the charged units are continuously
consumed while the latter is typically used when units are implicit
invocation events. The DoT-enabled platform performs a chained
metering transaction on a graph of dependent IoT microservices,
collects the emitted usage data, then generates billable artifacts
from the chain of metering tokens. Finally it permits micropayments to
take place in parallel.
Qanbari, et al. Expires March 20, 2016 [Page 1]
Internet-Draft Diameter of Things (DoT) September 2015
Status of This Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. This document may not be modified,
and derivative works of it may not be created, and it may not be
published except as an Internet-Draft.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet-
Drafts.
Internet-Drafts are draft documents valid for a maximum of six
months and may be updated, replaced, or obsoleted by other documents
at any time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html
This Internet-Draft will expire on March 20, 2016.
Copyright Notice
Copyright (c) 2015 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with
respect to this document. Code Components extracted from this
document must include Simplified BSD License text as described in
Section 4.e of the Trust Legal Provisions and are provided without
warranty as described in the Simplified BSD License.
Qanbari, et al. Expires March 20, 2016 [Page 2]
Internet-Draft Diameter of Things (DoT) September 2015
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1. Quest for Metering . . . . . . . . . . . . . . . . . . . 4
1.2. Terminology . . . . . . . . . . . . . . . . . . . . . . . 5
2. Conventions used in this document . . . . . . . . . . . . . . 6
3. Architecture Models . . . . . . . . . . . . . . . . . . . . . 7
4. DoT Metering Token Messages . . . . . . . . . . . . . . . . . 8
5. DoT-based IoT Application Overview . . . . . . . . . . . . . 10
5.1. DoT-based Application Topology . . . . . . . . . . . . . 10
5.2. DoT-based Metering Plan . . . . . . . . . . . . . . . . . 12
6. DoT Interrogations . . . . . . . . . . . . . . . . . . . . . 12
6.1. Initial Identification (II) . . . . . . . . . . . . . . . 17
6.2. Request Realization (RR). . . . . . . . . . . . . . . . . 18
6.3. Telemetry Transmission (TT) . . . . . . . . . . . . . . . 18
6.4. Value Verification (VV) . . . . . . . . . . . . . . . . . 21
7. DoT Messages . . . . . . . . . . . . . . . . . . . . . . . . . 22
8. DoT Application State Machine . . . . . . . . . . . . . . . . 25
9. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 35
10. Security Considerations . . . . . . . . . . . . . . . . . . 35
11. IANA Considerations . . . . . . . . . . . . . . . . . . . . 35
12. Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . 36
13. References . . . . . . . . . . . . . . . . . . . . . . . . . 36
13.1. Normative References . . . . . . . . . . . . . . . . . . 36
14. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 37
1. Introduction
Utility computing\cite{Buyya:2009:CCE:1528937.1529211} is an evolving
facet of ubiquitous computing that aims to converge with emerging
Internet of Things (IoT) infrastructure and applications for sensor-
equipped edge devices. The agility and flexibility to quickly
provision IoT services on such gateways requires an awareness of how
underlying resources are being utilized as metered services. Such
awareness mechanisms enable IoT platforms to adjusts the resource
leveling to not exceed the elasticity constraints such that stringent
QoS is achievable.
Respecting resource elasticity requirements on edge devices
establishes a firm requirement of a lightweight protocol with
support of fine-grained telemetry for IoT deployment units. Such
metering capability is needed when lack of resources among competing
applications dictates our schedule and credit allocation. In
response to these findings, the authors offer a DoT protocol that
can be incorporated to implement real-time AAA of IoT services for
prepaid subscribers to make and enforce trade-off decisions.
Qanbari, et al. Expires March 20, 2016 [Page 3]
Internet-Draft Diameter of Things (DoT) September 2015
Based on this protocol, IoT infrastructure providers are able to
collect the emitted usage data, then generate billable artifacts
from a chain of metering transaction tokens. Finally it permits
micro-payments to take place in parallel. This document specifies a
DoT application that can be used to implement real-time telemetry
for a variety of IoT applications.
1.1. Quest for Metering
The quest for telemetry of the client's IoT application resource
usage becomes more challenging when the job is deployed and
processed in a constrained environment. Such applications collect
data via sensors and control actuators for more utilization in home
automation, industrial control systems, smart cities and other IoT
deployments. In this context, telemetry enables a Pay-per-use or
utility-based pricing model through metered data to achieve more
financial transparency for resource-constrained applications.
Metering measures rates of resource utilization via metrics, such as
number of application invocations, data storage or memory usage
consumed by the IoT service subscribers. Metrics are statistical
units that indicate how consumption is measured and priced.
Furthermore, metering is the process of measuring and recording the
usage of an entire IoT application topology, individual parts of the
topology, or specific services, tasks and resources. From the
provider view, the metering mechanisms for service usage differ
widely, due to their offerings which are influenced by their IoT
business models. Such mechanisms range from usage over time,
invocation-basis to subscription models. Thus, IoT application
providers are encouraged to offer reasonable pricing models to
monetize the corresponding metering model.
To fulfill such requirements, we have incorporated and extended the
Diameter base protocol defined in [RFC6733] to an IoT domain. There
are several established Diameter base protocol applications like
Mobile IPv4 [RFC4004], Diameter Credit-Control [RFC4006] and Session
Initiation Protocol (SIP) [RFC4740] applications. However, none of
them completely conforms to the IoT application metering models.
The current accounting models specified in the Diameter base are not
sufficient for real-time resource usage control, where credit
allocation is to be determined prior to and after the service
invocation. In this sense, the existing Diameter base applications
do not provide dynamic metering policy enforcement in resource and
credit allocations for prepaid IoT users. Diameter extensibility
Qanbari, et al. Expires March 20, 2016 [Page 4]
Internet-Draft Diameter of Things (DoT) September 2015
allows us to define any protocol above the Diameter base protocol.
Along with this idea, in order to support real-time metering, credit
control and resource allocation, we have extended the Diameter to
Diameter of Things (DoT) protocol by adding four new types of
servers in the AAA infrastructure: DoT provisioning server, DoT
resource control server, DoT metering server and DoT payment server.
Further details regarding the aforementioned entities will be
discussed in a later section of DoT architecture models. In summary,
our main focus is the specification of an extended Diameter base
protocol to an IoT application domain. This contributes to
fully implementing a real-time policy-based telemetry and resource
control for a variety of IoT applications.
1.2. Terminology
AAA
Authentication, Authorization, and Accounting for a specific IoT
application
AA answer
AA answer generically refers to a service specific authorization and
authentication answer. AA answer commands are defined in service
specific authorization applications, e.g., [NASREQ] and [DIAMMIP].
AA request
AA request generically refers to a service specific authorization and
authentication request. AA request commands are defined in service
specific authorization applications e.g., [NASREQ] and [DIAMMIP].
Diameter of Things (DoT)
DoT implements a mechanism to provision IoT deployment units, control
resource elasticity, meter usage, and charge the user credit for the
rendered IoT applications.
IoT Microservice
A fine-grained atomic task performed by an IoT service on a device.
IoT Application Topology
It contains the composition of hybrid collaborating IoT
microservices to meet the user's request. The topology is packages
with the elasticity requirements and constraints (hardware or
software resources) which will dictate our schedule and credit
allocation within the runtime environment.
Qanbari, et al. Expires March 20, 2016 [Page 5]
Internet-Draft Diameter of Things (DoT) September 2015
Metering Server
A DoT metering server performs real-time metering and rating of
IoT applications deployment.
Provisioning Server
Provisioning server refers to initial configuration, deployment
and management of IoT applications for subscribers. It also deals
with ensuring the underlying IoT device layer is available to serve.
Payment Server
The micropayment transaction charges subscribers upon relatively
small amounts for a unit of resource usage. It basically transfers
a certain amount of trade in the payWord. In the Pay Word scheme a
payment order consists of two parts, a digitally signed payment
authority and a separate payment token which determines the amount.
A chained hash function, is used to authenticate the token. The
server then calculates a chain of payment tokens (or paychain).
Payments are made by revealing successive paychain tokens.
Rating
The process of giving price to an IoT application usage events.
This applies to service usage as well as underlying resource usage.
Resource-control Server
Resource control server implements a mechanism that interacts in
real-time with a resource and credit allocation to an account as
well as the IoT application. It controls the charges related to
the specific IoT application usage.
One-cycle event
It indicates a single-request-response message exchange pattern
which one specific service is invoked by one consumer at a time
while no session state is maintained. One message is exchanged in
each direction between a Requesting DoT Node and a Responding
DoT Node.
2. Conventions used in this document
In examples, "C:" and "S:" indicate lines sent by the client and
server respectively.
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC-2119 [RFC2119].
Qanbari, et al. Expires March 20, 2016 [Page 6]
Internet-Draft Diameter of Things (DoT) September 2015
In this document, these words will appear with that interpretation
only when in ALL CAPS. Lower case uses of these words are not to be
interpreted as carrying RFC-2119 significance.
In this document, the characters ">>" preceding an indented line(s)
indicates a compliance requirement statement using the key words
listed above. This convention aids reviewers in quickly identifying
or finding the explicit compliance requirements of this RFC.
3. Architecture Models
Figure 1 illustrates a schematic view on collaborating components of
DoT architecture. It contains of a DoT client, Provisioning server,
Resource control server, Metering server, and a Payment server.
+------+ +----------+ AAA & +------------+
| End |<-->| DoT | DoT | AAA |
| User | | Client |<-------->| Server |
+------+ +----------+ Protocol +------------+
^ ^
DoT | DoT |
Protocol| Protocol|
| |
v v
+------------+ DoT +----------+ DoT +---------+
|Provisioning| Protocol | Resource | Protocol | Payment |
| Server |<-------->| Control |<-------->| Server |
| | | Server | | |
+------------+ +----------+ +---------+
| ^
| | DoT
| | Protocol
| v
| Dot +------------+
| Protocol | Metering |
--------------->| Server |
+------------+
Figure 1: Typical Diameter of Things (DoT) application architecture
As the end user defines and composes an IoT application, the request
is forwarded to the DoT client. The DoT client submits the composed
application to the DoT infrastructure which determines possible
charges, verifies user accounts, controls the resource allocation to
the application, meters the usage, and finally generates a bill and
deducts the corresponding credit from the end user's account balance.
Qanbari, et al. Expires March 20, 2016 [Page 7]
Internet-Draft Diameter of Things (DoT) September 2015
DoT client contacts the AAA server with AAA protocol to authenticate
and authorize the end user. When the end user submits the IoT
application topology graph, the DoT client contacts the provisioning
server to submit an application topology. Afterwards, the
provisioning server contacts the resource control server with
information of required resource units. The resource control server
reserves resources that need to be
allocated to the service.
Finally the DoT client receives the grant resource message and
informs the end user that the request has been granted. Next, the
IoT application is deployed and instantiated, then the submitted
topology is registered to metering server for telemetry and credit
control purposes.
The metering server is responsible to perform the metering
transactions according to the submitted topology and meter the
services by calling metering task of each service in the chain.
Metering transactions will remain running until the termination
request is sent from DoT client to the provisioning server.
After receiving termination request, the resource control server
releases the resources and sends the billable artifacts related to
the user usage to the payment server. The payment server, then,
invokes the payment transaction and deducts credit from the end
user's account and refunds unused reserved credit to the user's
account.
4. DoT Metering Token Messages
In DoT application architecture, metered values are transfered via
tokens. This section defines DoT token message attributes that MUST be
supported by all DoT implementations that conform to this
specification. The CBOR [RFC7049] message format is considered for
the metering tokens transmission since it can decrease payload sizes
compared to other data formats.
Qanbari, et al. Expires March 20, 2016 [Page 8]
Internet-Draft Diameter of Things (DoT) September 2015
------------------------------------
| Metering Token Message Format |
| Header |
| Token ID (OctedString) |
| App Identifier (Unsigned32) |
----------------------- | Origin Session ID (OctedString) |
| | | Token Timestamp (Time) |
| IoT App | | Polict ID (Unsigned8) |
| | | Metric ID Array (Collection) |
|-----------------------| | Body |
| DoT | | Service Usage [key,values] |
| | | Resource Usage Array [key,values]|
| +++++++++--------------------------------------------
| + Token +-------
| +++++++++ | |
| | | Encode/Decode
|-----------------------| | Metering Token
| | |
| CoAP | Default Size= 1 KB
| | |
| ++++++++++++++++++++ | |
| +Payload Data Model+ | |
| + CBOR +-------
| ++++++++++++++++++++ |
| |
|-----------------------|
| |
| UDP |
| |
-----------------------
<DoT-Token-Message> ::= < Token-Id >
{ App-Identifier }
{ Origin-Session-Id }
{ Token-Timestamp }
{ Policy-Id }
{ Metric-Id-Array }
{ Service-Usage }
{ Resource-Usage-Array}
Figure 2: Diameter of Things (DoT) Metering Token Structure
5. DoT-based IoT Application Overview
The DoT application defined in this specification implements flexible
metering policy as well as the definition and constraints of the
application topology.
Qanbari, et al. Expires March 20, 2016 [Page 9]
Internet-Draft Diameter of Things (DoT) September 2015
5.1. DoT-based Application Topology
The main responsibility of the provisioning server is the actual
provision of the requested IoT application package. It contains the
composition of collaborating IoT microservices to meet the user's
request.
Each IoT microservice is predefined with a detailed specification
such as its ID, constraints and various usage patterns and policies.
For instance, as defined in List 1. they can be advertised with
diverse pricing models due to the event-based or time-based patterns
for specific subscribers. The IoT microservices elasticity
requirements and constraints (hardware or software resources) are
also defined in the topology which will dictate our schedule within
the runtime environment. The end user's request can be received in
the form of a JSON object. It contains user information as well as
the user requirements in terms of IoT composite application topology
and its specification, to realize the intended behavior. After
receiving the request, a provisioning server generates a dependency
graph of the application topology complying with its specification.
{ "microserviceID":"01",
"microserviceName":"getTemperature",
"uri":"getTemperature.py",
"execute":"python getTemperature.py",
"constraints":{"runtime": "python 2.7","memory": "..."}
"policies":[{"policyID":"PL_01_01",
"cost":"$2/week",
"desc":"session mode - $2 per week"},
{"policyID":"PL_01_02",
"cost":"0.01cent/invoke",
"desc":"event mode - 0.01cent per invoke"},
{"policyID":"PL_01_03",
"cost":"$1",
"desc":"subscription fee"},
], }
List 1. Sample IoT microservice elasticity requirement definition
The Dependency graph displays dependencies between different
microservices which are requested to be in topology. In the
DoT protocol, this dependency graph is used in forming the
transaction model for metering the IoT deployment unit.
Qanbari, et al. Expires March 20, 2016 [Page 10]
Internet-Draft Diameter of Things (DoT) September 2015
The dependency graph is a directional graph where each node of the
graph represents an available microservice in the service package
registry. Similarly, each edge of the graph shows dependencies
between two microservices (two nodes). The edge has a direction that
shows the execution order of microservices involved in this edge.
The sample of dependency graph in the form of incidence matrix is
shown in the Figure 3.
Display (Humidity & Temperature)
------
| |
| S_03 |
| |
------
^ ^
getHumidity | | getTemperature
------ | | ------
| | | | | |
| S_02 |---------- -----------| S_01 |
| | E_02 E_01 | |
------ (=PL_02_01) (=PL_01_02) ------
E_01 E_02
-------------------------------
S_03 | (PL_01_02) (PL_02_01) |
| |
| |
S_02 | 0 -(PL_02_01) |
| |
| |
S_01 | -(PL_01_02) 0 |
--------------------------------
Figure 3: Typical DoT Application Topology and its Incident Matrix
Additionally, each edge has a label which shows the policy to be in
effect for this connection. The Resource control server realizes
such metering policies using a predefined incident matrix. This
incident matrix represents the metering policies for our directed
acyclic graph (DAG) of IoT services. The metering policy incident
matrix P_t is a n*m matrix of [P_ij] policies, where n is the
number of nodes (vertices) and m is number of lines (Edges). In the
Qanbari, et al. Expires March 20, 2016 [Page 11]
Internet-Draft Diameter of Things (DoT) September 2015
cell of N_i and V_j, the P_ij indicates the rate of call per granted
unit (time & events). It enables each service to invoke its neighbor
with the attached policy. Therefore, when a client sends a request
containing a tailored IoT application topology, the Resource control
server is able to rate the request based on the enforced metering
policies of time (duration) and event-based usage patterns.
5.2. DoT-based Metering Plan
The metering plans define the allocation mechanism for granting the
required resource units to an IoT application/constituent
microservices. It is an indication that the following assumptions
underlying our IoT telemetry solution has been considered for the
proper positioning of DoT protocol. The IoT applications are
advertised with an associated charging plans. In case of cloud-based
model, there can be a subscription fee for such pay-per-use plans.
The cost of obtaining such plans is known as the plan's "premium"
which is the price that is calculated and offered in the subscription
phase by the provider. The estimation of the plan's premium is out
of the scope of the DoT protocol. The plan indicates the composed
services pricing schema and comes in two models of predefined as well
as customized. The plan will be built to be consistent with the
composed application topology in the rate setting.
The subscribed metering plan indicates: (i) the price of granted
units for every IoT application constituent microservice.
For instance, 5 hours for Humidity sensor and 10 invocations for
Chiller On/Off actuator. (ii) the resource Used Unit Update (U3)
frequency for all associated units which are defined in the
provider's plan. (iii) the manual/automatic payment configuration.
So that the provider can handle the payment transactions
automatically while informing the user. (iv) container instance fee,
which is the fee that user pays for underlying resource usage.
Instance usage can be time based or underlying resource-usage based
which is defined by the provider's policy. (v) finally, subscription
time for pay-per-use model and subscription fee for prepaid model.
6. DoT Interrogations
For a Hybrid DoT, four main interrogations are performed for a
well-functioning protocol. The first interrogation is called Initial
Identification (II) which basically deals with clients'
identification, for instance the user authentication and
authorization processes. The second interrogation is Request
Qanbari, et al. Expires March 20, 2016 [Page 12]
Internet-Draft Diameter of Things (DoT) September 2015
Realization (RR) that aims to provision the clients' IoT applications
as well as scheduling their resource allocation upon agreed terms
and subscribed plan. The third interrogation is called Telemetry
Transmission (TT) that deals with metering the running services as
well as the granted units usage data transmission for charging
purposes. The final interrogation, entitled Value Verification (VV),
ensures value generation and delivery to the interested stakeholders.
The hybrid metering is carried out in main DoT sessions which hold
globally unique and constant Session-IDs. The whole DoT-based
metering life-cycle including the II, RR, TT, and VV interrogations
in prepaid model and pay-per-use model are presented in Figure 4 and
Figure 5 respectively.
End DoT AAA Provision Resource Metering BitCoin
User Client Server Server Control Server Server Server
| | | | | | |
| | | | | | |
|Auth Req | AAA | | | | |
|---------->| request | | | | |
|Credential |--------->| | | | |
|authorized |<---------| | | | |
|<----------|AAA answer| | | | |
| | | | | | |
|IoT App & | | | | | |
|Plan | | | | | |
|submition | | | negotiate| | | |
|---------->|Provision IoT App &| to | | |
| |subscription plan | allocate | | |
| |------------------>| resources | | |
| | | |----------->| Resource | |
| | | | |--scheduling| |
| | | | | | | |
| | | | |<- | |
| | | | |-- Reserve | |
| | | | | | resource| |
| | | | |<- & lock | |
| | | | Granted | credit | |
| | | | resource | | |
|Request | Resource Granted |<-----------| | |
|authorized |<------------------| | | |
|<----------| | | | | |
Qanbari, et al. Expires March 20, 2016 [Page 13]
Internet-Draft Diameter of Things (DoT) September 2015
| | | | | | |
| Start | | | | | |
| service | | | | | |
|---------->| Deploy service | | | |
| |------------------>| Meter IoT app | |
| | | |------------------------>| |
| | | | |Ask for | |
| | | | |granted | |
| | | | |units + plan| |
| | | | |<-----------| |
| | | | | | |
| | | | |Granted | |
| | | | |units + plan| |
| | | | |----------->| |
| | | | | |-- |
| : : : : : | |
| : : : : :<- metering|
| | | | | |transaction|
| | | | | | |
| | | | | |--Summarize|
| | | | | | | usage |
| | | | | |<- |
| | | | |Send | |
| | | | |usage update| |
| | | | |<-----------| |
| | | | | | |
| | | | |-- Charge | |
| | | | | | credit | |
| | | | |<- | |
| | | |Credit |-- Check | |
| | | |update | | credit | |
| | Credit update |notification|<- threshold| |
| | required |<-----------| | |
|Notify user|<------------------| | | |
|<----------| | | | | |
| | | | |-- Update | |
| | | | | | & lock | |
| | | | |<- credit | |
| : : : : : |
|Service : : : : : |
|termination| | | | | |
|---------->| Render service | Release | | |
| |------------------>| resource & | Measure | |
| | | |----------->| usage quota| |
| | | | bill |----------->| |
Qanbari, et al. Expires March 20, 2016 [Page 14]
Internet-Draft Diameter of Things (DoT) September 2015
| | | | | |-- |
| | | | | | | |
| | | |Metering |Quota value |<- Commit &|
| | | |acknowledge |<-----------| aggregate|
| | | |<-----------| | |
| | | | | | |
| | | | Terminate metering | |
| | | |------------------------>| |
| | | | | | |
| | | | | Send for payment |
| | | | |----------------------->|
| | | | | Payment --|
| | | | | transaction| |
| | User | | | | ->|
| | logoff | | |<-----------------------|
| |--------->| | | Update client credit |
| | End user | | | | |
| |<---------| | | | |
| | Session | | | | |
Figure 4. The sequence of DoT interrogations in prepaid model
to enable hybrid metering
End DoT AAA Provision Resource Metering BitCoin
User Client Server Server Control Server Server Server
| | | | | | |
| | | | | | |
|Auth Req | AAA | | | | |
|---------->| request | | | | |
|Credential |--------->| | | | |
|authorized |<---------| | | | |
|<----------|AAA answer| | | | |
| | | | | | |
|IoT App & | | | | | |
|Plan | | | | | |
|submition | | | negotiate| | | |
|---------->|Provision IoT App &| to | | |
| |subscription plan | allocate | | |
| |------------------>| resources | | |
| | | |----------->| Resource | |
| | | | |--scheduling| |
| | | | | | | |
| | | | |<- | |
Qanbari, et al. Expires March 20, 2016 [Page 15]
Internet-Draft Diameter of Things (DoT) September 2015
| | | | |-- Reserve | |
| | | | | | resource| |
| | | | Granted |<- | |
| | | | resource | | |
|Request | Resource Granted |<-----------| | |
|authorized |<------------------| | | |
|<----------| | | | | |
| Start | | | | | |
| service | | | | | |
|---------->| Deploy service | | | |
| |------------------>| Meter IoT app | |
| | | |------------------------>| |
| | | | |Ask for | |
| | | | |granted | |
| | | | |units + plan| |
| | | | |<-----------| |
| | | | | | |
| | | | |Granted | |
| | | | |units + plan| |
| | | | |----------->| |
| | | | | |-- |
| : : : : : | |
| : : : : :<- metering|
| | | | | |transaction|
| | | | | | |
| | | | | |--Summarize|
| | | | | | | usage |
| | | | | |<- |
| | | | |Send | |
| | | | |usage update| |
| | | | |<-----------| |
| | | | | | |
| | | | |Validate | |
| | | | |Subscription| |
| | | | |-- | |
| | | | | | | |
| |Renew subscription |Renew |<- | |
| |required |<-----------| | |
|Notify user|<------------------|subscription| | |
|<----------| | |request | | |
| | | | |-- Check | |
| | | | | | payment | |
| | | | |<- interval| |
Qanbari, et al. Expires March 20, 2016 [Page 16]
Internet-Draft Diameter of Things (DoT) September 2015
| | | | | | |
| | | | | Send for payment |
| | | | |----------------------->|
| | | | | Payment --|
| | | | | transaction| |
| | | | | | ->|
| | | | |<-----------------------|
| | | | | Payment confirmation |
| : : : : : |
|Service : : : : : |
|termination| | | | | |
|---------->| Render service | Release | | |
| |------------------>| resource & | Measure | |
| | | |----------->| usage quota| |
| | | | bill |----------->| |
| | | | | |-- |
| | | | | | | |
| | | |Metering |Quota value |<- Commit &|
| | | |acknowledge |<-----------| aggregate|
| | | |<-----------| | |
| | | | | | |
| | | | Terminate metering | |
| | | |------------------------>| |
| | | | | | |
| | | | | Send for payment |
| | | | |----------------------->|
| | | | | Payment --|
| | | | | transaction| |
| | User | | | | ->|
| | logoff | | |<-----------------------|
| |--------->| | | Update client credit |
| | End user | | | | |
| |<---------| | | | |
| | Session | | | | |
Figure 4. The sequence of DoT interrogations in pay-per-use model
to enable hybrid metering
6.1. Initial Identification
The end user subscribes the application as well as the chosen plan
to the DoT client. The DoT client submits the IoT deployment units
to the Provisioning server to ask for the required resource units
it needs to run. In this case, the Provisioning server queries for
resources (including underlying resources and credit allocation)
from Resource control server. The Resource control server is
Qanbari, et al. Expires March 20, 2016 [Page 17]
Internet-Draft Diameter of Things (DoT) September 2015
responsible for the device resource reservation. It also keeps
track of user credit fluctuations.
In this phase, the end user requirements are modeled into an
application topology using a directed acyclic graph. This graph can
connect various IoT microservices available in diverse usage units.
The deployment of such hybrid applications will result in one global
constant Session-ID followed by related sub-session-IDs as well as
transaction-IDs. Note that the IoT application might send a
(re)authorization request to the AAA server to establish or maintain
a valid DoT session. However, this process does not influence the
credit allocation that is streaming between the DoT client and
provisioning server, as it has already been authorized for the
whole transaction before.
6.2. Request Realization (RR)
The Resource control server analyzes the IoT service and allocates
resources to the requested service. It also considers the
subscription time/fee in order to notify user when this value elapses.
When the new usage update arrives at the Resource control server, it
charges the credit based on the usage summary received from the
Metering server. It also validates subscription by checking the
status of credit (as in prepaid model) or elapsed time
(in pay-per-use model) against a certain threshold. Upon reaching
the threshold, the Resource control server sends an update
notification request to the user. DoT protocol makes it possible to
define a default action for this purpose. This default action can be
to perform update automatically or to ask user to take the desired
action.
6.3. Telemetry Transmission (TT)
As soon as the end user sends the Start service request to the DoT
client, the DoT Client asks the Provisioning server to initiate the
service and start monitoring and metering processes. In this regard,
the Provisioning server submits the IoT application to the Metering
server and asks to establish a metering mechanism for the newly
opened session.
As soon as an IoT application is deployed, metering server monitors
the real usage of each service element including service usage and
resource usage at a certain frequency rate called Unit Usage Update
(U3). The U3 frequency determines the rate of sending updates
regarding unit usage of each service. It is independent of the type
Qanbari, et al. Expires March 20, 2016 [Page 18]
Internet-Draft Diameter of Things (DoT) September 2015
of service. For example, the U3 set to 25%, implies that for a
time-based microservice with granted units of 100 minutes, the usage
update should be provided every $25$ minutes; and for an event-based
microservice with granted units of 100 invocations, the usage update
will be sent after every 25 invocations.
To make it more clear, after identification of an IoT application to
the Metering server, the Metering server sends a request to the
Resource control server asking for the amount of granted units which
are reserved for all microservices involved in the application as
well as the plan, which includes the U3 value for each microsevice
as defined by the provider. The U3 values are then provided to the
Metering agents, as the metering server starts the metering
transaction.
During deployment of an IoT application, each Metering agent meters
the actual resource and service usage of its associated/assigned
microservice. If the actual service usage value reaches an integer
multiples of U3, the Metering agent will send a notification message
to the Metering server. The Metering server then uses these feedbacks
to gain a realistic perception of the usage of each microservice and
to charge the user credit accordingly. Next, if the application
usage of a microservice reaches the threshold value, the Metering
Server informs the Resource control server issuing a resource-update
request for the service. For instance, when the actual usage of a
certain microservice reaches a certain threshold, e.g. more than 70%,
metering server informs the resource control server. This contributes
to a continuous and consistent service delivery. The detailed flow of
TT phase is presented in Figure 6.
Provision Resource Payment Metering Metering Agent
Server Control Server Server Cohort
| Server | | (Raspbery Node)
| | | | |
| | | | |
| Meter IoT App | | Request to |
|---------------------------------------->| meter + send |
| | | | U3 freq. |
| | | |-------------->|
| | | | |-- Wake up
| | | | | | metering
| | | | |<- agent
| | | | |
| | | | |-- Create
| | | | | | token
| | | | |<-
Qanbari, et al. Expires March 20, 2016 [Page 19]
Internet-Draft Diameter of Things (DoT) September 2015
| | | | |
| | | | |-- Meter
| | | | | | IoT app &
| | | | |<- resource
| | | | | usage
| | | | |--
| | | | | | Write
| | | |Send token at |<- token
| | | |U3 intervals |
| | | |<--------------|
| : : : |
| : : : |
|Release | | | |
|resource | Measure | | |
|---------->| usage quota| | |
| |---------------------------->|Request to |
| | | ----|commit( meter |
| | | | |& commit token)|
| | | | |-------------->|
| | | | | Publish vote |
| | | Commit | | (yes/no) |
| | | Request| |<--------------|
| | | Phase | | Vote from |
| | | | | agent A |
| | | | |<----------* |
| | | | | Vote from |
| | | | | agent B |
| | | --| |<----------* |
| | | | ---| |
| | | 2PC| | |
| | | | ---| |
| | | --| | Commit/Retry |
| | | | |-------------->|
| | | | | Token from |
| | | Commit | | agent A |
| | | Phase | |<----------* |
| | | | | Token from |
| | | | | agent B |
| | | | |<----------* |
| | | ---| |
| | | |-- Commit |
| | | | | metering |
| | | |<- transaction|
| | | | |
| | | |-- Summarize |
| | | | | & aggregate|
| | | |<- tokens |
Qanbari, et al. Expires March 20, 2016 [Page 20]
Internet-Draft Diameter of Things (DoT) September 2015
| | Aggregated usage value | |
| |<----------------------------| |
| | | | |
| | Send | | |
| | for payment| | |
| |----------->| | |
| | | | |
| | |-- Start | |
| | Update | | payment | |
| | client |<- transaction | |
| | credit | | |
| |<-----------| | |
| | | | |
Figure 6. DoT Hybrid Metering - 2PC transaction model
In the DoT credit allocation model, the provisioning server asks
the resource control server to reserve resources and to lock a
suitable amount of the user's credit. Then it returns the
corresponding amount of credit resources in the form of service
specific usage units (e.g., number of invocations, duration) to
be metered. The granted and allocated unit type(s) should not be
changed during an ongoing DoT session.
6.4. Value Verification (VV)
When the end user terminates the service session, the DoT client
MUST send a final service rendering request to the Provisioning
server. The Provisioning server should ask the Resource Control
server to release all the allocated resources to the IoT application
and perform payment transaction. As such, the Resource control
server deallocates the granted resources and asks the Metering
server to commit the measured metering tokens and report the quota
value to it. Then the Resource Control server sends the billable
artifacts to the Payment Server to charge the client account
respectively. Finally the Payment server sends the updated client
credit to the Resource Control. Meanwhile DoT Client drops the user
session throughout AAA server.
Upon each deduction from user credit, the DoT protocol verifies the
credit value. As soon as the credit value drops below a certain
threshold, it informs the user to perform credit update automatically
or to take the desired action manually.
Qanbari, et al. Expires March 20, 2016 [Page 21]
Internet-Draft Diameter of Things (DoT) September 2015
7. DoT Messages
The DoT messages contain commands and Attribute Value Pairs (AVP) to
enable metering and payment transactions for DoT-based applications.
The messaging structure should be supported by all the collaborating
peers in the domain architecture.
The following command codes are defined in DoT application:
Abbr Command Name Sender Receiver
------------------------------------------------------------------------
PATR Provision-Application-Topology DoT client Provisioning
-Request server
PATA Provision-Application-Topology Provisioning DoT client
-Answer server
ARAR App-Resource-Allocation-Request Provisioning Resource
server Control
server
ARAA App-Resource-Allocation-Answer Resource Provisioning
Control server
server
SIAR Start-IoT-App-Request DoT client Provisioning
server
SIAA Start-IoT-App-Answer Provisioning DoT client
server
TIAR Terminate-IoT-App-Request DoT client Provisioning
server
CUSR Close-User-Session-Request DoT client AAA server
ARRR App-Resource-Release-Request Provisioning Resource
server Control
server
TIAA Terminate-IoT-App-Answer Provisioning DoT client
server
CUSA Close-User-Session-Answer AAA server DoT client
Qanbari, et al. Expires March 20, 2016 [Page 22]
Internet-Draft Diameter of Things (DoT) September 2015
ARRA App-Resource-Release-Answer Resource Provisioning
Control server
server
SBPR Start-Bill-Payment-Request Resource Payment
Control server
server
SBPA Start-Bill-Payment-Answer Payment Resource
server Control
Server
CAMR Commit-App-Metering-Request Resource Metering
Control server
server
CAMA Commit-App-Metering-Answer Metering Resource
server Control
Server
SAMR Start-App-Metering-Request Provisioning Metering
server server
SAMA Start-App-Metering-Answer Metering Provisioning
server server
UACR Update-Allocation-Confirmation Resource Rrovisioning
-Request control server
server
NUAR Notify-User-Allocation-Request Provisioning DoT client
server
UACA Update-Allocation-Confirmation Provisioning Resource
-Answer server Control
Server
NUAA Notify-User-Allocation-Answer DoT client Provisioning
server
GASR Get-App-Specification-Request Metering Resource
server control
server
GASA Get-App-Specification-Answer resource Metering
control server
server
Qanbari, et al. Expires March 20, 2016 [Page 23]
Internet-Draft Diameter of Things (DoT) September 2015
PUUR Publish-Usage-Update-Request Metering resource
server control
server
PUUA Publish-Usage-Update-Answer resource Metering
control server
server
TAMR Terminate-App-Metering-Request Provisioning Metering
server server
TAMA Terminate-App-Metering-Answer Metering Provisioning
server server
Four main commands are explained here in more details.
7.1. Provision-Application-Topology-Request/Answer
The PATR command is a message between DoT client and Provisioning
server. Via this command, the DoT client submits the IoT App
(defined by the Client) to the Provisioning server and inquiry
resources needed for the application delivery in II or RR
interrogations. Following the request, the PATA response with an
acknowledgment of resources reserved for the client's IoT App
request. For instance, the PATR message format is:
[<Session-Id>, <Client-Id>, <Request-action>, <Dest-Realm>,
<User-Name>, <IoT-App-Id>, <AVPs>]. In return, the PATA response
will contain the <Granted-Service-Units> attribute in addition to
the original request.
7.2. App-Resource-Allocation-Request/Answer
The ARAR command indicates the operation communicated between the
Provisioning and Resource control server. This command aims to
reserve resources including underlying resources as well as credit
allocation for the provisioned application.
7.3. Commit-App-Metering-Request/Answer
The CAMR command is used in RR interrogation. As soon as the
Provisioning server receives Terminate-IoT-App-Request command, it
sends a Commit-App-Metering-Request command message to the Metering
server asking resource usage quota measurement for a specific user.
Qanbari, et al. Expires March 20, 2016 [Page 24]
Internet-Draft Diameter of Things (DoT) September 2015
Another use case is to ask for resource usage during service
delivery. In return, the Commit-App-Metering-Answer command is used
to report the measured quota value for the requested user and the
metered IoT application.
7.4. Start-Bill-Payment-Request/Answer
The Start-Bill-Payment-Request command which should be invoked in VV
interrogation, is used between the Resource control server and the
Payment server to establish a payment mechanism and initiate a fund
transfer. In response to the request, the Start-Bill-Payment-Answer
command contains the state of payment transaction and the updated
user credit information.
8. DoT Application State Machine
This section defines the DoT application protocol state machines.
There are five different state machines for each entity in DoT
protocol. The first state machine describes the states of DoT client.
The second one describes the Provisioning server state machine. The
third one is the state machine of Resource control server. The
fourth and fifth state machines describe the Metering server and
Payment server accordingly.
In DoT client state machine, the states PendingI, PendingP, PendingD,
PendingT stand for pending states to wait for an answer to an
already sent request related to Initial, Provisioning, Deployment,
Termination requests.
In Provisioning server state machine, the states PendingR and
PendingM stands for states of waiting for an answer from the
Resource control server and the Metering server respectively.
In Resource control server state machine, the states PendingPY and
PendingPM correspond to the state of waiting for the payment and
metering answer.
In Metering server state machine, the states PendingG and PendingUU
stand for pending states for Granted unit and Usage Update information
The event 'Tw expired, Failure to send, temporary error' in the state
machines indicates the situation where there is a problem in network,
preventing one entity to communicate with the desired entity, or the
cases where the destination entity is too busy and cannot handle
the request at that time.
Qanbari, et al. Expires March 20, 2016 [Page 25]
Internet-Draft Diameter of Things (DoT) September 2015
Dot client
State Event Action New State
-----------------------------------------------------------------------
Idle AA request received Send AA request to PendingI
from end user AA server, start Tw
pendingI Successful AA answer Submit application PendingP
received topology as well as
the plan to
Provisioning
sever (PATR),
restart Tw
pendingI Tw expired, Retry sending AA PendingI
Failure to send, request to AA server,
temporary error restart Tw
PendingP Answer received from Submit request to PendingD
Provisioning server start the IoT
(PATA) application to
Provisioning server
(SIAR),restart Tw
PendingP Answer received from Fix the problem and PendingD
Provisioning server send the request
(PATA) with again, restart Tw
result code != SUCCESS
PendingD Answer received from Stop Tw, Open
Provisioning server Inform end user that
(SIAA) service & monitoring
have beed started
PendingD Answer received from Fix the problem and PendingD
Provisioning server send the request
(SIAA) with again, restart Tw
result code != SUCCESS
PendingD Tw expired, Retry sending pendingD
Failure to send, Provisioning request
temporary error to Provisioning
server (SIAR),
restart Tw
Qanbari, et al. Expires March 20, 2016 [Page 26]
Internet-Draft Diameter of Things (DoT) September 2015
Open Update notification Inform user about the Open
received from update, send answer
Provisioning server back to Provisioning
(NUAR) with server (NUAA)
USER_INPUT equal to False
Open User confirmation request Send update Open
recieved for the updating confirmation request
credit from Provisioning to user
server (NUAR) with
USER_INPUT equal to True
Open User confirmation Send answer back to Open
request recieved (NUAR) Provisioning server
but not successfully (NUAA) with
processed result code !=SUCCESS
Open User confirmed the Send update Open
update confirmation
answer (NUAA) with
status=CONFIRM to
Provisioning server
Open User rejected the Send update Open
update confirmation answer
(NUAA) with
status=REJECT to
Provisioning server
Open User sends termination Send termination PendingT
request request to
Provisioning server
(TIAR), start Tw
PendingT Answer received from Inform user about Idle
Provisioning server termination, stop Tw
(TIAA)
PendingT Answer received from Fix the problem and PendingT
Provisioning server send the request
(TIAA) with again, restart Tw
result != SUCCESS
PendingT Tw expired, Retry sending PendingT
Failure to send, termination request
temporary error to Provisioning server
(TIAR), restart Tw
Qanbari, et al. Expires March 20, 2016 [Page 27]
Internet-Draft Diameter of Things (DoT) September 2015
Provisioning server
State Event Action New State
-----------------------------------------------------------------------
Idle Request to provision Send the resource PendingR
application topology from allocation request
DoT client (PATR) received to resource control
and successfully processed server (ARAR),
Start Tw
Idle Request to provision Send the provision Idle
application topology from topology answer to
DoT client (PATR) received DoT client (PATA)
but not successfully with
processed Result-Code!=SUCCESS
PendingR Answer of resource Send the provision Idle
allocation from resource topology answer to
control server (ARAA) DoT client (PATA),
received Stop Tw
PendingR Answer of resource Fix the problem and PendingR
allocation from resource send the resource
control server (ARAA) allocation request to
received with resource control
result code!=SUCCESS server (ARAR) again,
Restart Tw
PendingR Tw expired, Restart Tw, PendingR
Failure to send, Retry sending the
temporary error resource allocation
request to resource
control server (ARAR)
Idle Request to start the IoT Send the start PendingM
application from DoT metering request to
client (SIAR) received metering server(SAMR),
and successfully processed Start Tw
Idle Request to start the IoT Send the start app Idle
application from DoT answer to DoT client
client(SIAR) received (SIAA) with
but not successfully Result-Code!= SUCCESS
processed
Qanbari, et al. Expires March 20, 2016 [Page 28]
Internet-Draft Diameter of Things (DoT) September 2015
PendingM Answer of starting IoT Send the start app Open
application from metering answer to DoT client
server (SAMA) received (SIAA), Stop Tw
PendingM Answer of starting IoT Fix the problem and PendingM
application from metering send the start metering
server (SAMA) received request to metering
with result code!=SUCCESS server (SAMR) again,
Restart Tw
PendingM Tw expired, Restart Tw, PendingM
Failure to send, Retry sending the
temporary error start metering request
to metering server
(SAMR) again
Open Request to notify user Send the allocation Open
about updating resource notification to DoT
allocation from resource client (NUAR)
control server (UACR)
received and successfully
processed
Open Request to terminate IoT Send the resource PendingR
application from DoT release request to
client (TIAR) received resource control
and successfully server (ARRR),
processed Start Tw
Open Request to terminate Send the terminate Open
IoT application from DoT app answer to DoT
client (TIAR) received client (TIAA) with
but not successfully Result-Code!= SUCCESS
processed
PendingR Answer of confirming the Send the terminate PendingM
release of allocated metering request to
resources from resource metering server (TAMR),
control server (ARRA) Start Tw
received
PendingR Answer of confirming Fix the problem and PendingR
the release of allocated send the resource
resources from resource release request to
control server (ARRA) resource control
received with server (ARRR) again,
result code!=SUCCESS Restart Tw
Qanbari, et al. Expires March 20, 2016 [Page 29]
Internet-Draft Diameter of Things (DoT) September 2015
PendingR Tw expired, Restart Tw, PendingR
Failure to send, Retry sending a
temporary error Request to release
the allocated
resources to resource
control server (ARRR)
PendingM Answer of confirming Send the terminate Idle
metering termination from app answer to DoT
metering server (TAMA) client (TIAA),
received Stop Tw
PendingM Answer of confirming Fix the problem and PendingM
metering termination send the terminate
from metering server metering request to
(TAMA) received with metering server (TAMR)
result code!=SUCCESS again, Restart Tw
PendingM Tw expired, Terminate the Idle
Failure to send, service,
temporary error Send the terminate
app answer to DoT
client (TIAA)
Resource control server
State Event Action New State
-----------------------------------------------------------------------
Idle Request to reserve Perform resource Open
resources from scheduling, reserve
provisioning server(ARAR) resources (based on
received and successfully plan) , lock the
processed credit, send the
resources allocation
acknowledgement
answer to provisioning
server (ARAA)
Idle Request to reserve send the resources Idle
resources from allocation answer
provisioning server(ARAR) to provisioning
received but not server (ARAA) with
successfully processed Result-Code!= SUCCESS
Qanbari, et al. Expires March 20, 2016 [Page 30]
Internet-Draft Diameter of Things (DoT) September 2015
Open Request to retrieve the Send the answer Open
Specification information containing granted
from metering server unis and plan to
(GASR) received and metering server(GASA)
successfully processed
Open Request to retrieve the Send the getting Open
Specification information specification answer
from metering server to metering server
(GASR) received but not (GASA) with
successfully processed Result-Code!= SUCCESS
Open Request to publish usage Charge credit Open
update from metering according the last
server (PUUR) received sent usage, Send
and successfully the acknowledge
processed answer to metering
server (PUUA)
Open Request to publish usage Send the usage Open
update from metering update answer to
server (PUUR) received metering server
but not successfully (PUUA) with
processed Result-Code!=SUCCESS
Open Credit threshold is met Update and lock Open
credit, Send update
notification to
provisioning server
(UACR)
Open Request to release the Release the allocated PendingM
allocated resources from resources, Send the
provisioning server(ARRR) commit request to
received and metering server
successfully processed (CAMR), Start Tw
Open Request to release the Send the resource Open
allocated resources release answer to
from provisioning server provisioning server
(ARRR) received but not (ARRA) with
successfully processed Result-Code!= SUCCESS
Qanbari, et al. Expires March 20, 2016 [Page 31]
Internet-Draft Diameter of Things (DoT) September 2015
PendingM Answer of commiting Send the resource PendingPY
metering containing the release answer to
quota values from provisioning server
metering server (CAMA) (ARRA), Send a request
received to payment server to
charge the client
based on billable
artifact (SBPR),
Restart Tw
PendingM Answer of commiting Fix the problem and PendingM
metering from metering send the commit
server (CAMA) received request to metering
with server(CAMR) again,
result code!=SUCCESS Restart Tw
PendingM Tw expired, Retry sending the PendingM
Failure to send, commit metering
temporary error request to metering
server(CAMR),
Restart Tw
PendingPY Answer of billing StopTw Idle
payment from payment
server (SBPA)
received
PendingPY Answer of billing Fix the problem and PendingPY
payment from payment send a payment
server (SBPA) received request to payment
with server (SBPR) again,
result code!=SUCCESS Restart Tw
PendingPY Tw expired, Retry sending a PendingPY
Failure to send, payment request
temporary error to payment
server (SBPR),
Restart Tw
Qanbari, et al. Expires March 20, 2016 [Page 32]
Internet-Draft Diameter of Things (DoT) September 2015
Metering server
State Event Action New State
-----------------------------------------------------------------------
Idle Request to start Send answer to the PendingG
metering received Provisioning server
from Provisioning (SAMA), send request
server (SAMR) to Resource ctrl
server asking for
granted Units and
plan (GASR),start Tw
Idle Request to start Send answer to the Idle
metering received (SAMR) Provisioning server
but not successfully (SAMA) with
processed result code!=SUCCESS
PendingG Answer received from Send service Open
Resource ctrl server specific and U3
including granted units to each metering
and plan (GASA) agent, start metering
transaction,
stop Tw
PendingG Answer received from Fix the problem PendingG
Resource ctrl server andsend the request
with result code!=SUCCESS again, restart Tw
PendingG Tw expired, Retry sending PendingG
Failure to send, request(GASR) again,
temporary error restart Tw
Open Unit usage update Summarize the usage PendingUU
message recieved from a and send it to
metering agent Resource ctrl
server (PUUR),
start Tw
PendingUU Answer received from Stop Tw Open
Resource ctrl server
PendingUU Tw expired, Retry sending PendingUU
Failure to send, request(PUUR)
temporary error again, restart Tw
Qanbari, et al. Expires March 20, 2016 [Page 33]
Internet-Draft Diameter of Things (DoT) September 2015
PendingUU Answer received from Fix the problem PendingUU
Resource ctrl server with and send the
result code !=SUCCESS request again,
restart Tw
Open Request to commit the Aggregate tokens Open
measured metering tokens and send the answer
and report the quota back to Resource
value received from ctrl server (CAMA)
Resource ctrl.
server (CAMR)
Open CAMR request recieved Send the answer Open
but not successfully back to Resource ctrl
processed server (CAMA) with
result code !=SUCCESS
Open Request to terminate Terminate metering, Idle
metering received from send Answer back to
Provisioning server Provisioning
(TAMR) server (TAMA)
Payment server
State Event Action New State
-----------------------------------------------------------------------
Idle Request to charge the Generate a bill by Idle
client based on billable Invoking the payment
artifact from resource transaction, Deduct
control server (SBPR) credit from the end
received and successfully user's account and
processed refund unused
reserved credit to
user's account, Send
start bill payment
answer to resource
control server(SBPA)
Idle Request to charge the Send start bill
client based on billable payment answer
artifact from resource to resource control
control server (SBPR) server(SBPA) with
received but not Result-Code!= SUCCESS Idle
successfully processed
Qanbari, et al. Expires March 20, 2016 [Page 34]
Internet-Draft Diameter of Things (DoT) September 2015
9. Formal Syntax
The following syntax specification uses the JavaScript Object
Notation (JSON) Data Interchange Format as described in RFC-7159
[RFC7159].
List 2 presents the sample dependency graph together with its
metering policies in the form of a JSON object.
{
"graphLabel":"home_temp_hum_display",
"nodes":[{ "id":"S_01",
"name":"getTemperature",
"type":"node",},
{ "id":"S_02",
"name":"getHumidity"
"type":"node",},
{ "id":"S_03",
"name":"Display",
"type":"node",}],
"edges":[{"id":"E_01",
"directed":"True",
"source":"S_01",
"destination":"S_03",
"label":"PL_01_02"},
{"id":"E_02",
"directed":"True",
"source":"S_02",
"destination":"S_03",
"label":"PL_02_01"
}]
}
List 2. Sample IoT microservice elasticity requirement definition
10. Security Considerations
This document has not conducted its security analysis, yet.
11. IANA Considerations
This draft does not specify its IANA considerations, yet.
Qanbari, et al. Expires March 20, 2016 [Page 35]
Internet-Draft Diameter of Things (DoT) September 2015
12. Conclusions
In this draft, the authors offer a protocol entitled "Diameter of
Things (DoT)" that realizes the telemetry mechanisms to the Internet
of Things (IoT) domain. The TU Wien DSG will provide further
improvements and implementations to the DoT protocol respectively.
13. References
13.1. Normative References
[1] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[2] Crocker, D. and Overell, P.(Editors), "Augmented BNF for
Syntax Specifications: ABNF", RFC 2234, Internet Mail
Consortium and Demon Internet Ltd., November 1997.
[NASREQ] Calhoun, P., Zorn, G., Spence, D., and D. Mitton,
"Diameter Network Access Server Application", RFC 4005,
August 2005.
[RFC6733] Calhoun, P., Loughney, J., Guttman, E., Zorn, G., and J.
Arkko, "Diameter Base Protocol", RFC 3588, September 2003.
[RFC4004] Calhoun, P., Johansson, T., Perkins, C., Hiller, T.,and
P. McCann, "Diameter Mobile IPv4 Application", RFC 4004,
August 2005.
[RFC4006] Hakala, H., Mattila, L., Koskinen, J-P., Stura, M., and
J. Loughney, "Diameter Credit-Control Application", RFC
4006, August 2005.
[RFC4740] Garcia-Martin, M., "Diameter Session Initiation Protocol (
SIP) Application", RFC 4740, April 2006.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
Qanbari, et al. Expires March 20, 2016 [Page 36]
Internet-Draft Diameter of Things (DoT) September 2015
[RFC2234] Paul Hoffman, "The JavaScript Object Notation (JSON)
Data Interchange Format", RFC 7159, Internet Engineering
Task Force (IETF), March 2014.
[RFC7049] Bormann, C. and P. Hoffman, "Concise Binary Object
Representation (CBOR)", RFC 7049, October 2013.
13.2. Informative References
[DIAMMIP] Calhoun, P., Johansson, T., Perkins, C., Hiller, T., and
P. McCann, "Diameter Mobile IPv4 Application", RFC 4004,
August 2005.
14. Acknowledgments
We truly appreciate and commend the insight provided by Diameter
implementors who have motivated us to incorporate the Diameter
mechanisms in IoT domain. The result is an extension to Diameter
base protocol in which its specifications are proposed in this
document.
This document was prepared using 2-Word-v2.0.template.dot.
Authors' Addresses
Soheil Qanbari
Distributed Systems Group
Technical University of Vienna (TUWien)
Argentinierstrasse 8 / 184-1
1040 Vienna
Austria
Phone: +43-1-58801-18402
EMail: soheil@dsg.tuwien.ac.at
Qanbari, et al. Expires March 20, 2016 [Page 37]
Internet-Draft Diameter of Things (DoT) September 2015
Soheil Qanbari
Distributed Systems Group
Technical University of Vienna (TUWien)
Argentinierstrasse 8 / 184-1
1040 Vienna
Austria
Phone: +43-1-58801-18402
EMail: soheil@dsg.tuwien.ac.at
Samira Mahdizadeh
Distributed Systems Group
Technical University of Vienna (TUWien)
Argentinierstrasse 8 / 184-1
1040 Vienna
Austria
Phone: +43-1-58801-18402
EMail: e1329639@student.tuwien.ac.at
Schahram Dustdar
Distributed Systems Group
Technical University of Vienna (TUWien)
Argentinierstrasse 8 / 184-1
1040 Vienna
Austria
Phone: +43-1-58801-18414
EMail: dustdar@dsg.tuwien.ac.at
Negar Behinaein
Computer Science Group
Baha'i Institute for Higher Education (BIHE)
Tehran/Iran
Email: negar.behinaein@bihe.org
Rabee Rahimzadeh
Computer Science Group
Baha'i Institute for Higher Education (BIHE)
Tehran/Iran
EMail: rabee.rahimzadeh@bihe.org
Qanbari, et al. Expires March 20, 2016 [Page 38]
Internet-Draft Diameter of Things (DoT) September 2015