当前位置:首页 >> 互联网 >>

基于面向服务构架的用户界面集成方法


第29卷 2009年6月
文章编号:1001-9081(2009)S1-02.52—03

计算机应用
Journal of Computer Applications

V01.29

June 2009

基于面向服务构架的用户界面集成方法
张搏,陈平,胡圣明
(西安电子科技大学软件工程研究所.西安710071) (jefferyzb@伊lBiI.tom)

摘要:在面向服务计算中,往往需要调用外部接口来集成第三方工具。为了集成那些未提供接口和源代码的 工具,提出了一种基于脚本语言的黑盒方法,将外部工具的用户界面集成到分布式环境中,并且允许用户以服务的形 式执行一系列预先制定的界面操作。从而实现相关的功能。设计并实现了基于面向服务架构的从服务包装到服务调 用的各个环节。 关键词:面向服务架构;工具集成;界面操作 中图分类号:TP311.52 文献标志码:A
on

User interface integrating approach based

service-oriented architecture

(¥oj‰re
interlaces.As to approach
WaS

Enb'/neer/哪ina正ute,X/d/an‰ily,瓜’iln
Computing(soc),it
nor

ZHANG Bo,CHEN Ping,HU Sheng—ming 5haanx/710071,C轴Ⅵ)
integram third party

Abstract:In Service?Oriented

is necessary

to

tools from their exterior
based black?box

tools where neither interfaces
to

the

code

b眦WSm
0f

unavailable.a

scripting

language

proposed in this paper

integrate the
to

user

interfaces


those t∞16 into distributed environment.A series 0f

customized GUI operations is components

enabled

be executed
to

a8

Web service to implement involved functionalities.Moreover,
are

mn舀ng from螂'viCe wrapping

service

execution

designed and

implemented on

the

basis of Service-Oriented

Architecture.
Key

words:Service?Oriented ArclIitectute(SOA);tool integration;1.18er interface operation

面向服务的工具集成将传统的软件工具与开放的、高灵 活性的Web服务整合在一起,在实现对工具重用的同时,最 大限度地降低系统和集成对象的耦合度。目前的工具集成有 两种方式:1)调用工具的应用接口;2)对工具的源代码进行 改造。然而,这两种方式对于那些未提供接口和源代码的工 具都不适用。针对该问题,本文从操作系统的角度出发,以服 务的形式对工具的用户界面进行集成和控制,通过执行自定 义的界面操作脚本来调用工具的相关功能。 1

体系结构概述
为了集成那些未提供接口和源代码的外部工具,本文设

图1用户界面集成工具的体系结构

工具的用户界面集成应用所涉及的服务包括远程控制服 务、文件监听服务和界面操作服务以及这些服务的服务组合 服务。服务组合服务控制整个业务流程的执行顺序;远程控 制服务使用虚拟网络计算(Virtual
Network

计并实现了一个基于面向服务架构的分布式系统.该系统能 够集成外部工具的用户界面,并且将对界面的一系列操作包 装成为服务在业务流程中执行,从而实现相应的功能。 如图l所示,在面向服务的分布式环境中,工具集成应用 由服务提供者以服务的形式提供支持,而服务请求者则通过 网络连接调用服务,在集成用户界面的基础上实现远程控制。

Compuring,VNC)

工具对用户界面进行远程控制;界面操作服务执行界面操作 脚本实现界面集成和界面操作的自动执行;文件监听服务监 控并传输工具的输出文件,对用户屏蔽web服务带来的远程 数据访问的问题。 ““

“““”、““。 萋妻竺鎏!萎嚣专篓主墨笔量三竺譬旱包萎璧竺耋粪呈2用户界面集成技术 存储在服务容器中。Lna解释器通过执行【抛脚本来执行用
户界面操作。VNC Viewer和VNC Server作为底层支持用来 实现基于web服务的远程工具控制。
收稿日期:2008一∞一ll;修回日期:2008—09—23。 基金项目:。十一五“国防预研项目(513060601);西安电子科技大学研究生创新基金资助项目(05009)。 作者简介:张搏(1984一).男,陕西渭南人,硕士研究生,主要研究方向:面向服务计算、脚本语言;陈平(1953一),男.河南西峡人,教授. 博士生导师,博士,主要研究方向:面向对象、软件体系结构、逆向工程;胡圣明(1979一),男,陕西西安人,讲师.博士研究生,主要研究方向:程 序设计语言、逆向工程。
2.1

窗口嵌入 为了集成外部工具的用户界面,我们采用窗口嵌入技术

万   方数据

6月

张搏等:基于面向服务构架的用户界面集成方法

253

将集成对象的窗口从操作系统的桌面嵌入到一个集成框架 中。在Windows系统中,通过调用Wird2的API接口,可以根 据窗口句柄将多个窗口嵌入到一个指定的父窗口中。 图2是对于Rational Rose和Computer 系统中。
Associates ERwln

Lua解释器具有很强的扩展能力,并且与Pylon、Ruby等脚本 解释器相比更加快速灵活,在时间和空间上都有很大优势。 作为一个开源工具,L岫解释器采用c语言编写,运行时的内 存开销只有200
KB。

的界面集成。我们将Rose和ERwin的窗口嵌入到工具集成

为了在Lua脚本中执行界面操作,将自定义的API接口 与Lua解释器绑定在一起,为脚本引擎扩展了一些与界面操 作相关的功能,例如窗口控制和鼠标键盘操作等。脚本在执 行界面操作时从操作系统的角度模拟用户的人工操作,与集 成对象的内部实现无关。这样的黑盒集成方法降低了脚本引 擎和特定工具的耦合度,增强了脚本引擎的灵活性和可用性。 脚本引擎的运行机制如图4所示。在具体实现中,首先 将扩展的API函数注册到L衄解释器中,然后解释器才能执 行调用了某些界面操作函数的Lua脚本。扩展API由工具集 成系统的开发人员提供,而界面操作脚本则由用户自定义设 计。

图2界面集成Rose和ERWin

2.2远程控制 窗口嵌入技术解决了本地的工具集成问题,然而,如果要 在分布式环境中集成外部工具,则还需要借助远程控制技术。 目前,有很多VNC工具提供计算机之间的远程控制,例如 TightVNC、ReMVNC等。其中被控制的计算机称为Server,而 发出控制请求的计算机称为Viewer。在建立VNC连接时, Viewer根据口地址向Server发出连接请求。VNC工具的实 现原理是将Server的界面图像传输到Viewer,同时将Viewer 的鼠标和键盘消息发送到Server。图3是使用TightVNC远程 控制Rational 3.2脚本语言 作为动态脚本语言,Lua的语法灵活,支持复杂数据类型 和面向对象编程,具有很强的表达能力。界面操作脚本基于 Lua语言,支持多个输入参数。在执行时,Lua解释器首先加 载脚本进行解析,并且在状态自动机中通过定义变量输入脚 本参数,然后开始执行脚本。 图5所示是—个集成Rational Rose并打开指定文件的界面 操作脚本,脚本参数fileToOpen是要打开的文件路径。首先打开 Rose并且将Rose主窗口根据窗口标题嵌入到集成框架中。如 果嵌入窗口成功,则通过快捷键操作打开指定的文件。
扩展API脚本 图4基于Lua的脚本运行机制

Rose的界面,并且附tVNC的窗口被嵌入到了

工具集成系统中。

图3远程控制Visual C 4-+

3界面操作脚本
在集成了用户界面的基础上,用户在使用外部工具时还 需要手动执行相应的界面操作。在实际应用中,很多工具的 一个功能往往对应一系列固定的界面操作。显然,如果要求 用户每次在集成框架中手动执行相同的界面操作,效率是非 常低的。为此,我们采用基于Lua语言的动态脚本技术自动 执行一些机械的界面操作,辅助用户实现外部工具提供的功 能。Lu。脚本中记录了一系列指定的界面操作.通过脚本引4 擎执行脚本来自动执行这些界面操作,从而实现相应的功能。
3.1 图5 h。界面操作脚本

服务包装
在面向服务的构架中,服务包装器将工具集成所涉及的

脚本引擎 Lua脚本引擎的核心是一个基于状态自动机原理的L岫

所有应用包装成Web服务,并且存储在服务容器中。服务容

器通过执行即hOil脚本来调用服务,因此服务包装器也必须
把异构的应用统一包装成Python脚本。服务包装为传统的

脚本解释器,它能够解析并执行L岫脚本。在计算性能上,

万   方数据

计算机应用
软件工具提供了现代的接口,是重用原有工具的必要手段。 4.1界面操作服务 为了以服务的形式执行集成工具的用户界面操作,我们 将基于Lua语言的界面操作脚本包装成服务,以便服务容器 调用。图6的数据流演示了界面操作服务的包装过程,即解 析L啮脚本获得服务参数,并且生成相应的Python脚本,作为 服务存储在服务容器中。界面操作服务的执行过程由图6的 控制流所示。服务容器首先调用P”hon脚本,然后以变量的 形式将服务参数注册到hla解释器中,并且执行相关的L岫 界面操作脚本。 务,通过Laa脚本自动完成。 4.3其他服务

第29卷

为了在分布式环境中实现工具集成,往往还需要根据实 际需求包装其他服务作为辅助。譬如,如果用户远程控制某 工具,调用其功能后生成结果文件,则需要文件监控服务在文 件生成之后将其传输给用户。 5

实验与分析
根据现实中的需求设计了一个情景,在分布式的环境中

使用Rational Rose设计类图,然后把类图转换为SQL文件,最 后通过Computer
Associates

ERwin根据SQL文件建立数据

库。为了在面向服务的构架中实现相关功能,使用本文的方 法对这两个工具进行界面集成。 集成流程由若干服务组成,服务执行的序列图如图9所 示。为了实现对Rose和ERwin的远程控制,将服务的请求者 配置为VNC Viewer,而将提供Rose和ERwin服务的两台计算 机都配置为VNC Server。首先,通过VNC连接将远端的Rose
服务包装器Pytho.脚本 服务容器

界面集成进来,用户远程控制Rose设计类图,然后由文件监 控服务将类图文件传输到本地。在本地调用数据转换服务, 将类图文件转换成SQL文件。最后,将SQL文件传输到提供 ERwin服务的计算机,通过VNC连接和界面操作服务远程控 制ERwin,根据导人的sQL文件自动建立数据库。

图6界面操作服务的包装和执行流程

以图5中打开Bati,冒ml Rose的界面操作脚本为例,如图7所 示,在包装界面操作服务时,首先要输入待包装的【m脚本文件 的路径,然后系统会解析hm脚本,获得服务相关信息,如接口参 数等。如果服务信息无误,则点击确认按钮开始包装。



固固

1.建立vNC连接 2.在Rosc中设计类图 3.f章输类图文件

-]4.将类图转换成sQL文件
s.传输SQL文件 6.建屯VNc连接

7.在ER州n中导入sQL文件并且建立数据库
图9服务执行的序列图

该实验涉及的服务事先由服务包装器生成并且存储在服 务容器中,包括远程控制服务、文件监控服务、数据转换服务
图7界面操作服务的包装

以及界面操作服务。这些服务由一个基于BPEL引擎的服务 组合服务作为一个业务流程编排并执行。图lO所示是该实 验的BPEL业务流程。

包装完成后生成Python脚本如图8所示,它调用Lua解 释器执行Laa界面操作脚本。其中定义的RoseWrapper方法 是服务接口,而fihToOpen是服务参数,表示要用Rose打开 的文件路径。
l :-

iⅡ'Ⅺrt

UI

Playez

?;,d?f RoseWrapper CfxleToOy.enl:

j;
l: 矗‘

c=u!拿l&yer.Player fl c?9etParaml’!:二iij、j史’,f11eToOpen) c.P工盛y‘‘i:‘:-:fr ?;÷,,王:}i.:tj’)

图8包装生成的PytIIon脚本

4.2远程控制服务 在面向服务的构架中,通过包装VNC工具提供远程控制 服务。事实上,服务包装器包装的是负责请求建立VNC连接 的VNC Viewer,而VNC Server需要在调用服务之前配置完 成。在调用远程控制服务建立连接时,可以由用户手动完成 输入口等界面操作,也可以将这些操作包装成界面操作服
图10

BPEL业务流程

万   方数据

(下转第251页)

6月

濮小川等:可重构板级支持包的设计与实现

261

直接操作处理器硬件,而不调用处理器抽象模块的相关接口, 以提高系统的运行效率,但也会增加编程的复杂度。因此,操 作系统接口层的实现需要移植者在易用性和高效性之间作一 个折中。

在E∞yMOTO上移植斗C,/OS?Ⅱ的BSP;而且,还需要从底层 开始开发大部分设备驱动。 与此相对的是,可重构BSP可以在抽象模块级以下最大程 度地实现代码复用。在BSP资源库为空的情况下,需要单独开 发实现的是:F脚yMOTO的硬件抽象模块层、EasyARM的部分硬

件抽象模块、ILC/OS?Ⅱ接口层和心U眦接口层;所有设备驱动
Ⅲ:,0S一Ⅱ ¨CIOS-H

都可以在硬件抽象模块层以上进行开发;开发效率提高1倍以 上。如果在BSP资源库较为丰富的情况下,所需的工作量将会 更少。尤其是在大型基础项目中,常常需要嵌入式平台的系列化 开发,硬件抽象模块和操作系统接口的可复用率高,BSP资源丰 富,可重构BSP带来的效益将更加明显。 4

(与处理器无关代码)
OS—CORE.C OS_FLAG.C OS MBOX.C

(与应用相关)

OS_MEM.C oS.MUⅡ!X.C
OS I-lC/OS-II

0S_CFG.H
INCLUDEs.H

oS—QC SEM.C

OSJASK.C
OS_TIME.C 埘:OS—n.C
MCOS一Ⅱ.H

结语
随着嵌人式技术的不断发展和应用,嵌入式应用呈现出

系统复杂化、应用多样化等特点,传统的BSP已不能满足快 速、简单和高效开发要求。本文设计了模块化和层次化的可 重构BSP,打破了传统BSP的封闭性和专用性,提高了BSP的 开发效率,并在课题中加以验证和实现。为嵌入式系统的BSP 开发提供了一个新的思路。 参考文献:
【l】 刘德亮,陈诗军,胡昌赤。等.模块化思想在BSP开发中的应 用【J】.微机发展,2005.15(2):106—107.

uc,Os—II移植 (处理器相关代码)
OS—cPU.H

OS—CPU—A.ASM
OS_CPU_C.C

操作系统接口层 硬件抽象模块层 微控制器 图7 其他硬件设备

v.C/OS—II代码结构

【2】

黄磊.嵌入式系统的平台化开发【J】.国外电子测量技术. 2006。25(7):1—3.

3.3与传统BSP开发的对比 显然,如果用传统BSP的开发方法,则需要单独开发四 个BSP:在EasyARM上移植IzCLinux的BSP、在EasyABM上 移植斗C/OS-II的BSP、在E够yMOTO[-移植isCLinux的BSP、 (上接第254页) 6
【3】

Silicon Storage Technology.1ne.SSl39VFl60 data

sheet[EB/OL].

【2008—05—20].http://www.ast.corn./downloads/datasheets/
SST39VFl60.Ⅸ虻

结语
基于面向服务构架,利用脚本语言和远程控制技术为没
【4】

【C】//IEEE PT∞eedi“伊of the International Conference

on

Softwaze

Maintenance.Washington DC:IEEE Computer Society.2000:173. DRAHEIM D,LUTI'EROTH C,wEBER C.A selIIPMD code inde- pendent ltvc,rse
engineering

有提供接口和源代码的工具集成开辟了有效途径,以服务的 形式为集成对象提供了标准的接口,使用户能够在分布式环 境中无缝地调用工具提供的功能。由于采用了动态脚本通过 模拟操作系统的动作来执行界面操作,用户在编辑脚本的时 候不需要被集成工具的接口和源代码信息。从而降低了系统 和集成对象的耦合度。 本文提出的方法将工具集成扩展到Web服务的应用中, 这是未来技术发展的必然趋势。其中,如何在分布式环境中 处理并发的工具集成服务请求以及相关的安全策略是一个亟 待解决的问题。此外,界面操作脚本的辅助设计和自动生成 也是值得进一步研究的课题。 参考文献:
【1】
CANFORA G.FASOLINO A R,FRATrOLILLO G.et d.Migrating interactive legacy the lOth
systems
tO

tool for dynamic web
on

sites【C】//IEEE
Maintenance

Proceedings of 9th European Conference

SohgLTe

and Reengineering.Washington DC:IEEE Computer Society.2005: 168.

【5】

RICHARDSON T,STAFFORD-FRASER Virtual network

Q,WOOD K R。d击.
ori

eomputingI J】.IEEE Transactions

Internet Corn-

pufing.1998,2(1):33. 【6】
BISBAL J,LAWLESS D,WU B。d
terns:issues

a/.kgacy information

sys-

and

direetiom【J】.IEEE Software。1999,16(5):103.
engineering

【7】

MERLO E,GAGN P Y,GIRARD J F.et a/.Reverse and

r∞ngine州ng of

user

interfaces【J】.IEEE Software,1995,12

(1):64. 【8】
RUGABER S.A tool
suite

for evolving legacy
Oil

t;ofBvare【el//IEEE
Maintenance.

Proceedings of International Conference

SoftWSl.e

web services[C】//IEEE
On

Pmeeedings
and

of

Washington DC:IEEE Computer Society,1999:33.

European

Conference

Software

Maintenance

Reengi?

【9】

CANFORA G,FASOLIN0 A R,FRA‘fTOLll.工0 G,el:a1.A
ping
tO

wrap?

neefing.Washington DC:IEEE Computer Society.2006:24—36.

approach for

migrating

legacy

system

interactive functionalities

[21

ZDUN U.Reengincering

to

the Web:A reference architecture[C】//
Orl

service oriented

architectures【J】.ACM Journal of Systems and

IEEE Proceedings of the 6th European Conference

Software Main—

SoftwaIt.2008,81(4):463. 【lO】 卞永刚。徐浩,王茜.基于wcb Service的遗留系统包装平台的 研究和实现【J】.计算机时代.2004(12):9—14. 【ll】 李静,黄永忠,刘岩.基于面向服务架构的遗留系统再设计方法 【J】.计算机工程与设计,2007.28(6):1405—1409.

tenance and Reengincering.Washington DC:IEEE Computer Socie- ty.2002:164.

I 3】

COMELLA—DORDA S,W^I.LNAU K,SEACORD R C,甜a/.A
survey

of black—box modernization approaches for information

systems

万   方数据

基于面向服务构架的用户界面集成方法
作者: 作者单位: 刊名: 英文刊名: 年,卷(期): 张搏, 陈平, 胡圣明, ZHANG Bo, CHEN Ping, HU Sheng-ming 西安电子科技大学,软件工程研究所,西安,710071 计算机应用 JOURNAL OF COMPUTER APPLICATIONS 2009,29(z1)

参考文献(11条) 1.MERLO E;GAGN P Y;GIRARD J F Reverse engineering and reengineering of user interfaces[外文期刊] 1995(01) 2.BISBAL J;LAWLESS D;WU B Legacy information systems:issues and directions[外文期刊] 1999(05) 3.CANFORA G;FASOLINO A R;FRATTOLILLO G A wrapping approach for migrating legacy system interactive functionalities to service oriented architectures 2008(04) 4.RUGABER S A tool suite for evolving legacy software 1999 5.RICHARDSON T;STAFFORD-FRASER Q;WOOD K R Virtual network computing[外文期刊] 1998(01) 6.DRAHEIM D;LUTTEROTH C;WEBER G A source code independent reverse engineering tool for dynamic Web sites 2005 7.COMELLA-DORDA S;WALLNAU K;SEACORD R C A survey of black-box modernization approaches for information systems 2000 8.ZDUN U Reengineering to the Web:A reference architecture 2002 9.李静;黄永忠;刘岩 基于面向服务架构的遗留系统再设计方法[期刊论文]-计算机工程与设计 2007(06) 10.卞永刚;徐浩;王茜 基于Web Service的遗留系统包装平台的研究和实现[期刊论文]-计算机时代 2004(12) 11.CANFORA G;FASOLINO A R;FRATTOLILLO G Migrating interactive legacy systems to web services 2006

本文链接:http://d.wanfangdata.com.cn/Periodical_jsjyy2009z1086.aspx


相关文章:
基于SOA架构的企业集成系统设计与实现
用 户界面集成、数据集成、业务流程集成、函数/方法集成,这 4 种集成方法不能...3.2 Web Service 技术支持 Web Service 技术建立的面向服务架构基于开放性标准...
研究SOA 中信息管理的不同方法
SOA集成平台统一认证方法研... 21页 免费 基于SOA...元数据驱动的用户界面 47页 1财富值 SOA技术研究报告...利用信息管理的强大功能来用于基于面向服务体系结构(Ser...
面向服务架构的广告商业系统集成
针对这些问题,本文提出了基于消息传递的系统集成方式,采用 面向服务 (SOA) 架构...2 广告业务系统分析、建模 W 公司的商业系统按照用户角色的不同划分为以下 5 ...
面向服务体系结构中的信息管理
面向服务的数据集成方法 11页 免费 面向服务体系结构...他们将该功能用于基于 SOA 的建模、架构、设计以及...结构化信息包括了免费的文本报告、文档、Web 页面、...
ebs11表结构 方便用户界面查询
基于面向服务构架的用户... 5页 1下载券 Bootstrap 用户界面与交... 36页 ...DESCRIPTION VARCHAR2(240) 说明 COSTING_METHOD_TYPE NUMBER 成本合计方法代码(1...
软件架构师培训大纲
面向服务架构的消息模式 ESB 实现模型 评估基于服务集成技术的过程和准则 服务...Web Logic/Websphere 与.NET Framework/WSE 协同 o 分层软件架构设计 用户界面/...
面向服务架构研究综述
服务实现面向服务架构的技术,SOAP 与 REST 通讯方式, OWL-S 和 WSDL 分别进行...而且 Web 服务可以集成基于不同应用、 不同软件或分布在不同的硬件平台上、 ...
用面向服务构架实现敏捷的农业信息化平台
一个开放的, 基于标准的面向服务应用 架构提供了...它不但可以将现有农业应用整合到统一的应 用服务...还可以利用服务总线快速地通过配置 界面,管理并组织各种...
数据中心集成开发技术——新一代GIS架构技术与开发模式
在这种形势下, 一种崭新的革命性的技术(即基于面向服务的 GIS 架构”的“...集成视图、交互体系;设计管理与部署系统包括:设计器、工作流、框架界面、帮助系统...
面向服务架构的十大技术与基础理论体系
所谓“结构程序设计方法”,就是基于面向对象设计方法...我为人人, 人人为我,用服务这个简单概念整合在一起...SOA 的门户将要反映 SOA 所有功能的表现层界面, ...
更多相关标签: