首页 > 范文大全 > 正文

基于WCF的信息系统结构模型与体系架构的研究与设计

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于WCF的信息系统结构模型与体系架构的研究与设计范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:该文在分析和研究了WCF原理特性的基础上结合作者多年的ERP系统架构与实现经验,提出了一种基于wcf的分布式的信息系统的结构模型(B/S/S与C/S/S模型结构),并基于此模型结构设计了一种多层的分布式软件体系架构,该结构模型与体系架构有着更好的灵活性、安全性、可扩展性,并且该架构模型和体系架构支持多种网络终端设备。

关键词:WCF;结构模型;体系架构;信息系统;B/US/S;C/S/S

中图分类号:TP393.0文献标识码:文章编号:

1 研究背景

全球化竞争愈演愈烈,企业面临的是全球化的市场,全球化的客户,全球化的运作,为了应对这些复杂多变的挑战,企业必须不断提升自身信息系统的敏捷性和适应性。为了解决不同平台、语言、协议等的差异,SOA(Service Oriented Architecture,面向服务架构)应运而生。为了支持SOA,微软推出了WCF(Windows Communication Foundation )Windows通信基础框架,将微软所支持的分布式技术整合到一起,解决了不同网络和应用环境下的数据和操作的共享以及异构系统间的跨平台访问与操作等问题[1]。

另外,随着Internet和Intranet应用的不断普及,应用系统尤其是以ERP(企业资源计划)系统为代表的信息系统的不断扩大以及系统用户数量的几何倍数增长,现有信息系统B/S或C/S的模型结构和体系架构存在很多弊端,表现在事务规格处理层位置不明确、安全性受到威胁、能连接的客户端数目有限、可扩展性较差等。

因此,本文将在研究WCF的技术的基础上设计出一种可靠的信息系统的结构模型和体系架构。

2 WCF相关技术研究

2.1 WCF

目前,基于Web Service的分布式信息系统已经能较好地解决跨平台和异构空间数据的互操作问题,被普遍认为是下一代分布式系统开发的模型。但是这个框架在通讯安全和性能等方面存在难以解决的问题。后来出现的WSE弥补了安全性的不足,但是这个框架还未被广泛推广,客户端开发人员开发有难度。.NET Remoting技术解决了性能的问题,但是它不可以实现跨平台的操作,这样其实用性有限。MSMQ支持消息队列,但需要整合在其他系统中,传统的Enterprise Service支持分布式事务,但是又不可以跨平台。WCF整合了Web Service、WSE、.NET Remoting、Enterprise Service(COM+)等技术的优点[2],是分布式应用程序开发技术的集成者,解决了上面提出的一系列问题。它并非是各种技术的简单的并集,是真正的面向服务的产品。

WCF是基于SOA推出的.Net平台下的新产品。根据微软官方的解释,WCF是使用托管代码建立和运行面向服务应用程序的统一框架。它使得开发者能够建立一个跨平台的安全、可信赖、事务性的解决方案,且能与已有系统兼容协作[3]。

2.2 WCF的体系架构

WCF提供了对可靠性、事务性、并发管理、安全性以及实例激活等技术的有力支持,它们均依赖于基于拦截机制的WCF体系框架。

在客户端,将序列化后的消息通过通道链向下传,每个通道相当于一个拦截器,通道将其拦截后执行特定的任务。最后消息通过一个传输通道,根据配置的传输方式发送给宿主(负责公开终结点)。

在宿主端,消息先通过传输通道接收,再通过一系列通道,执行不同的任务,如消息正文的解密、消息的解码、设置安全准则、管理会话、激活服务实例。宿主端的最后一个通道负责将消息传递给分发器。分发器将消息转换到一个栈帧,并调用服务实例。服务实例执行调用,然后将控制权返回给分发器。分发器将返回值或者错误信息转换为一条返回消息。执行过程与接收消息时的处理刚好相反,如管理事物、停用实例、回复消息的编码和加密等。执行过程如图1所示[4]:

3 基于WCF的信息系统的结构模型设计

在研究了大多数诸如ERP等信息系统的结构模型的基础上,结合WCF的技术优势,本文提出了下面一种信息系统的结构模型,如图2所示:

从分布式应用的角度来说,这种结构模型将信息系统分为三个层次:

1) 服务器。服务器是服务的最终提供者,它采用了WCF服务。

根据信息系统的需求创建一系列的WCF服务之后,若要公开WCF服务也就是让服务的消费者能够请求服务,则服务器需要提供一个运行服务的宿主环境,就像.NET CLR需要创建宿主环境以托管代码一样,WCF的宿主环境同样运行在进程的应用程序域中。一个包含成千上万WCF服务的服务器可以只有一个宿主,但也可以根据需要或者分类创建几个宿主,每个宿主分管不同类型的服务。宿主是WCF服务提供服务的载体,在本文的第一节已经简单地介绍了WCF服务的服务机制,而客户端(服务的消费者)需要请求服务器提供的WCF服务,则它需要知道服务的终结点。服务的载体―宿主会公布它能提供的所有服务的终结点,它包含服务的Address、Binding和Contract。Address(地址):WCF的每个服务都有一个唯一的地址,包括目标机器名、站点或网络、通信端口、管道或队列,以及一个可选的特定路径或者URI。同一个服务上的所有终结点都具有相同的地址。Binding(绑定):它定义了服务端与客户端交互的底层细节,包括数据如何传输(如采用的TCP,HTTP协议等),如何解决安全问题(如SSL, Message Level Security等),传输的消息的格式(如Text/Xml, binary等)。Contract(契约):WCF的所有服务都公开为契约。契约与平台无关,是描述服务功能的标准方式,它是事先制定好的应用程序之间交换数据的规则[4]。

2) 中间服务器。服务的直接消费者。

由于采用最终客户端直接使用服务器提供服务的B/S或C/S结构模型存在很多弊端,故本次研究将采用B/S/S(浏览器/中间服务器/服务器)和C/S/S(客户端/中间服务器/服务器)的结构。中间服务器包含“WEB服务器”和“其他中间服务器”等。“Web服务器”和“Web客户端”之间采用B/S结构,他们之间的通讯协议将以传统的http、https为主,这就是B/S/S 的结构模型。“其他中间服务器”和客户端之间采用C/S结构,他们之间的通讯协议以TCP/IP、MSMQ消息队列等为主,这就是C/S/S 的结构模型。

3) 客户端。客户端是服务的最终消费者。

该模型的三个层次中客户端与服务器的概念并不是一成不变的,它们在一定的环境和业务情境下是相互转化的。首先,“Web服务器”和“其他中间服务器”对于最终的客户端来说,它们是最终客户端的服务器,而对于WCF服务来说,它们又是WCF服务的直接消费者,因此它们相对于提供WCF的宿主来说,它们又是客户端;其次,WCF服务的宿主和“Web服务器”或“其他中间服务器”之间的服务器/客户端的关系也可以是相互的,比如对于某些回调的情形,客户端向服务器(Host)请求某项服务,而服务器端在收到请求后需要回调客户端的另一项服务,这时,服务器与客户端的角色就转化了。

本文研究并设计的这种基于WCF的信息系统结构模型具有简单明了、便于管理和维护等基本优点,还有其独特的优点:

1) 由于采取了不同的中间服务器,使得不同形式与智能级别的客户端能够同时请求服务,高端的桌面服务器与个人计算机可以通过“Web服务器”向提供WCF服务的服务器端请求服务,而低端的诸如Pocket PC、IP Phone、Mobile Phone、PDA(个人数字助理)甚至单片机等嵌入式终端可以通过其它专用的中间服务器请求服务。尤其是第三代通讯技术以及通讯设备的不断完善,我们可以结合先进的第三代通讯技术将信息系统的应用扩展到这些终端设备,将信息系统的应用扩展到真正的移动商务。

2) 便于扩展与二次开发。由于WCF服务跨平台、安全性佳等优点,只要服务的提供者了服务的终结点,服务的消费者就可以请求服务(本次研究暂不考虑WCF服务器与客户端的认证机制),则WCF服务的消费者可以方便地在此基础上进行二次开发。

4 基于WCF的信息系统的体系架构设计

研究设计了上文所述的信息系统的结构模型之后,本文以ERP系统为例深入分析了目前信息系统的设计目标:主要是实现子公司ERP系统之间以及总公司ERP系统与子公司ERP系统之间的协同与协作,实现数据与应用的共享、互操作与信息融合,能够实现企业未来的发展对ERP扩展的应用要求。根据WCF的特性,结合面向对象以及面向服务的设计思想,基于组件的设计能够方便的修改、方便进行二次开发等特性的需要,所以本次研究在目前较为流行的多层架构的设计思想上将信息系统设计成包含WCF服务层在内的更加完善的体系架构,如图3所表示:

这样的分层架构具有逻辑功能更清晰、层间低耦合、层内高内聚、可重用性高等优势,还具有以下优点:

1) 安全性更高。首先中间层隔离了服务的请求者对数据的直接访问,接着由于系统采用WCF服务作为对外的接口,可以使用WCF的安全机制更大地提高系统的安全性。

2) 响应速度更快。通过负载均衡以及中间层缓存数据能力,可以提高客户端的响应速度,这表现在:数据访问层和实体模型层上,实体模型层即使持久层,可以采用Hibernate等持久性框架实现实体模型层和数据访问层。对于大型信息系统来说,可以采用服务器端缓存以及客户端缓存的双缓存机制来提高数据的访问速度。

3) 可维护性更强。当业务逻辑改变时只需要对中间业务逻辑进行维护。

4) 人员分工明确。有利于各种应用开发人员的协同工作,发挥各自的优势。

5) 系统扩展灵活。规模需要增大只需在中间层部署更多的服务器,客户端完全透明。

6) 对异种数据库或数据源的支持性高。

7) 事务与元数据机制。由于系统采用了WCF服务并将WCF服务作为一个独立的功能层来设计,WCF 提供能够在 Web 服务应用程序中创建分布式事务。另外,WCF 服务使用元数据来描述如何与服务的终结点进行交互,以便类似 Svcutil.exe(微软提供的自动生成客户端代码的工具)的工具可以自动生成访问服务的客户端代码[5]。

在简单介绍了本文设计的体系架构的优势后,以下是各层的简单描述:

1) 数据层。数据层就是指数据库,数据库是一切业务逻辑的起点或归宿[6]。

2) 实体模型层。在实体模型层,对数据库中的实体对象进行持久化,封装成一个个实体模型。我们可以将信息系统的实体如员工实体封装为一个个的面向对象的类(Class),并在每个类和数据库对应的表之间建立对象关系映射(O/R Mapping)。

3) 数据访问层。数据访问层根据业务逻辑层的需要,调用数据持久层组件方法,以面向对象的方式完成对象持久化操作封装。本层开发人员不需知道数据库底层结构,甚至不需知道数据库的存在。所有对数据库的操作,都调用了持久层组件。数据访问层和实体模型层应当建立某种缓存机制以便提高系统对数据的访问效率。

4) 基本业务操作层。本层中的类方法与数据访问子层的类基本是对应的。当基础业务逻辑层调用数据访问子层的方法时,必须先验证数据有效性,本层将完成此类工作。

5) WCF服务层。在WCF服务层,可以将每种服务都封装成一个类,实现对业务实体对象的操作,处理不同的用户请求,并每个服务的契约。而所有的服务类都继承于“基础服务类”,因为各种服务都有一些相同的功能,可以封装到一个类中。

6) 在Web服务端或其他中间服务端,通过创建 Web站点或Windows应用程序,为服务的最终用户提供服务,并可以与服务端系统进行交互,完成各种业务处理和数据存取。WEB服务器或其他中间服务端调用WCF服务以满足用户的各种操作请求。

5 总结

本文通过对WCF技术的分析与探讨,结合对目前信息系统的结构模型以及体系架构的研究,提出了一种新的基于WCF的信息系统的结构模型与体系架构,该结构能提高系统的适应性、可扩展性以及安全性等性能,客户还可以根据需要自由进行二次开发。

作者正在按照文中研究和设计的结构模型与体系架构开发一种构建这种体系架构的信息系统的可视化开发平台。当然,随着技术和设计理念的不断进步,这种结构模型与体系架构应该得到不断的完善。

参考文献:

[1] 陈德权,邬群勇,王钦敏.基于WCF的分布式地理信息系统研究[J].测绘信息与工程,2008,33(3):21-23.

[2] 闫冰.基于WCF的分布式应用开发[J].电脑知识与技术,2008(3):68-70.

[3] 黄攀.基于IHELAB-TF的系统信息集成应用研究[D].北京交通大学,2007.

[4] Juval Lowy,著.Clemens Vasters,序.张逸,徐宁,译.WCF服务编程[M].北京:机械工业出版社,2008:16-30,57-58.

[5] 微软技术支持库[EB/OL].(2009-04-10)./zh-cn/library/ms735093.aspx.

[6] 陈龙.IC卡流量表的移动维修系统研究与设计[D].武汉理工大学,2008.