20050606 Monday June 06, 2005

AnnoJXTA

I just finished reading Dan Malk's blog on Delicious. Nice, and it brings back all sorts of memories.

-Like, when we within Sun were also looking for other ways to keep in touch, exchange ideas, reflect upon products and technology. The problem that we were facing is that - apart from our shared interest - we didn't really share a lot in common: everybody was working in other timezones and locations, and were only meeting each other twice a year. (And we do of course try to solve anything using technology....)

One of the things that we considered is Annotea. Never heard of it? Make sure to check it out:

"Annotea enhances collaboration via shared metadata based Web annotations, bookmarks, and their combinations. By annotations we mean comments, notes, explanations, or other types of external remarks that can be attached to any Web document or a selected part of the document without actually needing to touch the document. When the user gets the document he or she can also load the annotations attached to it from a selected annotation server or several servers and see what his peer group thinks. Similarly shared bookmarks can be attached to Web documents to help organize them under different topics, to easily find them later, to help find related material and to collaboratively filter bookmarked material."

[This dates back to 2001! So, this stuff already existed way before del.icio.us.]

The first time I used Annotea, it felt like a revelation. Using a premature Mozilla plug-in, I navigated to "a competitor's" site, and added a note to the homepage stating that they were nothing but a bunch of loosers. Harharhar. That felt great! Anybody now visiting the homepage of this company would now immediately notice my carefully formulated evaluation of this company. Yup!

Not much time after I saw the value of a tool like this, I also ran into some of the disadvantages of it. This is the cool thing: everybody can read it. Yippee! But wait: everybody can read this. Uh-oh.

Another problem was the fact that it was pretty centralistic in nature. Within a company that feels that everything of value should be connected to the network, it was a hard sell to move everything of value to a single host. So we needed to get rid of that too.

After a while, we started to think about about a solution based on combining Annotea with another complementary piece of technology: JXTA. This is the thing that we had in mind:

In the above, any HTTP request by our browser would result in another Annotea HTTP request being sent to the Annotea Servlet. The Annotea Servlet would run locally as a service on every host participating in the JXTA network, and would delegate the request for annotations to both the local AnnotationSource as well as the JXTA based AnnotationSource. Requests to add or update annotations by the browser plug-in would eventually only be handled by the AnnotationTarget, who would simply store it in a small local database. (Think Hsqldb.) The JXTA Annotations Service would use the same source for incoming annotation requests.

So this is what we got, simply by combining Annotea and JXTA:

  1. An Annotea-alike solution, allowing us to exchanges ideas, opinions and observations;

  2. Leverage existing browser plug-ins;

  3. Store our own comments locally, so we could even do that off-line for all we cared;

  4. These ideas would be made available to our peer group, as soon as we would go online;

  5. Leverage the JXTA security mechanisms to share our ideas only with our Java Center peer group;

  6. But at the same time use the Internet for distribution of our ideas. (Talk about hiding in plain sight.)

On top of that, JXTA appeared to be a natural fit to the problem: in any case, it would always first serve you the annotations of your buddy sitting right next to you, and then fan out through the Internet.

( Jun 06 2005, 07:58:37 PM CEST ) Permalink Comments [0]
Trackback URL: http://blogs.sun.com/wilfred/entry/annojxta_memories
Comments:

Post a Comment:

Name:
E-Mail:
URL:

Your Comment:

HTML Syntax: NOT allowed