基于WCF与WF构建国土使用权网上交易系统

2012-04-29 00:44:03黄德军
电脑知识与技术 2012年24期

黄德军

摘要:近年来,网络的快速发展促进了网上交易的推厂与完善。土地网上挂牌交易作为一种新兴的土地交易方式,已逐渐进入历史的舞台。该文概括地描述了国土使用权出让网上交易系统的应用服务与交易服务模型的基本构成,对其需求与流程作了分析阐述,该文对于基于WCF与WF的系统在SOA模式设计上进行了探索与研究,在“国土使用权网上交易系统”的设计与实现上,利用WF构建安全的交易流程,并利用WCF将WF发布为服务,将网上竞拍系统构建成灵活、易于扩展、面向服务的应用系统。

关键词:面向服务的架构(SOA);WCF;WF;国土使用权出让;网上交易系统

中图分类号:TP311文献标识码:A文章编号:1009-3044(2012)24-5801-05

近年来,网络的快速发展促进了网上交易业务的蓬勃发展。土地网上挂牌交易作为一种新兴的土地交易方式,其低廉的成本和广阔的前景,已得到越来越多人的重视。土地网上挂牌交易主要借助网络无空间地域限制的优点,以远程服务的方式弥补其网点少、规模小的不足,在今后相当长的一段时期内,必然会成为土地交易的一种必不可少的交易模式。而当前全国各地省市国土资源局信息化建设进展不同,处在不同的层次阶段,不少单位已经存在若干已经成熟的应用系统,但各个系统使用不同的技术和平台进行开发,使得资源整合、资源共享成为一大难题。

在技术方面,分布式技术SOA的出现将物理分散的数据资源、业务逻辑整合成统一的工作平台,它共享了数据和功能组件、整合优化了资源、减少了数据冗余与重复开发,利用起现有系统资源,克服了传统各自为政的自治系统的弊端。随着技术进步,Web在分布式应用上逐渐崭露头角,Web在分布式应用中的平台无关性、部署的方便性使其渐渐成为分布式技术发展的趋势,出现了越来越多的基于Web的分布式服务的应用。

该文利用WCF技术构建国土使用权网上挂牌出让系统,研究实现了在分布式环境下国土资源使用权交易系统,利用WF构建状态机工作流并依托WCF发布为服务来构建一个跨平台、易于扩展与共享的安全网上土地使用权交易环境。

1 WCF与WF技术综述

1.1 SOA概念

SOA分为广义的SOA和狭义的SOA,广义的SOA是指一种新的企业应用架构和企业IT基础架构,它可以使企业或单位实现跨应用,跨部门,跨企业甚至跨行业之间的离散系统实现互连。(注意:这里所指的服务并不单单是Web Service,它可以是以Web Ser? vice实现,也可以以业务方式实现,甚至是书面口头承诺实现)。而狭义的SOA是指一种软件架构,它可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署、组合和使用。

1.2 WCF技术要素

WCF(Windows Communication Foundation)是微软的SOA技术的实现载体,WCF以服务的观念实现企业应用架构。它是开发和部署在Windows环境中运行的服务的开发工具和环境。WCF提供了服务运行时环境,允许服务传递CLR类型、与其他服务和客户端进行通信以及跨平台的互操作性的特性。WCF统一了分布式通信的编程模型。WCF由一个WCF服务端框架由宿主、端点以及服务类三部分组成。[1]

WCF的技术要素包括:地址、绑定、契约、端点、宿主。

地址提供了两个重要的元素:服务的位置和用于服务通讯的传输协议,支持HTTP、TCP、端对端网络、IPC、MSMQ。

绑定仅仅是对于相协调的传输协议、消息编码、通讯模式、可靠性、安全性、事务传播和互操作性的预封装[2]。

契约是一种描述服务所实现功能独立于平台的标准的手段。

端点是地址、契约和绑定的结合,并由服务发布该端点。

宿主指的是WCF服务所寄宿的进程。WCF服务不能独立存在,必须寄宿在运行的进程中,该进程被称为宿主。宿主可以由IIS或Windows活动服务(WAS)或由开发人员开发应用程序的一部分来提供。

1.3 WCF技术特点

WCF是Microsoft为构建面向服务的应用提供的分布式通信编程框架,在WCF框架下,微软将所有与它之前的分布式体系相关的技术要素都包含在内,同时,WCF继承了SOA的体系结构,所以使用WCF体系架构可以很好地解决异构系统的集成问题,可以最大程度地减少系统间的藕合,提高可重用性,从而能够迅速便捷地构建开放的、模块化的、可重用的系统,并便捷地共享系统之间的数据。WCF有以下技术特点:

1)结构松耦合

松耦合是SOA的一个基本的特征,服务的创建对于外界而言是不透明的,因此WCF服务通常通过公开元数据(Metadata)的方式描述可用的功能以及服务可能采用的通信方式。调用WCF服务,客户端只须了解WCF服务描述,而无须知道具体的细节,体现了了其结构的松耦合。

2)通信模型

WCF的基本通信机制是基于SOAP的Web服务,因而支持WS*标准。客户端通过发送和接收消息与服务进行交互。WCF不允许客户端直接与服务交互,客户端总是使用代理(Proxy)将调用转发给服务。

3)编程模型

WCF所有的交互是经由代理实现的,所以对于本地和远程情况下,WCF都保持相同的编程模型,这样不仅能够使位置切换而不影响客户端,而且显著地简化了应用程序编程模型。所有的WCF服务均以合同的方式公布,合同是描述服务功能的标准方式且与平台无关。

1.4工作流引擎WF

在软件行业飞速发展的今天,工作流已经渐渐占据了软件领域的一席之地,由工作流管理联盟提出的工作流参考模型[3]作为主流标准指引着工作流产品的开发。微软依照该参考模型开发出工作流开发平台WF(Windows Workflow Foundation),WF对于工作流开发是相当有意义的,工作流系统的健壮性与灵活性将给企业和单位的运行带来强力支撑。

WCF中提供给我们对微软工作流引擎WF的支持,直接使用WCF中的顺序工作流服务类库、状态工作流服务类库可以较方便地实现简单服务的组合与编排而不需要太多额外的编码。

1.4.1 WF组成

WF是微软.Net Framework 3.5的一个重要组成部分,它提供了一个通用的框架,用于快速搭建工作流应用。WF主要由以下几个部分组成:

1)活动模型(Activity Model)

2)工作流设计器(Workflow Designer)

3)工作流运行时(Workflow Runtime)

4)规则引擎(Rules Engine)

1.4.2 WF支持的工作流模型[4]

1)顺序工作流模型

顺序工作流的执行的过程是一个连续的步骤序列,它支持分支和循环、也支持接收外部事件,但它严格按照预定序列顺序依次向前执行,因此顺序工作流是可预料的,相对死板缺少灵活性。顺序工作流模型是比较传统的流程,带有明显的时序性,它适用于大多数结构化的工作流应用。

2)状态机工作流模型

与顺序工作流模型不同,状态机工作流模型则依赖外部事件来驱动执行。状态机工作流也称事件驱动工作流。状态机中包含一系列状态(包括初始和结束状态)和事件。状态机流程总是停在一个预设的状态中,直到有事件触发之后才会跳转到新的状态上,非常灵活,带有事务特征,状态机工作流是专门为事件驱动的工作场景设计的,适合于非结构化的面向人或角色的工作流场景。

1.4.3活动[4]

活动(Activities)是组成工作流的基本元素。WF的基本活动库包含了一些通用的工作流活动,功能涉及流程控制事务管理、本地通信、Web服务等。通过使用排列这些基本活动,可以构建一般的工作流业务。虽然WF提供了丰富的通用活动,但面对复杂的应用还是远远不够的,因此WF提供了对自定义活动的支持。开发人员可以利用WF可以很方便地设计执行特殊任务的自定义活动。

1.4.4 WF持久化

WF提供了内置的持久化服务 SqlWorkflowPersistenceService,它以一种松散藕合的方式工作,可以加载到工作流运行时,方便地将工作流持久化在SQLServer数据库中。

1.5 WCF三层体系结构

在SOA的层面,WCF技术用于构建三层服务体系构架[5]。该文采用基于WCF的系统分层架构,各个层次面向系统中的不同层面,以减少层面间的耦合度。本系统分为三层:分别为WCF服务提供层、WCF服务总路线层和WCF服务使用层。如图2所示:

图2基于WCF的三层体系结构

WCF服务提供层:本层部署了系统所需的原子服务,这些服务完成系统的原子功能,对外界透明,采用松散耦合的方式进行封装。对用户来说,只需了解服务提供的统一接口,而无需知道服务所用的具体技术细节。

WCF服务总线层:本层是三层体系结构中的核心层,起到承上启下的作用——向下调用服务提供层提供的服务,向上接收服务使用者提出的服务请求。同时,本层还承担着对原子服务进行重新组合和编排的任务,在这能产生功粒度更大、功能更丰富的新服务供使用层调用。这部分功能可以由工作流程服务由WF完成工作流的定义与服务的编排工作,并以粗粒度服务的形式由WCF发布于网络上供用户无差别调用。

WCF服务使用层:WCF服务使用层是用户与服务交互的桥梁。使用层必须通过代理(Proxy)来访问服务端点,从而调用服务。WCF服务使用层突破了技术与平台的局限性,只要遵循服务接口契约,就可以运行在异构平台下或采用不同的技术与WCF服务进行交互。当业务逻辑发生变化但WCF服务接口层的服务契约不变时,服务使用层无需做出任何修改[6],这样方便了系统的维护。

WCF+WF这种编程模式构成了微软的SOA分布式程序开发的一种解决方案。WF开发人员可以按照用户的需求进行服务组合、设计工作流,再将整个工作流以粗粒度服务的形式再向外发布,以实现用户灵活多变的业务需求。

2国土使用权出让网上交易系统模型

2.1项目背景

传统的现场招拍挂依然存在私下结盟竞买、压低卖价,围标串标、排斥竞争等现象,扰乱了土地市场秩序[7]。为进一步规范国有土地使用权出让行为,降低行政成本,提高办事效率,有效防止国有资产的流失,根据2004年福建省国土资源厅下达的科技项目任务,福建省国土资源厅利用处和信息中心联合开发了国有土地使用权网上挂牌出让系统。但是该项目作为省厅的一个科技项目,投资小,系统在架构上不合理不完善,安全性和可靠性上低,与各地市原有系统无法做到资源共享,业务流程也不能灵活变动。

由于原系统的问题,福建省国土资源厅决定对原有系统进行全面改造。新系统建设的目的是为了减少人为因素对资源配置的干预和不合理控制,杜绝暗箱操作,并且能够达到整合各地自己的系统、共享数据,灵活调整交易流程的目的。

系统以客户端管理软件的形式为各市县(区)挂牌人提供土地交易管理;以客户端竞买软件的形式为身处任何地方的竞买人提供交易竞买报价;以互联网站的形式为社会公众提供公告信息和交易结果公示。

2.2系统需求分析

在软件方面,土地使用权网上挂牌交易作为软件主题服务,根据挂牌交易各个阶段工作的过程与作用,分为四个部分——准备阶段、挂牌竞价、统计分析与系统管理。整个系统是围绕着这个四个部分展开。

网上拍卖分为两个阶段,第一个阶段是在挂牌之后竞买人可在服务网上进行报价。第二个阶段是在挂牌时间离截至时间仅剩1个小时后,网上挂牌报价就转为竞买软件的网上交易大厅竞拍阶段。网上交易大厅是网上竞拍的关键系统,竞拍作为网上交易的最激烈的阶段,是交易的最重要的组成部分。

2.3系统结构设计

根据业务需求,将系统划分为三个功能子系统:交易网站服务子系统、交易应用服务子系统、网上竞拍服务子系统组成。系统整体框架如图3所示。

整个系统通过三个子系统功能实现:公众用户通过Web浏览器访问公众网站,竞买人通过Web浏览器申请竞买资格,竞买人通过竞买软件进行网上竞买交易活动、挂牌人通过管理软件客户端访问交易处理子系统进行网上竞买管理和监控活动。

2.4竞买服务设计

在该系统中,竞买服务模块是全系统的核心部分,由于竞买规则与流程的多样性和可变性,本人考虑采用微软WCF技术与WF技术实现,WCF用于发布服务、进行通信,WF将拍卖流程进行编排,并以WCF服务的方式进行对外发布。

交易进行时的主线状态有五种:非交易(交易时间未到)、挂牌阶段、拍卖等待阶段、大厅拍卖阶段以及交易结束阶段。

2.4.1主工作流设计

由于竞拍过程是一个事件驱动的流程,因此本系统更适合采用状态机工作流的方式进行设计。交易过程的主要状态以及扩展状态成为系统流程的状态点,通过触发事件、响应事件进行状态转移,实现交易流程。

交易的过程是一个多状态的过程,因此主工作流以状态机工作流的模型进行建模,在编辑器中设计了以下的主状态机模型。主工作流状态机模型如图4所示:

图4网上拍卖流程状态机模型

交易包括了7种主要状态,状态之间通过事件进行转化。各状态为WF的状态机Activity,各个Activity表示交易流程中的一种主要状态。

2.4.2部署服务

工作流设计完成后将其发布为WCF服务,需要一个宿主程序,本项目选择宿主为IIS6.0。在工作流项目里,添加web.config文件进行如下配置:

在该配置文件定义了Host地址、自定义消息绑定方式、消息传输安全设置(https)、Endpoint端口设置以及行为配置,指定了源数据的获取方式。

客户端程序直接通过服务地址Endpoint所描述的方法调用服务,图5为竞拍客户端竞拍现场界面。

3小结

该文以国有土地使用权出让网上交易系统为背景,对于微软的SOA解决方案进行了探索,讨论并实现了了基于微软WCF技术与WF技术在该类型系统上的设计与架构的设计研究与实际应用。

参考文献:

[1]程汤培.基于WCF的即使通信软件与实现[J].电脑编程技巧与维护,2008(4).

[2] Michle Leroux Bustamante.学习WCF[M].南京:东南大学出版社,2007.

[3] David Hollingsworth.WFMG一工作流参考模型[S].张敬波,韩伟,译.工作流管理联盟规范.1995.

[4]杨利国.基于WF工作流技术研究及应用[D].武汉:武汉理工大学,2008.

[5]王平,张晓,马晶.基于WCF的教学管理信息系统集成研究与实现[J].软件导刊,2010(9).

[6] David Chappell.Intruducing Windows Communication Foundation[M].Microsoft Publishing,INC,2005.

[7]沈月华.浅谈土地网上挂牌交易[J].现代商业,2007(23).