欢迎来到天天文库
浏览记录
ID:28171482
大小:75.50 KB
页数:6页
时间:2018-12-08
《基于wcf技术的分布式任务处理框架的设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、于WCF技术的分布式任务处理框架的设计随着软件设计思想的发展,基于妞向服务思想进行程序设计是0前的主流思想。本文主要介绍了一种基于微软WCF技术设计的分布式任务处理的系统框架。【关键词】WCF分布式从软件性能和扩展性角度考虑,传统的只能运行在单台机器上的客户端程序,由于受制于单台机器资源和单个程序进程所能使用的系统资源的限制,无法满足多任务处理的需要。基于面向服务思想设计的应用程序(SOA)由于其良好的扩展性,目前是业界流行的一种程序架构。为了实现这种架构,选择一种能很好实现客户端与服务之间通信的技术,是最为关键的。1WCF简介WCF全称为WindowsCom
2、municationFoundation。是微软公司推出的一个完全基于SOA的通信框架。在过去若干年中,微软先后推出了一系列分布式通信技术,比较典型的包括COM/DCOM、.NETRemoting、XMLWeb服务、MSMQ(消息队列)等,这些技术各有优劣,目前也都被开发人员选择并使用。而WCF就是各种分布式技术的集大成者,它将微软之前提供的各种分布式通信技术完全整合在一起,提供了一套统一的API。1.1WCF的优点(1)它是可互操作的;(2)WCF服务的提供增强的可靠性和安全性;(3)WCF具有内置在记录机制,而在其他技术中,必须做必要的编码;(4)WCF集
3、成AJAX和支持JSON(JavaScript对象表示法);(5)提供可扩展性可支持出新的Web服务标准;(6)具有极其强大的默认安全机制。2框架的设计2.1设计原则1.1.1扩展性扩展性包括两方面:(1)单个服务的性能扩展部署这里主耍是指对于多任务处理的时候,如果单个处理进程的性能已经无法满足实时处理的需要时,需要能够通过增加处理进程或者增加服务器的方式,快速部署服务,而新部署的服务,不需要修改代码,只需要进行简单的配置,就可以与之前的服务一样,对任务进行处理。(2)増加新的服务类型这里主耍是指,当系统需耍增加新的任务类型的时候,不需要去修改原有服务的代码,
4、只需要开发新的服务程序并部署,就可以??现对新类型任务的处理。2.1.2稳定性为了确保程序的稳定性,最好的方法就是让一个程序专注只做一件事情,这样就可以避免因为一个程序因为要执行很多类操作,而造成代码逻辑混乱,降低了稳定性。2.1.3容错性当程序出现异常时,程序本身的设计必须有一定的容错性,如:程序自检、重启等,都是提高容错性的设计思路。基于以上的设计原则,对于分布式任务处理的框架设计如下:图1中的除了客户端程序之外的方框显示的就是一个完整的分布式任务处理的框架图。2.2框架组成和各个部分的功能中心服务一一整个框架的核心部件,对外提供各种服务接口,对内实现对数
5、据库的访问操作以及对各个任务处理服务的管理。任务服务一一任务服务与中心服务之间,通过WCF框架实现通信,任务服务可以根据自身配置的任务类别,通过屮心服务,从数裾库屮取出需要处理的任务。在整个框架中,任务服务可以有多个,多个任务服务可以通过配置,实现对同一类任务的处理,也可以实现对不同类任务的处理。任务处理进程一一任务处理进程类似于一个独立的处理程序,是任务服务在取得待处理的任务之后,启动并进行管理的。对任务的具体处理都是由任务处理进程来完成的。同时,任务处理进程具有对数裾库进行访问的功能。在整个框架中,如果硬件资源足够大的话,理论上每一个任务服务可以启动并管理
6、无限个任务处理进程。数据库一一用来存储系统数据的部件。2.3整个框架的运行流程在分布式任务处理的框架下,一个比较完整的运行流程如图2所示。流程说明:(1)用户捉交任务处理请求至中心服务;(2)中心服务将任务处理请求数据存入数据库;(3)任务服务判断任务处理进程是否己达最人值,若己达最大值,则等待一段时间后,再次进行判断,直至任务处理进程数未达最大值,则进入第(4)步;(4)任务服务通过屮心服务,从数据库屮获取任务数据;(5)任务服务启动一个新的任务处理进程进行任务处理;(6)任务处理进程根据预先设定的程序,对任务进行处理;(7)任务处理完毕,任务处理进程更新数
7、据库;(8)任务处理进程将任务处理结果通知任务服务。2.4框架的优点这套分布式任务处理框架己经应用在实际的系统中,目前运行非常稳定。与传统的单机软件架构相比,这套框架具有以下优点:开发实现比较简单基于微软提供的WCF框架的统一接口,整个框架的实现过程比较简单。扩展性好每个任务服务都是可以独立部署的,每个任务服务的最大任务处理进程都是可配置的,因此无论是开发新的类别的任务服务,还是通过增加服务器的方式扩大原有服务的处理能力,都是非常简单的事情。稳定性和容错性好整个框架的各个服务模块都是独立运行的子程序,不会存在因为某个服务出问题,而导致整个框架瘫痪,只需要重启出
8、问题的服务即可。3小结基于面向服务思想
此文档下载收益归作者所有