首页 理论教育 智慧建筑集成技术:服务器元数据

智慧建筑集成技术:服务器元数据

时间:2023-11-06 理论教育 版权反馈
【摘要】:服务器使用的标记空间必须在tagspaces 元素的Lobby 中标识,该元素是uris 的列表。如果特定标记字典提供XML 表示,则它可用于验证使用该标记空间的XML编码对象。因此,Server 实现可能希望使用描述检索规范日期的对象提供版本控制信息。每个str 的val 属性必须是编码的MIME类型。

智慧建筑集成技术:服务器元数据

Lobby 的几个组件提供了有关服务器实现OBIX 规范的其他信息,客户端将使用它进行基于可互操作的功能定制,以及与服务器的交互,以下小节介绍了这些组件。

1. tag spaces

服务器用于呈现有关其对象的元数据的任何语义模型(如标记词典)都在标记空间中声明,这是一组名称与特定用途或行业相关的标签。服务器使用的标记空间必须在tagspaces 元素的Lobby 中标识,该元素是uris 的列表。每个uri的名称必须是服务器在呈现标签时引用的名称,可以在displayName 属性中设置易于识读的名称。

uri 的val 必须包含此模型或字典的引用位置,为了防止更新引用的标记空间发生冲突,服务器必须为uri 元素中的标记空间提供版本信息(如果可用),版本信息必须表示为名为“version”的子str 元素。如果tagspace 发布源不提供版本信息,则服务器必须提供从tagspace 的发布源检索时间,检索的时间必须表示为名为“retrieve”的子abstime 元素。

有了这些信息,客户可以使用适当版本的模型或字典来解释服务器元数据。客户端必须使用版本(如果存在)并作为后备检索,以识别用于解释服务器提供的标记空间的版本。除了版本之外,服务器可以检索其他元素,因此除非版本不存在,否则客户端不得使用检索。例如,使用HVAC 标记字典和Building Terms 标记字典的服务器可以通过以下方式表达这些模型:

XML 中的命名空间与标记空间类似,但不完全相同。在XML 中进行对象编码时,XML 编码规则需要命名空间。标签空间作为由标签字典定义的标签的简单集合,甚至可能没有XML 表达式。因此,所有命名空间本质上都是标记空间,但并非所有标记空间都是XML 命名空间。其他编码(如JSON)不需要XML命名空间,但也可以实现需求。

如果特定标记字典提供XML 表示,则它可用于验证使用该标记空间的XML编码对象。XML 命名空间(如由obix:定义的OBIX 命名空间)被视为标记空间。每个OBIX 实现必须能够在OBIX 标记空间中引用和检索对象,并且如果标记的空间不包含在由实现解码的对象中,则必须假设该空间,编码实现可以包括引用它的对象的OBIX 标记空间。

需要注意的是,使用特定语义模型可能会泄露有关服务器不需要的信息。例如,利用医学标签字典并在Lobby 中呈现,服务器可能不期望地将其自身宣传为试图访问机密医疗记录的个人目标。因此,服务器应该保护Lobby 的这一部分,只保留与经过身份验证的授权客户端的通信

2. versioning

versioning 描述了服务器实现的规范预计会随着时间的推移而发生变化,并且可能无法以相同的速度在服务器上实现。因此,Server 实现可能希望使用描述检索规范日期的对象提供版本控制信息。这些信息应该作为uri 的子元素包含在内,如果被引用的源提供它,它应该包含在名为“version”的str 中,其中包含版本信息。如果版本信息不可用,它应该在abstime 中,名称为“retrieve”,以及从源检索服务器使用的版本的时间。

以下示例显示了示例服务器的Lobby 结构,该服务器使用OBIX REST 绑定和独立的非标准HTTP 绑定。请注意,客户端和服务器之间的实际对话受到管理对象关于其范围编组规则的约束。(www.xing528.com)

3. encodings

服务器必须包含编码Lobby 对象中支持的编码,这是str 元素的列表。每个str 的val 属性必须是编码的MIME(Multipurpose Internet Mail Extensions,多用途互联网邮件扩展)类型。可以在displayName 属性中提供更友好的名称。如果编码不是OBIX Encodings 文档中定义的标准编码之一,则规范文档应该作为list元素的子uri 包含在内。

发现用于客户端和服务器之间通信的编码是所使用的绑定的特定功能。客户端和服务器都应该支持XML 编码,因为大多数OBIX 实现都使用此编码。客户端和服务器必须能够根据绑定的错误消息规则协调可以支持的编码。客户端应该首先尝试使用所需的编码请求通信,然后根据服务器支持的编码,根据需要回退到其他编码。例如,支持OBIX Encodings 规范中定义的XML 和JSON编码的服务器将具有如下所示的Lobby(注意所使用的displayNames 是可选的):

接收不受支持的编码请求时,服务器必须发送UnsupportedErr 响应。

4. bindings

服务器必须包含Lobby 对象中支持的可用绑定规范。这是一个uris 列表,每个uri 的名称应该是绑定的名称。如相应的规范文档所述,如果绑定不是OBIX Bindings 规范中定义的标准绑定,则应该包含该绑定uri 的val,并且应该包含对绑定规范的引用。

支持多个绑定和编码的服务器可能仅支持可用绑定和编码的某些组合,例如,服务器可以通过HTTP 和SOAP 绑定支持XML 编码,但仅支持通过HTTP绑定的JSON 编码。

举个例子,支持OBIX REST 和OBIX SOAP 规范中定义的SOAP 和HTTP绑定的服务器将具有如下所示的Lobby(请注意所使用的displayNames 是可选的):

接收不受支持的编码请求时,服务器必须发送UnsupportedErr 响应。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈