基于互联网的实时多人计算机程序开发调试系统与方法转让专利

申请号 : CN201510297256.8

文献号 : CN106294112B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 俞昊然徐文瑞

申请人 : 北京矩道优达网络科技有限公司

摘要 :

本发明涉及一种基于互联网的实时多人计算机程序开发调试系统与方法。该系统包括:开发环境实时同步子系统,用于同步编辑器与编译环境相关的设置信息;文件与代码实时同步子系统,用于同步文件树结构与代码文本信息;调试信息实时同步子系统,用于同步程序的调试信息;实时行为追踪与同步子系统,用于接收上述三个子系统产生的使用者的行为信息,并将接收到的使用者的行为信息同步到服务器。本发明能够使多位程序的编写者(软件的开发者)在互联网连通的条件下,实时同步完成代码编写、调试、测试过程等工作及结合这些工作的综合性软件工程开发。

权利要求 :

1.一种基于互联网的实时多人计算机程序开发调试系统,其特征在于,包括:

开发环境实时同步子系统,用于同步编辑器与编译环境相关的设置信息;

文件与代码实时同步子系统,用于同步文件树结构与代码文本信息;

调试信息实时同步子系统,用于同步程序的调试信息;

实时行为追踪与同步子系统,用于接收上述三个子系统产生的使用者的行为信息,并将接收到的使用者的行为信息同步到服务器;

所述开发环境实时同步子系统包括如下模块:

编辑器样式设置信息同步模块,供使用者选择一预先设定好的编辑器样式,并对其中的部分样式进行修改,当使用者保存设置后,将使用者的操作行为信息发送给实时行为追踪与同步子系统;

编辑器功能偏好设置信息同步模块,供使用者对编辑器的功能偏好进行个性化修改,当使用者保存设置后,将使用者的操作行为信息发送给实时行为追踪与同步子系统;

编译环境设置信息同步模块,供使用者选择一预先设定好的编译环境,并对其中的部分设置进行修改,当使用者保存设置后,将使用者的操作行为信息发送给实时行为追踪与同步子系统。

2.如权利要求1所述的系统,其特征在于:所述编辑器样式设置信息同步模块对每一名使用者的编辑器样式设置信息单独进行保存,而不同步给所有的使用者;所述编辑器功能偏好设置信息同步模块对每一名使用者的编辑器功能偏好设置信息单独进行保存,而不同步给所有的使用者;所述编译环境设置信息同步模块对所有使用者的编译环境设置信息进行同步,当一个新的使用者加入到项目时,编译环境设置信息同步模块向其发送服务器上的最新版本信息。

3.如权利要求1所述的系统,其特征在于,所述文件与代码实时同步子系统包括如下模块:

文件目录信息同步模块,接收使用者对文件目录的操作信息,当使用者进行新建文件或目录、修改文件或目录、删除文件或目录后,将使用者的操作行为信息发送给实时行为追踪与同步子系统;

代码文本信息同步模块,接收使用者对代码文本的操作信息,当使用者进行插入文本、删除文本、修改文本、或者移动文本操作后,将使用者的操作行为信息发送给实时行为追踪与同步子系统;

光标行为信息同步模块,接收使用者的光标行为产生的操作信息,将使用者的操作行为信息发送给实时行为追踪与同步子系统。

4.如权利要求3所述的系统,其特征在于:所述文件目录信息同步模块通过实时行为追踪与同步子系统获取服务器上保存的使用者的项目文件目录结构,并以目录树的形式为使用者展示;当服务器上保存的信息版本比使用者本地的新时,自动将服务器上保存的版本同步到使用者本地;当使用者对本地的文件目录结构进行改动时,则将使用者的操作信息发送给实时行为追踪与同步子系统,由实时行为追踪与同步子系统更新服务器上保存的信息;当使用者删除一个文件或目录时,如果有其他的在线的使用者正在使用那个文件或目录下的文件,则删除失败,并被告知该文件或目录正在被使用。

5.如权利要求3所述的系统,其特征在于:所述代码文本信息同步模块通过实时行为追踪与同步子系统获取服务器上保存的使用者的项目代码文件内容,并为使用者在文本区域内展示;当服务器上保存的文件版本比使用者本地的新时,自动将服务器上保存的文件版本同步到使用者本地;当使用者对本地的文件内容进行改动时,则将使用者的操作信息发送给实时行为追踪与同步子系统,由实时行为追踪与同步子系统更新服务器上保存的文件版本。

6.如权利要求5所述的系统,其特征在于:所述代码文本信息同步模块将服务器上的文件版本同步到使用者本地时,当服务器版本的改动内容与使用者本地的改动内容不处于同一位置时,对代码文本信息进行合并,同时保留两方的改动;当服务器版本的改动内容与使用者本地的改动内容处于同一位置时,由使用者手动解决与使用者本地代码文本信息存在的冲突。

7.如权利要求3所述的系统,其特征在于:所述光标行为信息同步模块通过实时行为追踪与同步子系统获取服务器上保存的其他的在线的使用者的光标位置,并为使用者在文本区域内展示;当服务器上保存的其他的在线的使用者的光标位置比使用者本地的新时,自动将服务器上保存的光标位置同步到使用者本地;当使用者对本地的文件内容中的光标位置进行改动时,则将使用者的光标位置信息发送给实时行为追踪与同步子系统,由实时行为追踪与同步子系统更新服务器上保存的光标位置信息。

8.如权利要求1所述的系统,其特征在于:所述调试信息实时同步子系统包括调试信息同步模块,该调试信息同步模块通过实时行为追踪与同步子系统获取服务器上保存的调试信息,并为使用者展示;当服务器上保存有其他的在线的使用者的调试信息时,禁止当前用户对当前项目的所有操作行为,并将服务器上保存的调试信息同步到使用者本地;当使用者对本地项目进行调试时,则将使用者的调试信息发送给实时行为追踪与同步子系统,由实时行为追踪与同步子系统更新服务器上的调试信息;当使用者对项目进行调试操作时,其他在线的使用者被禁止对项目进行任何操作。

9.如权利要求1所述的系统,其特征在于:所述实时行为追踪与同步子系统包括开发环境追踪和同步模块、文件目录信息追踪和同步模块、代码文本信息追踪和同步模块、光标行为信息追踪和同步模块、调试信息追踪和同步模块。

10.一种采用权利要求1所述系统的基于互联网的实时多人计算机程序开发调试方法,其步骤包括:

1)各使用者将开发环境信息由开发环境实时同步子系统发送给实时行为追踪与同步子系统进行同步;

2)各使用者将文件与代码信息由文件与代码实时同步子系统发送给实时行为追踪与同步子系统进行同步;

3)各使用者将调试信息由调试信息实时同步子系统发送给实时行为追踪与同步子系统进行同步;

4)实时行为追踪与同步子系统接收来自上述各子系统的信息,在服务器上进行同步,将同步后的信息发送回相应的各个子系统。

11.如权利要求10所述的方法,其特征在于,步骤1)中包含如下子步骤:同步编辑器样式设置信息、同步编辑器功能偏好设置信息、同步编译环境设置信息;步骤2)中包含如下子步骤:同步文件目录信息、同步代码文本信息、同步光标行为信息;步骤3)中包含如下子步骤:同步调试信息;步骤4)中包含如下子步骤:将编辑器样式设置信息、编辑器功能偏好设置信息、编译环境设置信息、文件目录信息、代码文本信息、光标行为信息、调试信息同步到服务器。

说明书 :

基于互联网的实时多人计算机程序开发调试系统与方法

技术领域

[0001] 本发明涉及通信、计算机程序设计、计算机代码设计和人机交互的技术领域,具体涉及一种允许人们基于互联网进行在线的计算机程序开发与调试的系统与方法。

背景技术

[0002] 随着信息技术、互联网技术的快速发展,人们对于计算机程序开发的需求也不断增大。人们在进行计算机软件程序开发时,除了单人独立开发外,也经常对结对编程、多人协作编程有一定的要求。传统情况下,人们只能通过共同使用一台计算机同步开发或使用多台计算机分时间轮流开发,极大的限制了多人同时进行高效的计算机程序开发的可能性。
[0003] 实时在线教学、实时在线协作开发、实时在线互动编程面试等需求在近几年越来越强烈。实时多人计算机程序开发调试对于包括但不限于以上场景的诸多实际应用场景,均有直接的技术支撑作用。因此,一个基于互联网在线实时多人计算机程序开发调试的技术方案及其系统的实现显得格外的迫切。
[0004] 基于互联网的在线实时多人计算机程序开发调试的技术将使得实时在线教学成为可能,课程传授者可以通过程序编写的方式,让课程学习者看到实时同步的程序,进而完成学习;同时,实时在线协作开发、实时在线互动编程面试等场景也因此项技术的完整方案变得更为高效,多位开发者可以同时操作一个工程项目并实现实时同步,面试者和被面试者也可以通过类似的方式对彼此有一个更明确的了解。因而,这一技术方案与系统的提出是有非常重要的意义的。

发明内容

[0005] 本发明的目的是,提供一种实时多人计算机程序开发调试的系统与方法,从而允许多位程序的编写者(软件的开发者)在互联网连通的条件下,实时同步完成代码编写、调试、测试过程等几类工作及结合以上这几项工作的综合性软件工程开发。
[0006] 本发明的目的是通过以下技术方案实现的:
[0007] 一种基于互联网的实时多人计算机程序开发调试的系统,该系统包括:
[0008] 开发环境实时同步子系统,用于同步编辑器与编译环境相关的设置信息;
[0009] 文件与代码实时同步子系统,用于同步文件树结构与代码文本信息;
[0010] 调试信息实时同步子系统,用于同步程序的调试信息;
[0011] 实时行为追踪与同步子系统,用于接收上述三个子系统产生的使用者的行为信息,并将接收到的使用者的行为信息同步到服务器。
[0012] 进一步地,所述开发环境实时同步子系统包括编辑器样式设置信息同步模块、编辑器功能偏好设置信息同步模块和编译环境设置信息同步模块,分别说明如下:
[0013] a)编辑器样式设置信息同步模块:使用者可以选择一个预先设定好的编辑器样式,并对其中的部分样式进行修改,当使用者保存设置后,将使用者的操作行为信息发送给实时行为追踪与同步子系统,由实时行为追踪与同步子系统更新服务器上保存的信息。
[0014] 该编辑器样式设置信息同步模块会对每一名使用者的编辑器样式设置信息单独进行保存,而不同步给所有的使用者。
[0015] b)编辑器功能偏好设置信息同步模块:使用者可以对编辑器的功能偏好进行个性化修改,当使用者保存设置后,将使用者的操作行为信息发送给实时行为追踪与同步子系统,由实时行为追踪与同步子系统更新服务器上保存的信息。
[0016] 该编辑器功能偏好设置信息同步模块会对每一名使用者的编辑器功能偏好设置信息单独进行保存,而不同步给所有的使用者。
[0017] c)编译环境设置信息同步模块:使用者可以选择一个预先设定好的编译环境,并对其中的部分设置进行修改,当使用者保存设置后,将使用者的操作行为信息发送给实时行为追踪与同步子系统,由实时行为追踪与同步子系统更新服务器上保存的信息。
[0018] 该编译环境设置信息同步模块需要对所有使用者的编译环境设置信息进行同步,当一个新的使用者加入到项目时,编译环境设置信息同步模块会将服务器上的最新版本信息发送给他。
[0019] 进一步地,所述文件与代码实时同步子系统包括文件目录信息同步模块、代码文本信息同步模块和光标行为信息同步模块,分别说明如下:
[0020] a)文件目录信息同步模块:接收使用者对文件目录的操作信息,当使用者进行新建文件或目录、修改文件或目录、删除文件或目录等操作后,将使用者的操作行为信息发送给实时行为追踪与同步子系统。
[0021] 该文件目录信息同步模块会通过实时行为追踪与同步子系统获取服务器上保存的使用者的项目文件目录结构,并以目录树的形式为使用者展示。当服务器上保存的信息版本比使用者本地的新时,就会自动将服务器上保存的版本同步到使用者本地;当使用者对本地的文件目录结构进行改动时,则会将使用者的操作信息发送给实时行为追踪与同步子系统,由实时行为追踪与同步子系统更新服务器上保存的信息。当使用者删除一个文件或目录时,如果有其他的在线的使用者正在使用那个文件或目录下的文件,则删除失败,并被告知该文件或目录正在被使用。
[0022] 该文件目录信息同步模块需要对所有使用者的文件目录信息进行同步,当一个新的使用者加入到项目时,文件目录信息同步模块会将服务器上的最新版本信息发送给他。
[0023] b)代码文本信息同步模块:接收使用者对代码文本的操作信息,当使用者进行插入文本、删除文本、修改文本、移动文本等操作后,将使用者的操作行为信息发送给实时行为追踪与同步子系统。
[0024] 该代码文本信息同步模块会通过实时行为追踪与同步子系统获取服务器上保存的使用者的项目代码文件内容,并为使用者在文本区域内展示。当服务器上保存的文件版本比使用者本地的新时,就会自动将服务器上保存的文件版本同步到使用者本地;当使用者对本地的文件内容进行改动时,则会将使用者的操作信息发送给实时行为追踪与同步子系统,由实时行为追踪与同步子系统更新服务器上保存的文件版本。
[0025] 该代码文本信息同步模块将服务器上的文件版本同步到使用者本地时,当服务器版本的改动内容与使用者本地的改动内容不处于同一位置时,此时会对代码文本信息进行合并,同时保留两方的改动。
[0026] 该代码文本信息同步模块将服务器上的文件版本同步到使用者本地时,当服务器版本的改动内容与使用者本地的改动内容处于同一位置时,可能会出现与使用者本地代码文本信息有所冲突的情况,此时会让使用者来手动解决冲突。
[0027] 该代码文本信息同步模块需要对所有使用者的代码文本信息进行同步,当一个新的使用者加入到项目时,代码文本信息同步模块会将服务器上的最新版本信息发送给他。
[0028] c)光标行为信息同步模块:接收使用者的光标行为产生的操作信息,将使用者的操作行为信息发送给实时行为追踪与同步子系统。
[0029] 该光标行为信息同步模块会通过实时行为追踪与同步子系统获取服务器上保存的其他的在线的使用者的光标位置,并为使用者在文本区域内展示。当服务器上保存的其他的在线的使用者的光标位置比使用者本地的新时,就会自动将服务器上保存的光标位置同步到使用者本地;当使用者对本地的文件内容中的光标位置进行改动时,则会将使用者的光标位置信息发送给实时行为追踪与同步子系统,由实时行为追踪与同步子系统更新服务器上保存的光标位置信息。
[0030] 在代码文本信息的同步过程中,需要着重处理光标行为信息的同步。当光标行为信息同步模块接收到服务器修改文档的操作后,使用者本地的光标需要进行相应的处理:对于插入操作,如果在光标之后插入字符,则光标后移,如果在光标之前插入字符,则光标不变;对于删除操作,如果光标在删除的字符之后,则光标前移,如果光标在删除的字符之前,则光标不变;对于选中文本的操作,将选中看为两个光标,然后选中两个光标之间的内容。当光标行为信息同步模块接收到其他的在线的使用者的信息后,会判断它的修改时间,对于长时间没有进行任何操作的光标将会被清除,不展示给使用者。
[0031] 该光标行为信息同步模块需要对所有使用者的光标行为信息进行同步,当一个新的使用者加入到项目时,光标行为信息同步模块会将服务器上的最新版本信息发送给他。
[0032] 进一步地,所述调试信息实时同步子系统包括调试信息同步模块,该调试信息同步模块接收使用者对项目代码进行调试所产生的调试信息,发送给实时行为追踪与同步子系统。
[0033] 该调试信息同步模块会通过实时行为追踪与同步子系统获取服务器上保存的调试信息,并为使用者展示。当服务器上保存有其他的在线的使用者的调试信息时,就会禁止当前用户对当前项目的所有操作行为,并将服务器上保存的调试信息同步到使用者本地;当使用者对本地项目进行调试时,则会将使用者的调试信息发送给实时行为追踪与同步子系统,由实时行为追踪与同步子系统更新服务器上的调试信息。当使用者对项目进行调试操作时,其他的在线的使用者将会被禁止对项目进行任何操作。
[0034] 该调试信息同步模块需要对所有使用者的调试信息进行同步,当一个新的使用者加入到项目时,调试信息同步模块会将服务器上的最新版本信息发送给他。
[0035] 进一步地,所述实时行为追踪与同步子系统包括开发环境追踪和同步模块、文件目录信息追踪和同步模块、代码文本信息追踪和同步模块、光标行为信息追踪和同步模块、调试信息追踪和同步模块,分别说明如下:
[0036] a)开发环境追踪和同步模块,接收来自开发环境实时同步子系统的操作信息,同步到服务器后,将服务器上的信息返回给开发环境实时同步子系统;
[0037] b)文件目录信息追踪和同步模块,接收来自文件与代码实时同步子系统的关于文件目录的操作信息,同步到服务器后,将服务器上的信息返回给文件与代码实时同步子系统;
[0038] c)代码文本信息追踪和同步模块,接收来自文件与代码实时同步子系统的关于代码文本的操作信息,同步到服务器后,将服务器上的信息返回给文件与代码实时同步子系统;
[0039] d)光标行为信息追踪和同步模块,接收来自文件与代码实时同步子系统的关于光标行为的操作信息,同步到服务器后,将服务器上的信息返回给文件与代码实时同步子系统;
[0040] e)调试信息追踪和同步模块,接收来自调试信息实时同步子系统的操作信息,同步到服务器后,将服务器上的信息返回给调试信息实时同步子系统。
[0041] 一种采用上述系统的基于互联网的实时多人计算机程序开发调试方法,其步骤包括:
[0042] 1.多名软件开发者之间开发环境的实时同步机制,将信息由开发环境实时同步子系统发送给实时行为追踪与同步子系统进行同步;
[0043] 2.多名软件开发者之间文件与代码的实时同步机制,将信息由文件与代码实时同步子系统发送给实时行为追踪与同步子系统进行同步;
[0044] 3.多名软件开发者之间调试信息的实时同步机制,将信息由调试信息实时同步子系统发送给实时行为追踪与同步子系统进行同步;
[0045] 4.实时行为追踪与同步子系统接收来自上述各子系统的信息,在服务器上进行同步,将同步后的信息发送回相应的各个子系统。
[0046] 进一步地,步骤1中包含如下子步骤:同步编辑器样式设置信息、同步编辑器功能偏好设置信息、同步编译环境设置信息。
[0047] 进一步地,步骤2中包含如下子步骤:同步文件目录信息、同步代码文本信息、同步光标行为信息。
[0048] 进一步地,步骤3中包含如下子步骤:同步调试信息。
[0049] 进一步地,步骤4中包含如下子步骤:将编辑器样式设置信息、编辑器功能偏好设置信息、编译环境设置信息、文件目录信息、代码文本信息、光标行为信息、调试信息同步到服务器。
[0050] 与现有技术相比,本发明的有益效果如下:
[0051] 本发明通过系统开发环境的实时同步、文件与代码的实时同步、调试信息的实时同步、行为的实时追踪与同步,解决了多位程序的编写者(软件的开发者)在互联网连通的条件下,实时同步完成代码编写、调试、测试过程等几类工作及结合以上这几项工作的综合性软件工程研发活动。本发明能够使实时在线教学成为可能,课程传授者可以通过程序编写的方式,让课程学习者看到实时同步的程序,进而完成学习;同时,实时在线协作开发、实时在线互动编程面试等场景也因此项技术的完整方案变得更为高效,多位开发者可以同时操作一个工程项目并实现实时同步,面试者和被面试者也可以通过类似的方式对彼此有一个更明确的了解。

附图说明

[0052] 图1为本发明的一个实施例的基于互联网的实时多人计算机程序开发调试方法的流程图;
[0053] 图2为本发明的一个实施例的开发环境实时同步过程的示意图;
[0054] 图3为本发明的一个实施例的文件与代码实时同步过程的示意图;
[0055] 图4为本发明的一个实施例的调试信息实时同步过程的示意图;
[0056] 图5为本发明的一个实施例的实时行为追踪与同步过程的示意图。

具体实施方式

[0057] 为使本发明的上述目的、特征和优点能够更加明显易懂,下面通过具体实施例和附图,对本发明做进一步说明。
[0058] 图1为本发明的一个实施例的基于互联网的实时多人计算机程序开发调试方法的流程图。如图1所示,该实施例主要包括以下步骤:
[0059] 步骤11,系统判断使用者的网络状况,若使用者离线,则提醒使用者当前为离线状态,使用者的修改保存在本地,无法进行同步操作;
[0060] 步骤12,系统判断是否有使用者修改开发环境设置信息,若是,则进行开发环境实时同步过程;
[0061] 步骤13,系统判断是否有使用者操作光标、操作代码文本、操作文件目录,若是,则进行文件与代码实时同步过程;
[0062] 步骤14,系统判断是否有使用者对项目代码进行调试,若是,则进行调试信息实时同步过程。
[0063] 图2为本发明的一个实施例的开发环境实时同步过程的示意图。如图2所示,该实施例主要包括以下步骤:
[0064] 步骤21,系统判断使用者本地信息是否为最新信息,若不是,则将使用者本地版本更新为服务器上的最新版本;
[0065] 步骤22,使用者进行修改开发环境设置信息的操作;
[0066] 步骤23,系统响应使用者进行的操作;
[0067] 步骤24,系统将使用者的操作信息发送给实时行为追踪与同步子系统;
[0068] 步骤25,系统接收来自实时行为追踪与同步子系统返回的信息;
[0069] 步骤26,系统更新所有在线的使用者的开发环境设置信息。
[0070] 图3为本发明的一个实施例的文件与代码实时同步过程的示意图。如图3所示,该实施例主要包括以下步骤:
[0071] 步骤31,系统判断使用者本地信息是否为最新信息,若不是,则将使用者本地版本更新为服务器上的最新版本;
[0072] 步骤32,使用者进行操作光标、操作代码文件、操作文本目录;
[0073] 步骤33,系统响应使用者进行的操作;
[0074] 步骤34,系统将使用者的操作信息发送给实时行为追踪与同步子系统;
[0075] 步骤35,系统接收来自实时行为追踪与同步子系统返回的信息;
[0076] 步骤36,系统更新所有在线的使用者的文件与代码信息。
[0077] 图4为本发明的一个实施例的调试信息实时同步过程的示意图。如图4所示,该实施例主要包括以下步骤:
[0078] 步骤41,使用者对项目代码进行调试操作;
[0079] 步骤42,系统锁定所有其他的在线的使用者的项目代码;
[0080] 步骤43,系统响应使用者进行的操作;
[0081] 步骤44,系统将使用者的操作信息发送给实时行为追踪与同步子系统;
[0082] 步骤45,系统接收来自实时行为追踪与同步子系统返回的信息;
[0083] 步骤46,系统更新所有在线的使用者的调试信息。
[0084] 图5为本发明的一个实施例的实时行为追踪与同步过程的示意图。如图5所示,该实施例主要包括以下步骤:
[0085] 步骤51,系统接收到来自其他子系统的信息;
[0086] 步骤52,系统将服务器版本更新为接收到的最新的版本;
[0087] 步骤53,系统将服务器同步后的信息发送回给原子系统。
[0088] 以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或等同替换,而不脱离本发明的精神和范围,本发明的保护范围应以权利要求所述为准。