extreme collaborative development environment
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 PresentationTRANSCRIPT
17-Jan-2007
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
• Poor collaboration tools currently available» instant messaging
» screen sharing
Solution• Synchronization server & client
• Eclipse plug-in
• Collaborative process metric database
What We Built
Design Alternatives• IDE:
» Build a new dedicated environment
» Extend an existing development environment
• Synchronization:» Locking-centric
» Non-blocking synchronous
» Predictive client pull
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
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
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
Synchronization Design
Synchronization Design
Synchronization Design
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
Usage Scenarios• Q: How might XCDE be used in practice?
• Supports multiple usage scenarios:» Programmer education
» Collaborative development
» Collaborative debugging
» Development process management
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
Sponsors & Consultants• We gratefully acknowledge:
» Dr. Ajit Singh for acting as our consultant and providing his knowledge, expertise & support
» The Eclipse Community
» MySQL