当前位置: 首页 > 专利查询>朱起文专利>正文

一种在Web端运行的集成开发环境制造技术

技术编号:12164298 阅读:64 留言:0更新日期:2015-10-06 14:14
本发明专利技术公开了一种在Web端运行的IDE的实现方式,用以解决传统IDE的缺陷。该系统的优点有:整个IDE的后台运行在服务器上,所以客户端只要有浏览器就能使用,对客户端操作系统没有任何要求。无需安装,运行速度也不受客户终端性能的影响;可以直接在服务端集成项目管理、版本管理、文档管理、测试等工具,降低不同开发人员、不同部门之间的交流成本;由于代码直接在服务端进行编辑,无需下载到开发人员的本地计算机上,所以可以很好的保证代码的安全性。

【技术实现步骤摘要】

本专利技术描述了在Web端运行的集成开发环境的实现方法。
技术介绍
当前软件行业正在高速发展,从业人员每天都在和各种集成开发环境(下面简称 I峭打交道,而传统的IDE存在比较多的缺陷,影响到了开发人员的工作效率,具体的缺陷 如下:[000引 1)商业IDE的功能比较强大,但是价格昂贵; 2)免费IDE的功能一般比较弱; 3)大部分IDE的体积比较庞大,安装速度、运行速度都不太理想; 4)大部分IDE只能在单一操作系统上面运行,对于有多种终端的开发人员来说很 不方便; 5)与现有的项目管理工具,版本管理工具不能很好的配合; 6)开发人员和测试人员使用不同的工具,导致交流成本比较高; 7)对于公司来说,由于项目代码需要完整下载到开发人员的本地计算机上进行编 辑,所W代码安全性无法得到保证。
技术实现思路
为了克服传统IDE的上述缺点,本专利技术使用当下流行的Web技术来构建IDE。 由于整个IDE的后台运行在服务器上,所W客户端只要有浏览器就能使用,对客 户端操作系统没有任何要求。无需安装,运行速度也不受客户终端性能的影响。 可W直接在服务端集成项目管理、版本管理、文档管理、测试等工具,降低不同开 发人员、不同部口之间的交流成本。 由于代码直接在服务端进行编辑,无需下载到开发人员的本地计算机上,所W可 W很好的保证代码的安全性。 技术方案 要实现该样的一个系统,有几个难点需要克服:1)代码的编译和调试如何实现; 2)由于服务端直接运行用户的代码,需要保证服务端的安全性,即用户的恶意代 码要么执行不了,要么执行了也不会对整个系统造成影响,只能影响到他自己;[001引扣性能如何保证; 下面针对上述难点分别讨论: 1.要实现代码的编译和调试,首先需要将所有语言的编译器和调试器的公共行为 抽象出来,提供一致的操作界面,然后针对不同的编译器和调试器实现相应的适配器。 a)对于编译器来说,编译器的主要功能就是将程序源代码编译为可执行文件或者 相应虚拟机可理解的格式,因此可W抽象出一个编译的行为; b)对于调试器,调试器的功能更加复杂一些,可W抽象出W下几点: i.启动调试;针对调试目标的不同,启动方式有所区别。例如可执行文件加上启 动参数后直接启动调试、动态库需要调试器附加到进程进行调试、服务端程序需要远程调 试; ii.控制程序运行路径;断点、单步等的命令;iii.查看被调试程序的信息:被调试程序的变量的值、调用堆找、线程等信息; 针对抽象出的功能制定详细的通信协议,通信数据可W化vaScript方便处理的 文本型数据交换格式,例如xml或者json。 Web前端与后台服务器交互使用支持长连接的通信方案,例如WebSocket,在较旧 的浏览器上自动降级为Comet技术 2.为了保证服务器的安全性,用户提交的代码运行和调试应该使用沙盒技术与 服务器环境进行隔离,对于Linux操作系统可W使用Docker, BSD系列操作系统可W使用 Jailo 3.系统的所有组件均采用分布式方案W支持横向扩充,保证系统的性能。【附图说明】 附图1是系统组件图 附图2是系统实际部署的示例图 附图3系统整体序列图【具体实施方式】 为了使本专利技术所要解决的技术问题、技术方案及有益效果更加清楚明白,W下结 合附图及实施例,对本专利技术的关键部分进行详细的说明。应当说明的是,此处所描述的具体 实施例仅用W解释本专利技术,并不用于限定本专利技术。 系统的整体设计:[00对 1.系统组件: a) Web端:整个系统的前端,负责和用户的交互、其他服务产生的数据的可视化输 出,化及项目管理功能的实现。前端由反向代理服务器做负载均衡,W支持Web端的分布式 部署; b)调度服务:负责协调Web端和其他服务之间的通信,由于所有服务均可分布式 部署,因此调度服务具有负载均衡的功能; C)编译、调试服务;执行代码的编译、调试功能,运行在沙盒里面;d)存储服务;负责版本管理工具和系统中其他组件的交互。 各组件之间使用Socket通信。 2.系统通信设计,系统序列图见附图2。系统整体运行流程如下,该里通信数据采用Json格式,也可W使用xml等其他文 本类型数据交换格式: l)Web前端请求建立会话,Web服务端返回一个字符串,表示会话ID; 2) Web前端接收到会话ID之后,建立长连接; 3)Web前端发送源代码和编译运行命令,参数为会话ID和一个Json对象,Web服 务端无返回值。参数中的Json对象格式为: 编译服务接收到此请求后,先将源代码保存到文件,然后编译源代码,Wgcc为 例: gccfilelfile2…filen-g-〇a.out 编译成功后启动调试器: gdb-interpretermia.out 编译错误则返回错误信息。 然后编译服务通过管道或伪终端向运行的g化发送W下命令,设置断点: bfilelname;linenol bfile化ame;lineno2 … bfilenname;linenon 设置完成后发送运行命令,启动调试: r 4)如果编译服务接收到调试器的输出,则将其格式化后发送给Web服务端。Web 服务端通过建立的长连接返回数据到Web前端,返回数据是一个Json对象,格式为: 值,变量的值是base64编码后的字符串 5)用户后续的操作转换为两种消息发送到Web服务器端,然后由编译服务转化为 调试器命令,发送给调试器: 发送用户输入时,Json对象格式如下: 6)变量值的格式; 调试器产生的变量值的格式的形式化定义如下: a) const,即简单类型变量的值,数据为一个字符串; b)list,即列表类型(数组、单链表)变量的值,每个单元的内容可W是const、 list、tuple ;[00川c) Uiple,即复合类型(对象)变量的值,形式为{name=value, . . .},name是字 符串,value 可W是 const、list、tuple。 转换为化vaScript方便处理的Json格式后的定义如下; a) const;? b) list 和化pie ;) 3.编译服务运行在Docker容器中,通过Socket和调度服务通信。挂载服务器上 已存在的目录到容器中作为数据目录,主要保存运行日志和用户提交的代码。 通过W上的描述,开发人员可W很容易的开发出系统各个组件。 本专利技术说明书中采用的术语和措辞仅仅为了举例说明,并不意味构成限定。开发 人员应当理解,在不脱离所公开的实施方式的基本原理的前提下,对上述实施方式中的各 细节可进行各种变化。因此,本专利技术的范围只由权利要求确定,在权利要求中,除非另有说 明,所有的术语应按最宽泛合理的意思进行理解。【主权项】1. 一种在Web端运行的集成开发环境,其特征在于包括代码编辑器,调试器。【专利摘要】本专利技术公开了一种在Web端运行的IDE的实现方式,用以解决传统IDE的缺陷。该系统的优点有:整个IDE的后台运行在服务器上,所以客户端只要有浏览器就能使用,对客户端操作系统没有任何要求。无需安装,运行速度也不受客户终端性能的影响;可以直接在服务端集成项目管理、版本管理、文档管理、测试等工具,降低不同开发人员、不同部门之间的交流成本;由于代码直接在服务端进行编辑,无本文档来自技高网...

【技术保护点】
一种在Web端运行的集成开发环境,其特征在于包括代码编辑器,调试器。

【技术特征摘要】

【专利技术属性】
技术研发人员:朱起文
申请(专利权)人:朱起文
类型:发明
国别省市:北京;11

相关技术
    暂无相关专利
网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1