系统说明书 文章模板

Compass 1.0系统说明

-- hd [2004-08-18 00:56:44]

1. 系统概述

Compass即Open Global Name Service(开放全局名称服务,以下简称OpenGNS)协议的实现,为OpenUSS(开放统一存储服务)提供7*24可持续运行的支持基础。本文档用以说明Compass的系统功能、结构和整体框架,以及相关开发、使用的信息

Compass是一个名称指向的统称,它是由一系列的服务器硬件和服务器、客户机软件构成的名称指向系统Compass必须依靠可持续运行的系统架构基础进行部署,并将所有的服务器改造为支持该系统架构的机制,才可以真正实现它的目标。只是在现有系统中安装Compass并不能解决任何问题。为解决大容量系统中的多层、多台、多级依赖的情况下系统管理和单点故障的问题。

它的应用主要有:

  • 服务发现、服务寻找
  • 单点故障的紧急响应
  • 服务指向、服务路由

Compass在系统中的体现主要有以下内容:

  • 所有的服务器都会使用Compass所提供的OpenGNSP协议与Compass服务器进行通信
  • 在可行的情况下,大家可以使用Compass所提供的统一API与Compass服务进行沟通
  • Compass会变为一个大容量的系统单元运行在系统的核心层

准确的来说Compass为可能拥有大量服务器的应用系统提供了低成本、高可扩展性、高可用性的基础服务。由于Compass的特点,在设计时应特别关注以下问题:

  • 由于Compass是核心服务器,所以应特别注意它的单点故障问题
  • 由于Compass会服务于所有的服务器以及服务器中的服务程序,所以它的服务对象会非常的多,为了降低其因高负载而出现问题的机会,所以在系统架构时应尽量考虑将Compass设计为“路过者”而不是“处理者”
  • 在客户端和服务器端都会启动侦听,以适应推和拉两种信息更新方式
  • 由于Compass的服务对应于多个服务/服务器,所以信息的处理可以使用“推”和“拉”结合的方法减少服务器的负载,同时提高系统的可用性
  • 尽量减少Compass存储的数据(字段数和条数)

2. 系统功能

Compass会分布在所有与系统应用相关的服务器上。不理会其架构,我们先阐述清楚Compass有什么样的功能。以下只要谈到服务,哪么就是一个在应用系统中需要关注的、它的运行装态会与别的服务紧密相关的程序。一台服务器可能运行多个服务,一台服务器也可能只运行一个服务。但我们不会理会一个服务运行于多台服务器上的情况,这种情况只会是使用集群技术,这时我们将这一群机器只会视为一台服务器。

以下为系统用例视图:

3. 系统处理流程

3.1. 分区管理

我们将一个功能块命名为一个分区。一个分区代表提供同类服务的服务器群,它是一个逻辑上的定义。

3.1.1. 新增分区

3.1.2. 修改分区

3.1.3. 删除分区

3.2. 服务器管理

我们将提供一个服务内容的一组服务称为服务器,一个服务器代表着一组提供相同内容、相同功能的服务的群体,它同样是一个逻辑上的定义。

3.2.1. 新增服务器

3.2.2. 修改服务器

3.2.3. 删除服务器

3.3. 服务管理

我们将提供一个具体的网络服务的Daemon称之为一个服务,一个服务代表着一个基本的服务单元,一台服务的服务器可以提供多个服务。

3.3.1. 新增服务

3.3.2. 修改服务

3.3.3. 删除服务

3.4. 服务注册

任何一个服务在启动时,都有义务向Compass服务器通知其在线工作。通过向Compass服务器的通知,就使得应用系统中增加了一个服务。另一方面,Compass的管理器也可以手工的向系统注册一个服务。 Compass对服务登录将会产生一条服务更新日志,其中的信息会有:

  • 时间
  • 操作类型(注册)
  • 服务ID
  • 服务地址(IP地址)
  • 服务端口
  • 服务变更后状态

如果服务校验码不通过,则会产生一条认证安全日志:

  • 时间
  • 操作类型(注册)
  • 服务ID
  • 注册附加参数
  • 发起IP

3.4.1. 服务登录

3.4.2. 服务注册

3.5. 服务注销

Compass Client在正常停止服务前或停止服务时,应向Compass服务器发出服务注销指令。在服务注销功能完成后,GNS会调用“服务变更通知”功能。以向依赖本类服务的服务通知服务的注销。另一方面,Compass的管理器也可以手工的向系统注销一个服务。 Compass服务器将会产生一条服务更新日志,其中的信息会有:

  • 时间
  • 操作类型(注销)
  • 服务ID
  • 服务地址(IP地址)
  • 服务端口
  • 服务变更后状态

如果服务校验码不通过,则会产生一条认证安全日志:

  • 时间
  • 操作类型(注销)
  • 服务ID
  • 注销附加参数
  • 发起IP

3.6. 分区依赖管理

分区依赖管理用于对分区间的依赖关系进行管理。

3.6.1. 增加依赖关系

3.6.2. 删除依赖关系

3.7. 服务查询

一个Compass Client也就是一个服务在启动后,就一定需要知道他要使用的分区和分区中的服务器到底有哪些服务,它就需要向Compass发出请求,查询出所有可以使用的服务。

3.8. 服务报警

当一个服务A在使用另外一个服务B时,发现服务B出现问题,这时服务A就会向Compass服务器发出警报,说明服务B的失效,Compass服务器会寻找所有依赖服务B的分区中的服务进行通知,告知服务B的失效。

4. 系统静态结构和动态结构

4.1. 系统静态结构

4.2. 系统动态结构

5. 系统模块及结构

6. 系统外部接口与外部系统