首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > .NET > C#.NET > 基于.NET无接触式部署的拾遗网格计算实现——设想的起源
【标  题】:基于.NET无接触式部署的拾遗网格计算实现——设想的起源
【关键字】:.NET
【来  源】:http://blog.joycode.com/fogshadow/archive/2004/05/17/21748.aspx

基于.NET无接触式部署的拾遗网格计算实现——设想的起源

    之前发了一篇同主题的文章,引起了很多讨论。这里便再把我的一些想法贴出来,希望对大家有帮助,也希望大家多提意见,交流才有进步:)

一.什么是无接触式部署?
假如需要用一句话来概括无接触式部署,我的描述是:在保证代码安全的前提下,组件化的程序在需要时被自动下载并运行,同时保证运行的是最新的版本,而无需将整个程序都安装在本地机器上。
计算机的部署概念一直以来经历了三个阶段的演变:瘦客户端——胖客户端——瘦客户端。
在计算机的运算能力尚处于很初级的阶段时,程序一般部署在性能较好的主机上,而每个客户端只是充当一个显示终端的作用。这是最原始的瘦客户端。
随着技术的进步,计算机的运算能力得到迅速提升,单台计算机已经能够进行非常复杂的运算,而程序的部署也渐渐转移到每一台客户端上。我们平时所使用的各类软件,ACDSEE、PhotoShop等等都是这样的部署方式。这种方式可以很好地利用到客户端的计算能力并进行复杂的计算,同时提供很丰富的用户界面,但是不足之处在于部署比较麻烦。
网络技术的进步,促使Internet飞速发展。互联网上网页形式的Web Application百花齐放。这种形式的程序都是部署在服务器端,计算任务大多也由服务器来承担,客户端只负责显示和执行很少的计算。这种是瘦客户端的部署策略。但是,这种方式的缺点是没有有效地利用到客户端的计算资源,同时难以编写丰富的用户界面。
而无接触式部署是第2、3种部署方式的结合体,它将计算任务放到了客户端,可以执行复杂的计算并提供给用户更多的服务,假如是编写Windows应用程序,或者是继承自System.Form.Control的网页组件,都可以提供很丰富的用户界面。
以下是无接触式部署的工作模型:

二.什么是拾遗网格(Scavenging Grid)
以下是IBM《Developworks》中对网格分类的描述:
•计算网格
计算网格着重于专门留出用于计算能力的资源。在这类网格中,大多数机器都是高性能的服务器。
•拾遗网格(Scavenging grid)
拾遗网格最常用于大量桌面系统。机器上可用的 CPU 周期和其它资源被收集起来。通常授予桌面系统主人控制其资源何时可以加入网格的权利。
•数据网格
数据网格负责容纳和提供对跨多个组织的数据的访问。用户只要有权访问数据,就不必关心数据位于哪里。例如,可能有两所大学都正在从事生命科学研究,各自拥有独一无二的数据。数据网格允许这两所大学共享其数据、管理数据并管理诸如谁有权访问什么数据之类的安全性问题。
 曾听闻一个很出名的拾遗网格应用是美国一个探索太空的计划,设计者将一个小程序发布到网上,热心的人可以将其下载下来并安装到自己的电脑上。这个程序可以从服务器端取得数据,分析后再将结果返回。通过这样一种大众参与的形式,能够很好地利用许多闲散的资源来完成高度复杂的计算任务,并取得显著的效果。一般的拾遗网格会是类似于屏保的小程序,在计算机隔一段时间无人使用的时候能够自动启动并执行所要做的计算任务。
 我觉得拾遗网格所具有的特点如下:
1. 广泛性:只要是愿意提供服务并具备一定的常规计算资源(比如CPU、内存)的人都可以加入到服务提供者的行列中来。
2. 不确定性:这里包括非常多的不确定因素,比如地域、服务提供者数量、提供服务的时间等等。
3. 动态的:计算任务发给哪个服务提供者是动态决定的,服务提供者可以动态地进行调整。
4. 异构和多样:服务提供者自身的属性可以有非常多的不同的,比如其系统的类型、机器的配置、资源的类型。
5. 灵活性:服务提供者不局限于某一位,网格中随时可以找到许多提供服务的机器,假如一个任务某台机器处理不来,可以分配到另外一台机器来处理。

三.为什么采用非接触式部署的方式来实现拾遗网格
1. 以往拾遗网格存在的不足之处。
(1)假如服务提供者下载并安装了多个独立的拾遗网格程序,那么将会变得非常混乱,程序间出现冲突的机会也会非常大。
(2)无法保证服务提供者当前安装的是最新的服务程序,假如服务发布者的使用方式改变了,那么服务提供者安装的程序将会成为废品,并在白白耗费许多资源来进行无用的计算。
(3)对于服务发布者来说,他会希望能够随时开发出最新的服务程序并将其发布到网上,而旧的服务程序能够被立即替换成新的服务程序,而对于服务提供者来说,他只希望做尽可能简单的工作就能够将自己的技术资源奉献出去,而不用去关心版本更新的问题。但是现在拾遗网格无法做到这一步。
(4)假如服务发布者提供的是一个恶意的程序,或者程序被第三方恶意团体偷偷更改过,现在还无法有一种有效的方法去阻止恶意代码的运行。
(5)拾遗网格的许多方面还没标准化。
2.是否可以用GT3来实现拾遗网格
以下是GT3的软件框架:

 如图可以看到GT3主要由两部分组成:
 •Web服务引擎。这个引擎是由Apache AXIS 提供,用来处理普通的Web服务行为,SOAP消息处理,JAX-RPC句柄处理和Web服务配置。
•GT3服务容器。GT3提供一个容器来管理网格服务。它包括状态管理,生命期管理和"软-状态"管理等。
 对于服务提供者来说,假如他需要部署由GT3构建的网格服务,那么他首先还要去配置AXIS,也要去配置GT3容器,另外还做需要更多的服务本身的配置工作,这样的做法明显是非常不妥当的。举个例子,一个人热心去献血,那么应该让他走尽量快的流程,经过尽量少的手续就能实现他奉献的目的。但是现在GT3提供的服务,就象献血还必须要穿西装打领带,还要先登记所有亲人的详细情况,学习工作经历……。这是不合理的。
2. 非接触式部署本身具有实现拾遗网格的优势。
(1) 程序可以被动态装载。
(2) 能够通过.NET的代码安全机制以实现对服务提供者的安全保护。
(3) 保证服务提供者使用到的永远是最新版本的服务程序。

四.需要解决的问题:
1. 如何设计拾遗的架构以尽量减轻服务提供者所需的配置工作。
2. 如何实际容器以提供对网格服务的有效管理(参考OGSI.NET)
3. 容器应具备哪些统一的接口以提供创建服务、销毁服务、消息通知等网格所需的公共服务。
4. 如何管理服务的生存期。(参考OGSA Specification)
5. 如何利用.NET中的代码安全机制来保证远程代码的安全性。
6. 提供服务的用户应怎样配置本机的资源以实现合理地资源利用。
7. 如何保证通讯过程中的数据安全性。(参考GSI)
8. 如何构建MDS(Metacomputing Directory service,元计算目录服务)以提供对网格服务的发布、查询、发现、申请与使用的。(参考GRIS和GIIS)
9. 如何进行有效的数据管理与传输。(参考GASS)
10. 应采用如何的准则对程序进行以任务为单位的分割,如何确定任务的粒度。
11. 如何借鉴现有OGSA/OGSI规范,以将服务标准化。

大家好!新人报到:【上一篇】
基于.NET无接触部署的拾遗网格实现:【下一篇】
【相关文章】
  • .NET获取其它程序的标准输出(stdout)
  • 用.NET发起web请求时维持Session的方法
  • 用.NET在IIS中创建虚拟目录
  • 看看Asp.net 2.0吧
  • Salamander .NET Linker and Mini-Deployment Tool
  • 关于 vs.net 2005 team server 的问答
  • VS.NET中的SAVE AS问题
  • .NET WINFORM中使用本地SMTP SERVICE
  • Asp.net Forum V2 RC2 and Rob Howard
  • Question:ViewState In VB.NET
  • 【随机文章】
  • 通过ADSL Modem拨号上网的小技巧集锦
  • oracle插入&特殊符号
  • 网络常见木马的手工清除方法
  • 系统钩子介绍
  • 用QSocket来操作Linux命名管道
  • 探测Windows2K/XP/2003本机系统信息 三
  • 人们为什么玩游戏———节选自《游戏设计原理与实践》
  • INFORMIX ONLINE 7.x 安装步骤
  • XP实用技巧:检测网络
  • 利用正则表达式验证控制文本框的输入字符类型
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.