-
Notifications
You must be signed in to change notification settings - Fork 1
/
index.html
500 lines (462 loc) · 22.2 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
<!DOCTYPE html>
<html>
<head>
<title>Simple Web of Things (SWoT) Architecture Model</title>
<meta charset="utf-8"></meta>
<script src="http://www.w3.org/Tools/respec/respec-w3c-common" async="async" class="remove"></script>
<script class="remove">
var respecConfig = {
specStatus: "unofficial",
shortName: "swot-model",
editors: [
{ name: "Jonghong Jeon (전종홍)",
companyURL: "http://www.etri.re.kr",
company: "ETRI" },
{ name: "Wonsuk Lee (이원석)",
company: "ETRI"},
{ name: "Hongki Cha (차홍기)",
company: "ETRI",
}
],
wg: "WoT Interest Group",
wgURI: "http://www.w3.org/WoT/IG/",
edDraftURI: "https://hollobit.github.com/swot-model/",
license: "cc-by",
bugTracker: {
open: "https://github.com/hollobit/swot-model/issues?labels=json&page=1&state=open"
, new: "https://github.com/hollobit/swot-model/issues/new"
},
issueBase: "https://github.com/hollobit/swot-model/issues/",
otherLinks: [{
key: "Version history",
data: [{
value: "Commit History",
href: "https://github.com/hollobit/swot-model/commits/gh-pages"
}]
}, {
key: "Participate",
data: [{
value: "Join the Web of Things Interest Group",
href: "http://www.w3.org/WoT/IG/"
}, {
value: "Public mailing list",
href: "https://lists.w3.org/Archives/Public/public-wot-ig/"
}, {
value: "IRC: #wot on W3C's IRC",
href: "irc://irc.w3.org:6665/#wot"
}, {
value: "Github",
href: "https://github.com/hollobit/swot-model"
}]
}]
};
</script>
<style>
var {
background: #f9f9f9;
border: 1px solid #eee;
padding: 0px 2px;
}
ol li {
line-height: 160%;
}
</style>
</head>
<body>
<section id="abstract">
<p>
This document defines a Simple Web of Things (SWoT) Architecture Model.
</p>
</section>
<section id='sotd'>
<p>
This specification is a proposal for building a High-level Web of Things (WoT) Architecture Model.
</p>
</section>
<section class='informative'>
<h2>Introduction</h2>
<p>
The World Wide Web (WWW, or simply Web) uses relatively simple technologies with sufficient scalability, efficiency and usability. As a result, it has become a remarkable information space of interrelated resources, growing across languages, cultures, and media.
</P>
<p>
The Web is used as a platform to deliver services to end-users and enables business entities and applications to intercommunicate openly with each other over a network. The web is language-independent, uses message-driven communications and easily bounds to different transport protocols. As a result, web technology allows the exposure of physical devices as resources on the web using a Web of Things (WoT) approach. This approach can provide a standard means of internetworking among WoT resources running on a variety of platforms and/or frameworks.
</p>
<p>
The Internet of Things (IoT) is a novel paradigm that is rapidly gaining ground in the scenario of modern wireless telecommunications. The basic idea of this concept is the pervasive presence around us of a variety of things or objects – such as Radio-Frequency IDentification (RFID) tags, sensors, actuators, mobile phones, etc. – which, through unique addressing schemes, are able to interact with each other and cooperate with their neighbors to reach common goals.
</p>
<p>
As similar, in the emerging WoT, the Web is extended from its original document-centric design to an application layer for the real world. Real-world objects like consumer devices are integrated into the WWW by representing them as Web resources, which can be accessed using lightweight APIs based on the REST principle.
</p>
<p>
Inspide of emerging WoT, overall proposed architecture at the initial stages of WoT research will have a severe bearing on the field itself and needs to be investigated. Most of the work relating to WoT architecture has been from the Web Services/SOA perspective or the wireless sensor network/IoT perspective.
</p>
<p>
@@TBD@@
</p>
<div class="note">
<p>
This is a note on Introduction part. Here will add some text about what we need to WoT.
</p>
</div>
<section>
<h3>Audience of this Document</h3>
<p>
This document is intended to inform discussions about issues of High-level Web of Things (WoT) Architecture Model. The intended audience for this document includes:
</p>
<ul>
<li>Participants in W3C Activities</li>
<li>Other groups and individuals designing technologies to be integrated within the Web of Things</li>
<li>Implementers of IoT/WoT Product</li>
<li>IoT/WoT service developer</li>
</ul>
</section>
<section>
<h3>Scope of this Document</h3>
<p>
This document presents the High-level Web of Things (WoT) Architecture Model.
</p>
</section>
</section>
<section class='informative'>
<h2>Design Goals and Rationale</h2>
<p>
The main purpose of system architecture design is to configure how co-ordination can be technically organised in a globally distributed WoT environment.
</p>
<p>
SWOTA(Simple Web of Things Architecture) satisfies the following design goals:
</p>
</section>
<section>
<h2>Terminology</h2>
<p>
This document uses the following terms defined elsewhere:
</p>
<dl>
<dt><dfn title="iot" id="dfn-iot">Internet of things (IoT)</dfn></dt><dd>
A global infrastructure for the information society, enabling advanced services by interconnecting (physical and virtual) things based on existing and evolving interoperable information and communication technologies. [ITU-T Y.2060]
</dd>
<dt><dfn title="iri" id="dfn-iri">IRI</dfn></dt><dd>
Acronym for Internationalized Resource Identifier. An IRI is a sequence of characters from the Universal Character Set (Unicode/ISO 10646) [[rfc3987]]
</dd>
<dt><dfn title="resource" id="dfn-resource">Resource</dfn></dt><dd>
Anything that might be identified by a URI or IRI [[!webarch]]
</dd>
<dt><dfn title="server" id="dfn-server">Server</dfn></dt><dd>
The role adopted by an application when it is supplying resources or resource manifestations. [W3C WACterms]
</dd>
<dt><dfn title="thing" id="dfn-thing">Thing</dfn></dt><dd>
With regard to the Internet of things, this is an object of the physical world (physical things) or the information world (virtual things), which is capable of being identified and integrated into communication networks. [ITU-T Y.2060]
<dt><dfn title="Thing Description" id="thing-description">Thing Description</dfn></dt><dd>
Description about a thing - interfaces, data and aspects of a Thing [[!rfc4627]] [[!rfc7159]]
</dd>
<dt><dfn title="URI" id="dfn-URI">URI</dfn></dt><dd>
Acronym for Uniform Resource Identifier. A simple and extensible means for identifying a resource. [[!rfc3986]]
</dd>
<dt><dfn title="user agent" id="dfn-UA">User Agent</dfn></dt><dd>
One type of Web agent; a piece of software acting on behalf of a person. Browsers are examples of user agents, as are web robots that automatically traverse the web collecting information. [[di-gloss]] [[webarch]]
</dd>
<dt><dfn titile="web agent" id="dfn-WA">Web agent</dfn></dt><dd>
A person or a piece of software acting on the information space on behalf of a person, entity, or process. [[!webarch]]
</dd>
<dt><dfn title="web of tings" id="dfn-wot">Web of Things (WoT)</dfn></dt><dd>
A way to realize the IoT where (physical and virtual) things are connected and controlled through the World Wide Web. [ITU-T Y.2063]
</dd>
<dt><dfn title="WoT Client" id="dfn-wot-client">WoT Client</dfn></dt><dd>
a logical entity that accesses an WoT Resource on an WoT Server
</dd>
<dt><dfn title="WoT Functionality" id="dfn-wot-functionality">WoT Functionality</dfn></dt><dd>
the base/core functionality contained in any WoT Device
</dd>
<dt><dfn title="WWW" id="dfn-WWW">World Wide Web</dfn></dt><dd>
An information space in which the items of interest, referred to as resources, are identified by global identifiers called Uniform Resource Identifiers (URI). [[!webarch]]
</dd>
</dL>
</section>
<section>
<h2>Conformance</h2>
<p>
The key words MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, SHOULD NOT, RECOMMENDED, NOT RECOMMENDED, MAY, and OPTIONAL in this specification have the meaning defined in [[RFC2119]].
</p>
</section>
<section>
<h2>Architecuture Model</h2>
<section>
<h3>Execution model of Web of Things (WoT) applications</h3>
<p>
This is a running model of WoT Server.
</p>
<img src="./img/running-model.png" width="640" border=0 align=center>
</section>
<section>
<h3>Web of Things (WoT) Architecture Model</h3>
<p>
The following diagram illustrates the functional components and interfaces of WoT.
</p>
<img src="./img/swot-model.png" width="800" border=0 align=center>
</section>
</section>
<section>
<h2>Functional Components</h2>
<p>
A Simple WoT consists of mandatory components (a Thing as WoT enabled device) and interfaces exposed by those components.
</p>
<section>
<dl>
<dt>WoT Device</dt>
<dd>
a WoT device is a "Thing" which enabled WoT connectivity. a “Thing” in Web of Things (WoT) can be any object that has a unique identifier and which can send/receive web resources (including information and data) over a network. WoT devices are connected any devices to the Web and provide information about themselves or about their surroundings (e.g. information sensed by the connected sensors) over a network (to other devices or servers/storage) or allow actuation upon the physical entities/environment around them remotely.
</dd>
<dt>WoT Server</dt>
<dd>WoT Server is a component resident in the WoT device and is the entry point to the WoT Enabler for all the requests coming from other component. The WoT Server exposes WOT-1, WOT-2, WOT-3, WOT-4 and WOT-5 interface.
</dd>
<dt>UA(User Agent)</dt>
<dd>
A user agent is any software that retrieves, renders and facilitates end-user interaction with web content. User agents include web browsers, media players, plug-ins, extension and web applications that help in retrieving, rendering and interacting with web content. User Agent is a component resident in the network (outside the device). It has the responsibility for interacting bidirectionally with WoT Device by using WoT-1 interface exposed by the WoT Server.
</dd>
<dt>Service Resources</dt>
<dd>
Service resources (Cloud, Server, Web Resources) are one of the components residing in the network (outside the device) to provide external resources by using WoT-2 interface.
</dd>
<dt>Sensors</dt>
<dd>
Sensors detect and respond to inputs from the physical environment, and exchange sensing information by using WoT-3 interface.
<ul>
<li>Passive sensors: a device that detects and responds to some type of input(e.g: the detection of vibrations, light, radiation, heat or other phenomena) from the physical environment. </li>
<li>Active sensors: a sensing device that requires an external source of power to operate.</li>
</ul>
</dd>
<dt>other Thing (other WoT Devices)</dt>
<dd>
An external thing is another WoT device. It uses WOT-4 interface exposed by other WoT Devices for collaboration.
<ul>
<li>Device Type1: Low performance devices (e.g: Aruino ...)</li>
<li>Device Type2: Middle performance devices (e.g: Beaglebone Black, Rasberry Pi ...)</li>
<li>Device Type3: High performance devices (e.g: Smartphone, Tablet ...) </li>
</ul>
</dd>
<dt>Event Trigger</dt>
<dd>
It is a component resident in the network (outside the device). Through WoT-5 interface, Event Trigger is responsible for sending push notifications.
</dd>
</section>
</section>
<section>
<h2>Interfaces</h2>
<p>
This section identifies the functional components and defines the interface between among those components to affect desired properties of the overall architecture.
</p>
<section>
<dt><code>WOT-1</code></dt>
<dd>
This interface is exposed by the WoT Server to User Agent. It is used by the UA to interact with the WoT Devices for performing some core functionalities related to web of things application, covering: user authentication, authorization, WoT device management.
</dd>
<dt><code>WOT-2</code></dt>
<dd>
This interface is exposed by the Service Resources. It is used by the WoT Server to interact with the external service provider for using external service resources.
</dd>
<dt><code>WOT-3</code></dt>
<dd>
This interface is exposed by the WoT Server to Sensors internally/externally connecting with WoT Devices.
</dd>
<dt><code>WOT-4</code></dt>
<dd>
This interface is exposed by the WoT Server to other WoT Device for realizing the collaboration between the WoT Devices. This interface is both exposed, and used, by WoT Server.
</dd>
<dt><code>WOT-5</code></dt>
<dd>
This interface is exposed by the WoT Server and is used by the Event Trigger to push notification to the WoT Server.
</dd>
</section>
<section>
<h3>Interface – WOT-1</h3>
<p>This interface is exposed by the WoT Server to User Agent. </p>
<ul>
<li>WoT Server SHALL support the design principle of Web Architecture Model [[!webarch]]</li>
<li>WoT Server and UA SHALL support general web standards (e.g: HTTP, URI/IRI, HTML) [[!rfc2616]] [[!rfc3986]] [[!rfc3987]] [[!html5]]</li>
<ul>
<li>WoT Server SHOULD use secure HTTP connections (HTTPS) </li>
</ul>
<li>WoT Server SHALL support RESTful architecture model </li>
<ul>
<li>WoT Server MUST support GET, POST, PUT, and DELETE HTTP verbs</li>
<li>WoT Server MUST implement HTTP status codes 200, 400, 500</li>
<li>WoT Server SHOULD support additional HTTP status codes as needed</li>
<li>WoT Server SHALL support UTF8 encoding for requests and responses </li>
</ul>
<li>WoT Server SHALL support JSON as default representation </li>
<li>WoT Server SHALL support web standard based User Interface </li>
<ul>
<li>Shall provide the offline connectivity</li>
<li>shall provide capabilities to start and monitor all of WoT application feature</li>
</ul>
<li>WoT Server SHALL support WoT Server functionality such as: </li>
<ul>
<li>Connectivity down to sensors and existing controllers embedded in the device</li>
<li>Manageability (Device, Sensor, System) and related protocol </li>
<li>Security and privacy</li>
<li>WoT Server may support remote management for fault recovery e.g. firmware update, quarantine device. After this operation of firmware update, the device may reboot to a known and consistent state</li>
</ul>
<li>WoT Server MAY support WoT Server functionality for legacy business:</li>
<ul>
<li>Connectivity up to the cloud and enterprise</li>
<li> WoT Server SHALL further support the protocols defined in the following</li>
<ul>
<li>WoT Server SHALL support [@@@] to …. </li>
</ul>
</ul>
<li>Data collection & reporting</li>
<ul>
<li>The WoT Server SHALL support the reporting from a specific WoT Device or WoT Server or group of WoT Devices or group of IoT Gateways in the way requested by the WoT Application as listed below: </li>
<ul>
<li>a periodic reporting with the time period being defined by the WoT application,</li>
<li>or an on-demand reporting with two possible modes. One is an instantaneous collecting and reporting of data, the other one is a reporting of the data that were pre-recorded at the indicated specific time period.</li>
</ul>
</ul>
<li>Remote control operation</li>
<ul>
<li>The WoT Server SHALL support the capability to remotely change the state of a WoT Device e.g. enable or disable.</li>
</ul>
<li>Information collection & delivery to multiple applications</li>
<ul>
<li>The WoT Server SHALL support the ability for multiple WoT Applications to interact with the same WoT Devices.</li>
</ul>
<li>Management of multiple WoT Devices</li>
<ul>
<li>The WoT Application SHALL be able to manage one or multiple WoT Devices, e.g. for information collection, control, either directly or through using capabilities in the WoT Service Capabilities”.</li>
</ul>
<li>WoT Device Management</li>
<ul>
<li>WoT Device SHALL support the management capability.</li>
</ul>
</ul>
<p>@@TBD</p>
<div class="note">
<p>
This is a note on WOT-1 interface
</p>
<p>
WoT-1 interface will describe the protocol between WoT Server and UA. It will cover other web protocol like as WebRTC, SSE and Web notification. [[webrtc]] [[SSE-ed]] [[notifications]]
</p>
</div>
</section>
<section>
<h3>Interface – WOT-2</h3>
<P>
This interface is exposed by the Service Resources. It is used by the WoT Server to interact with the external service provider for using external service resources.
</P>
<p>
WOT-2 covers:
</p>
<ol>
<li>expose an open API to access and exchange data for integration with external service [[!rfc7159]]</li>
<li>Expose an external web resources</li>
<li>allow to synchronize Thing’s status and information.</li>
</ol>
<p>@@TBD</p>
<div class="note">
<p>
This is a note on WOT-2 interface
</p>
<p>
WoT-2 interface will describe the protocol between WoT Server and other external Server/Cloud/Open API and web resources.
</p>
</div>
</section>
<section>
<h3>Interface – WOT-3</h3>
<P>
This interface is exposed by the WoT Server to Sensors internally/externally connecting with WoT Devices.
</P>
<p>@@TBD</p>
<div class="note">
<p>
This is a note on WOT-3 interface
</p>
<p>
WoT-3 interface will describe the protocol between WoT Device and Sensor/HW capabilities. It will cover the peripheral interconnects, whether they are I2C, SPI, USB, UARTs, Bluetooth, whatever.
</p>
</div>
</section>
<section>
<h3>Interface – WOT-4</h3>
<P>
This interface is exposed by the WoT Server to other WoT Device for realizing the collaboration between the WoT Devices. This interface is both exposed, and used, by WoT Server.
</P>
<p>@@TBD</p>
<div class="note">
<p>
This is a note on WOT-4 interface
</p>
<p>
WoT-3 interface will describe the interfaces between WoT Devices and other WoT Devices. It will cover the protocol like as HTTP, Web Socket and CoAP. [[!rfc7252]] [[rfc6455]] [[websockets]]
</p>
</div>
</section>
<section>
<h3>Interface – WOT-5</h3>
<p>
This interface is exposed by the WoT Server and is used by the Event Trigger to push notification to the WoT Server.
</p>
<p>@@TBD</p>
<div class="note">
<p>
This is a note on WOT-5 interface
</p>
<p>
WoT-5 interface will describe the one-way protocol similar as push notification, MQTT and other subscription base protocols. [[MQTT]]
</p>
</div>
</section>
<section>
<h3>Security Considerations</h3>
<p>
In this section we elaborate on the security requirements for the WoT System. We expand on the basic requirements of confidentiality, integrity, authentication, and authorization and provide specific examples of potential threats that the system should be protected against.
<ul>
<li>Authentication</li>
<ul>
<li>An entity requesting a service may authenticate the peer entity as part of setting up a service and maintaining a service.</li>
<li>The WoT system may support mutual authentication and one-way authentication.</li>
<li>The entity authenticating the peer may choose from different security strengths to ensure appropriate level of security.</li>
<li>Each service shall be able to perform authentication independently.</li>
</ul>
<li>WoT Device / WoT Server authentication</li>
<ul>
<li>The WoT System shall be able to authenticate the WoT Device or WoT Server. For WoT Devices supporting authentication and connected via an WoT Server, the authentication may be performed directly to the WoT System or to the authenticated WoT Server. </li>
</ul>
<li>Authentication of WoT service layer capabilities or WoT applications</li>
<ul>
<li>When there is a request for data or device access, the WoT Device or WoT Server should be able to mutually authenticate with the WoT Service Capabilities or WoT Applications from which request is received.</li>
</ul>
<li>Data transfer confidentiality</li>
<ul>
<li>The WoT System shall support appropriate confidentiality of the data exchange. A particular WoT application may or may not require the use of such confidentiality.</li>
</ul>
<li>Data integrity </li>
<ul>
<li>End points of the WoT System shall be able to verify the integrity of the data exchanged.</li>
</ul>
<li>Prevention of abuse of network connection</li>
<ul>
<li>WoT security solution should be such that it is not possible to illegally use the WoT Device for unintended applications.</li>
</ul>
<li>Privacy</li>
<ul>
<li>The WoT System shall be capable of protecting privacy.</li>
</ul>
</ul>
</p>
<p>
@@TBD@@
</p>
<div class="note">
<p>
This is a note on Security Considerations.
</p>
<p>
Security Considerations will describe the consideration of various security aspec.
</p>
</div>
</section>
</section>
</body>
</html>