【BBF系列协议】TR-106 CWMP端点和USP代理的数据模型模板
目录TR-106 CWMP端点和USP代理的数据模型模板执行摘要1 介绍CWMPUSP规范结构2 架构2.1 数据层次结构2.2 对象版本控制2.3 配置文件2.4 DEPRECATED 和 OBSOLETED 条目3 对象定义3.1 通用符号3.2 数据类型和表示3.3 供应商特定要素A参数单个实例对象:单个命令:单个事件:4.修订记录TR-106 CWMP端点和USP代理的数据模型模板执行摘要TR-106规定了所有CWMP[7]端点和USP代理[11]应遵循的数据模型指南。这些指南包括数据层次结构要求、数据模型的版本控制以及定义概要文件的要求。此外TR-106定义了尽可能体现这些准则的XML模式以及其用于定义所有CWMP和USP数据模型。这使得数据模型定义严格并有助于减少不同实现将解释数据模型的危险以不同的方式定义。TR-106还定义了一个XML模式允许设备描述其支持的CWMP数据模型。该描述既具体又详细使控制器能够准确了解设备支持包括任何特定于供应商的对象和参数。此架构的使用增强了互操作性并大大简化了新设备与控制器的集成。USP使用不同的机制GetSupportedDM消息。该机制是TR-369[11]中规定。1 介绍TR-069[7]定义了可应用于任何CWMP端点的CPE WAN管理协议CWMP方法的通用要求。它旨在支持各种不同的功能来管理CPE集合包括以下主要功能自动配置和动态服务调配软件/固件映像管理状态和性能监控诊断CWMP远程管理家庭网络的能力有许多好处包括降低与宽带服务的激活和支持相关的成本缩短新产品和服务的上市时间以及改善用户体验。图1将TR-069置于端到端管理架构中ACS是驻留在网络中的服务器并管理用户房屋中的设备。它使用TR-069中定义的方法或RPC来获取和设置设备的状态、启动诊断测试、下载和上载文件以及管理事件。这种状态的某些部分在受管设备中是常见的有些仅与某些设备类型或服务相关。USP用户服务平台支持USP控制器和USP代理网络允许应用程序操作服务元素即对象。它代表了CWMP在以下用例中的演变基于部署经验的TR-069改进给定端点的多租户管理即多个控制器的操作应用于其他市场空间包括消费电子产品和物联网代理直接或通过代理向一个或多个控制器公开服务元素。应用程序可以使用控制器来管理提供商控制的系统如CWMP ACS或者充当云、网关或通过智能手机访问的用户门户。代理和控制器还可以协同使用以创建智能应用程序的对等网络例如自动智能家居。图2:USP体系结构概述USP是以模块化方式设计的可以利用CWMP数据模型和数据模型模式以代表CWMP向消费电子、虚拟服务和物联网世界的演变。因此本文描述了如何在CWMP和USP的上下文中使用数据模型模式。规范结构图3显示了CWMP[7]和USP[11]系列标准如当前定义的总体规范结构。请注意随着新文件的发布这将逐渐过时。TR-069[7]定义了可应用于任何CWMP端点的CWMP方法的一般要求。TR-369[11]对USP药物也同样如此。TR-106本文档规定了任何CWMP端点或USP代理统称为代理支持的基线对象结构。它指定了如何构造和定义数据模型数据模型是对象和参数的集合通用方法根据这些对象和参数来配置、诊断和监视特定设备和服务的状态。实际数据模型在其自己的规范中定义。对于特定类型的设备预计TR-181i2[10]等文件中定义的基线将增加特定于设备类型的其他对象和参数。任何代理中使用的数据模型必须遵循本文件中描述的指南。这些指南包括以下方面数据层次结构的结构要求数据模型版本控制要求定义配置文件的要求此外本文档还定义了两个XML模式XML模式尽可能体现了这些准则并用于定义所有CWMP和USP数据模型。这使得数据模型定义严格并有助于减少不同实现将以不同方式解释数据模型定义的危险。XML模式允许设备描述其支持的CWMP数据模型。这是一个XML模式允许设备描述其支持的CWMP数据模型。描述既具体又详细允许ACS准确了解CPE支持的内容包括任何供应商特定的对象和参数。使用此模式可增强互操作性并显着简化新设备与ACS的集成.请注意USP出于相同目的使用不同的机制GetSupportedDM消息。它在TR-369中指定2 架构除非另有说明否则下文所述的所有要素均适用于CWMP和USP。2.1 数据层次结构代理的数据模型将遵循一组通用的结构要求。详细的结构取决于代理的性质。代理的数据模型将始终具有单个根对象称为“设备”。Root对象包含三种类型的子元素TR-181i2[10]中定义的对象TR-181i2中定义的组件或TR-143[9]等其他规范以及包含所有与特定服务相关的服务对象的单个“服务”对象。单个代理可能包含多个服务对象。例如同时用作VOP端点和游戏设备的设备可能包括VOP特定和游戏特定的服务对象。单个代理也可能包含多个相同类型服务对象的实例。何时合适的一个例子是为每个设备的附加磁盘提供TR-140[8]存储服务实例的代理。数据层次结构要求CWMP或USP数据模型必须符合以下结构要求根数据模型定义必须恰好包含一个称为“设备”的根对象。根对象定义必须仅包含一个“服务”对象。根对象定义必须仅包含一个“服务”。对象。服务数据模型定义必须定义一个从“Device.Services”对象正下方开始的对象层次结构。对于定义的每个多实例对象数据模型还必须定义相应的参数指示多实例对象的实例数。此参数的名称必须是与“NumberOfEntries”连接的对象的名称。此参数必须出现在与其相关的多实例对象的同一对象中。形式上数据层次结构的顶层定义如下Element “Device”| “Device.” TR-181DeviceObject| “Device.Services.” ServiceObject “NumberOfEntries”| “Device.Services.” ServiceObject “.{i}”TR-181DeviceObject // As defined in TR-181i2, e.g. “UserInterface” or“ManagementServer”ServiceObject // As defined in other specs, e.g. TR-140支持的数据模型和实例化的数据模型:代理的支持数据模型与其实例化数据模型之间存在区别支持的数据模型是代理中具有代码支持的那些对象和/或参数。实例化的数据模型是当前存在的那些对象实例和/或参数。TR-181i2[10]定义了一个支持的数据模型对象该对象允许代理向控制器指示其支持的数据模型这有助于控制器管理该设备。SupportedDataModel对象具有以下属性它包含URL列表每个URL都允许控制器确定部分支持数据模型的详细信息。当支持的数据模型更改时例如由于软件被加载或卸载条目被添加到或从该URL列表中删除。此对象不与USP一起使用。TR-369[11]定义了GetSupportedDM消息以提供此信息。2.2 对象版本控制为了允许服务对象或根对象的定义随时间变化服务对象或根对象的定义必须具有明确指定的版本。服务对象和根对象的版本编号被定义为使用主/次版本编号约定。对象版本定义为一对整数其中一个整数表示主要版本第二个整数表示次要版本。版本必须用一个点Major.Minor分隔的两个整数书写给定对象的第一个版本应定义为版本“1.0”。对于对象的每个后续版本如果后续版本与先前版本兼容则主要版本应保持不变次要版本应增加一个。例如“2.17”之后的下一个兼容版本将是“2.18”.第2.2.1节介绍了被认为与早期版本兼容的版本。对于该对象的每个后续版本如果后续版本与先前版本不兼容则主要版本必须递增一个次要版本可以重置回零。例如“2.17”之后的下一个不兼容版本可能是“3.0”。兼容版本的要求对于要视为与另一个版本兼容的对象的一个版本后续版本必须是早期版本的严格超集。使用主/次版本控制此要求仅适用于共享相同主版本的次要版本之间.更具体地说对于所有与之兼容的早期版本这需要以下版本后面的版本可能会添加以前在任何早期版本中都没有的对象和参数但不能删除早期版本中已经定义的对象或参数。后一版本不得修改早期版本中已经定义的任何参数或对象的定义除非原始定义明显错误并且必须修改为勘误表或通过更正过程澄清后来的版本不得要求控制器明确操作自最早的兼容版本以来添加的任何对象或参数以确保设备的正确操作除了那些与以后版本中添加的功能特别相关的功能。也就是说后面的版本将容纳一个对后续版本中添加的元素一无所知的控制器。上述兼容性定义的目标是确保控制器和代理之间的双向兼容性。具体来说如果控制器仅支持对象的早期版本与代理支持的版本相比则控制器可以成功地在代理中管理该对象就好像它是早期版本一样。如果代理只支持对象的早期版本而不是控制器支持的版本则控制器可以成功地在代理中管理该对象就好像它是后期版本一样不支持仅在后期版本中定义的新组件。Version Notation(版本符号)对于对象定义以下符号以标识特定版本符号描述例子ObjectName:Major.Minor指的是对象的特定版本Device:2.0ObjectName:Major指的是具有指定主要版本的对象的任何次要版本Device:2ObjectName指的是对象的任何版本Device请注意此处定义的版本符号仅用于文档目的。数据模型中对象和参数的实际名称不得包含版本号。2.3 配置文件注意最初配置文件被视为限制控制器需要在其可能管理的各种设备中适应的可变性的手段。现在提供此功能对于CWMP由TR-181i2[10]支持的数据模型对象参见第2.1.2节和关联的设备类型XML文档DT实例。对于USP通过TR-369[11]获得支持的DM消息。配置文件是与给定对象关联的需求的命名集合。代理可以坚持零或更多的配置文件。遵守配置文件意味着代理支持该配置文件定义的所有要求。配置文件的使用为服务提供商提供了指定数据模型支持要求的速记方法。以下部分定义了定义与数据模型关联的配置文件时要使用的约定。配置文件的范围给定的配置文件仅在具有特定主版本的特定服务对象或根对象的上下文中定义。对于每个配置文件定义必须明确标识要应用配置文件的特定对象名称和主要版本在为相同对象和主要版本定义的配置文件中配置文件的名称必须是唯一的但是可以重用名称来为对象名称和主要版本的不同组合定义不同的配置文件。例如如果我们定义与对象“X:2”对象X的主要版本2相关联的配置文件“A”则可以使用相同的名称“A”来定义对象“Y:1”或对象“X:3”。给定的配置文件与给定对象的最小次要版本相关联。对象的最低要求版本是包含配置文件定义的所有必需元素的最低版本。对于每个配置文件定义必须明确标识特定的最小版本。多个配置文件支持对于给定类型的服务对象或根对象可以定义多个配置文件。可以定义具有独立或重叠要求的配置文件。配置文件版本配置文件的版本编号被定义为使用次要版本编号约定。也就是说对于给定的配置文件名称每个连续版本必须与所有早期版本兼容。对配置文件的任何不兼容更改都必须使用不同的配置文件名称。为了允许配置文件的定义随时间变化每个配置文件的定义必须具有相关的版本号。对于要视为与另一版本兼容的配置文件的一个版本后续版本必须是早期版本的严格超集。对于所有与之兼容的早期版本这需要以下版本后期版本可能会添加不在早期版本的配置文件中的要求但不得删除要求。后面的版本可以删除以前要求的一个或多个条件。例如如果以前的配置文件仅在条件a为真的情况下才需要X那么后面的配置文件可能需要X无条件.对于配置文件定义以下符号以标识特定版本符号描述例子配置文件名称版本指配置文件的特定版本.Baseline:1配置文件名称引用配置文件的任何版本BaselineProfileName必须以字母或下划线开头后续字符必须是字母、数字、下划线或连字符。术语“字母”和“数字”的定义见XML规范[附录B/1]。连字符很容易与有时由连字符算法插入的任意连字符混淆。因此ProfileName不应包含任何连字符。在BBF标准中ProfileName将始终以大写字母开头或内部配置文件并且不会包含任何连字符有关相应的规范要求请参见C.3.1Baseline Profiles(基线配置文件)对于每个服务对象和根对象应至少定义一个配置文件。在许多情况下需要定义一个基线配置文件该配置文件指示支持该对象的任何设备所需的最低要求。概要文件中的需求类型因为概要文件是在单个对象和主要版本的上下文中定义的所以与概要文件相关的所有需求必须特定于与该对象相关的数据模型。概要文件需求可以包括与对象的数据模型相关的以下任何类型的需求对参数读取支持的要求。参数写入支持的要求。对命令支持的要求。支持包含在整个对象中的子对象的要求。添加或删除子对象实例的能力要求。支持参数的活动通知的要求。支持给定参数访问控制的要求。对于上面列出的每个需求类别概要文件可以无条件地定义需求也可以在需求上放置一个或多个条件。例如配置文件可能要求仅当设备支持某个其他参数时才支持读取某个参数或对象配置文件本身不需要的对象。这些条件将直接与与配置文件相关联的整个对象的数据模型相关。因为设备必须能够支持多个配置文件所以必须定义所有配置文件使它们不矛盾。因此概要文件只能定义要满足的最低要求而不能指定负面要求。也就是说配置文件将不包括指定设备不支持的内容的要求或排除一系列值的要求。2.4 DEPRECATED 和 OBSOLETED 条目数据模型定义中的关键词“已弃用”应解释如下该术语指的是在当前版本的标准中定义的对象、参数或参数值但没有意义、不适当或不必要。这样的对象、参数或参数值将从数据模型的下一个主要版本中删除。下面给出了如何解释或实现不推荐的对象、参数或参数值的要求。有关如何解释或实现特定的已弃用对象、参数或参数值的详细信息请参阅对象或参数的定义。数据模型定义中的关键词“已废弃”应解释如下该术语指的是满足不推荐使用要求的对象、参数或参数值并且已过时。这些对象、参数或参数值可以从数据模型的较新次要版本或概要文件的较新版本中删除而不会被视为违反向后兼容性规则。下面给出了如何解释或实现废弃对象、参数或参数值的要求。有关如何解释或实现特定废弃对象、参数或参数值的更多信息请参阅对象或参数的定义。如果配置文件中的任何项目已弃用或作废则该配置文件必须相应地弃用或作废。因此需要定义一个新的配置文件版本以省略任何弃用或作废的项目。弃用项目的要求本节定义了适用于所有DEPRECATED对象、参数和参数值的要求除非被对象或参数定义明确覆盖。数据模型要求DEPRECATED参数、对象或参数值的定义必须包括该项被弃用的原因说明。DEPRECATED参数、对象或参数值的定义可规定与项目相关的进一步要求此类要求可能会凌驾于TR-069[7]或TR-369[11]中规定的关于弃用元素的一般代理或控制器要求。代理要求DEPRECATED参数的值必须对其数据类型有效并且满足任何范围对于数字参数、长度对于字符串、base64或hexBinary参数和枚举值对于字符串参数要求。代理可以忽略DEPRECATED参数的详细行为要求例如其值是唯一密钥。如果数据模型定义允许这样的操作则代理必须允许创建DEPRECATED对象、修改DEPRECATED参数和设置DEPRECATE参数值。但是它可以选择不将这些更改应用于其操作状态无论DEPRECATED更改是否应用于代理的操作状态读取DEPRECATED可写参数都应返回上次写入的值即即使代理选择不将其应用于其操作状态也应存储该值。代理可以拒绝控制器将任何参数设置为DEPRECATED值的尝试。控制器要求控制器不应创建DEPRECATED对象、修改DEPRECATED参数或设置DEPRECATE参数值。控制器应忽略DEPRECATED对象、参数和参数值。控制器不应将DEPRECATED参数设置为对其数据类型无效的值或无法满足任何范围数字参数、长度字符串、base64或hexBinary参数或枚举值字符串参数要求。控制器不应将任何参数设置为弃用值。废弃条件要求本节定义了适用于所有已废弃对象、参数或参数值的要求除非被对象或参数定义明确覆盖。已废弃的对象、参数或参数值必须满足上一节的所有要求。此外以下要求适用。、废弃的对象、参数或参数值可以从数据模型的后续次要版本中删除而不会被视为违反向后兼容性规则不能从当前版本的配置文件中删除已过时的对象、参数或参数值但可以从更高版本的配置中删除而不认为这违反了向后兼容性规则。数据模型定义必须包括已从数据模型或其配置文件中删除的那些已废弃对象、参数或参数值的列表。这是为了防止将来的命名空间冲突。3 对象定义3.1 通用符号参数名称使用类似于目录树的分层形式。特定参数的名称由层次结构中以“.”点分隔的每个连续节点的串联表示从层次结构的主干开始一直到叶子。指定部分路径时表示层次结构中的中间节点结尾的“.”点始终用作最后一个字符参数名称必须区分大小写。层次结构中每个节点的名称必须以字母或下划线开头后续字符必须是字母、数字、下划线或连字符。术语“字母”和“数字”的定义见XML规范[附录B/1]。连字符很容易与有时由连字符算法插入的任意连字符混淆。因此层次结构中节点的名称不应包含任何连字符。此外层次结构中节点的名称不应以下划线开头。在BBF标准中层次结构中节点的名称始终以大写字母开头且不包含任何连字符或下划线有关相应的规范要求请参见C.3.1如果一个对象可能出现多个实例则会显示占位符节点名称i。在实际使用中此占位符将被实例标识符替换。3.2 数据类型和表示参数使用默认SOAP数据类型的有限子集。支持的数据类型由DM模式定义并在A.2.3中列出。指定IP地址、MAC地址等表示的命名数据类型在DM实例文档中定义见附录a。具有这些定义的XML文件和相应的HTML文件可以在数据模型资源页中找到。请注意此DM实例定义了预期在多个数据模型定义中使用的命名数据类型可以在任何DM实例文档中定义本地命名数据类型。以下小节指定了控制XML文档中参数值表示的其他规则。日期和时间规则除非在该类型参数的定义中另有明确规定否则所有时间都必须用UTC世界协调时间表示。如果代理无法获得绝对时间则应指示自启动以来的相对时间其中启动时间假定为第1年1月的第一天开始或0001 0101T00:00:00。例如启动后的2天、3小时、4分钟和5秒将表示为0001 01 03T03:04:05。启动后的相对时间必须使用非分区表示法表示。任何年份值小于1000的未分区值必须解释为自启动以来的相对时间。如果时间未知或不适用则表示“未知时间”的以下值必须为使用0001-01-01T00:00:00Z。对于无限时间线以下值表示“无限时间”必须使用9999-12-31T23:59:59Z。除表示自启动以来的相对时间如上所述之外的任何dateTime值都必须使用UTC时区表示法即必须包含时区后缀“Z”、“-00:00”或“0:00”。3.3 供应商特定要素对于定义为包含逗号分隔列表的字符串格式定义如下逗号分隔列表中的每对连续项目之间必须有分隔符。分隔符必须正好包含一个逗号字符也可以在逗号之前或之后包含一个或多个空格字符。整个分隔符包括任何空格字符不得被视为其分隔的列表项的一部分。逗号分隔列表中的最后一项不得后跟分隔符。逗号分隔列表中的单个项目不得包含空格或逗号字符。项目值中的任何空格或逗号字符必须使用RFC 3986中指定的百分比编码进行转义可以创建一个列表列表但如果可能应首选其他解决方案。如果字符串包含列表列表上一段的规则意味着内部列表的逗号分隔符将按百分比编码。例如包含元素“a”、“bc”两元素列表和“d”的三元素列表可以表示为“ab%2Ccd”。为了避免对内部分隔符进行百分比编码可以通过将内部列表放在方括号内来“保护”内部列表例如上面的列表可以表示为“a[bc]d”。为了避免歧义不理解新语法的控制器将“a[bc]d”解释为四元素列表“a”“[b”“c]”“d”数据类型和/或参数定义必须明确说明支持新语法a.2.3.1a.2.7.1。引用参数或对象的参数对于定义为包含对象层次路径名的字符串参数或定义为包含逗号分隔的对象路径名列表的参数中的每个项对象名称的表示形式不得包含尾随的“点”TR-181i2[10]Device:2数据模型中的这种类型是Device.InterfaceStack.{i}.LlowerLayer。对于此参数以下是格式正确的值的示例Device.Ethernet.Interface.1参数值中的路径名必须始终为完整的路径名。对于CWMP有一个例外即以点开头的路径相对于根或服务对象。例如在设备根对象中参数值“.DeviceInfo”始终表示“Device.DeviceInfo”。注意此异常不适用于USP为了能够将参考参数用作唯一键A.2.10.1必须在比较之前将其路径名称从概念上转换为完整的路径名称。例如在设备根对象中“.DeviceInfo.”和“Device.DeviceInfo”将比较为相等。如果引用参数是列表值的即是路径名称或实例编号的列表则在比较时参数值在概念上必须视为集合即比较必须忽略项目顺序和任何重复项目。例如“1,2,1”和“2,1”将比较为相等因为引用实例1和2都相同。在数据模型中引用被定义为强或弱。强引用总是引用现有的参数或对象或者是空引用。另一方面弱引用不一定引用现有参数或对象。单位惯例对于以单位定义值的数字参数与位和字节相关的单位将始终指2的幂。例如千字节总是1024字节兆字节总是1024*1024字节等等。默认最大字符串长度对于字符串值参数最大长度由组成字符串的元素的大小显式指示或暗示。对于内容为枚举的字符串最长的枚举值决定最大长度。类似地对于内容为模式的字符串可能的最长匹配值决定了最大长度。对于内容为列表的字符串最大项目数和单个项目长度有助于确定最大字符串长度。供应商特定要素供应商可以使用供应商特定的元素参数、对象、命令、事件扩展标准化数据模型。供应商特定元素可以在单独的命名层次结构中定义也可以在标准化命名层次结构内定义。未包含在其他供应商特定对象中的供应商特定参数、对象、命令或事件的名称必须具有以下格式X__VendorSpecificName在本定义中供应商是唯一的供应商标识符可以是OUI或域名。用于给定供应商特定参数的OUI或域名必须是分配给定义此参数的组织的名称不一定与代理的供应商相同。OUI是[2]中定义的组织上唯一的标识符必须使用所有大写字母并包括任何前导零将其格式化为六个十六进制数字字符串。域名必须为大写每个点“.”必须用连字符或下划线替换。VendorSpecificName不能包含“.”句点或空格字符。注意:使用字符串“X_”表示特定于供应商的参数意味着任何标准化参数都不能以“X_包含在另一个特定于供应商的对象中的特定于供应商元素的名称该对象本身以上述前缀开头不需要包含前缀。供应商特定元素的完整路径名长度不得超过256个字符。以下是一些特定于供应商的元素名称示例A参数Device.UserInterface.X_012345_AdBanner单个实例对象:Device.X_EXAMPLE-COM_MyConfig.Status单个命令:Device.X_EXAMPLE-COM_MyCommand()单个事件:Device.X_EXAMPLE-COM_MyEvent!适当时供应商还可以扩展枚举的值集。如果这样做供应商指定的值必须采用“X__VendorSpecificValue”格式。此类字符串的总长度不得超过31个字符。4.修订记录修订时间修改版本号修订内容January 2022cwmp-datamodel-1-9.xsdAllowed the version attribute in component referencesAllowed minEntries and maxEntries in command and event argument objectsAllowed status attribute in profile command/event argumentsAdded secured attributeNovember 2020cwmp-datamodel-1-8.xsdAllowed command attributes, e.g. mandatory, in component definitionsSeptember 2019cwmp-datamodel-1-7.xsdSupported implementation defaults, version attribute, description templates,writeOnceReadOnly access type and the decimal datatypeMarch 2018cwmp-datamodel-1-6.xsdSupported USP commands, events and mount pointsSeptember 2013cwmp-datamodel-1-5.xsdAdded profile/minVersion attributeAllowed uniqueKey parameters to be in sub-objectsAdded UUID data typeAdded nestedBrackets attribute, and allowed use of the list facet in named data type definitionsSeveral other minor updates and clarificationsJuly 2011cwmp-datamodel-1-4.xsdAdded top-level file attributeNovember 2010cwmp-datamodel-1-3.xsdRelaxed some referential constraints (in the light of experience)Added description/action prefix optionAdded syntax/commandMarch 2010cwmp-datamodel-1-2.xsdDistinguished functional and non-functional keys; supported #.A relative path syntaxSeptember 2009cwmp-datamodel-1-1.xsdMade import/file optional; supported range/stepNovember 2008cwmp-datamodel-1-0.xsdOriginaltr369服务端开源项目: AgenticAIoT♂️ 个人主页帐篷Li的个人主页✍作者简介专注智能物联网设备云管解决方案 希望大家多多支持我们一起进步项目合作开发定制技术交流可私聊右侧扫码。欢迎评论 点赞 收藏 加关注技术交流需求定制可以扫码添加相互学习交流
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2423937.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!