2008年6月28日

基于模型的设计思想(Model-Based Design)第二篇

在使用SCOM 2007的时候,不一定要了解“基于模型的设计思想”这个概念,但是如果想要得心应手的使用MP,或者你想要开发属于自己的MP,那么这个概念你必须有透彻的认识。有太多的理由让我们开发自定义的MP,换句话说,有太多的理由让我们认真学习“基于模型的设计思想”这个概念。所以我想用一组系列的文章来帮助大家更透彻的认识它。本文是这一系列文章的第二篇,“服务模型”和“健康模型”。

上一篇我们认识了SCOM 2007是用XML语言描述的一个对象的模型。这个模型包括了“服务模型”和“健康模型”,这一篇我们来看看什么是“服务模型”和“健康模型”。

“服务模型”(Service Model)描述了被监控对象的组成部分。比如要监控某种数据库服务,对应有一个模型叫数据库服务,这个模型可能由数据库引擎服务、报表服务、分析服务、数据库实例、数据库等部分组成,这些部分可以是这个模型的特有属性,也可以是其它的模型。

“服务模型”有三种关系,从属(Hosting)、包含(Containment)和涉及(Reference)。比如数据库实例和数据库之间是从属关系,实例包含数据库且某一个数据库只能属于一个实例;数据库实例组和数据库实例之间是包含关系,实例组包含实例但某一个实例可以属于不同的实例组,比如HR实例组、北方区实例组;数据库服务和操作系统之间则是涉及关系,数据库服务这个模型涉及了操作系统这个模型。

“健康模型”(Health Model)描述了被监控对象的健康状况与这个对象的组成部分健康状况之间的关系。比如:数据库服务的健康状况与多个数据库实例相关,如果某个数据库实例有问题,则该数据库服务有问题;只有所有的数据库实例健康,该数据库服务才健康。

如果能够对照SCOM 2007的Console里的“Health Explorer”来理解的话,一定会比只读这些文字有效的多。第二篇就到这里了,下次再聊。

2008年6月22日

基于模型的设计思想(Model-Based Design)第一篇

在使用SCOM 2007的时候,不一定要了解“基于模型的设计思想”这个概念,但是如果想要得心应手的使用MP,或者你想要开发属于自己的MP,那么这个概念你必须有透彻的认识。有太多的理由让我们开发自定义的MP,换句话说,有太多的理由让我们认真学习“基于模型的设计思想”这个概念。所以我想用一组系列的文章来帮助大家更透彻的认识它。本文是这一系列文章的第一篇,认识“SCOM 2007中的模型”。


偏感性认识“模型”
在SCOM 2007中,所有被管理的对象比如硬件、软件、服务等都被描述为逻辑模型。比如要监控磁盘,那么一定有一个模型叫磁盘;要监控操作系统那么一定有一个模型叫操作系统;要监控邮件服务,那么一定有一个模型叫邮件服务。之所以称他们为逻辑模型,一因为他们与物理设备无关,比如邮件服务,可以依赖多台服务器的操作系统,可以包含多个磁盘;二因为他们可以对应多个实例,比如操作系统这个模型,可以对应到Server1的操作系统,也可以对应到Server2、Server3的操作系统。

偏理性认识“模型”
有了上面的描述,因该了解到“模型”其实就是一个被监控的逻辑单元。如果你做过面向对象的软件设计,那么可以对比一下“类”的概念;如果你做过系统架构设计(抽象层),可以对比一下“组件”的概念。当然,微软也给出了一个定义:A model is a computer-consumable representation of software or hardware components that captures the nature of the components and the relationships between them. 这一下,我们可以清楚地看到:“模型”是包含了特性的组件,“模型”之间存在着关系。举个例子:邮件服务是一个模型,它可能涉及到多个其它模型,比如邮件服务器、前端服务器、操作系统、磁盘、域控服务器、DNS服务器等,那么监控一个邮件服务器健康状态就需要监控这些组件的健康状态。我们一起来延伸一下:我们要定义邮件服务这个模型,必须首先定义好其它的那些模型,或者说那些模型已经在其他的MP中定义好了,我们只需引用便可。

再深入认识“模型”
上面两段对“模型”的认识,还是停留在概念的阶段,那么现在就来看看这个“模型”的真面目吧。在SCOM 2007中MP包含了“模型”的定义、“模型”的健康状态定义、管理“模型”的知识等等信息。一个MP就是一个XML文档,所以说“模型”就是一段XML语言。

第一篇就到这里了,下次再聊。