The CompuServe of Things


Summary

On the Net today we face a choice between freedom and captivity, independence and dependence. How we build the Internet of Things has far-reaching consequences for the humans who will use—or be used by—it. Will we push forward, connecting things using forests of silos that are reminiscent the online services of the 1980's, or will we learn the lessons of the Internet and build a true Internet of Things?

compuserve_logo_sns

On the Net today we face a choice between freedom and captivity, independence and dependence.

You may view that statement as melodramatic, but the near future will incorporate computers into more facets of our lives than we can imagine. If we are to trust those computers and avoid giving up autonomy to centralized authorities, we have to create an open Internet of Things. I don’t think it’s going too far to say that our natural rights as human beings are based on a world that is heterarchical by nature—and that we are fooling ourselves if we think we can maintain those rights using only hierarchies and centralized systems. Building the CompuServe of Things instead of a true Internet of Things is a real threat to personal freedom and autonomy, and will halt progress for decades to come, unless we do the right thing now.

Online Services

Back in the day, some of us were lucky enough to be at a university and use the Internet. I started using the Internet in 1986 when I entered graduate school at UC Davis. If you weren't one of the chosen few with an Internet connection and wanted to communicate with friends, you used CompuServe, Prodigy, AOL or some other "online service." Each of these offered a way to send email, but only to people on the same service. They had forums where you could discuss various topics. And they all had what we'd call "apps" today. Sounds kind of like Facebook, actually. These services were silos. Each was an island that didn't interoperate with the others.

In the mid-90's, interest in the Web caused a number of companies to get into the dial-up Internet service business. Once connected to the Internet, you could email anyone, participate in forums anywhere, look at any Web site, shop from any store, and so on. AOL successfully made the transition from online service business to ISP, the rest did not.

Online 2.0: Return of the Silos

Each of these online service businesses sought to offer a complete soup-to-nuts experience and capitalized on their captive audiences in order to get businesses to pay for access. In fact, you don't have to look very hard to see that much of what's popular on the Internet today looks a lot like sophisticated versions of these online service businesses. Web 2.0 isn't so much about the Web as it is about recreating the online business models of the 80's and early 90's. Maybe we should call it Online 2.0 instead.

To understand the difference, consider GMail vs. Facebook Messaging. Because GMail is really just a massive Web-client on top of Internet mail protocols like SMTP, IMAP, and POP, you can use your GMail account to send email to any account on any email system on the Internet. And, if you decide you don't like GMail, you can switch to another email provider (at least if you have your own domain).

Facebook messaging, on the other hand, can only be used to talk to other Facebook users inside Facebook. Not only that, but I only get to use the clients that Facebook chooses for me. Facebook is going to make those choices based on what's best for Facebook. And most Web 2.0 business models ensure that the interests of Web 2.0 companies are not necessarily aligned with those of their users. Decisions to be non-interoperable aren't done out of ignorance, but on purpose. For example, WhatsApp uses an open protocol (XMPP), but chooses to be a silo.

Note: I'm not making a "Google good, Facebook bad" argument. I'm merely comparing GMail to Facebook messaging. Google has its own forms of lock-in in many of its products and is every bit as much a re-creation of the 1980's "online service" business model as Facebook.

Which brings us to the Internet of Things. The Internet of Things envisioned today isn’t a real Internet. It’s a forest of silos, built by well-meaning companies repeating the errors of history, giving us the modern equivalents of isolated mainframes, non-compatible LANs and incompatible networks like those of AOL, Compuserve and Prodigy. What we're building ought to be called the CompuServe of Things.

A Real, Open Internet of Things

If we were really building the Internet of Things, with all that that term implies, there'd be open, decentralized, heterarchical systems at its core, just like the Internet itself. There aren't. Sure, we're using TCP/IP and HTTP, but we're doing it in a way that is closed, centralized, and hierarchical with only a minimal nod to interoperability using APIs.

We need the Internet of Things to be the next step in the series that began with the general purpose PC and continued with the Internet and general purpose protocols—systems that support personal autonomy and choice. The coming Internet of Things envisions computing devices that will intermediate every aspect of our lives. I strongly believe that this will only provide the envisioned benefits or even be tolerable if we build an Internet of Things rather than a CompuServe of Things.

When we say the Internet is "open," we're using that as a key word for the three key concepts that underlie the Internet:

  1. Decentralization
  2. Heterarchy (what some call peer-to-peer connectivity)
  3. Interoperability

You might be thinking, aren't decentralization and heterarchy more or less the same? No. To see how they differ, consider two examples: DNS, the domain name service, and Facebook. DNS is decentralized, but hierarchical. Zone administrators update their zone files and determine in a completely decentralized manner which sub domains inside their domain correspond to which IP addresses (among other things). But the way DNS achieves global consensus about what these mappings mean is hierarchical. A few well-known servers for each top-level domain (TLD) point to the servers for the various domains inside the TLD, which in turn point to servers for sub domains inside them, and so on. There's exactly one, hierarchical copy of the mapping.

Facebook, on the other hand, is heterarchical, but centralized. The Facebook Open Graph relates people to each other in a heterarchical fashion—peer-to-peer. But of course, it's completely centralized. The entire graph resides on Facebook's servers under Facebook's control.

Interoperability allows independently developed systems to interact. Interoperability provides for substitutability, allowing one system or service to be substituted for another without loss of basic functionality. As noted above, even though I use GMail as my email provider, I can talk to people who use Hotmail (i.e. they're interoperable) and I can, if I'm unhappy with GMail, substitute another email provider.

Decentralization, heterarchy, and interoperability are supported by protocol, the standards that govern interaction. One of the ironies of open systems like the Internet is that rules are more important than in closed systems. In a closed system, the hierarchical, centralized authority imposes standards that create order. In an open, decentralized, heterarchical system, the order must be agreed to ahead of time in the form of protocol.

These three concepts aren't optional. We won’t get the real Internet of Things unless we develop open systems that support decentralization, heterarchy, and interoperability. We might well ask "where are the protocols underlying the Internet of Things?" TCP/IP, HTTP, MQTT, etc. aren't enough because they work at a level below where the things will need to interoperate. Put another way, they leave unspecified many important processes (like discovery).

Personal Autonomy and Freedom

My point isn't a narrow technical one. I'm not arguing for an open Internet of Things because of perceived technical benefits. Rather, this is about personal autonomy and ultimately human rights. As I said above, the Internet of Things will put computers with connectivity into everything. And I really mean "every thing." They will intermediate every aspect of our lives. Our autonomy and freedom as humans depend on how we build the Internet of Things. Unless we put these connected things under the control of the individuals they serve without an intervening administrative authority, we will end up building something that undermines the quality of life it's meant to bolster.

What is an "intervening administrative authority?" Take your Fitbit as an example. You pay $99 for the device, but cannot use it without also creating an account at Fitbit and having all the data from the device flow through Fitbit's servers. In this case, Fitbit is the "intervening administrative authority." Whenever you create an account at Fitbit or anywhere else, you're being "administered" and giving up some amount of control. That's not necessarily a bad thing, but it does, taken in aggregate, place real and significant restrictions on personal autonomy.

If Fitbit decides to revoke my account, I will probably survive. But what if, in some future world, the root certificate authority of the identity documents I use for banking, shopping, travel, and a host of other things decides to revoke my identity for some reason? Or if my car stops running because Ford shuts off my account? People must have autonomy and be in control of the connected things in their life. There will be systems and services provided by others and they will, of necessity, be administered. But those administering authorities need not have control of people and their lives. We know how to solve this problem. Interoperability takes "intervening" out of "administrative authority."

The only way we get an open Internet of Things is to build it. That means we have to do the hard work of figuring out the protocols—and business models—that support it. I'm heartened by developments like Bitcoin's blockchain algorithm, the #indieweb movement, Telehash, XDI Discovery, MaidSafe, and others. And, of course, I've got my own work on KRL, CloudOS, and Fuse. But there is still much to do.

We are at a crossroads, with a decision to make about what kind of future we want. We can build the world we want to live in or we can do what's easy, and profitable, in the short run. The choice is ours.


Update: After posting this, I found that Adam McEwen used the term "CompuServe of Things" in a talk he gave in 2013: Risking a Compuserve of Things