Software Programs :. Collaborate
Information
Collaborate is a program that allows users to create and participate in a collaborative conference with zero configuration. All of the network and software configuration, such as the IP addresses and port numbers are automatically configured by the software, and all of the other users who are participating in the conference are automatically located on the network without any user intervention. Users can then participate in the conference using a basic White Board, File Transfer or Chat collaborative tool. While designed for use on wireless ad-hoc networks, it will operate on any local link network, including infrastructure based wireless and regular wired networks.
System Requirements
Operating System
Collaborate requires Apple Mac OS X 10.4 (Tiger) or higher in order to run. Earlier versions of Collaborate supported Apple Mac OS X 10.3, however support was removed in newer versions due to changes to the networking technologies used in the program. This program has been tested in Apple Mac OS X 10.5 (Leopard) and has been found to be fully compatible.
Intel Architecture Support
Collaborate has been compiled and tested as a Universal Binary during the late development phase. While at the time the program had not been tested on an actual Intel machine, this has now occurred and the program works as expected under both PowerPC and Intel architectures.
Programming Language
Collaborate was written in the Objective-C programming language using Xcode 2.x and makes use of major Apple Mac OS X frameworks such as Cocoa, Core Foundation and the Application Kit. All of these are included in the default Mac OS X installation.
Detailed Background
Collaborate was being designed and developed in my Bachelor of Technology final year project at Curtin University in 2005 and as such is what my thesis was based on. Collaborate was designed to meet the aim of allowing a collaborative conference to be held on a wireless ad-hoc network with zero configuration required. It accomplishes this using the Apple Mac OS X framework called Bonjour, which is an implementation of the Zero Configuration Networking open standard.
By advertising each running copy of the program on a computer as a service on the network, using multicasting to communicate the advertisements to each of the computers, all running copies of the program become aware of each other as they join and leave the conference. This process is completed by allowing each program to request detailed configuration information of the other participants, also through multicasting their requests and responses.
All of this is accomplished without any user configuration or intervention, handling all of the necessary configuration, leaving the user to simply use the basic collaborative tools provided, the White Board, File Transfer and Chat tools.
Downloads
At this time I have made available for download the first Universal Binary version of Collaborate along with the source code that I have developed. The Universal Binary is compatible with Mac OS X as listed above in the System Requirements section. The source code is in Objective-C and is compatible with Xcode 2.
- Version 0.22 - Download Universal Binary (153 Kb, ZIP Archive)
- Version 0.22 - Download Source Code (149 Kb, ZIP Archive)
Apple University Consortium Conference
In the first half of 2005, I wrote a conference paper on Collaborate and submitted it to the Apple University Consortium for their Academic and Developers Conference. This paper was accepted for publication and they also invited me to the conference to present the paper, which was held in Hobart, Tasmania at the end of September 2005. I presented the paper on Tuesday 27th, September 2005 at 1.45 PM in the Tasman B lecture theatre.
You can download the a copy of the conference paper that I submitted below, and I have now also placed the slides that I used during the presentation at the conference online, which can be accessed below.
- Download Conference Paper (383 Kb, Adobe PDF)
- Download Conference Presentation (1,500 Kb, Microsoft Powerpoint)
Curtin Thesis
My final year thesis discussed the Collaborate program in detail, including some background information on the area, the limitations and problems faced, the reason for working in this area and also a detailed analysis of the solution and the program itself. The Adobe PDF of the thesis has been placed online for download below, although this does not contain the accompanying CD-ROM with additional content. If you wish to obtain this, you may contact me and I will e-mail you a copy.
- Download Curtin Thesis (933 Kb, Adobe PDF)
Future Development
Collaborate was declared feature complete at the point I stopped development and submitted it along with my thesis for marking. At that time, a number of changes and features did not find their way to be implemented due to time limitations.
The major features of these that were planned are:
- Custom mouse cursors in the White Board window.
- Video playback and sharing using the QuickTime library.
- Improvements to the File Transfer utility to allow packages and multiple files to be sent.
- Improved integration and testing with a tablet.
I have no plans to continue developing or working on Collaborate.
Known Issues
Duplicate Names in Conferences
Mac OS X 10.4.0 and 10.4.1 both contained a known bug in the Bonjour framework that broke the duplicate service name checking and conflict functionality. As a result, when running on those versions of Mac OS X, Collaborate is told that the service was successfully published, even if the user name that was selected was already in use on the network. This meant that multiple copies of the same service name could run without any warnings.
This was reported to have been fixed by Apple and that patch was included in the operating system update version 10.4.2. At the time however testing showed that Collaborate still had the problem while running under this version. It is not known which version of Mac OS X eventually fixed the problem, but the duplicate service name checking functionality has been confirmed fixed in Mac OS X 10.4.6.
Errors When Starting Conferences
Occasionally an array error may occur when starting a conference. Unless running Collaborate from a console, no indication of the error appears to the user, as it does not display an error notice. This problem doesn't seem to impact the program's operation in any way. Also, occasionally joining an existing conference may time out and cause the program to appear to hang. I'm not sure what causes this, but believe if may be fixed already as I have not seen this behaviour for some time.
Screenshots
You can view various screenshots from Collaborate on the Screenshots page.