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的配置可以采用相同的方式。