CN115858643A - 遗留本地部署处理代码的云迁移 - Google Patents
遗留本地部署处理代码的云迁移 Download PDFInfo
- Publication number
- CN115858643A CN115858643A CN202211167830.4A CN202211167830A CN115858643A CN 115858643 A CN115858643 A CN 115858643A CN 202211167830 A CN202211167830 A CN 202211167830A CN 115858643 A CN115858643 A CN 115858643A
- Authority
- CN
- China
- Prior art keywords
- protocol message
- database protocol
- cloud environment
- database
- dbms
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/1824—Distributed file systems implemented using Network-attached Storage [NAS] architecture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/122—File system administration, e.g. details of archiving or snapshots using management policies
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
各种示例针对用于在云环境中操作数据库管理系统(DBMS)的系统和方法。在第一计算设备处执行的组装工作器可以提供由在第一计算设备处执行的处理代码生成的第一数据库协议消息。在云环境处执行的转换引擎可以将第一数据库协议消息从第一格式转换成与在云环境处执行的DBMS实例相关联的第二格式,以生成转换后的第一数据库协议消息。转换引擎可以使得将转换后的第一数据库协议消息提供给DBMS实例,并且可以从DBMS实例接收对应于转换后的第一数据库协议消息的第一回复。可以将第一回复发送到处理代码。
Description
背景技术
传统上,软件是自包含的并且在一台或多台本地机器上执行。希望使用软件工具的企业构建本地部署(on-premises)计算系统,并执行软件应用以在该计算系统上提供工具。软件应用可以由企业开发和/或从第三方软件提供商购买。用户从计算系统直接或经由联网的用户计算设备远程访问该软件工具。
附图说明
在下面的附图中,通过示例而非限制的方式图示了本公开。
图1是示出用于将遗留处理代码迁移到公共云环境的布置的一个示例的图。
图2是示出包括附加细节的图1的组装工作器的图。
图3是示出与图1的环境通信的迁移工具的图以图示转换引擎的附加细节。
图4是示出与图1的环境通信的迁移工具的图以图示配置管理器的附加示例细节。
图5是示出演示处理代码操作的一个示例工作流的图。
图6是示出计算设备的软件架构的一个示例的框图。
图7是计算机系统的示例形式的机器的框图,在该计算机系统中可以执行指令以使该机器执行这里讨论的任何一种或多种方法。
具体实施方式
一些软件解决方案被构建成包括一起执行的一套软件应用。例如,数据库管理系统(DBMS)应用可以支持各种客户端应用。客户端应用利用DBMS来管理客户端数据。这种布置的一个示例是用于管理各种业务流程的企业资源规划(ERP)应用套件。ERP应用套件可以包括用于管理与会计、采购、发票、运输、人力资源等相关的过程和任务的各种不同的客户端应用。客户端应用利用DBMS来存储业务数据,以支持它们的处理。
在具有DBMS和相关联的客户端应用的一些布置中,客户实体生成与DBMS结合执行的处理代码。处理代码可以实现客户端应用和/或补充预先存在的客户端应用的功能。考虑作为使用ERP解决方案的能源公司的示例客户实体。能源公司可以利用能源行业唯一的会计技术。相应地,能源公司可以生成处理代码来补充会计客户端应用。当在本地部署上执行时,该处理代码可以访问支持特定能源会计技术的DBMS管理的数据,并且还将该技术的结果写入DBMS。考虑作为为客户执行证券交易的金融服务机构的另一个示例客户实体。证券交易可能受特定监管规则的管控,并可能需要使适用的监管机构拥有特定报告。客户人员可以生成处理代码来实现监管要求并实现所需的报告。
在一些示例中,包括DBMS和客户端应用的软件解决方案在本地部署环境中执行。在本地部署环境中,DBMS应用和客户端应用在由企业在其自己的站点上构建的计算系统上执行,这被称为现场或本地部署实现方式。可以将本地部署应用实现为包括驻留在本地部署计算系统处的一组一个或多个可执行程序、库等。与企业相关联的用户从本地部署计算系统访问软件应用。
使用私有云环境可以实现类似的布置。根据私有云环境,例如,根据平台即服务(PaaS)布置,企业获取对基于云的计算系统的使用。私有云环境可能仅可由实现实体访问,并且在一些布置中,可以使用类似于本地部署实现方式的可执行程序、库等来实现软件解决方案。
与本地部署或私有云实现方式相比,一些软件解决方案是在公共云环境中执行的。公共云环境包括实现一个或多个虚拟和/或硬件服务器的一个或多个数据中心。公共云环境可以根据软件即服务(SaaS)模型提供对软件解决方案的访问。例如,DBMS和客户端应用的云原生版本的实例可以在公共云环境处执行。实体可以购买租用权以在公共云环境处使用软件解决方案。该租用权授权来自该实体的一个或多个用户组访问在公共云环境处执行的DBMS和/或其他客户端应用的实例。单个公共云环境可以提供支持可能来自多个实体的多个用户组的多个租用权。
对于用户组或相关联的实体来说,使用从本地部署或私有云实现的软件套件到对应的公共云版本的过渡可能是合乎需要的,这有各种原因。例如,公共云实现方式对于实体进行维护而言可能需要较少的资源和较少的费用。本地部署实现方式可能需要实体维护用于执行DBMS、执行客户端应用和实现数据库持久性(persistency)的广泛的本地部署计算系统。维护私有云实现方式可能比维护本地部署的计算系统所需的管理工作要少,但过渡到公共云通常仍能获得显著的效率。此外,因为公共云应用的特点可能是发布周期比本地部署和私有云应用更短,这意味着用户可以享受更频繁的更新和错误修复。
然而,将本地部署或私有云应用套件迁移到公共云可能会遇到一些困难。例如,由DBMS管理的数据可能需要迁移到可能经常利用不同的模式或其他数据格式的位于公共云中的持久性。
对于客户或其他实体已经生成大量处理代码的软件套件,迁移到公共云可能会产生额外的困难。由于本地部署应用和公共云原生应用之间的差异,为在本地部署或私有云环境处执行而开发的遗留处理代码可能无法直接转移到公共云环境。例如,在公共云环境处执行的云原生应用可能使用与其对应的本地部署版本不同的端口机制来处理通信。用于在公共云环境处执行的云原生应用也可能基于例如不同的共享库以不同的依赖性来执行。此外,例如,云原生DBMS可以利用数据库协议,诸如结构化查询语言(SQL)协议,该协议不同于对应的本地部署DBMS所使用的数据库协议。
由于缺乏兼容性,已经生成大量处理代码来补充DBMS或其他应用的本地部署实现方式的实体可能不愿意升级到公共云环境。为特定于实体的处理生成处理代码可能需要几个月,或者在某些示例中可能需要几年。实体可能不希望从头开始生成云原生处理代码。此外,在没有使用遗留处理代码的能力的情况下,实体可能很难有意义地评估公共云DBMS或其他应用。
各种示例通过为包括DBMS的软件套件提供处理代码迁移布置来解决这些和其他挑战。这里描述的处理代码迁移布置包括在客户实体的本地部署或私有云计算系统处与遗留处理代码一起执行的组装工作器组件。该布置还包括迁移工具,该迁移工具包括转换组件和配置管理器。迁移工具连同与相关用户组相关联的DBMS实例一起在公共云中执行。
在本地部署或私有云计算系统上以遗留处理代码执行的组装工作器生成描述遗留处理代码的依赖性和配置的配置元数据。组装工作器与配置管理器一起,生成将诸如库、函数调用等处理代码的依赖性相关到公共云环境处的对应库、资源等的依赖性映射。配置管理器可以实现虚拟文件系统。虚拟文件系统可以在公共云中的容器中实现,并且可以将遗留处理代码使用的配置文件映射到公共云环境处的等效资源。如这里所述,虚拟文件系统可供例如转换引擎用来转换来自遗留处理代码的数据库协议消息。以这种方式,处理代码可以继续以其先前的依赖性执行,尽管是以能够在公共云环境处解释和使用的方式。
组装工作器还接收从处理代码指向DBMS的数据库协议消息,例如SQL消息。组装工作器向转换引擎提供数据库协议消息。转换引擎使用从组装工作器接收的配置和/或依赖性数据,以在必要时将数据库协议消息转换成在公共云环境处执行的DBMS实例可辨识的格式。然后,在DBMS实例处执行转换后的数据库协议消息。转换引擎将数据库协议请求的结果返回给在本地部署计算系统处执行的处理代码。
以这种方式,利用DBMS软件解决方案的本地部署或私有云版本的用户组可以执行到公共云实现方式的迁移,而不需要立即以适合在公共云环境处执行的版本重新创建遗留处理代码。例如,维护本地部署计算系统或私有云来仅执行处理代码可能比维护本地部署计算系统或私有云来执行DBMS及其整个应用套件的成本低得多。通过这种方式,可以从公共云实现方式中受益的实体和相关联的用户组可能更倾向于过渡到公共云,因为可以降低交易成本。
图1是示出用于将遗留处理代码118迁移到公共云环境104的布置100的一个示例的图。该布置包括第一环境102和公共云环境104。第一环境102和公共云环境104实现包括用户组106的DBMS实例108和客户端应用实例112、114、116的实例的一套应用。在一些示例中,DBMS实例108可以是存储器中的数据库,诸如例如可从德国沃尔多夫的SAP SE获得的HANA系统。在一些示例中,DBMS实例108和客户端应用实例112、114、116是也可从德国沃尔多夫的SAP SE获得的S/4HANA系统的示例。
用户组106是使用公共云环境104处的应用实例和第一环境102处的处理代码118的一个或多个用户的组。在一些示例中,用户组106与实体相关联。实体可以是代表用户组106购买对公共云环境104和/或DBMS实例108的访问的客户实体。此外,在一些示例中,用户组106可以与内部利益相关者实体相关联,该内部利益相关者实体与DBMS实例108和/或客户端应用实例112、114、116的提供商相关联。例如,内部利益相关者可以是开发组、QA和/或测试用户组等。
第一环境102可以是或包括本地部署环境和/或私有云环境。在第一环境102包括本地部署环境的示例中,它可以包括本地部署计算系统,该本地部署计算系统包括一个或多个计算设备,如服务器等。本地部署计算系统可以由用户组106和/或与用户组相关联的实体来维护。在第一环境102包括私有云环境的示例中,它可以包括由用户组106或相关联的实体租用来执行处理代码118、138、148的一个或多个计算设备,如服务器。在该示例中,有三个处理代码118、138、148,然而,在各种示例中,在环境102处可以有多于或少于三个处理代码118、138、148。第一环境102可以是先前执行对应于公共云DBMS实例108的遗留本地部署DBMS的相同环境,或者可以是不同的环境。
公共云环境104可以包括一个或多个计算设备,如服务器,用于执行用户组的DBMS实例和客户端应用,如用户组106的DBMS实例108和客户端应用实例112、114、116。在一些示例中,公共云环境104是由云服务提供商在不同地理位置实现的多个云环境之一。例如,公共云环境104可以在地理上靠近用户组106的一个或多个数据中心上实现,以便在用户组106访问公共云环境104时最小化网络延迟。类似于公共云环境104的其他公共云环境可以在地理上靠近其他用户组的数据中心实现,以向那些用户组提供DBMS和/或客户端应用的实例。
公共云环境104也实现持久性110。持久性110可以是由DBMS实例108管理的存储数据。持久性110可以使用任何合适的一个或多个数据存储设备来实现,诸如例如一个或多个盘、一个或多个固态驱动器、一个或多个随机存取存储器等。
在一些示例中,DBMS实例108和客户端应用实例112、114、116是根据微服务架构编码的云原生应用。在微服务架构中,DBMS实例108和各种客户端应用实例112、114、116由在公共云环境104处执行的松散耦合的微服务的集合来实现。每个微服务还可以包括在由公共云环境104实现的单独的虚拟机(VM)或容器中执行的单个可执行程序。在微服务架构中,每个微服务被编程为执行定义的任务或一小组任务,并以定义的方式,例如,根据应用编程接口(API),与其他微服务交互。
在一些示例中,DBMS实例108和客户端应用实例112、114、116包括在公共云环境104处实现的单个容器或有限组容器内执行的一组一个或多个可执行程序、库和/或其他组件。例如,DBMS实例108和/或客户端应用实例112、114、116可以是在云实现的容器内执行的遗留本地部署应用的实例。
公共云环境104还执行一个或多个服务128、130,用于管理DBMS实例108和客户端应用实例112、114、116的执行。服务128、130可以在公共云环境104处在一个或多个容器中执行。前端服务128可以与用户组106进行接口。例如,前端服务128可以向来自用户组106的用户提供用户界面,以允许用户访问正在执行的DBMS实例108和客户端应用实例112、114、116和/或启动新的应用实例。
应用编排服务130可以管理DBMS实例108和/或客户端应用实例112、114、116的执行。例如,应用编排服务130可以管理包括DBMS实例108或客户端应用实例112、114、116的一个或多个容器的执行。应用编排服务130可以开始执行一个或多个容器映像,以实现DBMS实例108和/或客户端应用实例112、114、116。此外,如果一个或多个容器崩溃,应用编排服务也可以启动崩溃的一个或多个容器的替换。
在图1的示例中,公共云环境104还包括处理代码迁移工具121,其包括转换引擎122、配置管理器124和配置储存库126。在一些示例中,配置储存库126由在公共云环境处执行的附加DBMS实例(未示出)管理。
处理代码迁移工具121经由组装工作器120、140、150与在第一环境102处执行的遗留处理代码118、138、148通信,这也可以在第一环境102处执行。在该示例中,处理代码118、138、148的每个实例具有分配的组装工作器120、140、150。然而,在其他示例中,单个组装工作器120、140、150可以被配置成管理处理代码118、138、148的不止一个实例。
在图1的布置中,处理代码118、138、148和组装工作器120、140、150在第一环境102处执行,与用户组106相关联的实体可以例如在迁移之前执行遗留DBMS实例和客户端应用套件的相同环境处执行处理代码118、138、148和组装工作器120、140、150。将会理解,在一些示例中,处理代码118、138、148和组装工作器120、140、150可以在公共云环境104处实现的一个或多个容器内执行,而不是在不同的环境102处执行。
组装工作器120、140、150和迁移工具121被配置成允许遗留处理代码118、138、148在与公共云DBMS实例108和客户端应用实例112、114、116通信的同时,如同它连同有遗留DBMS实例和客户端应用一样地执行。这可能涉及若干修改和/或转换。
在一些示例中,处理代码118、138、148被编码成一组配置依赖性,该组配置依赖性特定于其被设计成与之一起操作的遗留本地部署DBMS的执行环境。例如,处理代码118、138、148可以用各种不同的语言编写,诸如例如Java、Python、C++等,并且可以使用各种库,例如Java库、Python库、C++库等。处理代码118、138、148可以包括对与相关编程语言或其他环境特定因素相关联的库中阐述的各种函数的调用。这些特定函数在公共云环境104中可能不可用和/或可能根据不同的语法或格式操作。
此外,可以编写处理代码118、138、148,以基于由遗留DBMS实例提供的模板DBMS库来利用DBMS功能。公共云实现的DBMS实例108可以具有类似的功能,但是可以以不同的形式显露其功能,诸如在不同的库中和/或使用不同的函数调用。相应地,由处理代码118、138、148基于遗留本地部署或私有云环境做出的对DBMS提供的库的引用可能不会直接转移到由在公共云环境处执行的DBMS实例108使用的对应的DBMS提供的库。以这种方式,处理代码118、138、148的依赖性还包括用于访问DBMS提供的功能的DBMS库。
在一些示例中,在遗留本地部署或私有云环境与公共云环境104中使用的数据库协议之间也存在差异。例如,由处理代码118、138、148生成的数据库消息可以根据在DBMS实例108和/或客户端应用实例112、114、116的遗留本地部署和/或私有云版本处使用的数据结构和模式来引用遗留本地部署和/或私有云数据储存库。然而,公共云实现的DBMS实例108和客户端应用实例112、114、116可以使用引用DBMS实例108使用的持久性110的不同数据库协议。虽然遗留DBMS实例的数据库协议下的一些数据库协议消息可以直接转移到DBMS实例108的数据库协议,但是其他的则不能。例如,公共云环境104处的DBMS实例108可以使用不同于遗留处理代码118、138、148所使用的端口机制的端口机制来促进与DBMS实例108和客户端应用实例112、114、116的通信。
迁移工具121和组装工作器120、140、150可以提供处理代码118、138、148与在公共云环境104处执行的DBMS实例108和客户端应用实例112、114、116之间的接口。组装工作器120、140、150可以从处理代码118生成配置元数据和连接数据,并将配置信息和连接数据提供给迁移工具121。组装工作器120、140、150连同配置管理器124也可以生成组装对象。组装对象可以包括DBMS库和/或从由遗留处理代码118、138、140执行的遗留形式映射到由公共云环境104使用的形式的其他配置文件。以此方式,遗留处理代码118、138、148可以以与公共云实现的DBMS实例108和客户端应用实例112、114、116兼容的方式执行。
组装工作器120、140、150可以生成配置元数据并与迁移工具121交换配置元数据。配置元数据可以包括描述处理代码118、138、148的依赖性的数据。例如,处理代码118、138、148的依赖性可以包括对与为其创建处理代码118、138、140的遗留本地部署或私有云环境相关联的库的依赖性。由组装工作器120、140、150确定的依赖性还可以包括基于DBMS库或功能的依赖性。
在一些示例中,生成依赖性涉及组装工作器120、140、150和迁移工具121之间的配置元数据的交换。例如,组装工作器120、140、150可以被配置成确定处理代码118、138、148的依赖性,并且可以从迁移工具121接收配置元数据,以将处理代码118、138、148的依赖性与公共云环境104处的对应兼容依赖性相关联。
考虑一个示例,其中处理代码118是用Python编码的。组装工作器120、140、150可以确定处理代码118依赖于第一Python库。从迁移工具121(例如,其配置管理器124)接收的配置元数据可以指示在公共云环境104处可用的一个或多个库和/或相关联的函数调用,以提供类似于第一Python库的功能。考虑另一个示例,其中组装工作器140确定处理代码138具有使用DBMS库来访问遗留本地部署或私有云DBMS的功能的依赖性。组装工作器120可以接收配置元数据,该配置元数据指示由公共云环境104处的DBMS实例108使用的对应DBMS库。
配置管理器124可以利用从组装工作器120、140、150接收的配置元数据,包括所确定的处理代码118、138、148的依赖性,来生成组装对象,这将在下文中更详细地描述。组装对象可以将来自处理代码118、138、148的调用与公共云DBMS实例108支持的对应库相关。以这种方式,在运行时,处理代码118、138、148可以使用组装对象来与公共云环境104进行接口。
在一些示例中,配置管理器124实现配置指示符阵列。配置指示符阵列可以在公共云环境104处实现,并且可以将处理代码118、138、148的依赖性映射到公共云环境104处的对应库、函数调用或其他功能。例如,配置指示符阵列可以将处理代码118、138、148所利用的配置文件(诸如库)映射到公共云环境104处的对应资源,诸如例如对应的库、微服务等。以这种方式,当处理代码118、138、148向公共云环境104发送数据库协议消息和其他消息时,配置指示符阵列可以用于将传入消息所反映的依赖性与公共云环境104相关。配置管理器124可以在配置储存库126处存储配置元数据、配置指示符阵列或其他依赖性映射等。在一些示例中,配置储存库126由在公共云环境104处执行的另一DBMS实例管理。
组装工作器120、140、150还可以提供连接信息,该连接信息涉及由处理代码118生成的消息,诸如数据库协议消息。数据库协议消息是由处理代码118、138、148生成用于查询DBMS实例108和/或DBMS实例108的其他访问功能的消息。组装工作器120、140、150向迁移工具121(例如,其转换引擎122)提供由处理代码118、138、148生成的数据库协议消息。在一些示例中,组装工作器120、140、150还提供描述由处理代码118、138、140使用的端口机制的端口机制数据。连接信息可以包括数据库协议消息和关于该消息的其他元数据,诸如端口机制数据。迁移工具121(例如,转换引擎122)可以将数据库协议消息转换成DBMS实例108使用的格式,并将这些消息提供给DBMS实例108以供执行。迁移工具121(例如,转换引擎122)可以例如经由组装工作器120、140、150提供从DBMS实例108到处理代码118、138、148的响应。以这种方式,可能已经为遗留本地部署或私有云环境编码的处理代码118、138、148可以无缝地与公共云DBMS实例108和/或客户端应用实例112、114、116通信。
图2是示出了包括附加细节的图1的组装工作器120的图。图2示出了组装工作器120,然而,将会理解,组装工作器120、140、150可以以类似的方式布置和操作。
组装工作器120生成描述处理代码118的依赖性的依赖性数据208。这可以包括特定于环境的依赖性,诸如对编程语言库的依赖性和/或基于DBMS提供的库的依赖性。为了生成依赖性数据208,组装工作器120可以检查处理代码118以确定处理代码118所使用的库。处理代码118可以利用多个库。示例库可以包括Linux布置的*.so文件,Microsoft Windows布置的*.dll or*.exe文件,或者不同布置的类似库。处理代码118所使用的库可以包括例如在创建处理代码118的语言中常用的库,以及作为与为其编码处理代码118的遗留DBMS或者相关联的客户端应用相关联的模板的一部分而提供的库。例如,遗留DBMS可以利用由一个或多个库定义的特定的访问控制技术、数据集成技术或其他类似技术。访问控制、数据集成或其他技术可以由处理代码118激活的一个或多个库来描述。
组装工作器120可以通过检查和记录由处理代码118激活的库来生成依赖性数据。依赖性数据可以作为配置元数据提供给迁移工具121。组装工作器120可以包括生成依赖性数据208的图形处理工具206。依赖性数据208可以采取不同的形式,例如,基于到达组装工作器120的并发请求的量。例如,如果并发请求的数量较低,组装工作器120可以提供作为列表的依赖性数据208。在一些示例中,如果并发请求的数量很高,组装工作器120可以将依赖性数据布置到依赖性图形中。在依赖性图形中,可以以有助于更快地搜索和定位由依赖性数据208指示的依赖性的方式来布置依赖性。
图形处理工具206还可以生成组装对象210。组装对象可以将为其编码了处理代码118的遗留本地部署和/或私有云环境映射到公共云环境104。例如,组装对象210可以包括和/或基于引用依赖数据208的库,如这里所述。在一些示例中,组装对象210包括形成处理代码218的依赖性的基础的库和在公共云环境处使用的对应库之间的映射。例如,组装工作器120可以向迁移工具121(例如,其配置管理器124)提供依赖性数据208和/或相关联的数据,迁移工具121可以返回在公共云环境104处使用的与由依赖性图形指示的依赖性相对应的库或其他依赖性的指示。组装工作器120(例如,其图形处理工具206)使用该数据来生成组装对象210的映射。
在一些示例中,在迁移工具121(例如,配置管理器124)处生成一些或所有组装对象。如这里更详细描述的,组装工作器120可以向配置管理器提供包括依赖性数据208(例如,依赖性图形和/或依赖性列表)的配置元数据。在一些示例中,组装工作器120可以从环境102向配置管理器124提供一个或多个库。例如,如果处理代码118使用遗留本地部署或私有云环境原生的库,则配置管理器124可以将该库提供给配置管理器124。如这里所述,配置管理器124可利用一个或多个库来生成映射,该映射可用于组装对象中和/或用于在配置管理器124处实现配置指示符数组或其他依赖性映射。
组装工作器120还可以生成关于处理代码118的连接信息。连接信息可以包括例如由处理代码118用来访问遗留DBMS的端口机制的指示。在其他示例中,连接信息包括关于处理代码118、138、140的其他元数据,包括例如所使用的授权机制等。连接信息还可以包括数据库协议消息本身及其回复。
组装工作器120还可以包括会话管理器204和连接器202,用于处理由处理代码生成的数据库协议消息,诸如SQL消息。如这里所述,处理代码118可以被配置成查询或以其他方式访问遗留本地部署或私有云DBMS的功能。处理代码118可以将这样的数据库协议消息引导到它期望在第一环境102处执行的DBMS实例。组装工作器120(例如,其会话管理器204)截取由处理代码118发送的数据库协议消息,并将它们引导到迁移工具121(例如,其转换引擎122)。在一些示例中,组装工作器120还捕获和/或跟踪描述数据库协议消息状态的状态数据。组装工作器120可以存储状态数据和/或向转换引擎122提供状态数据。状态数据可以包括例如本地或私有云配置适配数据、本地或私有云运行时自定义存储器数据结构、用于恢复目的的组装工作器执行数据快照等。
在接收到由处理代码118生成的数据库协议消息时,转换引擎122将该消息转换成适合于DBMS实例108的格式,并将转换后的数据库协议消息提供给DBMS实例108。转换引擎122可以利用配置元数据来执行转换。在一些示例中,转换引擎122利用配置管理器124(例如,其配置储存库126)生成和/或在该处存储的配置指示符阵列或其他依赖性映射。转换引擎122可以从DBMS实例108接收回复,并将该回复转换成处理代码118可辨识的协议格式。当状态数据被提供给转换引擎122时,它可以在转换回复消息时考虑状态数据。
组装工作器120可以接收转换后的回复,并将其提供给处理代码118。在一些示例中,组装工作器120包括管理组装工作器120和迁移工具121之间的通信的连接器202。在组装工作器120管理处理代码118和DBMS实例108之间的数据库协议消息的状态数据的示例中,会话管理器204可以存储传出的消息的状态数据,并使用存储的状态数据修改传入的回复消息,以维持通信的状态性质。修改回复消息可以包括在回复消息被提供给处理代码118之前,将存储的状态数据合并到接收的回复消息中。
图3是示出与环境102通信的迁移工具121的图300,以图示出转换引擎122的附加细节。转换引擎122包括会话管理器303。会话管理器303管理在转换引擎122和环境102处的各种组装工作器120、140、150之间发送的数据库协议消息。在组装工作器120、140、150也提供带有数据库协议消息的状态数据的示例中,会话管理器303可以管理状态数据。
在从组装工作器120、140、150接收到处理代码生成的数据库协议消息时,会话管理器303或转换引擎122的其他合适的组件可以应用过滤器来确定传入的数据库协议消息是否可以被直接转发到DBMS实例108,或者传入的数据库协议消息是否应该首先在遗留处理代码118、138、148使用的数据库协议和DBMS实例108使用的数据库协议之间进行转换。例如,在一些情况下,一些数据库协议消息可以符合处理代码118、138、148使用的遗留数据库协议和公共云实现的DBMS实例108使用的数据库协议。如这里所述,可以将不需要转换的数据库协议消息提供给转发传送器304,以传送到DBMS实例108。
考虑下面的示例。处理代码118、138、148可以被配置成基于适合于处理代码118、138、148最初被编码的遗留本地部署和/或私有云实现的DBMS的遗留数据一致性(compliance)场景和客户场景来生成数据库协议消息。相应地,处理代码118、138、148可以生成符合遗留数据一致性场景和客户场景的数据库协议消息。在公共云环境104处实现的DBMS实例108可以根据公共云特定的数据一致性和客户场景来操作。遗留数据一致性场景和客户场景不同于公共云数据一致性和客户场景,而是可能重叠,使得由处理代码118、138、148根据遗留数据一致性场景和客户场景生成的一些数据库协议消息可能符合公共云数据一致性场景和客户场景,而其他可能不符合。相应地,消息过滤器可以从处理代码118、138、148中检测符合公共云数据一致性和客户场景的数据库协议消息。例如,SQL数据库协议消息可以指定来自本地部署或私有云位置的数据。消息过滤器可将该消息转换成包括对公共云环境104处的数据的适当引用的格式。
可以将要转换的数据库协议消息提供给基于协议的转换器302。基于协议的转换器302实现策略执行控制器308,该策略执行控制器308将数据库协议消息分解成段,从而产生分段的数据库协议部分312。根据DBMS实例108使用的协议语法重构分段的数据库协议部分312,并将其提供给转发传送器304。
然后,转发传送器304可以包括将要被转发到DBMS实例108的转发消息310。如这里所述,转发传送器304处的转发消息310可以包括由基于协议的转换器302转换的一些消息以及符合DBMS实例108的数据库协议并因此适于直接传输的其他消息。
重组适配器306可以执行序列验证检查器314,以在消息310被提供给DBMS实例108之前验证转发消息310。例如,公共云DBMS实例108可以具有不同于处理代码118、138、148被配置为与之一起工作的遗留本地部署或私有云DBMS的策略,诸如安全性和一致性策略。
例如,如果用户组106要生成将由公共云环境104处的DBMS实例108执行的云原生的处理代码,则在云原生的处理代码被输入到将在公共云环境104处加载和执行的应用编程接口(API)网关之前,将对照公共云环境104的一个或多个安全性和/或一致性策略来检查该云原生的处理代码。然而,在该示例中,处理代码118、138、148是为DBMS的遗留本地部署或私有云示例生成的,并且在环境102处执行。因此,由处理代码118、138、148生成的数据库协议消息可能不符合公共云环境104的安全性和/或一致性策略。
在一些示例中,重组适配器306或转换引擎122的其他合适的组件可以利用配置管理器124和/或配置指示符阵列作为消息转换协议的一部分。例如,除了根据不同的数据库协议构造之外,由处理代码118、138、148生成的数据库协议消息可以包括对公共云环境104处可能不存在的库或其他依赖资源的引用。例如,在数据库协议消息执行期间,可能需要来自处理代码118、138、148的配置数据,以适当地呈现在后面的执行阶段中使用或链接的数据库协议消息的中间或临时结果。此外,在一些示例中,执行来自处理代码118、138、148的数据库协议消息可以包括使用处理代码118、138、148的执行前和/或执行后动作。相应地,重组适配器306或转换引擎122的其他合适的组件可以在配置管理器124处配置元数据和/或生成的映射,并且在数据库协议消息的转换和/或其他处理期间利用配置指示符阵列或其他合适的依赖性映射。
重组适配器306可以修改转发消息310和/或修改转发消息310的序列,以使它们符合公共云环境104的安全性和/或一致性策略。在一些示例中,这包括改变转发消息310的顺序。此外,在一些示例中,修改转发消息以使它们满足公共云环境104的安全性和一致性策略可以包括向一个或多个消息添加元素,例如公共云环境104的安全性和/或一致性策略所要求的标签或其他符号。
考虑包括对本地部署或私有云环境102处的数据位置的引用的示例数据库协议消息。这些引用在公共云环境104处可能不兼容。例如,所引用的数据可能被存储在云环境104处的不同位置。相应地,可以修改数据库协议消息以引用数据在公共云环境104处的正确位置。
当转发消息310被转换(如果需要的话)并且符合公共云安全和/或一致性策略时,转发传送器304可以将转发消息提供给DBMS实例108以供执行。转发传送器304还可以存储关于一个或多个转发消息的状态信息。DBMS实例108执行转发消息并向转发传送器304提供回复消息。转发传送器304可以鉴于状态信息修改回复消息,并将修改后的回复消息提供给环境102处的组装工作器120、140、150和/或处理代码118、138、148。生成修改的回复消息可以包括在将回复消息提供给处理代码118、138、148之前,将存储的状态数据合并到回复消息中。
例如,数据库协议消息可以包括和/或引用控制迭代值的一个或多个内部和中间变量值。内部和/或中间变量值可以是存储的状态信息,然后被重新添加到回复消息。状态数据的另一个示例包括SQL视图管理值和要使整个SQL消息和过程以完整性和完全性运行的类似的值。
图4是示出与环境102通信的迁移工具121的图400,以图示出配置管理器124的附加示例细节。在该示例中,配置管理器124包括策略执行控制器402,策略执行控制器402包括映射策略中心406和配置指示符阵列408。映射策略中心406被配置成对从组装工作器120、140、150接收到的且描述处理代码118、138、148的依赖性的配置元数据执行元数据分析。例如,映射策略中心406可以生成配置指示符阵列408。映射策略中心406或其他合适的组件可以在配置储存库126处存储接收到的配置元数据,包括来自处理代码118、138、148的配置文件。
如这里所述,配置指示符阵列408可以包括将处理代码118、138、148的配置文件(诸如库)链接到公共云环境104处的对应资源(诸如库、微服务等)的依赖性映射。在一些示例中,配置指示符阵列408使用包括虚拟文件系统的一个或多个容器来实现,该虚拟文件系统将处理代码118、138、148中的一个或多个的配置文件映射到公共云环境104处的等效资源。
在一些示例中,处理代码118、138、148在设置、执行和/或后执行期间利用配置指示符阵列来远程消费由DBMS实例108和/或客户端应用实例112、114、116提供的服务。例如,配置指示符阵列408主要包括在遗留本地部署实现方式处的DBMS和/或客户端应用功能的位置或适当调用与公共云环境104处的DBMS实例108和/或客户端应用实例112、114、116的对应功能之间的映射。处理代码118、138、148(经由组装工作器120、140、150)可以使用配置指示符阵列408来调用公共云环境104处的等效函数。例如,相应的组装工作器120、140、150可以充当中介代理,其可以截取来自处理代码118、138、148的函数调用,并使用配置指示符阵列408将其转换成对公共云环境104处的等效函数的调用。
在一些示例中,配置管理器124提供配置映射和存储重新分配。配置管理器收集与DBMS实例108和/或客户端应用实例112、114、116相关联的配置文件,并将这些配置文件映射到由配置元数据指示的处理代码118、138、148的依赖性,从而产生配置指示符阵列408。配置指示符阵列408(或其部分)可以被提供给每个组装工作器120、140、150及其相关联的处理代码118、138、148,以生成本地配置环境。
图5是示出演示处理代码118的操作的一个示例工作流的图。图5的示例示出了环境102处的处理代码118和组装工作器120,尽管将会理解,处理代码138、148和组装工作器120、140、150可以以类似的方式操作。在该示例中,组装工作器120利用环境102处的本地存储装置502。组装工作器可以在本地存储装置502处存储配置元数据、配置文件、组装对象210或任何其他合适的数据。
处理代码118可以生成被引导朝向DBMS实例108和/或在公共云环境104处执行的另一DBMS实例510、514的一个或多个数据库协议消息。例如,数据库协议消息可以请求存储在由相应DBMS实例108、510、514管理的一个或多个持久性110、512、516处的数据。
组装工作器120可以截取数据库协议消息,组装工作器120可以向转换引擎122的会话管理器303提供数据库协议消息。在转换引擎122处,转发传送器304可以应用过滤器或开关来确定数据库协议消息在被提供给一个或多个DBMS实例108、510、514之前是否需要转换。如这里所述,如果转换是期望的,则转换可以由基于协议的转换器302来执行。图5示出了转发消息310处的消息502、504、506、608。例如,转换引擎122可以对消息502、504、506、508执行序列验证或其他合适的策略验证。如这里所述,当验证已经发生时,可以将消息502、504、506、508提供给适当的DMBS实例108、510、514。
鉴于上面的公开内容,下面阐述了各种示例。应当注意,一个示例的一个或多个特征,无论是孤立地还是组合地,都应当被认为是在本申请的公开内容之内。
示例:
示例1是一种用于在云环境中操作数据库管理系统(DBMS)的系统,该系统包括:至少一个处理器,被编程为执行操作,包括:从在第一计算设备处执行的组装工作器接收由在第一计算设备处执行的处理代码生成的第一数据库协议消息;由在云环境处执行的转换引擎将第一数据库协议消息从第一格式转换成与在云环境处执行的DBMS实例相关联的第二格式,以生成转换后的第一数据库协议消息;由转换引擎使得将转换后的第一数据库协议消息提供给DBMS实例;从DBMS实例接收对应于转换后的第一数据库协议消息的第一回复;以及向处理代码发送第一回复。
在示例2中,示例1的主题可选地包括以下操作,其进一步包括:从组装工作器接收由处理代码生成的第二数据库协议消息;由转换引擎确定第二数据库协议消息与第二格式兼容;以及由转换引擎使得将第二数据库协议消息提供给DBMS实例。
在示例3中,示例2的主题可选地包括以下操作,其进一步包括:在使得将转换后的第一数据库协议消息提供给DBMS实例之前和在使得将第二数据库协议消息提供给DBMS实例之前验证第一数据库协议消息和第二数据库协议消息的序列。
在示例4中,示例1-3中的任何一个或多个的主题可选地包括以下操作,其进一步包括:由转换引擎分解第一数据库协议消息以生成多个消息段;以及重构多个消息段以生成转换后的第一数据库协议消息。
在示例5中,示例1-4中的任何一个或多个的主题可选地包括其中包含状态数据的第一数据库协议消息,该系统操作进一步包括:由转换引擎存储状态数据;以及在将第一回复发送到处理代码之前,由转换引擎将状态数据合并到第一回复中。
在示例6中,示例1-5中的任何一个或多个的主题可选地包括以下操作,其进一步包括:由在云环境处执行的配置管理器从组装工作器接收配置元数据,该配置元数据描述由处理代码使用的至少一个配置文件;以及生成由处理代码使用的至少一个配置文件和云环境处的至少一个对应资源之间的映射。
在示例7中,示例6的主题可选地包括第一数据库协议消息,该第一数据库协议消息包括对第一配置文件的引用,所述操作进一步包括使用由处理代码使用的至少一个配置文件和云环境处的至少一个对应资源之间的映射来修改第一数据库协议消息以引用云环境处的对应于第一配置文件的资源。
在示例8中,示例1-7中的任何一个或多个的主题可选地包括,其中将第一数据库协议消息从第一格式转换成第二格式包括修改第一数据库协议消息以将对第一端口的引用替换为对对应端口的引用。
示例9是一种用于在云环境中操作数据库管理系统(DBMS)的方法,该方法包括:从在第一计算设备处执行的组装工作器接收由在第一计算设备处执行的处理代码生成的第一数据库协议消息;由在云环境中执行的转换引擎将第一数据库协议消息从第一格式转换成与在云环境处执行的DBMS实例相关联的第二格式,以生成转换后的第一数据库协议消息;由转换引擎使得将转换后的第一数据库协议消息提供给DBMS实例;从DBMS实例接收对应于转换后的第一数据库协议消息的第一回复;以及向处理代码发送第一回复。
在示例10中,示例9的主题可选地包括从组装工作器接收由处理代码生成的第二数据库协议消息;由转换引擎确定第二数据库协议消息与第二格式兼容;以及由转换引擎使得将第二数据库协议消息提供给DBMS实例。
在示例11中,示例10的主题可选地包括在使得将转换后的第一数据库协议消息提供给DBMS实例之前以及在使得将第二数据库协议消息提供给DBMS实例之前,验证第一数据库协议消息和第二数据库协议消息的序列。
在示例12中,示例9-11中的任何一个或多个的主题可选地包括由转换引擎分解第一数据库协议消息以生成多个消息段;以及重构多个消息段以生成转换后的第一数据库协议消息。
在示例13中,示例9-12中的任何一个或多个的主题可选地包括其中包含状态数据的第一数据库协议消息,该方法进一步包括:由转换引擎存储状态数据;以及在将第一回复发送到处理代码之前,由转换引擎将状态数据合并到第一回复中。
在示例14中,示例9-13中的任何一个或多个的主题可选地包括由在云环境处执行的配置管理器从组装工作器接收配置元数据,该配置元数据描述由处理代码使用的至少一个配置文件;以及生成由处理代码使用的至少一个配置文件和云环境处的至少一个对应资源之间的映射。
在示例15中,示例14的主题可选地包括第一数据库协议消息,该第一数据库协议消息包括对第一配置文件的引用,该方法进一步包括使用由处理代码使用的至少一个配置文件和云环境处的至少一个对应资源之间的映射来修改第一数据库协议消息以引用云环境处对应于第一配置文件的资源。
在示例16中,示例9-15中的任何一个或多个的主题可选地包括,其中将第一数据库协议消息从第一格式转换成第二格式包括修改第一数据库协议消息以将对第一端口的引用替换为对对应端口的引用。
示例17是其上包括指令的非暂时性机器可读介质,当所述指令由云环境处的至少一个处理器执行时,使得云环境处的至少一个处理器执行操作,所述操作包括:从在第一计算设备处执行的组装工作器接收由在第一计算设备处执行的处理代码生成的第一数据库协议消息;由在云环境处执行的转换引擎将第一数据库协议消息从第一格式转换成与在云环境处执行的数据库管理系统(DBMS)实例相关联的第二格式,以生成转换后的第一数据库协议消息;由转换引擎使得将转换后的第一数据库协议消息提供给DBMS实例;从DBMS实例接收对应于转换后的第一数据库协议消息的第一回复;以及向处理代码发送第一回复。
在示例18中,示例17的主题可选地包括以下操作,其进一步包括:从组装工作器接收由处理代码生成的第二数据库协议消息;由转换引擎确定第二数据库协议消息与第二格式兼容;以及由转换引擎使得将第二数据库协议消息提供给DBMS实例。
在示例19中,示例18的主题可选地包括以下操作,其进一步包括:在使得将转换后的第一数据库协议消息提供给DBMS实例之前以及在使得将第二数据库协议消息提供给DBMS实例之前验证第一数据库协议消息和第二数据库协议消息的序列。
在示例20中,示例17-19中的任何一个或多个的主题可选地包括以下操作,其进一步包括:由转换引擎分解第一数据库协议消息以生成多个消息段;以及重构多个消息段以生成转换后的第一数据库协议消息。
图6是示出计算设备的软件架构602的一个示例的框图600。例如,如这里所述,架构602可以结合各种硬件架构来使用。图6仅仅是软件架构的非限制性示例,并且可以实现许多其他架构来促进这里描述的功能。图示出了代表性的硬件层604,并且该硬件层604可以表示例如任何上述计算设备。在一些示例中,硬件层604可以根据图6的计算机系统的架构来实现。
代表性硬件层604包括一个或多个具有相关联的可执行指令608的处理单元606。可执行指令608表示软件架构602的可执行指令,包括这里描述的方法、模块、子系统和组件等的实现方式,并且还可以包括也具有可执行指令608的存储器和/或存储模块610。硬件层604还可以包括由其他硬件612指示的其他硬件,其他硬件612表示硬件层604的任何其他硬件,诸如被图示为架构602的一部分的其他硬件。
在图6的示例架构中,软件架构602可以被概念化为层的堆叠,其中每层提供特定的功能。例如,软件架构602可以包括诸如操作系统614、库616、框架/中间件618、应用620和展示层644之类的层。在操作上,应用620和/或层内的其他组件可以通过软件栈激活API调用624,并响应于API调用624访问被图示为消息626的响应、返回值等。所图示的层在本质上是代表性的,并且不是所有的软件架构都具有所有的层。例如,一些移动或专用操作系统可能不提供框架/中间件层618,而其他的可能提供这样的层。其他软件架构可以包括附加的或不同的层。
操作系统614可以管理硬件资源并提供公共服务。操作系统614可以包括例如内核628、服务630和驱动程序632。内核628可以充当硬件和其他软件层之间的抽象层。例如,内核628可以负责存储器管理、处理器管理(例如,调度)、组件管理、联网、安全设置等等。服务630可以为其他软件层提供其他公共服务。在一些示例中,服务630包括中断服务。中断服务可以检测中断的接收,并且作为响应,当中断被访问时,使得架构602暂停其当前处理并执行中断服务例程(ISR)。
驱动程序632可以负责控制底层硬件或者与底层硬件接口。例如,取决于硬件配置,驱动程序632可以包括显示器驱动程序、相机驱动程序、驱动程序、闪存驱动程序、串行通信驱动程序(例如,通用串行总线(USB)驱动程序)、/>驱动程序、NFC驱动程序、音频驱动程序、电源管理驱动程序等。
库616可以提供应用620和/或其他组件和/或层可以利用的公共基础设施。库616通常提供允许其他软件模块以比直接与底层操作系统614功能(例如,内核628、服务630和/或驱动程序632)接口更容易的方式执行任务的功能。库616可以包括系统634库(例如,C标准库),其可以提供诸如存储器分配函数、字符串操纵函数、数学函数等函数。此外,库616可以包括API库636,诸如媒体库(例如,支持诸如MPEG4、H.264、MP3、AAC、AMR、JPG、PNG之类的各种媒体格式的展示和操纵的库)、图形库(例如,可用于在显示器上的图形内容中呈现2D和3D的OpenGL框架)、数据库库(例如,可提供各种关系数据库函数的SQLite)、网络库(例如,可提供网络浏览功能的WebKit)等。库616还可以包括各种各样的其他库638,以向应用620和其他软件组件/模块提供许多其他API。
框架618(有时也称为中间件)可以提供可以被应用620和/或其他软件组件/模块利用的更高级的公共基础设施。例如,框架618可以提供各种图形用户界面(GUI)功能、高级资源管理、高级位置服务等等。框架618可以提供可由应用620和/或其他软件组件/模块利用的各种其他API,其中一些API可以专用于特定的操作系统或平台。
应用620包括内置应用640和/或第三方应用642。代表性内置应用640的示例可以包括但不限于联系人应用、浏览器应用、图书阅读器应用、位置应用、媒体应用、消息应用和/或游戏应用。第三方应用642可以包括任何内置应用640以及各种各样的其他应用。在特定示例中,第三方应用642(例如,由除特定平台的供应商之外的实体使用AndroidTM或iOSTM软件开发工具包(SDK)开发的应用)可以是运行在诸如iOSTM、AndroidTM、Phone之类的移动操作系统上或其他移动计算设备操作系统上的移动软件。在该示例中,第三方应用642可以激活由诸如操作系统614之类的移动操作系统提供的API调用624来促进这里描述的功能。
应用620可以利用内置操作系统功能(例如,内核628、服务630和/或驱动程序632)、库(例如,系统634、API 636和其他库638)以及框架/中间件618来创建用户界面,以与系统的用户进行交互。替代地或附加地,在一些系统中,与用户的交互可以通过展示层发生,诸如展示层644。在这些系统中,应用/模块“逻辑”可以从与用户交互的应用/模块的方面中分离出来。
一些软件架构利用虚拟机。在图6的示例中,这由虚拟机648图示出。虚拟机创建了一个软件环境,其中应用/模块可以像他们在硬件计算设备上执行那样执行。虚拟机由主机操作系统(操作系统614)托管,并且通常(尽管不总是)具有虚拟机监视器646,虚拟机监视器646管理虚拟机的操作以及与主机操作系统(即,操作系统614)的接口。软件架构在虚拟机内执行,诸如操作系统650、库652、框架/中间件654、应用656和/或展示层658。在虚拟机648内执行的软件架构的这些层可以与先前描述的对应层相同,或者可以不同。
模块、组件和逻辑
某些实施例在此被描述为包括逻辑或多个组件、模块或机制。模块可以构成软件模块(例如,在(1)非暂时性机器可读介质上或者(2)传输信号中体现的代码)或者硬件实现的模块。硬件实现的模块是能够执行某些操作的有形单元,并且可以以某些方式配置或布置。在示例实施例中,一个或多个计算机系统(例如,独立的、客户端或服务器计算机系统)或一个或多个硬件处理器可以由软件(例如,应用或应用部分)配置为硬件实现的模块,其运行以执行如这里所述的某些操作。
在各种实施例中,硬件实现的模块可以机械地或电子地实现。例如,硬件实现的模块可以包括被永久配置(例如,作为专用处理器,诸如现场可编程门阵列(FPGA)或专用集成电路(ASIC))来执行某些操作的专用电路或逻辑。硬件实现的模块还可以包括由软件临时配置来执行某些操作的可编程逻辑或电路(例如,包含在通用处理器或另一个可编程处理器中)。应当理解,以机械方式、在专用和永久配置的电路中、或者在临时配置的电路(例如,由软件配置)中实现硬件实现的模块的决定可以由成本和时间考虑来驱动。
相应地,术语“硬件实现的模块”应该被理解为涵盖有形的实体,即物理构造的、永久配置的(例如,硬连线的)、或者临时或暂时配置的(例如,编程的)以某种方式操作和/或执行这里描述的某些操作的实体。考虑其中硬件实现的模块被临时配置(例如,编程)的实施例,每个硬件实现的模块不需要在任何一个时刻被配置或实例化。例如,在硬件实现的模块包括使用软件配置的通用处理器的情况下,通用处理器可以在不同时间被配置为各自不同的硬件实现的模块。软件可以相应地配置处理器,例如,在一个时刻构成特定的硬件实现的模块,并且在不同的时刻构成不同的硬件实现的模块。
硬件实现的模块可以向其他硬件实现的模块提供信息,并从其他硬件实现的模块接收信息。相应地,所描述的硬件实现的模块可以被认为是通信耦合的。在多个这种硬件实现的模块同时存在的情况下,可以通过信号传输(例如,通过连接硬件实现的模块的适当电路和总线)来实现通信。在多个硬件实现的模块在不同时间被配置或实例化的实施例中,这种硬件实现的模块之间的通信可以例如通过在多个硬件实现的模块可以访问的存储器结构中存储和检索信息来实现。例如,一个硬件实现的模块可以执行操作,并将该操作的输出存储在其通信耦合的存储器设备中。然后,另一个硬件实现的模块可以在稍后的时间访问存储器设备,以检索和处理存储的输出。硬件实现的模块也可以发起与输入或输出设备的通信,并且可以对资源(例如,信息集合)进行操作。
这里描述的示例方法的各种操作可以至少部分地由一个或多个处理器来执行,这些处理器被临时配置(例如,通过软件)或永久配置来执行相关操作。无论是临时配置还是永久配置,这些处理器都可以构成处理器实现的模块,其操作用于执行一个或多个操作或功能。在一些示例实施例中,这里提到的模块可以包括处理器实现的模块。
类似地,这里描述的方法可以至少部分由处理器实现。例如,方法的至少一些操作可以由一个或多个处理器或处理器实现的模块来执行。某些操作的性能可以分布在一个或多个处理器中,不仅驻留在单个机器中,而且部署在多个机器上。在一些示例实施例中,一个或多个处理器可以位于单个位置(例如,在家庭环境、办公室环境或服务器群内),而在其他实施例中,处理器可以分布在多个位置。
一个或多个处理器还可以操作来支持在“云计算”环境中或作为“软件即服务”(SaaS)的相关操作的性能。例如,至少一些操作可以由一组计算机(作为包括处理器的机器的示例)来执行,这些操作可以经由网络(例如,因特网)和经由一个或多个适当的接口(例如,API)来访问。
电子装置和系统
示例实施例可以在数字电子电路中,或者在计算机硬件、固件或软件中,或者在它们的组合中实现。示例实施例可以使用计算机程序产品来实现,例如有形地体现在信息载体中的计算机程序,例如有形体现在机器可读介质中的计算机程序,用于由例如可编程处理器、计算机或多个计算机的数据处理装置执行或控制其操作。
计算机程序可以以任何形式的编程语言编写,包括编译或解释语言,并且它可以以任何形式部署,包括作为独立程序或作为模块、子例程或适合在计算环境中使用的其他单元。计算机程序可以被部署为在一个地点或者分布在多个地点并通过通信网络互连的一台计算机或多台计算机上执行。
在示例实施例中,操作可以由执行计算机程序的一个或多个可编程处理器来执行,以通过对输入数据进行操作并生成输出来执行功能。方法操作也可以由专用逻辑电路(例如,FPGA或ASIC)来执行,并且示例实施例的装置可以被实现为专用逻辑电路。
计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器的关系是由于在各自的计算机上运行的计算机程序而产生的,并且彼此具有客户端-服务器关系。在部署可编程计算系统的实施例中,应当理解,硬件和软件架构都值得考虑。具体而言,应当理解,是在永久配置的硬件(例如,ASIC)、临时配置的硬件(例如,软件和可编程处理器的组合)、还是永久和临时配置的硬件的组合中实现某些功能的选取可以是设计选取。以下是在各种示例实施例中可以部署的硬件(例如,机器)和软件架构。
示例机器架构和机器可读介质
图7是计算机系统700的示例形式的机器的框图,在计算机系统700内可以执行指令724,用于使该机器执行这里讨论的任何一种或多种方法。在替代实施例中,机器作为独立设备操作,或者可以连接(例如,联网)到其他机器。在网络化部署中,机器可以在服务器-客户端网络环境中以服务器或客户端机器的身份运行,或者在对等(或分布式)网络环境中作为对等机器运行。该机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络设备、网络路由器、交换机或网桥,或者能够执行指定该机器要采取的动作的指令(顺序或其他)的任何机器。此外,虽然仅图示出了单个机器,但是术语“机器”也应当被理解为包括单独或联合执行一组(或多组)指令以执行这里讨论的任何一种或多种方法的任何机器集合。
示例计算机系统700包括处理器702(例如,中央处理单元(CPU)、图形处理单元(GPU)或两者)、主存储器704和静态存储器706,它们经由总线708相互通信。计算机系统700还可以包括视频显示单元710(例如,液晶显示器(LCD)或阴极射线管(CRT))。计算机系统700还包括字母数字输入设备712(例如,键盘或触敏显示屏)、用户界面(UI)导航(或光标控制)设备714(例如,鼠标)、盘驱动单元716、信号生成设备718(例如,扬声器)和网络接口设备720。
机器可读介质
盘驱动单元716包括机器可读介质722,其上存储有一组或多组数据结构和指令724(例如,软件),这些数据结构和指令724体现了这里所述的任何一种或多种方法或功能或被这里所述的任何一种或多种方法或功能利用。在计算机系统700执行指令724期间,指令724也可以完全或至少部分地驻留在主存储器704和/或处理器702内,主存储器704和处理器702也构成机器可读介质722。
虽然机器可读介质722在示例实施例中被示为单个介质,但是术语“机器可读介质”可以包括存储一个或多个指令724或数据结构的单个介质或多个介质(例如,集中式或分布式数据库,和/或相关联的缓存和服务器)。术语“机器可读介质”还应被理解为包括能够存储、编码或承载由机器执行的指令724并使机器执行本公开的任何一种或多种方法的任何有形介质,或者能够存储、编码或承载由这种指令724使用或与这种指令724相关联的数据结构的任何有形介质。相应地,术语“机器可读介质”应看作包括但不限于固态存储器、光学和磁性介质。机器可读介质722的具体示例包括非易失性存储器,作为示例包括半导体存储设备,例如可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)和闪存设备;磁盘,诸如内部硬盘和可移动盘;磁光盘;和CD-ROM和DVD-ROM盘。
传输介质
指令724还可以使用传输介质通过通信网络726传送或接收。可以使用网络接口设备720和多种众所周知的传输协议(例如,HTTP)中的任何一种来传送指令724。通信网络的示例包括局域网(LAN)、广域网(WAN)、因特网、移动电话网络、普通老式电话(POTS)网络和无线数据网络(例如,WiFi和WiMax网络)。术语“传输介质”应看作包括任何能够存储、编码或承载供机器执行的指令724的无形介质,并且包括数字或模拟通信信号或其他无形介质以促进这种软件的通信。
尽管已经参考特定示例实施例描述了实施例,但是很明显,在不脱离本公开的更广泛的精神和范围的情况下,可以对这些实施例进行各种修改和改变。因此,说明书和附图被认为是说明性的,而不是限制性的。形成本说明书一部分的附图通过图示而非限制的方式示出了可以实践本主题的具体实施例。足够详细地描述了所图示的实施例,以使本领域技术人员能够实践这里公开的教导。可以利用其他实施例并从中导出其他实施例,从而可以在不脱离本公开的范围的情况下进行结构和逻辑上的替换和改变。因此,具体实施方式不应被理解为限制性的,并且各种实施例的范围仅由所附权利要求以及这些权利要求所授权的等同物的全部范围来限定。
本发明主题的这些实施例在这里可以单独和/或共同被称为术语“发明”,这仅仅是为了方便,如果实际上公开了一个以上的发明或发明构思,这并不意味着自愿将本申请的范围限制于任何单个发明或发明构思。由此,尽管在此已经图示和描述了具体实施例,但是应当理解,任何旨在实现相同目的的布置都可以替代所示的具体实施例。本公开旨在覆盖各种实施例的任何和所有适配或变型。通过阅读以上描述,上述实施例的组合以及这里没有具体描述的其他实施例对于本领域技术人员来说将是明显的。
Claims (20)
1.一种用于在云环境中操作数据库管理系统(DBMS)的系统,该系统包括:
至少一个处理器,被编程为执行包括以下的操作:
从在第一计算设备处执行的组装工作器接收由在所述第一计算设备处执行的处理代码生成的第一数据库协议消息;
由在所述云环境处执行的转换引擎将所述第一数据库协议消息从第一格式转换成与在所述云环境处执行的DBMS实例相关联的第二格式,以生成转换后的第一数据库协议消息;
由所述转换引擎使得将所述转换后的第一数据库协议消息提供给所述DBMS实例;
从所述DBMS实例接收对应于所述转换后的第一数据库协议消息的第一回复;以及
向所述处理代码发送所述第一回复。
2.根据权利要求1所述的系统,所述操作进一步包括:
从所述组装工作器接收由所述处理代码生成的第二数据库协议消息;
由所述转换引擎确定所述第二数据库协议消息与所述第二格式兼容;以及
由所述转换引擎使得将所述第二数据库协议消息提供给所述DBMS实例。
3.根据权利要求2所述的系统,所述操作进一步包括:在使得将所述转换后的第一数据库协议消息提供给所述DBMS实例之前和在使得将所述第二数据库协议消息提供给所述DBMS实例之前,验证所述第一数据库协议消息和所述第二数据库协议消息的序列。
4.根据权利要求1所述的系统,所述操作进一步包括:
由所述转换引擎分解所述第一数据库协议消息以生成多个消息段;以及
重构所述多个消息段以生成所述转换后的第一数据库协议消息。
5.根据权利要求1所述的系统,所述第一数据库协议消息包括状态数据,所述系统的所述操作进一步包括:
由所述转换引擎存储所述状态数据;以及
在将所述第一回复发送到所述处理代码之前,由所述转换引擎将所述状态数据合并到所述第一回复中。
6.根据权利要求1所述的系统,所述操作进一步包括:
由在所述云环境处执行的配置管理器从所述组装工作器接收配置元数据,该配置元数据描述由所述处理代码使用的至少一个配置文件;以及
生成由所述处理代码使用的所述至少一个配置文件和所述云环境处的至少一个对应资源之间的映射。
7.根据权利要求6所述的系统,所述第一数据库协议消息包括对第一配置文件的引用,所述操作进一步包括:使用由所述处理代码使用的所述至少一个配置文件和所述云环境处的至少一个对应资源之间的映射来修改所述第一数据库协议消息,以引用所述云环境处对应于所述第一配置文件的资源。
8.根据权利要求1所述的系统,其中将所述第一数据库协议消息从所述第一格式转换成所述第二格式包括:修改所述第一数据库协议消息以将对第一端口的引用替换为对对应端口的引用。
9.一种用于在云环境中操作数据库管理系统(DBMS)的方法,该方法包括:
从在第一计算设备处执行的组装工作器接收由在所述第一计算设备处执行的处理代码生成的第一数据库协议消息;
由在所述云环境处执行的转换引擎将所述第一数据库协议消息从第一格式转换成与在所述云环境处执行的DBMS实例相关联的第二格式,以生成转换后的第一数据库协议消息;
由所述转换引擎使得将所述转换后的第一数据库协议消息提供给所述DBMS实例;
从所述DBMS实例接收对应于所述转换后的第一数据库协议消息的第一回复;以及
向所述处理代码发送所述第一回复。
10.根据权利要求9所述的方法,进一步包括:
从所述组装工作器接收由所述处理代码生成的第二数据库协议消息;
由所述转换引擎确定所述第二数据库协议消息与所述第二格式兼容;以及
由所述转换引擎使得将所述第二数据库协议消息提供给所述DBMS实例。
11.根据权利要求10所述的方法,进一步包括:在使得将所述转换后的第一数据库协议消息提供给所述DBMS实例之前和在使得将所述第二数据库协议消息提供给所述DBMS实例之前,验证所述第一数据库协议消息和所述第二数据库协议消息的序列。
12.根据权利要求9所述的方法,进一步包括:
由所述转换引擎分解所述第一数据库协议消息以生成多个消息段;以及
重构所述多个消息段以生成所述转换后的第一数据库协议消息。
13.根据权利要求9所述的方法,所述第一数据库协议消息包括状态数据,该方法进一步包括:
由所述转换引擎存储所述状态数据;以及
在将所述第一回复发送到所述处理代码之前,由所述转换引擎将所述状态数据合并到所述第一回复中。
14.根据权利要求9所述的方法,进一步包括:
由在所述云环境处执行的配置管理器从所述组装工作器接收配置元数据,该配置元数据描述由所述处理代码使用的至少一个配置文件;以及
生成由所述处理代码使用的所述至少一个配置文件和所述云环境处的至少一个对应资源之间的映射。
15.根据权利要求14所述的方法,所述第一数据库协议消息包括对第一配置文件的引用,所述方法进一步包括:使用由所述处理代码使用的所述至少一个配置文件和所述云环境处的至少一个对应资源之间的映射来修改所述第一数据库协议消息,以引用所述云环境处对应于所述第一配置文件的资源。
16.根据权利要求9所述的方法,其中将所述第一数据库协议消息从所述第一格式转换成所述第二格式包括:修改所述第一数据库协议消息以将对第一端口的引用替换为对对应端口的引用。
17.一种非暂时性机器可读介质,其上包括有指令,当所述指令由云环境中的至少一个处理器执行时,使得所述云环境处的至少一个处理器执行包括以下的操作:
从在第一计算设备处执行的组装工作器接收由在所述第一计算设备处执行的处理代码生成的第一数据库协议消息;
由在所述云环境处执行的转换引擎将所述第一数据库协议消息从第一格式转换成与在所述云环境处执行的数据库管理系统(DBMS)实例相关联的第二格式,以生成转换后的第一数据库协议消息;
由所述转换引擎使得将所述转换后的第一数据库协议消息提供给所述DBMS实例;
从所述DBMS实例接收对应于所述转换后的第一数据库协议消息的第一回复;以及
向所述处理代码发送所述第一回复。
18.根据权利要求17所述的非暂时性机器可读介质,所述操作进一步包括:
从所述组装工作器接收由所述处理代码生成的第二数据库协议消息;
由所述转换引擎确定所述第二数据库协议消息与所述第二格式兼容;以及
由所述转换引擎使得将所述第二数据库协议消息提供给所述DBMS实例。
19.根据权利要求18所述的非暂时性机器可读介质,所述操作进一步包括:在使得将所述转换后的第一数据库协议消息提供给所述DBMS实例之前和在使得将所述第二数据库协议消息提供给所述DBMS实例之前,验证所述第一数据库协议消息和所述第二数据库协议消息的序列。
20.根据权利要求17所述的非暂时性机器可读介质,所述操作进一步包括:
由所述转换引擎分解所述第一数据库协议消息以生成多个消息段;以及
重构所述多个消息段以生成所述转换后的第一数据库协议消息。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/482,914 | 2021-09-23 | ||
US17/482,914 US11947500B2 (en) | 2021-09-23 | 2021-09-23 | Cloud migration for legacy on-premises process code |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115858643A true CN115858643A (zh) | 2023-03-28 |
Family
ID=83398213
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211167830.4A Pending CN115858643A (zh) | 2021-09-23 | 2022-09-23 | 遗留本地部署处理代码的云迁移 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11947500B2 (zh) |
EP (1) | EP4155935A1 (zh) |
CN (1) | CN115858643A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20240111436A1 (en) * | 2022-09-30 | 2024-04-04 | VirtualZ Computing Corporation | System and method for mainframe application access to data stored in a non-mainframe environment |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10255336B2 (en) * | 2015-05-07 | 2019-04-09 | Datometry, Inc. | Method and system for transparent interoperability between applications and data management systems |
US10637952B1 (en) * | 2018-12-19 | 2020-04-28 | Sap Se | Transition architecture from monolithic systems to microservice-based systems |
-
2021
- 2021-09-23 US US17/482,914 patent/US11947500B2/en active Active
-
2022
- 2022-09-20 EP EP22196507.2A patent/EP4155935A1/en active Pending
- 2022-09-23 CN CN202211167830.4A patent/CN115858643A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US11947500B2 (en) | 2024-04-02 |
EP4155935A1 (en) | 2023-03-29 |
US20230089662A1 (en) | 2023-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111279321B (zh) | 在api注册器中将后端服务端点绑定到api函数 | |
Jamshidi et al. | Pattern‐based multi‐cloud architecture migration | |
US9882834B2 (en) | Capturing data parameters in templates in a networked computing environment | |
US10620933B2 (en) | Techniques for efficient application configuration patching | |
US8904382B2 (en) | Creating instances of cloud computing environments | |
US11552955B2 (en) | Data security across data residency restriction boundaries | |
US10048954B2 (en) | Accelerating software builds | |
US20120117422A1 (en) | Disaster recovery in a networked computing environment | |
US9679119B2 (en) | Software utilization privilege brokering in a networked computing environment | |
US20170034163A1 (en) | Updating database drivers for client applications through a database server push | |
US20150317133A1 (en) | Cobol reference architecture | |
US20150220524A1 (en) | Verifying file versions in a networked computing environment | |
EP4155935A1 (en) | Cloud migration for legacy on-premises process code | |
US11200049B2 (en) | Automated test authorization management | |
EP4191492A1 (en) | Transaction engine | |
US11677852B2 (en) | Cross-application data migration | |
CN114035864A (zh) | 接口处理方法、接口处理装置、电子设备和存储介质 | |
EP4354315A1 (en) | Request handling in a multi-protocol cloud environment | |
US11755591B2 (en) | Metadata object identifier registry | |
US11972310B1 (en) | Multi-resource operations in an analytics computing system | |
US20220414115A1 (en) | System and architecture for standardizing and centralizing data movement between systems | |
CN114253852A (zh) | 自动化测试方法、装置、设备、介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |