基于SOA思想的电子口岸信息平台系统

更新时间:2023-04-22 00:07:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

基于SOA思想的电子口岸信息平台系统

第24卷第9期   2007年9月  计算机应用与软件

ComputerApplicationsandSoftwareVol124No.9

Sep.2007

基于SOA思想的电子口岸信息平台系统

冯 靓 李立持 主振强 王 伟 宋 超

1

2

12222

(中国海洋大学/青岛海关 山东青岛266000)

(中国电子口岸数据中心青岛分中心 山东青岛266000)

摘 要  互联网技术、标准不断发展所带来的架构多样性使众多系统成为信息孤岛,SOA思想正是为整合这类系统而发展起来

的,成为当前企业应用的重要组成部分。探讨了SOA与BPM设计思想,对微软BizTalk技术进行了分析,并以山东电子口岸信息平台为例阐述了使用BizTalk实现BPM的方法。关键词  SOA BPM BizTalk 接口 业务流程

ASYSTEMOFINFORMATIONPLATFORMFORECONSOAIDEA

FengLiang LiLichi  1

2

1222

(OceanUChina/QShandong,China)

(Qingdao2ElectronicataCenter,Qingdao266000,Shandong,China)

Abstract  Withinternettechnologyandstandard,itbringsthepersityofthestructureandmakesmanysystemsbe2comeinformationisisland.TheideaofSOAhasdevelopedforconformingthissystemsjustaboutanditbecomesanimportantpartinen2terpriseapplicationcurrently.ThispaperdiscussesthedeviseideaofSOAandBPM,analysestheBizTalktechnologyofMicrosoft,andelabo2ratestherealizationofBPMbyusingBizTalk,exemplifyingtheinformationplatformofShandongelectronicport.Keywords  SOA BPM BizTalk Interface Operationflow

0 引 言

网络和通信技术的飞速发展使得从企业内部到不同的企业之间已建立起广泛的信息处理与通信机制,用户不再满足于孤立、分散的信息和应用,而是需要综合化、集成化的解决方案。企业应用集成(EAI)与业务流程管理BPM(BusinessProcessManagement)技术应运而生,成为解决该类问题的关键架构。

山东电子口岸的业务是整合山东关区海关与各口岸物流单位和企业之间的数据交换、共享和核查,建设一个统一的通关平台。相关单位有:政府、银行、运输企业、货代、海关、进出口企业、国检、边防、海事、商务、外汇管理、税务、铁路、机场、航空、船代、船公司、港务、理货、场站等,牵涉到多个系统的数据交换和复杂的业务流程。要把山东电子口岸建成体系完整、结构合理、互联互通的通关信息网络体系,必须解决的一个重要问题,就是如何在同构或异构的系统平台之间交互信息。若手工实现各系统集成以及流程控制,这种方式所生成的程序代码具有高度针对性与密切相关性的功能集合,此类开发工作具有高度线性化特征;其中每个步骤均依赖于上一步骤的完成,并且无法被轻松打断或修改。为此,我们采用了SOA(ServiceOrientedArchitec2ture,面向服务体系架构)的设计思想,使用BizTalkServer2004与C#对项目进行设计与开发。

1 SOA、BPM与BizTalk

SOA的出现,是软件开发新的里程碑。从面向对象体系结

构到S0A,软件体系结构实现了一次跨越。SOA是一种体系结

构,它采用松耦合的办法把现有的系统组成新的系统,从而使不同平台上的东西协同起来,能够相互交互。

BPM,是指根据业务环境的变化,推进人与人之间、人与系统之间以及系统与系统之间的整合及调整的经营方法与解决方案的IT工具。完整的BPM系统需由图形化流程设计环境、流程管理与监控、BPM引擎、使用者执行环境以及整合各种资源的底层EAI平台等主要元素所架构而成。BPM寻求改变业务与技术的交叉路口上无秩序的状态。BPM系统———即将图形流程建模功能与应用开发相结合,利用现有的EAI结构软件———鼓励双方建立次序。

一般来说,BPM基于SOA架构,从BPM的IT需求与SOA技术角度上看,BPM与SOA的融合也具有先天优势。借助于对XML和Web服务的支持,BPM系统正在对IT组织实施和执行工作流组件的方式加以变革。XML实现了信息的结构化,使其不依赖于任何操作它的软件。在另一方面,Web服务为应用程

收稿日期:2006-10-27。冯靓,硕士生,主研领域:软件工程,数据处理。

基于SOA思想的电子口岸信息平台系统

118   

计算机应用与软件2007年

序间的消息传递和无边界网络上的调用提供了一个框架。BPM工具则为利用这些功能创建、部署和执行所有工作流管理工作、企业应用集成(EAI)以及商务伙伴集成(TPI)提供了附加的支持基础结构。

BizTalkServer是Microsoft企业应用集成(EAI)和业务流程管理(BPM)工具集的中心产品,它具体体现了XML和Web服务技术的应用程序集成和流程自动化能力,是其专门为充分利用SOA而设计的开发工具,其优点是通过将业务流程、应用软件、数据和硬件整合起来,可以在企业内部各个系统以及企业与上下游伙伴的系统间实现无缝集成。

借助于BizTalk强大的消息处理和数据整合能力,我们可以方便的集成相关部门和企业的业务系统,灵活地设计和修改业务流程,从而将复杂的口岸业务数据集中于山东电子口岸进行处理和交换,为实现大通关平台打下良好基础。

用于复杂多变的口岸业务系统。具体结构如图2所示

图2 业务流程引擎结构图

3 业务流程设计

下面以放行信息处理流程及预订流程为例说明业务流程设

计过程,,业务过程涉及到海关、港务场站、、。放行信息处:

H2000预订系。

接收到报文后需对报文内容进行备案。

根据报文内容,依据一定的规则提取数据并转换为港务局报文格式发送给港务局。

根据预订规则提取数据并转换为场站系统报文格式,并调用山东电子口岸传输系统发送服务发送给场站。

根据海关物流平台系统规则将预订过的放行报文转换成物流平台消息格式并发送到物流平台系统。

将预订结果发送到山东电子口岸WEB系统供企业查询。根据放行报文内容及预订结果依照计费规则生成计费消息,发送给山东电子口岸计费系统。流程图如图3所示

2 系统设计原理

信息平台体系框架如图1所示

图1 体系结构图

接口

外部系统包括了各口岸单位的相关运营系统,内部系统主要是使用C#开发的独立业务系统,以组件和服务的方式存在,接口方式包括纯文本及XML文件、MSMQ和WebService。使用BizTalk架构(Schema)编辑器定义各种消息格式,BizTalk适配器与各系统接口连接。

消息

BizTalkServer采用的是消息驱动的模式,从接口中接收的信息都会通过管道转化为XML格式的消息;发送时再通过管道将其转化为相应系统的接口格式。

业务流程

业务流程引擎采用BizTalkServer2004,是整个系统运转的控制核心。使用集成于DOTNET中的业务流程编排设计器以图形化的方式设计业务流程,业务流程引擎根据设计结果进行流程调度,调用组件与服务,利用适配器接口和各种异构系统及后台数据库交互,实现了各流程稳定流转、各系统平滑互通的目标。同时,易变的业务规则使用业务规则编辑器设计,由业务规则引擎进行控制并供业务流程引擎调用。将业务规则与业务流程相分离,使规则独立于流程是BizTalk的一大成功之处,它可以保证在不间断流程运行的情况下对规则进行修改与编辑,适

图3 放行信息处理流程图

使用BizTalkServer具体实现该流程的步骤:

接口定义 使用BizTalk架构编辑器为各系统接口创建相应的Schema(消息架构)。

创建消息转换 使用BizTalk映射工具创建Map(映射)。创建业务规则 使用BizTalk业务规则编辑器创建词汇和业务规则。

定义业务流程 使用BizTalkOrchestration,以图形化的方

基于SOA思想的电子口岸信息平台系统

 

第9期   

冯靓等:基于SOA思想的电子口岸信息平台系统 119

式定义业务流程,首先创建接收形状接收放行信息;接下来按照

前述的处理流程添加相应的处理形状,并调用相应的规则与服务对消息进行备案、预订等处理操作;最后,引用设计好的Map进行消息转换并添加发送形状发送结果信息。

接口绑定 创建相应的端口和管道并与业务流程绑定。

vice接口负责,而在Xindice中由XPathQueryServiceImpl类实现。

本文仿照XPathQueryServiceImpl类生成了XQueryService类,在

XQueryService类实现XPathQueryService接口的query方法中调

用文档集合对象残根的queryCollection及queryDocument方法时

style参数的值为"XQuery",而XPathQueryServiceImpl类中调用

对应方法的值为"XPath"。在Xindice核心类Collection中修改

4 结 论

依据上述方法开发的山东电子口岸信息平台系统已经投入试运行并取得良好效果,实践证明,用BizTalk实现的业务流程管理系统能够满足跨部门、跨企业进行系统集成和数据交换的要求,能够以较为快捷的方式实现复杂多变的业务调度。

本文以在分析SOA设计思想的基础上,以山东电子口岸信息平台系统为实例阐述了使用BizTalk实现SOA的一种方式,能够对研究跨部门、跨企业的业务流程自动化管理和数据交换起到一定的借鉴作用。

queryCollection和queryDocument方法,通过判断其"style"参数

值是"XPath"还是"XQuery",从而确定采取XPath还是XQuery查询方式。

为了在命令行中能使用XQuery功能,作者在config目录中的command.xml文件里添加XQuery元素节点来为命令行工具添加XQuery功能。节点内容如下:

<commandswitch="xquery"

name="xquery"

class="mand.XQuery"  helpclass="document"

descripti="QueriesaXQuery"/>

参考文献

[1]康建军,陈淳鑫,等.基于BizTalkServer的工作流引擎的研究与实

,,即可通过serv2

现.电子技术应用,2006(2):83-85.

[2]王治,姜浩.工作流管理系统的WebServices.:

(QueryService)col.getService("XQuerySer2,.;

术与发展,2006,1(16).

[3]WfMC.TheWorkflCo2

alition2[4]Microsoft.MicrosServer[R].http://www.

/biztalk/community/Product/a3.asp.

[5]Microsoft.企业应用集成服务平台白皮书[R].http://www.eu.mi2

/china/biztalk/community/Product/a3.asp.

2.3 集成XQuery的Xindice应用实例

为了实现引言中提及的XML文档的查询要求,将下列

XQuery查询语句作为输入,即可得到正确结果:

<bib>{

 for$bindoc("/col1/bib.xml")/bib/book where$b/@year>1991 return

<book>{$b/title}{$b/price}</book>

}</bib>

(上接第67页)

对XPath查询的执行过程。客户提交的XPath查询是由客户端

通过CORBA向服务器提交查询请求,服务器将查询结果返回,数据库系统服务器和客户端的通信由CORBA完成。

客户端代码由两部分组成,它们的包路径分别为org.a2pache.xindice.client.corba与org.apache.xindice.client.xmldb(以下分别简称为corba与xmldb)。包corba包含数据库组件对象的CORBA框架和残根的实现,包xmldb是对XML:DBAPI接口的实现。用户对数据库的操作主要有命令行与CORBA接口调用两种。但是以上两种方法都是通过调用xmldb包(包xmldb含有对XML:DBAPI接口的具体实现类,这些类通过服务器组件对象的残根与位于服务器内核的服务器组件框架通信)来完成,具体实现流程如图2所示

采用上述方法可以直接取得符合条件的仅包含书名和价格的结果,不必再人工处理,从而有效地扩充了Xindice的功能。

3 总结与展望

Xindice是一个功能强大、非常流行、开放源代码的原生XML数据库服务器。由于其开发时间比较早,因此并没有实现XQuery查询功能。本文提出用Java实现XQuery的方法,在此

基础上为Xindice添加了XQuery查询功能,大大扩展了Xindice的查询能力。

但是XQuery本身是一个复杂的语言,它含有能根据XML

Schema进行静态类型检验等功能,这些功能能够对XQuery的

查询起到一定的优化作用。但是Xindice目前并不支持XML

Schema等xml模式的检验。因此,如何进一步改进Xindice,使

它更好地支持XQuery的功能,将是作者的下一步研究内容。

参考文献

[1]/xindice/.

图2 Xindice查询功能的执行流程

[2]/XML/Query.[3]https:///.

[4]程雷,朱茂盛.XQuery的实现机制[J].计算机工程与应用,2002,

24:78-85.

2.2 Xindice集成XQuery的实现方法

在XML:DBAPI设计中,XPath查询服务由XPathQuerySer2

本文来源:https://www.bwwdw.com/article/ycfq.html

Top