TMF SID中的角色模式

角色模式

Copyright © TeleManagement Forum 2013. All Rights Reserved.

This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published, and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this section are included on all such copies and derivative works. However, this document itself may not be modified in any way, including by removing the copyright notice or references to TM FORUM, except as needed for the purpose of developing any document or deliverable produced by a TM FORUM Collaboration Project Team (in which case the rules applicable to copyrights, as set forth in the TM FORUM IPR Policy, must be followed) or as required to translate it into languages other than English.

上图定义了一个交换机(Switch)和一个路由器(Router),二者作为物理设备(PhysicalDevice)的子类(继承方式)。交换机和路由器的基本区别是前者转发流量,后者路由并转发流量。但是对于一台具有路由功能的三层交换机如何处理呢?一种可能的方式是在上图中为交换机(Switch)创建一个子类Layer3Switch。但这是一个不好的方案,因为每当路由技术更新换代时,这个模型中的路由器(Router)和三层交换机(Layer3Switch)都随之需要更新;另外这种方案中的三层交换机与路由器并没有多大区别。如果出现了四层交换机(Layer4Switch),那么又如何为之建模呢?路由器、Layer3Switch和Layer4Switch的路由类型又如何区分呢?如何处理带有防火墙功能的路由器呢?类似的问题是很多的。可见,多重继承的方式并不能解决这类问题。

对于以上问题,我们可以采用一种更加优雅的方式解决——角色模式。

角色模式是增强模型可扩展性的基本方式。角色模式将一个实体的各种功能抽象为不同的对象,而不是将其功能嵌在实体本身中,例如角色模式可以将一个设备的不同功能抽象为不同的对象。

一个角色刻画了一个对象所能提供的功能。从SID的业务视图角度看,这种刻画指的是属性和关系;从SID系统视图看,这种刻画扩展为方法、约束和行为。

角色模式的好处是:

1、易于分别定义实体本身的行为与实体的功能而互不影响;

2、实体角色的改变不需要改变实体本身。

回到一开始讲到的例子,如果采用角色模式,我们不需要定义不不同的子类,而是为设备的不同功能创建不同的角色,这样就解决了同样的功能重复出现在不同设备上的混乱情况,例如可以将路由功能与路由器、三层交换机进行关联。如下图所示:

由于通信网技术的不断发展,继承方式不能很好地驾驭这些变化。如果将关键功能抽象为角色,则可以为现在和将来出现的设备统一建模,因此将设备角色(DeviceRole)定义为不同于设备(Device)的实体是一种可扩展的方式。这样只需要为设备角色(DeviceRole)创建不同的子类以表示不同的功能,通过组合相关的设备角色形成某个设备的功能,从而避免为设备(Device)创建子类。

角色模式的应用:资源配置

举一个MPLS VPN的例子,不管VPN的拓扑有多复杂,其设备基本上由3种角色的路由器构成:

1、    CE

2、    PE

3、    P

一个基本的VPN拓扑如下图所示:

上图显示了2条VPN,红色VPN通过骨干网连接了站点1和站点3,绿色VPN通过骨干网连接了站点2和站点4。这2条VPN共享了相同的网络。角色的概念可以用来标准化CE与PE的连接和转发配置。例如,为CE路由器定义一组策略,用于控制其如何连接不同类型的PE路由器。这些策略可以抽象为不同的角色,独立于任何特定的设备,从而能够减少冗余并实现重用。另外,运营商骨干网的核心由扮演P角色的路由器构成,由于这4个P路由器功能相同,其中1个路由器的配置模板可以用来配置其它3个P路由器。PE和CE的配置可以采用相同的方式。

TMF SID中的角色模式

时间: 2024-08-30 02:54:07

TMF SID中的角色模式的相关文章

TMF SID性能相关实体介绍

TMF SID性能相关实体介绍 Copyright © TeleManagement Forum 2013. All Rights Reserved. This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may b

angular中的MVVM模式

在开始介绍angular原理之前,我们有必要先了解下mvvm模式在angular中运用.虽然在angular社区一直将angular统称为前端MVC框架,同时angular团队也称它为MVW(Whatever)框架,但angular框架整体上更接近MVVM模式.下面是Igor Minar发布在Google+ https://plus.google.com/+IgorMinar/posts/DRUAkZmXjNV的文章内容: MVC vs MVVM vs MVP. What a controver

PHP中的抽象类与抽象方法/静态属性和静态方法/PHP中的单利模式(单态模式)/串行化与反串行化(序列化与反序列化)/约束类型/魔术方法小结

  前  言  OOP  学习了好久的PHP,今天来总结一下PHP中的抽象类与抽象方法/静态属性和静态方法/PHP中的单利模式(单态模式)/串行化与反串行化(序列化与反序列化). 1  PHP中的抽象类与抽象方法 1.什么是抽象方法?              没有方法体 {} 的方法,必须使用abstract 关键字修饰.这样的方,我们叫做抽象方法.                    abstract function say(); //    抽象方法 2.什么是抽象类?        

在 shell 中使用 vi 模式

作为一名大型开源社区的参与者,更确切地说,作为 Fedora 项目的成员,我有机会与许多人会面并讨论各种有趣的技术主题. 我最喜欢的主题是"命令行"或者说 shell,因为了解人们如何熟练使用 shell 可以让你深入地了解他们的想法,他们喜欢什么样的工作流程,以及某种程度上是什么激发了他们的灵感. 许多开发和运维人员在互联网上公开分享他们的" dot 文件"(他们的 shell 配置文件的常见俚语),这将是一个有趣的协作机会,让每个人都能从对命令行有丰富经验的人中

php中的组合模式

刚看完了<深入php面向对象.模式与实践>一书中组合模式这块内容,为了加深理解和记忆,所以着手写了这篇博客. 为方便后续理解,此处先引入两个概念,局部对象和组合对象. 局部对象:无法将其他对象组合到自身内部属性上的对象.即不能组合其他对象的对象. 组合对象:可以将其他对象组合到自身内部属性上的对象.即可以组合其他对象的对象. 注:将对象A的某个属性中存储着对象B对象的引用,则表示A与B有组合关系,其中A将B组合到了自身内部. 首先我们通过给出下面的业务需求,来引入组合模式: 业务部门想要开发一

制作类似ThinkPHP框架中的PATHINFO模式功能(二)

距离上一次发布的<制作类似ThinkPHP框架中的PATHINFO模式功能>(文章地址:http://www.cnblogs.com/phpstudy2015-6/p/6242700.html)已经过去好多天了,今晚就将剩下的一些东西扫尾吧. 上一篇文章已经实现了PATHINFO模式的URL,即我们访问MVC模式搭建的站点时,只需要在域名后面加上(/module/controller/action)即可,很智能化.并且通过new Object时的自动触发函数实现类文件的自动载入,因此只要我们搭

Javascript 中的严格模式

原文:http://www.ruanyifeng.com/blog/2013/01/javascript_strict_mode.html 一.概述 除了正常运行模式,ECMAscript 5添加了第二种运行模式:"严格模式"(strict mode).顾名思义,这种模式使得Javascript在更严格的条件下运行. 设立"严格模式"的目的,主要有以下几个: - 消除Javascript语法的一些不合理.不严谨之处,减少一些怪异行为; - 消除代码运行的一些不安全之

(第三周)团队模式中对交响乐团模式的理解

今天看书的时候,看到了团队模式中的交响乐团模式,有些许看法,在此写一下,首先,顾名思义,对于交响乐我们都不陌生,交响乐的特点是家伙什多,门类齐全:各个表演者各司其职,各自有专门的场地,演奏期间没有聊天走动的现象:还有就是演奏都靠谱,平时看指挥:再者演奏的都是经过多次练习的曲目,重在执行,交响乐是人类音乐文化的高级形式,这里说到了交响乐团模式,整个团队中的成员对于整体而言自然不可或缺,但是还有一点就是个人的成功并不是整个团队的成功,我觉得这种模式是软件开发团队必须要有的基本素质,如果在项目中只想着

[转]改善C#程序的建议4:C#中标准Dispose模式的实现

需要明确一下C#程序(或者说.NET)中的资源.简单的说来,C#中的每一个类型都代表一种资源,而资源又分为两类: 托管资源:由CLR管理分配和释放的资源,即由CLR里new出来的对象: 非托管资源:不受CLR管理的对象,windows内核对象,如文件.数据库连接.套接字.COM对象等: 毫无例外地,如果我们的类型使用到了非托管资源,或者需要显式释放的托管资源,那么,就需要让类型继承接口IDisposable.这相当于是告诉调用者,该类型是需要显式释放资源的,你需要调用我的Dispose方法. 不