可信的国家软件资源共享与协同生产环境

在大型软件企业工业化生产中的应用示范

课题编号:2009AA010310

 

实用性评估报告

 

 

 

 

 

 

 

评估对象:面向服务的软件生产线

评估时间:20108

 

 

 

 

第一章 简介

软件工具及其生产环境是软件技术及其产业的重要组成部分。提高软件生产效率和质量一直是软件生产领域的重大课题。运行环境和应用模式的变化总是带动软件工具和生产环境的发展。当前,软件工具与生产环境呈现若干新特点:基于Internet的工具资源开放共享与协同开发成为提高软件开发效率、降低软件开发成本的重要途径;基于复用思想的大规模的软件资源库构建与共享成为提高软件生产率和产品质量的有效手段;软件的可信性成为软件质量的焦点,强化对软件可信性的分析、度量和应用支撑成为热点问题。

面向服务的软件生产线以SOA作为技术架构,通过软件工具的支持和服务总线的调度,实现了基于网格的服务演算和项目部署。该生产线的核心工具包括组合服务编排工具——BPMN Choreographer、遗留系统封装工具——J2WS、桌面型 Web服务容器——SOArHome、服务总线监控工具——SOArExprorer 、服务调用代理——SOArProxy、组合服务执行引擎——SOArEngine、组合服务验证工具——Service Verification Tool 等工具,基本覆盖了服务开发、服务封装、流程建模、服务部署、服务演算和服务测试等开发活动。

1.1术语和缩略语

Ø        Software Component(软件构件): 软件系统中具有相对独立功能、可以明确辨识、接口由契约指定、和语境有明显依赖关系、可独立部署、且多由第三方提供的可组装软件实体。其中,复用者使用特定的构件实体进行系统组装,这种构件实体一般为某种语言代码或特定格式二进制代码;构件实体被嵌入在最终用户使用的应用系统中。

Ø        基于构件的软件生产线:由北京大学开发的以软件复用理论为基础,通过对一组软件工具的集成,实现对系统化软件复用活动中可复用软件资源的生产、消费以及管理这三个重要环节的有效支持的工具集。

1.2参考资料

《面向服务的软件生产线介绍》

《面向服务的软件工具说明》

 

第二章  生产线评估

2.1主要功能

面向服务的软件生产线以基于服务计算技术,提高网络化软件设计和生产的效率为目标,采用中间件+工具集的基本形态,解决了服务资源管理、服务化的软件开发、服务运行和演化、基本问题、一体化的软件设计、生产和使用环境等问题。该生产线的功能具体表现为:

l         使用原子服务开发工具,进行原子服务开发和服务打包。

l         对原子服务进行组合服务编排,对服务进行定义,并且生成基于BPMN规范的业务流程模型。

l         部署定义完成的组合服务部署到SOARBus总线中。

l         总线负责调度组合服务引擎,进行分布式的服务调用代理。

l         引擎负责解析并调度执行组合服务。

l         组合服务测试工具对提供 Web 服务组合逻辑验证以及原子服务功能正确性验证功能。

l         服务监控工具对总线上注册的服务容器以及容器中所部署的服务进行实时监控与管理。

2.2技术路线

面向服务的软件生产线以Eclipse插件体系和RCP技术为技术路线,基本符合软件生产线框架。

其中包括服务监控工、组合服务编排工、组合服务测试等工具已经集成进BPIDE中,BPIDE是基于RCP技术的,提供了一个完整的基于服务的开发环境。

总线和执行引擎以服务的形式部署在Tomcat容器中。

服务体系采用ApacheAXIS2架构。

使用RMI作为工具间的调用服务。

2.3运行环境要求

JDK1.6版本

2.4生产线使用方式

l        使用原子服务开发工具,开发基于AXIS2的原子服务,通过视图方式,使用AXIS2平台中的JAVA2WSDLWSDL2JAVA工具,自动生成原子服务和WSDL描述文件,并打包服务。

l        对开发完成的原子服务,使用组合服务编排工具,进行基于BPMN的流程建模,在流程模型中添加执行特征信息,该执行特征信息,扩展了BPMN的语义,形成了可供SOAREngine解析的BPMN++流程定义文件。同时,可解析的流程文件将原有的原子服务进行编排,形成了可执行的组合服务。

l        使用BPIDE服务热部署工具,将已开发完的原子服务和流程定义文件热部署到总线容器。

l        启动总线容器,总线会请求已经部署的流程定义文件,并对流程进行解析和分片,并查询已经注册的执行引擎地址,自动调度执行引擎,形成基于网格的组合服务执行网络,并向引擎发送流程文件和分片,供引擎对执行文件进行解析。

l        启动执行引擎容器,执行引擎会自动请求总线容器,并向总线进行注册,并接收由总线发送的流程定义文件和分片文件,总线会解析流程定义文件,将流程定义解析成可识别的内存对象,并调度任务池,执行组合服务。

l        使用组合服务测试工具,对组合服务进行测试,组合服务测试工具会将组合服务部署到虚拟的测试环境中,根据开发人员定义的测试用例,生成适当的测试数据,并实时监控组合服务的运行情况。

l        使用SOARExplorer监控总线的实时运行情况,监控工具会自动监控总线中已经部署的组合服务,并实时展现目前服务的调用情况,包括输入数据,执行结果等,已图形化和数据展现的形式展现在开发人员面前。

第三章 生产线缺陷

Ø        生产线的整体使用较为复杂,提供的使用手册,部分有描述缺陷,并且详细使用说明也不全,缺少完整的使用手册支持。

Ø        生产线的部分工具写死了配置文件,例如RMI服务器必须部署在D盘根目录,工具内写死了数据库密码必须为SDP123等,导致在基于服务生产线的开发时,项目开发受到一定限制,在集成生产线时,也受到了部署的限制。

Ø        生产线的执行引擎不支持人工活动,只能在原子服务中使用线程等待的方式,实现假人工活动。

Ø        生产线的主要工具BPIDE采用了RCP的客户端,功能性较强,但是不符合标准的生产线集成形式,即插件形式的集成方式,导致在集成基于电子政务领域的软件生产线时,无法提取插件进行集成。

 

 

第四章 生产线评估意见

面向服务的软件生产线以服务为中心,提供了原子服务开发、服务部署、服务调用、服务执行、服务测试和服务监控等功能,提供了一套完整的SOA解决方案,工具涵盖了建模、开发、部署、测试、监控等各个生产环节,较好的体现了生产线模型的定义。

l      可用性

选用的几款工具都有较强的可用性。基本符合文档中的描述,少数工具由于已经集成进BPIDE中,导致工具缺失和使用失效。

l      成熟性

工具选用EclipseRCP技术和基于AXIS2的网格计算技术,在技术上较为成熟。但是其J2WS遗留系统封装工具缺乏实际应用场景,成熟度有所欠缺。

l      实时性

由于生产线大量使用了Tomcat服务器和网格计算,对于系统配置和网络的要求较高,导致操作的实时反馈在低配置机器上反映不甚理想。

l      信誉度

面向服务的软件生产线提供了基础的使用说明和工具介绍,但是详细的说明介绍文档有所欠缺,信誉度一般。

l      安装

该工具容易安装、卸载和重装。

l      集成性

由于部分工具的配置文件被写死,以及BPIDE没有采用插件的形式,所以不太容易集成到开发环境中去。

l      安全性

 基本能保证信息和数据的安全,不泄漏。

l      文档完整性

缺少完整的使用手册,部分描述存在缺陷。

l      文档一致性

相关文档基本和工具的最新版本保持一致。

l      理解

工具的相关文档中的内容较容易理解,能指导工具的正常使用。

l      培训成本

由于提供的相关技术文档不完整不容易操作该工具,培训成本较高