掌桥专利:专业的专利平台
掌桥专利
首页

多协议云环境中的请求处理

文献发布时间:2024-04-18 20:02:40


多协议云环境中的请求处理

技术领域

本申请涉及多协议云环境中的请求处理。

背景技术

许多企业软件应用是结合企业数据库系统来执行的。企业数据库系统存储企业的数据,包括例如与制造材料管理、会计、记账、人力资源和由商业企业执行的许多其他常见任务相关的商业数据。企业软件应用可以与企业数据库系统交互,以使用存储在企业数据库系统中的数据向企业用户提供功能。

发明内容

根据本公开的一个方面,提供一种用于操作与企业数据库系统一起使用的应用的系统,所述系统包括:至少一个处理器,被编程为执行操作,所述操作包括:在云部署的第一容器处执行通用格式进程;在所述云部署的第二容器处执行应用逻辑代码;由所述通用格式进程从用户设备接收指向所述企业数据库系统的第一请求,所述第一请求根据第一协议被格式化;由所述通用格式进程将所述第一请求转换成通用协议,以生成第一通用协议请求;由所述通用格式进程向所述应用逻辑代码发送所述第一通用协议请求;由所述应用逻辑代码生成采用所述通用协议的第二请求,所述第二请求至少部分基于所述第一通用协议请求;由所述应用逻辑代码向所述通用格式进程发送所述第二请求;由所述通用格式进程将所述第二请求从所述通用协议转换成数据库查询协议,以生成至少一个数据库查询;和由所述通用格式进程将所述至少一个数据库查询发送到所述企业数据库系统。

根据本公开的一个方面,提供一种操作与企业数据库系统一起使用的应用的方法,所述方法包括:在云部署的第一容器处执行通用格式进程;在所述云部署的第二容器处执行应用逻辑代码;由所述通用格式进程从用户设备接收指向所述企业数据库系统的第一请求,所述第一请求根据第一协议被格式化;由所述通用格式进程将所述第一请求转换成通用协议,以生成第一通用协议请求;由所述通用格式进程向所述应用逻辑代码发送所述第一通用协议请求;由所述应用逻辑代码生成采用所述通用协议的第二请求,所述第二请求至少部分基于所述第一通用协议请求;由所述应用逻辑代码向所述通用格式进程发送所述第二请求;由所述通用格式进程将所述第二请求从所述通用协议转换成数据库查询协议,以生成至少一个数据库查询;和由所述通用格式进程将所述至少一个数据库查询发送到所述企业数据库系统。

根据本公开的一个方面,提供一种其上包括指令的机器可读介质,当由至少一个处理器执行时,所述指令使得所述至少一个处理器执行操作,所述操作包括:在云部署的第一容器处执行通用格式进程;在所述云部署的第二容器处执行应用逻辑代码;由所述通用格式进程从用户设备接收指向所述企业数据库系统的第一请求,所述第一请求根据第一协议被格式化;由所述通用格式进程将所述第一请求转换成通用协议,以生成第一通用协议请求;由所述通用格式进程向所述应用逻辑代码发送所述第一通用协议请求;由所述应用逻辑代码生成采用所述通用协议的第二请求,所述第二请求至少部分基于所述第一通用协议请求;由所述应用逻辑代码向所述通用格式进程发送所述第二请求;由所述通用格式进程将所述第二请求从所述通用协议转换成数据库查询协议,以生成至少一个数据库查询;和由所述通用格式进程将所述至少一个数据库查询发送到所述企业数据库系统。

附图说明

在下面的附图中,通过示例而非限制的方式示出了本公开。

图1是示出用于在云环境中实现通用格式进程(common format process)的环境的一个示例的图。

图2是示出了图1的布置的另一示例的图,其示出了各种组件的附加示例细节。

图3是示出可以在图1和图2的布置中执行的处理流程的一个示例的流程图。

图4是示出可以在图1和图2的布置中执行的处理流程的一个示例的流程图。

图5是示出可以在图1和图2的布置中执行的处理流程的一个示例的流程图。

图6是示出在接收到请求时可以由通用格式进程(common format process)执行的处理流程的一个示例的流程图。

图7是示出可以在图1和图2的布置中执行以注册应用逻辑代码(例如应用逻辑代码)的处理流程的一个示例的流程图。

图8是示出计算设备的软件架构的一个示例的框图。

图9是计算机系统的示例形式的机器的框图,在该计算机系统中可以执行指令以使该机器执行本文讨论的任何一种或多种方法。

具体实施方式

企业数据库系统可以向诸如商业企业或其他合适企业的企业提供数据存储和处理。企业数据库系统的示例是可从德国Waldorf的SAP SE获得的S/4HANA系统。企业数据库系统可以包括用于为客户企业执行各种任务的功能,诸如,例如与资产管理、财务、制造、研发、销售、服务、采购和采购、供应链等相关的任务。然而,对于许多企业来说,希望修改和/或补充由企业数据库系统提供的基本功能。考虑一示例企业,它是一家商业或其他拥有雇员的实体。企业可能对工资活动有特定于企业的要求或处理。考虑另一个商品制造商的示例。企业可能具有用于管理库存、采购等的企业特定的要求或处理。

在许多企业数据库系统中,客户企业可以通过修改和/或提供应用逻辑代码来补充和/或修改企业数据库系统的基本功能。应用逻辑代码可以利用存储在企业数据库系统中的数据,根据特定企业的要求为企业执行各种任务。例如,当从企业用户接收到请求时,应用逻辑代码可以应用一个或多个逻辑规则。基于一个或多个逻辑规则,应用逻辑代码可以通过向企业数据库系统进行一个或多个查询以写入和/或检索数据来对该请求作出响应。

在一些示例中,应用逻辑代码可以作为企业数据库系统的一部分来执行。例如,客户企业可以生成应用逻辑代码,并且合并企业逻辑代码与结合企业数据库系统来执行。然而,这种布置有某些缺点。例如,如果客户企业将其自己的定制应用逻辑代码合并到企业数据库系统本身中,那么该客户企业升级企业数据库系统可能会更加困难。例如,由企业数据库系统的开发者提供的对企业数据库系统的升级可能需要升级与企业数据库系统一起执行的应用逻辑代码。因为客户企业经常修改和/或提供应用逻辑代码,所以客户企业可能需要修改应用逻辑代码以使其与企业数据库系统的更新兼容。因此,客户企业可能需要定期更新他们自己的应用逻辑代码以便更新企业数据库系统本身。

在一些示例中,企业数据库系统可以支持在企业数据库系统自身外部执行的应用逻辑代码。例如,应用逻辑代码可以在与企业数据库系统的其余部分不同的微服务中执行。企业数据库系统可以包括以定义的方式与客户企业的应用逻辑代码交互的接口。这样,不必在每次升级企业数据库系统时都升级应用逻辑代码。

在一些示例中,企业数据库系统由应用编程模型补充,诸如可从德国Waldorf的SAP SE获得的SAP云应用编程模型。应用编程模型可以是企业数据库系统的组件,其充当企业数据库系统和应用逻辑代码之间的接口。例如,应用编程模型可以接收用户请求,其可以根据ODATA、GraphQL或另一种合适的协议来格式化。应用编程模型可以将请求翻译成通用协议,诸如规范查询语言(Canonical Query Language,CQL),并向各种应用逻辑代码提供通用协议请求。应用编程模型还可以将消息翻译成数据库查询协议,诸如结构化查询语言(SQL)或另一种合适的数据库查询协议。

在企业数据库系统中利用应用逻辑代码之间的接口的一些布置可能会有缺点。例如,可能希望接口用以不同编程语言编码的应用逻辑操作。例如,一些客户企业可能更喜欢用节点.JS编写应用逻辑代码,而其他客户企业可能更喜欢用Java或Rust或不同的编程语言编码。在某些情况下,这可能促使企业数据库系统的提供商开发多个接口,其中每个接口用不同语言的应用逻辑代码操作。这可能会增加企业数据库系统的成本并降低其效率。例如,开发、维护和执行多个接口以支持多种不同的编程语言的成本可能很高。

这些和其他挑战可以通过利用通用格式进程来解决。通用格式进程可以被编程为在各种不同的协议之间翻译请求。例如,通用格式进程可被编程为将来自ODATA或GraphQL的用户请求翻译成通用协议,该通用协议可由以不同编程语言开发的应用逻辑代码读取。通用格式进程还可以被编程为从通用协议翻译为企业数据库系统使用的数据库查询协议,诸如SQL。

在一些示例中,通用格式进程和应用逻辑代码可以根据微服务架构来布置。在微服务架构中,软件解决方案的不同部分由在云环境中执行的松散耦合的微服务的集合来实现。每个微服务可以包括在由云环境实现的容器中执行的单个可执行文件。在微服务架构中,每个微服务被编程为执行定义的任务或小任务集合,并以定义的方式(例如,根据应用编程接口(API))与其他微服务交互。

微服务架构应用中的微服务之间的独立程度可以促进根据不同编程语言编码的软件组件之间的交互。例如,通用格式进程可以在第一容器内执行,并且可以根据任何合适的编程语言(诸如,例如Java、Node.JS、Rust和/或类似物)来编码。通用格式进程可以与也在相应容器内执行的一个或多个应用逻辑代码对接。应用逻辑代码可以根据各种合适的编程语言来编码。应用逻辑代码中的一些或所有可以用不同于用于编码通用格式进程的编程语言的编程语言来编码。以这种方式,通用格式进程可以被布置成支持用各种不同的编程语言编程的应用逻辑代码,对于企业数据库系统提供商来说,效率提高且费用降低。

图1是示出用于在云环境102中实现通用格式进程104的布置100的一个示例的图。云环境102可以包括实现一个或多个虚拟和/或硬件服务器的一个或多个数据中心。云环境102执行通用格式进程104、应用逻辑代码112、114、116的各种实例以及消息系统120。在一些示例中,云环境102还执行本地持久数据库118和企业数据库系统122。

通用格式进程104可以在通用格式容器105内执行。应用逻辑代码112、114、116的实例可以在相应的应用逻辑容器106、108、110内执行。云环境102处的其他组件,诸如例如本地持久数据库118、消息系统120和企业数据库系统122,也可以在一个或多个相应的容器内执行。在一些示例中,云环境102可实现容器编排系统来管理各种容器105、106、108、110等。容器编排系统可包括在云环境102中执行的一个或多个容器编排服务。在一些示例中,容器编排系统可以是

图1还示出了具有用户计算设备126的示例企业用户124。企业用户124可以是与使用企业数据库系统122和应用逻辑代码112、114、116的各种实例来执行各种任务的客户企业相关联的用户。考虑一示例,其中客户企业使用企业数据库系统122来管理雇员。企业数据库系统122可以被配置成存储与客户企业的雇员相关的数据。在该示例中,企业用户124可以是客户企业的人力资源管理者,并且可以请求企业数据库系统122和应用逻辑代码112、114、116的一个或多个实例来执行人际关系相关的任务,诸如,例如运行工资单。考虑客户企业制造产品的另一个示例。关于产品的组成和/或制造的数据可以存储在企业数据库系统122中。企业用户124可以是生产管理者、工程师,或者在客户企业中具有另一个合适的角色。在这个示例中,企业用户124可以使用企业数据库系统122和应用逻辑代码112、114、116的一个或多个实例来执行与生产相关的任务,诸如,例如运行材料清单(bill ofmaterial,BOM)、发起原材料订单等。

企业用户124可以利用用户计算设备126访问云环境102。用户计算设备126可以是任何合适的计算设备,例如台式计算机、膝上型计算机、移动计算设备等。在一些示例中,用户计算设备126执行浏览器程序。企业用户124可以通过将浏览器程序导航到与企业数据库系统122相关联的统一资源定位符(URL)来利用企业数据库系统122和应用逻辑代码112、114、116的一个或多个实例。作为响应,可以向用户计算设备126提供在浏览器内执行的web应用代码。web应用代码可以在浏览器内执行,以向企业用户124提供企业数据库系统122的功能以及应用逻辑代码112、114、116的一个或多个实例,例如,如本文所述。尽管在图1中示出了一个企业用户124,但是应当理解,利用企业数据库系统122的客户企业可以具有多个用户,这些用户可以如本文所述向企业数据库系统122发出请求。

企业用户124可以通过用户计算设备126做出各种请求。再次参考上面的示例,其中企业用户124是人力资源管理者,该请求可以包括执行工资任务的请求。此外,再次参考企业用户124是生产管理者的示例,该请求可以是运行BOM、发起原材料订单等的请求。

通用格式进程104可以被配置成处理用户之间的各种请求,所述用户诸如企业用户124、应用逻辑代码112、114、116、本地持久数据库118、消息系统120和企业数据库系统122。例如,如本文所述,企业用户124可以生成请求。企业用户124利用用户计算设备126生成的请求可以根据各种不同的协议来格式化。在一些示例中,由企业用户124生成的请求可以根据Odata协议、GraphQL协议或任何其他合适的协议来格式化。该请求可由通用格式进程104接收,并被翻译成通用协议。该通用协议可以是例如德国Waldorf的SAP SE利用的CQN协议,或任何其他合适的通用协议。

一旦请求被转换成通用协议,通用格式进程104就可以将请求提供给应用逻辑代码112、114、116的适当实例。在一些示例中,该请求将指示该请求所指向的应用逻辑代码112、114、116的端口名称、端口号或其他标识符。接收方应用逻辑代码112、114、116可以接收该请求并执行各种处理。例如,应用逻辑代码112、114、116可以确定将执行什么数据和/或处理来对该请求作出响应。

应用逻辑代码112、114、116可以生成指向通用格式进程104的一个或多个请求。由应用逻辑代码112、114、116生成的请求可以响应于由企业用户124发起的请求。在一些示例中,应用逻辑代码112、114、116生成对应于来自企业用户(诸如企业用户124)的单个请求的不止一个请求。

由应用逻辑代码112、114、116生成的请求可以指向企业数据库系统122和/或可以指向本地持久数据库118。本地持久数据库118可以存储与应用逻辑代码112、114、116相关联的状态数据。尽管在图1中示出了一个本地持久数据库118,但是在各种实施例中,应用逻辑代码112、114、116的每个实例可以具有用于持久存储状态数据的对应的本地持久数据库118。这样,应用逻辑容器106、108、110可以保持无状态。

当通用格式进程104从应用逻辑代码112、114、116的实例接收到指向本地持久数据库118的请求时,通用格式进程104可以将该请求转换成数据库查询格式,诸如,例如SQL或另一合适的格式。来自应用逻辑代码112、114、116的实例的单个请求可以被翻译成数据库查询格式的一个查询或多个查询。通用格式进程104可以向本地持久数据库118提供数据库查询格式的一个或多个查询。例如,如果请求是读取请求,则本地持久数据库118可以提供回复。通用格式进程104可将回复转换成通用格式,并将通用协议回复提供给请求应用逻辑代码112、114、116。

当通用格式进程104从应用逻辑代码112、114、116的实例接收到指向企业数据库系统122的请求时,通用格式进程104可以将该请求转换成数据库查询格式,诸如,例如SQL或另一种合适的格式。来自应用逻辑代码112、114、116的实例的单个请求可以被翻译成数据库查询格式的一个查询或多个查询。通用格式进程104可以例如经由消息系统120向企业数据库系统122提供数据库查询格式的一个或多个查询。例如,通用格式进程104可以向消息传送系统120提供一个或多个查询。消息系统120又可以向企业数据库系统122提供一个或多个查询。例如,如果请求是读请求,企业数据库系统122可以提供回复。回复可经由消息传递系统120提供给通用格式进程104。通用格式进程104可将回复转换成通用格式,并将通用协议回复提供给请求应用逻辑代码112、114、116。

图2是示出了图1的布置100的另一示例的图,示出了各种组件的附加示例细节。在图2的布置100中,企业用户124经由用户计算设备126做出指向通用格式进程104的请求。在这个示例中,请求是根据ODATA协议组织的超文本传输协议(HTTP)请求。在其他示例中,该请求可以根据其他合适的传输协议诸如例如gRPC来组织。

通用格式进程104可包括翻译组件204,用于将消息翻译成通用协议或从通用协议翻译消息。在一些示例中,翻译组件204可以包括各种协议组件206、208,用于处理不同的协议,诸如,例如ODATA、SQL或由通用格式进程104处理的其他合适的协议。通用格式进程104可以处理来自企业用户124的传入请求。该处理可以包括验证企业用户124对做出该请求的授权、验证该请求的完整性以及各种其他动作,例如如本文参考图6所描述的。对该请求的处理还可以包括翻译通用协议的请求并将该请求提供给适当的应用逻辑代码112。在图2的示例中,该请求指向应用逻辑代码112。

响应于接收到采用通用协议的请求,应用逻辑代码112可以生成采用通用协议的一个或多个响应。在一些示例中,应用逻辑代码112可以生成通用协议响应,该通用协议响应包括访问本地持久数据库118的请求。通用协议响应可被提供给通用格式进程104,通用格式进程104可将通用协议响应转换成由本地持久数据库118使用的数据库查询格式的一个或多个查询。通用格式进程可以向本地持久数据库118提供一个或多个查询,并接收回复。该回复可被翻译成通用协议并被提供给应用逻辑代码112。

在一些示例中,应用逻辑代码112可以生成指向企业数据库系统122的请求。该请求,采用通用协议,可以被提供给通用格式进程104。通用格式进程104可以将该请求翻译成采用企业数据库系统122所使用的数据库查询协议的一个或多个查询。通用格式进程104可以例如通过消息系统120向企业数据库系统提供一个或多个查询。在一些示例中,企业数据库系统122通过消息系统120向通用格式进程104提供对查询的响应。通用格式进程104可以适当地翻译结果,并经由用户计算设备126将结果提供给企业用户124和/或返回给应用逻辑代码112。经由用户计算设备126传送给企业用户124的数据可以被翻译成用户计算设备126所使用的协议,诸如,例如,携带根据ODATA格式组织的数据的HTTP请求。传输到应用逻辑代码112的数据可以被翻译成通用格式。

在图2的示例中,通用格式进程104还包括注册处理器(registration handler)202。例如,应用逻辑代码,诸如应用逻辑代码112,可以向通用格式进程104注册,如本文参考图7所述。如本文所述,注册过程可以向通用格式进程104提供数据,以允许通用格式进程104检测去往和/或来自应用逻辑代码112的请求,并适当地翻译和路由这些请求。

在各种示例中,图1所示的通用格式进程104的组件可以在通用格式容器105内执行。例如,注册处理器202、翻译组件204和各种协议组件206、208可以是在通用格式容器105内执行的不同的可执行程序。

图3是示出可以在图1和图2的布置100中执行的处理流程300的一个示例的流程图。在操作302,云环境102可以执行通用格式进程104。例如,云环境102可访问描述通用格式容器105的图像,该图像包括在通用格式容器105内执行以实现通用格式进程104的各种可执行文件。云环境102可启动通用格式容器105以使实现通用格式进程104的一个或多个可执行文件在通用格式容器105内执行。在一些示例中,执行通用格式进程104包括在通用格式容器105内启动附加的可执行程序,以执行通用格式进程104的组件,诸如,例如注册处理器202、翻译组件204和各种协议组件206、208。

在操作304,云环境102可以执行应用逻辑代码112的实例。这可以包括,例如,启动适当的容器106并开始在容器106内执行适当的应用逻辑代码112。这可以包括访问描述应用逻辑容器106的图像,该应用逻辑容器106包括要在容器106内执行以实现应用逻辑代码112的一个或多个可执行代码。云环境102可启动应用逻辑容器106并使一个或多个可执行文件在其中执行。尽管关于应用逻辑代码112描述了图3的示例,但是应当理解,可以关于在云环境102处执行的应用逻辑代码114、116的其他实例执行类似的过程。

在操作306,通用格式进程104接收指向应用逻辑代码112的请求。如本文所述,该请求可以从企业用户124接收。该请求可以包括端口号或应用逻辑代码112的其他标识符。在操作308,通用格式进程104可以将第一请求转换成通用协议。在操作310,通用格式进程104可以处理第一请求。这可以包括例如验证企业用户124被授权进行请求、检查请求的有效性和/或例如在图6中描述的各种其他操作。在操作312,通用格式进程104可以向应用逻辑代码112发送该请求。

图4是示出可以在图1和图2的布置100中执行的处理流程400的一个示例的流程图。处理流程400包括三列401、403、405。列401包括由诸如应用逻辑代码112、114、116的应用逻辑代码的实例执行的操作。参考应用逻辑代码112来描述图4的示例。然而,应当理解,处理流程400也可以针对应用逻辑代码114、116的其他实例来执行。列403包括由通用格式进程104执行的操作。列405包括由企业数据库系统122执行的操作。

在操作402,通用格式进程104经由用户计算设备126接收来自企业用户124的请求。在操作404,通用格式进程将请求转换成通用协议。通用格式进程104还可以对传入请求执行各种处理,例如如本文所描述的。在操作406,通用格式进程104向应用逻辑代码112发送通用协议请求407。

在操作408,应用逻辑代码112可以处理通用协议请求407。这可以包括,例如,确定要对本地持久数据库118和/或企业数据库系统122做出的一个或多个请求,以对来自企业用户124的请求作出响应。在操作410,应用逻辑代码112向通用格式进程104发送通用协议请求409。通用协议请求409可以包括对企业数据库系统122的请求的查询。所述请求的查询可以根据通用协议来格式化,并且可以描述要写入企业数据库系统122和/或从企业数据库系统122读取的数据。

在操作412,通用格式进程104可以接收通用协议请求409,并根据数据库查询格式将通用协议请求409转换成一个或多个数据库查询。在操作414,通用格式进程104可以向企业数据库系统122发送一个或多个数据库查询411。这可以包括向消息系统120发送一个或多个数据库查询411,消息系统120进而可以向企业数据库系统122发送一个或多个查询。在操作416,企业数据库系统122可以执行一个或多个数据库查询。这可以包括例如将数据写入企业数据库系统122,例如,如果一个或多个数据库查询包括post请求。例如,如果一个或多个数据库查询包括get请求,执行一个或多个数据库查询还可以包括从企业数据库系统122读取数据。在操作418,企业数据库系统122可以提供数据库查询响应413。当一个或多个数据库查询411包括读取请求时,数据库查询响应413可以包括从企业数据库系统122读取的数据。当一个或多个数据库查询411包括写请求时,数据库查询响应413可以包括所请求的数据被写入的确认。

在操作420,通用格式进程104可以将数据库响应413转换成通用协议。在操作422,通用格式进程104可以向应用逻辑代码112发送通用协议回复415。通用协议回复415可以包括在数据库响应413处从企业数据库系统122接收的数据,该数据被转换成通用协议,因此可由应用逻辑代码112读取。在操作424,应用逻辑代码112可以接收通用协议回复415。应用逻辑代码112可以基于通用协议回复415继续其处理。例如,应用逻辑代码112可以对企业数据库系统122进行额外的请求,可以对本地持久数据库118进行请求,和/或可以对企业用户124进行回复。

图5是示出可以在图1和图2的布置100中执行的处理流程500的一个示例的流程图。处理流程500包括三列501、503、505。列501包括由诸如应用逻辑代码112、114、116的应用逻辑代码的实例执行的操作。参考应用逻辑代码112来描述图5的示例。然而,应当理解,处理流程500也可以针对应用逻辑代码114、116的其他实例来执行。列503包括由通用格式进程104执行的操作。列505包括由本地持久数据库118执行的操作。

在操作502,通用格式进程104经由用户计算设备126接收来自企业用户124的请求。在操作504,通用格式进程104将请求转换成通用协议。通用格式进程104还可以对传入请求执行各种处理,例如如本文所描述的。在操作506,通用格式进程104向应用逻辑代码112发送通用协议请求507。

在操作508,应用逻辑代码112可以处理通用协议请求507。这可以包括,例如,确定要对本地持久数据库118和/或企业数据库系统122做出的一个或多个请求,以对来自企业用户124的请求作出响应。在操作510,应用逻辑代码112向通用格式进程104发送第二通用协议请求509。第二通用协议请求509可以包括对本地持久数据库118的请求的查询。所述请求的查询可以根据通用协议来格式化,并且可以描述要写入企业数据库系统122和/或从企业数据库系统122读取的数据。

在操作512,通用格式进程104可以接收通用协议请求509,并根据数据库查询格式将通用协议请求509转换成一个或多个数据库查询。在操作514,通用格式进程可以向本地持久数据库118发送一个或多个数据库查询511。在操作516,本地持久数据库118可以执行一个或多个数据库查询。这可以包括例如将数据写入本地持久数据库118和/或从本地持久数据库118读取数据。在操作518,本地持久数据库118可以提供数据库查询响应513。当一个或多个数据库查询511包括读取请求时,数据库查询响应513可以包括从本地持久数据库118读取的数据。当一个或多个数据库查询511包括写请求时,数据库查询响应513可以包括所请求的数据被写入的确认。

在操作520,通用格式进程104可以将数据库查询响应513转换成通用协议。在操作522,通用格式进程104可以向应用逻辑代码112发送通用协议回复515。通用协议回复515可以包括在数据库查询响应513处从企业数据库系统122接收的数据,该数据被转换成通用协议,因此可由应用逻辑代码112读取。在操作524,应用逻辑代码112可以接收通用协议回复515。应用逻辑代码112可以基于通用协议回复515继续其处理。例如,应用逻辑代码112可以对本地持久数据库118进行额外的请求,可以对企业数据库系统122进行请求,和/或可以对企业用户124进行回复。

图6是示出可由通用格式进程104在接收到请求时执行的处理流程600的一个示例的流程图。当通用格式进程104从企业用户124和/或从应用逻辑代码112、114、116的实例接收到请求时,可以执行处理流程600。处理流程600提供了通用格式进程104可以如何执行本文所描述的处理流程300的操作310的一个示例。此外,应当理解,图6中描述的操作是示例。通用格式进程104可以省略图6中描述的一个或多个操作,可以添加图6中未描述的附加操作,和/或可以重新排序图6中描述的一些或所有操作。

在操作602,通用格式进程104可以确定该请求是否被授权。如果提出请求的一方拥有足够的特权来提出请求,则该请求可以被授权。例如,当从企业用户124接收到请求时,通用格式进程104可以通过访问描述企业用户124的证书或角色的证书数据和/或角色数据来确定该请求是否被授权。角色和/或证书数据可以指示在企业数据库系统122处可以由企业用户124发起的数据、请求和/或操作。通用格式进程104可以确定企业用户是否被授权做出所接收的请求。此外,在一些示例中,应用逻辑代码112、114、116的不同实例可以类似地在企业数据库系统122中具有特权。当从应用逻辑代码112、114、116的实例接收到请求时,通用格式进程104可以确定应用逻辑代码112、114、116的特权是否授权应用逻辑代码112、114、116进行该请求。如果该请求未被授权,则通用格式进程104可以在操作604拒绝该请求。在一些示例中,拒绝请求可以包括向请求的发出者发出指示拒绝的消息。

如果该请求被授权,则在操作606,通用格式进程104可以对照一个或多个完整性条件来检查该请求。一个或多个完整性条件可以确定该请求是否包括语法和/或逻辑错误。例如,完整性条件所考虑的错误可以包括阻止请求被执行的错误和/或导致请求返回出错或其他不正确响应的错误。如果该请求未能满足一个或多个完整性条件,则在操作608,通用格式进程104可以对该请求执行错误处理。这可以包括例如拒绝该请求和/或将该请求发回发出者。

在操作610,通用格式进程104可以确定该请求是否会在例如企业数据库系统122或本地持久数据库118处生成数据对象。例如,写请求,诸如post请求,可以包括要写入企业数据库系统122和/或本地持久数据库118的数据。写请求可以导致在相应的数据库中生成数据对象。如果该请求将在企业数据库系统122和/或本地持久数据库118中生成数据对象,则通用格式进程104可以在操作612中生成统一标识符(UUID)来描述新的数据对象。UUID可以被包括在由通用格式进程104以数据库查询格式生成的一个或多个数据库查询中。此外,在一些示例中,通用格式进程104可以向请求方(例如,企业用户124和/或请求应用逻辑代码112、114、116)返回UUID的指示。

在操作614,通用格式进程104可以确定该请求是否从企业数据库系统122的嵌套数据结构中读取和/或向其写入。嵌套数据结构可以是包括一系列组件的数据结构,这些组件具有组织在其中的嵌套子组件。在一些示例中,根据数据库查询协议,从嵌套数据结构读取或向嵌套数据结构写入的请求可以被表达为多个数据库查询。因此,通用格式进程104可以将这样的请求转换成数据库查询格式的多个数据库查询。

考虑示例代码片段[1],其示出了在ODATA协议的嵌套数据结构中引用的示例ODATA语法请求,或者代码片段[2],其示出了Node.js协议中的等效请求:

GET.../Orders?$expand=header($expand-items) [1]

SELECT.from(‘Orders’,o=>o,‘*’,o.header(h=>h,‘*’,h.items(‘*’)))[2]

这两个请求都将从名为Orders的表中返回嵌套结构的数组,该表由下面的代码片段[3]给出:

在该示例中,通用格式进程104可以从由代码片段[1]和[2]指示的请求中生成多个数据库查询,以便生成由代码片段[3]给出的结果。

在操作618,通用格式进程104可以根据数据库查询协议生成数据库查询。在操作618生成的数据库查询和/或在操作616生成的多个数据库查询可以例如通过消息系统120提供给企业数据库系统122。

图7是示出了可以在图1和图2的布置100中执行以注册应用逻辑代码(例如应用逻辑代码112、114、116)的处理流程700的一个示例的流程图。处理流程700包括两列701、703。列701包括由应用逻辑代码112的实例执行的操作。列703包括由通用格式进程104执行的操作。在一些示例中,列703中的操作由通用格式进程104的注册处理器202执行。参考应用逻辑代码112来描述处理流程700。然而,应当理解,对于应用逻辑代码114、116的其他实例,可以执行类似的过程。

在操作702,应用逻辑代码112启动。例如,云环境102可以利用编排服务来启动应用逻辑容器106。云环境102可以访问例如描述应用逻辑容器106的图像,并且可以实现包括在应用逻辑容器106内执行应用逻辑代码112的图像。在操作704,在启动之后,应用逻辑代码112可以向通用格式进程104发送注册消息705。注册消息705可以包括描述应用逻辑代码112的数据,包括例如与应用逻辑代码112相关联的端口号。在一些示例中,注册消息705还可以包括与应用逻辑代码112相关联的端口名称。布置100的其他实体可以使用端口号和/或端口名来将消息导向应用逻辑代码112。例如,针对应用逻辑代码112的请求可以包括与应用逻辑代码相关联的端口号和/或端口名。因此,向通用格式进程104提供端口号和/或端口名可以有助于通用格式进程104正确地路由去往应用逻辑代码112的请求。

在操作706,通用格式进程104可以接收注册消息705。在操作708,通用格式进程104可以注册应用逻辑代码112。这可以包括例如存储与应用逻辑代码112相关联的端口号和/或端口名。

在操作710,通用格式进程104可以接收指向应用逻辑代码112的请求。例如,在操作710接收的请求可以包括为应用逻辑代码112注册的端口名称和/或端口号。在操作712,通用格式进程104可以处理传入请求,例如如本文所描述的。这可以包括将接收到的请求翻译成通用协议。在操作714,通用格式进程104向应用逻辑代码112发送对应于所接收的请求的通用协议请求707,应用逻辑代码112在操作716接收通用协议请求707,并且可以处理该通用协议请求,例如,如本文所述。

示例:

示例1是一种用于操作与企业数据库系统一起使用的应用的系统,该系统包括:至少一个处理器,被编程为执行操作,包括:在云部署的第一容器处执行通用格式进程;在云部署的第二容器处执行应用逻辑代码;由通用格式进程从用户设备接收指向企业数据库系统的第一请求,第一请求根据第一协议被格式化;由通用格式进程将第一请求转换成通用协议,以生成第一通用协议请求;由通用格式进程向应用逻辑代码发送第一通用协议请求;由应用逻辑代码生成通用协议中的第二请求,第二请求至少部分基于第一通用协议请求;由应用逻辑代码向通用格式进程发送第二请求;由通用格式进程将第二请求从通用协议转换成数据库查询协议,以生成至少一个数据库查询;以及由通用格式进程将至少一个数据库查询发送到企业数据库系统。

在示例2中,示例1的主题可选地包括该操作,该操作还包括:由通用格式进程从应用逻辑代码接收访问本地持久数据库的请求,本地持久数据库包括与应用逻辑代码相关联的状态数据;由通用格式进程将访问本地持久数据库的请求转换成数据库查询协议,以生成本地持久数据库查询;由通用格式进程将本地持久数据库查询发送到本地持久数据库;由通用格式进程从本地持久数据库接收本地持久数据库响应,该本地持久数据库响应响应于本地持久数据库查询;由通用格式进程将本地持久数据库响应转换成通用协议,以生成本地持久通用协议响应;以及由通用格式进程向应用逻辑代码发送本地持久通用协议响应。

在示例3中,示例1-2中的任何一个或多个的主题可选地包括该操作,该操作还包括由通用格式进程确定第一请求满足至少一个完整性条件。

在示例4中,示例1-3中的任何一个或多个的主题可选地包括该操作,该操作还包括由通用格式进程确定与用户设备相关联的用户被授权做出第一请求。

在示例5中,示例1-4中的任何一个或多个的主题可选地包括第二请求,该第二请求包括对企业数据库系统的写入,该操作还包括由通用格式进程生成统一标识符,该统一标识符指示由第二请求指示的企业数据库系统处的新数据对象,该至少一个数据库查询包括统一标识符。

在示例6中,示例1-5中的任何一个或多个的主题可选地包括将第二请求从通用协议转换为数据库查询协议生成多个数据库查询,多个数据库查询包括至少一个数据库查询。

在示例7中,示例1-6中的任何一个或多个的主题可选地包括应用逻辑代码根据第一编码语言进行编码,操作还包括:由通用格式进程从第二用户设备接收指向企业数据库系统的第三请求;由通用格式进程将第三请求转换成通用协议,以生成第二通用协议请求;以及由通用格式进程将第二通用协议请求发送到在云部署处执行的第二应用逻辑代码,第二应用逻辑代码根据不同于第一编码语言的第二编码语言进行编码。

在示例8中,示例1-7中的任何一个或多个的主题可选地包括该操作,该操作还包括由应用逻辑代码向通用格式进程发送注册消息,该注册消息包括与应用逻辑代码相关联的端口标识符,第一通用协议请求被定向到端口标识符。

示例9是一种操作与企业数据库系统一起使用的应用的方法,该方法包括:在云部署的第一容器处执行通用格式进程;在云部署的第二容器处执行应用逻辑代码;由通用格式进程从用户设备接收指向企业数据库系统的第一请求,第一请求根据第一协议被格式化;由通用格式进程将第一请求转换成通用协议,以生成第一通用协议请求;由通用格式进程向应用逻辑代码发送第一通用协议请求;由应用逻辑代码生成通用协议中的第二请求,第二请求至少部分基于第一通用协议请求;由应用逻辑代码向通用格式进程发送第二请求;由通用格式进程将第二请求从通用协议转换成数据库查询协议,以生成至少一个数据库查询;以及由通用格式进程将至少一个数据库查询发送到企业数据库系统。

在示例10中,示例9的主题可选地包括由通用格式进程从应用逻辑代码接收访问本地持久数据库的请求,本地持久数据库包括与应用逻辑代码相关联的状态数据;由通用格式进程将访问本地持久数据库的请求转换成数据库查询协议,以生成本地持久数据库查询;由通用格式进程将本地持久数据库查询发送到本地持久数据库;由通用格式进程从本地持久数据库接收本地持久数据库响应,该本地持久数据库响应响应于本地持久数据库查询;由通用格式进程将本地持久数据库响应转换成通用协议,以生成本地持久通用协议响应;以及由通用格式进程向应用逻辑代码发送本地持久通用协议响应。

在示例11中,示例9-10中的任何一个或多个的主题可选地包括由通用格式进程确定第一请求满足至少一个完整性条件。

在示例12中,示例9-11中的任何一个或多个的主题可选地包括由通用格式进程确定与用户设备相关联的用户被授权做出第一请求。

在示例13中,示例9-12中的任何一个或多个的主题可选地包括第二请求,该第二请求包括对企业数据库系统的写入,该方法还包括由通用格式进程生成统一标识符,该统一标识符指示由第二请求指示的企业数据库系统处的新数据对象,该至少一个数据库查询包括统一标识符。

在示例14中,示例9-13中的任何一个或多个的主题可选地包括将第二请求从通用协议转换为数据库查询协议生成多个数据库查询,多个数据库查询包括至少一个数据库查询。

在示例15中,示例9-14中的任何一个或多个的主题可选地包括根据第一编码语言编码的应用逻辑代码,该方法还包括:由通用格式进程从第二用户设备接收指向企业数据库系统的第三请求;由通用格式进程将第三请求转换成通用协议,以生成第二通用协议请求;以及由通用格式进程向在云部署处执行的第二应用逻辑代码发送第二通用协议请求,第二应用逻辑代码根据不同于第一编码语言的第二编码语言编码。

在示例16中,示例9-15中的任何一个或多个的主题可选地包括由应用逻辑代码向通用格式进程发送注册消息,该注册消息包括与应用逻辑代码相关联的端口标识符,第一通用协议请求被定向到端口标识符。

示例17是其上包括指令的机器可读介质,当由至少一个处理器执行时,指令使得至少一个处理器执行操作,包括:在云部署的第一容器处执行通用格式进程;在云部署的第二容器处执行应用逻辑代码;由通用格式进程从用户设备接收指向企业数据库系统的第一请求,第一请求根据第一协议被格式化;由通用格式进程将第一请求转换成通用协议,以生成第一通用协议请求;由通用格式进程向应用逻辑代码发送第一通用协议请求;由应用逻辑代码生成通用协议中的第二请求,第二请求至少部分基于第一通用协议请求;由应用逻辑代码向通用格式进程发送第二请求;由通用格式进程将第二请求从通用协议转换成数据库查询协议,以生成至少一个数据库查询;以及由通用格式进程将至少一个数据库查询发送到企业数据库系统。

在示例18中,示例17的主题可选地包括该操作,该操作还包括:由通用格式进程从应用逻辑代码接收访问本地持久数据库的请求,本地持久数据库包括与应用逻辑代码相关联的状态数据;由通用格式进程将访问本地持久数据库的请求转换成数据库查询协议,以生成本地持久数据库查询;由通用格式进程将本地持久数据库查询发送到本地持久数据库;由通用格式进程从本地持久数据库接收本地持久数据库响应,该本地持久数据库响应响应于本地持久数据库查询;由通用格式进程将本地持久数据库响应转换成通用协议,以生成本地持久通用协议响应;以及由通用格式进程向应用逻辑代码发送本地持久通用协议响应。

在示例19中,示例17-18中的任何一个或多个的主题可选地包括该操作,该操作还包括由通用格式进程确定第一请求满足至少一个完整性条件。

在示例20中,示例17-19中的任何一个或多个的主题可选地包括该操作,该操作还包括由通用格式进程确定与用户设备相关联的用户被授权做出第一请求。

图8是示出计算设备的软件架构802的一个示例的框图800。例如,如本文所述,架构802可以结合各种硬件架构来使用。图8仅仅是软件架构的非限制性示例,并且可以实现许多其他架构来促进本文描述的功能。示出了代表性硬件层804,并且其可以表示例如任何上述计算设备。在一些示例中,硬件层804可以根据图9的计算机系统的架构来实现。

代表性硬件层804包括具有相关联的可执行指令808的一个或多个处理单元806。可执行指令808表示软件体系结构802的可执行指令,包括本文描述的方法、模块、子系统和组件等的实现,并且还可以包括也具有可执行指令808的存储器和/或存储装置模块810。硬件层804还可以包括由其他硬件812指示的其他硬件,其他硬件812代表硬件层804的任何其他硬件,诸如被示为架构802的一部分的其他硬件。

在图8的示例架构中,软件架构802可以被概念化为层的堆叠,其中每一层提供特定的功能。例如,软件架构802可以包括诸如操作系统814、库816、中间件层818、应用820和表示层844的层。在操作上,应用820和/或层内的其他组件可以通过软件栈调用API调用824,并响应于API调用824访问被示为消息826的响应、返回值等。所示的层在本质上是代表性的,并且不是所有的软件架构都具有所有的层。例如,一些移动或专用操作系统可能不提供中间件层818,而其他操作系统可能提供这样的层。其他软件体系结构可以包括附加的或不同的层。

操作系统814可以管理硬件资源并提供通用服务。操作系统814可以包括例如内核828、服务830和驱动器832。内核828可以充当硬件和其他软件层之间的抽象层。例如,内核828可以负责存储器管理、处理器管理(例如,调度)、组件管理、联网、安全设置等等。服务830可以为其他软件层提供其他通用服务。在一些示例中,服务830包括中断服务。中断服务可以检测中断的接收,并且作为响应,当中断被访问时,使架构802暂停其当前处理并执行中断服务例程(ISR)。

驱动器832可以负责控制底层硬件或者与底层硬件接口。例如,取决于硬件配置,驱动器832可以包括显示器驱动器、相机驱动器、

库816可以提供应用820和/或其他组件和/或层可以利用的通用基础设施。库816通常提供允许其他软件模块以比直接与底层操作系统814功能(例如,内核828、服务830和/或驱动器832)接口更容易的方式执行任务的功能。库816可以包括系统834库(例如,C标准库),其可以提供诸如存储器分配函数、字符串操作函数、数学函数等功能。此外,库816可以包括API库836,诸如媒体库(例如,支持诸如MPEG4、H.264、MP3、AAC、AMR、JPG、PNG等各种媒体格式的呈现和操纵的库)、图形库(例如,可用于在显示器上的图形内容中呈现2D和3D的OpenGL框架)、数据库库(例如,可提供各种关系数据库功能的SQLite)、网络库(例如,可提供网络浏览功能的WebKit)等。库816还可以包括各种各样的其他库838,以向应用820和其他软件组件/模块提供许多其他API。

中间件层818(有时也称为框架)可以提供可以被应用820和/或其他软件组件/模块利用的更高级的通用基础设施。例如,中间件层818可以提供各种图形用户界面(GUI)功能、高级资源管理、高级位置服务等等。中间件层818可以提供可由应用820和/或其他软件组件/模块使用的各种其他API,其中一些API可以专用于特定的操作系统或平台。

应用820包括内置应用840和/或第三方应用842。代表性内置应用840的示例可以包括但不限于联系人应用、浏览器应用、图书阅读器应用、位置应用、媒体应用、消息应用和/或游戏应用。第三方应用842可以包括任何内置应用840以及各种各样的其他应用。在特定示例中,第三方应用842(例如,由除特定平台的供应商之外的实体使用Android

应用820可以利用内置操作系统功能(例如,内核828、服务830和/或驱动器832)、库(例如,系统834、API库836和其他库838)和中间件层818来创建用户界面,以与系统的用户进行交互。替代地或附加地,在一些系统中,与用户的交互可以通过表示层(诸如表示层844)发生。在这些系统中,应用/模块“逻辑”可以从与用户交互的应用/模块的方面中分离出来。

一些软件架构利用虚拟机。在图8的示例中,这由虚拟机848示出。虚拟机创建了软件环境,其中应用/模块可以像在硬件计算设备上执行一样执行。虚拟机由主机操作系统(操作系统814)托管,并且通常(尽管不总是)具有虚拟机监视器846,虚拟机监视器846管理虚拟机的操作以及与主机操作系统(即,操作系统814)的接口。软件架构在虚拟机内执行,虚拟机诸如操作系统850、库852、框架/中间件854、应用856和/或表示层858。在虚拟机848内执行的软件架构的这些层可以与先前描述的对应层相同,也可以不同。

模块、组件和逻辑

某些实施例在本文被描述为包括逻辑或多个组件、模块或机制。模块可以构成软件模块(例如,包含在(1)非暂时性机器可读介质上或者(2)传输信号中的代码)或者硬件实现的模块。硬件实现的模块是能够执行特定操作的有形单元,并且可以以特定方式配置或布置。在示例实施例中,一个或多个计算机系统(例如,独立的、客户端或服务器计算机系统)或一个或多个硬件处理器可以由软件(例如,应用或应用部分)配置为硬件实现的模块,该模块运行以执行如本文所述的某些操作。

在各种实施例中,硬件实现的模块可以机械地或电子地实现。例如,硬件实现的模块可以包括被持久配置(例如,作为专用处理器,诸如现场可编程门阵列(FPGA)或专用集成电路(ASIC))来执行某些操作的专用电路或逻辑。硬件实现的模块还可以包括由软件临时配置来执行某些操作的可编程逻辑或电路(例如,包含在通用处理器或另一个可编程处理器中)。应当理解,以机械方式、在专用和持久配置的电路中、或者在临时配置的电路(例如,由软件配置)中实现硬件实现的模块的决定可以由成本和时间考虑来驱动。

因此,术语“硬件实现的模块”应该被理解为包含有形的实体,即物理构造的、持久配置的(例如,硬连线的)、或者临时或暂时配置的(例如,编程的)以某种方式操作和/或执行本文描述的某些操作的实体。考虑其中硬件实现的模块被临时配置(例如,编程)的实施例,每个硬件实现的模块不需要在任何一个时刻被配置或实例化。例如,在硬件实现的模块包括使用软件配置的通用处理器的情况下,通用处理器可以在不同时间被配置为各自不同的硬件实现的模块。软件可以相应地配置处理器,例如,在一个时刻构成特定的硬件实现的模块,并且在不同的时刻构成不同的硬件实现的模块。

硬件实现的模块可以向其他硬件实现的模块提供信息,并从其他硬件实现的模块接收信息。因此,所描述的硬件实现的模块可以被认为是通信耦合的。在多个这种硬件实现的模块同时存在的情况下,可以通过信号传输(例如,通过连接硬件实现的模块的适当电路和总线)来实现通信。在多个硬件实现的模块在不同时间被配置或实例化的实施例中,这种硬件实现的模块之间的通信可以例如通过在多个硬件实现的模块可以访问的存储器结构中存储和检索信息来实现。例如,一个硬件实现的模块可以执行操作,并将该操作的输出存储在其通信耦合的存储器设备中。然后,另一个硬件实现的模块可以在稍后的时间访问存储器设备,以检索和处理存储的输出。硬件实现的模块也可以发起与输入或输出设备的通信,并且可以对资源(例如,信息集合)进行操作。

本文描述的示例方法的各种操作可以至少部分地由一个或多个处理器来执行,这些处理器被临时配置(例如,通过软件)或持久配置来执行相关操作。无论是临时配置还是持久配置,这些处理器都可以构成处理器实现的模块,用于执行一个或多个操作或功能。在一些示例实施例中,本文提到的模块可以包括处理器实现的模块。

类似地,本文描述的方法可以至少部分由处理器实现。例如,方法的至少一些操作可以由一个或多个处理器或处理器实现的模块来执行。某些操作的性能可以分布在一个或多个处理器中,不仅驻留在单个机器中,而且部署在多个机器上。在一些示例实施例中,一个或多个处理器可以位于单个位置(例如,在家庭环境、办公室环境或服务器群内),而在其他实施例中,处理器可以分布在多个位置。

一个或多个处理器还可以操作来支持在“云计算”环境中或作为“软件即服务”(SaaS)的相关操作的性能。例如,至少一些操作可以由一组计算机(作为包括处理器的机器的示例)来执行,这些操作可以经由网络(例如,因特网)和经由一个或多个适当的接口(例如,API)来访问。

电子装置和系统

示例实施例可以在数字电子电路中,或者在计算机硬件、固件或软件中,或者在它们的组合中实现。示例实施例可以使用计算机程序产品来实现,例如有形地包含在信息载体中的计算机程序,例如包含在机器可读介质中的计算机程序,用于由例如可编程处理器、计算机或多个计算机的数据处理装置执行或控制其操作。

计算机程序可以以任何形式的编程语言编写,包括编译或解释语言,并且它可以以任何形式部署,包括作为独立程序或作为模块、子例程或适合在计算环境中使用的其他单元。计算机程序可以被部署为在一个地点的一个计算机或多个计算机上执行,或者分布在多个地点并通过通信网络互连。

在示例实施例中,操作可以由执行计算机程序的一个或多个可编程处理器来执行,以通过对输入数据进行操作并生成输出来执行功能。方法操作也可以由专用逻辑电路(例如,FPGA或ASIC)来执行,并且示例实施例的装置可以被实现为专用逻辑电路。

计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器的关系是由于在各自的计算机上运行的计算机程序而产生的,并且彼此具有客户端-服务器关系。在部署可编程计算系统的实施例中,应当理解,硬件和软件架构都值得考虑。具体而言,应当理解,是在持久配置的硬件(例如,ASIC)、临时配置的硬件(例如,软件和可编程处理器的组合)、还是持久和临时配置的硬件的组合中实现特定功能的选择可以是设计选择。以下是在各种示例实施例中可以部署的硬件(例如,机器)和软件架构。

示例机器架构和机器可读介质

图9是计算机系统900的示例形式的机器的框图,在计算机系统900中可以执行指令924,用于使机器执行本文讨论的任何一个或多个方法。在替代实施例中,机器作为独立设备操作,或者可以连接(例如,联网)到其他机器。在网络化部署中,机器可以在服务器-客户端网络环境中以服务器或客户端机器的身份运行,或者在对等(或分布式)网络环境中作为对等机器运行。该机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络设备、网络路由器、交换机或网桥,或者能够执行指定该机器要采取的动作的指令(顺序或其他)的任何机器。此外,虽然仅示出了单个机器,但是术语“机器”也应当被理解为包括单独或联合执行一组(或多组)指令以执行本文讨论的任何一种或多种方法的任何机器集合。

示例计算机系统900包括处理器902(例如,中央处理单元(CPU)、图形处理单元(GPU)或两者)、主存储器904和静态存储器906,它们经由总线908相互通信。计算机系统900还可以包括视频显示单元910(例如,液晶显示器(LCD)或阴极射线管(CRT))。计算机系统900还包括字母数字输入设备912(例如,键盘或触敏显示屏)、用户界面(UI)导航(或光标控制)设备914(例如,鼠标)、磁盘驱动单元916、信号生成设备918(例如,扬声器)和网络接口设备920。

机器可读介质

磁盘驱动单元916包括机器可读介质922,其上存储有一组或多组数据结构和指令924(例如,软件),这些数据结构和指令体现了本文所述的任何一种或多种方法或功能,或者由本文所述的任何一种或多种方法或功能利用。在计算机系统900执行指令924期间,指令924也可以完全或至少部分地驻留在主存储器904和/或处理器902内,主存储器904和处理器902也构成机器可读介质922。

虽然机器可读介质922在示例实施例中被示为单个介质,但是术语“机器可读介质”可以包括存储一个或多个指令924或数据结构的单个介质或多个介质(例如,集中式或分布式数据库,和/或相关联的缓存和服务器)。术语“机器可读介质”还应被理解为包括能够存储、编码或承载由机器执行的指令924并使机器执行本公开的任何一种或多种方法的任何有形介质,或者能够存储、编码或承载由这种指令924使用或与这种指令924相关联的数据结构的任何有形介质。因此,术语“机器可读介质”应包括但不限于固态存储器、光学和磁性介质。机器可读介质922的具体示例包括非易失性存储器,作为示例包括半导体存储设备,例如可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)和闪存设备;磁盘,例如内部硬盘和可移动磁盘;磁光盘;和DVD-ROM盘。

传输介质

指令924还可以使用传输介质通过通信网络926发送或接收。可以使用网络接口设备920和多种众所周知的传输协议(例如,HTTP)中的任何一种来传输指令924。通信网络的示例包括局域网(LAN)、广域网(WAN)、互联网、移动电话网络、普通老式电话(POTS)网络和无线数据网络(例如,WiFi和WiMax网络)。术语“传输介质”应被理解为包括能够存储、编码或携带由机器执行的指令924的任何无形介质,并且包括数字或模拟通信信号或其他无形介质以促进这种软件的通信。

尽管已经参考特定示例实施例描述了实施例,但是很明显,在不脱离本公开的更广泛的精神和范围的情况下,可以对这些实施例进行各种修改和改变。因此,说明书和附图被认为是说明性的,而不是限制性的。构成本说明书一部分的附图通过说明而非限制的方式示出了可以实施本主题的具体实施例。足够详细地描述了所示的实施例,以使本领域技术人员能够实践本文公开的教导。可以利用其他实施例并从中导出其他实施例,从而可以在不脱离本公开的范围的情况下进行结构和逻辑上的替换和改变。因此,该详细描述不应被理解为限制性的,并且各种实施例的范围仅由所附权利要求以及这些权利要求所授权的等同物的全部范围来限定。

本发明主题的这些实施例在本文中可以单独和/或共同被称为术语“发明”,这仅仅是为了方便,如果实际上公开了一个以上的发明或发明概念,这并不意味着自愿将本申请的范围限制于任何单个发明或发明概念。因此,尽管在此已经示出和描述了具体实施例,但是应当理解,任何旨在实现相同目的的布置都可以替代所示的具体实施例。本公开旨在覆盖各种实施例的任何和所有修改或变化。通过阅读以上描述,上述实施例的组合以及本文没有具体描述的其他实施例对于本领域技术人员来说将是显而易见的。

相关技术
  • 多协议适配器系统和多协议适配器系统中的数据转换方法
  • 混合云环境中的通信方法及网关、管理方法及装置
技术分类

06120116587413