SD1-26利用OMG的通知和电信日志服务的导航
利用通知服务
OMG的通知服务的基本概念
这个接口使用了由OMG编写的通知服务说明书,即:
formal/02-08-04: Notification Service, version 1.0.1
Date: August 2002
Version 1.0.1
参考:http://www.omg.org/technology/documents/formal/notification_service.htm.
概述
关于基本概念解释的概述请参照图1.
图1 通知服务的概述(OMG2.2说明书授权使用)
通知服务是对OMG COS::Event事件服务的扩展(或继承),OMG COS::Event事件服务是用来对事件的转发的。事实证明,COS::Event事件服务是不能被电信应用程序直接使用的,例如它不允许在事件提供者侧将事件过滤掉。因此,OMG定义了通知服务,对于OMG的事件通道增加了下列功能:
l 在QoS (Quality of Service)宽范围、可靠性的管理属性和事件队列管理之间选择。
l 结构化的事件类型和强大的过滤强制能力。
事件通道的基本事件转发的概念就是在供应者和消费者之间提供了全双工的通讯通道。一个事件由供应者通过通道发送和转发到任何一个消费者中去。供应者不需要知道和它连接的消费者而消费者也不需要知道是哪个供应者产生的事件。通道允许消费者注册它所感兴趣的接收事件。通道从供应者处得到事件并且转发到注册的消费者处。
供应者、消费者和通知通道是通过在OMG的COS::NotificationService标准所定义的IDL接口实现的。
所支持的两种事件转发模型:
l 推模型
l 拉模型
在推模型中,消费者被动的等待事件,直到得到一个事件。供应者主动的生成事件并且将事件发送到能够调用消费者的通道中。
在拉模型中,消费者主动请求一个事件。(供应者等待直到它获取一个事件)。通道为每一个消费者或供应者提供代理对象。过滤对象能够和消费者和供应者的代理对象相关联。
结构化事件
事件服务的最重要的扩展是对新的结构化事件类型和事件过滤的支持。一个结构化的事件内容如图2所示。它由事件头部和事件体组成。事件头部有一个用来描述事件信息的固定的头部、一个用来表示每个事件QoS设置的可变头部、一个过滤设置项的头部。在事件体中有事件数据,它由可过滤的部分和剩余部分(不可过滤的)组成。
图2 结构化事件定义
type_name和event_name被用来和匹配过滤选项的简单类型。对于更多复杂的过滤器就要用到通知服务的过滤语言了,它基本上是OMG贸易约束语言的扩充。(例如“$type_name = ‘Alarm’ 和$probableCause =‘AIS’)
一个事件(一个告警实例)和可过滤体(filterable body)部分或剩余体(remainder_of_body)(不可过滤)部分相映射。关于映射将在下章描述。它可以通过测量显示,该通知服务的性能在很大程度上取决于这个映射和过滤器是适用于结构化事件的方式。
使用通知服务的建议
一般建议
建议如下:
-只能使用推环境管理体系模型。
-使用一个通道,以避免排序问题。
-每个EMS只使用一个通知服务体系。
服务质量和管理参数
以下参数用于以提供一个使用通知服务的有效途径(被试运行证明了):
-使用持久性的EventReliability和ConnectionReliability的参数,如果需要。
-所有的活动应具有相同的优先级(0),以避免排序问题。
-使用FifoOrder秩序和丢弃的政策。
-对于STARTTIMESUPPORTED使用FALSE。
-最大批量大小为0,即不使用批处理。
-步进间隔为0,即不使用批处理。
-在RejectNewEvents管理属性应设置为TRUE,以便使EMS知道通知通道不再接受新的事件了。
-对于NT_TCA和NT_ALARM事件其超时服务质量属性应设置为30分钟,其它事件应该为其他24个小时。
结构化事件
本文档介绍了在接口上下文中如何使用通知服务的结构和字段。
结构化事件被分为两个主要部分,每个主要部分又被分为两部分,如图2所示。事件标题包含了固定和可变事件标题。事件体是由可过滤体和剩余体组成。
结构化事件必须如下填写:
header:
fixed_header:
event_type:
domain_name:
必须设为"tmf_mtnm"
type_name:
必须设为下面的之一:
"NT_OBJECT_CREATION"
"NT_OBJECT_DELETION"
"NT_ATTRIBUTE_VALUE_CHANGE"
"NT_STATE_CHANGE"
"NT_ROUTE_CHANGE"
"NT_PROTECTION_SWITCH"
"NT_EPROTECTION_SWITCH"
"NT_TCA"
"NT_ALARM"
"NT_FILE_TRANSFER_STATUS"
"NT_PM_SC"
"NT_BACKUP_STATUS"
”NT_HEARTBEAT”
NMS应该忽略不可识别的通知。提供转发的兼容性是必须的。
event_name:
必须设为空串。
variable_header
可变事件标题是为QoS参数预留的,它将不含有迄今为止在IDL中定义的通知中的任何部分。
filterable_data:
事件体的内容依赖于事件类型。因此,这里没有必要定义一个通知的联合,但是对于每个事件类型它只有一个事件体。注意:可过滤体是由名字/值对组成,数值的类型是ANY。(测试运行显示为了避免性能上的问题应该避免使用联合。)
当一个字段是可选的标记,可以省略的名称/值对列表,这表明它并不适用,它的值是未知的,或者它是不受支持的。
每一个过滤团体的成员可以在任何组合中被过滤。然而对于一些过滤器,可能有相当大的性能损失。
NMS应该忽略通知的filterable_data字段中不可识别的字段,这是所必需的前向兼容性。
这个字段的内容依赖于type_name。该字段必须按照下面填写:
如果type_name = "NT_OBJECT_CREATION"
拥有正在创建的对象的细节:
名称 | 类型 | 描述 |
"notificationId" | string | 唯一性和notificationId序列是不被支持的。如果EMS支持可选的参数“X.733::CorrelatedNotifications”,通知标识符必须选择是唯一的,从特别的objectName到整个的时间相关性,这是很重要的。 |
"objectName" | globaldefs::NamingAttributes_T | 正在创建的对象标识符 |
"objectType" | notifications::ObjectType_T | 正在创建的对象的类型标识符。这个参数只适用于V2.1定义和早期版本。 |
“objectTypeQualifier” | notifications::ObjectTypeQualifier_T | 正在创建的对象的类型标识符。这个参数只适用于V3.0定义的新的对象类型和将来版本。 |
"emsTime" | globaldefs::Time_T | EMS系统产生事件报告的时间。 |
"neTime" | globaldefs::Time_T | NE提供的时间。在NE不能提供时间的场合下,这个字段是可选的或被报告为空串。 |
"edgePointRelated" | boolean | 如果这个事件涉及PTP,并且这个PTP是个边界点;或者这个事件涉及一个PG,并且这个PG包含一个边界点的PTP这时为TRUE,否则为FALSE。这个字段在这个情况下是可选的。 |
如果type_name = "NT_OBJECT_DELETION"
保持正在删除对象的细节:
名称 | 类型 | 描述 |
"notificationId" | string | 唯一性和notificationId序列是不被支持的。如果EMS支持可选的参数“X.733::CorrelatedNotifications”,通知标识符必须选择是唯一的,从特别的objectName到整个的时间相关性,这是很重要的。 |
"objectName" | globaldefs::NamingAttributes_T | 正在删除的对象标识符 |
"objectType" | notifications::ObjectType_T | 正在删除的对象的类型标识符。这个参数只适用于V2.1定义和早期版本。 |
“objectTypeQualifier” | notifications::ObjectTypeQualifier_T | 正在删除的对象的类型标识符。这个参数只适用于V3.0定义的新的对象类型和将来版本。 |
"emsTime" | globaldefs::Time_T | EMS系统产生事件报告的时间。 |
"neTime" | globaldefs::Time_T | NE提供的时间。在NE不能提供时间的场合下,这个字段是可选的或被报告为空串。 |
"edgePointRelated" | boolean | 如果这个事件涉及PTP,并且这个PTP是个边界点;或者这个事件涉及一个PG,并且这个PG包含一个边界点的PTP这时为TRUE,否则为FALSE。这个字段在这个情况下是可选的。 |
如果type_name = "NT_ATTRIBUTE_VALUE_CHANGE"
名称 | 类型 | 描述 |
"notificationId" | string | 唯一性和notificationId序列是不被支持的。如果EMS支持可选的参数“X.733::CorrelatedNotifications”,通知标识符必须选择是唯一的,从特别的objectName到整个的时间相关性,这是很重要的。 |
"objectName" | globaldefs::NamingAttributes_T | 表示正在报告一个AVC的对象。 |
"objectType" | notifications::ObjectType_T | 表示正在报告一个AVC的对象的类型。这个参数只适用于V2.1定义和早期版本。 |
“objectTypeQualifier” | notifications::ObjectTypeQualifier_T | 表示正在报告一个AVC的对象的类型。这个参数只适用于V3.0定义的新的对象类型和将来版本。 |
"emsTime" | globaldefs::Time_T | EMS系统产生事件报告的时间。 |
"neTime" | globaldefs::Time_T | NE提供的时间。在NE不能提供时间的场合下,这个字段是可选的或被报告为空串。 |
"edgePointRelated" | boolean | 如果这个事件涉及PTP,并且这个PTP是个边界点;或者这个事件涉及一个PG,并且这个PG包含一个边界点的PTP这时为TRUE,否则为FALSE。这个字段在这个情况下是可选的。 |
"attributeList" | notifications::NVList_T | 属性发生变化和在修改的对象结构中已经是完全新值的属性的名称列表。特别是属性“transmissionParams”和“additionalInfo”的定义,见下文。见下面详细说明这些属性必须得到支持 |
在一个AVC的通知中,“transmissionParams”属性的值可能不包含完整的属性值。相反,它只表示传送的参数变化。数值总是包含一个TP层的速率列表;但是对于每个层,只有这些传送参数的删除、改变或添加是被列入清单的。所有不在列表中的参数是不能够改变的。
类似的,在一个AVC通知中,"additionalInfo"属性值不一定包含完全的属性值。相反,它只是表示NameAndStringValue_T的删除、改变或增加。一个被删除的NameAndStringValue_T是用“-”来表示的。一个变化或增加的NameAndStringValue_T是用它的新值来表示的。所有不在列表中的NameAndStringValue_T是不能够改变的。
对于type_name = "NT_STATE_CHANGE"应该保持状态属性值变化的细节:
名称 | 类型 | 描述 |
"notificationId" | string | 唯一性和notificationId序列是不被支持的。如果EMS支持可选的参数“X.733::CorrelatedNotifications”,通知标识符必须选择是唯一的,从特别的objectName到整个的时间相关性,这是很重要的。 |
"objectName" | globaldefs::NamingAttributes_T | 表示正在报告一个状态发生变化的对象。 |
"objectType" | notifications::ObjectType_T | 表示正在报告一个状态正在发生变化的对象的类型。这个参数只适用于V2.1定义和早期版本。 |
“objectTypeQualifier” | notifications::ObjectTypeQualifier_T | 表示正在报告一个SC通知化的对象的类型。这个参数只适用于V3.0定义的新的对象类型和将来版本。 |
"emsTime" | globaldefs::Time_T | EMS系统产生事件报告的时间。 |
"neTime" | globaldefs::Time_T | NE提供的时间。在NE不能提供时间的场合下,这个字段是可选的或被报告为空串。 |
"edgePointRelated" | boolean | 如果这个事件涉及PTP,并且这个PTP是个边界点;或者这个事件涉及一个PG,并且这个PG包含一个边界点的PTP这时为TRUE,否则为FALSE。这个字段在这个情况下是可选的。 |
"attributeList" | notifications::NVList_T | 属性发生变化和在修改的对象结构中已经是完全新值的属性的名称列表。特别是属性“transmissionParams”和“additionalInfo”的定义,见下文。见下面详细说明这些属性必须得到支持 |
对于type_name = "NT_ROUTE_CHANGE"应该保持路由变化的细节:
名称 | 类型 | 描述 |
"notificationId" | string | 唯一性和notificationId序列是不被支持的。如果EMS支持可选的参数“X.733::CorrelatedNotifications”,通知标识符必须选择是唯一的,从特别的objectName到整个的时间相关性,这是很重要的。 |
"objectName" | globaldefs::NamingAttributes_T | 表示正在报告一个路由发生变化的SNC对象。 |
"objectType" | notifications::ObjectType_T | 表示正在报告一个路由正在发生变化的SNC对象的类型。 |
"emsTime" | globaldefs::Time_T | EMS系统产生事件报告的时间。 |
"neTime" | globaldefs::Time_T | NE提供的时间。在NE不能提供时间的场合下,这个字段是可选的或被报告为空串。 |
"routeChangeEvent" | subnetworkConnection:: RerouteChangeEvent_T | 这表示通知所发出的那个状态。 |
""route"" | subnetworkConnection::Route_T | 这表示一个新的路由被选定,如果可能,否则这个字段是可选的。 |
对于type_name = "NT_PROTECTION_SWITCH"应该保持保护开关的细节:
名称 | 类型 | 描述 |
"notificationId" | string | 唯一性和notificationId序列是不被支持的。如果EMS支持可选的参数“X.733::CorrelatedNotifications”,通知标识符必须选择是唯一的,从特别的objectName到整个的时间相关性,这是很重要的。 |
"emsTime" | globaldefs::Time_T | EMS系统产生事件报告的时间。 |
"neTime" | globaldefs::Time_T | NE提供的时间。在NE不能提供时间的场合下,这个字段是可选的或被报告为空串。 |
"ProtectionType" | protection::ProtectionType_T | 保护的类型。 |
"switchReason" | protection::switchReason_T | 开关发生的原因。 |
"layerRate" | transmissionParameters::LayerRate_T | 与这个开关相关的层。 |
"groupName" | globaldefs::NamingAttributes_T | 表示保护组发出的开关。如果保护类型是SNCP,这个字段是可选的或名字为空。 |
"protectedTP" | globaldefs::NamingAttributes_T | 表示当开关发生时被保护的TP。对于SNCP它总是可靠的TP。对于2F BLSR环的开关通知,在开关期间它是非活跃的工作TP。对于1:N MSP开关通知,它是对于受保护开关发生的那个工作的TP。对于一个回复的1+1 MSP它总是工作的TP。对于非回复的1+1 MSP的开关通知,它是在开关通知前活跃的TP。(注意开关保护后TP的变化) |
"switchAwayFromTP" | globaldefs::NamingAttributes_T | 表示TP正在远离开关。对于一个2F MSSPRING环的开关,它是开关的TP。对于4-Fiber MSSPRING跨度开关,它是MSP 1:N组中TP当中的一个。对于一个4-Fiber环的开关,它是开关跨度的工作TP;例如东部跨度的开关对应西部,那么这个TP就是东部工作点。 |
"switchToTP" | globaldefs::NamingAttributes_T | 表示TP属于那个开关。这表示那个TP在开关后是活跃源,或是当前活跃的,如果没有保护开关是当前活跃的。对于一个2F BLSR,当状态恢复正常时,这个TP已经完成开关。对于一个4F BLSR环的开关,当状态恢复正常时,这是已经完成开关的跨度的工作点TP;例如东部跨度的开关对应西部,那么这个TP就是东部工作点。 |
对于type_name = "NT_EPROTECTION_SWITCH"应该保持一个设备保护开关的细节:
名称 | 类型 | 描述 |
"notificationId" | string | 唯一性和notificationId序列是不被支持的。如果EMS支持可选的参数“X.733::CorrelatedNotifications”,通知标识符必须选择是唯一的,从特别的objectName到整个的时间相关性,这是很重要的。 |
"emsTime" | globaldefs::Time_T | EMS系统产生事件报告的时间。 |
"neTime" | globaldefs::Time_T | NE提供的时间。在NE不能提供时间的场合下,这个字段是可选的或被报告为空串。 |
"eProtectionGroupType" | protection::EProtectionGroupType_T | 设备的保护类型。如果忽略,M:N是假设的。 |
"eSwitchReason" | protection::ESwitchReason_T | 开关发生的原因。 |
"groupName" | globaldefs::NamingAttributes_T | 表示设备保护组发出的开关。 |
"protectedE" | globaldefs::NamingAttributes_T | 表示当开关发生时被保护的设备。对于一个M:N组,protectedE总是表示对于那个发生开关的设备实例的工作点。 |
"switchAwayFromE" | globaldefs::NamingAttributes_T | 表示设备实例正在远离开关。 |
"switchToE" | globaldefs::NamingAttributes_T | 表示设备实例属于那个开关。 |
对于type_name = "NT_TCA"应该保持交叉告警门限的细节:
字段objectName, layerRate, granularity, pmParameterName, pmLocation, 和 thresholdType的组合必须是唯一表示一个TCA。共同地,这些六个字段包含的信息,例如没有一个TCA,和一个正确的TCA相关。这就意味着如果一个TCA发生,清除,再发生,再清除并且如果最初的清除和第二次TCA丢失了,那么第二次清除将清除第一次的TCA。
名称 | 类型 | 描述 |
"notificationId" | string | 唯一性和notificationId序列是不被支持的。如果EMS支持可选的参数“X.733::CorrelatedNotifications”,通知标识符必须选择是唯一的,从特别的objectName到整个的时间相关性,这是很重要的。 |
"objectName" | globaldefs::NamingAttributes_T | 表示报告一个TCA对象。 |
"nativeEMSName" | string | 表示在EMS用户接口上的被描述的对象。 |
"objectType" | notifications::ObjectType_T | 表示一个报告中的TCA对象的类型。这个参数只能用于V2.1和更早版本。 |
“objectTypeQualifier” | notifications::ObjectTypeQualifier_T | 表示正在报告中的TCA对象类型。这个参数只能用于V3.0中定义的新的对象类型和以后版本。 |
"emsTime" | globaldefs::Time_T | EMS系统产生事件报告的时间。 |
"neTime" | globaldefs::Time_T | NE提供的时间。在NE不能提供时间的场合下,这个字段是可选的或被报告为空串。 |
"isClearable" | boolean | 如果事件被清除或是自清的这个值为TRUE,否则为FALSE。 |
"perceivedSeverity" | notifications::PerceivedSeverity_T | 表示TCA的强度。 |
"layerRate" | transmissionParameters::LayerRate_T | 代表被交叉的门限的详细信息。 |
"granularity" | Granularity_T | 代表被交叉的门限的详细信息。 |
"pmParameterName" | PMParameterName_T | 代表被交叉的门限的详细信息。 |
"pmLocation" | PMLocation_T | 代表被交叉的门限的详细信息。 |
"thresholdType" | PMThresholdType_T | 代表被交叉的门限的详细信息。 |
"value" | float | 代表被交叉的门限的详细信息,如果知道。这个参数是可选的。 |
"unit" | string | 代表被交叉的门限的详细信息,如果知道。这个参数是可选的。 |
"acknowledgeIndication" | notifications::AcknowledgeIndication_T | 对acknowledgeIndication的可能值如下: 在手动或自动确认情况下是EVENT_ACKNOWLEDGED 如果事件没有被确认然而EMS支持对事件的确认的情况下是EVENT_UNACKNOWLEDGED 在EMS不支持对这个事件的确认的情况下是NA 在缺少acknowledgeIndication字段的版本2.0或2.1的情况下,TCA将以NA方式解释。 |
|
|
|
定义type_name = "NT_ALARM"应该保持告警的详细信息:
一个告警被报告 ,它依赖于通过EMS所模拟的正确的对象。
依赖于不通过接口模拟的实体的告警应该一直被报告,并且objectType=“AID”。EMS应该确保所有这样的实体都有一个唯一的“AID”值。作为一个例子:
sourceName[0].name = "EMS"
sourceName[0].value = "CompanyName/EMSName"
sourceName[1].name = "ManagedElement"
sourceName[1].value = "NEName"
sourceName[2].name = "AID"
sourceName[2].value = "IdentifierValue"
字段objectName, layerRate, probableCause,和probableCauseQualifier的组合必须唯一标示一个告警信息。ProbableCauseQualifier可以是空串,这个组合提供唯一性(使用剩余的三个字段)是应当确保的。共同地,这四个字段所包含的信息应是这样的,告警的清除应该和它适当的告警相关。这就意味着如果一个告警产生,清除,再产生,再清除;如果最初的清除和第二次告警丢失了,那么第二次清除将清除第一次的告警。
名称 | 类型 | 描述 |
"notificationId" | string | 唯一性和notificationId序列是不被支持的。如果EMS支持可选的参数“X.733::CorrelatedNotifications”,通知标识符必须选择是唯一的,从特别的objectName到整个的时间相关性,这是很重要的。 |
"objectName" | globaldefs::NamingAttributes_T | 表示报告一个告警对象。 |
"nativeEMSName" | string | 表示在EMS用户接口上的被描述的对象。 |
"objectType" | notifications::ObjectType_T | 表示一个报告中的告警对象的类型。这个参数只能用于V2.1和更早版本。 |
“objectTypeQualifier” | notifications::ObjectTypeQualifier_T | 表示正在报告中的告警对象类型。这个参数只能用于V3.0中定义的新的对象类型和以后版本。 |
"emsTime" | globaldefs::Time_T | EMS系统产生事件报告的时间。 |
"neTime" | globaldefs::Time_T | NE提供的时间。在NE不能提供时间的场合下,这个字段是可选的或被报告为空串。 |
"isClearable" | boolean | 如果事件被清除或是自清。 |
"perceivedSeverity" | notifications::PerceivedSeverity_T | 表示TCA的强度。 |
"layerRate" | transmissionParameters::LayerRate_T | 与告警相关的层。 |
"probableCause" | string | 只能使用TM Forum定义的串。 |
"probableCauseQualifier" | string | 使用objectName,layerRate, and probableCause唯一标示一个告警。 |
"perceivedSeverity" | notifications::PerceivedSeverity_T | 表示告警等级。 |
"serviceAffecting" | notifications::ServiceAffecting_T | 代表告警是否影响服务。 |
"affectedTPList" | globaldefs::NamingAttributesList_T | 所有受到影响的TP。被包含的CTP不在列表中。对于除了设备告警外所有的告警来说,这个字段是可选的(可以为空串)。例如:可以用它表示由于一个设备故障而影响的所有的TP的列表。如果一个告警是一个支持PTP设备的告警,那么,这个设备所支持的端口(PTPs)都将在这个字段中列出。(不考虑告警是否受服务影响)。这个列表应该按照PTP的名称排序。 |
"additionalText" | string | 关于告警更多的信息。例如:"Unit is mismounted"。 |
"additionalInfo" | globaldefs::NVSList_T | 允许EMS到NMS的不能明确模拟的附加信息的通讯。这个字段是可选的,现在已经被“X.733::*”取代。 |
“X.733::EventType” | string | 在ITU-T X.733.中告警分为5类,其值是下面之一: • "communicationsAlarm", • "environmentalAlarm", • "equipmentAlarm", • "processingErrorAlarm", • "qualityofServiceAlarm" 这项是可选的 |
“X.733::SpecificProblems” | notifications::SpecificProblemList_T | 表示为了将来可能的告警原因而改进的地方。 |
“X.733::BackedUpStatus” | string | 表示对象发出的告警信息是否备份,并且提供给用户的服务是否中断。取值下面之一: • "BACKED_UP", • "NOT_BACKED_UP" 该项为可选项 |
“X.733::BackUpObject” | globaldefs::NamingAttributes_T | 表示对象正在备份属于自己的通知服务。 这个参数当X733::BackedupStatus被引用时被引用并且其值为"BACKED_UP";否则该项为可选。 |
“X.733::TrendIndication” | string | 指定对象的当前严重的趋势。如果目前有一个或多个告警(“outstanding alarm”)没有清除,属于相同对象的告警和这个告警(“current alarm”)相匹配。取值为下面之一: • "MORE_SEVERE", • "NO_CHANGE", • "LESS_SEVERE" 该项可选。 |
“X.733::CorrelatedNotifications” | notifications::CorrelatedNotificationList_T | 包含了一套标识符通知,如有必要,其关联着对象的名称。这组被定义为所有被认为具有相互关系的通知的设置。该项可选。 |
“X.733::MonitoredAttributes” | notifications::NVList_T | 定义在报警时一个或多个属性的管理对象及其相应的值。此字段是可选的。 |
“X.733::ProposedRepairActions” | notifications::ProposedRepairActionList_T | 如果使用的原因是已知的,被管理的系统可显示一个或多个解决方案(如开关,待机设备,重试,取代介质)。此字段是可选的。 |
“X.733::AdditionalInfo” | notifications::NVList_T | 允许使用额外的信息集内。 (对于X.733的一致性)。这个字段是可选的。 |
“rcaiIndicator” | boolean | RCAI的指标是有两个值,即真(即报警是一个根原因警报指示)或FALSE(即报警是原始报警)。在版本2.0或2.1中没有rcaiIndicator,所有告警的RCAI的属性为false值。 |
"acknowledgeIndication" | notifications::AcknowledgeIndication_T | 对acknowledgeIndication的可能值如下: |
对于type_name = “NT_FILE_TRANSFER_STATUS”应该保持正在转移的、转发状态、完成百分比和失败的原因的详细信息。
在表示将移交FT_IN_PROGRESS事件的数量取决于EMS,但是,至少有一个事件,表明与percentComplete = 100的FT_COMPLETED,或填写failureReason的FT_FAILED是强制性的。
名称 | 类型 | 描述 |
"notificationId" | string | 唯一性和notificationId序列不能保证顺序。 |
“fileName” | string | 被传送的文件名(包含路径名)。这个字段应该在getHistoryPMData()请求中正确说明。 |
“transferStatus” | FileTransferStatus_T | 表示发送状态。 |
"“percentComplete” | short | 表示发送完成的百分数,其值为0到100。只有当transferStatus为FT_IN_PROGRESS或FT_COMPLETED时才使用,否则该项可选。 |
“failureReason” | string | 这个字符串包故障原因。只有当transferStatus=FT_FAILED时,才使用;否则该项可选。 |
对于type_name = “NT_PM_SC”应该保持对于一个或多个性能监控点(PMP)的状态改变(SC)的详细信息。
此通知的发出依赖于PMP对象,而不是二层的MTNM对象。这个通知适用于PMP集上的个别SC通知的场合下。以下使用规定适用于:
当PMP报告相同事件时,EMS不应该同时使用NT_PM_SC和个别的SC通知。注意:EMS在一些场合下在某些PMP上发出SC通知,并且在其他时间发出的SC通知在PMP列表中,这点是要重点注意的。
NT_PM_SC每次只用来报告一个改变的类型,例如:对于PMP集,PM集可以设为“disabled”或者对于PMP,TCA的生成可以为“enabled”。
名称 | 类型 | 描述 |
"notificationId" | string | 唯一性和notificationId序列不能保证顺序。 |
“pmNameList” | globaldefs::NamingAttributesList_T | 这个参数表示PMP对象适用于那个AVC应用。 |
"emsTime" | globaldefs::Time_T | EMS系统产生事件报告的时间。 |
"neTime" | globaldefs::Time_T | NE提供的时间。在NE不能提供时间的场合下,这个字段是可选的或被报告为空串。 |
"attributeList" | notifications::NVList_T | 发生变化的属性的名称并且属性的值也发生变化。 属性名称有三种表示: l clearPMData(表示在PM选择列表中注册的PM已经被清除)。这个参数只有一个可能的值TRUE。 l monitoringState(表示在PM选择列表中PM数据采集已经是“enabled”或“disabled”。这个参数值不是AS_Unlocked(enabled)就是AS_Locked(disabled) l supervisionState表示在PM选择列表中TCA的生成已经是“enabled”或“disabled”)这个参数值不是AS_Unlocked(enabled)就是AS_Locked(disabled) |
对于type_name = “NT_BACKUP_STATUS”应该保持一个被管理元素备份状态变化的详细信息。
名称 | 类型 | 描述 |
"notificationId" | string | 唯一性和notificationId序列不能保证顺序。 |
"emsTime" | globaldefs::Time_T | EMS系统产生事件报告的时间。 |
"neTime" | globaldefs::Time_T | NE提供的时间。在NE不能提供时间的场合下,这个字段是可选的或被报告为空串。 |
“meName” | globaldefs::NamingAttributes_T | 发生备份的那个被管理元素的名称。 |
“backupStatus” | softwareManager::BackupStatus_T | 被管理元素的备份状态。 |
对于type_name = “NT_HEARTBEAT”应该保持EMS心跳的通知的详细信息。
名称 | 类型 | 描述 |
"notificationId" | string | 唯一性和notificationId序列不能保证顺序。 |
"objectName" | globaldefs::NamingAttributes_T | 表示EMS发送的心跳。 |
"objectType" | notifications::ObjectType_T | OT_EMS. |
"emsTime" | globaldefs::Time_T | EMS系统产生事件报告的时间。 |
remainder_of_body:
除了"NT_OBJECT_CREATION"外所有事件为空NULL
对于对象创建通知,remainder_of_body是依赖于下列objectType类型之一
电信日志服务的使用
注意:电信日志服务是MTNM接口的可选功能。
OMG电信日志服务的基本概念
概述
OMG的电信日志服务提供的记录和/或转发由应用程序生成的事件。它支持国际电联规定的功能即X.735建议,信息技术 - 开放系统互连系统管理:日志控制功能。 OMG的电信日志服务扩展OMG的通知服务,从而扩展OMG的事件服务。
OMG的电信服务规范定义日志的日志几种类型:
l 日志接口是个抽象接口,其他日志接口都是由他继承来的。对于使用其他日志接口,日志接口具有共同的属性和操作。
l EventLog接口是从日志接口和CosEventChannelAdmin::EventChannel接口继承来的。这个接口支持事件的日志和转发。尽管它支持日志的过滤,但它不支持事件通知的过滤。
l NotifyLog接口是从EventLog和CosNotifyChannelAdmin::EventChannel接口继承来的。
不同的日志接口继承关系如图3所示:
图3 日志继承关系
一个NotifyLog得图解如图4所示。NotifyLog提供了一个通知通道的所有功能和日志事件的能力。
图4 NotifyLog图表
OMG电信日志服务具有下列特性:
l 支持push和pull接口
l 支持多供应者和多消费者
l 在事件形成日志前进行过滤
l 在日志中存储事件
l 事件转发到应用程序或日志中
l 转发与日志相关的事件,例如:产生日志、删除日志、告警门限日志、属性值变化日志、状态变化日志和处理告警日志。
l 在通知服务中基于相同默认的约束语言的过滤。
日志接口支持
l 对管理状态,可用性状态,最大日志大小,记录全部动作,记录时间,调度日志,日志容量报警阈值,日志记录压实,和服务质量(即刷新操作,如果支持)的监测(即获得)以及设置。
l 对操作状态,当前日志的大小和服务质量的监测(不是设置),
l 对LogRecord管理,包括日志记录的存储,修改和删除,查询和检索日志记录
l 有能力筛选对象关联的日志。
使用电信日志服务的建议
1) OMG电信日志服务的使用与MTNM接口结合是可选的。
2)由于OMG的电信日志服务提供了OMG的通知服务的能力,日志服务可能会在通知服务中使用。
3)当在通知服务中使用日志服务时,建议使用NotifyLog接口。NotifyLog接口是从EventLog和NotifyChannel接口继承来的。
4)关于日志接口,建议该网管系统除了直接存储,修改和删除日志记录,访问所有的能力。
5)日志服务提供日志工厂接口,允许客户端请求创建日志通道。建议网管系统不要访问日志工厂接口。
6)有关日志过滤器设置由网管系统实现的。允许NMS设置过滤器在多个NMS接入同一个EMS时会产生问题。
7)在OMG电信日志服务中,各种日志事件和告警,例如LogObjectCreation,LogCapacityThresholdAlarm,被定义为非类型化的事件(和报警)。正如在OMG电信日志服务规范所注意的,日志事件中的消费者(在这种情况下消费,网管系统),通过CosEventChannelAdmin::ConsumerAdmin接口可过滤无类型的事件和告警。 OMG的定义了三种事件的类型:无类型,类型(现在不推荐)和结构化。在MTNM规范通常使用结构化的事件。然而,由于似乎并没有一个标准的无类型的映射记录事件和警报系统的事件自动的方式,因此建议非类型化的事件被传递到网管系统不变。
8)由于在OMG电信日志服务规范,日志记录定义具有以下结构:
struct LogRecord {
RecordId id;
TimeT time;
NVList attr_list; // attributes, optional
any info; };
该信息字段是用来存储实际的日志记录。由于MTNM接口是为通知而利用结构化事件的,所以信息字段实际上包含结构化事件。建议不要使用可选属性字段。