基于工作流的Web服务组合模型设计与实现

2017-05-22 01:27张键锋
电脑与电信 2017年3期
关键词:流程图调用实例

张键锋 王 劲

(广东省电信规划设计院有限公司,广东 广州 510630)

基于工作流的Web服务组合模型设计与实现

张键锋 王 劲

(广东省电信规划设计院有限公司,广东 广州 510630)

单个We b服务无法满足企业的应用需求,对多个We b服务进行组合的研究尤为必要。本文提出了一种基于工作流模板的服务组合模型,旨在通过定义和发布静态的We b服务,搭建基于工作流的We b服务业务流程组合模型,实现在工作流流程中调用静态的服务组合。

We b服务;工作流;服务组合

1 引言

随着Web服务的发展,企业对服务质量有了更高的要求,单个Web服务提供的功能越发不能满足企业各种复杂的实际需求,因此,将已有的Web服务组合起来,实现更强大的功能,成为了Web服务应用的一个重要研究方向[1]。

经研究发现,Web服务组合问题和工作流系统有着许多共同的特征:它们具有相同的生命周期,即组合流程建模阶段与流程运行阶段,在建模阶段均需要指定数据流和控制流,在运行阶段都由执行引擎负责解析流程定义并生成实例,通过调用外部应用或者服务进行执行。工作流技术最大优点是实现应用逻辑和过程的分离,在过程逻辑的建立过程中可不考虑应用和资源的异构性,但没有解决分布式异构环境中资源的互操作问题,而Web服务恰好提供了对分布式异构资源的互操作能力;而且工作流技术提供了对服务运行的协调、监控和管理能力,为Web服务提供一条可行路径[2,3]。因此,基于工作流的Web服务组合成为未来进行事务处理的发展趋势。本文研究的就是如何将工作流技术和Web服务结合起来,以实现流程当中的动态调用。

2 Web服务组合介绍

Web服务是通过Internet标准技术传递的,是一种松散耦合的软件组件。Web服务建立于SOA基础之上,SOA (Service-Oriented Architecture)是最新的分布式计算技术,可将软件组件(包括来自不同系统的应用程序函数,对象和进程)发布为服务。同时Web服务建立在XML标准上,可以使用任何编程语言、协议或平台开发出松散耦合的应用程序组件。Web服务体系结构基于三种角色(服务提供者(Service provider)、服务注册中心(Service broker)和服务请求者(Service requester))之间的交互[4]。服务提供者创建服务,并将其发布到服务注册中心供使用者查找和使用。当服务使用者需要完成特定的业务逻辑是就到服务注册中心去查询能够完成相应功能要求的Web服务,然后通过服务绑定直接与服务提供者通信,实现服务的调用,完成相应的事务。

3 工作流Web服务组合模型设计

3.1 实验模型概述

本章节设计了一个利用工作流模型调用Web服务组合的模型。首先,编写Web服务类,每个服务类完成特定的功能,然后将这些Web服务进行发布。其次,搭建工作流模型,工作流模型主要采取JBPM技术,使用JBPM定义的JBoss JBPM Process Definition Language(JPDL)进行流程定义。JPDL认为一个业务流程可以被看作是一个UML状态图。JPDL就是详细定义了这个状态图的每个部分,如起始、结束状态,以及状态之间的转换,通过图型化的流程定义,直观地描述业务流程。本模型通过人机交互的方式设计抽象工作流,利用JBPM的插件发布流程,将建模后的组合流程传给服务选取模块,在服务选取模块中,在服务注册中心查找所需要的服务,将具体的服务进行绑定,获得Web服务的接口地址,与Web服务发布者进行交互,在实际的工作流流程中调用具体的Web服务,根据Web服务返回的结果,执行不同的后续步骤。

3.2 实现技术与流程框架定义

现在主流的Web服务+工作流的做法为:(1)建立一个特定的Web Service;(2)建立Web Service Project;(3)建立Web Service;(4)发布并测试该Web Service。

3.2.1 Web Service项目生成并测试

先建立一个Web Service测试项目,然后发布,在本机写客户端的调用代码,测试代码如下:

测试:运行客户端程序,得到输出结果,Web服务调用成功。

3.2.2 Web服务的部署

在JBPM中调用所发布的Web服务,设计流程调用已经写好的Web服务,部署该流程如下所示:(1)导入MySQLDriver;(2)配置Hibernate;

(3)用main()方法完成流程的部署工作,具体流程如下:Step1:得到JBPM配置实例;

Step2:根据配置实例得到JBPM的上下文;

Step3:将流程定义文件转化为InputStream,再根据ProcessDefinition的方法得到一个流程定义;

Step4:将该ProcessDefinition部署在JBPM上下文中。

3.2.3 将流程封装成Web Service,并写测试程序调用该Web Service

(1)增加Web Service功能——增加XFire的架包和配置services.xml文档;

(2)增加Web功能——配置Web.xml文档,指定截获请求的Servlet的实现类。

3.2.4 调用Web Service的Client程序

(1)引进架包——XFire Http Client;

(2)将Web Service接口抓到本地;

(3)建立一个class在其中写main()。

本文采取的例子流程如图1所示:

图1 子流程图

主流程如图2所示:

图2 主流程图

3.3 Web服务定义与发布

使用定义一系列的Web服务,每一个独立的Web服务完成特定的功能,并注册发布到注册中心,对生成的WSDL[5]文件地址进行绑定,编写调用服务的服务工具类,针对不同的功能需求,选取不同的Web服务组合。

4 实例分析及模型实现

4.1 实例设计

本实例是一个财务报销流程,包括几个流程:申请人填写报销单——部门主管审核——老板审核,在操作过程中,根据不同的需求,调用不同的服务组合(权限验证、金额验证等)。根据服务返回的结果,系统执行不同的后续操作,直到流程结束。

4.2 Web服务的设计与发布

本实例中,服务库包含若干Web服务,这里列举一个关于检验用户权限的服务。核心代码如下所示:

将Web服务发布,在图3中可以看到已经发布成功的Web服务:

图3 发布的Web服务

4.3 工作流流程定义

首先搭建一个工作流的环境,自定义一个工作流的流程:

图4 定义工作流程

发布定义的流程,如图5所示:

图5 流程定义发布

成功发布流程之后,在流程中调用Web服务,结点调用Web服务的客户端代码:

通过查找数据库,验证用户是否存在,如果存在,则判断权限,权限分为管理员权限和普通权限,根据Web服务返回的结果,管理员进入管理界面,申请人进入申请界面,两者都不是,则返回登录。进入系统后出现申请报销界面,如图6所示,填写完报销单之后,能看到已有的业务,如图7所示:

图6 申请报销界面

图7 展示已有业务界面

利用工作流,点击查看流程,能看到当前流程走到的结点,如图8所示:

图8 工作流程图

流程图会动态地绑定当前结点,经过处理,系统在流程图的当前结点做出了标识,使流程的展示更加清晰。如上例所示,此时根据流程的设计,本实例报销的申请金额少于10000元,只需要部门主管同意,就可以完成报销的审核了,不需要走老板审核流程,所以如果部门主管同意,流程到这里就结束了,流程图会显示流程结束的标志。

5 结论与展望

本文从工作流Web服务的基本架构,注册发布,服务描述和工作流组合方法四个方面对基于工作流的Web服务组合研究现状进行了综述;根据工作流Web服务的实现框架从工作流建模,服务的选取和绑定,服务的执行三个模块对基于工作流的Web服务组合系统做了探讨。针对工作流流程对Web服务进行静态组合,并且将Web服务成功发布在计算机集群上,然而缺乏涉及Web服务基于语义本体的动态组合,未来研究重点的方向为Web服务基于服务语义本体的动态组合[6,7],实现对Web服务组合的更灵活的动态调用,并基于工作流Web服务组合系统实现统一的、定义良好的语言规范,提供跨平台、跨组织的工作流的基础支持。

[1]倪晚成,刘练成,吴澄.We b服务方法组合综述[J].计算机工程,2008,34(4):79-81.

[2]马临萍,郝克刚.基于工作流的We b服务组合系统[J].微计算机信息,2009,25(1-3):15-18.

[3]李顺新,凌海洋,江南.基于工作流模板的We b服务组合模刑研究[J].计算机与现代化,2009(7):44-47.

[4]李景霞,侯紫峰.We b服务组合综述[J].计算机应用研究,2005 (12):66-89.

[5]W3C.Web Services Choregraphy Description Language[DB/OL].http://www.w3.org/TR/wsdl.

[6]梁晟.基于语义We b的服务动态组合技术的研究[D].北京:中国科学院软件研究所,2004.

[7]张志平,张庆来.语义We b服务研究进展[J].情报学报,2006,25 (4):462-467.

Design and Implement of Web Service Composition Model Based on Work-flow

Zhang Jianfeng Wang Jin
(Guangdong Planning and Designing Institute of Telecommunications Co.,LTD.,Guangzhou 510630,Guangdong)

A single Web service cannot meet the application requirements. It is becoming more and more necessary to do a research on the Web service composition. In this paper, service composition model based on workflow template is build. The aim is to build a workflow-based Web services business process composition model by defining and publishing static Web services, to call a static service composition in the workflow process.

Web service ; work-flow;Web service composition

TP311.52

A

1008-6609(2017)03-0039-04

张键锋(1988-),男,广东人,硕士,助理工程师,研究方向为云计算。

猜你喜欢
流程图调用实例
核电项目物项调用管理的应用研究
基于系统调用的恶意软件检测技术研究
专利申请审批流程图
专利申请审批流程图
宁海县村级权力清单36条
完形填空Ⅱ
完形填空Ⅰ
利用RFC技术实现SAP系统接口通信
《天津医药》稿件处理流程图
C++语言中函数参数传递方式剖析