15
17-Jan-2007 eXtreme Collaborative Development Environment Programmer-oriented real-time virtual collaboration tool G2007.026

eXtreme Collaborative Development Environment

  • Upload
    alden

  • View
    34

  • Download
    0

Embed Size (px)

DESCRIPTION

eXtreme Collaborative Development Environment. Programmer-oriented real-time virtual collaboration tool. G2007.026. Motivation. Q: How can geographically separate programmers collaboratively develop in real-time? Experience during co-op and academic terms showed a need to collaborate - PowerPoint PPT Presentation

Citation preview

Page 1: eXtreme Collaborative Development Environment

17-Jan-2007

eXtreme Collaborative Development Environment

Programmer-oriented real-time virtual collaboration tool

G2007.026

Page 2: eXtreme Collaborative Development Environment

Motivation• Q: How can geographically separate

programmers collaboratively develop in real-time?

• Experience during co-op and academic terms showed a need to collaborate

• Poor collaboration tools currently available» instant messaging

» e-mail

» screen sharing

Page 3: eXtreme Collaborative Development Environment

Solution• Synchronization server & client

• Eclipse plug-in

• Collaborative process metric database

Page 4: eXtreme Collaborative Development Environment

What We Built

Page 5: eXtreme Collaborative Development Environment

Design Alternatives• IDE:

» Build a new dedicated environment

» Extend an existing development environment

• Synchronization:» Locking-centric

» Non-blocking synchronous

» Predictive client pull

Page 6: eXtreme Collaborative Development Environment

Advantages• Integration with Eclipse:

» Leverages a mature IDE and toolset including the JFace graphics library

» Supports multiple languages

» Provides collaborative functionality without learning completely new software

• Non-blocking Synchronous:» Full real-time editing and state consistency

Page 7: eXtreme Collaborative Development Environment

Base Technologies• Eclipse IDE version 3.1.2

• Java 1.4.2 for TCP/IP-based communication libraries

• MySQL 5.0 for event logging

• JMF 2.1.1 and RTP protocol for voice communication

Page 8: eXtreme Collaborative Development Environment

Synchronization Design• Asynchronous message passing

• Clients and servers push messages

• The algorithm provides:» Initial project and document state

» Real-time updates to documents

• Router and server components to allow geographic scaling

Page 9: eXtreme Collaborative Development Environment

Synchronization Design

Page 10: eXtreme Collaborative Development Environment

Synchronization Design

Page 11: eXtreme Collaborative Development Environment

Synchronization Design

Page 12: eXtreme Collaborative Development Environment

Eclipse Integration Design• Text editor integration

» Shows other users’ cursor positions» Merges changes in real-time

• Context menu integration» Link & unlink projects from XCDE» Refresh linked resources

• Import wizard» Pull a project from an XCDE server

• File system integration» Move and delete hooks

• Communication tools» Instant messaging» Voice chat

Page 13: eXtreme Collaborative Development Environment

Usage Scenarios• Q: How might XCDE be used in practice?

• Supports multiple usage scenarios:» Programmer education

» Collaborative development

» Collaborative debugging

» Development process management

Page 14: eXtreme Collaborative Development Environment

Results of Testing & Verification

• Prototype thoroughly tested on multiple occasions

• Corner cases in the synchronization algorithms were discovered and corrected

• All core requirements were met

Page 15: eXtreme Collaborative Development Environment

Sponsors & Consultants• We gratefully acknowledge:

» Dr. Ajit Singh for acting as our consultant and providing his knowledge, expertise & support

» The Eclipse Community

» MySQL