Andy Reitz (blog)

 

 

JavaOne: TS-7302: Technologies for Remote, Real-Time, Collaborative Software Development

Collaboration Technologies
  • occurs within conversations, unlimited # of participants
  • all messages to all participants
  • conversations include multiple channels (conduit for information)
  • collablets provide interface to channel
Collablets
  • software component for specific type of collaboration
  • stateful within scope of conversation
  • only know about their own channel
  • uses XMPP (Jabber)
MOXC
  • message oriented XML collaboration
  • web services approach to collaboration
  • simple, just send XML messages using SOAP
  • send messages over any transport
  • can describe collablet API via WSDL, open to any web services client
All of these technologies allow for integrating collaboration into IDE. Jabber chat is one example, but can also send java code back and forth. Messaging system understands code -- code that you paste in IM is syntax colored, in the right font, same features of IDE (code completion). Can also send XML, HTML, formatted text, etc.

Can go further, and share whole files or projects. In shared file, can have shared editing, sortof like SubEthaEdit. It will lock the portion of the file, make change, when lock times out, will propagate change to other users. Remote users can compile shared project, which will actually happen on source machine (to snag all dependencies).

It seems like the point of the above technologies is to make it easy to implement your own collablets, so you can build custom collaboration modules that suit your particular project or work environment. Very cool.

What about screen sharing (code walkthrough, remote peer programming)? I didn't see the speaker demo this, but it should be possible to make a collablet that does it.

Links: Also thinking about sharing debugging environment as well.

Downside: need some sort of server to do it on Intranet, with Java Server Enterprise. Close to getting it working over any vanilla Jabber server (sweet!).