首页 理论教育 地球观测传感网消息通知服务

地球观测传感网消息通知服务

时间:2023-10-04 理论教育 版权反馈
【摘要】:OGC从OWS1.2的用例研究中就发现了OGC Web服务中存在一些通信问题。为此,OGC在SWE框架中对消息服务进行了研究。提出了一个基于事件的消息通知标准——传感器警告服务 以及一个消息服务最佳实践——网络通知服务 。在SAS的接收者需要使用其他协议进行消息接收时可以使用WNS。WNS可看做是一个消息传输服务。

地球观测传感网消息通知服务

OGC从OWS1.2的用例研究中就发现了OGC Web服务中存在一些通信问题。为此, OGC定义了Web服务之间的消息通信框架 (OGC,2003)。这种消息通信框架独立于传输协议和消息编码。该框架的目的在于简化OGC Web服务和服务链的实施。随着服务模型复杂性的增加,服务处理数据量的膨胀,尤其是传感网出现后实时性处理的需要,使得异步性这一问题再度引起OGC的重视。为此,OGC在SWE框架中对消息服务进行了研究。提出了一个基于事件的消息通知标准——传感器警告服务 (Sensor Alert Service, SAS) (OGC,2003) 以及一个消息服务最佳实践——网络通知服务 (Web Notification Service,WNS) (OGC,2007a)。二者都是基于消息中间件机制,前者是基于发布/订阅消息机制,而后者是基于消息队列机制。

1. 传感器警告服务 (SAS)

SAS定义的接口允许传感器节点发布和公布观测数据或其描述元数据。但是与其说SAS是一个注册器不如说它更像一个事件通知系统,SAS框架如图8-9所示。

图8-9 SAS框架 (OGC,2008)

传感器或其他数据产生源在SAS上用HTTP POST请求公布其数据类型。如果这些数据类型以前没有传感器发布过,SAS将指导消息服务器建立一个新的多用户组 (Multiple User Chat,MUC),否则,SAS提供一个已经存在的MUC。SAS内含有存储了现有MUC信息的查询表。理论上,一个SAS实例可以使用一个MUC来服务各种传感器。SAS接收到传感器的广告后,返回使用HTTP的MUC。传感器用MUC进行注册来发布数据。这种注册实际上就是订阅MUC,并使用了XMPP协议。

SAS的客户端可能是人类用户或机器,甚至可以是另一个SAS。客户端通过HTTP发送Get Capabilities请求来了解SAS的能力。基于HTTP的Get Capabilities Response主要包括传感器发布的所有信息以及一个SAS控制的Subscription Offering ID。这个ID用于标识一个唯一的MUC。

要订阅一个特定的Subscription Offering ID,客户需要发送两次订阅请求。第一次是基于HTTP并返回MUC,这只是一次查询而非真正的订阅。真正的订阅发生在基于XMPP的订阅过程执行后。有一个例外存在: 如果用户希望通过WNS进行通知。只有在这种情况下,订阅处理在第一次请求后结束,SAS返回一个状态消息,表明订阅已经被成功处理。

2. 网络通知服务 (WNS)

WNS是客户可以与服务进行异步消息交换的服务,请求处理有显著延时的时候可以采用该服务。HTTP等同步传输协议为服务提供了发送请求以及接收请求响应的基本功能。HTTP是一种可靠的传输协议,通过每次传输到达或失败的确认,HTTP可以确保每个请求包的传递。例如,在简单的WMS里,用户在发送请求后会接收到可视化图形信息或错误消息。但是当服务复杂时,基本的请求/响应机制需要增加延时/失败信息。例如,中期或长期的操作要求支持用户和相应服务以及两个服务之间的异步通信机制。WNS满足这种需要,它将基于HTTP的请求信息转发给使用任意通信协议的请求接收端。例如,使用Email,短消息服务 (Short Message Service,SMS),即时消息 (Instant Messaging, IM),自动电话留言或传真等。WNS可以作为一个传输转化器: 它可以在输入和输出消息协议之间进行转化。与SAS不同,WNS并不是一个主动预警服务。在SAS的接收者需要使用其他协议进行消息接收时可以使用WNS。

SWE中至少两个服务可以使用WNS。SPS允许用户定制传感器任务或获取某种传感器数据集请求的可行性。由于任务定制和可行性研究都是长期过程,SPS可以使用WNS将原始查询结果转发给用户。当SAS的客户端不能访问网络时,SAS使用WNS来进行消息的传递。

WNS可看做是一个消息传输服务。WNS并不关心消息的具体内容,被传递的消息对它而言就是一个“黑盒子”。

WNS模型包括两种不同的通信模式。即: 单向通信 (one-way-communication) 和双向通信 (two-way-communication)。前者将消息发送给客户端而不需要任何响应。后者在向客户端传递消息的同时需要接收异步响应。(www.xing528.com)

WNS通知的客户可以是一个用户或者是一个OGC服务。无论哪种情况,客户都需要先在WNS上进行注册。注册完之后,WNS会向客户返回一个registration ID。这个ID是每个WNS实例唯一标识符,用于WNS标识消息的接收方。

WNS接口包括7个操作:

(1) Get Capabilities: 允许客户端请求和接收描述特定服务的元数据文档。该操作还支持服务的版本请求。

(2) Register: 该操作允许客户使用其通信终端进行注册。

(3) Unregister: 允许客户取消注册。

(4) Do Notification: 允许客户发送消息到WNS。

(5) Get Message: 如果收到所选择的传输协议的限制时,允许客户检索没有使用WNS传输的消息。

(6) 可选操作: Get WSDL,该操作允许客户请求和接收服务器接口的WSDL定义。Update Single User Registration和Update Mullti User Registration操作允许客户使用新的通信终端更新注册。

提供一种不使用SOAP时支持异步通信的机制: WNS中规定了如何指出服务支持的通信协议,服务支持的消息格式、服务从客户端请求通信终端信息的方式以及封装消息、增加自动处理消息内容需要的元数据的方式。

WNS使用了两种消息容器 (container) 来交换消息。Notification Message用于One-way通信,而Communication Message用于Two-way通信。但需要回复消息时,消息的发送者可以使用Communication Message。接收端应该知道需要哪种回复消息,建立相应的Reply Mes-sage并将其送回给给定的Callback URL。

One-way通信不支持返回值和out类型参数,但能解决一些传统同步阻塞调用模型所难以解决的浪费服务器端资源,降低系统吞吐量,容易因服务器之间调用形成回路而导致的死锁等问题。Two-way方法指客户端和服务器端分别向对方发出One-way调用。客户端发送调用后不必阻塞等待应答而继续执行其他操作。服务器端完成服务后,通过向客户端发送一个对应的One-way调用返回结果。这种方法不利用多线程而又能提高系统吞吐率,但该方法要求把应用和逻辑分割开来,也增加了服务器设计的复杂性。

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

我要反馈