DCFramework 动态分布式计算框架(01)-- 基础结构

      DCFramwork框架主要由四个核心的dll构成:DCFramework.dllDCFramework.Master.dllDCFramework.Worker.dllDCFramework.Client.dll

      从图中我们看到,另外三个dll都依赖于最基础的DCFramework.dll,这个三个dll除了依赖DCFramework.dll外,相互之间没有任何依赖关系。

DCFramework.dll提供了DCF框架需要用到的基础和公共的类型定义,比如分布式任务DCTask,分布式计算节点WorkerNode,以及DC Master发布给Client使用的服务接口IDCService和发布给分布式计算节点使用的动态注册/注销服务接口IWorkerRegistryService,另外还有DC WorkerDC Master回调的接口IWorkerService。这些类型的定义如下图所示:

 

DCFramework.Master.dllDC Master Node使用的核心程序集,其中包含三个主要的类:DCMaster类用于管理所有注册的DC Woker Node,并负责分发分布式任务到某个DC Woker Node上;DCServiceDC Master Node发布给Client使用的服务;而WorkerRegistryServiceDC Master Node发布给DC Woker Node使用的服务。其类图如下:

 

DCFramework.Worker.dllDC Worker Node使用的核心程序集,其中主要的类型定义有:DCAppDomain用于封装AppDomain,使分布式计算任务可以再一个独立的AppDomain中运行;DCJobWorker是真正执行分布式计算任务的"工作者",它可以在目标DCAppDomain或临时创建的DCAppDomain中执行任务。DCAppDomainManager用于管理所有非临时的DCAppDomain对象,并负责分布式任务的分派调用。关于临时与非临时的DCAppDomain对象,会在后续文章中详细介绍。

 

DCFramework.Client.dll是给客户使用的程序集,客户借助DCFramework.Client.dll可以非常方便的使用已经部署好的DCF框架实例来执行自己的分布式任务。DCFramework.Client.dll中最核心的类是DCJobDispatcher,正如前文介绍的,DCJobDispatcher 会自动Remoting连接到DC Master Node,并将分布式计算任务封装为一个DCTask,然后将DCTask提交给DC Master。这一切都是DCJobDispatcher在后台自动帮你完成的,你所需要做的只是提交任务,然后等待返回结果,如此而已。其类图如下所示: 

本文只是对DCFramework基本结构进行了简单介绍,DCFramework的实现比上述的描述要复杂许多,在后续的文章中,我们会详细地深入到每一个部分去。

最后给出一个使用DCFramework的完整Demo的源码,包括MasterWorkerClient。你可以先运行起来看看动态分布式计算的效果,我会在下一篇文章中对这个Demo的做详细的解释。

欢迎讨论,谢谢。

转到:DCFramework 动态分布式计算框架(00)-- 序 

 

 

posted @ 2009-05-28 18:05  zhuweisky  阅读(3235)  评论(7编辑  收藏  举报