用于促进开放工业生态系统中的计算机程序安装的授权的系统和方法
1.本文公开的主题涉及用于促进开放工业生态系统中的计算机程序安装的授权的系统和方法。
2.在许多基于云的工业生态系统中,计算机程序或简单的应用程序是在云平台处提供和存储的,例如计算机程序或简单的应用程序可以由云提供商提供作为平台即服务(paas)。所提供的服务类型通常是关于工业的数字化服务。平台提供商还可以为工业设施提供自动化系统。
3.在某些情况下,当顾客购买了用于她/他的工业设施的提供商的设备并且愿意使用云平台,但是该顾客具有由顾客或第三方开发的她/他自己的应用程序时,顾客可能无法接受将应用程序上传到云。这可能有多种原因。例如,可能存在与应用程序相关联的某些专有技术,顾客不期望将其上传到开放生态系统的云上。
4.从提供商的角度来看,让未知的应用程序在她/他的自动化系统设备上运行是不利的。这可能有几个原因:它可能会大大地降低自动化设备平台的质量;影响配置一致性,因为配置数据需要分布在自动化工业设备(或简单地边缘设备)和云中;在涉及生态系统和顾客应用程序的多应用程序场景中,在部署时间没有资源消耗和边缘应用程序依赖性的全局规划/调度;平台提供商无法对本地部署的内容进行质量控制,这可能会影响服务许可协议并增加欺诈、意外误用和与保修相关的问题/不合理索赔的风险。
5.需要一种针对上述困境的可持续解决方案。
6.为了实现该目的,本发明提供了一种系统,包括:第一存储器,驻留在工业设施处并且存储第一机器可执行部件;第一处理器,驻留在工业设施处,可操作地耦接到第一存储器,并且被配置为执行第一机器可执行部件。第一机器可执行部件包括云连接部件。云连接部件可以与驻留在工业设施处的云代理设备(或云网关)相关联。云连接部件被配置为接收和存储待安装在驻留在工业设施处的一个或多个工业设备上的至少一个计算机程序。在实施例中,云连接部件可以将至少一个计算机程序存储在第一存储器中。第一存储器可以是易失性或非易失性存储器。在实施例中,云连接部件可以是驻留在云代理设备处的软件部件。在实施例中,云代理设备可以具有用作用于至少一个计算机程序的存储装置的非易失性存储器。
7.该系统进一步包括:第二存储器,驻留在云平台处并且存储第二机器可执行部件;第二处理器,驻留在云平台处,可操作地耦接到第二存储器,并且被配置为执行第二机器可执行部件。第二机器可执行部件包括管理部件。管理部件属于生产一个或多个工业设备的(例如合法的)实体(提供商)。该实体可以是为工业提供数字化和/或自动化服务的实体。具体地,该实体与工业设施所属的实体不同。
8.云连接部件和管理部件被配置为彼此交互,使得在交互期间,管理部件定义允许的安装上下文(即,允许至少一个计算机程序的安装的上下文),并且仅授权在允许的安装上下文的范围内的至少一个计算机程序在一个或多个工业设备上的安装,其中,交互不包括将至少一个计算机程序(从云连接部件)发送到管理部件。
9.换言之,云连接部件和管理部件运行针对至少一个计算机程序是否可以被安装在一个或多个工业设备上以及在哪些条件下(在哪些上下文内)允许安装的检查。
10.该系统允许提供商接收关于待安装在一个或多个工业设备上的计算机程序的知识,以便能够确保计算机程序在一个或多个工业设备上正常运行。该系统还确保与计算机程序相关联的顾客的敏感数据不会传到云。例如,提供商可以与顾客签订关于工业设备的服务许可协议和/或向顾客提供数字化服务,包括但不限于分析由工业设备收集的数据、生产优化等。
11.换言之,本文所公开的主题涉及计算机程序的供应和部署,例如,在涉及两个或更多个合作伙伴的开放生态系统中用于工业边缘计算的边缘应用程序。其允许合作伙伴经由互联网灵活且安全地管理计算机程序,由此不需要上传计算机程序,例如,如果这不被合作伙伴的信息技术安全措施、信任或性能原因中的一个所允许。同时,它允许管理计算机程序的平台的提供商根据其属性、运行时间要求和依赖性检查并决定每个计算机程序的可部署性。这允许避免对预期在其上运行计算机程序的工业设备以及已经在该设备上运行的其它计算机程序的任何负面影响。
12.在实施例中,被配置为管理计算机程序的管理部件(例如,应用程序管理部件)可以是硬件或软件部件或硬件和软件的组合。在实施例中,管理部件是管理后端服务器。在实施例中,工业设备是边缘设备,并且管理部件是边缘管理后端服务器。
13.在实施例中,工业设备是边缘设备,特别是位置靠近机器控制器、传感器和致动器的工业计算机,并且在操作和信息技术的通信网络之间进行调解,这能够托管和运行用于车间的实物资产的数字化的可下载的应用程序。在实施例中,车间的实物资产是生产机器、机器人、机床系统和用于管理和运输工具、工件、材料和其它生产资源的设备。
14.至少一个计算机程序不必由管理部件的提供商设计、开发或拥有。在实施例中,至少一个计算机程序不是由管理部件所属的实体授权的程序。在实施例中,至少一个计算机程序可以是拥有工业设施的实体(例如合法的实体)的所有权(并且例如由其设计)。在实施例中,至少一个计算机程序可以由与云平台提供商或工业设施的所有者无关的第三方(合法地)设计/开发。
15.即,本发明涵盖了管理部件和工业设备的提供商与工业设施的所有者不必彼此信任的场景。云连接部件防止至少一个计算机程序被发送到管理部件,并且因此保证没有与工业设施和与至少一个计算机程序相关联的敏感数据(例如,知识产权相关数据)离开工业设施。这也减少了工业设施和云之间的通信量。另一方面,管理部件和工业设备的提供商可以确保没有未经授权的计算机程序部署在工业设备上。例如,这可以简化工业设备的服务和维护并且延长它们的生命周期,因为可以减少或甚至完全避免由在工业设备上运行一些未经授权的软件引起的故障。
16.此外,本文的描述允许在一个或多个工业设备上执行资源消耗的预先规划。
17.工业类型是汽车工业、石油和天然气工业、食品和药品工业、海洋工业、航空工业或纺织工业中的至少一种。
18.如在本技术中所使用的,术语“交互”旨在指任何类型的交互,其允许双方(一方面是管理部件和工业设备的提供商,另一方面是工业设施的所有者)之间的数据交换,使得数据交换由这两方协调。各方可以使用例如他们想要的任何通信协议,以便彼此交互。例如,
它们可以在管理部件和工业设施之间建立量子信道,并且利用一个或多个量子通信协议来增强通信的安全性。
19.如在本技术中所使用的,术语“云平台”旨在指允许云服务被具有云能力的设备访问和利用的任何基础设施。云平台可以是由具有互联网连接和适当授权以利用服务的设备经由互联网可访问的公共云。在一些场景中,云提供商可以将云平台作为平台即服务(paas)提供,并且服务可以作为基于云的服务驻留在云平台上并且在云平台上执行。在一些这样的配置中,对云平台和/或服务的访问可以由服务的所有者作为订阅服务提供给顾客。可替代地,云平台可以是由企业内部操作的私有或半私有云,或者共享或公司云环境。示例性私有云可以包括一组服务器,其托管云服务并且驻留在由防火墙保护的公司网络上。这种私有或半私有云不在本公开的范围内。
20.在实施例中,管理部件可以响应于由云连接部件向管理部件提供的与预期的安装上下文(即,预期执行的(至少一个计算机程序的)安装的上下文)相关联的数据来定义(可以被配置为定义)允许的安装上下文。
21.在实施例中,云连接部件可以进一步被配置为:
22.控制一个或多个工业设备与云平台之间的连接(connectivity),具体地,控制云平台处的管理部件,
23.生成与至少一个计算机程序以及与该至少一个计算机程序在一个或多个工业设备上的预期的安装相关联的元数据,
24.借助于第一私钥对元数据进行签名,
25.向管理部件发送安装请求,其中,该安装请求包含经签名的元数据,
26.接收来自管理部件的经授权的元数据,其中,经授权的元数据借助于第二私钥被签名并且与至少一个计算机程序的允许的安装上下文相关联,
27.借助于第二公钥验证(关于其完整性和正确性的)经签名的经授权的元数据,
28.借助于第二私钥对至少一个计算机程序进行签名。
29.在实施例中,允许的安装上下文可以例如包括用于在一个或多个工业设备上安装至少一个程序的规则(集)(即,允许在一个或多个工业设备上安装至少一个计算机程序的规则集)。
30.在实施例中,预期和/或允许安装的上下文可以表示为信息,该信息包括但不限于:唯一的边缘应用程序/版本标识符(例如,标识边缘应用程序特定版本的uri)、边缘应用程序的起源的唯一标识符(例如,uri或开发者的完全指定的名称和地址和/或他的公共密码密钥作为合法的实体的-该信息通常唯一地标识边缘应用程序开发者)、例如验证该特定应用程序已由开发者开发的应用程序开发者的签名、经请求的安装目标信息,例如,将(顾客的)一个或多个边缘设备标识为用于安装边缘应用程序的目标,例如以uri(集)的形式,并且可选地边缘设备的软件平台变体和/或软件版本信息和/或安装边缘应用程序的真实或技术用户和/或安装的预期时间或情况(例如“在日历周30中”或“在边缘设备评估/试运行阶段期间”)。
31.在实施例中,该信息可以包含在至少一个计算机程序的元数据信息(例如json或xml文件)中。
32.在实施例中,管理部件可以被配置为:
33.在云平台处接收来自云连接部件的安装请求,
34.借助于第一公钥验证经签名的元数据,
35.响应于安装请求并且基于经签名的元数据生成经授权的元数据,
36.借助于第二私钥对经授权的元数据进行签名,
37.向云连接部件发送经签名的经授权的元数据。生成可以包括定义经授权的元数据。
38.在实施例中,第一机器可执行部件包括云连接部件和部署部件,并且第二机器可执行部件包括管理部件,其中,
39.云连接部件被配置为:
40.控制工业设施的一个或多个工业设备与云平台处的管理部件之间的连接,
41.接收并且存储待安装在一个或多个工业设备上的至少一个计算机程序(具体地,尚未由管理部件授权的计算机程序),
42.生成与至少一个计算机程序以及至少一个计算机程序在一个或多个工业设备上的预期的安装相关联的元数据,
43.借助于第一私钥对元数据进行数字签名,
44.向管理部件发送安装请求,其中,该安装请求包含经签名的元数据,
45.接收来自管理部件的经授权的元数据,其中,经授权的元数据借助于第二私钥被签名并且与至少一个计算机程序的允许的安装上下文相关联;
46.借助于第二公钥验证(例如,关于其完整性和正确性的)经签名的经授权的元数据;
47.借助于第二私钥对至少一个计算机程序进行签名;
48.部署部件被配置为:
49.借助于第二公钥验证经签名的至少一个计算机程序和经签名的经授权的元数据,并且
50.根据允许的安装上下文,在一个或多个工业设备上(在成功验证时)安装和执行至少一个计算机程序,并且管理部件被配置为:
51.在云平台处接收来自云连接部件的安装请求,
52.借助于第一公钥验证经签名的元数据,
53.响应于安装请求并且基于经签名的元数据,生成经授权的元数据,
54.借助于第二私钥对经授权的元数据进行签名,
55.向云连接部件发送经签名的经授权的元数据。
56.如在本技术中所使用的,术语“签名”旨在指允许验证经签名的消息的真实性的任何加密协议。“签名”可以指但不限于数字签名,量子数字签名等的一个。
57.如在本技术中所使用的,术语“部件”旨在指软件部件、硬件部件或两者的组合。例如,部件可以是但不限于,在处理器上运行的进程、处理器、硬盘驱动器、(光或磁存储介质的)多个存储驱动器,包括固定(例如,螺纹连接或螺栓连接)或可移除固定的固态存储驱动器;物体;可执行程序;执行线程;计算机可执行程序和/或计算机。一个或多个部件可以驻留在进程和/或执行线程内,并且部件可以位于一台计算机上和/或分布在两台或多台计算机之间。此外,本文所描述的部件可以从其上存储有各种数据结构的各种计算机可读存储
介质执行。这些部件可以经由本地和/或远程进程进行通信,诸如根据具有一个或多个数据包的信号(例如,来自一个部件的数据,该部件与本地系统、分布式系统中的另一部件交互,和/或经由信号跨诸如互联网的网络与其它系统交互)。
58.在实施例中,云连接部件可以进一步被配置为将经签名的至少一个计算机程序和经签名的经授权元数据发送到至少一个计算机程序待安装在其上的一个或多个工业设备。
59.在实施例中,元数据可以包括与至少一个计算机程序相关联的唯一标识数据(例如,发布信息(名称、日期、版本、开发起源、例如uri和/或开发者(合法的或自然实体)的名称和地址等)和/或与至少一个计算机程序的安装目标相关联的唯一标识数据(例如,唯一地标识在其上安装至少一个计算机程序的工业设备的数据(uri、mac地址、与其操作系统相关联的数据(例如,当前版本、另一类型的标识符等)等)。
60.在实施例中,第一机器可执行部件可以进一步包括部署部件。部署部件可以驻留在或存储在一个或多个工业设备中的每一个上。在实施例中,部署部件被配置为:
61.借助于第二公钥验证经签名的至少一个计算机程序和经签名的经授权的元数据,并且
62.根据允许的安装上下文在一个或多个工业设备上安装(在成功验证和执行时)至少一个计算机程序。工业设备通常包括存储器和可操作地耦接到设备的存储器的处理器。
63.在实施例中,云连接部件和管理部件可以进一步被配置为:彼此交互,使得在交互期间,管理部件还定义(例如,响应于接收到与云连接部件向管理部件提供的预期运行时间上下文相关联的数据)至少一个计算机程序的允许的运行时间上下文,并且仅授权在允许的运行时间上下文(例如,包含在经授权的元数据中的规则集)的范围内的至少一个计算机程序在一个或多个工业设备上的执行。
64.在实施例中,由管理部件生成的经授权的元数据可以包括允许的运行时间上下文。
65.在实施例中,由管理部件生成并签名的经签名的经授权元数据可以包括允许的运行时间上下文。
66.在实施例中,允许的运行时间上下文可以例如包括用于至少一个程序在一个或多个工业设备上的运行时间的规则(集)(即,允许至少一个计算机程序在一个或多个工业设备上运行/执行的规则集)。
67.在实施例中,第一机器可执行部件可以进一步包括运行时间强制部件。运行时间强制是确保运行系统遵守某些期望属性的强有力的技术。运行时间强制部件可以被配置为在至少一个计算机程序在一个或多个工业设备上执行的同时,强制至少一个计算机程序遵守允许的运行时间上下文。
68.在实施例中,管理部件进一步被配置为存储(例如,在第二存储器中)和/或提供一个或多个管理部件的所有者计算机程序。
69.在实施例中,管理部件进一步被配置为(例如,在第二存储器中)存储允许的安装上下文和/或允许的运行时间上下文和/或经授权的元数据。
70.这样,管理部件可以控制在一个或多个工业设备上实际安装和/或运行哪些计算机程序。这提供了工业设备上的系统质量。管理部件或其提供商可以使用情境感知机制,该情境感知机制允许声明性、精细粒度定义谁可以在何时/在何种情况下使用何种运行时间
约束在本地安装何种计算机程序。此外,管理部件或其提供商可以强制计算机程序在运行时间如所定义的那样运行,从而在多计算机程序/开放计算机程序生态系统操作中增加每个工业设备的可靠性、稳定性和鲁棒性。管理部件提供商可以例如出于支持、索赔和保修原因将工业设备上的问题追溯到特定计算机程序及其开发者。
71.在实施例中,至少一个计算机程序(例如,应用程序)可以借助于第三方(例如,开发者)的私钥被签名,并且云连接部件可以进一步被配置为借助于第三方的公钥验证至少一个计算机程序的签名。
72.在实施例中,云连接部件还可以被配置为存储一个或多个上述密码密钥,例如管理部件的所有者的私钥和公钥(第二公钥和私钥)和/或开发者的公钥等。
73.注意,管理部件所有者、顾客和开发者的密钥应存储在云连接部件的单独安全区域中,使得各方不能看到彼此的私钥。
74.在实施例中,密钥可以存储在不同的部件中,其中,每个部件仅由对应方可访问,顾客的部件仅由顾客可访问,管理部件的所有者仅由管理部件的所有者可访问。
75.这样,顾客不能访问管理部件的所有者的私钥,反之亦然。
76.在实施例中,云连接部件可以进一步被配置为将经授权的元数据与(本地存储的)至少一个计算机程序相关联。
77.例如,云连接部件可以将计算机程序和对应的元数据置于关系中,并且代表管理部件提供商在云连接部件的水平上评估计算机程序是否可以被部署到一个或多个工业设备。
78.在实施例中,元数据(例如,由顾客签名的)可以包括由开发者签名的信息,例如计算机程序的id、开发者的id、名称、地址等。
79.这样,管理部件提供商可以检查计算机程序的开发者是否被认证为受信任的合作伙伴。
80.为了实现上述目的,本发明还提供了一种方法,包括:
81.由驻留在工业设施处的云连接部件接收和存储待安装在驻留在工业设施处的一个或多个工业设备上的至少一个计算机程序(例如,尚未由云平台授权);
82.由云连接部件与管理部件进行交互,其中,管理部件属于生产一个或多个工业设备的实体,使得在交互期间,管理部件定义允许的安装上下文并且仅授权在允许的安装上下文的范围内的至少一个计算机程序在一个或多个工业设备上的安装,其中,该交互不包括将至少一个计算机程序发送到管理部件。
83.在实施例中,通信合作伙伴-云连接部件和管理部件-可以例如通过加密通信信道利用相互完整性保护进行通信。
84.在实施例中,交互可以包括:
85.由云连接部件生成与至少一个计算机程序以及与至少一个计算机程序在一个或多个工业设备上的预期的安装相关联的元数据,
86.由云连接部件借助于第一私钥对元数据进行签名,
87.由云连接部件向管理部件发送安装请求,其中,该安装请求包含经签名的元数据,
88.由管理部件接收来自云连接部件的安装请求,
89.由管理部件借助于第一公钥验证经签名的元数据,
90.响应于安装请求并且基于经签名的元数据,由管理部件生成与至少一个计算机程序的允许的安装上下文相关联的经授权的元数据,其中具体地,生成可以包括定义经授权的元数据,
91.由管理部件借助于第二私钥对经授权的元数据进行签名;
92.由管理部件将经签名的经授权的元数据发送到云连接部件,
93.由云连接部件接收来自管理部件的经授权的元数据,
94.由云连接部件借助于第二公钥验证(关于其完整性和正确性的)经签名的经授权的元数据,
95.由云连接部件借助于第二私钥对至少一个计算机程序进行签名。
96.在实施例中,该方法可以进一步包括通过云连接部件将经签名的至少一个计算机程序和经签名的经授权的元数据发送到至少一个计算机程序待安装在的一个或多个工业设备。
97.在实施例中,该方法可以进一步包括由驻留在工业设施处的部署部件借助于第二公钥验证经签名的至少一个计算机程序和经签名的经授权的元数据;并且
98.具体地,在成功验证时,由部署部件根据允许的安装上下文在一个或多个工业设备上安装并执行至少一个计算机程序。
99.在实施例中,该方法可以进一步包括由云连接部件与管理部件进行交互,使得在交互期间,管理部件还定义至少一个计算机程序的允许的运行时间上下文并且仅授权在允许的运行时间上下文的范围内的至少一个计算机程序在一个或多个工业设备上的执行。
100.在实施例中,该方法可以进一步包括在至少一个计算机程序在一个或多个工业设备上执行的同时,由驻留在工业设施处的运行时间强制部件强制至少一个计算机程序遵守允许的运行时间上下文。
101.在实施例中,运行时间强制部件可以驻留在一个或多个工业设备上,更具体地,运行时间强制部件可以包括多个子部件,其中,每个子部件驻留在工业设备上,并且不同的子部件驻留在不同的设备上。
102.在实施例中,该方法可以进一步包括由既不驻留在工业设施处也不驻留在云平台处的第三方的部件借助于第三方的私钥对至少一个计算机程序进行签名,特别是数字签名;并且由云连接部件借助于第三方的公钥验证至少一个计算机程序的签名。
103.本发明的上述和其它目的和优点将在考虑以下对某些方面的详细描述时变得明显,这些方面仅指示可实践的几种可能方式。结合附图进行描述,其中相同的附图标记始终表示相同的零件,并且其中:
104.图1是使用云基础设施来授权第三方的应用程序在顾客制造场所处安装和执行它们的系统的总览;
105.图2是用于促进第三方的应用程序在顾客制造场所上的安全授权、安装和执行的示例方法的流程图。
106.图1描绘了参与基于云的生态系统的三方:c(顾客)、d(开发者)和p(提供商)。顾客c拥有企业。企业可以包括一个或多个制造场所(顾客营业场所)。为简单起见,图1仅描绘一个制造场所100。制造场所100包括一个或多个边缘设备101。为简单起见,仅示出了一个边缘设备。应当理解,本文公开的内容对于多个设备是有效的。每个边缘设备101可以运行边
缘设备软件平台。边缘设备101可以组成在制造场所100内操作的一个或多个自动化系统。
107.每个边缘设备101可以被配置为收集和/或处理来自一个或多个自动化系统的数据,特别是来自一个或多个工业机器的数据。
108.在示例性配置中,边缘设备101可以通过制造场所处的单独的云网关102访问驻留在云平台200处的边缘管理后端服务器201,其中,边缘设备101通过物理或无线局域网或无线电链路连接到云网关102。应当理解,制造场所100可以具有多于一个的云网关,该多于一个的云网关控制各个边缘设备101与边缘管理后端服务器201之间的连接。云网关102还可以包括网络基础设施设备的集成部件,诸如防火墙盒、路由器或交换机。
109.在所描绘的设置中,提供商p拥有边缘管理后端服务器201并且提供商p也是边缘设备101的制造商。顾客c从p购买边缘设备101。c和p也可以具有服务许可协议。c可以使用边缘管理后端服务器201资源,以处理来自制造进程的数据。p必须执行边缘设备101的维护和服务。
110.在这个场景中,开发者d是第三方。开发者d开发顾客期望使用的边缘应用程序300。
111.提供商p(例如,代表边缘计算生态系统所有者)可以持有签名证书cp并向开发者d和顾客c发布签名证书cd和cc(例如,与生态系统合伙许可一起)。开发者d和顾客c(或每个的子集)可选地表示相同的合法的实体(例如,如果顾客c具有正在开发自己的边缘应用程序的软件开发者)。开发者d和顾客c可以使用该证书对数据(例如边缘应用程序、与边缘应用程序相关联的元数据等)进行加密地签名,。
112.应当理解,术语“提供商”、“顾客”、“开发者”也可以指许多不同的提供商、顾客或开发者。
113.边缘管理后端服务器201可以包括用于存储可以由提供商p开发和/或认证的一个或多个边缘应用程序203的存储器202。
114.例如,由提供商p生产每个边缘设备101可以包括边缘应用程序部署部件103,其可以在边缘设备101上安装和启动边缘应用程序。边缘应用程序部署部件103根据由边缘管理后端服务器201的提供商p定义的允许的安装上下文来安装边缘应用程序。
115.此外,每个边缘设备可以包括运行时间强制部件104,该运行时间强制部件104保证经部署的边缘应用程序遵守限制-由边缘管理后端服务器201的提供商p定义的-允许的运行时间上下文。
116.云网关102驻留在顾客营业场所处-制造设施100处。云网关102允许顾客c控制边缘设备101与云200之间的连接。
117.云网关可以包括存储部件105。存储部件105可以接收和存储应安装在边缘设备101上的边缘应用程序(工业计算机程序)。例如,它可以(从开发者d)接收并且存储由开发者d开发和签名的边缘应用程序300。存储部件105可以是非易失性存储器。
118.存储部件105还可以存储开发者d和提供商p的密码密钥。例如,开发者的公钥106d、提供商的公钥106p和顾客的公钥106c可以由存储部件105存储。出于以下解释的原因,存储部件105还可以存储提供商p的私钥107p和/或顾客c的私钥107c。开发者d的私钥107d可以与开发者d保持在一起。开发者d可以使用他的密钥107d对应用程序进行签名。
119.云网关102可以被配置为生成描述经签名的边缘应用程序300的应用程序元数据,
129.ο本地安装的时间/情况:顾客特定的试运行阶段期间
130.ο用户安装边缘应用程序:由“c1”拥有并且由url标识的技术用户
131.ο“www.somecustomer.com/edgeappinstallationjob4711”132.ο应用程序运行时间上下文:“对于端口“62222”上的ip地址“192.168.178.25”,需要打开车间网络的边缘设备防火墙,以允许边缘应用程序以超高频传感器质量从边缘外部opc uapub/sub通信合作伙伴接收数据(“超高频”可以在约束模型/本体中指定为任何种类的时序数据,其在此特定示例中以最小每秒“48.000”数据点的频率接收)。
133.例如,允许的上下文可以是:
134.ο“c”被允许本地安装所有版本的边缘应用程序“x”、“y”和“z
”‑
均仅由“d”开发
135.ο安装目标:所有边缘设备均由“c”拥有并且部署在生产厂“10”或“15”中
136.ο安装时间:时间跨度在2021年4月与10月之间,其是在此特定示例中用于“c”的试运行阶段的语义定义。
137.ο安装边缘应用程序的用户:所有与“c”合法相关的真实技术用户
138.ο应用程序运行时间上下文:边缘设备防火墙被允许针对具有端口范围“4000-5000”的本地车间网络(在约束模型/本体中被定义为ipv4网络ip范围的“本地车间网络”,在该示例中以“192”开始)中的所有ip地址打开,并且允许来自所有种类的opc ua相关通信合作伙伴的高达8兆字节/秒的网络带宽(其-在此特定示例中-包括根据约束模型/本体中语义的相关适当定义的来自opc ua pubsub合作伙伴的最大“100.000”数据点的数据频率)。
139.该示例示出了语义建模的高灵活性(在优选实施例中,通过基于约束的映射策略或基于描述逻辑的公理来集成提供商p和顾客c的语义)。该示例导致请求/预期和允许的安装与运行时间上下文之间的成功匹配,从而允许“c”的技术用户在生产厂“10”中的“e1”上安装“x”,其中请求的连接场景用于在顾客试运行阶段期间将超高频传感器数据递送到边缘应用程序。
140.边缘管理后端服务器201可以被配置为在上述验证之后使用提供商p的私钥107p对应用程序元数据108进行加密地重新签名。这导致根据指定情况接受本地安装。边缘管理后端服务器201可以被配置为将经双签名的应用程序元数据109的副本存储在存储202中并将另一副本发送到云网关102,该经双签名的应用程序元数据109包括允许的安装和运行时间上下文。
141.云网关102可以被配置为接收经双签名的边缘应用程序元数据109,该经双签名的边缘应用程序元数据109包括针对开发者d的边缘应用程序300的允许的安装和运行时间上下文,并将经双签名的边缘应用程序元数据与由存储部件105存储在例如云网关102上的开发者d的边缘应用程序300相关联。
142.云网关102还可以被配置为验证经签名的边缘应用程序300、包含允许的安装和运行时间上下文的经双签名的应用程序元数据109的完整性和正确性,并且利用提供商p的私钥107p对经签名的边缘应用程序300进行加密地签名。验证经签名的边缘应用程序300和经双签名的应用程序元数据109的正确性可以包括检查经签名的边缘应用程序300是否仍然从存储部件105可获得、经签名的边缘应用程序300是否仍然是根据d的签名的整数(integer)、经双签名的应用程序元数据109是否是根据提供商p和顾客c的签名的整数、目
标边缘设备101是否可获得(运行正常)、在允许的安装和运行时间上下文中定义的时间/情况和所有其它特征是否实际上可以匹配。在优选实施例中,云网关102可以使用基于约束或基于描述逻辑的推理来理解当前情况并执行与允许的安装和运行时间上下文的匹配。该步骤的结果可以是在验证时接受或拒绝在边缘设备101上安装边缘应用程序300。
143.云网关102还可以被配置为将(经双签名的)开发者d的边缘应用程序301发送到边缘设备101和/或发起边缘应用程序在边缘设备101上的安装。
144.边缘应用程序部署部件103可以被配置为通过使用提供商p的公钥106p验证(经双签名的)边缘应用程序301和对应元数据109的完整性,并且将边缘应用程序301安装在设备101上。边缘应用程序部署部件可以进一步被配置为向运行时间强制部件104注册来自经双签名的应用程序元数据109的允许的运行时间上下文。如果边缘应用程序301的验证失败,则不执行安装并且可以发出错误消息。
145.运行时间强制部件可以被配置为检查边缘应用程序301的运行时间上下文并且确保它不留下如应用程序元数据109中指定的允许的运行时间上下文。这可以包括但不限于检查和控制边缘应用程序301不发送比提供商p允许的更多的数据或消耗更多的边缘设备101资源。这种强制确保了多应用程序场景中的系统和网络稳定性,并且特别是在开放边缘应用程序生态系统中提高了资源可用性和it安全性。可以周期性地或连续地对事件(即,在实际运行时间上下文改变的情况下)执行该检查和控制(即,应用程序运行时间约束的强制)。在实际运行时间上下文以违反允许的应用程序运行时间上下文的方式改变的情况下,运行时间强制部件104可以限制或停止边缘应用程序301,并可选地向顾客c(以及可选地提供商p侧)上的真实或技术用户发送错误/警报消息以获得信息或进一步处理该情况。
146.在实施例中,出于数据隐私的原因,所描述的系统和方法的每两个通信合作伙伴之间的所有连接和交换的数据可以被(例如量子)密码加密。
147.在实施例中,可以将上述活动记录到用于透明性和/或法律不可否认性原因的审计跟踪中。
148.图2示出了用于促进第三方的应用程序在顾客制造场所上的安全授权、安装和执行的示例方法的流程图。以下示例可以在关于图1描述的框架内实现。图1中的一些箭头示出了图2的方法的步骤。
149.该方法包括:
150.步骤1:由开发者d开发、签名和发送待在顾客c的边缘设备101上安装和运行的边缘应用程序300。
151.步骤2:由存储部件105在云网关102处接收和存储经签名的边缘应用程序300。
152.步骤3:由云网关102生成与边缘应用程序300以及与边缘应用程序300在边缘设备101上的预期的安装和运行时间相关联的元数据。
153.步骤4:由云网关102借助于顾客的私钥107c对元数据进行签名。
154.步骤5:由云网关102向边缘管理后端服务器201发送安装请求,其中,安装请求包含经签名的元数据108。
155.步骤6:由边缘管理后端服务器201接收来自云网关102的安装请求。
156.步骤7:由边缘管理后端服务器201借助于顾客的公钥106c验证经签名的元数据108。
157.步骤8:响应于安装请求并且基于经签名的元数据108,由边缘管理后端服务器201生成与边缘应用程序300的允许的安装和运行时间上下文相关联的经授权的元数据。
158.步骤9:由边缘管理后端服务器201借助于提供商的私钥107p对经授权的元数据进行签名。
159.步骤10:由边缘管理后端服务器201将经(双)签名的经授权的元数据109发送到云网关102。
160.步骤11:由云网关102接收来自边缘管理后端服务器201的经授权的元数据109。
161.步骤12:由云网关102借助于提供商的公钥106p验证经签名的经授权元数据109。
162.步骤13:(在成功验证时)由云网关102借助于提供商的私钥107p对边缘应用程序300进行签名。
163.步骤14:由云网关102将经双签名的边缘应用程序301和经(双)签名的经授权的元数据109发送到边缘设备101。
164.步骤15:由边缘应用程序部署部件103借助于提供商的公钥106p验证经双签名的边缘应用程序301和经(双)签名的经授权的元数据109。
165.步骤16:由边缘应用程序部署部件103根据允许的安装上下文在边缘设备101上安装和执行经双签名的边缘应用程序301。
166.步骤17:在边缘设备101上执行至少一个计算机程序的同时,由运行时间强制部件104强制边缘应用程序301遵守允许的运行时间上下文。
167.出于说明而非限制的目的呈现本公开的上述实施例。具体地,关于附图描述的实施例仅是介绍部分中描述的实施例的几个示例。具体地,关于系统描述的技术特征可以应用于方法,反之亦然。