Saturday, August 13, 2011

The Next Web: Every Device a Web Service?

Someone recently ported Node.js to a jail-broken iPhone, turning the iPhone into a fully functioning web server/app server/web service.

Smartphones are capable of hosting web services, where other applications can request and receive information from them.

The question is, why? For what?

There's a disconcerting premise in a Denzel Washington movie that comes to mind, reflecting how information can be passed from one person to another like a virus, or in this case, a spirit (watch from 00:44):


That's where the next generation of web apps explodes just after your brain explodes. Imagine 100 people at a party, each with a smartphone hosting some web service that responds to requests for information.

What info matters? What info matters to people at the party vs their networks?

Peer-to-peer software shows an early example of the power of highly distributed, single-purpose applications. Napster, Bittorrent, etc.

SETI set my brain on fire back in the 90's; I remember talking with Dave about the possibilities of chunking out computing tasks to a vast network of desktops to leverage the collective computing power. SETI does just that to process info about the universe using a network of the world's idle computers through a screensaver.

But these are single-purpose applications. Highly distributed, single-purpose APIs will open up entirely new classes of applications.

What's an example? In the Node.js post I linked to above, he talks about leveraging what's native on the iPhone--camera, accelerometer, geo, etc. Let's take the camera.

Imagine a large crowd, say at a demonstration, and everyone there has the camera API exposed and running on their phones. Now write an application that creates a collective eye every 30 feet, then broadcasts this collective eye back to an app on everyone's phones. And let's say this app creates 10 collective eyes across 100 yards of space, and broadcasts all of those back to the app, or out to the web.

You've created a mesh eye, driven by time, space, and people. You've brought back the collective eyes back to those who generate it, such that the people who make up Eye 1 can see what Eye 2 is generating down the street, or around the corner.

(We can get into whether a mesh eye is practical (bandwidth, focal points), but there are some very useful, cool things you can do by aggregating multiple real-time video streams with close proximity to one another).

So we're able to move from running apps on your phone, to running APIs that allow developers to build apps around them that run on the web, or phone, or wherever.

An clear example of this would be if Fitbit, an app that tracks your activity based on motion, were to ship an API instead of an app. Currently, you install the FitBit app on your smartphone, and it transmits your data to their servers, and you access the results through the app or through fitbit.com.

But if installed their APIs instead, other developers could build a range of applications around those APIs, so FitBit would serve as the layer that provides specific access to your motion and other info, but other applications build specific apps that leverage that.

Maybe I want to build an application that shows activity levels during the day in specific cities, and displays the results on a real-time chart. That's currently possible by FitBit through their app and data they collect from you, but that's a closed system (they do have a server API in beta).

So what I imagine is

1) Google shipping Node.js as part of Android, Apple getting over itself and doing the same. MSFT, etc.
2) Users asked if they want to participate in the API program (in some friendly way)
3) Anonymity of data pulled from the phone; note that the APIs running on the phone can have nothing to do with what's running on the phone at all, and simply run as a service.
4) phones participate as an available API source based on bandwidth & battery reserve
5) a directory of available APIs running in the cloud somewhere

Devil's advocates step forward:

--cell phones don't have fixed IPs. So what? Create a proxy system, where the IPs are fixed and hosted at the proxy, and the smartphone logs into the proxy when the phone's available.

--cell phones aren't always on, so they aren't reliable. Ok, for what? Design apps that don't depend on full-time connectivity.

--why wouldn't we just build an app for that? Well, you're not getting it. Creating generalized APIs that any app on the web can access is significantly different from apps that run on your phone just for yourself.

All of those are valid criticisms, but bandwidth, processing power, storage will continue to improve and increase. Privacy matters, certainly, and should be part of the framework.

Every node becomes its own hub. The possibilities are as limited as there are smartphones and imaginative, useful applications of something like Node.js running (efficiently) on your phone.

Cool stuff.

8 comments:

  1. Sometime ago I realized the potential you see in harnessing the portable computational technology so widely available to the masses, only realized with those masses working together.

    Irregardless, I was quite intrigued by the "mesh eye" idea you presented, as I had not reached the conclusion, but had imagined a similarly attained mapping of the planet. People stroll around with their smart devices, recording video, coupled with GPS, actively coupling together a quilt, down to the very small details of geography, to the habits of animal species...

    Photography itself is even evolving, thanks to companies like Lytro (http://www.fastcompany.com/1762270/harry-potter-esque-photos-worth-50-million-lytro)
    whereas, compared to the now, enormous amounts of data is going to be instantly captured from our surroundings.

    We could reach a very surreal sort of omniscience contained in one persons singular reality, whereas near everything can be seen by an individual from (potentially) every angle.

    Blahblahblah, throw it up in the cloud, lets get closer to the singularity.

    Ive been making quite the trip around the tubes today, and to be honest, i'm not sure who you are, or how I ended up on your blog. But i've rather enjoyed it. Props to you, keep riding the wave.

    I mostly wanted to tell you that this-
    "That's where the next generation of web apps explodes just after your brain explodes. "
    Is. A. Legendary. Quote.

    ReplyDelete
  2. Thanks--how'd you find the blog?

    If I weren't so deep into Jawaya, I'd likely start a mobile platform company around this idea.

    ReplyDelete
  3. Hah, as I said, i'm not too sure. Im working on a small low-tech startup, and have been feverishly looking around at "how to" acquire financing, venture capital, etc. Was working my way around the "whose who" that help shaped the internet, going from blog reference to blog.

    I quite like the underlying principle of Jawaya... But how can it compete with google or bing?

    See google+, essentially a better social networking site than facebook... But it is already dying?

    ReplyDelete
  4. This comment has been removed by the author.

    ReplyDelete
  5. Ahh, did not realize it was an app that builds off off those.

    ReplyDelete
  6. everything's converging toward some level of shared search & discovery. We're pretty much right there, but it's definitely going to be a challenge to disrupt the industry.

    ReplyDelete
  7. Still havent tried it out yet, on vacation, but when I get back im gonna give a good look-around at jawa, this could be a game changer for students most of all? See what your peers are researching and where they are looking for answers etc.? Maybe get some uni sponsorships?

    ReplyDelete