基于 WCF 的即时通讯软件的设计与实现
摘要: 介绍了 Microsoft 用于构建分布式面向服务架构系统的新一代框架 WCF 的体系结构
与技术要素,并通过开发一套即时通信软件展现了基于 WCF 构架开发分布式应用程序的编
程步骤与技巧。
关键词:WCF;SOA;分布式;即时通信
一、前言
自从在微软提出.NET 战略以来,就针对建立企业级的分布式应用先后推出了一系列产
品和技术,包括:ASP.NET Web 服务、.NET Remoting、Message Queuing 以及 Enterprise
Service 等。这些技术为基于微软技术的软件研发人员开发分布式应用提供了很大的便利,
同时也各自存在着一些不足。WCF(Windows Communication Foundation)作为微软基于
SOA 所推出的.NET 平台下的新一代框架产品集成了现有技术的优点,代表了未来软件架构
设计与开发的发展方向。因此,掌握并能在未来应用中合理运用 WCF 技术,对于程序员特
别是基于微软技术开发的程序员而言是十分必要的。基于此,文章通过介绍一套即时通信软
件的具体开发过程来展现基于 WCF 技术的分布式软件研发的基本步骤与高级技巧。
二、WCF 概述
对于一个好的分布式系统来讲,设计时应当考虑到异构性、开放性、安全性、可扩展性、
故障处理、并发性以及透明性等问题。基于 SOAP 的 Web Service 可以实现异构环境的互操
作性,保证了跨平台的通信。利用 WSE(Web Service Enhancements)可以为 ASMX 提供安
全性的保证。.NET Remoting 具有丰富的扩展功能,可以创建定制的信道、格式化器和代理
程序。Enterprise Service(COM+)提供了对事务的支持,其中还包括分布式事务,可实现
故障的恢复。MSMQ 可以支持异步调用、脱机连接、断点连接等功能,利用消息队列支持
应用程序之间的消息传递。从功能角度来看,WCF 整合了 ASMX、.Net Remoting、Enterprise
Service、WSE 以及 MSMQ 等现有技术的优点,它提供了一种构建安全可靠的分布式面向服
务系统的统一的框架模型,使软件研发人员在开发分布式应用时变得更加轻松。
1. 面向服务
既然 WCF 是一套面向服务的框架,服务自然便是 WCF 中最为重要的概念。服务是指
暴露在外的一系列功能的集合,面向服务则是指一套构建“面向服务程序”的抽象原则以及
最优方法。对于业务逻辑的理解,传统的编程方式认为应将业务逻辑封装为对象,该对象提
供了与业务相关的一些功能;而基于 WCF 的程序设计却更多的是考虑如何提供服务以及消
费服务。与面向组件服务程序类似,基于 SOA 的应用程序将服务封装到了单个逻辑程序当
中,如图 1 所示。
图 1 封装服务的 SOA 应用程序逻辑图
2. WCF 体系结构
WCF 拥有一个非常灵活的分层体系结构,分布式应用程序可以使用高级 API 或者低级
API 编写。高级 API 或者服务层可以用于调用方法和事件。服务层把这些高级的抽象代码转
换为消息,以使用低级 API 上的信道和端口。图 2 中显示了 WCF 应用程序的各个层。
评论0