英语原文共 10 页,剩余内容已隐藏,支付完成后下载完整资料
CoRED–基于浏览器的协同实时编辑java的
web应用程序
Janne Lautamauml;ki, Antti Nieminen, Johannes Koskinen,
Timo Aho, and Tommi Mikkonen
Tampere University of Technology
Korkeakoulunkatu 10, FI-33720, Tampere, Finland
{janne.lautamaki, antti.h.nieminen,
johannes.koskinen, timo.aho, tommi.mikkonen}@tut.fi
Marc Englund
Vaadin Ltd.
Ruukinkatu 2-4, FI-20540, Turku, Finland
marc.englund@vaadin.com
摘要
虽然相当一部分应用程序的用户都从桌面转移到Web浏览器,大多数开发商仍在开发桌面IDE,如Eclipse和Visual Studio。相比专业版安装IDE,目前基于web的代码编辑是有额外功能的简单的文本编辑。他们通常理解的词汇语法,可以突出和缩进,但缺乏许多现代桌面编辑过的特点。在本文中,我们提出了一个基于浏览器的CoRED,协同实时代码编辑器的java应用程序。CoRED是一个具有错误检测和自动代码生成功能完整的java编辑器,通常由与社交媒体相关的一些特征进行扩展。作为一个概念的证明,我们已经扩展了CoRED,可以支持基于Vaadin框架的java web应用。此外,无论是作为一个独立的版本或任何其他软件的组件,CoRED都可以使用。它已经成为了基于arvue IDE的浏览器的一部分。
关键词
开发工具,协作架构,Vaadin。
学术分类关键词
d.2.3 C.程序编辑。d.3.2 H.开发工具。
H.5.3 C.计算机支持的协同工作。J.8.s. 美国网站管理/开发工具。
一般术语
设计,实验。
引言
通常来讲,沟通问题是软件项目延迟和失败的主要因素。在项目的不同阶段,从需求分析到客户文档,人们已经提出了许多工具和方法来解决问题。最有希望的沟通问题的方法之一,就是通过灵活的方法,主张密切和频繁的客户端和开发人员之间的沟通。在现实中,这通常是以一个团队的形式来实现的,提供一个共享相同的处所,鼓励频繁的非正式交流。
虽然软件开发界已经正在解决沟通问题,全球软件工程的不断涌现的做法是提高更大的挑战:软件工作正在地理上分离的地方以一种协调的方式跨越国家边界,涉及实时(同步)和异步交互。这强调需要全球范围内及时,精确和均匀的沟通。然后,因为在全球范围内的发展,必要的沟通也应该以这样的规模进行。
在几乎任何其他领域,全球沟通问题最近的标准答案就是万维网,或简单的网络。事实上,在一个相对短的时间内,网络已经成为了所有类型的应用程序实时协作的形式和规模的平台,这在几十年前难以想象。最近,网络的合作能力,进一步丰富了一个新的发明,社会媒体。Facebook,LinkedIn和其他服务,使我们能够与朋友、同事,以及实时世界各地不同话题的爱好者,进行联系。
虽然相当一部分应用程序的用户都从桌面转移到Web浏览器,大多数开发商仍在开发桌面IDE,如Eclipse和Visual Studio。目前,大多数可用的基于web的编码文本编辑器编辑只是用一些额外的功能,如代码高亮、缩进和协作,他们并没有使用性很好的桌面编辑可用。然而,网络编辑提供了自己的可能性。例如,实时协同编辑在环境中很自然地坐着。然而,web编辑器提供了自己的可能性。例如,实时协同编辑功能本来就可以在环境中使用。此外,我们得到了一般的基于Web的应用程序的好处,如自动分布,安装和更新的应用程序和独立的发展环境。在[ 1,14 ]中也提出了朝向方向的步骤。
在本文中,我们描述了一个实验,一般来说,网络协同能力,特别是社交媒体的特点,是用来帮助解决一些软件开发的沟通问题。作为一个具体的技术贡献,我们将介绍基于浏览器的、用于实时编辑Java源代码的编辑器,CoRED(协同实时编辑)。CoRED包含高亮,压痕,语义错误检查和代码自动完成的功能。此外,我们提出了一些来自社交媒体服务的灵感,我们相信这将有助于开发软件应用。据我们所知,没有一个先前有的基于web的代码编辑器可以提供类似的功能。
我们选择了Java和Vaadin作为目标语言和框架,即CoRED是首先针对这俩的编辑器。然而,它可以通过合理的工作量扩展到其他环境中。基于Vaadin 的web应用和桌面Java应用程序一样实现。因为Java的强类型和良好的工具支持,CoRED可以增加许多功能。这些功能包括语义错误检查和代码完成。这可能只是如JavaScript的弱类型的动态语言的一个梦。
本文其余部分的结构如下。在下一节中,我们给出Vaadin框架、 ACE的编辑器,和Java开发工具(JDK)的一个概述,我们使用它作为我们工作的基础。我们也简要介绍了arvue IDE,使用我们的编辑器作为构建块。在此之后,我们描述了我们的解决方案背后的技术,并讨论了协同功能。此外,我们解释如何CoRED可以扩展为不同的框架。然后,我们比较我们的编辑器同其他web代码编辑器。在论文的最后,我们得出一些最后的结论。
背景
在这一节中,我们简要介绍了我们在CoRED中正在使用的工具。我们也会以arvue IDE为例,因为它是现行的第一个使用CoRED的Web应用程序。我们使用的工具是Vaadin框架,ACE编辑器,和Java开发工具(JDK)。作为一个框架,Vaadin显然是我们的体系结构的最低层。Vaadin用于HTTP(S)通信,和区分的客户端和服务器之间的关系。在客户端,我们使用ACE编辑器作为前端,在服务器端,使用JDK作为分析源代码的工具。Vaadin还为我们提供了一种封装整个CoRED作为一个可交付的组成的方法,如图1。CoRED可作为基于Vaadin的应用程序的一部分,像arvue IDE或是其他。
图1. CoRED Vaadin组件和arvue IDE使用的IT架构。
Arvue
arvue是一个基于云的IDE,它为用户托管解决方案,这些用户需要一个简单的基于Web的工具来实施和发布基于Java的Vaadin应用。arvue的基本理念是 “在Web上为了web”创建应用程序。换句话说,其目的就是在web中实现web应用,并以最小的代价来发布它们。除了浏览器,没有其他工具,这意味着在开发的任意阶段,都没有必要的安装。
应用程序创建的浏览器为基础的可视化编辑器,包含图形用户界面(见图2)和代码编辑器。在图形用户界面上,用户可以通过拖放元素和布局来创建一个图形用户界面。所创建的图形用户界面,然后转换为源代码,它可以进一步修改的代码编辑器(即CoRED)。arvue是GUI和文本编辑之间往返的工具,这意味着同样的GUI编辑可以从编辑的做。代码编辑器也用来实现图形用户界面背后的功能。最后,新的应用程序可以毫不费力地部署到一个云类型的环境中,这就扩展了更多的服务器实例时,需要时。每个服务器都可以承载多个应用程序,它可以共享许多资源,而不互相干扰。
图2.图形UI编辑器选项卡打开的arvue IDE
arvue利用Vaadin框架及其实施。编辑是在浏览器中完成,大部分的处理都是在服务器端进行,如在Vaadin系统是常见的。例如,在核心服务器端利用JDK的语义错误检查并减轻执行代码完成。此外,我们的代码编辑器是一个自定义组件的客户端Vaadin是谷歌Web Toolkit(GWT)控件实现。此外,客户端控件使用基于JavaScript的王牌编辑基本的编辑功能。
Vaadin框架
Vaadin是开发富互联网应用(RIA)的开源框架,使用java编程语言。Vaadin框架广泛依赖于GWT [ 12 ]设施。GWT是一个开放源代码的开发系统,允许开发人员编写Ajax应用的java编译后的源代码,JavaScript可以运行在所有的浏览器。在Vaadin框架,GWT是用于编写客户端引擎和客户端和服务器之间的通信。
从开发商的角度来看,个人Vaadin应用实施类似于java标准版的桌面应用程序。然而,而不是通常的UI库,如AWT、Swing或SWT,开发者必须使用Vaadin UI组件的具体设置和框架,知道如何使用浏览器作为一个视图。此外,新定制的UI组件可以实现。在这种情况下的定制UI组件的客户端可以在java开发的,然后编译GWT或直接用JavaScript写的。对java和javascript的任何组合的使用也是可能的。因此,这使我们能够利用现成的JavaScript应用程序作为Vaadin客户端组件的一部分。
Java开发工具(JDK)
通常,java应用程序上运行的java运行环境(JRE)和只使用java字节码编译器编译包含开发包像太阳jdk3。然而,这是不够的,以开发的代码编辑器应用程序,它可以创建其他新的应用程序的飞行。相反,我们需要在开发工具包上运行应用程序。JDK包含必要的工具,编译,执行,调试程序和记录。此外,它包括tools.jar包,其中包含有用的太阳比API编写,诊断和解析源代码。
对于我们而言,JDK提供了一些非常有用的功能:javacompiler4是java编译器调用的程序接口。编译器生成完整的错误和警告的诊断在编译期间(例如,错误信息),他们可以收集使用diagnosticcollector。此外,通过扩展类加载器和standardfilemanager,源和目的编纂可以重定向。最后,所提供的API包含treepathscanner5可用于处理源代码。扫描仪访问所有源代码的子树节点能,因此,可用于查找类、方法、变量和其他java结构。
Ace
ACE是一个开源的代码编辑器,用JavaScript写的。它可以很容易地嵌入在任何网页,它有几种不同的编程语言的支持,包括java。王牌提供了许多基本的文本编辑器功能,如撤消/重做,搜索/替换,并使用主题的外观定制。它也实现了许多功能非常重要的,特别是对程序员的语法高亮和自动缩进。
在不编辑源代码的过程中,它很容易扩展其行为。例如,它是可能的,以实现您自己的键盘处理程序。我们的另一个特点是,王牌支持标记显示代码错误。也可以自定义标记下划线是可能的。此外,王牌提供有用的信息,整合到一个更广泛的框架。例如,在一个合适的位置上显示一个建议箱,需要在屏幕坐标位置上的光标位置。
架构的核心
在服务器端,在服务器端,以检查代码错误,并生成代码建议的最困难的工作。客户端编辑器与用户进行交互。CoRED采用Vaadin框架捆绑这些双方在一起。
关注点分离
核心的客户端和服务器端的设计是很容易的可定制。大多数编辑器的功能,如错误检查代码的建议是可替换的和可扩展的组件实现。在图3中提出了一个核心架构的一部分。的主要组成部分,collaborativecodeeditor,和其客户端副本作为服务器端组件和前端编辑器之间的胶水。例如,当用户需要代码的建议,主要的核心组件请求从服务器的建议,然后显示一个小部件的用户选择的建议。建议是由服务器端的提议者组件生成和选择的建议,最后发送到前端编辑。
前端编辑器组件通常是一个第三方的JavaScript代码编辑器的包装。我们已经与前端编辑器三可能的选择实现了一个原型组件:ACE,codemirror和Eclipse orion。包装Vaadin GWT组件内部的JavaScript编辑器很简单使用JavaScript本地接口(JSNI)电话。最终,我们选择了王牌作为我们的前端编辑器,因为它很好的支持缩进,语法突出和可自定义标记之间的其他东西。
有弹性元件附加组件的可能性。例如,通过简单地实现相应的接口,可以添加错误检查和代码完成组件。接下来,我们提出了详细的实施组件。
错误检查
误差检测器是用于扩展包CoRED的组件的一个例子。对于检查错误,基本上有两种可能的方法。首先,我们可以使用我们自己的或第三方的分析和错误搜索的方库。其次,可以从源代码编译代码,然后编译诊断。
我们的实现,我们决定使用后者的溶液与java SE Development Kit(JDK)。我们就这样包容一切的错误和javacompiler预警诊断和我们不需要跌倒与解析器编译器不兼容。然而,编译的基本问题是它的计算资源的消耗。如果我们使用三分之一方的库或某种独立的增量解析器与Eclipse SDK的错误检查,我们可以有更好的变化来调整精度和效率之间的平衡。然而,我们认为,该方法是足够的,我们的原型。
图3. CoRED的类层次结构的一部分
在错误检查,我们的基本流程是,首先编译代码,然后要求编译诊断。通过JDK提供的错误诊断包含所需信息给用户的所有
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[30020],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。
您可能感兴趣的文章
- 为非政府组织OG慈善基金会设计的基于社区的救灾管理系统外文翻译资料
- 基于UML建模的医疗系统电子健康服务软件外文翻译资料
- 开发一种具有增强现实功能的智能手机应用程序, 以支持护理学生对心衰的虚拟学习外文翻译资料
- 在开发 Web 应用程序中应用 Vue.JS 框架外文翻译资料
- 基于MES系统的生产车间信息管理研究外文翻译资料
- 基于Vue.js和MySQL的电子商务平台的设计与实现外文翻译资料
- 详细的Spring配置和SpringBoot外文翻译资料
- 基于NS2的DSR和AODV协议的性能比较研究外文翻译资料
- 不同仿真参数下NS2的TCP吞吐量性能外文翻译资料
- 基于Spring Boot和VUE的车辆管理系统实现外文翻译资料