Where I was last week and thoughts on federation

I spent Monday–Wednesday of last week in Las Vegas at the Gartner Summit on Portals, Content, and Collaboration. The highlight for me was a talk by Jakob Nielsen on usability in intranets. I even got to ask him a question pertaining to his eye-tracking research (users don’t look at ads) and about design pitfalls to avoid even on ad-free sites like intranets.

Unfortunately I didn’t get to stay for the Web 2.0 and Open Source Summits, which were taking place Wednesday–Friday. I’m especially bummed because David Weinberger was speaking, and I’m a total DW fanboy. (I squealed with joy when I won his book in the LibraryThing contest giving them away.)

Much of the conference dealt with employing Web 2.0 technologies in the enterprise and dealing with the fact that the work/life line is blurry and users’ expectations for corporate portals, intranets, etc. are set by their dealings with the Web at large (an idea known as “consumerism”). I can certainly relate — I know I expect (sometimes impatiently) that applications at work, from email right on up the chain, work as well as those I’m used to at home.

I found much of the conference confirmatory of trends I already recognize, but there was one thing in particular that got me thinking. Gartner analyst David Gootzit gave a presentation about the future of the portal market. He argued that consumerization will lead to the development of a “portal fabric” for the aggregation of experiences across the portals people use (e.g., iGoogle, your bank portal, your work portal, etc.) — the “Follow Me Portal” or “MyPortal”. The emergence of this portal fabric requires standardization of a number of different functions, such as identity management, personalization and preferences, portlets, and metadata. (Gootzit also argues that this trend is likely to result in enterprise portals being decomposed into component services, something that we’re already beginning to see to some degree with, e.g. search.)

It certainly would be cool if someday My Yahoo! or iGoogle or something else could be your real, honest-to-goodness personal homepage that aggregated all the things you were interested in. Not just your horoscope and the weather and some RSS feeds, but also your bank balance, what’s going on at work, your home automation portal, and so on. (Now, I certainly know there are privacy/trust issues with, e.g. letting Yahoo! or Google access your bank balance, but let’s assume the portal provider is an entity you trust.)

I want to skip over, for the time being, the question of what sort of software the “Follow Me Portal” actually is — whether it’s from a major web provider like Yahoo or Google, or whether it’s built on enterprise portal frameworks within businesses, or by Web 2.0 startups, or even as plugins or customizations to desktop software such as browser extensions or something like Flock. Instead, I want to look at the idea of the “portal fabric” that would be needed to support it. What standards currently exist for federating the functions of portals and where are there gaps? Here’s my still-processing-the-thoughts list…

Identity management

For authentication, we have OpenID. Although it’s not entirely clear yet if OpenID is the winner here, it’s looking better all the time. Big services like AOL and Livejournal are both OpenID providers (and a third party provides OpenIDs for Yahoo! accounts using Yahoo!’s API) — meaning about there are about 120 million OpenIDs out there already, whether they’re being used yet or not. Fewer sites accept OpenID for authentication, but the number appears to be steadily growing — I’m using OpenID to sign into 37signals applications, 43folders just announced they’ll be supporting it, and the other day when I got a trial account to myExperiment.org it asked me to sign up with an OpenID. (You can find more site accepting OpenIDs at myopenid.net.)

For other information about identity, there’s XFN and FOAF. This is especially timely given Six Apart’s David Recordon’s announcement of tools for “opening the social graph”, which is not only about managing your own identity, but also your relationships to others.

There’s also vCard/hCard for directory-listing type info about people. (UPDATE: And duh, I forgot about LDAP.)

Portlets (or widgets, or gadgets, or what have you)

Well, there’s JSR168 and WSRP (and forthcoming updates in JSR286, and WSRPv2) but those are really only adopted by commercial enterprise portal frameworks. Google, Yahoo, etc., aren’t supporting them. Maybe they should, or maybe there’s something else. Certainly RSS and Atom represent really lightweight ways of passing data to a portlet/widget/gadget, but they’re not nearly as broadly encompassing as JSR168 or WSRP are, and can’t fully encapsulate the definition of a portlet to make it portable across these portals. How great would it be if your Yahoo widgets, Google gadgets, Apple Dashboard widgets, etc. were all interoperable and you didn’t have to worry about which platform any particular widget was made for?

I don’t really know a ton about the details of JSR168 or WSRP. I’m not sure whether they represent a viable way(s) forward, or a new, more flexible standard is needed in this category.

Personalization and Preferences

This category is possibly the most tricky to deal with, which is probably why there are few existing standards in this realm. I think there’s also a great deal of value to be gained here, however.

One standard that does come to mind is P3P for privacy preferences. It’s been around for some time but hasn’t really gotten a great deal of traction, although there are some browser plugins and so forth.

Search

Of course, there’s Z39.50, but I don’t know of anyone in their right mind who’s not running a library catalog with a Z39.50 interface. (UPDATE: I forgot to mention SRU and CQL, which are based on Z39.50 but updated for the Web. I think I used to know more about these, but now remember approximately nil. I have to read up again…)

OpenSearch is a more modern, digestible alternative. It hasn’t been around very long, but it’s gaining support both by search engines, wikis, blogs, and other tools (as providers) and browsers (as consumers). And there are extensions to handle more complex searches, geographic searches, and other more complicated things.

Also related: metadata standards. There are lots of these for specialized purposes, but the simplest are the likeliest to be useful for syndication and aggregation purposes. Specifically I’m thinking of Dublin Core here. Certainly DC isn’t complex enough to handle most metadata needs for even mildly complex cases, but what would be interesting is if metadata schemes had a defined reduction algorithm to simple Dublin Core, so that a standard set of metadata could be used by, e.g. OpenSearch. (Search APIs could still support native metadata schemas as well, but I think there’s value in a standard interface for straightforward parameterized searches based on things like dates and authors.)

Publishing

For pushing content elsewhere, there’s the in-development Atom Publishing Protocol (APP), which is mostly thought of as an API for posting to blogs. But wouldn’t it be cool if you could also use it to comment on someone else’s blog, or participate in a discussion forum, or change a wiki article — or even, say, post a link to a bookmarking service?

OK, maybe that last one can stick with specialized APIs. I’m not sure there’s a strong case for, e.g. del.icio.us, to support APP. But for blog posts, comments, discussions, wikis — which are all essentially similar things, just updating some content — it would be killer to use the same interface for them all, right?

Closing thoughts

These thoughts aren’t fully formed at this point, and this is something I’m going to continue thinking about. If you think there are existing standards that I’m overlooking in any of these areas, or if you think there are any areas to be standardized that I missed completely, I’d be interested in hearing about them.

WordPress database error: [Table 'blog_comments' is marked as crashed and last (automatic?) repair failed]
SELECT * FROM blog_comments WHERE comment_post_ID = '81' AND comment_approved = '1' ORDER BY comment_date

Leave a Reply

You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>