How do we program the Internet of Things at scale?
Prof. Henning Schulzrinne is Julian Clarence Levi Professor of Computer Science at Columbia University. He received his undergraduate degree in economics and electrical engineering from the Darmstadt University of Technology, Germany, his MSEE degree as a Fulbright scholar from the University of Cincinnati, Ohio and his Ph.D. from the University of Massachusetts in Amherst, Massachusetts. He was a member of technical staff at AT&T Bell Laboratories, Murray Hill and an associate department head at GMD-Fokus (Berlin), before joining the Computer Science and Electrical Engineering departments at Columbia University, New York. From 2010 to 2017, he served as Engineering Fellow, Technology Advisor, and Chief Technology Officer at the US Federal Communications Commission (FCC). In 2019-2020, he worked as a Technology Fellow in the US Senate.
Protocols co-developed by him, such as RTP, RTSP and SIP, are used by almost all Internet telephony and multimedia applications.
He is a Fellow of the ACM and IEEE, has received the New York City Mayor’s Award for Excellence in Science and Technology, the VON Pioneer Award, TCCC service award, IEEE Internet Award, IEEE Region 1 William Terry Award for Lifetime Distinguished Service to IEEE, the UMass Computer Science Outstanding Alumni recognition, and is a member of the Internet Hall of Fame.
Currently, many IoT systems are limited in size and scope, with maybe a few dozen devices. However, building automation, intelligent transportation and global environmental monitoring creates systems that span multiple administrative domains and may contain tens of thousands of sensors and actuators. The developer may no longer be operating the devices, or even know much about their physical location or hardware configuration. Currently, most devices expose a simple query-and-set model, via CoAP, MQTT or HTTP, and are identified by their network address or an arbitrary domain name with uncertain semantics. Even concepts like named data networking (NDN) or blockchains are unlikely to improve the developer experience. These challenges validate the old saying that “there are only two hard things in Computer Science: cache invalidation and naming things.” IoT systems are particularly hard since future use of data is very speculative, and since human-centric names, as for web sites, are harder to come by.
We have been exploring an abstraction model, SenSQL, that reduces the amount of data transmitted across networks by treating devices and edge resources as a collection of SQL time series data stores. This presents a familiar programming model to application developers and makes it easy to unify both current and historical data. Geographic sharding allows programmers to find relevant data without having to know the network addresses or domain names of devices. This edge computing model allows “lazy evaluation”, where data is only transmitted across the network if it is actually needed.