一种基于Naplet的应用开发管理系统的制作方法

文档序号:6385411阅读:175来源:国知局
专利名称:一种基于Naplet的应用开发管理系统的制作方法
技术领域
本发明涉及Naplet领域,特别涉及一种基于Naplet的应用开发管理系统。
背景技术
目前,在软件开发过程中,设置开发或测试环境是必不可少的任务获取并部署服务器;安装操作系统、运行时环境、源代码控制存储库和必需的一些中间件,配置操作系统、运行时环境和中间件;转移或复制代码;测试代码运行是否正常运行。随着软件复杂度的增加,系统运维的成本逐渐增高,构建应用运行环境,尤其是构建分布式程序变得非常困难。现有应用程序IDE (集成开发环境),如微软的Visual Studio, Sun的Netbean等,在开发传统的客户/服务器(C/S)模型程序发挥了很大的作用,但是随着分布式计算的发展,传承至今的设计原则不再适用,比如应用特点和负载模型、开发模式、评价体系等有了很多的变化,这就导致开发应用开发与实际运营中出现了很大的间隙。开发工具不能满足分布式程序的灵活需求。Eclipse是著名的跨平台的自由集成开发环境(IDE)。最初主要用来进行Java语言开发,但是目前亦有人通过插件使其作为其他计算机语言比如C++和Python的开发工具。就其本身而言它只是一个框架和一组服务,用于通过插件组件构建开发环境,通过插件能够很好的解决开发环境的构建与配置问题,但是不能实现程序运行环境的快速构建。应用环境的构建,分布式程序的部署的难度已经超出了手工和简单部署工具能够承受的范围,应用程序的运维成本逐年上升,需要一种可扩展的开发管理系统,实现从分布式环境构建、软件开发、代码版本控制、代码编译到程序运行的统一调控。

发明内容
本发明所要解决的技术问题是提供一种能实现程序开发、环境构建、程序运营一体化、提高程序的开发与部署的效率、减少程序环境构建成本的基于Naplet的应用开发管理系统。为达到上述目的,本发明提供如下的技术方案一种基于Naplet的应用开发管理系统,包括NVM管理模块,用于管理和维护NVM的动作和状态,为Naplet应用程序提供运行载体;代码管理模块,用于对Naplet应用程序的代码进行统一管理,包括代码的编辑环境、文件存储及版本控制;编译和运行模块,用于对代码进行编译和运行监控;程序部署模块,用于对Naplet应用程序进行部署;所述NVM管理模块、代码管理模块、编译和运行模块及程序部署模块之间以远程过程调用的形式进行交互。
进一步的,所述NVM的动作包括启动、暂停、唤醒和终止。进一步的,所述NVM的状态包括待定状态、准备状态、运行状态、挂起状态和异常状态。进一步的,所述NVM管理模块包括节点守护进程子模块和中心控制模块,所述中心控制模块向所述节点守护进程子模块发送NVM动作;所述节点守护进程子模块根据接收到的NVM动作进行相应的操作,并监测NVM的状态,且将监测结果实时报告给中心控制子模块;所述中心控制子模块根据所述节点守护进程子模块所反馈的监测结果对NVM进行管理。进一步的,所述代码管理模块包括代码编辑子模块,以图形化的web界面形式,供用户进行代码的编辑;文件存储子模块,以网络文件系统的形式存储所述代码编辑子模块内所编辑的代码;版本控制子模块,采用SVN版本控制用户所编辑的代码的版本。进一步的,所述编译和运行模块包括编译子模块,用于对所述代码管理模块内的代码进行编译;运行监控子模块,用于监控代码编译和运行的实时信息。进一步的,所述程序部署模块包括人工选择路径部署方式,用户手工选择需要执行部署程序的路径;自动选择路径部署方式,系统根据用户的需求及相关参数自动选择需要执行部署程序的路径。与现有技术相比,本发明提供了一种基于Naplet的应用开发管理系统,包括数据库,还包括NVM管理模块,用于管理和维护NVM的动作和状态,为Naplet应用程序提供运行载体;代码管理模块,用于对Naplet应用程序的代码进行统一管理,包括代码的编辑环境、文件存储及版本控制;编译和运行模块,用于对代码进行编译和运行监控;程序部署模块,用于对Naplet应用程序进行部署;所述NVM管理模块、代码管理模块、编译和运行模块及程序部署模块之间以远程过程调用的形式进行交互;SVN代码版本库,用于存储并更新Naplet应用程序的代码。本发明实现了从分布式环境构建、软件开发、代码版本控制、代码编译到程序运行的统一调控。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例所提供的系统总体结构框图。图2为本发明实施例所提供的NVM各状态之间转换流程图。
具体实施例方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例和附图,对本发明实施例中的技术方案进行清楚、完整地描述。需要说明的是,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。实施例需要说明的是,NVM(Naplet Virtual Machine,Naplet 虚拟机)是 Naplet 应用的运行载体,NVM是静止地存在于HOST (主机),它对外提供寻址(Lookup/discovery)服务、消息通信(Messaging)服务和传送(Delivery)服务;作为底层资源的访问接口,它可以作为与本地用户交互的接口出现。为了相互区别,不同的NVM具有全局唯一的标志符(GlobalUnique Identifier,⑶ID)。不同的 NVM 命名规则HOSTNAME:PORT/IDENTIFIER。其中,HOSTNAME表示主机名;P0RT —般是2099 ;IDENTIFIER表示Naplet虚拟机在一台主机的唯一标识。这样,NVM之间采用唯一的标识符,多个NVM可以运行在同一个主机上,满足虚拟化要求。如图1所述,本实施例提供的一种基于Naplet的应用开发管理系统,包括NVM管理模块,用于管理和维护NVM的动作和状态,为Naplet应用程序提供运行载体;所述NVM管理模块采用基于检查点的容错模型,在固定时间周期内设立检查点,一旦出现故障,立即回滚到最近的检查点继续运行,保证在网络失败的情况下能够给出正常运行应用;向其他模块提供Naplet虚拟机访问与操纵的管理接口,所述管理接口包括size ()、get (Objectkey)、start (Objectkey)、suspend (Objectkey)、resume (Objectkey)、terminate(Object key)、getNVMList()。所述NVM管理模块由节点守护进程子模块和中心控制子模块两部分组成,它负责管理和维护NVM的相关动作和状态。所述中心控制模块向所述节点守护进程子模块发送NVM动作;所述节点守护进程子模块根据接收到的NVM动作进行相应的操作,并监测NVM的状态,且将监测结果实时报告给中心控制子模块;所述中心控制子模块根据所述节点守护进程子模块所反馈的监测结果对NVM进行管理。所述NVM的相关动作包括启动、暂停、唤醒和终止。如图2所示,所述NVM的状态包括一、待定状态(pending):系统已经收到NVM的启动动作命令和参数(比如NVM标识符),但是所述启动动作命令和参数还没有下发到目标主机节点上的节点守护进程子模块,此时Naplet虚拟机(即NVM)不能运行应用程序;二、准备状态(ready):所述启动动作命令和参数已经发送至目标主机节点上的节点守护进程子模块,但是没有收到主机节点NVM启动动作命令的回复报告信息,此时Naplet虚拟机还不能运行应用程序;三、运行状态(running) =Naplet虚拟机正常运行,可以运行Naplet应用程序;四、挂起状态(suspended):等待唤醒操作,此时不能运行程序;当处于运行状态时,用户如果进行挂起操作,Naplet虚拟机则进入挂起状态,当处于此状态时,Naplet虚拟机进行返回操作,重新回到running状态;五、异常状态(Exception):节点守护进程子模块通过轮询检测NVM的状态时,如果发现NVM不能正常发送回执确认信息,该状态可能是网络拥塞或者主机宕机等情况引起。上述对构成NVM管理模块的节点守护进程子模块和中心控制子模块做了简单的叙述,下面分别对所述节点守护进程子模块和中心控制子模块进行详细的分析节点守护进程子模块,其运行在各个主机节点中,主要功能如下一、负责接受中心控制子模块发出的NVM操作命令NVM操作命令对应于NVM的相关动作包括启动、暂停、唤醒和终止,各个命令采用RPC (Remote Procedure CallProtocol,远程过程调用协议)的形式进行封装,RPC操作接口均以NVM的URN为参数,同时,节点守护进程子模块进行相应的操作启动、暂停、唤醒或终止NVM,实现NVM的快速构建,为Naplet应用程序提供运行环境;二、实时监测,监测NVM进程的状态和网络状态,通过Naplet监控接口测试代理是否正常运行,若发现错误或者测试请求响应超时,则节点守护进程子模块及时将监控信息报告给中心控制子模块,进行检查点恢复,若不能恢复,中心控制子模块则从哈希表中删除对应key的NVM项;三、安全管理和访问控制,进行拒绝服务攻击(Dos )、不正常和恶意的代理监测,及时报警;采用认证和制定安全策略的方式,进行访问的控制。中心控制子模块,是NVM管理的核心模块,管理集群所有的NVM,以哈希表键-值的形式存储NVM。其中,键(key):URN ;值(value):NVM Object。其中,URN是NVM全局唯一标志符;NVM ObjectCNVM对象)是对NVM的抽象表示,上述NVM的状态封装在NVM Object中;按照用户的操作实时发送启动、暂停、唤醒或终止命令到各节点守护进程子模块,各个命令采用RPC的形式进行封装。根据NVM运行的实时状态,所述中心控制子模块实时增删或者修改哈希表的项,并在关系型数据库对用户操作日志和NVM状态信息进行持久化存储。为使本实施例更易理 解,下面举一实例对NVM管理模块进行说明用户发出NVM操作命令(启动、暂停、唤醒和终止),以启动为例用户发出启动NVM的动作命令,URN=xl00. cloud, siat. cn:2099/nvml,其中,web服务器以URN为参数,构造状态为Pending的NVM对象,调用中心控制子模块中的NVM管理接口 start (Object)5NVM管理接口开始工作一、从策略库检查用户权限,如果拥有该权限,所述中心控制子模块则将哈希表中添加键为xlOO. cloud, siat. cn:2099/nvml,值为接受到的Object对象(状态改为ready)的项,进而转向二 ;如果用户不具备该权限,贝Ij直接向用户界面返回No PermissionException ;二、所述中心控制子模块向xlOO. cloud, siat. cn的节点守护进程子模块发出远程调用命令;三、当xlOO. cloud, siat. cn的节点守护进程子模块收到启动nvml的命令时,启动nvml,当nvml启动成功之后,节点将触发另外一个RPC,向中心控制子模块说明启动成功的状态,当中心控制子模块收到此RPC时,将修改键值为xl00. cloud, siat. cn: 2099/nvml的项,将其状态改为running。代码管理模块,用于对Naplet应用程序的代码进行统一管理,包括代码的编辑环境、文件存储及版本控制;将复杂的过程以简单的图形化web界面展示给用户。所述代码管理模块进一步包括
代码编辑子模块,以图形化的web界面形式,供用户进行代码的编辑;作为优选,在本实施例中,所述代码编辑子模块是具有高度互动性的RIA (Rich InternetApplications,富互联网应用)类型的客户端,具有丰富的用户体验,比如代码关键字高亮、折叠显示代码;以文件树的形式排列代码,显示代码与库文件直接的依赖关系,所述代码编辑子模块内的所有功能类似桌面集成开发环境,方便用户的实际操作;文件存储子模块,存储所述代码编辑子模块内所编辑的代码,在分布式环境下,采用NFS (Network File System,网络文件系统),使各个主机节点像访问本地计算机一样访问远程代码;同时,所述文件存储子模块存储的代码具有时新性,只存储用户代码的最新版本,当用户向版本库发布新的版本时,将自动将新版本的代码替换现有版本的代码;版本控制子模块,采用SVN版本控制,通过配置SVN安全远程客户端、SVN证书管理模块、SVN智能带宽管理模块和SVN网页客户端,为用户提供安全可靠且对用户透明的通讯加密的代码版本控制。编译和运行模块,用于对代码进行编译和运行监控;所述编译和运行模块进一步包括编译子模块,用于对所述代码管理模块内的代码进行编译;运行监控子模块,用于监控代码编译和运行的实时信息。在默认情况下,当用户首次提交代码版本时,系统编译代码之后,会保存编译后的资源,直到用户对项目提交新的代码版本后,系统才会识别代码是否更改,并重新编译应用程序受影响的资源,并清除多余的资源文件,以最少的编译处理开销,快速的开发应用。所述编译子模块采用GNU makefile的方式对用户代码进行编译,系统通过模板的方式来生成用户工程的 Makefile。所述模板由 classpath、compiIer_cmd、run_cmd、cIear_cmd四部分组成。classPath负责加载Naplet系统库和用户加入的第三方库(比如log4j),其中的$ (NVM_LST)需要在应用部署时替换成用户选择的NVM的标志符,多个NVM标志符之前采用空格分隔;Compiler_cmd,负责编译用户的RMI (Remote Method Invocation,远程方法调用)代码和其他代码,RMI代码采用rmic编译器编译,生成代码的stub (根),其他采用普通的javac命令;run_cmd负责应用程序在分布式环境下运行;clean_cmd负责清除过期的编译后的文件。所述编译子模块和所述运行监控子模块对应一系列动作命令的执行,用户需要实时远程监控编译和运行的实时信息,包括正常、错误和警告等信息,这些信息来源于标准输出和标准错误输出。标准输出指的是命令执行所回传的正确的信息,而标准错误输出可理解为命令执行失败后,所回传的错误信息。为了能够实时收集这些信息,系统采用数据流重定向和消息队列的方式,本系统以IOOrns作为时间间隔,将每一个时间间隔内的信息封装为一个消息实体,将这些信息分别发送到系统的两个线程编译信息收集线程和运行监控主线程。这两个线程工作原理类似一、编译与运行模块将实时信息流重定向,作为消息队列的发送实体(交换器);二、Web服务器中的两个线程作为消息的消费者,当接受到新的消息时,将触发服务器推事件,推服务将前台推送新的消息实体;三、浏览器的推客户端将接受消息实体,并进行D0M(DocumentObject Model,文档对象模型)更新。程序部署模块,用于对Naplet应用程序进行部署;所述程序部署模块进一步包括人工选择路径部署方式,用户手工选择需要执行部署程序的路径(即NVM);自动选择路径部署方式,所述程序部署模块根据用户的需求及相关参数自动选择需要执行部署程序的路径,从用户需求和主机节点的实时参数出发,然后作出最优化决策,用户只需选择所需求的NVM数量,比如NVM是否是running状态,主机的负载情况和资源利用率,其算法思想步骤如下,用户提出部署请求,采用数组对每个NVM按照所在主机的负载按递减排序,进而选择数组前面的元素,从而得到一个最佳的方案。本实施例通过设置NVM管理模块、代码管理模块、编译和运行模块及程序部署模块,实现了从分布式环境构建、软件开发、代码版本控制、代码编译到程序运行的统一调控。实现应用运行环境自动化部署,降低了环境搭建时间,避免手工配置的错误,还可以根据应用进行弹性扩展和优化,所述NVM管理模块、代码管理模块、编译和运行模块及程序部署模块之间以远程过程调用的形式进行交互,其在实际工作当中的具体交互机制如下用户通过NVM管理模块,调用NVM操作管理接口,并向前台(即web界面)返回所有NVM列表;中心控制子模块向各节点发出NVM操作命令,各节点守护进程子模块进行相应动作,并向中心控制子模块返回相应状态信息;用户通过代码管理模块,调用代码管理接口,进行代码版本控制以及源代码的远程传输;代码管理模块调用SVN编程接口,进行SVN版本控制;用户通过编译和运行模块,向中心控制子模块发出编译和运行应用程序的命令,编译与运行的实时信息通过服务器推技术实时向web界面推送;各节点守护进程子模块通过消息队列向编译和运行模块推送实时信息;通过依赖注射将所有的方法调用转换为日志,并将其进行关系型数据库持久化。本实施例提供了一种基于Naplet的应用开发管理系统,包括数据库,还包括NVM管理模块,用于管理和维护NVM的动作和状态,为Naplet应用程序提供运行载体;代码管理模块,用于对Naplet应用程序的代码进行统一管理,包括代码的编辑环境、文件存储及版本控制;编译和运行模块,用于对代码进行编译和运行监控;程序部署模块,用于对Naplet应用程序进行部署;所述NVM管理模块、代码管理模块、编译和运行模块及程序部署模块之间以远程过程调用的形式进行交互;SVN代码版本库,用于存储并更新Naplet应用程序的代码。本实施例实现了从分布式环境构建、软件开发、代码版本控制、代码编译到程序运行的统一调控,实现应用运行环境自动化部署,降低了环境搭建时间,避免手工配置的错误,还可以根据应用进行弹性扩展和优化。以上所述实施例仅表达了本发明的一种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
权利要求
1.一种基于Naplet的应用开发管理系统,包括数据库,其特征在于,还包括NVM管理模块,用于管理和维护NVM的动作和状态,为Naplet应用程序提供运行载体; 代码管理模块,用于对Naplet应用程序的代码进行统一管理,包括代码的编辑环境、 文件存储及版本控制;编译和运行模块,用于对代码进行编译和运行监控;程序部署模块,用于对Naplet应用程序进行部署;所述NVM管理模块、代码管理模块、编译和运行模块及程序部署模块之间以远程过程调用的形式进行交互。
2.根据权利要求1所述的基于Naplet的应用开发管理系统,其特征在于,还包括SVN 代码版本库,用于存储并更新Naplet应用程序的代码。
3.根据权利要求1所述的基于Naplet的应用开发管理系统,其特征在于所述NVM的动作包括启动、暂停、唤醒和终止。
4.根据权利要求1所述的基于Naplet的应用开发管理系统,其特征在于所述NVM的状态包括待定状态、准备状态、运行状态、挂起状态和异常状态。
5.根据权利要求1所述的基于Naplet的应用开发管理系统,其特征在于,所述NVM管理模块包括节点守护进程子模块和中心控制子模块,所述中心控制子模块向所述节点守护进程子模块发送NVM动作;所述节点守护进程子模块根据接收到的NVM动作进行相应的操作,并监测NVM的状态,且将监测结果实时报告给中心控制子模块;所述中心控制子模块根据所述节点守护进程子模块所反馈的监测结果对NVM进行管理。
6.根据权利要求2所述的基于Naplet的应用开发管理系统,其特征在于,所述代码管理模块包括代码编辑子模块,以图形化的web界面形式,供用户进行代码的编辑;文件存储子模块,以网络文件系统的形式存储所述代码编辑子模块内所编辑的代码; 版本控制子模块,采用SVN版本控制用户所编辑的代码的版本。
7.根据权利要求1所述的基于Naplet的应用开发管理系统,其特征在于,所述编译和运行模块包括编译子模块,用于对所述代码管理模块内的代码进行编译;运行监控子模块,用于监控代码编译和运行的实时信息。
8.根据权利要求1所述的基于Naplet的应用开发管理系统,其特征在于,所述程序部署模块包括人工选择路径部署方式,用户手工选择需要执行部署程序的路径;自动选择路径部署方式,系统根据用户的需求及相关参数自动选择需要执行部署程序的路径。
全文摘要
本发明提供了一种基于Naplet的应用开发管理系统,包括数据库,还包括NVM管理模块,用于管理和维护NVM的动作和状态,为Naplet应用程序提供运行载体;代码管理模块,用于对Naplet应用程序的代码进行统一管理,包括代码的编辑环境、文件存储及版本控制;编译和运行模块,用于对代码进行编译和运行监控;程序部署模块,用于对Naplet应用程序进行部署;所述NVM管理模块、代码管理模块、编译和运行模块及程序部署模块之间以远程过程调用的形式进行交互;SVN代码版本库,用于存储并更新Naplet应用程序的代码。实现了从分布式环境构建、软件开发、代码版本控制、代码编译到程序运行的统一调控。
文档编号G06F9/44GK103049268SQ20121057215
公开日2013年4月17日 申请日期2012年12月25日 优先权日2012年12月25日
发明者须成忠, 李宇飞, 洪爵, 杜文龙 申请人:中国科学院深圳先进技术研究院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1