小编Jar*_* H.的帖子

如何使用 WS-Discovery 规范在 Java 中发现网络上的 ONVIF 设备?

我正在尝试使用一些 Java 代码发现 ONVIF 设备。具体来说,我试图获取他们的设备服务地址(我相信这只是他们的 IP 地址?),正如ONVIF 核心规范指出(第 4.3 节)“成功的发现提供了设备服务地址。一旦客户端拥有设备服务地址它可以通过设备服务接收详细的设备信息...”。最终获得网络上 ONVIF 设备的详细信息是我的目标。一般来说,我也在寻找一些与使用 ONVIF 规范相关的指南。

我对网络服务世界(以及一般的网络)还是个新手,所以如果我说了什么蠢话,请原谅我。不过,我自己也为此付出了很多努力:我阅读了大量的ONVIF Core SpecONVIF Application Programmer's GuideWS-Discovery Specific。如果可以的话,我会总结一下我所知道的,以便您可以告诉我我是否走在正确的道路上:

  1. “Web 服务”是使用独立于平台和语言的 Web 服务标准(例如 IP 网络上的 XML、SOAP 和 WSDL)的标准技术的名称。基本思想是我们希望能够从任何编程语言调用有效的方法/函数(服务)。
  2. Web 服务通常托管在服务器上;但在 ONVIF 使用案例中,Web 服务提供商是 ONVIF 设备(例如 IP 摄像机)。因此,为了通过任何语言与设备进行交互,我们使用 Web 服务操作/调用,因为 Web 服务调用可以用任何语言实现。
  3. XML 是数据描述语法(使用它是因为它与语言无关;任何语言都可以解析它)。SOAP 是用于来回获取 SOAP 注入的 XML 文档(基本上是进行我们的方法调用)的通信协议。WSDL 用于描述服务(它是基于 XML 的 Web 服务接口描述)。我在这里下载了用于设备管理的 WSDL ,并通过 WSDL 编译器wsimport(由 JDK 提供)生成 WSDL 中的 Java 类以在我的代码中使用。但我知道调用这些方法将在设备发现之后进行,对吗?
  4. ONVIF 设备是根据 WS-Discovery …

java soap ws-discovery onvif

4
推荐指数
1
解决办法
1万
查看次数

标签 统计

java ×1

onvif ×1

soap ×1

ws-discovery ×1