[apps-discuss] Two new Internet Drafts (Independent Submissions)

Neng Geng Huang <huangng@gmail.com> Fri, 04 July 2014 15:24 UTC

Return-Path: <huangng@gmail.com>
X-Original-To: apps-discuss@ietfa.amsl.com
Delivered-To: apps-discuss@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 4813E1B2A98 for <apps-discuss@ietfa.amsl.com>; Fri, 4 Jul 2014 08:24:23 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.989
X-Spam-Level:
X-Spam-Status: No, score=-1.989 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, SPF_PASS=-0.001, T_FILL_THIS_FORM_SHORT=0.01] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id xdi5S2NtKJJu for <apps-discuss@ietfa.amsl.com>; Fri, 4 Jul 2014 08:24:20 -0700 (PDT)
Received: from mail-qg0-x233.google.com (mail-qg0-x233.google.com [IPv6:2607:f8b0:400d:c04::233]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D9EF81B2A15 for <apps-discuss@ietf.org>; Fri, 4 Jul 2014 08:24:19 -0700 (PDT)
Received: by mail-qg0-f51.google.com with SMTP id z60so1579260qgd.10 for <apps-discuss@ietf.org>; Fri, 04 Jul 2014 08:24:19 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=MhjzY7itF8BaRrRVukuH3+Ou4xqTwVZBCwZD1CGtCr0=; b=T8pAGKQXAIM8cnIRmctpHvAiJ2gowilNKISWn50ydjyMYPLO+oVyfKa3I2eErZXQ3q x7LYTMDRJRngOgEV+PWBQXtYHYMR1nY2YQWHaZ6MmzFe43BL5GLJ4eFhHXu73S8VLqIn A3ZruVmohMyB5wNYD8HR8BTDwcUnXKl/d3J12G3Ojzs2wtXLAl2Wg+p44lHlGpTGLN8M +jkL18mpkNeK9/xcTg4PwUKEnRpcN4jFG2ozRZqnAsMy/zKXh9UCZBbcEZGjPIOG7k9U WLqiDeURf50WhEPr1ZXCwg6so4ocK5dRqlKy/Hdn5AGARWyQAgd3oUeTWf20b19rl70V qhBQ==
MIME-Version: 1.0
X-Received: by 10.224.128.193 with SMTP id l1mr19176611qas.91.1404487459091; Fri, 04 Jul 2014 08:24:19 -0700 (PDT)
Received: by 10.140.104.106 with HTTP; Fri, 4 Jul 2014 08:24:19 -0700 (PDT)
Date: Fri, 04 Jul 2014 23:24:19 +0800
Message-ID: <CAATpOdrvViwpU2UH1hQmTsx3=0RpE+jc0wLGL_akD7Pmv74Cgg@mail.gmail.com>
From: Neng Geng Huang <huangng@gmail.com>
To: apps-discuss@ietf.org
Content-Type: multipart/alternative; boundary="001a11c31a3a173bca04fd5fb828"
Archived-At: http://mailarchive.ietf.org/arch/msg/apps-discuss/Tkh5yOQ7cWWG7KFbaiIvxOTz3Xk
Subject: [apps-discuss] Two new Internet Drafts (Independent Submissions)
X-BeenThere: apps-discuss@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: General discussion of application-layer protocols <apps-discuss.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/apps-discuss>, <mailto:apps-discuss-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/apps-discuss/>
List-Post: <mailto:apps-discuss@ietf.org>
List-Help: <mailto:apps-discuss-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/apps-discuss>, <mailto:apps-discuss-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 04 Jul 2014 15:24:23 -0000

Hello, everybody:

I have submitted two revised Internet Drafts as Independent Submissions.

https://datatracker.ietf.org/doc/draft-huangng-utid/
https://datatracker.ietf.org/doc/draft-huangng-idtp/

Here is a brief introduction to the concepts of UTID and IDTP and discuss
their use through three small examples, showing the potential to construct
a new kind of application architecture for the Internet of Things.

UTID is a unique identifier for a physical thing or a virtual thing in the
world, which consists of three components with the following syntax:

Id~catalog$dns

It is a character-based identifier, where dns is a domain name of
organization who named the thing, catalog is used by the organization to
classify the thing, and id is unique in the scope of dns and catalog.
Examples are 125.product~db$com1.test, ~db$com1.test,
125.product~$com1.test, and ~$com1.test.

IDTP is a communication protocol to tracing messages of things identified
by UTIDs, which adapt request/response model and like a hybrid of HTTP and
Web Service but using JSON data format rather than XML format. It is
characterized by using UTID rather than URL to indicate the destination
address and using build-in forward mechanism to trace the messages of
UTIDs. The forward rules are UTID suffix match (called *tracing rule* in
this paper) and namespace match (called *tracing track* in this paper). The
underlying protocol of IDTP may be TCP, UDP, UDP multicast, HTTP, Web
Service, or local handling without forwarding.

The first example is tracing of products message. A company (com1.test)
produced a product and then sold it to another company (com2.test), where
UTID is used to identify the product and IDTP is used to trace the message
of the product.

Fig. 1 Tracing reference between two databases  (visit
http://www.utid.org/utid/NewArchitecture.html to see the pictures)

A record was inserted into database of company com1.test with empty value
of tracing key when a product was produced by company com1.test and marked
as 125.product~db$com1.test, which may be used to trace to the record by
IDTP in the company com1.test (Fig. 1).

A record was inserted into database of company com2.test when the product
was purchased by company com2.test and re-marked as
312.purchase~db$com2.test, whose message was send back to company com1.test
by the following IDTP request:

idtp:0.9/1

utid:125.product~db$com1.test

ns:u.iot.db

name:UtidEcho

len:39



{"refUtid":"312.purchase~db$com2.test"}

This request was forwarded to the database of company com1.test by the
tracing mechanism of IDTP using the UTID carried by the request as
destination address and was used to update the field of tracing key of the
record. Then a response was returned back:

idtp:0.9/1

code:200 OK

len:17



{"msg":"success"}

Therefore, tracing references between the two databases were established,
just like a foreign key reference in a relational database system. The
difference is that the tracing reference is build between two independent
databases and any client application may trace any UTIDs through tracing
references by IDTP protocol.

The second example is tracing different properties of same UTID. A company
(com1.test) has a temperature sensor, which sends temperature value to a
database server every 10 minutes. The company has an internal network,
which consists of a database server that saves historical temperature
value, a tracing bridge that connect to the temperature sensor, and a
tracing gateway that forwards request based on tracing rule and tracing
track. A tracing bridge may be a system with very low capacity of
computation, such as a single chip microcomputer with Ethernet interface,
which acts as a connection node between IDTP node and non-IDTP node (Fig.
2).

The sensor was marked as 56.loc1.t~s$com1.test. A request was forwarded to
the tracing bridge by the tracing gateway if the namespace (field ns in the
request) is u.iot.sensor when a user sent a request for real time
temperature value. The tracing bridge got temperature value from the sensor
and returned the value to the requester. A request with the same UTID was
forwarded to the database server by the tracing gateway if the namespace is
u.iot.db when a user sent a request for historical temperature value. The
database server retrieved temperature values from database and returned the
value to the requester.

Fig. 2 Tracing to different node by namespace with same UTID (visit
http://www.utid.org/utid/NewArchitecture.html to see the pictures)

The tracing rule and tracing track on the tracing gateway is listed in Tab.
1 and Tab. 2.

Tab. 1 Tracing rule on the tracing gateway

*utid suffix*

*Rule*

$com1.test

ruel1

Tab. 2 Tracing track on the tracing gateway

*Rule*

*Namespace*

*Protocol*

*Address*

*Port*

rule1

u.iot.db

tcp

db.com1.test

8091

rule1

u.iot.sensor

tcp

bridge.com1.test

8092



The third example is for local request and remote request. A database
server of a company (com1.test) has various kinks of tracing keys, which
reference to local database or remote databases. A request may be handled
locally or forwarded to remote servers. In this case, the server may deal
with this situation easily by set up settings as listed in Tab. 3 and Tab.
4. There is no tracing rule for dns other than itself dns because that IDTP
will forward all unmatched requests to TCP port 25604 (default port number
for IDTP, registered in IANA) of the server indicated by the dns of the
UTID carried by a request.

Tab. 3 Tracing rule on the database server

*utid suffix*

*Rule*

$com1.test

ruel1

Tab. 4 Tracing track on the database server

*Rule*

*Namespace*

*Protocol*

*Address*

*Port*

rule1

*

local







It is encouraged to use IDTP request for local calls because of its high
efficiency to form a unified API both for local calls and remote calls.
This mechanism will help designers to develop highly interoperable
application.

Despite of the differences between IDTP and Web Service, IDTP is
conditional compatible with Web Service, adapts WSDL as data format
definition of request and response, and adapt UDDI for the discovery of
IDTP service.

In summary, UTID and IDTP suggested a new kind of application architecture
for the Internet of Things that is universal, simple, low cost, and high
efficiency. The architecture simplifies the design of application
framework, promote the efficiency of system development, and increase the
interoperability of application system.


Best regards,


Huang

-- 
------------------------------
Mr. Huang Neng Geng
------------------------------
Associate Professor
School of the Internet of Things
Wuxi Institute of Technology
Wuxi, Jiangsu, China, 214121
Mobile: 86-13921501950
email: huangng@gmail.com