Using the Web to Build the IoT
Dominique D. Guinard and Vlad M. Trifa
  • April 2016
  • ISBN 9781617294006
  • 176 pages

The Internet of Things offers us an internet that is becoming more than just a mass of multimedia content. The IoT extends into the physical, real-time world using a myriad of tiny computers. It's a system of physical objects that can be discovered, monitored, controlled, and interacted with by electronic devices that communicate over various networking interfaces and can be connected to the wider internet.

Using the Web to Build the IoT is a collection of six hand-picked chapters that introduce the key technologies and concepts for building the application layer of the IoT. Dominique D. Guinard and Vlad Trifa , authors of Building the Web of Things, selected these specific topics to give you an overview of the Web of Things architecture, along with techniques for data ingestion, searching, security, and visualization. Plus, you'll get a sample of some other Manning books you may want to add to your library.

Table of Contents detailed table of contents



The Access layer

1. Hello, World Wide Web of Things

1.1. Meet a Web of Things device

1.1.1. The suspect: Raspberry Pi

1.2. Exercise 1—Browse a device on the Web of Things

1.2.1. Part 1—The web as user interface

1.2.2. Part 2—The web as an API

1.2.3. So what?

1.3. Exercise 2—Polling data from a WoT sensor

1.3.1. Part 1—Polling the current sensor value

1.3.2. Part 2—Polling and graphing sensor values

1.3.3. Part 3—Real-time data updates

1.3.4. So what?

1.4. Exercise 3—Act on the real world

1.4.1. Part 1—Use a form to update text to display

1.4.2. Part 2—Create your own form to control devices

1.4.3. So what?

1.5. Exercise 4—Tell the world about your device

1.5.1. So what?

1.6. Exercise 5—Create your first physical mashup

1.6.1. So what?

1.7. Summary

1.7.1. What's inside

2. Getting data from clients: data ingestion

2.1. Common interaction patterns

2.1.1. Request/response

2.1.2. Request/acknowledge

2.1.3. Publish/subscribe

2.1.4. One-way

2.1.5. Stream

2.2. Scaling the interaction patterns

2.2.1. Request/response optional

2.2.2. Scaling the stream pattern

2.3. Fault tolerance

2.3.1. Receiver-based message logging

2.3.2. Sender-based message logging

2.3.3. Hybrid message logging

2.4. A dose of reality

2.5. Summary

2.5.1. What's inside

The Find layer

3. Enhancing results from search engines

3.1. Enhancing HTML by embedding RDFa

3.1.1. RDFa markup using FOAF vocabulary

3.1.2. Using the HTML span attribute with RDFa

3.1.3. Extracting Linked Data from a FOAF-enhanced HTML document

3.2. Embedding RDFa using the GoodRelations vocabulary

3.2.1. An overview of the GoodRelations vocabulary

3.2.2. Enhancing HTML with RDFa using GoodRelations

3.2.3. A closer look at selections of RDFa GoodRelations

3.2.4. Extracting Linked Data from GoodRelations-enhanced HTML document

3.3. Embedding RDFa using the vocabulary

3.3.1. An overview of

3.3.2. Enhancing HTML with RDFa Lite using

3.3.3. A closer look at selections of RDFa Lite using

3.3.4. Extracting Linked Data from a enhanced HTML document

3.4. How do you choose between using or GoodRelations?

3.5. Extracting RDFa from HTML and applying SPARQL

3.6. Summary

3.6.1. What's inside

The Share layer

4. Security

4.1. The security mindset

4.2. Keeping your code as bug-free as possible

4.2.1. Enforcing good JavaScript with JSHint

4.2.2. Halting after errors happen in callbacks

4.2.3. Perilous parsing of query strings

4.3. Protecting your users

4.3.1. Using HTTPS

4.3.2. Preventing cross-site scripting attacks

4.3.3. Cross-site request forgery (CSRF) prevention

4.4. Keeping your dependencies safe

4.4.1. Auditing the code

4.4.2. Keeping your dependencies up to date

4.4.3. Check against the Node Security Project

4.5. Handling server crashes

4.6. Various little tricks

4.6.1. No Express here

4.6.2. Preventing clickjacking

4.6.3. Keeping Adobe products out of your site

4.6.4. Don't let browsers infer the file type

4.7. Summary

4.7.1. What's inside

The Compose layer

5. Example: NYC taxi data

5.1. Data: NYC taxi trip and fare information

5.1.1. Visualizing the data

5.1.2. Defining the problem and preparing the data

5.2. Modeling

5.2.1. Basic linear model

5.2.2. Nonlinear classifier

5.2.3. Including categorical features

5.2.4. Including date-time features

5.2.5. Model insights

5.3. Summary

5.3.1. What's inside

6. Big data visualization

6.1. Big geodata

6.1.1. Creating random geodata

6.1.2. Drawing geodata with canvas

6.1.3. Mixed-mode rendering techniques

6.2. Big network data

6.3. Optimizing xy data selection with quadtrees

6.3.1. Generating random xy data

6.3.2. xy brushing

6.4. More optimization techniques

6.4.1. Avoid general opacity

6.4.2. Avoid general selections

6.4.3. Precalculate positions

6.5. Summary

6.5.1. What's inside



About the authors

Dominique Guinard and Vlad Trifa are the co-founders of EVRYTHNG, a large-scale Web of Things cloud powering millions of Web Things and, the earliest community for practitioners and researchers in the Web-connected devices. Dom got his Ph.D. from ETH Zurich, where he worked on the early concepts of the Web of Things architecture: an open application layer for the Internet of Things. Vlad completed his PhD at the Institute for Pervasive Computing at ETH Zurich working on the Web of Things and real-time data sharing, collection, and processing using Web technologies. Both are veterans of WoT and IoT technologies and have pioneered this field at SAP and MIT.

  • eBook $0.00 PDF only

FREE domestic shipping on three or more pBooks