Imagine this: identity computing

October 25, 2012 | Leave a comment

I originally wrote this over on Google+.

I’m sat at my laptop, which has a monitor attached via a digital connection. On the other side of my desk is my phone, and a tablet.

That’s the setup I actually have right now, as I’m writing this. But all these devices (monitor aside) are connected to the Internet, rather than each other. And they’re mostly incompatible. What if they all knew about each other in relation to each other’s position? And what if they were part of one big, decentralized, identity-aware system?

I pull up my email, and with one mid-air gesture – swipe – it swooshes across to my second monitor. I grab a document, and with another gesture – swipe – it lands on my tablet. Finally, I take the project I’m working on, for example source code in an IDE, and with another gesture – swipe – it’s on my phone.

They’re all talking to each other as a mesh network, and because they’re all my devices, I can move applications to them with no problem, my computer and datastore always acting as the central hub, with authentication handled through my saved identity information.

Then you walk up holding a device (a phone, or a tablet), and I want to share that document with you. Swipe, thumbs up – after a gesture and a confirmation by both of us, you have the information running on your screen. I might revoke it later, but for now, you can read it and make suggestions. (And no, that thumbs up isn’t the default gesture, but I’m a cheeseball, and I like giving my data the thumbs up.)

You walk away, and your device switches seamless from the proximity mesh network to using the Internet to access the data and keep it synchronized. I decide to go for lunch, so I pick up my phone. My other devices lock down. While I’m at lunch, I can still check out all my data and applications through my phone, using my Internet connection. And as I walk back to my desk, my other devices unlock. I see that my colleague has used my laptop while I was away, but that’s cool; it will have used their phone as their identity, and they will have seen their own applications and data. In fact, these days I use my phone to authenticate everywhere – although I can choose any one of my devices to be my primary identity. I can pick a couple as secondaries, too, and I can always nominate a new primary if I lose or change my phone. And of course, this is my work ID; I can flip over to my personal ID, or a pseudonymous ID, if I need to. Depending on the permissions, I can even share data, applications and resources between IDs. (My work ID doesn’t let me do that, but I can certainly set my main personal ID and my pseudonym ID to share some stuff.)

Now that I’m back at my desk, I see that you’ve made some changes to the document. I accept them, revoke access, and swipe you a new document. Even though you’re not nearby, the Internet allows me to act as if you are. It’s as useful as it ever was, but it’s more of a long-range extender for my personal network, and a backup, than the place where I always live.

There’s no need for my applications to live in “the cloud”, although they could. But identity-aware decentralized computing gives me the freedom to share with the people I need to, on the devices that make sense at the time, in the place that makes sense at the time. My applications are smart enough to decouple form from function, so they adapt to the screen and capabilities of my choice (and the operating platform handles a lot of the heavy lifting here, making sure interfaces are consistent – and adhere to my settings – in the process). And my data can live anywhere I need it to.

Decentralized social networking using web intents

August 11, 2011 | Leave a comment

Connect with meI believe that web intents are the last missing piece for decentralized social networking. (Previously I’ve talked about creating a social web architecture using Activity Streams and OAuth; this builds on that idea.)

Picture this chain of events:

  1. I visit your website, and see that you have a “connect to me” button[1].
  2. I click the button, launching the “social-connect” web intent.
  3. If I have web intents, my browser “logs me in” to your website via OpenID, silently passing the URL of my identity site[2]. I never have to manually log in with a URL, which has been the main criticism of OpenID. (If I prefer, I can have my browser log in via Facebook, Twitter, Microsoft Live ID, etc etc.)
  4. If I don’t have web intents, your website falls back to prompting me to connect using any of its supported schemes.
  5. In the handshaking process, your site assigns my identity a unique token, or a unique token is obtained from my identity (depending on authentication scheme). Either way, you end up with an internal token that represents my identity, which both your website and my identity site know.
  6. My identity site determines the locations of your Activity Streams, RSS feeds, etc, in the usual ways.
  7. You receive a notification that I’ve connected with you, and can now place me in an access group via a visual interface. Think Livejournal’s friends lists, Elgg’s friends collections, or Google+’s circles. When you post new content, to your site, you can restrict it to any combination of those groups.
  8. My identity site periodically makes requests to your website for new content, signing it with my token.
  9. I read new content and activity from a central reader panel attached to my identity site.

Of course, technologies like Portable Contacts, OAuth and even FOAF can have a place here: this simply provides a loose connection mechanism for nodes. I also feel like the “social-connect” intent could trigger an OStatus subscribe action, although I’d like to see signed requests so that access permissions can be enabled.

Needless to say, web intents can help a great deal for other parts of the process, for example clicking on “share” or “comment” on a piece of content. I also think Creative Commons licenses have a part to play here when it comes to sharing and resharing content across the decentralized social web, but that’s a story for another day.

The connect to me button should be distinctive. You should see it and automatically know that you can connect socially with this website. I’m thinking something obvious and instantly recognizable, akin to the RSS icons, or the star that now ubiquitously means “bookmark this”. I’ve illustrated this post with a quick Sharpie prototype, but it’s not really meant to be a recommendation. (Nonetheless, I’ve shared it under a Creative Commons license.)

Your identity site could be self hosted, or it could be a Google Profile, a WordPress.com site, or any commercial profile. Needless to say, everyone can have more than one identity site, and there’s no reason why your identity platform couldn’t support pseudonyms, alter egos and access-restricted profiles.

Chrome OS and the web as applications

July 8, 2009 | Leave a comment

It’s not a Google strategy, but they’ve chosen to embrace and extend it: the web is turning into an application platform.

Google announced Chrome OS today – an operating system for netbooks, designed to boot up in seconds directly to a browser. Applications run using HTML 5 standards, which include support for offline applications and advanced interface capabilities.

More than that, it’s an attack – not just on Microsoft, but on the old model for operating systems and home computing. The web allows greater ease of use (no application installs!), lower resource requirements (perfect for those netbook CPUs) and instant connectivity. Social functionality becomes intrinsic to all software on the platform, rather than a product in itself. See Building the User-Centered Web for a detailed analysis of how software will change, and why.

Of course, if this revolution happens through Google Apps (or applications hosted on the Google App Engine), running Google advertising and saving to a central Google Account, well, they’ll just have to live with it. I’ve argued before that Google Wave is a Sharepoint killer, but this move makes that positioning explicit; Google is set to directly take on Microsoft. By making the operating system open source, they’ve invited everyone to join in.

It’ll be an interesting battle: while Windows 7 won’t ship with a browser in Europe, Chrome OS is all browser. More broadly, web applications could help with much-needed cost cutting in places like schools and public institutions, so there’s a lot at stake here.

As regular readers will know, I’m very interested in this change, and I plan on getting my hands dirty helping to build a decentralized user-centered web that, like the web at large, is owned by nobody. There’s still more to be done. Watch this space.