暴露基于支持的硬件的云API的制作方法

文档序号:33161570发布日期:2023-02-04 00:44阅读:19来源:国知局
暴露基于支持的硬件的云API的制作方法
暴露基于支持的硬件的云api
技术领域
1.本公开一般涉及软件技术,并且更具体地,涉及针对基于执行云服务应用的云服务系统的支持的硬件的、云服务应用的一个或多个服务的应用编程接口(api)的暴露的系统和方法。


背景技术:

2.云服务系统是由第三方提供商托管并且可以通过互联网提供给用户的基础设施、平台或软件。云服务有助于用户数据从前端客户端(例如服务器、平板电脑、台式机、笔记本电脑——客户端的任何设备)通过互联网到提供商的系统并返回的流程。客户端只需计算机、操作系统和互联网连接或虚拟专用网络(vpn)就可以接入云服务。


技术实现要素:

3.根据本公开的一个实施例,一种方法,包括:由云服务系统执行云服务应用以提供一个或多个服务;由所述云服务系统在数据存储中维持在对应于所述云服务应用的所述一个或多个服务的多个服务标识符和多个硬件标识符之间的多个链接,每个相应的服务标识符与所述多个硬件标识符中的一个或多个硬件标识符相关联;由所述云服务系统基于所述多个链接和所述云服务系统的硬件配置文件来确定所述云服务系统是否具有提供对所述云服务应用的所述一个或多个服务的接入的能力;以及由所述云服务系统响应于确定所述云服务系统是否具有提供对所述一个或多个服务的接入的能力,向客户端设备提供对所述云服务应用的所述一个或多个服务中的至少一个服务的应用编程接口(api)的暴露。
4.根据本公开的另一实施例,一种云服务系统,包括数据存储;以及处理设备,可操作地耦合到所述数据存储,以:执行云服务应用以提供一个或多个服务;在所述数据存储中维持在对应于所述云服务应用的所述一个或多个服务的多个服务标识符和多个硬件标识符之间的多个链接,每个相应的服务标识符与所述多个硬件标识符中的一个或多个硬件标识符相关联;基于所述多个链接和所述云服务系统的硬件配置文件来确定所述云服务系统是否具有提供对所述云服务应用的所述一个或多个服务的接入的能力;以及响应于确定所述云服务系统是否具有提供对所述一个或多个服务的接入的能力,向客户端设备提供对所述云服务应用的所述一个或多个服务中的至少一个服务的应用编程接口(api)的暴露。
5.根据本公开的另一实施例,一种存储指令的非暂时性计算机可读介质,当所述指令由云服务系统的处理设备执行时,使得所述处理设备:由所述处理设备执行云服务应用以提供一个或多个服务;在数据存储中维持在对应于所述云服务应用的所述一个或多个服务的多个服务标识符和多个硬件标识符之间的多个链接,每个相应的服务标识符与所述多个硬件标识符中的一个或多个硬件标识符相关联;基于所述多个链接和所述云服务系统的硬件配置文件来确定所述云服务系统是否具有提供对所述云服务应用的所述一个或多个服务的接入的能力;以及响应于确定所述云服务系统是否具有提供对所述一个或多个服务的接入的能力,向客户端设备提供对所述云服务应用的所述一个或多个服务中的至少一个
服务的应用编程接口(api)的暴露。
附图说明
6.通过结合附图参考以下描述,可以最好地理解所描述的实施例及其优点。这些附图决不限制由本领域技术人员在不脱离所描述的实施例的精神和范围的情况下可以对所描述的实施例进行的任何形式和细节上的改变。
7.图1是根据一些实施例,描绘了用于暴露基于支持的硬件的云应用服务接口(api)的示例环境的框图;
8.图2a是根据一些实施例,描绘了图1中云服务器102的示例的框图;
9.图2b是根据一些实施例,描绘了图1中环境的客户端设备108的示例的框图;
10.图3是根据一些实施例,描绘了用于暴露基于支持的硬件的云应用编程接口(api)的方法的流程图;以及
11.图4是依照一些实施例的可以执行本文所描述的一个或多个操作的示例计算设备的框图。
具体实施方式
12.在操作云服务系统时,消费者可能会尝试使用云api的云服务,只是为了发现云服务在它们的计算环境中已经加载失败,并且没有任何关于为什么云服务已经加载失败的明确解释。例如,开发者可以设计云服务系统,以包含单根输入/输出虚拟化(sr-iov)的云服务组件和/或数据平面开发工具包(dpdk)的服务组件,该sr-iov允许外围组件互连(pci)快速设备将其本身向管理程序呈现为几个虚拟网络接口卡,该dpdk允许将数据包处理从操作系统内核卸载到操作在用户空间中的运行。虽然这些云服务组件将成功地在开发者的计算硬件上执行,但是云服务系统的消费者正在使用完全不同的硬件平台,该硬件平台经常缺乏适当的计算硬件(例如,处理器、存储器、存储、适配器)来成功地支持由云服务组件提供的云服务。因此,使用错误的硬件平台执行这些云服务组件将导致云服务系统向消费者提是消费者困惑的供劣质或不可操作的服务。
13.困惑的消费者然后会针对云服务系统发送重复的请求以提供云服务。然而,这些重复的请求可以通过增加通过网络基础设施的网络拥塞和功耗而使网络基础设施负担过重。重复的请求还可以降低针对云服务系统的能力以向其他消费者提供云服务,因为云服务系统必须消耗其资源(例如,处理,功率)来处理这些请求中的每一个。最终,困惑的消费者会请求说明针对为什么云服务不能在它们的计算环境中工作的技术支持,这只会进一步浪费宝贵的网络资源。
14.本公开的各个方面通过暴露基于云服务系统的支持的硬件的云应用编程接口(api)来解决以上提到的和其他缺陷。使用本公开的一个或多个实施例来暴露基于云服务系统的支持的硬件的云api的好处可以包含网络资源的量的减少以便提供云服务,以及针对整个网络基础设施的网络拥塞和功耗的减少。
15.如下文更详细讨论的,云服务系统可以包含互连的云服务器的聚集,每个云服务器执行被配置为向一个或多个客户端设备提供一个或多个云服务的云服务应用。云服务系统可以从客户端设备接收对云服务应用的特定服务的应用编程接口(api)暴露的请求。云
服务系统可以在数据存储(例如,存储器、数据库)中维持对应于云服务应用的一个或多个服务的多个服务标识符和多个硬件标识符之间的多个链接。每个相应的服务标识符与多个硬件标识符中的一个或多个硬件标识符相关联。云服务系统可以基于多个链接和/或云服务系统的硬件配置文件来确定云服务系统是否具有提供对云服务应用的一个或多个服务的接入的能力。云服务系统可以响应于确定云服务系统是否具有提供对一个或多个服务的接入的能力,向客户端设备提供对云服务应用的一个或多个服务中的至少一个的应用编程接口(api)的暴露(例如,接入、通知等)。
16.图1是根据一些实施例,描绘了用于暴露基于支持的硬件的云应用编程接口(api)的示例环境的框图。环境100包含经由通信网络120可通信地耦合在一起的云服务系统104和多个客户端设备108。环境100包含管理(例如,控制、操作)云服务系统104的云提供商105。
17.通信网络120可以是公共网络(例如,互联网)、专用网络(例如,局域网(lan)或广域网(wan))或其组合。在一些实施例中,通信网络120可以包含有线或无线基础设施,其可以由一个或多个无线通信系统提供,例如到通信网络120的无线保真(wi-fi)连接和/或可以使用各种数据处理装置、通信塔(例如蜂窝塔)等实施的无线载波系统。通信网络120可以在任何其他计算设备之间承载通信(例如,数据、消息、分组、帧等)。
18.云服务系统104包含云服务器102a、102b、102c、102d(统称为“云服务器102”),云服务器102a、102b、102c、102d经由通信网络120可通信地彼此连接,以形成用于向一个或多个客户端设备108递送服务和/或计算资源(统称为“服务”或“云服务”)的云系统。如图1所示,云服务系统104可以包含云服务组件106a、106b、106c、106d(统称为“云服务组件106”),其中云服务组件106a被配置为提供网络服务,云服务组件106b被配置为提供块存储服务,云服务组件106c被配置为提供计算服务,云服务组件106被配置为提供对象存储服务。
19.尽管图1示出了云服务系统104包含选择数量的云服务组件(例如,云服务组件106a、106b、106c、106d),每个云服务组件被配置为提供特定类型的云服务,但是云服务系统104可以包含用于提供任何类型的云服务的任何数量的云服务组件。例如,云服务系统104可以包含云服务组件106,云服务组件106被配置为提供网络服务、块存储服务、计算服务、对象存储服务、数据库服务、通信服务、部署和管理服务、监控服务、遥测服务、排队服务、协作服务、应用服务等。
20.云服务系统104可以是任何类型的云服务。在一些实施例中,云服务系统104可以是基础设施即服务(iaas)其向用户提供计算、网络和存储资源。在一些实施例中,云服务系统104可以是平台即服务(paas),其向用户提供应用可以在其上运行的平台,以及供其运行的信息技术(it)基础设施。在一些实施例中,云服务系统104可以是软件即服务(saas),其向用户提供云应用、在其上运行的平台以及平台的底层基础设施。在一些实施例中,云服务系统104可以是功能即服务(faas),其是在无需维持基础设施的情况下,允许开发者构建、运行和管理作为功能的应用包的事件驱动的执行模型。
21.云服务器102可以是具有处理设备的任何合适类型的计算设备或机器,例如,服务器计算机(例如,应用服务器、目录服务器、通信服务器、计算服务器、数据库服务器、文件服务器、游戏服务器、邮件服务器、媒体服务器、代理服务器、虚拟服务器、网络服务器)、台式计算机、膝上型计算机、平板计算机、智能手机、机顶盒、图形处理单元(gpu)等。在一些示例
中,计算设备可以包括单个机器或者可以包含多个互连的机器(例如,在集群中配置的多个服务器)。
22.云服务器102可以是一个或多个虚拟环境。在一个实施例中,虚拟环境113可以是可以在管理程序上执行的虚拟机(vm),该管理程序在针对计算设备的操作系统(os)的顶层执行。管理程序可以管理系统资源(包含对硬件设备的接入,例如处理设备、存储器、存储设备)。管理程序还可以模拟可以由vm用来执行软件/应用的硬件(或其他物理资源)。在另一个实施例中,虚拟环境可以是可以在容器引擎上执行的容器,该容器引擎在针对计算设备的os的顶层执行。例如,容器引擎可以允许不同的容器以共享计算设备的os(例如,os内核、二进制文件、库等)。云服务系统104可以使用相同类型或不同类型的虚拟环境。例如,所有云服务器102可以是vm。在另一示例中,所有云服务器102可以是容器。在又一示例中,一些云服务器102可以是vm,其他云服务器102可以是容器,并且其他云服务器102可以是计算设备(或计算设备组)。
23.客户端设备108可以是具有处理设备的任何合适类型的计算设备或机器,例如台式计算机、膝上型计算机、平板计算机、智能手机、机顶盒、图形处理单元(gpu)等。客户端设备108可以由消费者、云服务系统104的管理员/操作员等操作。
24.仍然参考图1,每个云服务器102a可以执行被配置为提供一个或多个云服务的云服务应用。云服务系统104可以从客户端设备108接收对云服务应用的特定服务的应用编程接口(api)暴露的请求(在图1中显示为“api暴露请求”)。云服务系统104可以在数据存储(例如,存储器、数据库)中维持对应于云服务应用的一个或多个服务的多个服务标识符和多个硬件标识符之间的多个链接。每个相应的服务标识符与多个硬件标识符中的一个或多个硬件标识符相关联。云服务系统104可以基于多个链接和/或云服务系统的硬件配置文件来确定云服务系统104是否具有提供对云服务应用的一个或多个服务的接入的能力。云服务系统104可以响应于确定云服务系统是否具有提供对一个或多个服务的接入的能力,向客户端设备提供对云服务应用的一个或多个服务中的至少一个服务的应用编程接口(api)的暴露(在图1中显示为“暴露的服务”)。
25.尽管图1仅示出了选择数量的计算设备(例如,云服务器102、客户端设备108),但是环境100可以包含以任何布置互连的有助于计算设备之间的数据交换的任何数量的计算设备。
26.图2a是根据一些实施例,描绘了图1中云服务系统104的示例云服务器102的框图。尽管示出了具有特定功能的各种设备、接口和逻辑,但是应当理解,云服务系统104的一个或多个云服务器102(例如,云服务器102a-102d)包含有助于本文所描述的功能的任意数量的设备和/或组件、接口和逻辑。例如,多个设备的活动可以被组合为单个设备,并且在同一处理设备(例如,处理设备202a)上实施,因为该处理设备包含了具有附加功能的附加设备和/或组件。
27.云服务器102包含可以由一个或多个处理器组成的处理设备202a(例如,通用处理器、pld等),以及可以经由总线(未示出)彼此通信的存储器204a(例如,同步动态随机存取存储器(dram)、只读存储器(rom))。
28.处理设备202a可以由诸如微处理器、中央处理单元等的一个或多个通用处理设备提供。在一些实施例中,处理设备202a可以包含复杂指令集计算(cisc)微处理器、精简指令
集计算(risc)微处理器、超长指令字(vliw)微处理器或实施其他指令集的处理器或实施指令集组合的处理器。在一些实施例中,处理设备202a可以包括一个或多个专用处理设备,例如专用集成电路(asic)、现场可编程门阵列(fpga)、数字信号处理器(dsp)、网络处理器等。与本公开的一个或多个方面相一致,处理设备202a可以被配置为执行本文所描述的操作,用于执行本文讨论的操作和步骤。
29.处理设备202a的存储器204a(例如,随机存取存储器(ram)、只读存储器(rom)、非易失性随机存取存储器(nvrom)、闪存、硬盘存储器、光学介质等)存储有助于本文所描述的各种处理中的至少一些的数据和/或计算机指令/代码。存储器204a包含有形的、非暂时性的易失性存储器或非易失性存储器。存储器204a存储编程逻辑(例如,指令/代码),当由处理设备202a执行时,该编程逻辑控制云服务器102的操作。在一些实施例中,处理设备202a和存储器204a形成关于云服务器102描述的各种处理设备和/或电路。指令包含来自任何合适的计算机编程语言的代码,例如但不限于c、c++、c#、java、javascript、vbscript、perl、html、xml、python、tcl和basic。
30.处理设备202a可以包含和/或执行操作系统226a,操作系统226a被配置为支持云服务器102的基本功能,例如调度任务、执行应用和控制外围设备。在一些实施例中,操作系统226a可以是任何类型的操作系统(os),例如microsoft windows、unix、linux、android或macos等的任何版本。
31.处理设备202a可以包含和/或执行云服务应用210a,以在操作系统226a上和/或操作系统226a内运行。云服务应用210a被配置为包含和/或执行云服务组件106a、106b、106c、106d(统称为“云服务组件106”),每个云服务组件被配置为在没有由用户(例如,客户端设备108的用户)的直接主动管理的情况下提供相应的云服务(有时简称为“服务”)。例如,云服务组件106可以被配置为提供任何类型的云服务,例如网络服务、块存储服务、计算服务、对象存储服务、数据库服务、通信服务、部署和管理服务、监控服务、遥测服务、排队服务、协作服务、应用服务等。尽管图2a仅示出了选择数量的云服务组件106(例如,云服务组件106a、106b、106c、106d);云服务器102可以包含任意数量的云服务组件,以向一个或多个客户端设备108提供任意数量的云服务。
32.在一些实施例中,云服务应用210a可以被配置为在数据存储(例如,存储器204a、本地或远程数据存储)中维持(例如,保存、管理)对应于云服务应用210a的一个或多个服务中的多个服务标识符和多个硬件标识符之间的多个链接(例如,关联)。在一些实施例中,每个相应的服务标识符可以与多个硬件标识符中的一个或多个硬件标识符相关联。在一些实施例中,链接可以指示对应于服务标识符的服务需要对应于一个或多个硬件标识符的一个或多个硬件组件,以便服务能够成功操作并向一个或多个客户端设备108提供服务。在一些实施例中,如果服务能够以满足服务开发者期望的最低性能水平的性能水平执行和操作,则服务能够成功操作。
33.在一些实施例中,硬件组件可以是计算机设备的任何硬件组件,例如处理器、存储器、存储设备、适配器(例如,网络、音频等),一个或多个端口/接口,视频图形卡,主板等。在一些实施例中,硬件标识符可以标识硬件的类型、硬件的版本、硬件的型号、硬件的品牌、硬件的规格(例如,网络速度和/或带宽、处理器速度、负载平衡能力、多线程能力)、硬件组件的计数(例如,处理器的计数)等。
34.在一些实施例中,云服务应用210a可以被配置为检测(例如,感测、确定、注意)云服务应用210a已经被重新配置(例如,更新、修改、调整)以提供一个或多个服务的不同集合。例如,云服务应用210a可以检测到云服务应用210a已经被配置为修改(例如,调整,变更、改变)云服务应用210a的服务。作为另一个示例,云服务应用210a可以检测到云服务应用210a已经被配置为向云服务应用210a移除或添加服务。作为另一个示例,云服务应用210a可以检测到服务的可操作性已经因为该服务失败或恢复而改变。
35.在一些实施例中,云服务应用210a可以被配置为使用对应于一个或多个服务的不同集合的一个或多个链接来更新多个链接。在一些实施例中,云服务应用210a可以被配置为接收(例如,获得、获取、取回)服务已经被更新的指示(例如,链接),以要求更多或更少硬件组件以便能够成功操作并向一个或多个客户端设备108提供服务。云服务应用210a可以被配置为响应于接收到该指示,使用该指示(例如,链接)更新多个链接。
36.在一些实施例中,云服务应用210a可以被配置为基于多个链接和/或云服务系统104的硬件配置文件来确定云服务系统104是否具有提供对云服务应用210a的一个或多个服务的接入的能力。在一些实施例中,提供对云服务应用210a的一个或多个服务的接入的能力取决于云服务系统104的一个或多个云服务器102是否包含支持该服务的适当硬件。
37.在一些实施例中,云服务应用210a可以被配置为基于对应于服务的链接来确定用于支持服务的特定硬件。在一些实施例中,云服务应用210a被配置为通过扫描云服务系统104来检测云服务系统104的硬件配置文件,以检测云服务系统104的硬件配置文件。在一些实施例中,云服务应用210a的硬件配置文件是包含了包含在云服务系统104中的每个硬件组件的列表。
38.在一些实施例中,云服务应用210a可以被配置为检测触发事件是否已经发生。在一些实施例中,由云服务应用210a关于云服务应用210a是否具有提供对云服务应用的一个或多个服务的接入的能力的确定响应于云服务应用210a检测到触发事件已经发生。
39.在一些实施例中,云服务应用210a可以被配置为如果云服务应用210a检测到云服务系统104的硬件配置文件中的改变(例如,修改),则云服务应用210a检测到触发事件已经发生。在一些实施例中,云服务应用210a可以通过确定云服务系统104已经被重新配置为向云服务系统104移除或添加硬件组件来检测云服务系统104的硬件配置文件中的改变。在一些实施例中,云服务应用210a可以通过检测到硬件组件的可操作性已经因为硬件组件已经失败或恢复而改变来检测云服务系统104的硬件配置文件中的改变。
40.在一些实施例中,云服务应用210a可以被配置为通过从云服务器102的操作系统226a接收云服务器102的硬件配置文件已经改变的指示来检测云服务系统104的硬件配置文件中的改变。在一些实施例中,云服务应用210a可以被配置为通过扫描云服务系统104以检测云服务系统104的硬件配置文件是否已经改变,来检测云服务系统104的硬件配置文件中的改变,从而检测云服务系统104的硬件配置文件中的改变。
41.在一些实施例中,云服务应用210a可以被配置为如果云服务应用210a从客户端设备108接收到对云服务应用210a的特定服务的应用编程接口(api)的暴露的请求(在图1中显示为“api暴露请求”),则检测到触发事件已经发生。在一些实施例中,与云服务应用210在重新配置之前被配置为提供的一个或多个服务相比,如果云服务应用210a检测到云服务应用210a已经被重新配置以提供一个或多个服务的不同集合,则云服务应用210a可以被配
置为检测到触发事件已经发生。
42.在一些实施例中,云服务应用210a可以被配置为如果预定量(例如,小时、天、周)的时间已经过去,则检测到触发事件已经发生。例如,云服务应用210a可以被配置为检测到由云服务应用210a关于云服务应用210a是否具有定期(例如,小时、天、周)提供对云服务应用的一个或多个服务的接入的能力的确定。
43.在一些实施例中,云服务应用210a可以被配置为经由消息(在图1中示为“暴露的服务”)向客户端设备108提供对云服务应用的一个或多个服务中的至少一个的应用编程接口(api)的暴露。在一些实施例中,云服务应用210a可以被配置为响应于确定云服务系统104是否具有提供对一个或多个服务的接入的能力,向客户端设备108提供对云服务应用的一个或多个服务中的至少一个的应用编程接口(api)的暴露。
44.在一些实施例中,云服务应用210a可以被配置为基于一个或多个链接和/或云服务系统的硬件配置文件来确定云服务系统104具有提供对云服务应用210a的一个或多个服务的第一集合(例如,一个或多个)的接入的能力。在一些实施例中,云服务应用210a可以被配置为基于一个或多个链接和/或云服务系统的硬件配置文件来确定云服务系统104缺乏提供对云服务应用210a的一个或多个服务的第二集合的接入的能力。在一些实施例中,云服务应用210a可以被配置为响应于确定提供对一个或多个服务的接入的能力(和/或缺乏能力)向客户端设备108提供对云服务系统的一个或多个服务的第一集合的api的接入,而不提供对云服务应用的一个或多个服务的第二集合的api的接入。在一些实施例中,对一个或多个服务的接入意味着客户端设备108可以使用一个或多个服务。
45.在一些实施例中,云服务应用210a可以被配置为响应于基于一个或多个链接和/或云服务系统104的硬件配置文件确定云服务系统104缺乏提供对云服务应用204的一个或多个服务的接入的能力,向客户端设备108发送(例如,传输、提供、递送)指示云服务系统104的硬件配置文件不支持云服务应用210a的一个或多个服务(有时称为“第二集合”)的消息。
46.在一些实施例中,云服务应用210a可以被配置为向客户端设备108隐藏(例如,阻塞(block))云服务应用210a的一个或多个服务的api,以阻止(例如,约束)客户端设备108对云服务应用210a的一个或多个服务的api的接入。
47.在一些实施例中,云服务应用210a可以被配置为向客户端设备108发送包含云服务系统104的硬件配置文件所支持的服务的列表的消息。在一些实施例中,该列表可以包含云服务系统104的硬件配置文件所支持的一个或多个服务。在一些实施例中,该消息可以包含云服务系统104的硬件配置文件不支持的服务的列表以及硬件配置文件中缺失(或损坏)的对应硬件组件的描述,从而阻止一个或多个服务在云服务系统104上成功运行。
48.云服务器102包含网络接口206a,网络接口206a被配置为与计算设备建立用于通过通信网络120向计算设备发送和接收数据的通信会话。因此,网络接口206a包含蜂窝收发器(支持蜂窝标准)、本地无线网络收发器(支持802.11x、zigbee、蓝牙(bluetooth)、wi-fi等)、有线网络接口、其组合(例如蜂窝收发器和bluetooth收发器)等。在一些实施例中,云服务器102包含多个不同类型的网络接口206a,允许经由不同的子网络连接到各种网络,例如局域网(公共或私有)或包含互联网的广域网。
49.云服务器102包含输入/输出设备205a,输入/输出设备205a被配置为从用户接收
用户输入并向用户提供信息。在这点上,输入/输出设备205a被构造为用云服务器102的输入/输出组件来交换数据、通信、指令等。因此,输入/输出设备205a可以是通过生成感官信息(例如,显示器上的可视化、一个或多个声音、触觉反馈等)和/或将从用户接收的感官信息转换为电子信号(例如,键盘、鼠标、定点设备、触摸屏显示器、麦克风等)来向用户传达数据的任何电子设备。根据各种实施例,一个或多个用户界面可以在云服务器102的壳体内部,例如内置显示器、触摸屏、麦克风等,或者在云服务器102的壳体外部,例如连接到云服务器102的监视器、连接到云服务器102的扬声器等。在一些实施例中,云服务器102包含有助于数据、值、消息等在输入/输出设备205a和云服务器102的组件之间进行交换的通信电路。在一些实施例中,输入/输出设备205a包含有助于信息在输入/输出设备205a和云服务器102的组件之间进行交换的机器可读介质。在又一实施例中,输入/输出设备205a包含硬件组件(例如,触摸屏)、通信电路和机器可读介质的任意组合。
50.云服务器102包含设备标识组件207a(在图2a中显示为设备id组件207a),其被配置为生成和/或管理与云服务器102相关联的设备标识符。设备标识符可以包含用于区分云服务器102和其他计算设备的任何类型和形式的标识。在一些实施例中,为了保护隐私,设备标识符可以由云服务器102的任何设备和/或组件密码地生成、加密或以其他方式混淆。在一些实施例中,云服务器102可以包含在云服务器102发送给计算设备的任何通信(例如,公开的服务)中的设备标识符。
51.云服务器102包含总线(未示出),例如地址/数据总线或用于通信信息的其他通信机制,总线将诸如处理设备202a、网络接口206a、输入/输出设备205a和/或设备标识组件207a的云服务器102的设备和/或组件互连。
52.在一些实施例中,云服务器102的一些或全部设备和/或组件可以用处理设备202a来实施。例如,云服务器102可以被实施为存储在存储器204a内并由处理设备202a执行的软件应用。因此,这样的实施例可以用最小的或没有附加的硬件成本来实施。在一些实施例中,任何以上叙述的设备和/或组件依赖于专门配置为用于执行设备和/或组件的操作的专用硬件。
53.图2b是根据一些实施例,描绘了图1中的环境的客户端设备108的示例的框图。虽然示出了带有特定功能的各种设备、接口和逻辑,但是应当理解,客户端设备108包含有助于本文所描述的功能的任意数量的设备和/或组件、接口和逻辑。例如,多个设备的活动可以被组合为单个设备,并且在同一处理设备(例如,处理设备202b)上实施,因为该处理设备包含了附加设备和/或具有附加功能的组件。
54.客户端设备108包含可以由一个或多个处理器组成的处理设备202b(例如,通用处理器、pld等),以及可以经由总线(未示出)彼此通信的存储器204b(例如,同步动态随机存取存储器(dram)、只读存储器(rom))。处理设备202b包含与图2a中的处理设备202a相同或几乎相同的功能,但是是关于客户端设备108的设备和/或组件,而不是云服务器102的设备和/或组件。
55.处理设备202b的存储器204b存储有助于本文所描述的各种过程中的至少一些的数据和/或计算机指令/代码。存储器204b包含与图2a中的存储器204a相同或几乎相同的功能,但是是关于客户端设备108的设备和/或组件,而不是云服务器102的设备和/或组件。
56.处理设备202b可以执行云服务客户端组件210b,云服务客户端组件210b可以被配
置为向云服务系统104发送对云服务应用210a的特定服务的应用编程接口(api)的暴露的请求(在图1中显示为“api暴露请求”)。在一些实施例中,云服务客户端组件210b可以被配置成经由消息(在图1中被示为“暴露的服务”)接收对云服务应用210a的一个或多个服务中的至少一个的应用编程接口(api)的暴露。在一些实施例中,云服务客户端组件210b可以被配置为接收对云服务应用210a的一个或多个服务中的至少一个的应用编程接口(api)的接入。在一些实施例中,云服务客户端组件210b可以被配置为经由一个或多个服务的应用编程接口(api)来使用云服务应用210a的一个或多个服务。
57.在一些实施例中,云服务客户端组件210b可以被配置为向客户端设备108接收包含云服务系统210a的硬件配置文件所支持的服务的列表的消息。在一些实施例中,该列表可以包含云服务系统210a的硬件配置文件所支持的一个或多个服务。在一些实施例中,该消息可以包含云服务系统210a的硬件配置文件不支持的服务的列表以及硬件配置文件中缺失(或损坏)的相应硬件组件的描述,从而阻止一个或多个服务在云服务系统210a上成功运行。
58.客户端设备108包含网络接口206b,网络接口206b被配置为与计算设备建立用于通过网络向计算设备发送和接收数据的通信会话。因此,网络接口206b包含与图2a中的网络接口206a相同或几乎相同的功能,但是是关于客户端设备108的设备和/或组件,而不是云服务器102的设备和/或组件。
59.客户端设备108包含输入/输出设备205b,输入/输出设备205b被配置为从用户接收用户输入并向用户提供信息。在这点上,输入/输出设备205b被构造为用客户端设备108的输入/输出组件交换数据、通信、指令等。输入/输出设备205b包含与图2a中的输入/输出设备205a相同或几乎相同的功能,但是是关于客户端设备108的设备和/或组件,而不是云服务器102的设备和/或组件。
60.客户端设备108包含设备标识组件207b(在图2b中显示为设备id组件207b),其被配置为生成和/或管理与客户端设备108相关联的设备标识符。设备标识组件207b包含与图2a中的设备标识组件207a相同或几乎相同的功能,但是是关于客户端设备108的设备和/或组件,而不是云服务器102的设备和/或组件。
61.客户端设备108包含总线(未示出),例如地址/数据总线或用于通信信息的其他通信机制,总线将诸如处理设备202b、网络接口206b、输入/输出设备205b、设备标识组件207b和云服务客户端组件210b的客户端设备108的设备和/或组件互连。
62.在一些实施例中,客户端设备108的一些或全部设备和/或组件可以用处理设备202b来实施。例如,客户端设备108可以被实施为存储在存储器204b中并由处理设备202b执行的软件应用。因此,这样的实施例可以用最小的或没有附加的硬件成本来实施。在一些实施例中,任何以上叙述的设备和/或组件依赖于专门配置为用于执行设备和/或组件的操作的专用硬件。
63.图3是根据一些实施例,描绘了用于暴露基于支持的硬件的云应用编程接口(api)的方法的流程图。方法300可以由处理逻辑来执行,该处理逻辑可以包括硬件(例如,电路、专用逻辑、可编程逻辑、处理器、处理设备、中央处理单元(cpu)、片上系统(soc)等)、软件(例如,在处理设备上操作/执行的指令和/或应用程序)、固件(例如,微码)或其组合。在一些实施例中,方法300可以由例如图1中的云服务器102的云服务器执行。在一些实施例中,
方法300可以由例如图1中的客户端设备108的客户端设备来执行。
64.参考图3,方法300示出了各种实施例使用的示例功能。尽管在方法300中公开了特定的功能框(“框”),但是这些框是示例。也就是说,实施例非常适合于执行方法300中叙述的各种其他框或框的变化。应当理解,方法300中的框可以以与所呈现的顺序不同的顺序来执行,并且不是方法300中的所有框都可以被执行。
65.如图3所示,方法300包含由云服务系统执行云服务应用以提供一个或多个服务的框302。方法300包含由云服务系统在数据存储中维持对应于云服务应用的一个或多个服务的多个服务标识符和多个硬件标识符之间的多个链接的框304,每个相应的服务标识符与多个硬件标识符中的一个或多个硬件标识符相关联。方法300包含由云服务系统基于多个链接和云服务系统的硬件配置文件来确定云服务系统是否具有提供对云服务应用的一个或多个服务的接入的能力的框306。方法300包含由云服务系统响应于确定云服务系统是否具有提供对一个或多个服务的接入的能力,向客户端设备提供对云服务应用的一个或多个服务中的至少一个的应用编程接口(api)的暴露的框308。
66.图4是依照一些实施例的可以执行本文所描述的一个或多个操作的示例计算设备400的框图。计算设备400可以连接到lan、内联网、外联网和/或互联网中的其他计算设备。计算设备可以以客户端-服务器网络环境中的服务器机器的能力或者以对等网络环境中的客户端的能力来操作。计算设备可以由个人计算机(pc)、机顶盒(stb)、服务器、网络路由器、交换机或网桥或能够执行一组指令(顺序的或其他的)的任何机器来提供,该组指令指定了该机器要采取的动作。此外,虽然仅示出了单个计算设备,但是术语“计算设备”也应当被理解为包含单独地或共同地执行一组(或多组)指令以执行本文讨论的方法的计算设备的任何聚集。
67.示例计算设备400可以包含处理设备(例如,通用处理器、pld等)402、主存储器404(例如,同步动态随机存取存储器(dram)、只读存储器(rom))、静态存储器406(例如,闪存和数据存储设备418),它们可以经由总线430彼此通信。
68.处理设备402可以由诸如微处理器、中央处理单元等的一个或多个通用处理设备提供。在说明性示例中,处理设备402可以包括复杂指令集计算(cisc)微处理器、精简指令集计算(risc)微处理器、超长指令字(vliw)微处理器或者实现其他指令集的处理器或者实现指令集组合的处理器。处理设备402还可以包括一个或多个专用处理设备,诸如专用集成电路(asic)、现场可编程门阵列(fpga)、数字信号处理器(dsp)、网络处理器等。与本公开的一个或多个方面相一致的,处理设备402可以被配置为执行本文所描述的操作,用于执行本文讨论的操作和步骤。
69.计算设备400还可以包含可以与通信网络420通信的网络接口设备408。计算设备400还可以包含视频显示单元410(例如,液晶显示器(lcd)或阴极射线管(crt))、字母数字输入设备412(例如,键盘)、光标控制设备414(例如,鼠标)和声音信号生成设备416(例如,扬声器)。在一个实施例中,视频显示单元410、字母数字输入设备412和光标控制设备414可以组合成单个组件或设备(例如,lcd触摸屏)。
70.与本公开的一个或多个方面相一致的,数据存储设备418可以包含计算机可读存储介质428,在计算机可读存储介质428上可以存储一组或多组指令425,指令425可以包含针对一个或多个组件和/或应用442(例如,图2a中的云服务组件106a-106d、图2a中的云服
务应用210)施行本文所描述的操作的指令。指令425还可以在由计算设备400执行期间完全地或至少部分地驻留在主存储器404和/或处理设备402中,主存储器404和处理设备402还构成计算机可读介质。还可以经由网络接口设备408通过通信网络420发送或接收指令425。
71.虽然计算机可读存储介质428在说明性示例中被示为单个介质,但是术语“计算机可读存储介质”应当被理解为包含存储一组或多组指令的单个介质或多个介质(例如,集中式或分布式数据库和/或相关联的高速缓存和服务器)。术语“计算机可读存储介质”还应被理解为包含能够存储、编码或承载一组由机器执行的指令并使机器执行本文视频描述的方法的任何介质。因此,术语“计算机可读存储介质”应被理解为包含但不限于固态存储器、光学介质和磁介质。
72.除非特别声明,否则诸如“执行”、“确定”、“建立”、“授权”等术语指的是由计算设备执行或实施的动作和处理,该动作和处理操纵计算设备的寄存器和存储器内表示为物理(电子)量的数据并将该数据转换为计算设备的存储器或寄存器或其他这种信息存储、传输或显示设备内类似地表示为物理量的其他数据。此外,如本文所使用的术语“第一”、“第二”、“第三”、“第四”等,是指用于区分不同元素的标签,并且不一定根据它们的数字名称具有序数意义。
73.本文所描述的示例还与用于执行本文所描述的操作的装置相关。该装置可以为所需目的而专门构造,或者它可以包括由存储在计算设备中的计算机程序选择性编程的通用计算设备。这种计算机程序可以存储在计算机可读的非暂时性存储介质中。
74.本文所描述的方法和说明性示例并不固有地与任何特定的计算机或其他装置相关。与本文所描述的教导相一致,可以使用各种通用系统,或者可以证明构建更专用的装置来执行所需的方法步骤是方便的。各种这些系统所需的结构将在如上面的描述所示进行显示。
75.上面的描述旨在说明性的,而不是约束性的。尽管已经参考具体的说明性示例描述了本公开,但是应当认识到本公开不限制于所描述的示例。本公开的范围应当参考以下权利要求以及权利要求所赋予的等同物的全部范围来确定。
76.如本文所使用的,单数形式“一(a)”、“一个(an)”和“该(the)”旨在也包含复数形式,除非上下文清楚地另外指出。将进一步理解,术语“包括(comprise)”、“包括有(comprising)”、“包含(include)”和/或“包含有(including)”在本文使用时,指定所陈述的特征、整数、步骤、操作、元素和/或组件的存在,但是不排除一个或多个其他特征、整数、步骤、操作、元素、组件和/或其组的存在或附加。因此,本文所使用的术语仅出于描述特定实施例的目的,并不旨在进行限制。
77.还应当注意,在一些替代实施中,所示的功能/动作可以不按图中所示的顺序发生。例如,取决于所涉及的功能/动作,实际上,可以基本上同时执行或者有时可以以相反的顺序执行连续示出的两个图。
78.尽管以特定顺序描述了方法操作,但是应当理解,可以在所描述的操作之间执行其他操作,可以调整所描述的操作,使得它们在稍微不同的时间发生,或者所描述的操作可以分布在允许在与处理相关联的各种间隔发生处理操作的系统中。
79.各种单元、电路或其他组件可以被描述或声明为“被配置为”或“可配置为”来执行一项或多项任务。在这样的上下文中,短语“被配置为”或“可配置为”用于通过指示该单元/
电路/组件包含在操作期间执行一个或多个任务的结构(例如电路)来暗示结构。照此,即使当指定的单元/电路/组件当前是无操作性的(例如,不开启)时,单元/电路/组件可以说被配置为执行任务,或者可配置为执行任务。与“被配置为”或“可配置为”的语言一起使用的单元/电路/组件包含硬件,例如电路、存储可执行以实施操作的程序指令的存储器等。叙述单元/电路/部件“被配置为”执行一个或多个任务,或者“可配置为”执行一个或多个任务,明确地旨在为了不对该单元/电路/部件援引u.s.c.112,第六段。附加地,“被配置为”或“可配置为”可以包含通用结构(例如,通用电路),通用结构由软件和/或固件(例如,fpga或执行软件的通用处理器)操纵,从而能够以执行所讨论的任务的方式进行操作。“被配置为”还可以包含调整制造过程(例如,半导体制造设施)以制造适于实施或执行一个或多个任务的设备(例如,集成电路)。“可配置为”明确地旨在不应用于空白介质、未编程的处理器或未编程的通用计算机、或未编程的可编程逻辑器件、可编程门阵列或其他未编程的设备,除非这些设备伴随有赋予未编程设备被配置为执行所公开的功能的能力的编程介质。
80.出于解释的目的,已经参考特定实施例描述了前述描述。然而,以上说明性讨论并不旨在穷举或将本发明限制于所公开的精确形式。鉴于以上教导,许多修改和变化是可能的。选择和描述实施例是为了最好地解释该实施例的原理及其实际应用,从而使本领域的其他技术人员能够最好地利用实施例以及可以适合于预期的特定用途的各种修改。因此,本实施例被认为是说明性的而非约束性的,并且本发明不限制于本文所给出的细节,而是可以在所附权利要求的范围和等同物内进行修改。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1