在对象世界中管理数据
在新兴的数字世界中, 数十亿人、系统和设备将实时互动, 需要在分布式数据管理、互操作性和基于规则的事件处理方面采取新的破坏性创新方法。
除了统一本体论、"物联网标准"和"业务标准"联盟之外, 还需要汇聚在一个共同的数据交换格式和 API 模型上, 以支持基础广泛的跨行业领域用例之间的插件和播放互操作性。
分布式数据管理和互操作性依赖于一个共同的本体(语义)和通用数据格式(用于语法) , 使服务能够识别和解释在连接系统之间交换的结构化数据。
在本文中,"对象管理"是指在分布式环境中创建、存储、更新、访问和共享本体对象实例状态的机制。
什么是服务?
"服务"一词根据具体情况有不同的含义。 因此, 围绕服务的概念存在着一些混乱, 因为人们试图区分应用服务、域服务、基础设施服务、面向服务的体系结构(SOA)服务等。 在所有这些情况下,"服务"一词是有效的, 但作用不同, 可以跨越应用程序的所有层次[15]。
在领域驱动设计(DDD)中, 一个"域"服务以领域概念(本体类)为基础, 非常细粒度(如 微服务) , 可以被认为是一种过程的封装。 "应用程序"服务为域服务提供了一个托管环境, 并将域的功能作为一个 API 公开给外部服务。 应用程序服务根据一个公共信息模型的标识值和原始数据结构(在上层本体中)。
在一个模糊世界的模型服务
考虑到物联网的大量数据以及对实时通信流的需求, Gartner 预测, 到2022年, 75% 的企业生成的数据将在数据中心或云以外创建和处理。 很明显, 只有云计算的方法不再能够跟上必要的体积、延迟、可靠性和安全性的挑战。
一个分布式计算模型(如fog computing)可以通过提供一种标准的、通用的方式来管理、管理和分配必要的资源和服务, 使数字世界具有功能性和互操作性, 从云到物联系起来(图50)。
图50 语义互操作性和雾计算服务模型
该模型可以"混合"流行的体系结构样式(如 DDD、模型驱动设计、事件源和命令查询责任分离CQRS)来定义一个可互操作系统系统中对象管理的简单和可伸缩应用服务。 这些系统可以跨越物联网设备、商业、车辆和城市的子系统。 这些服务可以利用上层本体和信息模型(见第二部分)来支持系统连接、统一数据交换、事件和查询处理、单元和标识符转换以及语义注释。 为了扩展规模, 这些服务必须是稳定, 不变而且独立,从边缘控制器到云服务器,可以嵌入到任何类型的机器。
该模型可以定义一组对象管理服务(类似于 IETF 的可扩展供应协议(EPP)) , 它们没有明确地与特定对象绑定, 并且可以扩展到所有本体类中的对象。 虽然对象管理与面向对象程序设计相似, 但该服务模型可以代表类似于模型驱动开发编程中的元数据抽象。 这些服务可以创建元数据, 并在运行时解释该元数据。 代表本体的元数据可以在一个完全抽象于任何编程环境的存储库中维护。 底层代码作为服务的平台(例如 Mendix)可以利用这种服务模型, 在完全通过元数据解释执行的应用程序之间提供固有的互操作性。
虽然服务和安全模型之间存在着很强的关系, 但是该系列中的这一部分将侧重于与语义相关的服务, 这与任何特定的安全模型无关。