160 likes | 285 Views
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
E N D
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 • e-mail • screen sharing
Solution • Synchronization server & client • Eclipse plug-in • Collaborative process metric database
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
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