|
发表于 2004-11-14 14:57:07
|
显示全部楼层
zhoumm981 在 2004-9-23 00:00 发表:
我想知道的问题是:
1。客户端和服务器的通讯方式和协议?
2。系统化分为几个模块?分别完成什么功能?
3。如何判断客户发回的结果的正确性?
4。当分配一个任务给某个客户机,是不是设定了一个发回结果的期限?如果到期还得不到结果就将这个任务重新分配?(我是想这么设计的)
分布式计算的两个主体是Server和许多的Client。中枢计算机——Server产生发送给工作站端的工作数据包,工作站端则根据工作数据包里的数据逐一进行计算,待计算结束后,结果数据包将回传给Server。
当前受欢迎的则是三层架构的模型,把Server的任务分成两层,一层产生工作数据包,另一层充当代理,负责和客户端的联系这是一个简单的能够处理负载量和具备错误保护功能的方法。
基于这种模型的Server必须要能够知道潜在客户端的存在,当每一个工作站开始运行时,Server都需要另一个信息以增加工作数据包的发送量并进一步完善工作数据包,因此每台Client开始工作时将会发送一个需要工作数据包的请求,Server收到这个请求后发送一个工作数据包到Client,随后客户端的软件开始计算。
Server与Client是如何交流的
要与工作站建立联系并交换数据,服务器产生的所有信息都需要被广播出去。Internet是无处不在的,而电子邮件和超文本传输协议等公用的传送机制都是可供选择的通信资源,至于如何选择取决于我们的分布式运算是以那种方式进行的。
工作站端干什么?
分布式计算提出了一个让工作站端能够在后台持许工作的方法,而用户完全不需关心任何东西。这种实现基于两个原则,其一是任务连续分配和空闲优先权,其二是写一个屏幕保护程序。现在的调度程序已经不错了,而空闲优先任务将在人们完全不用关心任何东西的情况下自动执行。利用屏幕保护程序可以利用计算机闲置的时间计算工作任务。
如何产生工作数据包?
工作数据包的产生依赖于工作站端的询问工作。在Distributed.net的例子中,这非常简单。从0~264的关键字区域被划分为大小为228的快。当一个工作站端请求一个工作包时,传给它一套10个数据快。这种处理非常简单——当工作端在执行时不能请求新的工作包,它会自发的选择一个数据块来进行计算。为什么要划分为228大小的数据块呢?228是一个比较适当的大小,包含232个关键字的数据块显得太大了,而包含224个关键字的数据块却又过快。 |
|