基于图形编辑框架的SCA组件编辑器设计与实现

摘 要:随着面向服务体系结构(SCA)的不断发展,出现了许多不同种类的SOA实现技术.服务组件体系结构(SCA)作为一种新SOA实现及现代编程模型备受瞩目.本文针对开源的TuscanySCA实现,基于图形编辑框架(GEF)设计并实现了一个SCA组件的图形编辑器.该图形编辑器的实现是一个Eclipse的插件,这为基于SCA开发面向服务体系结构的应用系统提供了一个灵活、开放的基础设施.

关 键 词:SOASCAGEF服务组合

中图分类号:TP39文献标识码:A文章编号:1007-3973(2010)01-057-02

SCA是OSOA(开放SOA)组织发布的一个技术框架规范,它旨在解决使用各种不同的实现来创建面向服务的组件,以及如何将创建的组件进行装配和发布,满足业务流程需要的开发和部署.TuscanySCA是Apache开源组织的SCA规范的实现,同时也是OSOA组织推荐的SCA实现.但是TuscanySCA没有提供一个便利的工具来进行组件的组装,用户要手工生成应用所需的各种XML文件.

本文对TuscanySCA进行了扩展,为其添加了一个图形化的组件组装工具.用户只要进行简单的图形编辑操作就可以生成应用所需的XML文件这无疑极大的提升了用户感受.而且该工具以Eclipse插件的形式实现,这增强了该工具的用户友好性,使得用户不用切换开发环境,即可进行图形的编辑操作.

1系统架构

因为SCA组件图形化编辑器主要的功能是辅助用户完成复杂的SCA组装模型的由于我们将该编辑器实现为Eclipse的插件,因此它依赖于Eclipse平台.另外它还依赖于TuscanySCA实现.其系统结构如图1所示.

图1系统架构

与其他具有MVC结构的应用程序一样,在编辑器本身主要有三层模块组成.它们分别是:Model层、控制层(EditPart)、视图层(IFigure).

2系统实现

组件编辑器采用了MVC的系统机构.Model层对应于TuscanySCA实现中的Assembly模块下面的组件,如:Composite、Component、Service、Reference、Wire、Property等.控制层由GEF的EditPart实现,这些EditPart监听模型的变化,并将这种变化通知视图层以进行刷新.组件编辑器也为用户提供了两种主要的GEF视图,其中编辑器视图层由Draw2D的Figure实现,大纲视图层是由一个树状视图实现.

2.1模型层

GEF程序中模型只与控制器打交道,而不知道任何与视图有关的东西.为了能让控制器知道模型的变化,应该把控制器作为事件监听者注册到模型中.当模型发生变化时,控制器负责通知各个视图进行更新.图2是编辑器模型层简化类图.AbstractModel作为所有模型的抽象父类,实现了Cloneable、Serializable以及IPropertySource三个接口.AbstractModel引用了Write2XML类来实现写入到XML文件的功能.其他业务组件的模型都继承自此抽象类,其中,ServiceModel和ReferenceModel实现了IConnection接口.该接口提供了连线功能的接口.

图2模型层简化类图

WireModel、Composite、直接继承自AbstractModel,ComponentModel通过ElementModel间接继承自AbstractModel,而ServiceModel、ReferenceModel和PropertyModel通过WidgetModel间接继承自ElementModel.

2.2视图层

由于GEF已经实现了画线,因此在视图层,我们仅仅需要实现Component、Service、Reference、Property四个图形组件.GEF使用Draw2D的Figure作为视图层,因此我们创建了一个ElementFigure类,它继承自Figure类.与模型层类似,视图层也采用了树形的继承结构.视图层的简化类图如图3所示.

图3视图层简化类图

2.3控制层

控制层是GEF程序的核心,同时它也是整个编辑器的最复杂的模块.它不仅要监听模型的变化,当用户编辑视图时,还要把这种编辑结果反映到模型上.

图4控制层简化类图

图4所示是组件编辑器控制层简化类图.Wire的控制器WireEditPart继承自AbstractConnectionEditPart.控制层实现了两种视图的控制器,其中视图编辑器对应的控制器继承自AbstractGraphicalEditPart,树形大纲视图对应的控制器继承自AbstractTreeEditPart.这两种控制器都实现了PropertyChangeListener接口,以便监听模型的变化.同样,不管是视图编辑器对应的控制器还是大纲树形视图对应的控制器都采用了树形的结构实现.

3应用实例

以TuscanySCA给的一个Store的例子为例,编辑好之后的图形化SCA组件编辑器如图5所示:

图5SCA组件编辑器运行图

上述图形化组件的模型将输入标准的SCDL文件.参考TuscanySCA的例子可知,采用SCA组件图形化编辑器生成的XML文件完全符合SCA的规范.

4总结

本文介绍了一种对TuscanySCA进行扩展的组件图形化编辑器.这种编辑器使用图形编辑框架(GEF)实现,并且实现形式是Eclipse插件.该插件工具增强了TuscanySCA开源实现的易用性,和用户友好性,使得用户从繁琐的容易出错的XML文件编写任务中解脱了出来.另外,由于该编辑器使用Eclipse插件的形式开发,使得用户不用切换开发环境,即可进行图形的编辑操作.

类似论文

在线数学公式编辑器的实现

摘 要:数学公式如何在Web网页中输入与编辑,一直成为网络数学资源交流的障碍 本文以MathML标记语言为基础,利用De。
更新日期:2024-8-13 浏览量:105617 点赞量:23013

基于HTML的在线文档编辑器的实现方法

摘 要:基于HTML的在线文档编辑器是几乎所有在线应用系统中信息发布必不可少的功能模块 在线文档编辑器主。
更新日期:2024-2-14 浏览量:33601 点赞量:8868

基因编辑器将大显身手

细菌也有敌人,其较大的敌人之一是噬菌体,因为后者可以进攻和吞食细菌 面对攻击,细菌最有效的还击是祭出一种武器CRISPR,以保护&。
更新日期:2024-6-4 浏览量:12711 点赞量:3899

Windows禁止注册表编辑器功能

注册表是用来对Windows操作系统进行配置的一个工具 通过它,可以对操作系统及应用软件进行优化,可以自己设置Windows。
更新日期:2024-8-15 浏览量:105897 点赞量:23082

基于Perl的企业级代码编辑器的实现

摘 要:该文针对软件企业进行代码的整理工作这个需求,设计和实现了一个基于Perl的代码编辑器系统,让它。
更新日期:2024-12-21 浏览量:156946 点赞量:33788

iOS上的文本编辑器

iPad在很多人看来仿佛是一个娱乐工具,其实iPad也可以是一个生产工具 有些人在iPad上作画,有些在iPad上学习,不过,本期给大。
更新日期:2024-11-1 浏览量:17805 点赞量:4729