All Software Should Be Network Aware
by Tim O'Reilly
October 2003
I've been noodling for some time on the idea that we need some kind of equivalent to the old Apple Human Interface Guidelines (PDF) for the new world of networked applications. The original Human Interface Guidelines laid out Apple's vision for a set of consistent approaches for GUI applications. Even though Windows ended up with a different set than the Mac, the idea was simple and profound: create a consistent set of user expectations for all applications and live up to them. Now that we're moving into the era of "software above the level of a single device" (Dave Stutz), we need something similar for network-aware applications, whether those applications live on a PC, a server farm, a cell phone or PDA, or somewhere in between.
Here are some of the things that I'd like to see universally supported:
Rendezvous-like functionality for automatic discovery of and potential synchronization with other instances of the application on other computers. Apple is showing the power of this idea with iChat and iTunes, but it could be applied in so many other places. For example, if every PIM supported this functionality, we could have the equivalent of "phonester" where you could automatically ask peers for contact information. Of course, that leads to guideline 2.
If you assume ad-hoc networking, you have to automatically define levels of access. I've always thought that the old Unix UGO (User, Group, Other) three-level permission system was simple and elegant, and if you replace the somewhat arbitrary "group" with "on my buddy list," you get something quite powerful. Which leads me to . . .
Buddy lists ought to be supported as a standard feature of all apps, and in a consistent way. What's more, our address books really ought to make it easy to indicate who is in a "buddy list" and support numerous overlapping lists for different purposes.
Every application ought to expose some version of its data as an XML web services feed via some well defined and standard access mechanism. One of the really big wins that fueled the early web was a simple naming scheme: you could go to a site called www.foo.com, and you'd find a web server there. This made web addresses eminently guessable. We missed the opportunity for xml.foo.com to mean "this is where you get the data feed," but it's probably still possible to come up with a simple, consistent naming scheme. And of course, if we can do it for web sites, we also need to think about how to do it for local applications, since . . .
We ought to be able to have the expectation that all applications, whether local or remote, will be set up for two-way interactions. That is, they can be either a source or sink of online data. So, for example, the natural complement to Amazon's web services data feeds is data input (for example, the ability to comment on a book on your local blog, and syndicate the review via RSS to Amazon's detail page for the book). And that leads to:
If data is coming from multiple sources, we really need to understand who owns what, and come up with mechanisms that protect the legitimate rights of individuals and businesses to their own data, while creating the "liquidity" and free movement of data that will fuel the next great revolution in computer functionality.
We need easy gateways between different application domains. I was recently in Finland at a Nokia retreat, and we used camera-enabled cell phones to create a mobile photoblog. That was great. But even more exciting was the ease with which I could send a photo from the phone not just to another phone but also to an email address. This is the functionality that enabled the blog gateway, but it also made it trivial to send photos home to my family and friends. Similarly, I often blog things that I hear on mailing lists, and read many web sites via screen-scraping to email. It would be nice to have cross-application gateways be a routine part of software, rather than hacked on after the fact.
I'd love to hear your thoughts about what kind of "network aware" functionality you'd like to see routinely incorporated into new applications and devices.

Showing messages 1 through 8 of 8.
-
Rich content an important issue
2004-08-31 01:02:28 britishsecretagent99 [Reply | View]
Of course, the richness of content is an issue too. We still have no reliable means of classifying or searching for content that is not textual. Whether data is on a network or not, its real-world complexity is an issue. Who's looking at this?
-
A different perspective
2004-08-31 00:58:58 britishsecretagent99 [Reply | View]
Perhaps the answer to the cross-platform user interface question lies in standards. Frankly, Windows has some truly *wonderful* UI features (how great is the Tab Control paradigm?) and so does Unix Motif. I feel the key is in identifying the web sites whose user interfaces are most appealing and learning lessons for future shell design.
-
Sharing my data ... with ME...
2003-11-01 20:41:15 anonymous2 [Reply | View]
One thing I'd like to see with network aware applications is sharing my data with myself.
By that, I mean that when I am away from my own system, I'd like to be able to get to my contact lists, phone numbers, calendar, email history, and documents written in the last year.
I know that on the Mac I can use get much of that in .Mac, but it's limited because it's on their server. I'd like instead to login to ICQ (or iChat or whatever), and have it use that to connect to my main system. Allow me to browse the disk, serve me my email, calendar, and contacts (via a basic web server maybe?).
I know this then becomes a security issue - maybe to start with it should be read only, and anything written has to be authorised by me on return. When it's secure, the function to start a program remotely would be great.
To the user who said the ADSL system blocks you from using network applications - if all connections and communication went via a chat program (ICQ?) would that solve the block issue?
PS.
I found this article via MacRumors and your recent talk.
https://forums.macrumors.com/showthread.php?s=&threadid;=45222
-
On the quantity of data (or: finding the needle in the haystack)
2003-10-22 22:20:41 anonymous2 [Reply | View]
".... So, for example, the natural complement to Amazon's web services data feeds is data input (for example, the ability to comment on a book on your local blog, and syndicate the review via RSS to Amazon's detail page for the book). And that leads to:
"6. If data is coming from multiple sources, we really need to understand who owns what, and come up with mechanisms that protect the legitimate rights of individuals and businesses to their own data, while creating the "liquidity" and free movement of data that will fuel the next great revolution in computer functionality.
To which I'll contribute #6.5 (or 8)...
"6.5 If data is coming from multiple sources, we really need mechanisms to quantify and qualify that data. Just basics like (to continue the analogy) Amazon's "X out of Y readers found this review helpfull, did you?" would have to be there for this data to be of any real use, but more complex systems such as /.'s moderation and meta moderation would also be helpful.
If we borrow the public key crypto concept of a "web of trust" and apply it to this meta-data, then there is potential for this to be practically usefull, without everyone having to have huge data mining applications running on their every device. For example, say both Tim and Jon Katz review a book, I'm looking at the book at Amazon, my browser queries what reviews are available, then looks at my trust list. In my personal trust list Tim has 90%, indicating that I think he's cluefull and respectable... Katz is sitting at 0.00% indicating that I think he's a loon not worth listening to. The browser pumps Tim's review up to the top of the list, doesn't even waste my time with Katz' review. Now of course we make that data 2 way... I make my trust list publicly readible... my mother, who wouldn't know either of these folks trusts me 100%, so her browser accepts my opinion of the two and renders both the same as mine does. My wife has told her machine to trust my opinions say 50%... so when she goes to view the book, she'll see Tim's review as if it had 70% trust, and Katz' with 25% (of course she also has Katz at 0%, so it gets averaged back down to 12.5%, or overridden back to 0%... depending on how the web of trust is setup.......)
-
On 2 way data
2003-10-22 21:42:24 anonymous2 [Reply | View]
"We ought to be able to have the expectation that all applications, whether local or remote, will be set up for two-way interactions."
From a technical perspective this is a noble goal, and one I agree with. But before this can become reality we need our network providers to stop thinking in the "it's just like cable tv" mentality. My broadband provider blocks a whole slew of inbound ports, and tends to interpret the AUP with an iron fist... anything that does a listen() is in violation: I've been given greif for using old school ftp! The only available broadband provider where my parents now live assigns all of it's users IANA RESERVED addresses and puts them behing NAT firewalls, which are NOT configured for any sort of Masquerade.
A related aspect is the asymetric nature of many of the "last mile" solutions... they all tend to have much less upstream capacity than they do downstream. The gap seems to be getting worse, not better: witness the jumps from 33.6 modems to 56K modems, then from 56K to early dsl/cable, and again from there to current cable technology. I mean I have nearly T1 capacity down, but merely single chanel isdn capacity up, and if I actually were to flood the upstream it would reduce my down stream to a few K... far less than a modem... not to mention impact my neighbors. There is also a distinct lack of bandwidth to most places that don't happen to have a backbone pop. I know of several very high capacity fibers (OC48s) that pass right through the city limits here, one of them within a short walk from my house, yet the total capacity into town available to all the broadband users is 4 OC3s the last time I could get details from them. (that's if they met the then planned upgrade schedule.) This is an oversell of bandwidth in the range of 2,000:1 if their marketing departments number of users claims are accurate.
-
Rendezvous Mobile phone
2003-10-21 06:43:14 lwm [Reply | View]
I am not too sure if this is already available today, but I would like to see Rendezvous built into my mobile phone. It seems silly to me that when I call someone within a room (or nearby) I would have to pay my telco to transmit the call. With Rendezvous my mobile phone should be smart enough to know that the person I am contacting is nearby and initiate a VOIP call, else it can use the conventional method of passing through the telco.
Wei-Meng Lee -
Rendezvous Mobile phone
2003-10-22 01:36:32 anonymous2 [Reply | View]
I always wondered why we do not see yet bluetooth used as a nearby friend detector or carrier for local chatrooms (in a bar for example), maybe because programming phones is hard, but they have the needed hardware.
I see that Nokia has started using Bluetooth as a network for connecting game consoles, so maybe it is just a matter of time.
Michele Costabile
1. Public
2. Black List
3. White List
4. Gold List - Very close/trusted/family/ etc