DCFramework 动态分布式计算框架(01)-- 基础结构
DCFramwork框架主要由四个核心的dll构成:DCFramework.dll、DCFramework.Master.dll、DCFramework.Worker.dll、DCFramework.Client.dll。
从图中我们看到,另外三个dll都依赖于最基础的DCFramework.dll,这个三个dll除了依赖DCFramework.dll外,相互之间没有任何依赖关系。
DCFramework.dll提供了DCF框架需要用到的基础和公共的类型定义,比如分布式任务DCTask,分布式计算节点WorkerNode,以及DC Master发布给Client使用的服务接口IDCService和发布给分布式计算节点使用的动态注册/注销服务接口IWorkerRegistryService,另外还有DC Worker给DC Master回调的接口IWorkerService。这些类型的定义如下图所示:
DCFramework.Master.dll是DC Master Node使用的核心程序集,其中包含三个主要的类:DCMaster类用于管理所有注册的DC Woker Node,并负责分发分布式任务到某个DC Woker Node上;DCService是DC Master Node发布给Client使用的服务;而WorkerRegistryService是DC Master Node发布给DC Woker Node使用的服务。其类图如下:
DCFramework.Worker.dll是DC 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的源码,包括Master、Worker、Client。你可以先运行起来看看动态分布式计算的效果,我会在下一篇文章中对这个Demo的做详细的解释。
欢迎讨论,谢谢。
转到:DCFramework 动态分布式计算框架(00)-- 序