期刊-2010-08

基于Java的多人编程交流平台

设计者清华大学计算机科学与技术系 杨晋喆 责编刘路

2010年08月01日


客户端

客户端


        一个创意的实现,更多的是许多人合作的结果。对于合作来说,交流和沟通是最关键的环节之一,交流沟通是否有效迅速,直接影响到最终的结果。简单有效的交流方法,是当今社会最关注的话题之一。
        对于计算机程序员来说也是如此,很多项目的实现都是多人合作的结果。如何在编程的过程中,同时进行编程的程序员相互沟通,是急需解决的主要矛盾。鉴于此,我编写了基于Java语言的多人编程交流平台程序。在这个程序中,主要解决以下问题:编写同一程序的不同程序员之间的交流问题;编写同一程序的提交、更新、下载问题。本程序分为两个部分:服务器和客户端。服务器每个部分的功能如下:
        服务器:对于每个文件维护版本信息,客户端进行提交时,如果当前服务器上没有该文件,则将其版本号设置为0,同时将该客户端的版本号也设置为0;如果当前服务器有该文件,且该文件在服务器上的版本号与客户端提交文件的版本号相同,则文件提交成功,并将该文件在服务器上的版本号和在该客户端上的版本号同时加1。对于其他情况,如:客户端文件的版本号小于服务器上该文件的版本号,则视为提交失败并将失败结果传递给该客户端。更新文件时,服务器上可以设定选择保留旧版本文件或者删除旧版本文件。
        客户端:客户端界面如下图所示,主要有如下功能:1. 将客户端与服务器进行连接或断开;2. 编写同一程序的程序员之间的聊天功能,是一个简单的聊天系统,只要程序员连接服务器并打开某文件的编辑页面,就默认可以开始与同时编写该文件的其他程序员进行会话;3. 文件的下载功能,从服务器上可以下载想要的文件(注:如果服务器上设置为保留旧版本文件,则可以选择下载旧版本的文件),下载之后可以选择直接打开或存储文件,或者将新版本文件和本地文件同步(同步意为:保留共同部分,标记更新等非共同的部分。例:本地文件有一个函数functionA(),服务器端文件有两个函数functionA()和functionB(),那么合并后的文件同时含有同步后的functionA()和functionB());4. 文件的提交功能,将文件与文件的版本号同时提交到服务器,如果提交成功,则更新版本号;反之,则提示用户将文件更新到最新版本。
        本程序初步解决了对于同时编写同一程序的程序员之间的交流问题和不同程序员编写同一程序的统一和汇总的问题,使得程序员能够更方便地将各自拥有的信息进行整合与交流,尽量避免以往同时开许多不同的程序和窗口来讨论同一个问题的低效情况的发生。