[论文笔记] 一种Java遗留系统服务化切分和封装方法 (计算机学报, 2009)
2013-11-22 14:08
267 查看
李翔,怀进鹏,曾晋,高鹏. 一种Java遗留系统服务化切分和封装方法. 计算机学报, 32(9), 2009, p1084-1815 (gs:5)
1. 本文研究从Java遗留系统中切分并封装出Web服务的(半)自动化方法。
主要涉及到的模型和技术如下。
静态类结构模型,类关系图(CRG):有向图,定义类之间的关系和结构。类级别的切分过于粗糙,难以应用于大多数遗留系统。
动态对象调用模型,对象调用图(Object Invocation Graph, OIG):有向有权图,表示对象之间调用关系和频繁程度
对象依赖频度图(Object Dependent Frequency Graph, ODFG):由CRG和OIG合并形成,表示遗留系统运行示例对象的依赖关系和程度。(S5.3)
模块依赖频度图(Module Depnedent Frequency Graph, MDFG):与ODFG类似,其中每个模块是多个对象的集合。(S5.3)
执行码重写技术:可以根据原系统调用过程自动生成服务及其调用代理(客户端),本文选用了ObjectWeb ASM。(S5.1)
2. (S5.3) 基于ODFG和MDFG,本文将遗留系统的切分问题建模成“有向图的切分问题”(所求切面必须是单向的,即图切分后的两个切片之间的所有边都指向同一切片)。
使用图分级聚类方法获得图的割树(算法1);使用贪婪策略的启发式算法加速割树的计算过程(算法2)。
3. (S5.2) 中定义了遗留系统模型的服务化切分指标(目标函数),分解为模块度MQ、接口评价IQ和性能代价PC:
PQ:表示整体的服务化切分质量(Partition Quality);
MQ:对模块高内聚、低耦合的量化评价;
IQ:接口中操作数目和参数数目越小约好,定义为接口中参数数目的倒数;
PC:评价改为服务调用带来的性能损失。
4. 本文提到的相关工作:
(1)对遗留系统的服务化切分:传统软件中的构建提取技术方向可以借鉴
特别是基于软件元素间的全局相对性对系统进行划分的方法
(2)面向对象软件的自动分解和转换技术方向
面向对象软件切分可以分为动态和静态、在线和离线、类级别和对象级别。
针对Java语言的切分工具:Doorastha, Pangaea, Addistant, J-Orchestra。
本文主要针对面向服务的遗留系统切分应用场景,类型是动态、离线、对象级别。
1. 本文研究从Java遗留系统中切分并封装出Web服务的(半)自动化方法。
主要涉及到的模型和技术如下。
静态类结构模型,类关系图(CRG):有向图,定义类之间的关系和结构。类级别的切分过于粗糙,难以应用于大多数遗留系统。
动态对象调用模型,对象调用图(Object Invocation Graph, OIG):有向有权图,表示对象之间调用关系和频繁程度
对象依赖频度图(Object Dependent Frequency Graph, ODFG):由CRG和OIG合并形成,表示遗留系统运行示例对象的依赖关系和程度。(S5.3)
模块依赖频度图(Module Depnedent Frequency Graph, MDFG):与ODFG类似,其中每个模块是多个对象的集合。(S5.3)
执行码重写技术:可以根据原系统调用过程自动生成服务及其调用代理(客户端),本文选用了ObjectWeb ASM。(S5.1)
2. (S5.3) 基于ODFG和MDFG,本文将遗留系统的切分问题建模成“有向图的切分问题”(所求切面必须是单向的,即图切分后的两个切片之间的所有边都指向同一切片)。
使用图分级聚类方法获得图的割树(算法1);使用贪婪策略的启发式算法加速割树的计算过程(算法2)。
3. (S5.2) 中定义了遗留系统模型的服务化切分指标(目标函数),分解为模块度MQ、接口评价IQ和性能代价PC:
PQ = a * MQ + b * IQ + (1 - a - b) * PC
其中PQ:表示整体的服务化切分质量(Partition Quality);
MQ:对模块高内聚、低耦合的量化评价;
IQ:接口中操作数目和参数数目越小约好,定义为接口中参数数目的倒数;
PC:评价改为服务调用带来的性能损失。
4. 本文提到的相关工作:
(1)对遗留系统的服务化切分:传统软件中的构建提取技术方向可以借鉴
特别是基于软件元素间的全局相对性对系统进行划分的方法
(2)面向对象软件的自动分解和转换技术方向
面向对象软件切分可以分为动态和静态、在线和离线、类级别和对象级别。
针对Java语言的切分工具:Doorastha, Pangaea, Addistant, J-Orchestra。
本文主要针对面向服务的遗留系统切分应用场景,类型是动态、离线、对象级别。
相关文章推荐
- [论文笔记](东北大学)基于组合服务执行信息的服务选取方法研究(计算机学报, 2008)
- java获取系统时间简单方法(笔记之用)
- 【黑马程序员】方法、数组、面向对象、封装、继承——Java复习笔记
- [论文笔记](东北大学)支持组合服务选取的QoS模型及优化求解(计算机学报06)
- java第七周实验封装一类对象English,该类对象具有一种功能printEnglish输出英文字母表。再封装一类对象Greek,该类必须是English的子类,该类对象不仅可以调用方法printE
- 【慕课笔记】U2 封装 第8节 JAVA中的方法内部类
- 计算机系统结构 一种定量方法 学习总结1
- 计算机系统会议论文是如何评审的 -- 读后笔记
- java获取系统时间的封装方法
- [论文笔记]随机QoS感知的可靠Web服务组合(软件学报, 2009)
- 【推荐系统论文笔记】个性化推荐系统评价方法综述(了解概念——入门篇)
- Java 一种Impl类的封装方法
- 2009/2010-遗留系统改造-java
- 一种有效的压缩感知方法——读Levin论文笔记
- 嵌入式软件开发培训笔记——Java第三天(方法重载、对象的构造与初始化过程分析、封装等)
- [Java学习笔记] 猜猜看(2) ~ 中断循环语句的一种方法(能够中断所有进行中的循环)
- JAVA封装学习笔记1--静态方法导入--其他
- 视网膜眼底图像的一种检测方法,学习笔记(一)
- java根据表主键查询表信息的方法封装
- java学习笔记六:构造函数(方法)