There was a time when the decisions you made about what you did with apps started down at OSI Layer 1: with wiring. That's because everybody sold “integrated” systems that were silo'd up every layer of the OSI stack, which looked like this:
(Yes, there are other ways of sorting these out. But these seven are the most widely used, so bear with me.)
So, several decades ago, if you had an IBM system 34, 36 or 38, you needed twinaxial wiring at the bottom and apps written just for those systems on top. Even different IBM systems used different wiring, networking and apps.
Efforts to make wiring more generic took place a level or two up. That's what Ethernet and IBM's own Token Ring did. But, there were lots of different Ethernet and Token Ring products, each with their own special wiring as well. These too were problems to be solved. Novell got that started in the mid-1980s with NetWare, and TCP/IP finished the job by taking care of layers 3 and 4 (network and transport) for everybody and everything, through the Internet. TCP/IP's liberating effects go both up the stack and down. You can put whatever you want under it or over it, without worrying about what's on the other side.
Our lives sit atop Layer 7. This is the layer we see when we look at the collection of apps on the mobile devices that go in our pockets. Since we're talking Linux here, that mostly means Androids, which passed the 100,000 app mark in late October 2010. For the sake of the point I'm about to make, let's add the 300,000 apps that also are on iPhone, and the thousands each on Windows, Symbian and other platforms. My point is that the OSes on which they run shouldn't limit how you connect them to whatever you want, including other apps.
But, most of the apps we get are extensions of servers and services. At that level, lots of great stuff is happening, especially with APIs. Facebook's and Twitter's APIs give you a single-sign-on shortcut on many sites. You also can connect services, such as by making your Flickr photo uploads appear on Facebook.
But, what can we do all by ourselves to connect apps and data together in our pockets? For that, we're still early.
For example, let's say you're a surfer. You have a surfing app on your phone. You also have a calendar, a map app with traffic information and a fitness app with data gathered from your bathroom scale, your sleep monitoring system and your workout app. In the old world, where we still live, the first place most of us naturally look for putting these things together is within and across the different services provided by the makers of those apps and devices. But, why not program these connections for ourselves? That's the only way we can be fully autonomous at Level 7.
“Level 7 is the last frontier”, Craig Burton says. At Novell in the 1980s, he made NetWare liberate dependencies from levels 1 and 2. Now he's working with Kynetx, a startup in Utah. Rather than looking at the world as a bunch of clients and servers, Kynetx sees end points, events, rules, data and rules engines. To those, they've added some definition and a language (KRL) for writing rules. Using KRL, you can program rules to say surf's up (when it actually is, in real time), but only after also noticing that you're five pounds overweight, it's four days since you've exercised, you've had enough sleep, you have no appointments coming up, and the traffic is clear. Notice that all the control here is in the hands of the user. (The same can be true for companies, which can write their own rules too, but our focus here is personal.)
Back in the client-server world, which is still with us, we now have a proactive model, in which there are what Craig Burton calls “full-duplex” interactions across APIs, live. This is new too.
Here in Cambridge, Massachusetts, I've also been talking with Ben Rubin, founder and CTO of Zeo, another developer whose work I dig. Zeo makes the Sleep Coach, a device that monitors the health of your sleep. (Yes, it runs on Linux.) Zeo's corporate friends include RunKeeper, DalilyBurn, Digifit and Withings. I already have a Withings bathroom scale. I just got my Zeo set up today. And, I've also just started working out at the local Y. Over the next couple months, I'm going to see how these all mash up, keeping in mind how I'd like to control the ways these sites, services, apps and devices let me do that—on my own—and how new frameworks like Kynetx's make that possible. I'll let you know how it goes.