欢迎来到天天文库
浏览记录
ID:17824257
大小:241.50 KB
页数:34页
时间:2018-09-06
《基于wcf的即时通讯软件的设计与实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、基于WCF的即时通讯软件的设计与实现摘要:介绍了Microsoft用于构建分布式面向服务架构系统的新一代框架WCF的体系结构与技术要素,并通过开发一套即时通信软件展现了基于WCF构架开发分布式应用程序的编程步骤与技巧。关键词:WCF;SOA;分布式;即时通信一、前言自从在微软提出.NET战略以来,就针对建立企业级的分布式应用先后推出了一系列产品和技术,包括:ASP.NETWeb服务、.NETRemoting、MessageQueuing以及EnterpriseService等。这些技术为基于微软技术的软件研发人员开发分布式应用提供了很大的便利,同时也各自存在着一些不足。WCF(Win
2、dowsCommunicationFoundation)作为微软基于SOA所推出的.NET平台下的新一代框架产品集成了现有技术的优点,代表了未来软件架构设计与开发的发展方向。因此,掌握并能在未来应用中合理运用WCF技术,对于程序员特别是基于微软技术开发的程序员而言是十分必要的。基于此,文章通过介绍一套即时通信软件的具体开发过程来展现基于WCF技术的分布式软件研发的基本步骤与高级技巧。二、WCF概述对于一个好的分布式系统来讲,设计时应当考虑到异构性、开放性、安全性、可扩展性、故障处理、并发性以及透明性等问题。基于SOAP的WebService可以实现异构环境的互操作性,保证了跨平台的通
3、信。利用WSE(WebServiceEnhancements)可以为ASMX提供安全性的保证。.NETRemoting具有丰富的扩展功能,可以创建定制的信道、格式化器和代理程序。EnterpriseService(COM+)提供了对事务的支持,其中还包括分布式事务,可实现故障的恢复。MSMQ可以支持异步调用、脱机连接、断点连接等功能,利用消息队列支持应用程序之间的消息传递。从功能角度来看,WCF整合了ASMX、.NetRemoting、EnterpriseService、WSE以及MSMQ等现有技术的优点,它提供了一种构建安全可靠的分布式面向服务系统的统一的框架模型,使软件研发人员在
4、开发分布式应用时变得更加轻松。1.面向服务既然WCF是一套面向服务的框架,服务自然便是WCF中最为重要的概念。服务是指暴露在外的一系列功能的集合,面向服务则是指一套构建“面向服务程序”的抽象原则以及最优方法。对于业务逻辑的理解,传统的编程方式认为应将业务逻辑封装为对象,该对象提供了与业务相关的一些功能;而基于WCF的程序设计却更多的是考虑如何提供服务以及消费服务。与面向组件服务程序类似,基于SOA的应用程序将服务封装到了单个逻辑程序当中,如图1所示。图1封装服务的SOA应用程序逻辑图2.WCF体系结构WCF拥有一个非常灵活的分层体系结构,分布式应用程序可以使用高级API或者低级API
5、编写。高级API或者服务层可以用于调用方法和事件。服务层把这些高级的抽象代码转换为消息,以使用低级API上的信道和端口。图2中显示了WCF应用程序的各个层。图2WCF体系结构图WCF提供了对可靠性、事务性、并发管理、安全性以及实例激活等技术的有力支持,而这些支持均依赖于如图3所示的WCF构架。在客户端,分布式应用通过一个代理来转发对宿主端所提供服务的调用,而代理拥有和服务相同的操作接口,另外还有一些附加的代理管理方法。这也就意味着客户端从来不会直接调用服务,即便这个服务就在本机的内存中。当客户端代理接收到来自客户端的调用请求后,它将消息通过信道链向下传递。每个信道都会执行相应的消息的
6、调用前处理,例如对消息的编码、提供可靠的会话、对消息进行加密等。客户端的最后一个信道则是传输信道,根据配置的传输方式发送消息给宿主。在宿主端,消息同样通过信道链进行传输。与客户端信道相对应,宿主端信道也会对消息执行相应的宿主端的调用前处理,例如对消息的解码、提供会话管理、对消息进行解密等。宿主端的最后一个信道则负责将消息发送给消息分发器(Dispatcher),由分发器负责调用服务的实例。图3WCF构架示意图3.WCF的基本技术要素作为基于SOA的一个框架产品,WCF实际上是构建了一个在互联系统中实现各个应用程序之间通信的分布式框架。它使得系统构架师与开发人员在构建分布式系统时,能将
7、更多的精力投入到与系统的业务逻辑本身的设计上来,而无需过多的考虑底层通信的实现及相关问题。WCF最核心的部分是能够快捷的创建一个服务,一个WCF服务端框架由宿主、端点以及服务类三部分所组成,如图4所示。图4WCF服务框架宿主(Host),即承载WCFService运行的环境。可用的宿主环境包括:(1)自承载方式:在控制台应用程序与基于WinForm的应用程序中都可以使用这种方式;(2)系统服务方式:服务可以随着操作系统的启动而自动启动;(3)IIS方式:与
此文档下载收益归作者所有