IceGrid是Ice应用程序的定位和激活服务。以讨论为目的,我们可以简单的将网格计算定义为:在网络上使用相对便宜的电脑,来执行需要计算的任务。熟悉分布式计算的开发人员,可能不会觉得网格计算是一个特别具有革命性的概念;毕竟,分布式应用程序已经在网络上运行了很多年;而且网格计算的定义也非常模糊,实际上任何服务器都可以被视为“网格”。

一个网格模型可以是运行相同程序的同类计算机的集合。 网格中的每台计算机都是其他计算机的克隆,并且都具有处理同一个任务的能力。 作为开发人员,你需要编写在网格计算机上运行的代码,Ice非常适合作为网格应用程序的组件,与其他网格内的运用程序相互通信。 然而,编写应用代码只是第一个难题,还有其他许多的挑战:

  • 如何在网格中,安装和更新所有计算机的程序?
  • 如何持续跟踪网格上服务器的运行?
  • 如何在所有服务器上分配负载?
  • 如何将服务器从一台计算机迁移到另一台计算机?
  • 如何快速添加一台新的计算机到网格?

当然,这些也是大多数分布式应用程序所面临的问题。 当你了解更多关于IceGrid能力的时候,你会发现它已经为这些问题提供了解决方案。 开始之前,我们总结IceGrid的特性如下:

  • 定位服务

作为Ice定位服务的一个功能,IceGrid能让客户端间接地绑定到服务器上,让应用程序对不断变化的需求,更具有灵活性和弹性。 (对于不需要IceGrid附加功能的程序,可以用IceDiscovery一个轻量级的位置服务来替代。)

  • 按需服务器激活

启动Ice服务端进程称为服务器激活。 IceGrid可以被赋予按需激活服务器的责任;也就是说,当客户端尝试访问服务器托管的对象时,激活通常作为间接绑定的副作用发生,并且对客户端来说是完全透明的。

  • 应用程序分配

IceGrid提供了一种便捷的方式,将应用程序分发到一组计算机,而不需要共享文件系统或复杂的脚本。只需简单地配置一个IcePatch2服务器,让IceGrid下载必要的文件并保持同步。

  • 复制和负载平衡

IceGrid支持复制多台服务器的对象适配器,并分组到单个虚拟对象适配器。在间接绑定期间,客户端可以绑定到任何这些适配器的端点(endpoints)。此外,IceGrid监视每台计算机上的负载,并能使用这些信息来决定,将哪个端点返回给客户端。

  • 回话和资源分配

IceGrid客户端以回话的形式建立起来,用于分配资源(如对一个象或一台服务器)。 IceGrid阻止其他客户端使用该资源,直到客户端释放或会话过期。会话使用认证机制来增强安全性,并且可以与Glacier2 router集成。

  • 自动故障转移

Ice支持在包含多个端点的任何代理里面自动重试和故障转移。在与IceGrid对复制和负载平衡的支持相结合时,自动故障转移意味着,失败的请求会导致客户端,在下一个端点负载最低的时候透明地重试。

  • 动态查询

除了透明绑定,应用程序还可以直接与IceGrid进行交互,以各种方式定位对象。

  • 状态监测

IceGrid支持以Slice接口的方式,让应用程序监视它自己的活动;并接收重要事件的通知,从而支持定制工具的开发或将IceGrid状态事件集成到现有管理框架中。

  • 管理

IceGrid包括命令行和图形管理工具。全平台支持,并允许你启动,停止,监视和重新配置任何由IceGrid管理的服务器。

  • 部署

使用XML文件描述要在每台计算机上部署的服务,模板简化了相同服务器的配置。

随着网格计算进入主流,计算服务器成为商品,用户期望从他们的应用程序里面得到更多价值。IceGrid与Ice运行时协作,可以帮助你解决这些低级任务,加快构建和简化分布式应用程序的管理。

Copyright © github.com/weiofcn 2017 all right reserved,powered by GitbookLast modified time: 2017-12-21 13:30:06

results matching ""

    No results matching ""