Recently, I am very interested in collaboration. I plan to test the development tools that support the concept of "collaboration" one by one.
It seems that netbeans supports collaborative development earlier. You should take it first.
Test environment in this article:
Windows XP
JDK: 1.5
Netbeans: 6.5 (6.7 does not find how to collaborate through XMPP)
Openfire: 3.6.4
---
1. Download and install netbeans
Netbeans: http://www.netbeans.org/downloads/index.html
Version: 6.5 (the latest version is 6.7, but only the Kenai-based collaboration is found on the 6.7 interface, and the connection to openfire is not found)
Because there is no need to use too many functions, I downloaded the j2se version,
After the download, the Windows version is an EXE installation program, which can be installed by step.
2. Install a Collaboration Server (XMPP-based openfire)
Development of netbeans this collaboration module supports XMPP protocol for communication, XMPP protocol has many open source implementations,
The official netbeans statement passed the test with openfire, so our collaboration environment also uses openfire as the Collaboration Server.
XMPP (Extensible messaging and presence Protocol): A Scalable message and existence protocol. It is one of the mainstream IM protocols.
Download:
Openfire XMPP server is officially recommended.
Openfire: http://www.igniterealtime.org/downloads/index.jsp#shqiperia
Install and start:
I downloaded a version that does not contain the JRE. After the version is downloaded, It is a zip file. decompress and run bin/openfire.exe. The configuration file cannot be found due to an error,
Later, I moved the openfire directory to the root directory of a disk to solve the problem. It is estimated that the directory I decompressed contains Chinese characters.
Configuration:
After openfire is started, the default 9090 port is the Management port (which can be modified in CONF/openfire. XML). The configuration process is simple,
Step 1: select the language and select "simplified Chinese (zh_cn )"
Step 2: configure the domain and Management port (the host name rather than the IP address is required in the official prompt domain, but I don't feel any difference ).
Step 3: configure the database. For simplicity, select "embed Database"
Step 4: Set features. Keep the default "Initial Settings"
Step 5: Set the administrator password.
After setting the password and clicking Next, the system prompts that the setting is complete. Click "log on to the console", and then log on with the username and password you just set.
Note: When setting the administrator password, you must enter an email address, and only use the user name in the email address for logon,
For example, if you enter a jinxfei@126.com, password 123456,
Therefore, you only need to log on to jinxfei/123456. I tried this place many times. Later, I could not check the database to find this point.
Configure the chat room:
(This is one of the official steps of the collab project, but it was not found useful in later use)
First, switch to the "plug-in" page to ensure that the "Search" plug-in has been installed and started.
Switch to the "group chat" page, click "create new room", enter necessary information, and save.
Finally, restart openfire.
3. Ensure that netbeans contains a collaboration Module
From the "tool --> plug-in" menu, select and install "Team Development" in "available plug-ins.
After the installation is complete, the "collaboration" menu appears on the netbeans main menu.
4. Connect to openfire and create an account
In netbeans, click "collaborate --> log on...". As this is the first time you run, only "add account" is displayed on the interface. Click "Start account adding wizard.
Step 1: Select "I want to register a new collaboration account on another Collaboration Server"
Step 2: Enter the account display name
Step 3: Enter the Server IP address and port, and configure the proxy. The default port of openfire is 5222.
Step 4: Enter detailed information
Step 5: Enter the logon user name and password
Next, you need to let others use netbeans to connect to this server and register it to experience collaboration.
5. Experience collaboration
When everyone logs on to openfire, they add each other as friends,
Right-click a friend name and select start session to enter the collaboration status.
In collaboration, the following functions can be implemented:
1. Chat (chat supports Java syntax)
2. share files and edit them together. Drag the files, directories, and projects to be shared to the collaboration window so that the participants can edit the files together.
The following is a simple experience:
1. In general, the function is still relatively elementary and cannot meet the requirements for using this function for joint development, but it is still possible to use it for code review.
2. Poor real-time performance. You cannot see other users' editing actions. After the other party saves the edited action, it will be delayed and then a line will suddenly appear on its own interface.
3. In terms of conflict resolution, it is still to be improved. when both parties simultaneously edit the lock range, there will be a large number of locks, and the input letters may be lost inexplicably, such as the input: system, only SEM appears.
4. When you join a third person (multi-person collaboration), the system prompts that the room has been locked before the configuration is confirmed and the entry is prohibited.
5. After a project is shared, the newly added files are not automatically added to the share, and they cannot be dragged to the share window. (I tested it again later. I cannot drag a file, you must drag the entire project again ).
6. No permission control is found, that is, both parties can edit files.
7. The operation convenience needs to be improved. For example, if you do not know which file is being edited by others, you cannot easily invite others to edit a file (No context menu is found ).
6. Summary
Although netbeans has joined the concept of collaboration for a long time, it is not satisfactory in terms of the use effect.
It seems that real-time collaboration has a long way to go from a cool concept to a usable software feature.
I think the main difficulties include:
1. Special protocols are required for communication to improve real-time performance.
At present, there is a great delay Based on the IM protocol, which makes the collaboration experience poor.
2. Because collaboration is a new working mode, more optimizations are needed in terms of the user experience on the interface.
Many research is required to enable the invisible person to perceive the existence of others through collaboration tools.
3. Conflict Resolution (especially when there are many people) should be a problem.
On the one hand, we should minimize the scope of lock, and on the other hand, we should minimize mutual interference. The more people involved, the more difficult it will be.
4. We also need more powerful hardware.
Faster network, higher processing speed, and larger screen.
Only when the Hardware keeps up can audio, video, and other media means be closely integrated,
In order to achieve the effect of "Although the distance is thousands of mountains, it is like a room.
In short, we still hope that the development of "collaboration" technology will bring more convenience to our work.