- From: Kazuyuki Ashimura <ashimura@w3.org>
- Date: Mon, 08 Mar 2021 12:41:30 +0900
- To: public-wot-wg@w3.org
available at:
https://www.w3.org/2021/02/11-wot-arch-minutes.html
also as text below.
Thanks a lot for taking the minutes, Michael Koster!
Kazuyuki
---
[1]W3C
[1] https://www.w3.org/
WoT Architecture
11 February 2021
[2]Agenda. [3]IRC log.
[2] https://www.w3.org/WoT/IG/wiki/WG_WoT_Architecture_WebConf#Feb._11th.2C_2021
[3] https://www.w3.org/2021/02/11-wot-arch-irc
Attendees
Present
Christine_Perey, David_Ezell, Kaz_Ashimura,
Michael_Koster, Michael_Lagally, Michael_McCool,
Tomoaki_Mizushima
Regrets
-
Chair
Lagally
Scribe
mjk
Contents
1. [4]agenda bashing
2. [5]review minutes from February 4th call
3. [6]PR 579
4. [7]wot-profile issue #68
Meeting minutes
agenda bashing
Lagally: proposes the agenda to continue discussion on the
reference constrained device
Lagally: propose agenda item to discuss VF2F
review minutes from February 4th call
<kaz> [8]Feb-4
[8] https://www.w3.org/2021/02/04-wot-arch-minutes.html
Koster: 256K RAM seems good for the reference, 512K is
available but 256 may be more of a sweet spot
Lagally: any other comments?
Lagally: minutes approved
PR 579
<kaz> [9]PR 579 - Define TD Fragment
[9] https://github.com/w3c/wot-architecture/pull/579
Lagally: are there any architecture topics for this call?
McCool: there is a suggestion for the current PR for the term
"element"
McCool: we need to differentiate from "fragment" which has a
special meaning in JSON usage
McCool: we can close and create a new issue for "element"
McCool: PR is #579
wot-profile issue #68
<kaz> [10]wot-profile issue 68 - Reference Device Definition
for the smallest possible platform for HTTP / TCP / JSON
[10] https://github.com/w3c/wot-profile/issues/68
McCool: we should think about the workload to determine the
sizing
McCool: for example, development may have different needs from
production deployment
McCool: we mostly experience the developer workflow
Lagally: we need practical experience
McCool: we could experimentally profile some application
McCool: to determine the bounds of memory use
Lagally: we need to determine lower bounds
McCool: minimum plus application needed memory
Koster: +1 on profiling, we could capture the minimum and an
application delta
<McCool> jerryscript
McCool: we could profile node-wot assuming jerryscript
<McCool> [11]https://news.ycombinator.com/item?id=17995625
[11] https://news.ycombinator.com/item?id=17995625
<McCool> this is low.js
<McCool> [12]https://jerryscript.net/
[12] https://jerryscript.net/
<McCool> there's also micropython
McCool: ROM is cheap in terms of power consumption
McCool: micropython might work
<McCool> [13]https://blog.arduino.cc/2020/07/02/
arduino-security-primer/
[13] https://blog.arduino.cc/2020/07/02/arduino-security-primer/
McCool: C++ could use arduino as an IDE
<McCool> [14]https://
www.wolfssl.com/?gclid=Cj0KCQiAyJOBBhDCARIsAJG2h5dTB7iAm0YRM3G2
5Sf4Xf53tzHj9NKCSbYvQ-dIftJ2OOmlHCURnUAaAmbjEALw_wcB
[14] https://www.wolfssl.com/?gclid=Cj0KCQiAyJOBBhDCARIsAJG2h5dTB7iAm0YRM3G25Sf4Xf53tzHj9NKCSbYvQ-dIftJ2OOmlHCURnUAaAmbjEALw_wcB
Koster: Arm TLS is the common implementation for embedded
devices
<McCool> anyway, it seems BearSSL targets devides with 32KB
<McCool> so... 64K is probably "safe" for HTTPS
Kaz: in addition to memory footprint issue, there is a question
about security certificates
McCool: we should look at CoAP and DTLS
Lagally: but we also need HTTP
<McCool> I think that HTTPS is an upper bound on CoAPS anyhow
<McCool> so if we can do HTTPS, the same device should be able
to do CoAPS
McCool: the Arduino blog describes TLS in 32K
Lagally: does it need the Secure Element to reduce RAM usage?
McCool: unknown
<McCool> mm: but if we say 64K we should be fine even without
hte secure element
Lagally: ESP8266 has 40K available for applications
… including communication buffers
McCool: length of URLs is probably the biggest factor in TD
size
McCool: simple devices can use base URI to reduce size
McCool: After that, it's number of interactions
McCool: 256 maximum URL length seems big
McCool: maybe we should constrain the size of all URLs
… total URL storage size
McCool: maybe we need to store the entire TD in RAM
Lagally: a client will need to read a TD and extract what is
needed
McCool: a device would need to store a set of forms to interact
with the controlled device
McCool: sometimes a client will need to do bulk reads, which
results in large buffers
Koster: largest response may be the full TD
McCool: pagination would limit the required buffer size
Lagally: let's assume two simple devices interacting with each
other
Lagally: would a TD be bigger than 1-2KB?
McCool: we could fix the problem at the architecture level by
enabling incremental consumption of TDs
Lagally: there will still be a minimum for transmitting and
parsing
McCool: we need a standard way to paginate or incrementally
evaluate TDs
<McCool> [15]https://github.com/w3c/wot-discovery/issues/117
[15] https://github.com/w3c/wot-discovery/issues/117
Koster: is it related to the signing and canonical TD work?
McCool: there are requirements like signature block size
… maybe small devices need to store TDs in canonical form
Lagally: what if we assume we don't have pagination for now
… with respect to design complexity and the time it would take
… maybe we can get 90% of the use cases through simpler
mechanisms
Lagally: programming language may not be much of a factor in
light of these data size limitation
McCool: proposing we could allow 32K for TD size in a 128K
device
… based on HTTP server and other stack estimates
McCool: let's look at some TD sizes from the plugfest
McCool: looking at the TD repository from the last PF, 4K, 7K,
5K is common, with one 37K TD for a complex camera
… all using full URLs
… 32K may be tight in some cases
McCool: documentation could be moved to TMs that are references
in the TD
Lagally: is there a base form for TDs?
Lagally: could we consider 16KB?
Lagally: we have a use case with multiple network addresses,
for example proxies
… all consuming devices would be required to have this much
buffer space
… could we achieve a 95% coverage
McCool: the memory size required may go up to 128K if we
require 32K TD size
McCool: if we consider a constrained device category, 16K is OK
Kaz: maybe we need to consider compression like EXI for
constrained TD
McCool: 16K as an upper bound may be OK and we could introduce
compression later
McCool: maybe a light switch doesn't need to consume the camera
TD
Lagally: let's summarize the notes
Lagally: let's consider this as a proposal
… maximum TD size is 16K
McCool: we should include the raw numbers and math to help
explain our choice
Lagally: need to close now
… we have enough to go forward with a PR for a first draft on
reference device sizes
Lagally: AOB?
<kaz> fyi, [16]EXI for JSON and [17]CBOR
[16] https://www.w3.org/TR/exi-for-json/
[17] https://tools.ietf.org/html/rfc7049
[adjourn]
Minutes manually created (not a transcript), formatted by
[18]scribe.perl version 127 (Wed Dec 30 17:39:58 2020 UTC).
[18] https://w3c.github.io/scribe2/scribedoc.html
Received on Monday, 8 March 2021 03:41:35 UTC