硕士论文工作报告

Download Report

Transcript 硕士论文工作报告

硕士工作报告
报告人:王宁
导 师:魏峻 研究员
提纲

一、硕士期间主要工作及成果

二、学位论文介绍
一、主要工作
1.
 2.
 3.
 4.
 5.

SOAP Express引擎开发和改进
Once ESB设计和开发
软件生产线工具集成框架
EC-GIN项目
Once 统一部署平台
1. SOAP Express引擎开发和改进


时间:2007.02-2008.01
职责:

重构数据绑定模块




加强web控制台





原有数据绑定模块代码模块化程度低
不易进行单元测试
通过重构梳理代码结构,编写单元测试
提供已部署服务的暂停和激活
增强导航功能
扩展SOAP Express传输层,实现SCTP协议支持
维护SOAP引擎,测试并修复系统错误,为系统演示提供支持
成果:



Java代码:> 2100行
实现SOAP Express对SCTP协议的支持
完成英文版SOAP Express用户手册
2. Once ESB设计和开发
时间:2007.06-2007.08
 职责:





调研ServiceMix和OpenESB
参与OnceESB系统BSR,BSP设计
设计并实现Normalized Message模块
成果:


完成ServiceMix和OpenESB调研报告
开发Normalized Message模块,编写相关文档
3. 软件生产线集成框架
时间:2008.02-2008.04
 职责:





调研Eclipse ALF项目,NetBeans,Jazz
参与工具集成框架TIF的设计和开发
协助开发工具集成框架Demo,开发TIF web控制台
成果:


完成文档《Eclipse ALF调研报告》、《基于流程的工
具集成方案》和《生产线工具集成框架技术方案》ALF
相关部分
完成TIF Web控制台开发
4. EC-GIN项目


时间:2008.03-2008.09
职责:




网格环境流量分析实验设计及实施
实验结果分析
基于NS2,开发GridFtp流量模拟器
成果:


实验脚本,流量分析程序,完成实验报告
GridFtp流量模拟器




为网格环境下流量特性研究工作提供工具支持
为EC-GIN项目其他流量模拟器的开发提供参考
一篇国际会议GridNet2008论文,第一作者
Shell 脚本 + TCL代码:> 1000行
4. EC-GIN项目 – 成果
实验方案
实验数据分析结果
GridFtp流量模拟器
5. Once统一部署平台


时间:2008.11-至今
职责:

系统调研


阅读论文,调研BuildProcess,SmartFrog等系统,分析各种中间
件平台的部署方法
系统详细设计


系统架构设计
部署模型设计
 部署单元模型、部署目标模型、约束规则模型



系统实现


约束规则验证框架设计
远程自动部署框架设计
基于Eclipse插件平台完成统一部署平台开发
演示案例

使用统一部署平台部署TravelPlan系统中涉及的中间件
5. Once统一部署平台 – 成果

成果


Java代码 > 1.2万行
文档





《需求分析》
《系统详细设计》
《组件平台约束规则总结》
统一部署工具
为863项目中《流程制导、
支持异构集成的软件生产
线》提供统一部署和配置
工具集
二、硕士论文工作

论文题目


网驰平台统一部署框架的设计与实现
论文提纲






研究背景
组件部署方法分析与总结
统一部署描述模型
基于约束规则的验证框架
网驰平台统一部署框架的设计与实现
案例研究
论文工作介绍提纲
研究背景
 研究目标与思路
 研究内容




统一部署描述模型
约束检测算法
远程部署框架
系统设计与实现
 系统演示

大型应用系统现状

当前大型应用中,应用组件部署面临的问题






使用多种中间件平台
各种组件配置复杂
组件间存在依赖
使用Human-Oriented文档手册描述部署要求
执行部署之后才知道是否部署成功
针对不同中间件平台使用专用部署工具
开始
旅行定制系统
TravelPlan
TravelPlan
一个旅行定制系统,用户通过浏览
一个旅行定制系统,用户通过浏览
器定制旅行计划,主要包括以下四
器定制旅行计划,主要包括以下四
TravelPlan
TravelPlan
大功能需求:
大功能需求:
••电子商务门户
电子商务门户
一个旅行定制系统,用户通过浏览
一个旅行定制系统,用户通过浏览
••订单处理
订单处理
器定制旅行计划,主要包括以下四
器定制旅行计划,主要包括以下四
••供应商
供应商
大功能需求:
大功能需求:
••银行支付
银行支付
••电子商务门户
电子商务门户
••订单处理
订单处理
••供应商
供应商
••银行支付
银行支付
身份验证服务
开始
or
海岛游服务
登山游服务
身份验证服务
or
and
海岛游服务
酒店预订服务
登山游服务
机票预订服务
and
支付服务
酒店预订服务
机票预订服务
结束
支付服务
结束
问题(1)多层次多中间平台

多中间件平台

EJB容器,SOAP引擎,BPEL引擎,Portal Server
Once
Porta
l
OnceAS
TravelPlan门户
PortalServer
机票服务
Service
Engine
身份验证服务
Service
Engine
登山游服务
Service
Engine
海岛游服务
AS
Service
Engine
酒店服务
OnceS
E
Process
Engine
Service
Engine
Once
BPEL
AS
Service
Engine
支付服务
问题(2)广泛使用配置文件

繁多而且复杂的部署单元配置文件

大量使用properties文件,xml文件定义组件属性
问题(3)组件间依赖关系

各种中间件存在依赖关系
BPEL对
Webservice
的依赖
Portlet对流程
的依赖
WebService
对EJB的依赖
问题(4)平台特定部署方式


同类型不同厂商中间件平
台配置差异
WebService组件

OnceSE


Axis2


Services.xml
Service.xml
EJB组件,JNDI配置

JBoss


Jboss.xml
WebLogic

weblogic-ejb-jar.xml

中间件平台特定部署工具
问题(5)部署需求描述不精确

使用Human-Oriented文档手册描述部署要求
问题(6)缺乏部署前验证机制

何时提示部署错误

真正实施部署之后


系统运行时


如OnceSE
如Once AS,当JNDI资源依赖不满足时
默默出错,不提示

如OnceBPEL,当依赖的webservice不可用时
导致的问题

导致:





较难验证配置文件合法性
部署人员阅读文档,理解部署需求,效率低,不易发
现隐性需求
手动解决组件间依赖关系,效率低,难度大,易出错
部署前缺乏验证机制,出错后,重部署成本高
部署平台分散,缺乏全局的验证机制
论文工作介绍提纲
研究背景
 研究目标与思路
 研究内容




统一部署描述模型
约束检测算法
远程部署框架
系统设计与实现
 系统演示

研究目标

研究范围

基于中间件的分布式应用组件的部署



研究对象

依赖关系是否有冲突,部署需求是否满足



暂不涉及其他类型软件的部署
主要针对中间件平台:Web Service引擎, BPEL引擎, EJB容器,
Portal Server
专指应用组件,中间件平台之间的依赖
部署需求包括对软件资源、硬件资源的需求,以及特定中间件平台本
身的约束条件
研究目标

生成可用的,正确的部署方案

暂时不关心部署之后的效率最优问题
名词解释

部署单元(Deploy Unit)


部署目标(Deploy Target)


对部署中涉及元素的限制。如:组件名字在同一个服务器中必须唯一;
服务器IP必须唯一;EJB依赖的JNDI资源必须存在等等。
部署(Deploy)


可以用来组件的中间件平台,以及运行中间件平台的服务器。部署目标
可以对外提供资源和服务。
约束条件(Constraint)


可以部署在某种中间件平台上的组件,通常以压缩包形式存在,比如jar,
ejb,ear,war,sar等,其中包含可执行文件以及配置文件。
部署者利用已有的部署工具将部署单元部署到部署目标上的整体过程。
部署计划(Deploy Plan)

或者称部署方案。包含一个或者多个部署操作。部署计划中所有的约束
条件都被满足之后,才可以被执行。根据部署计划中各个组件间的依赖
关系,确定的部署先后顺序。
总体思路
约束
规则定
义
统一部署
描述模型
部署单元
部署目标
领域相关
部署约束规则
正确性完整性验证
约束规则满足性验证
当前部署环境资源状态
约束规则
验证框架
具体可部署单元
统一执行
部署操作
远
程
自
动
部
署
论文工作介绍提纲
研究背景
 研究目标与思路
 研究内容




统一部署描述模型
约束检测算法
远程部署框架
系统设计与实现
 系统演示

研究内容

统一部署描述模型



部署单元模型,部署目标模型,约束条件模型
通过合理的模型定义,精确全面刻画部署需求,为部署计划正确
性验证提供基础
约束条件检测框架

约束条件总结


约束条件描述语法



分析总结各种中间件组件部署时的限制和约束
针对不同类型的约束条件,定义不同约束语法
约束条件检测算法
远程自动化部署


屏蔽多中间件平台部署差异
实现一站式多中间件平台远程自动部署
论文工作介绍提纲
研究背景
 研究目标与思路
 研究内容




统一部署描述模型
约束检测算法
远程部署框架
系统设计与实现
 系统演示

统一部署描述模型作用
统一多种中间件平台及组件信息表示模型
 精确刻画部署需求





部署单元模型
部署目标模型
约束规则模型
正确性提前验证的基础
部署单元模型

DeployUnit

<Name, Id, Dependency, ExportedResource,
Type, Target, Url, Status>
部署目标模型

Node


节点,具有计算能力的硬件设备,通常在网络中,具
有唯一标示Name/Id,IP地址,其中可以部署多个
Server。<Id, Name, IP, servers>
Server

中间件平台,如EJB Container,Web Server,
WebService Engine, BPEL Engine,可以拥有多
个端口port,其中部署多个部署单元,对外提供多种
可用资源。<Id, Name, Type, Port, Url,
DeployedUnit, ExportedResource>
约束规则模型

ConstraintDescription
<Id, Category, Target, Status, Body>
名称
含义
Name/Id
唯一标示
Category
所属分类,为了对一类约束规则进行验证或者Disable
Target
此规则作用的对象。对应DeployUnit, Node, Server中
的元素
Statue
当前状态,可用或者不可用
Body
约束规则的语法表示
论文工作介绍提纲
研究背景
 研究目标与思路
 研究内容




统一部署描述模型
约束检测算法
远程部署框架
系统设计与实现
 系统演示

约束条件总结(1)

约束条件分类

(1)部署单元包结构约束


(2)部署单元配置文件Schema约束


特定中间件组件有包结构有特定规范,如sar包中必须存在
META-INF/services.xml文件。
特定中间件组件的配置文件有特定schema规范,如ejbjar.xml。
(3)自身资源约束

自身声明的资源应该存在,如sar中定义的service class类,
必须能在组件的classpath中找到。
约束条件总结(2)

约束条件分类

(4)唯一性约束


(5)依赖关系约束


EJB依赖的其他JNDI资源必须可用;BPEL组件依赖的第三方
WSDL必须可用。
(6)兼容性约束


很多属性在一定范围内要求唯一,如同一个EJB容器中JNDI名
字唯一;同一个SOAP引擎中服务名字唯一;同一个部署环境
下Node的IP必须唯一。
由于版权、兼容性等信息,部分部署组件或部署目标会要求不
能和其他组件共存。
(7)非功能需求约束

对硬件资源,如内存、CPU,或者软件版本的要求。
组件部署流程

部署计划中涉及的所有部
署单元以及部署目标都必
须正确
1. 部署单元自身正确
2. 当前部署目标正确
1. 部署单元依赖关系可满足
2. 部署后部署目标正确
3. 部署顺序正确
约束规则描述语法

语法元素





变量:self,标示当前被验证的对象
Source:具体被验证的元素
Operation:操作,>,<,=,<>等
Value:必须是被operate支持的数据类型
基本语法


Source operate Value
如: Book的页数必须大约50

self.page > 50
约束规则验证算法

SMT算法(Satisfiability Modulo Theories)

适用范围




可以使用约束规则语法描述的约束规则
将约束规则转换为一阶逻辑
验证一阶逻辑可满足性
拓扑排序

适用范围



确定部署计划中部署单元的部署顺序
判断部署单元是否可卸载
如果不存在循环依赖,按照拓扑排序顺序部署
约束规则验证流程
验证约束条件
确定部署顺序
论文工作介绍提纲
研究背景
 研究目标与思路
 研究内容




统一部署描述模型
约束检测算法
远程部署框架
系统设计与实现
 系统演示

远程自动部署流程




各种中间件平台部署方
式有差异
使用适配器Adapter屏
蔽不同中间件平台间差
异
开发中间件平台代理
Agent执行远程部署
提供可扩展接口
论文工作介绍提纲
研究背景
 研究目标与思路
 研究内容




统一部署描述模型
约束检测算法
远程部署框架
系统设计与实现
 系统演示

系统设计与实现

简介




使用Eclipse EMF定义部署模型
基于Eclipse开发图形界面
提供可扩展接口
功能

支持多种中间件平台






OnceBPEL,OnceAS,OnceSE,OncePortal
内置领域相关部署约束规则
自动验证部署计划正确性,并给出修正意见
支持用户自定义约束规则
支持多种中间件平台的自动化部署
高可扩展性,可方便扩展对其他中间件平台的支持
系统构架图
系统模块图
可扩展性

Validator



Parser


从部署包提取部署信息,生成DeployUnit
Transporter


验证器
可扩展支持更多中间件的结构和schema的验证
从远程url下载部署单元,存放在本地
Deployer


部署执行者,可以对服务器进行操作
可扩展支持更多服务器的远程自动部署
系统示意图
(1)部署单元管理
(2)部署目标管理
(3)当前状态展示界面
(4)属性设置
案例研究

使用统一部署平台,实现TravelPlan系统自动部署




1个BPEL流程组件
1个EJB组件
6个web service组件
1个portlet组件
论文工作介绍提纲
研究背景
 研究目标与思路
 研究内容




统一部署描述模型
约束检测算法
远程部署框架
系统设计与实现
 系统演示

系统演示
1.
 2.
 3.
 4.

组件注册
组件自身资源验证
约束规则验证
远程部署
谢谢