1.OPC UA客户端/服务器模型
客户端/服务器模型是OPC UA 中的标准通信模型。基于这样的想法:有一个被动服务器组件将其数据公开给所有客户端应用程序。客户端应用程序可以通过一些标准化服务从服务器访问数据和信息。
客户端/服务器模型
在客户端/服务器架构下,客户端要做的第一件事就是与服务器建立连接。客户端通过连接地址与服务器创建会话通道(这里我们跳过一些细节)。该会话包含安全消息,包括可选的加密和身份验证参数——,以识别客户端应用程序和服务器中的用户是否匹配。客户端还可以识别服务器并决定是否允许与该服务器通信。
会话建立后,客户端应用程序可以向服务器请求一些标准服务。这些服务包括:
1. 连接并创建会话
2. 浏览地址空间——以查找服务器上可用的内容
3. 读取-变量值或原始数据
4. 写入-变量值或原始数据
5. 调用方法
6.读取历史信息——变量和事件
7. 关闭会话并断开连接
所以最后,当客户端完成其需求时,它会关闭会话并断开连接。
客户端/服务器订阅
客户端/服务器模型中还包括订阅模型。在该模型中,每个客户端可以创建任意数量的服务器订阅(这里的订阅是订阅函数)。每个订阅都可以包含变量、EventNotifier 的MonitoredItems(设置了EventNotifier 属性的对象节点)。
客户端/服务器模型中的订阅
客户端/服务器的优点和缺点
客户端/服务器模型已成功应用于各种SCADA场景,以便在不同应用程序之间的连接数量不是很大时实现平滑交互。但是,如果有数十或数百个设备(即服务器)需要持续连接或类似数量的客户端需要连接到任何服务器,则您可能会在资源配置方面遇到麻烦,因为每个连接和订阅都需要在内部维护,它们在网络中占用单独的流量。
客户端/服务器模型的主要场景
OPC UA 并非旨在实现任何确定性通信或通过不可靠网络进行的通信。但它支持同步服务调用,接收即时结果或确认操作指令,这对于应用程序来说非常重要。它的安全性也很灵活,可以为每个应用程序和用户甚至每个变量定义规则。
随着OPCUA技术的应用范围越来越广,对OPCUA技术的需求也不断增加。许多应用希望OPCUA能够具有更具确定性的通信特性或者更好的可扩展性。为了应对这样的需求,OPCUA定义了Pub/Sub模型。下一期我们将深入讨论Pub/Sub模型的技术细节。