用于云平台的认证过程的制作方法

文档序号:14784975发布日期:2018-06-27 22:08阅读:216来源:国知局
用于云平台的认证过程的制作方法

本发明大体上涉及用于云平台的认证过程。



背景技术:

机器和设备资产大体上设计成执行作为业务过程的一部分的特定任务。例如,资产可尤其包括且不限于生产线上的工业制造设备、用于采矿操作的钻孔设备、在风场上生成电力的风力涡轮、运输车辆等。作为另一个示例,资产可包括有助于诊断患者的保健机器和设备,如,成像装置(例如,X射线或MRI系统)、监测装置等。这些资产的设计和实施通常考虑手上的任务的物理性质,以及此类资产构造成在其中操作的环境。

基于低水平软件和硬件的控制器长久以来用于驱动机器和设备资产。然而,廉价的云计算的出现、传感器能力提高和传感器成本降低,以及移动技术的扩散创造出了创建具有改进的感测技术且能够传输然后可贯穿网络分布的数据的新型基于工业和保健的资产的机会。结果,存在通过使用新型聚焦于工业的硬件和软件来提高一些资产的商业价值的新机会。

设计支持聚焦于机器的软件的计算平台的一个难点是用户通过平台感兴趣的应用的量和种类。例如,功率站的用户或操作者可能有兴趣查看与该站相关的许多应用和系统以及与其交互,以便管理/查看诸如生成器、冷却塔、站地面、材料、报警、燃料使用、功率保护、功率分布、控制系统等的属性。作为另一个示例,飞行器操作者可能有兴趣查看可影响飞行器的应用和系统以及与其交互,如,天气、历史飞行数据、货物、燃料等。

此外,可存储在云平台上的基于机器的应用(或其他类型的应用)可由不同销售者使用不同编程语言创建。另外,应用可具有不同的输入、不同的输出,且表现得不同于彼此。此外,各个应用必须能够在云平台内操作,且利用存储在云平台上或可在一些时刻存储在云平台上的其他应用操作。因此,需要用于测试各种应用类型且确保它们在加入云平台时将适当工作的过程。



技术实现要素:

本文描述的发明的实施例,通过提供接收将应用包括在云平台上的请求以及应用认证过程来登记和使用应用作为较宽的云平台的一部分的系统和方法,而改善了现有技术。此实施例为技术互操作性、构造和由可存在于工业或包含机器的其他环境内的多个机器相关的和其他的应用引起的其他问题提供了技术解决方案。

在示例性实施例的方面中,一种包括网络接口的计算装置构造成接收将应用加入云平台的请求,该请求包括程序包,程序包包括应用、关于构造成运行应用且执行自动认证过程的处理器的信息、关于自动认证过程的信息,自动认证过程包括:验证运行应用的输出、验证云平台上运行应用的影响低于预定阈值,以及验证运行应用满足与相应应用相关联的编码准则,以及构造成响应于处理器经由自动认证过程认证应用来存储应用的存储装置。

在另一个示例性实施例的方面中,提供了一种云平台认证方法,其包括接收将应用加入云平台的请求,该请求包括包含应用的程序包,运行应用且基于运行应用而执行自动认证过程,自动认证过程包括:验证运行应用的输出、验证云平台上运行应用的影响低于预定阈值,以及验证运行应用满足与相应应用相关联的编码准则,以及响应于经由自动认证过程认证应用来将应用存储在云平台上。

在另一个示例性实施例的方面中,提供了一种其中具有存储的指令的计算机可读介质,指令在运行时引起计算机执行云平台认证方法,包括接收将应用加入云平台的请求,该请求包括包含应用的程序包,运行应用且基于运行应用而执行自动认证过程,自动认证过程包括:验证运行应用的输出、验证云平台上运行应用的影响低于预定阈值,以及验证运行应用满足与相应应用相关联的编码准则,以及响应于经由自动认证过程认证应用来将应用存储在云平台上。

技术方案1. 一种计算系统,包括:

网络接口,其构造成接收将应用加入云平台的请求,所述请求包括包含关于所述应用的信息的程序包;

处理器,其构造成运行所述应用且执行自动认证过程,所述自动认证过程包括,验证所述运行应用的输出,验证所述云平台上运行应用的影响是否低于预定阈值,以及验证所述运行应用满足一个或多个适用的编码准则;以及

存储装置,其构造成响应于所述处理器经由所述自动认证过程认证所述应用来存储所述应用。

技术方案2. 根据技术方案1所述的计算系统,其特征在于,所述处理器构造成通过验证所述运行应用可配置于所述云平台,验证所述运行应用能够消耗样本输入数据,以及验证所述运行应用能够匹配预定预期输出,来验证所述运行应用的输出。

技术方案3. 根据技术方案1所述的计算系统,其特征在于,所述处理器构造成通过验证所述运行应用不会不利地影响所述云平台来验证所述云平台上运行应用的影响。

技术方案4. 根据技术方案3所述的计算系统,其特征在于,所述处理器进一步构造成通过验证所述云平台上运行应用所需的处理时间和存储空间的量来验证所述云平台上运行应用的影响。

技术方案5. 根据技术方案1所述的计算系统,其特征在于,所述处理器构造成通过识别用于构建所述应用的至少一种编程语言,以及验证所述运行应用满足所述至少一种编程语言的编码准则,来验证所述运行应用满足所述一个或多个编码准则。

技术方案6. 根据技术方案1所述的计算系统,其特征在于,所述自动认证过程还包括执行验证所述应用中的数据和可运行文件的安全性测试,以及所述处理器进一步构造成将由所述安全性测试识别的潜在安全性问题输出至显示装置。

技术方案7. 根据技术方案1所述的计算系统,其特征在于,所述处理器进一步构造成在所述云平台上发布认证的应用,从而使所述认证的应用可经由所述云平台访问。

技术方案8. 一种云平台认证方法,包括:

接收将应用加入云平台的请求,所述请求包括包含关于所述应用的信息的程序包;

运行所述应用且基于运行应用执行自动认证过程,所述自动认证过程包括验证所述运行应用的输出,验证所述云平台上运行应用的影响是否低于预定阈值,以及验证所述运行应用满足一个或多个适用的编码准则;以及

响应于经由所述自动认证过程认证所述应用来将所述应用存储在所述云平台上。

技术方案9. 根据技术方案8所述的方法,其特征在于,验证所述运行应用的输出包括,验证所述运行应用可配置于所述云平台,验证所述运行应用能够消耗样本输入数据,以及验证所述运行应用能够匹配预定预期输出。

技术方案10. 根据技术方案8所述的方法,其特征在于,验证所述云平台上运行应用的影响包括验证所述运行应用不会不利地影响所述云平台。

技术方案11. 根据技术方案10所述的方法,其特征在于,验证所述运行应用的影响还包括验证所述云平台上运行应用所需的处理时间和存储空间的量。

技术方案12. 根据技术方案8所述的方法,其特征在于,验证所述运行应用满足所述一个或多个编码准则包括,识别用于构建所述应用的至少一种编程语言,以及验证所述运行应用满足所述至少一种编程语言的编码准则。

技术方案13. 根据技术方案8所述的方法,其特征在于,所述自动认证过程还包括安全性测试,其包括验证所述应用中的数据和可运行文件,以及所述方法还包括将由所述安全性测试识别的潜在安全性问题输出至显示装置。

技术方案14. 根据技术方案8所述的方法,其特征在于,所述方法还包括,将认证的应用发布在所述云平台上,从而使所述认证的应用可经由所述云平台访问。

技术方案15. 一种非暂时性计算机可读介质,具有存储在其中的指令,所述指令在运行时引起计算机执行云平台认证方法,所述云平台认证方法包括:

接收将应用加入云平台的请求,所述请求包括包含关于所述应用的信息的程序包;

运行所述应用且基于运行应用执行自动认证过程,所述自动认证过程包括,验证所述运行应用的输出,验证所述云平台上运行应用的影响是否低于预定阈值,以及验证所述运行应用满足一个或多个适用的编码准则;以及

响应于经由所述自动认证过程认证所述应用来将所述应用存储在所述云平台上。

技术方案16. 根据技术方案15所述的非暂时性计算机可读介质,其特征在于,验证所述运行应用的输出包括,验证所述运行应用可配置于所述云平台,验证所述运行应用能够消耗样本输入数据,以及验证所述运行应用能够匹配预定预期输出。

技术方案17. 根据技术方案15所述的非暂时性计算机可读介质,其特征在于,验证所述云平台上运行应用的影响包括验证所述运行应用不会不利地影响所述云平台。

技术方案18. 根据技术方案17所述的非暂时性计算机可读介质,其特征在于,验证所述运行应用的影响包括验证所述云平台上运行应用所需的处理时间和存储空间的量。

技术方案19. 根据技术方案15所述的非暂时性计算机可读介质,其特征在于,验证所述运行应用满足所述一个或多个编码准则包括,识别用于构建所述应用的至少一种编程语言,以及验证所述运行应用满足所述至少一种编程语言的编码准则。

技术方案20. 根据技术方案15所述的非暂时性计算机可读介质,其特征在于,所述自动认证过程还包括安全性检查,其包括验证所述应用中的数据和可运行文件,以及所述方法还包括将由所述安全性测试识别的潜在安全性问题输出至显示装置。

从连同附图和权利要求的以下详细描述,可清楚其他特征和方面。

附图说明

示例性实施例的特征和优点,以及其实现的方式将参照连同附图的以下详细描述而变得更容易清楚。

图1为示出根据示例性实施例的与工业系统相关联的云计算环境的示图。

图2为示出根据示例性实施例的认证用于云计算环境的应用的系统的示图。

图3为示出根据示例性实施例的用于认证应用的方法的示图。

图4为示出根据示例性实施例的包括在认证过程中的性能测试的示图。

图5为示出根据示例性实施例的包括在认证过程中的平台测试的示图。

图6为示出根据示例性实施例的用于认证应用的计算装置的示图。

贯穿附图和详细描述,除非另外描述,否则相同附图参照标号将理解为表示相同的元件、特征和结构。这些元件的相对大小和图示可为了清楚、图示和/或方便而放大或调整。

零件清单

100 AMP系统

105 通信网关

110 机器模块

120 云计算系统

121-125 模块

130 企业计算系统

140 接口装置

200 系统

210 开发者装置

220 云平台

220 认证装置

224 托管装置

230 用户装置

600 装置

610 网络接口

620 处理器

630 输出

640 存储。

具体实施方式

在以下描述中,阐述了特定细节,以便提供各种示例性实施例的彻底理解。应当认识到,本领域的技术人员将容易清楚对实施例的各种改型,且本文限定的总体原理可应用于其他实施例和应用,而不脱离本公开案的精神和范围。此外,在以下描述中,为了阐释目的而阐述了许多细节。然而,本领域的普通技术人员将认识到,实施例可在不使用这些特定细节的情况下实践。在其他情况下,公知的结构和过程并未示出或描述,以免以不必要的细节而使描述不清楚。因此,本公开案不旨在限于所示的实施例,而是符合与本文公开的原理和特征一致的最宽范围。

示例性实施例针对一种用于加入常见计算环境(如云平台)的应用的自动认证过程。认证过程可为较大的管理过程的一部分。认证过程可验证加入云平台的应用表现得如预期,确保应用不会不利影响云平台,以及其他测试。分析应用(例如,针对基于机器和设备的资产)可由不同销售者设计,且具有授权其使用的用户的不同子集。这些应用可基于不同的编程语言、库、数据等。本文的示例针对自动认证过程,其测试和认证分析应用,而不论开发者或用于开发应用的软件语言。认证过程可执行各种自动过程,以验证分析的性能、验证分析与常见计算环境的兼容性,且确保分析将不会在环境内恶意操作。

根据各种实施例,该认证过程包括许多自动(或部分自动)的测试,其在分析应用上执行,从而减轻可能花费大量时间和工时的人工执行测试的用户的负担。在一些示例中,认证过程可包括,验证分析(例如,API调用、存储器功能、输入/输出等)的性能的健全性测试、确定分析是否将在常见云平台上适当作用的平台测试、确保分析满足由相应的编程语言建立的准则和标准的编码准则测试,以及扫描分析和检查数据、对其他代码的调用、.exe文件等的安全性且报告可能的安全性问题的安全性测试。认证过程可包括在由云平台托管且位于云平台内的应用中。作为另一个示例,认证过程可包括在由另一类型的计算装置托管的应用中。

尽管利用机器和设备自动化的过程在最近几十年已经产生,且资产变得'更聪明',但相比于在多个智能装置例如在云中连接在一起时得到的智能,任何独立资产的智能较弱。如本文描述的资产可表示用于诸如能源、保健、运输、重型制造、化工生产、印刷和出版、电子、纺织等的领域中的设备及机器。如果开发和应用适合的工业特有的数据收集和建模技术,则从多个资产收集或关于多个资产的聚集数据可允许用户改善业务过程,例如,通过改善资产维护的有效性,或改善操作性能。

例如,资产可配备构造成监测相应的操作或状态的一个或多个传感器。来自传感器的数据可记录或传输至基于云的或其他的远程计算环境。通过使此数据进入基于云的计算环境,由工业过程、工具和专业技能通知的新软件应用可构造出,且可创建工业环境特有的新的基于物理性质的分析。通过此类数据的分析获得的洞察可带来加强的资产设计、用于操作相同或相似资产的加强的软件算法、较好的操作效率,等。软件应用的示例在本文中描述为分析法。分析法可用于分析、评估以及进一步理解关于制造的问题。

资产可包括或可为工业物联网(IIoT)的一部分。在示例中,IIoT将包括机器和设备(如,涡轮、喷气发动机、保健机器、火车头等)的资产连接至因特网或云,或以一些有意义的方式与彼此连接,如,通过一个或多个网络。本文描述的系统和方法可包括使用"云"或远程或分布式计算资源或服务。云可用于接收、中继、传输、存储、分析或另外处理用于或关于一个或多个资产的信息。在示例中,云计算系统包括至少一个处理器电路、至少一个数据库,以及与云计算系统数据通信的多个用户或资产。云计算系统还可包括或可联接构造成执行特定任务的一个或多个其他处理器电路或模块,如,执行关于资产维护、分析、数据存储、安全性或一些其他功能的任务。

然而,资产与远程计算资源整合来启用IIoT通常带来了大体上与特定工业和与计算机网络分开且不同的技术挑战。基于给定的机器或设备的资产可需要构造成具有新颖的接口和通信协议来发送数据至分布式计算资源和从分布式计算资源接收数据。给定资产可具有成本、重量、安全性、性能、信号干扰等的严格要求,使得启用此接口很少像将资产与通用计算装置组合那样简单。为了解决这些问题和某些工业领域和IIoT的交叉引起的其他问题,实施例提供了可从工业技术的许多不同领域接收和托管应用的云平台。为了成功地托管这些应用,实施例提供了自动认证过程,其在加入云平台之前测试/验证应用。

可从GE获得的PredixTM平台是由现有技术的新锐工具和云计算技术启用的资产管理平台(AMP)技术的新型实施例,其允许了制造者的资产知识与一组开发工具和最佳实践合并,这允许了资产用户桥接软件与操作之间的间隙来提高能力、培养创新,以及最终提供经济价值。通过使用此系统,资产的制造者可处于独特境地,以利用其对资产自身、此类资产的模型和此类资产的工业操作或应用的理解,来通过资产洞察而对工业客户创造新价值。

图1示出了根据示例性实施例的与工业系统相关联的云计算环境。图1大体上示出了资产管理平台(AMP)100的部分的示例。如本文进一步描述的那样,AMP的一个或多个部分可位于云计算系统120中,在本地或沙箱环境中,或可分布跨过多个位置或装置。AMP 100可构造成执行数据采集、数据分析或与本地或远程资产或与其他任务特有的处理装置的数据交换中的一个或多个。AMP 100包括资产社区(例如,涡轮、保健机器、工业、制造系统等),其与云计算系统120通信地联接。在示例中,机器模块110从资产社区的至少一个资产成员接收信息或感测关于其的信息,且构造接收到的信息来与云计算系统120交换。在示例中,机器模块110经由通信网关105联接到云计算系统120或企业计算系统130上。

在示例中,通信网关105包括或使用有线或无线通信信道,其从机器模块110至少延伸至云计算系统120。云计算系统120可包括若干层,例如,数据基础架构层、云建构层,以及用于提供各种功能的模块。在图1的示例中,云计算系统120包括资产模块121、分析模块122、数据采集模块123、数据安全性模块124和操作模块125。各个模块均包括或使用专用电路或用于操作通用处理器电路的指令,以执行相应的功能。在示例中,模块121-125通信地联接到云计算系统120中,使得来自一个模块的信息可与另一个共享。在示例中,模块121-125共同位于指定的数据中心或其他设施,或模块121-125可分布跨过多个不同的位置。

接口装置140(例如,用户装置、工作站、平板计算机、笔记本计算机、用具、电话亭等)可构造成用于与机器模块110、网关105和云计算系统120中的一个或多个进行数据通信。接口装置140可用于监测或控制一个或多个资产。作为另一个示例,接口装置140可用于开发和上传应用至云计算系统120。作为又一个示例,接口装置140可用于存取由云计算系统120托管的分析应用。在示例中,关于资产社区的信息可在接口装置140处提供至操作者。关于资产社区的信息可包括来自机器模块110的信息,或信息可包括来自云计算系统120的信息。接口装置140可包括用于基于在云计算系统120处执行的分析来优化资产社区的一个或多个成员的选择。在经由云计算系统120访问分析之前,云计算系统120可认证分析。

作为非限制性示例,接口装置140的用户可通过云计算系统120控制资产,例如,通过选择第一风力涡轮101的参数更新。在该示例中,参数更新可经由云计算系统120、网关105和机器模块110中的一个或多个推送至第一风力涡轮101。在一些示例中,接口装置140与企业计算系统130进行数据通信,且接口装置140向操作提供关于其他业务或处理数据的背景的资产社区的企业范围的数据。例如,相对于资产优化的选择可在可用或预测的原材料供应或燃料成本的背景下提供至操作者。作为另一个示例,相对于资产优化的选择可在过程流程的背景下提供给操作者,以识别一个资产处的效率增益或损失可如何影响其他资产。

又回到图1的示例,示出了AMP 100的一些能力。图1的示例包括具有多个风力涡轮资产的资产社区,包括第一风力涡轮101。然而,应当理解的是,风力涡轮在该示例中仅用作可为第一AMP 100的一部分或与第一AMP 100数据通信的类型的资产的非限制性示例。

图1还包括构造成将资产社区联接到云计算系统120的装置网关105。装置网关105可将云计算系统120进一步联接到一个或多个其他资产或资产社区、企业计算系统103,或一个或多个其他装置。AMP 100因此代表可缩放的工业解决方案,其从物理或虚拟资产(例如,第一风力涡轮101)延伸至远程云计算系统120。云计算系统120可选包括本地、系统、企业或全球计算基础架构,其可优化用于工业数据工作负载、安全数据通信和符合法规要求。

云计算系统120可包括操作模块125。操作模块125可包括开发者可用来构建或测试工业因特网应用的服务,且操作模块125可包括实施工业因特网应用的服务,如,与一个或多个其他AMP模块协调。在示例中,操作模块125包括微服务市场,开发者可在该处发布其服务和/或从第三方取得服务。此外,操作模块125可包括与各种可用服务或模块通信的开发架构。开发架构可在网站或移动应用中向开发者提供一致的外观和感觉,以及环境用户体验。开发者可经由云计算系统120添加其应用(服务、数据、分析等)且使它们可访问。在使那些应用可用之前,示例性实施例可执行认证过程来验证应用的性能、兼容性和安全性。

来自资产、关于资产或由资产自身感测的信息可从资产传送至云计算系统120中的数据采集模块123。在示例中,外部传感器可用于感测关于资产功能的信息,或感测关于资产处或附近的环境状态的信息。外部传感器可构造成与装置网关105和数据采集模块123进行数据通信,且云计算系统120可构造成在其对一个或多个资产的分析中使用传感器信息,如,使用分析模块122。使用来自分析模块122的结果,操作模型可选更新,如,随后用于优化第一风力涡轮101或一个或多个其他资产,如,相同或不同资产社区中的一个或多个资产。例如,关于第一风力涡轮101的信息可在云计算系统120处分析,以通知选择用于属于不同资产社区的位于远处的第二风力涡轮的操作参数。

云计算系统120可包括软件定义基础架构(SDI),其用作任何特定硬件上的提取层,以便允许数据中心随时间发展,而对上面的应用干扰最小。SDI允许与基于政策的准备物共用的基础架构,以便于动态自动化,且允许SLA映射至下面的基础架构。该构造可在应用需要下面的硬件构造时有用。准备物管理和资源合并可在颗粒水平完成,因此允许了最佳资源分配。此外,资产云计算系统120可基于Cloud Foundry(CF),其为支持多开发者架构的开源PaaS,以及应用服务的生态系统。Cloud Foundry可使得应用开发者更快且更容易构建、测试、配置和缩放应用。因此,开发者得到生机勃勃的CF生态系统和CF服务的日益增长的库的访问权。此外,由于它是开源的,故CF可针对IIoT工作负载定制。

云计算系统120可包括数据服务模块,其可便于应用开发。例如,数据服务模块可允许开发者将数据带入云计算系统120,且使此数据可用于各种应用,如,在云上、在机器模块上或在资产或其他位置处运行的应用。在示例中,数据服务模块可构造成在最终将其存储在适合的数据存储中(例如,云计算系统120处)之前清理、合并或映射数据。可着重强调时间序列数据,因为这是大多数传感器使用的数据格式。

安全性可能是在云计算系统120与一个或多个资产或其他构件之间交换数据的数据服务的担心。用于保护数据传输的一些选择包括使用虚拟专用网络(VPN)或SSL/TLS模型。在示例中,AMP 100可支持双向TLS,如,在机器模块与安全性模块124之间。在示例中,可不支持双向TLS,且安全性模块124可将客户端装置处理为OAuth用户。例如,安全性模块124可允许将资产(或其他装置)登记为OAuth客户端,且透明地使用OAuth访问标记来将数据发送至受保护的端点。

图2示出了根据示例性实施例的认证用于云平台上的应用的系统200。在图2的示例中,系统200包括开发者装置210,以及用户装置230,其经由网络(如因特网、专用网络或它们的组合)连接到云平台220上。在该示例中,云平台220包括用于认证请求加入云平台220的应用的认证装置222,以及一旦它们认证则可托管一个或多个应用的托管装置224。但应当认识到这仅为示例性描述,且托管装置224和认证装置222实际上可为在云平台220上运行的情况。例如,在图2中,认证装置222和托管装置224仅为了方便描述而示出,且由两个实体执行的作用可组合成单个实体,或跨过多于两个实体分布。系统200可用于管理从开发者装置210到云平台220的应用。根据各种实施例描述的认证过程可包括为较大的管理过程的一部分,或其可为独立的过程。

开发者装置210(或提供者)可上传或另外提供应用至云平台220,以便使应用由云平台220托管。在允许应用在云平台220上推出之前,可能需要认证过程。例如,认证装置222可在应用上执行自动认证过程(或部分自动的认证过程),以确定应用是否将令人满意地操作。当开发者装置210将应用上传至云平台220时,应用可包括在信息程序包中,如,.zip文件等。认证装置220可打开程序包且运行应用。在运行应用期间,认证装置220可在运行应用上执行一个或多个测试,以验证应用如预期执行,对于云平台安全,以及满足与其相关联的编码准则。

举例来说,认证装置222可执行性能测试(本文中也称为健全性测试)、平台测试、编码准则测试、安全性测试、可缩放性测试等中的一个或多个。在测试期间,认证装置222可基于由开发者装置210提供的样本输入和输出来验证应用表现得如预期(例如,正确输入/输出)。认证装置222还可验证应用对云平台220无害,在处理期间应用将需要多少时间,多少空间用于存储,等。认证装置222还可识别用于构建应用的一种或多种软件编程语言,且确保应用满足编程语言的编码法则。编码法则可包括用于特定编程语言的一组准则,其对以此语言编写的程序的各个方面建议编程样式、实践和方法。

如果应用在认证测试中的任一者中失败,则认证装置222可生成指出失败原因的通知,且在开发者装置210上输出通知。此外,可防止应用由云平台220存储和托管。然而,如果应用通过认证测试,则认证装置222可将应用存储在云平台220上,且/或将应用转发至托管装置224来在云平台220内托管。作为响应,托管装置224可运行认证的应用,且提供由云平台220的用户(如,连接到云平台220上的用户装置230)访问应用的权限。这里,用户装置230可为工作站、计算机、笔记本计算机、平板计算机、移动装置、用具、电话亭等。

图3示出了根据示例性实施例的用于认证应用的方法300。例如,方法300可由图1中的云平台220等执行。参照图3,在310中,该方法包括接收用于将应用加入云平台的请求。例如,请求可包括文件/数据的程序包,包括可运行应用、样本输出、样本输入、关于应用的信息如编程语言、库等。在320中,该方法包括运行应用,且基于运行应用执行自动认证过程。

例如,在320中执行的自动认证过程可包括验证运行应用的输出、验证云平台上运行应用的影响低于预定阈值、验证运行应用满足与相应应用相关联的编码准则、验证应用的安全性,等。根据各种实施例,自动认证过程可包括健全性测试321、平台测试322、编码准则测试323、安全性测试324等中的一个或多个。根据各种方面,必须满足认证测试要求来使应用通过图3中所示的认证过程,然而,这些测试的详细要求可在以不同语言开发的应用程序包之间变化。

图4示出了来自图3的健全性测试321的示例。参照图4,健全性测试321可验证运行应用(例如,分析应用等)生成由提供者/开发者声明的输出。即,健全性测试321可基于其输入和输出来验证应用的性能。健全性测试321可包括一个或多个自动测试,例如,验证由客户端提供的程序包可成功地配置,验证配置的应用可成功地消耗样本输入数据,以及验证来自运行应用的输出匹配与输入数据配对的预期结果数据。根据各种实施例,健全性测试可从用户观点以非侵入性方式设计,以确保服务为导向的架构中的应用的成功应用。

为了使测试自动化,可使用测试软件应用或客户端。测试客户端可基于Java构建。测试客户端可自动地模拟测试员运行健全性测试通常将要做的步骤。例如,测试客户端可以以自动方式执行图4中所示的步骤。在410中,测试客户端可通过进行Java文件输入/输出(I/O)调用来将提供者提交的程序包下载至本地目录,通过进行表述性状态传输(REST)应用编程接口(API)调用来创建应用的目录项,以及通过经由REST API调用公布文件来将应用的可运行程序包文件附接至目录项。在420中,测试客户端可提交输入数据文件,且通过调用REST API来运行应用,且在430中,测试客户端可通过发出REST API调用来配置应用。在440中,测试客户端可通过调用REST API来轮询运行状态。在450中,测试客户端可通过调用REST API来收集运行结果输出,且通过执行JSON数据比较来将结果输出数据与由开发者提供的预期结果相比较。此外,在450中,测试客户端可通过调用REST API来取得运行日志供存档目的。在任何时刻,如果测试失败,则测试客户端在460中确定失败,且将失败通知输出至云和开发者装置中的至少一个。然而,如果测试成功,则可执行额外的认证测试,或应用可确定为已认证。

图5示出了来自图3的平台测试322的示例。自动平台测试322可确保运行程序不会不利地影响云平台。在一些示例中,自动平台测试可采集应用的时间使用简况,且估计应用的空间使用简况。在该示例中,具有不同大小的一组输入数据文件用于模拟应用的不同计算负载。另外,应用运行之处的云平台环境的存储器容量可通过使用用于配置应用的不同存储器大小分配来模拟。因此,可在不同数据文件大小和存储器大小的矩阵上执行测试。存储器空间使用和运行时间可从在云平台的运行日志文件中提取的数据收集。

由于各个应用的相异性质,且实际上模拟的输入数据用于测试,故测试中收集的时间/空间简况可为估计。运行的各个平台测试中涉及了两个步骤,包括创建模拟数据文件(510和520),以及在530和540中运行测试。基于不同应用的性质,存在多个选择来创建不同大小的测试数据。例如,一组固定大小的数据文件可利用匹配的数据要求(文件格式、数据区、数据类型等)创建。典型的情况在于使用1MB、4MB、10MB、50MB和200MB的模拟数据。作为另一个示例,可通过在成功运行的大小(例如,10MB)下开始,且后接逐渐增大的大小的测试文件,直到运行应用由于"存储器不足"的错误失败或大小达到预设盖(例如,1GB)来生成数据文件。一旦创建测试数据文件,则随后以与健全性测试321相同的途径来运行测试。各个测试的结果在550中存储。类似于健全性测试,如果平台测试成功,则可执行额外的认证测试,或应用可确定为已认证。然而,如果测试失败,则认证过程也可能失败。

编码准则测试323可确保成品程序包遵循开发准则,且适当地组织。在运行期间,编码准则测试323可自动地执行测试来验证应用的目录结构符合按照与应用的编程语言相关联的开发白皮书的规格,可验证目录中的内容(文件清单)遵循按照白皮书的规格,可验证构造文件的内容是否必须符合按照白皮书的规格,且可检查库文件来确保未使用恶意代码。编码准则测试323可通过识别用于构建应用的至少一种编程语言,且验证运行应用满足该至少一种编程语言的编码准则,来验证运行应用满足编码准则。同时,安全性测试324还可执行自动测试来验证应用并未执行对任何威胁性数据等的调用。安全性测试324还可确定应用是否具有存储在其中的任何潜在威胁性数据,或试图调用任何未知可运行程序,等。

又参照图3,在图330中,如果认证成功,则方法包括响应于经由自动认证过程认证应用来将应用存储在云平台上。除存储认证的应用之外,云平台可发布认证的应用(即,推出),从而使认证的应用可由注册用户访问。

图6示出了根据示例性实施例的用于认证应用的计算装置600。装置600可为云平台中的云计算装置,如,图2的认证装置222或另一个装置。另外,装置600可执行图3的方法300。参照图6,装置600包括网络接口610、处理器620、输出630和存储装置640。尽管在图6中未示出,但装置600可包括其他构件,如,显示器、输入单元、接收器/传输器等。网络接口610可在网络上传输和接收数据,如,因特网、专用网络、公共网络,等。网络接口610可为无线接口、有线接口或它们的组合。处理器620可包括各自包括一个或处理核的一个或多个处理装置。在一些示例中,处理器620为多核处理器或多个多核处理器。另外,处理器620可为固定的,或其可为可再构造的。输出630可输出数据至装置500的嵌入显示器、外部连接的显示器、云、另一个装置等。存储装置640不限于任何特定存储装置,且可包括任何已知的存储器装置,如,RAM、ROM、硬盘等。

根据各种实施例,网络接口610可接收将应用加入云平台的请求。例如,请求可包括文件和/或其他数据的程序包,包括应用的可运行文件。处理器620可运行应用,且基于其而执行自动认证过程。例如,自动认证过程可包括验证运行应用的输出的健全性测试、验证云平台上运行应用的影响低于预定阈值的平台测试、确保运行应用满足与相应应用相关联的编码准则的编码准则测试、识别与运行应用相关联的任何潜在威胁的安全性测试、缩放性测试等。如果认证过程成功,则处理器620可将应用存储在存储640中或另一个存储装置中,如,云平台或外部存储装置中。

举例来说,在健全性测试期间,处理器620可通过验证运行应用可配置在云平台上,验证运行应用消耗样本输入数据,验证来自运行应用的输出匹配预定预期输出等,来验证运行应用的输出。在平台测试期间,处理器620可通过验证运行应用不会不利地影响云平台来验证云平台上运行应用的影响。作为另一个示例,在平台测试期间,处理器620可检测云平台上运行应用所需的处理时间和存储空间的量。在编码准则测试期间,处理器620可通过识别用于构建应用的至少一种编程语言,以及验证运行应用满足该至少一种编程语言的编码准则,来验证运行应用满足编码准则。作为另一个示例,处理器620可执行验证应用中的数据和可运行文件的健全性测试,且处理器620可将由安全性测试识别的潜在安全性问题输出至显示装置。响应于由自动认证过程认证应用,处理器620可在云平台上发布认证的应用,从而允许用户经由云平台访问认证的应用。

根据各种实施例中,本文提供给了一种用于将新应用加入云平台的自动认证过程。应用可由云平台接收,且例如在测试环境中运行。在运行应用期间和/或之后,自动认证过程可执行许多测试来验证应用的性能、应用可对云平台(或其上托管的其他应用)造成的任何破坏、编码准则,等。如果应用通过自动认证过程,则应用可存储在云平台上且由云平台托管,从而允许用户访问认证的应用。

如将基于前述说明认识到的那样,本公开案的上述示例可使用计算机编程或工程技术来实施,包括计算机软件、固件、硬件或其任何组合或子集。具有计算机可读代码的任何此类所得的程序可体现或提供在一个或多个非暂时性计算机可读介质内,从而根据本公开案所述的示例制作计算机程序产品,即,制品。例如,非暂时性计算机可读介质可为但不限于固定驱动器、磁盘、光盘、磁带、闪速存储器、半导体存储器如只读存储器(ROM),和/或任何传输/接收介质如因特网、云存储、物联网,或其他通信网络或链路。包含计算机代码的制品可通过从一个介质直接运行代码、通过从一个介质到另一个介质拷贝代码、或通过在网络上传输代码而制成和/或使用。

计算机程序(也称为程序、软件、软件应用、"app"或代码)可包括用于可编程处理器的机器指令,且可以以高水平程序和/或面向对象的编程语言和/或汇编语言/机器语言实施。如本文使用的用语"机器可读介质"和"计算机可读介质"是指任何计算机程序产品、设备、云存储、物联网和/或用于将机器指令和/或数据提供至可编程处理器的装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括接收作为机器可读信号的机器指令的机器可读介质。然而,"机器可读介质"和"计算机可读介质"不包括暂时信号。用语"机器可读信号"是指可用于提供机器指令和/或任何其他类型的数据至可编程处理器的任何信号。

本文的过程的以上描述和说明不应当认作是隐含用于执行过程步骤的固定顺序。相反,过程步骤可按可行的任何顺序执行,包括至少一些步骤的同时执行。尽管结合特定示例描述了本公开案,但应当理解,本领域的技术人员清楚的各种改变、置换和变化都可对公开的实施例进行,而不脱离所附权利要求中阐述的本公开案的精神和范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1