IEEE Consumer Electronics Magazine - March 2018 - 107

The service worker has limited access
to files in or below its file directory. This
is part of a larger approach of treating the
URL path as a file system path, but sites
can get creative with interpreting the
string. This cautious approach also limits
access to platform capabilities, such as
the native file system.
Notification is a new key capability
that relies on a service worker being
available. Even when the browser is
closed, the JavaScript engine is still running. The notification mechanism allows
data to be updated in the background so
you can quickly see the current state of
orders or reservations even if they are not
connected at the moment. The application can also use the platform notification mechanism to alert the user of
changes. To prevent denial-of-service
attacks, the notifications are routed
through the browser-supplier servers.
There is also a local data store,
IndexedDB, which advances over the
browser local storage. In addition to
having larger capacity and transactions,
IndexedDB is asynchronous. Asynchronicity is a key feature of HTML5
programming, and the promise mechanism has improved the readability of
asynchronous programs. This style can
make applications very responsive
while still having the simplicity of single threading.
I expect that more platform capabi lities, i.e., calendar providers, will
become available to PWAs. These concepts are being pioneered on mobile
devices but also prove useful on desktop devices, allowing more integration
with workflow.

LOOKING AHEAD
Because PWAs are constrained by the
browser environment, it is hard to
directly share among PWAs from different sources or across browsers. I
would like to have the ability to share
resources among browser apps and
among local machines rather than relying on distant servers.
In theory, some capabilities can be
provided by third parties with local
https servers, and perhaps we'll see
such offerings as document stores.
There is still a need for a more tradi-

such as temperature. (Alas, yes, they can
also listen in, so proceed cautiously.)

We need to shift to
thinking of the Internet in
terms of peer connectivity
rather than as something
that one can access.

PWAs AND INTERNET OF THINGS

tional file system that only stores collections of bytes without knowing what
they mean. This is similar to accessing a
file system on today's secure digital
cards allowing multiple programs to
store image files so that multiple camera applications and photo-processing
programs can share access to the same
files and create new formats. How should
access to such objects be managed?
How do I selectively share access and
limit others' ability to view a picture
even when they have physical access to
the device?
Today, we have browser machines,
such as Chromebooks, but their capabilities are limited by the available apps.
The same hardware can be used in a
Windows Netbook, which offers far
more capabilities. With time, it may
make more sense to have such browserbased machines without worrying about
the underlying operating systems.

PWA ENGINES
PWAs offer the ability to write once
and run everywhere. Smart TVs are an
example of a market that is currently
fragmented, as various vendors build
their own smart TVs, along with boxes
from Amazon, Roku, Apple, and others.
Having a browser box could provide
a standard platform that brings the benefits of web technology to this market.
Concepts like URLs would be used to
bookmark content (formerly known as
TV shows) so they can be shared. Such
capabilities as windowing (picture in
picture) can be implemented locally
and flexibly.
Devices like home lighting and climate controllers can be implemented as
applications using generic hardware and
can then be available anywhere in the
house. Voice services such as Amazon's
Alexa and Google Home can take advantage of place and monitor conditions,

The cost of a browser-capable computer
keeps dropping. However, for many
applications, there is need for running a
browser engine on the device itself.
Such devices still benefit from being
expertise-developed for browser-based
applications. NodeJS supports running
JavaScript on a wide variety of machines.
Onion.IO sells a complete system including Wi-Fi for US$7.50 retail (as of
November 2017).
We need to think about an Internet
of Things built of fully capable devices.
There will be sensors and other devices
that may be resource constrained, but
those devices can be considered as peripherals to fully capable devices. Similarly, the programming environment of
JavaScript is far more resilient than a
low-level language like C.
Rather than a mobile-first approach,
we can take a local-first approach to development. Thus, a doorbell (it's no longer a
bell but a two-way communicating device)
might take advantage of a face recognition
service but can still function if the recognition service is not available. A PWA application should communicate directly with
the door device rather than relying on a
distant server to merely authorize the door
to open.
The Internet protocols are not quite
there yet. The domain name system
depends on distant services, and the
Internet protocol address is issued by a
provider. We need to shift to thinking
of the Internet in terms of peer connectivity rather than as something that one
can access.

ABOUT JAVASCRIPT
JavaScript started as a low-performance
scripting language that was designed in
only one week. However, it was built upon
a long heritage of important design principles where the focus was on safety
and resilience. Objects were given dynamic definitions instead of having
static class definitions.

march 2018

(continued on page 117)

^

IEEE Consumer Electronics Magazine

107



Table of Contents for the Digital Edition of IEEE Consumer Electronics Magazine - March 2018

Contents
IEEE Consumer Electronics Magazine - March 2018 - Cover1
IEEE Consumer Electronics Magazine - March 2018 - Cover2
IEEE Consumer Electronics Magazine - March 2018 - Contents
IEEE Consumer Electronics Magazine - March 2018 - 2
IEEE Consumer Electronics Magazine - March 2018 - 3
IEEE Consumer Electronics Magazine - March 2018 - 4
IEEE Consumer Electronics Magazine - March 2018 - 5
IEEE Consumer Electronics Magazine - March 2018 - 6
IEEE Consumer Electronics Magazine - March 2018 - 7
IEEE Consumer Electronics Magazine - March 2018 - 8
IEEE Consumer Electronics Magazine - March 2018 - 9
IEEE Consumer Electronics Magazine - March 2018 - 10
IEEE Consumer Electronics Magazine - March 2018 - 11
IEEE Consumer Electronics Magazine - March 2018 - 12
IEEE Consumer Electronics Magazine - March 2018 - 13
IEEE Consumer Electronics Magazine - March 2018 - 14
IEEE Consumer Electronics Magazine - March 2018 - 15
IEEE Consumer Electronics Magazine - March 2018 - 16
IEEE Consumer Electronics Magazine - March 2018 - 17
IEEE Consumer Electronics Magazine - March 2018 - 18
IEEE Consumer Electronics Magazine - March 2018 - 19
IEEE Consumer Electronics Magazine - March 2018 - 20
IEEE Consumer Electronics Magazine - March 2018 - 21
IEEE Consumer Electronics Magazine - March 2018 - 22
IEEE Consumer Electronics Magazine - March 2018 - 23
IEEE Consumer Electronics Magazine - March 2018 - 24
IEEE Consumer Electronics Magazine - March 2018 - 25
IEEE Consumer Electronics Magazine - March 2018 - 26
IEEE Consumer Electronics Magazine - March 2018 - 27
IEEE Consumer Electronics Magazine - March 2018 - 28
IEEE Consumer Electronics Magazine - March 2018 - 29
IEEE Consumer Electronics Magazine - March 2018 - 30
IEEE Consumer Electronics Magazine - March 2018 - 31
IEEE Consumer Electronics Magazine - March 2018 - 32
IEEE Consumer Electronics Magazine - March 2018 - 33
IEEE Consumer Electronics Magazine - March 2018 - 34
IEEE Consumer Electronics Magazine - March 2018 - 35
IEEE Consumer Electronics Magazine - March 2018 - 36
IEEE Consumer Electronics Magazine - March 2018 - 37
IEEE Consumer Electronics Magazine - March 2018 - 38
IEEE Consumer Electronics Magazine - March 2018 - 39
IEEE Consumer Electronics Magazine - March 2018 - 40
IEEE Consumer Electronics Magazine - March 2018 - 41
IEEE Consumer Electronics Magazine - March 2018 - 42
IEEE Consumer Electronics Magazine - March 2018 - 43
IEEE Consumer Electronics Magazine - March 2018 - 44
IEEE Consumer Electronics Magazine - March 2018 - 45
IEEE Consumer Electronics Magazine - March 2018 - 46
IEEE Consumer Electronics Magazine - March 2018 - 47
IEEE Consumer Electronics Magazine - March 2018 - 48
IEEE Consumer Electronics Magazine - March 2018 - 49
IEEE Consumer Electronics Magazine - March 2018 - 50
IEEE Consumer Electronics Magazine - March 2018 - 51
IEEE Consumer Electronics Magazine - March 2018 - 52
IEEE Consumer Electronics Magazine - March 2018 - 53
IEEE Consumer Electronics Magazine - March 2018 - 54
IEEE Consumer Electronics Magazine - March 2018 - 55
IEEE Consumer Electronics Magazine - March 2018 - 56
IEEE Consumer Electronics Magazine - March 2018 - 57
IEEE Consumer Electronics Magazine - March 2018 - 58
IEEE Consumer Electronics Magazine - March 2018 - 59
IEEE Consumer Electronics Magazine - March 2018 - 60
IEEE Consumer Electronics Magazine - March 2018 - 61
IEEE Consumer Electronics Magazine - March 2018 - 62
IEEE Consumer Electronics Magazine - March 2018 - 63
IEEE Consumer Electronics Magazine - March 2018 - 64
IEEE Consumer Electronics Magazine - March 2018 - 65
IEEE Consumer Electronics Magazine - March 2018 - 66
IEEE Consumer Electronics Magazine - March 2018 - 67
IEEE Consumer Electronics Magazine - March 2018 - 68
IEEE Consumer Electronics Magazine - March 2018 - 69
IEEE Consumer Electronics Magazine - March 2018 - 70
IEEE Consumer Electronics Magazine - March 2018 - 71
IEEE Consumer Electronics Magazine - March 2018 - 72
IEEE Consumer Electronics Magazine - March 2018 - 73
IEEE Consumer Electronics Magazine - March 2018 - 74
IEEE Consumer Electronics Magazine - March 2018 - 75
IEEE Consumer Electronics Magazine - March 2018 - 76
IEEE Consumer Electronics Magazine - March 2018 - 77
IEEE Consumer Electronics Magazine - March 2018 - 78
IEEE Consumer Electronics Magazine - March 2018 - 79
IEEE Consumer Electronics Magazine - March 2018 - 80
IEEE Consumer Electronics Magazine - March 2018 - 81
IEEE Consumer Electronics Magazine - March 2018 - 82
IEEE Consumer Electronics Magazine - March 2018 - 83
IEEE Consumer Electronics Magazine - March 2018 - 84
IEEE Consumer Electronics Magazine - March 2018 - 85
IEEE Consumer Electronics Magazine - March 2018 - 86
IEEE Consumer Electronics Magazine - March 2018 - 87
IEEE Consumer Electronics Magazine - March 2018 - 88
IEEE Consumer Electronics Magazine - March 2018 - 89
IEEE Consumer Electronics Magazine - March 2018 - 90
IEEE Consumer Electronics Magazine - March 2018 - 91
IEEE Consumer Electronics Magazine - March 2018 - 92
IEEE Consumer Electronics Magazine - March 2018 - 93
IEEE Consumer Electronics Magazine - March 2018 - 94
IEEE Consumer Electronics Magazine - March 2018 - 95
IEEE Consumer Electronics Magazine - March 2018 - 96
IEEE Consumer Electronics Magazine - March 2018 - 97
IEEE Consumer Electronics Magazine - March 2018 - 98
IEEE Consumer Electronics Magazine - March 2018 - 99
IEEE Consumer Electronics Magazine - March 2018 - 100
IEEE Consumer Electronics Magazine - March 2018 - 101
IEEE Consumer Electronics Magazine - March 2018 - 102
IEEE Consumer Electronics Magazine - March 2018 - 103
IEEE Consumer Electronics Magazine - March 2018 - 104
IEEE Consumer Electronics Magazine - March 2018 - 105
IEEE Consumer Electronics Magazine - March 2018 - 106
IEEE Consumer Electronics Magazine - March 2018 - 107
IEEE Consumer Electronics Magazine - March 2018 - 108
IEEE Consumer Electronics Magazine - March 2018 - 109
IEEE Consumer Electronics Magazine - March 2018 - 110
IEEE Consumer Electronics Magazine - March 2018 - 111
IEEE Consumer Electronics Magazine - March 2018 - 112
IEEE Consumer Electronics Magazine - March 2018 - 113
IEEE Consumer Electronics Magazine - March 2018 - 114
IEEE Consumer Electronics Magazine - March 2018 - 115
IEEE Consumer Electronics Magazine - March 2018 - 116
IEEE Consumer Electronics Magazine - March 2018 - 117
IEEE Consumer Electronics Magazine - March 2018 - 118
IEEE Consumer Electronics Magazine - March 2018 - 119
IEEE Consumer Electronics Magazine - March 2018 - 120
IEEE Consumer Electronics Magazine - March 2018 - Cover3
IEEE Consumer Electronics Magazine - March 2018 - Cover4
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_20240102
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_20231112
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_20230910
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_20230708
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_20230506
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_20230304
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_20230102
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_20221112
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_20220910
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_20220708
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_20220506
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_20220304
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_20220102
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_20211112
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_20210910
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_20210708
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_20210506
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_20210304
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_202010
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_202009
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_202007
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_202004
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_202003
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_202001
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_201910
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_201909
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_201907
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_201905
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_201903
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_201901
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_201811
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_201809
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_201807
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_201805
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_201803
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_july2017
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_april2017
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_january2017
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_october2016
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_july2016
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_april2016
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_january2016
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_october2015
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_july2015
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_april2015
https://www.nxtbook.com/nxtbooks/ieee/consumerelectronics_january2015
https://www.nxtbookmedia.com