CN110520842B - 针对传统应用兼容性的地址空间拆分系统及方法 - Google Patents

针对传统应用兼容性的地址空间拆分系统及方法 Download PDF

Info

Publication number
CN110520842B
CN110520842B CN201880021493.3A CN201880021493A CN110520842B CN 110520842 B CN110520842 B CN 110520842B CN 201880021493 A CN201880021493 A CN 201880021493A CN 110520842 B CN110520842 B CN 110520842B
Authority
CN
China
Prior art keywords
computing system
software application
data
bit
operating
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.)
Active
Application number
CN201880021493.3A
Other languages
English (en)
Other versions
CN110520842A (zh
Inventor
A·V·格拉巴
H·J·迪克曼
V·S·伊拉瓦
J·J·伯克霍尔德
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN110520842A publication Critical patent/CN110520842A/zh
Application granted granted Critical
Publication of CN110520842B publication Critical patent/CN110520842B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • G06F8/24Object-oriented
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44536Selecting among different versions
    • G06F9/44542Retargetable
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication

Abstract

公开了用于协调软件应用的异构进程以符合多个地址空间或其他计算系统约束的系统和设备。在示例中,用于在软件应用的多个进程之间协调数据处理的操作包括:运行软件应用的第一进程,其中,第一进程以受限于计算系统的操作约束的第一能力来操作;发起软件应用的第二进程,该第二进程作为第一进程的子进程来发起,并且第二进程以超出计算系统的操作约束的第二能力来操作;将数据从软件应用的第一进程传送到第二进程;以及响应于由第二进程的数据分析操作处理所述数据,从软件应用的第二进程接收数据。

Description

针对传统应用兼容性的地址空间拆分系统及方法
背景技术
现代计算系统已经逐步发展以提高存储器和处理资源的利用率。例如,许多版本的操作系统已经被设计为以使用64位宽的数据路径、存储器地址和CPU指令的“64位”数据处理操作来操作。与先前限于小存储器地址空间(4GB存储器)的“32位”操作系统相比,64位操作系统能够对更大的存储器空间(例如,太字节或更多的存储器)进行寻址。许多操作系统(诸如当前版本的MICROSOFT
Figure BDA0002216308550000011
)允许32位应用和64位应用两者在同一环境中运行,但是仅有被编译为64位版本的软件应用才能够利用64 位处理特征。
诸如办公生产力软件、图形软件等的许多软件应用已经被转移到64位版本,以便利用在64位硬件架构中可用的更大的存储器资源和处理指令。然而,使用64位软件进程会妨碍使用32位传统扩展、插件或者被设计为与32位版本的软件进程集成的其他组件。因此,尽管32位计算存在资源和处理限制,但是许多用户选择在能够进行64位处理的机器上安装32位版本的软件应用,以便保持与32位传统组件的兼容性。
发明内容
在附图中以及在下文的详细说明文本中提供了针对本发明主题的实施例的各种细节。将理解的是,以下部分提供了这些实施例中的一些实施例的概括示例。
在本文中所描述的实施例总体涉及在计算系统上运行和操作软件应用,并且更具体涉及操作软件应用的异构进程,其基于计算系统的约束来传送数据和协调操作。在示例中,实施例可以包括用于在软件应用的多个进程之间协调数据处理的操作,其中,所述操作用于:运行软件应用的第一进程,使得所述第一进程以受限于计算系统的操作约束的第一能力来操作;发起软件应用的第二进程,使得所述第二进程作为所述第一进程的子进程来发起,并且使得所述第二进程以超出所述计算系统的操作约束的第二能力来操作;将数据从软件应用的所述第一进程传送到所述第二进程,使得所述第二进程适于对所述数据执行数据分析操作;以及响应于由所述第二进程的所述数据分析操作处理所述数据,从软件应用的所述第二进程接收数据。
在另外的示例中,所述计算系统的操作约束施加了关于在32位地址空间中运行的约束,使得所述第一进程被编译成32位版本以用于在所述计算系统的32位地址空间中操作。例如,所述第二进程可以被编译成64位版本以用于在所述计算系统的64位地址空间中操作,使得所述第一进程以所述计算系统的硬件的32位指令集来运行,并且使得所述第二进程以所述计算系统的所述硬件的64位指令集来运行。
还是在另外的示例中,所述计算系统的操作约束是至少部分地根据用户定义的参数来施行的,使得所述用户定义的参数指示所述计算系统的可用硬件或软件能力的架构参数。例如,所述操作约束可以涉及以下中的至少一项:逐位兼容性,操作系统的版本,操作系统内的兼容性模式,软件应用的版本,硬件架构,计算系统的硬件组件的版本,计算系统的硬件架构的数据提供者的可用性,或者操作用户偏好。
还是在另外的示例中,在所述软件应用的所述第一进程内发起并且运行扩展组件,使得所述扩展组件以受限于所述计算系统的操作约束的第一能力来操作。例如,所述扩展组件可以是软件应用的插件或组件对象模型 (COM)加载项,使得所述扩展组件能运行以在软件应用中执行数据处理操作。还例如,所述操作约束可以提供用于在所述计算系统的32位地址空间中运行作为32位版本的进程的约束。
在本文中所讨论的实施例包括一种计算设备,其包括处理硬件(例如,处理器)和存储器硬件(例如,存储设备或易失性存储器),其包括在其上体现的指令,使得所述指令当由所述处理硬件运行时使所述计算设备实施、执行或协调电子操作。在本文中所讨论的另一实施例包括计算机程序产品,诸如可以由机器可读介质或其他存储设备实现的,其提供用于实施、执行或协调电子操作的指令。在本文中所讨论的另一实施例包括一种方法,其能在计算设备的处理硬件上操作,以实施、执行或协调电子操作。
如在本文中所讨论的,实施上述电子操作的各方面的逻辑、命令或指令可以在本地计算系统或远程计算系统中提供,包括针对所述计算系统的任意数量的形状因子,诸如台式或笔记本个人计算机,诸如平板计算机、上网本和智能电话的移动设备,客户终端和服务器托管的机器实例等。在本文中所讨论的另一实施例包括将在本文中所讨论的技术结合到其他形式中,包括结合到其他形式的经编程的逻辑、硬件配置或专用组件或模块中,包括具有执行这样的技术的功能的相应单元的装置。用于实施这样的技术的功能的相应算法可以包括上述电子操作中的一些或所有电子操作的序列,或者在下文的附图和详细描述中所描述的其他方面。
提供本发明内容部分是为了以简化的形式介绍本发明主题的各方面,并且在详细说明的文本中进一步解释说明本发明的主题。该发明内容部分并不旨在标识所要求保护的主题的必要或必需特征,并且本发明内容部分中列出的元件的特定组合和次序并不旨在提供对所要求保护的主题的元素的限制。
附图说明
在不一定按比例绘制的附图中,相似的数字可以描述不同视图中的类似组件。具有不同字母后缀的相同数字可以表示类似组件的不同实例。在附图的图中,通过示例而非限制的方式示出了一些实施例,其中:
图1图示了根据示例的针对计算系统中的各个软件应用的操作的场景。
图2图示了根据示例的图示说明软件应用内的进程的操作的框图。
图3图示了根据示例的图示说明各个进程内的组件之间的数据通信的操作图。
图4图示了根据示例的针对各个进程之间的配置和通信的示例性操作的流程图。
图5图示了根据示例的用于调用选定的后端进程的示例性操作的流程图。
图6图示了根据示例的用于协调软件应用的多个进程之间的数据处理的示例性操作的流程图。
图7图示了根据示例的用于实施协调软件应用的多个进程之间的数据处理的操作的计算系统的硬件和功能组件的框图。
具体实施方式
在以下描述中,公开了用于部署多个软件进程作为软件应用的一部分的方法、配置和相关装置,以实现与多个架构、平台或者硬件和系统约束的兼容性。这些技术可以例如由利用传统组件(例如,扩展、插件、组件) 和被设计用于第一架构或环境的进程同时还调用和利用被设计用于第二架构或环境的进程的软件来使用。特别地,在本文中所描述的配置可以使得能够在单个软件应用的范围内执行不同架构的多个进程,即使从用户的角度来看所述软件应用仍然看起来作为单个实体来操作。例如,可以使用当前公开的技术和配置来符合第一组进程的兼容性要求或硬件能力,同时允许第二组进程符合兼容性要求和硬件能力。
如在以下示例中所讨论的,用于在多个架构之间调用进程的技术可以包括对32位和64位软件应用的特定适用性,以及使用地址空间拆分来控制和协调不同进程之间的操作。如在以下示例中所讨论的,可以由于用户提供的输入和偏好,或者由于操作环境的优化,来调用多架构组件,以确定进程操作和架构兼容性的优化组合。
在本文中所描述的技术可以适用于涉及多个处理子系统的面向用户的软件,诸如办公生产力软件(例如,文字处理器、电子表格、演示、笔记记录应用)、网络浏览器、图形和多媒体设计套件、企业软件应用等。作为非限制性示例,编译许多现有(传统)电子表格扩展以与在32位软件和硬件平台上运行的电子表格软件应用(例如,MICROSOFT
Figure BDA0002216308550000041
)一起使用。在32位地址空间中操作所有电子表格函数将对电子表格软件应用能够使用的存储器量施加技术限制,因为32位平台在理论上受限于最大4GB 的地址空间(通常是远远较小的虚拟地址空间)。然而,在软件应用的一些过程中运行的现代数据分析技术可能涉及大量存储器(数千兆字节)以有效地处理所述数据。这导致某些方面的功能丧失,因为用户必须选择放弃具有现代数据分析特征的64位操作,或者选择避免使用传统工具,诸如仅为32位操作设计的COM组件和插件。
如在下文中所讨论的,一个示例性实现方式包括将软件应用的功能(例如,诸如
Figure BDA0002216308550000051
的电子表格软件应用)拆分和协调到两个处理域中。一个域操作至少一个32位进程以与传统32位扩展进行交互,而另一域操作至少一个64位进程以执行数据分析以及其他64位操作。尽管与前端进程存在架构差异或限制,但是该实现方式使对系统资源的使用最大化。此外,尽管软件应用的前端进程(例如,诸如
Figure BDA0002216308550000052
的办公生产力软件应用)可以呈现具有32位和传统扩展兼容性的用户界面,但是任何调用的后端数据分析进程都可以执行64位处理,以实现最佳效率、速度和数据操作。
如在本文中所讨论的,所讨论的技术可以适用于基于硬件能力(例如, 32位“x86”与64位“x64”架构和指令、存储器寻址约束)、软件能力(例如,不同的操作系统、不同类型的数据提供者或者不同类型的运行运行时) 或者类似软件/硬件架构差异来拆分和协调功能。如在本文中进一步讨论的,除了系统能力和配置设置之外,对可执行过程的确定以及特定应用或任务的处理的划分可以考虑各种用户可配置的偏好。
图1提供了针对计算系统中的各个软件应用的操作的示例性场景的概览。在该场景中,由用户102操作的计算系统110包括硬件资源114以及在硬件资源114上运行的各种计算系统软件112。例如,计算系统软件112 可以利用调用x86、32位指令集116和x64、64位指令集118的处理器(未示出)来运行;计算系统软件112还可以通过使用易失性存储器120(例如,随机存取存储器)和存储设备122(例如,非易失性存储器或硬盘)来运行和存储。
计算系统软件112提供包括操作系统124、第一软件应用128和第二软件应用136的层级。第一软件应用128通过运行前端进程132来提供用户界面130以及其他功能,并且第一软件应用128通过后端进程134执行诸如数据分析操作的额外操作。
在图1中所描绘的示例中,前端进程132是32位进程,其使用x86指令集116在32位地址空间中运行。后端进程134是单独的64位进程,作为前端进程132的子进程,其使用x64指令集118在64位地址空间中运行。在示例中,当且仅当需要子进程时,64位后端子进程按需加速。例如,数据/存储器密集型操作能够卸载到64位后端进程,而软件应用的用户界面和数据创作操纵部分能够在32位前端进程中操作。
在适用于
Figure BDA0002216308550000061
操作系统环境的示例中,父进程(例如,第一软件应用128的32位前端进程132)和子进程(例如运行处理引擎的64位后端进程134)都通过使用作业对象来管理。作业对象是能命名的、安全的、可共享的对象,其控制与其关联的进程的属性,并且对作业对象执行的操作影响与作业对象相关联的所有进程。对作业对象的使用允许管理父-子进程的单元,所述单元可以用于设置诸如工作集大小的限制或者终止与作业相关联的所有进程。
第一软件应用128进一步与扩展组件126(诸如COM组件、插件等) 的使用集成,扩展组件126通过前端过程132与第一软件应用128集成使用。所述扩展组件继而通过使用x86指令集116在32位地址空间中运行。作为示例,所述扩展组件作为前端进程132的一部分而不是单独的进程来运行。
由于分别操作前端进程132和后端进程134,后端进程134可以在64 位地址空间中操作,而前端进程132可以继续在32位地址空间中操作。因此,第一软件应用128可以包括改变逐位兼容性的异构过程。与该混合配置相反,图1中所图示的第二软件应用136包括类似的用户界面138、前端进程140和后端进程142,其中,所述进程中的每个进程通过使用x64指令集116以相同的逐位兼容性来操作。例如,如果操作系统124确定不需要支持32位进程和运行模式(例如,因为不需要支持传统扩展组件),则前端进程140和后端进程142可以都以64位模式来运行。软件应用进程的模式或版本的这种确定和配置可以在安装、配置或稍后的使用事件期间发生。
图2图示了图示说明软件应用202内的进程的示例性操作的框图。如所示的,针对软件应用202的框图包括使用在x86架构上操作的前端进程 204。例如,软件应用202可以是办公生产力应用的32位版本,其利用x86 硬件架构的特征来运行,并且其中,办公生产力应用被配置为生成和编辑文档(例如,文字处理文档、电子表格文档、演示文档等)。还如所示的,前端进程204对包括第一文档206A和第二文档206B的数据文件执行操作。尽管未示出,但是也可以在前端进程204内合并、编辑、查看和控制其他类型和形式的文档和数据源。
如在图2中所示的,软件应用202包括与扩展组件208的集成。扩展组件208可以是办公生产力插件的32位版本,其包括用于在x86硬件架构中运行的特征。这样的办公生产力插件集成了针对办公生产力应用的前端进程204的运行,其中,所述插件被配置为执行在文档(例如,文字处理文档、电子表格文档、演示文档等)中或前端进程204中的某些操作(例如,数据处理、格式化、增强)。例如,扩展组件208可以是32位版本的组件对象模型(COM)加载项,其由前端进程204在计算系统的32位地址空间中运行。因为扩展组件208以与前端进程204相同的格式(并且在相同的32位地址空间中操作)提供扩展功能,所以前端进程204和扩展组件 208可以彼此成功地集成。
还如在图2中所示的,软件应用202还包括多个后端进程:第一后端进程210A和第二后端进程210B。在示例中,前端进程204适于发起和控制后端进程210A、210B的运行,作为前端进程204的相应子进程。例如,前端进程204可以产生(例如,在
Figure BDA0002216308550000071
系统上)或分叉(fork)(例如,在Linux系统上)相应的后端进程,并且在前端父进程204的控制下操作相应的后端进程。前端进程204与后端进程210A、210B分开操作,使用通信机制(例如,诸如管道、共享存储器、信号、队列、套接字等的进程间通信(IPC))来传送数据。在下文讨论的另外的示例中,后端进程还可以在远程计算系统上运行,其中,使用远程通信协议来从远程后端进程获得和捕获数据。
在示例中,可以基于计算系统的至少一个操作约束来选择所产生的相应后端进程。例如,所述操作约束可以涉及以下中的至少一项:逐位兼容性(例如,软件组件是否是与64位进程直接集成不兼容的32位进程),操作系统的版本,操作系统内的兼容模式,软件应用的版本,硬件架构(例如,计算系统中用于运行某些指令或执行某些操作动作的硬件能力),计算系统的硬件组件的版本,针对计算系统的硬件架构的数据提供者(例如,仅在32位模式下可用的数据提供者)的可用性,或者操作用户偏好。在另外的示例中,可以根据管理员策略、特征或功能限制等来建立操作用户偏好(例如,以选择32位操作模式),例如以确保与某些后端进程或进程功能的兼容性。
如所示的,第一后端进程210A作为子进程来操作,但是在64位操作模式中,第一后端进程210A以x64硬件架构的特征来运行。以这种方式,第一后端进程210A可以在64位地址空间中操作,但是与前端进程204分离以允许前端进程204(和扩展组件208)维持在32位地址空间中以x32 硬件架构来操作。这允许在第一地址空间中使用软件应用202中的扩展组件208,因为以不引起冲突的方式分离了在64位地址空间中的第一后端进程的使用。更进一步地,第二后端进程210B可以与另一或相同的硬件架构的特征一起操作(如所示的,在32位地址空间中以x86硬件架构来操作)。这样的异构后端进程的使用对于进一步的操作可能是有用的,诸如在后端进程210B与受限于操作约束的第二数据提供者212B集成的示例中(例如,在32位地址空间中以x86硬件架构来操作),而后端进程210A与不受限于第一约束的第一数据提供者212A集成(例如,在64位地址空间中以x64 硬件架构来操作)。
尽管仅示出了前端进程和后端进程,但是应当理解,可以通过使用子进程来传播和控制多级进程。例如,可以以图形的方式来创建一系列子进程,诸如图形的第一部分产生符合第一约束(例如,32位操作)的子进程,而图形的第二部分产生不受限于第一约束或者受限于第二约束(例如,64 位操作)的子进程。
图3图示了图示说明在各个进程内的组件之间的示例性数据通信的操作图302。如在操作图302中所示的,第一进程(进程1)、第二进程(进程2)和第三进程(进程3)各自协调用于在办公生产力软件应用中使用的数据动作。第二进程(进程2)是第一进程(进程1)的子进程,并且第三进程(进程3)继而是第二进程(进程2)的子进程。由于由各个进程边界所示的进程的分离,可以以任意组合来操作进程的操作约束和功能(例如,硬件或软件能力,诸如32位与64位)。
作为非限制性图示说明,所述第一进程操作用户界面308、32位COM 数据提供者314(例如,扩展组件,诸如用于OLAP数据提供者的OLEDB 应用编程接口(API))、数据处理功能306、一组数据库处理库312、第一混搭数据提供者304和第二混搭数据提供者310。因此,所述第一进程可以暴露用于数据处理的特征,在这种情况下用于对混搭的查询、选择、编译和表示(例如,数据混搭或数据准备)。
操作图302描绘了在第二进程中的数据处理引擎316和混搭运行时318 的使用,其例如可以作为用于增强数据处理能力的64位进程(在更大的存储空间中)操作。所述第三进程继而可以被配置为所述第二进程的子进程,其中,所述第三进程包括混搭引擎320,并且例如所述第三进程可以作为 32位进程来操作。操作图302还示出了第一进程、第二进程和第三进程的操作组件之间的集成和通信,诸如通过使用管道、数据取回、API调用,并且显而易见的是,任意数量的其他数据操作和通信可以在这样的示例中进行协调。
图4图示了用于各个进程之间的配置和通信的示例性操作的流程图 400。从本地机器上的软件应用的角度描绘了在流程图400中所描绘的操作,所述软件应用包括前端进程(父进程)、与前端进程集成的可扩展性组件以及一个或多个后端进程(子进程)。可以发生由这些组件执行的操作以解决本地计算系统或软件应用的任意数量的操作约束。
如所示的,流程图400的操作开始于前端进程的安装和配置(操作410),以满足一个或多个操作约束。以这种方式,可以基于要求(例如,硬件处理要求、软件先决条件)、兼容性(例如,与其他软件应用的兼容性、与硬件的兼容性)和偏好(例如,用户策略)来安装和配置所述前端进程。例如,可以基于与已知的32位扩展性组件或后端进程所需的兼容性,来自动地(通过操作系统、通过软件应用)或者由用户(手动地或者基于用户偏好)来选择32位版本的前端进程,因为64位版本的前端进程部能够以这种方式运行。
流程图400的额外操作包括:基于计算系统的能力,安装和配置软件应用的一个或多个可扩展性组件,以用于在前端进程内操作(操作420);以及安装和配置软件应用的一个或多个后端进程,以用于与前端进程通信 (操作430)。在示例中,基于计算系统的能力来安装和配置后端进程,其可以包括考虑也被用于前端进程的要求、兼容性和偏好。
如在流程图400中所描绘的,所述软件组件的操作包括运行前端进程和调用一个或多个可扩展性组件(操作440)。在示例中,前端进程基于所调用的一个或多个可扩展性组件的特征来执行操作(例如,数据修改操作、用户界面操作等)(操作450)。如在上文的示例中所讨论的,这可以包括运行前端进程和可扩展性组件作为32位地址空间中的32位进程。在另一示例中,从计算系统的可用硬件或软件能力中指示用于运行前端进程和可扩展性组件的第一架构参数。
最后,流程图400的操作以前端进程调用一个或多个后端进程(操作 460)结束,诸如将一个或多个后端进程产生为(一个或多个)子进程,以及在基于前端进程的数据或者从调用的后端组件接收到的其他动作中执行操作(操作470)。在示例中,从计算系统的可用硬件或软件能力中指示用于运行前端进程和可扩展性组件的第二架构参数。在另外的示例中,第一架构参数受限于计算系统的特定操作约束,而第二架构参数不受限于或超出该操作约束。
图5图示了用于调用和操作选定的后端进程(例如,“第二”进程)的示例性操作的流程图500。从流程图500的操作实施的动作可以包括以下序列,但是显然可以提供对序列的次序和长度的其他变化。
首先,流程图500描绘了软件应用(操作510)的前端进程(例如,第一进程和父进程)中的数据集合。该数据集合可以包括查询和取回来自各种数据源、用户输入的集合以及各个用户界面特征的演示和操作的数据,以交互、捕获、过滤、细化、选择和显示数据字段和值。前端进程用于调用后端进程,其中,后端进程被调用以对在前端进程中所使用的数据的至少子集执行数据分析操作(操作520)。在示例中,将后端进程作为前端进程的子进程来发起(例如,开始、启动等),使得所述进程的操作在软件应用内继续。
可以根据针对处理能力的一个或多个适用值来定制和确定对用于执行数据分析操作的特定后端进程的选择(操作530)。例如,后端进程可以包括基于在计算系统中可用的特定处理能力而选择的第一版本和第二版本,以及需要利用后端进程运行的数据分析操作的类型。可以基于以下项来评估计算系统中可用的处理能力:针对特定版本的后端进程的硬件支持(例如,用于运行后端进程的硬件架构和指令的类型),针对特定版本的后端进程的操作系统支持(例如,是否受特定版本或类型的操作系统支持),特定版本的后端进程的数据提供者可用性(例如,是否必须经由较旧的32位数据源取回数据),或者用户偏好(例如,最终用户、管理员或其他偏好是否被设置为选择特定版本的后端进程)。例如,可以编译后端进程的第一版本以用于特定硬件架构(例如,x86、x64或ARM)、软件平台(例如,
Figure BDA0002216308550000111
Linux、
Figure BDA0002216308550000112
)或操作约束。
流程图500的操作结束于利用所选择的后端进程处理数据(操作540) 以及将数据从所选择的后端进程返回(例如,传送、取回或传输)到前端进程(操作550)。从所选择的后端进程返回的数据可以由第一端进程进一步细化和输出(例如,呈现、发送、处理),包括上文针对图4所描述的可扩展性组件的操作。
图6图示了根据示例的用于协调软件应用的多个进程之间的数据处理的示例性操作的流程图600。将理解的是,流程图600的操作可以结合计算机实施的方法、计算机程序产品上的指令或计算设备的配置(或者这样的方法、产品或计算设备中的多个)来实施。在示例中,所述电子操作由计算设备来运行,所述计算设备操作单个计算系统内的软件应用的所有进程 (第一进程、第二进程、第三进程等);在另一示例中,第一进程的操作在托管用户界面的本地计算设备内执行,并且第二进程的操作在托管远程处理能力的远程计算系统内执行。
流程图600描绘了运行软件应用的操作,其可以以确定针对软件应用的操作约束开始(操作610)。在示例中,操作约束涉及以下中的至少一项:逐位兼容性,操作系统的版本,操作系统内的兼容性模式,软件应用的版本,硬件架构,计算系统的硬件组件的版本,针对计算系统的硬件架构的数据提供者的可用性,或者操作用户偏好。
流程图操作继续运行软件应用的第一(例如,前端)进程(操作620),其中,执行符合计算系统的特定操作约束。在示例中,第一进程操作以符合受限于计算系统的特定操作约束的第一能力。在另外的示例中,计算系统的该特定操作约束是至少部分地根据用户定义的参数来施行的,使得用户定义的参数指示来自计算系统的可用硬件或软件能力中的架构参数。同样在另外的示例中,可以根据计算系统的可用功能特征和可用架构参数来自动地确定计算系统的这种特定操作约束。
流程图操作继续利用软件应用的第一进程来发起(例如,产生、分叉) 软件应用的第二进程,作为子进程(例如,子进程或子任务)(操作630)。在示例中,第二进程以超出计算系统的操作约束的第二能力来操作。在另外的示例中,第一进程包括受操作约束限制的功能,但是第二进程包括不受操作约束限制的功能,使得各个功能不兼容以在公共进程内彼此运行。
第一进程和第二进程还操作以将特定数据从软件应用的第一进程传送到第二进程(操作640),以处理所述数据(例如,对所述特定数据执行数据分析操作)。例如,所述特定数据可以包括通过第一进程的用户界面创建或访问的用户创建的数据。另外,可以基于操作约束或系统能力将软件应用的第一进程的可执行代码编译成与第二进程的可执行代码不同的版本。在另外的示例中,软件应用的第一进程(第一版本或类型的进程)在计算系统的操作系统内以兼容模式来操作,并且软件应用的第二进程(第二版本或类型的进程)在计算系统的操作系统内以非兼容模式来操作。
流程图操作继续运行软件应用的第二进程以处理数据(操作650)。在第一示例中,第二进程在计算系统上运行,并且对从第一进程提供的数据执行数据分析操作,使得具有第二能力的第二进程的运行利用不具有第一能力的计算系统的额外资源。在第二进程在计算系统上运行的该示例中,在第一进程与第二进程之间的数据通信可以经由计算系统内的进程间通信机制发生。在第二示例中,第一进程在计算系统上运行,但是第二进程在远程计算系统上运行,并且在第一进程与第二进程之间的数据通信是经由网络通信协议发生的。在另一可选示例中,第二进程还可以在本地计算系统或远程计算系统上发起(例如,开始、启动等)软件应用的第三进程(操作660),使得第三进程作为在软件应用的第二进程下运行的子进程来发起。
流程图操作继续将经处理的数据从软件应用的第二进程传送到第一进程(操作670),诸如将数据从软件应用的第二进程发送和接收到第一进程 (例如,经由进程间通信方法,远程网络通信等)。在特定示例中,计算系统的操作约束包括在计算系统的32位地址空间或64位地址空间中的操作,使得第一进程被编译成32位版本以用于在计算系统的32位地址空间中操作,并且使得第二进程被编译成64位版本以在计算系统的64位地址空间中操作。在另外的具体示例中,第一进程是提供用户界面的前端进程,其中,第二进程是提供数据处理功能的后端进程,使得第一进程以计算系统的硬件的32位指令集来运行,并且使得第二进程以计算系统的硬件的64 位指令集来运行。
在另外的可选示例中,在经处理的数据(例如,在第一进程处接收到的数据)上调用一个或多个扩展组件(操作680),因为扩展组件是按照计算系统约束来调用和运行的。例如,计算系统可以发起并且运行软件应用的扩展进程以调用扩展组件,其中,扩展进程以受限于操作约束的第一能力来操作,并且其中,扩展进程被作为第一进程的子进程来发起。在特定示例中,扩展进程能作为软件应用的插件或组件对象模型(COM)加载项来运行,并且扩展进程能运行用于在软件应用中执行数据处理操作。同样在特定示例中,适用于扩展组件的操作约束可以包括作为32位版本运行以用于在计算系统的32位地址空间中操作。
流程图操作以生成来自软件应用的第一进程的输出结束,其中,所述输出包括根据第二进程的数据分析操作处理和接收的数据(操作690)。例如,可以在由第一进程托管和控制的用户界面中输出由第二进程处理的数据。
尽管上面提供的许多示例具体涉及在x86和x64硬件配置上使用32位和64位软件指令,但是将理解的是,在本文中所讨论的技术可以适于各种其他硬件、软件以及计算系统的其他约束。此外,除了上文明确讨论的那些之外,其他技术可以用于软件应用的多个进程之间的协调和通信。
图7图示了示例性计算系统710的硬件和功能组件的框图,以实施在软件应用的多个进程之间协调数据处理的操作,诸如利用上述示例实现的操作。例如,流程图400、500、600的示例性操作可以在本地(例如,客户端)或远程(例如,服务器)计算设备处或者在其之间执行,以及它们的分布式组件示例。在示例中,软件应用适于使用处理器和存储器设备以如在本文中所讨论的各个进程的操作专门在单个计算设备(例如,计算系统710)上运行。在另一示例中,软件应用适于运行本地计算设备(例如,计算系统710)上的进程中的一些进程,其中,额外数据以及一个或多个子进程的处理是在远程计算设备(例如,远程计算系统740)处运行的。
图7更具体地图示了计算系统710和远程计算系统740的选定硬件和功能组件,以实施用于协调软件应用的多个进程之间的数据处理的操作。应当理解,尽管在图7以及其他附图中将某些硬件和功能组件描绘为单独的系统或服务,但是所述组件中的某些组件的特征可以被集成到单个服务或子系统中。此外,尽管仅配置了一个本地计算系统和一个远程计算系统,但是应当理解,这些系统的特征可以分布在一个或多个计算系统之间的一些设置中(包括在基于云的处理设置中)。
如所示的,计算系统710包括用于执行电子操作(例如,经由指令) 的处理电路711(例如,CPU)和存储器712(例如,易失性或非易失性存储器),用于运行软件应用的多个进程并且根据操作约束来协调软件应用的这样的多个进程之间的数据(例如,实施在图1-6中所描绘的技术),具体地用于运行操作系统720和主题软件应用730;数据存储装置713,其用于存储用于操作和运行操作系统720和主题软件应用730的命令、指令和其他数据;通信电路714,其用于经由有线或无线网络组件与外部网络或设备 (例如,远程计算系统)通信,以操作操作系统720或主题软件应用730;输入设备715(例如,字母数字、基于点、触觉、音频输入设备),其用于从人类用户接收针对操作系统720或主题软件应用730的输入(例如,控制命令);以及输出设备716(例如,视觉、声学、触觉输出设备),以从操作系统720或主题软件应用730向人类用户提供输出(例如,视觉、声学、触觉输出)。
在示例中,计算系统710和操作系统720适于通过处理组件或功能(例如,电路或软件指令)来运行主题软件应用730,诸如用于操作和控制主题软件应用内的进程的进程运行控制功能736;以及数据处理功能738,其用于交换和处理主题软件应用内的数据处理动作。主题软件应用730还包括执行这些处理动作的各个进程和组件的操作,这些动作包括使用第一进程 731、扩展组件732、第二进程733和第三进程734。这些进程和组件731、 732、733、734进一步被指示为由软件应用功能按需运行。
在示例中,计算系统710适于通过各自的特征包括进一步的处理功能用于在主题软件应用的多个进程之间协调数据处理,所述特征包括:用于在进程731、733、734之间处理数据通信的应用处理通信功能722(例如,电路或软件指令);用于存储和提供针对以下项的信息的处理能力数据724 (例如,数据库或数据存储):计算系统710、操作系统720或软件应用730 的操作或功能能力;以及用于存储和提供针对用户偏好的信息(例如,策略、设置、规范)的偏好数据726(例如,数据库或数据存储),用于运行主题软件应用中的各个进程或组件(以及这样的进程或组件的版本)。在另外的示例中,应用处理通信功能可以如下执行与远程进程746、748的通信。
如所示的,远程计算系统740包括处理电路741(例如,CPU)和存储器742(例如,易失性或非易失性存储器),其用于执行电子操作(例如,经由指令)以经由远程软件应用组件745运行主题软件应用的远程子进程;数据存储装置743,其用于存储用于操作和使用主题软件应用的远程子进程的命令、指令和其他数据;以及通信电路744,其用于经由有线或无线网络组件与外部网络或设备通信,用于通信操作控制和数据,以与主题软件应用的远程子进程一起使用。在示例中,远程计算系统740适于协调一个或多个子进程的运行,诸如第二进程746(第一进程731的子进程)和第三进程748(第二进程746或第二进程733的子进程),其中,来自这样的子进程的数据被返回到软件应用730中的父进程。远程处理的其他方面可以由远程计算系统740执行,以在远程系统协调环境中实施在本文中所讨论的技术。
如上所述,当前描述的电子操作的实施例可以以机器或设备(例如,装置)、方法(例如,进程)或者计算机或机器可读介质(例如,制品或装置)形式来提供。例如,实施例可以被实施为存储在机器可读存储介质上的指令,其可以由处理器读取和运行以执行在本文中所描述的操作。机器可读介质可以包括用于以机器(例如,计算机)可读的形式存储信息的任何非瞬态机构。机器可读介质可以包括存储一条或多条指令的单个介质或多个介质(例如,集中式或分布式数据库,和/或相关联的高速缓存和服务器)。
机器可读介质可以包括能够存储、编码或承载用于由机器运行的指令的任何有形介质,并且该有形介质使机器执行本公开的方法中的任意一种或多种方法,或者能够存储、编码或承载由这样的指令使用或者与这样的指令相关联的数据结构。机器可读介质应当被理解为包括但不限于固态存储器、光学和磁性介质以及其他形式的存储设备。机器可读介质的具体示例包括非易失性存储器,包括但不限于,例如:半导体存储器设备(例如,电可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)) 和闪存设备;磁盘,诸如内部硬盘和可移除磁盘;磁光盘;以及光盘。还可以使用传输介质在通信网络上发送或接收指令(例如,经由利用多种传输协议中的任意一种传输协议的网络接口设备)。
尽管本示例涉及各种形式的云服务和基础设施服务网络,但是应当理解,各个服务、系统和设备可以经由各种类型的通信网络通信地耦合。通信网络的示例包括局域网(LAN)、广域网(WAN)、互联网、移动电话网络、普通老式电话(POTS)网络和无线数据网络(例如,Wi-Fi、2G/3G以及4G LTE/LTE-A,或者其他个域网、局域网或广域网)。
用于促进和执行在本文中所描述的电子操作的实施例可以在硬件、固件和软件中的一个或组合中实施。在本说明书中所描述的功能单元或功能可以被称为或标记为组件、处理功能或模块,以便更具体地强调其实施独立性。这样的组件可以由任意数量的软件或硬件形式来体现。例如,组件或模块可以被实施为包括定制电路或现成半导体的硬件电路,诸如逻辑芯片、晶体管或其他分立组件。组件或模块还可以在可编程硬件设备中实施,诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑设备等。组件或模块也可以实施于软件中,以便由各种类型的处理器来运行。可执行代码的识别出的组件或模块例如可以包括计算机指令的一个或多个物理或逻辑块,其可以例如被组织为对象、流程或功能。识别出的组件或模块的可执行文件不需要在物理上位于一起,而是可以包括存储在不同位置的不同指令,当逻辑地连接在一起时,包括组件或模块并且实现组件或模块的所述目的。
实际上,可执行代码的组件或模块可以是单条指令或多条指令,并且甚至可以分布在若干个不同的代码段上、不同的程序中以及若干存储器设备或处理系统上。特别地,所描述的进程的一些方面(诸如命令和控制服务)可以发生在不同的处理系统上(例如,在云托管的数据中心中的计算机中),而不是部署代码的处理系统(例如,在测试计算环境中)。类似地,操作数据可以包含于相应的组件或模块内,并且可以以任何合适的形式体现并且被组织在任何合适类型的数据结构内。操作数据可以被收集为单个数据集,或者可以被分布在包括不同存储设备的不同位置上。
在以上具体实施方式中,可以将各种特征分组在一起以简化本公开。然而,权利要求可能未阐述在本文中所公开的每个特征,因为实施例可以以所述特征的子集为特征。此外,实施例可以包括比特定示例中公开的特征更少的特征。因此,以下权利要求在此被并入到具体实施方式中,其中,权利要求自身作为单独的实施例。

Claims (15)

1.一种计算系统,包括:
处理器;以及
包括在其上体现的指令的存储器设备,其中,所述指令当由所述处理器运行时将所述处理器配置为执行用于在软件应用的多个进程之间协调数据处理的操作,其中,所述操作用于:
运行所述软件应用的第一进程,其中,所述第一进程以受限于所述计算系统的操作约束的第一能力来操作;
产生所述软件应用的第二进程,其中,所述第二进程是作为所述第一进程的子进程来产生的,并且其中,所述第二进程以超出所述计算系统的所述操作约束的第二能力来操作;
将数据从所述软件应用的所述第一进程传送到所述第二进程,其中,所述第二进程适于对所述数据执行数据分析操作;以及
响应于由所述第二进程的所述数据分析操作处理所述数据,将数据从所述软件应用的所述第二进程传送到所述软件应用的所述第一进程。
2.根据权利要求1所述的计算系统,其中,所述操作约束施加了关于在所述计算系统的32位地址空间中运行的约束,其中,所述第一进程被编译成32位版本以用于在所述计算系统的所述32位地址空间中操作,并且其中,所述第二进程被编译成64位版本以用于在所述计算系统的64位地址空间中操作。
3.根据权利要求2所述的计算系统,其中,所述第一进程是提供用户界面的前端进程,其中,所述第二进程是提供数据处理功能的后端进程,其中,所述第一进程以所述计算系统的硬件的32位指令集来运行,并且其中,所述第二进程以所述计算系统的所述硬件的64位指令集来运行。
4.根据权利要求1所述的计算系统,其中,所述计算系统的所述操作约束是至少部分地根据用户定义的参数来施行的,并且其中,所述用户定义的参数指示由所述计算系统的可用硬件或软件能力定义的架构参数。
5.根据权利要求1所述的计算系统,其中,所述操作约束涉及以下中的至少一项:逐位兼容性,操作系统的版本,操作系统内的兼容性模式,所述软件应用的版本,硬件架构,所述计算系统的硬件组件的版本,针对所述计算系统的硬件架构的数据提供者的可用性,或者操作用户偏好。
6.根据权利要求1所述的计算系统,其中,所述指令将所述处理器配置为执行进一步的电子操作:
在所述软件应用的所述第一进程内发起并且运行扩展组件,其中,所述扩展组件以受限于所述计算系统的所述操作约束的所述第一能力来操作。
7.根据权利要求6所述的计算系统,其中,所述扩展组件能作为所述软件应用的所述第一进程内的插件或组件对象模型COM加载项来运行,其中,所述扩展组件能运行用于在所述软件应用中执行数据处理操作,并且其中,所述操作约束是作为32位版本来运行以用于在所述计算系统的32位地址空间中操作。
8.根据权利要求1所述的计算系统,其中,所述指令将所述处理器配置为执行进一步电子操作:
在所述计算系统上运行所述第二进程,其中,所述第二进程的运行包括对从所述第一进程提供的所述数据执行所述数据分析操作;
其中,以所述第二能力对所述第二进程的运行利用了所述计算系统的超出所述第一能力可用的那些资源的额外资源;并且
其中,在所述第一进程与所述第二进程之间的数据传送是经由所述计算系统内的进程间通信机制发生的。
9.根据权利要求1所述的计算系统,其中,所述第一进程在所述计算系统上运行,其中,所述第二进程在远程计算系统上运行,并且其中,在所述第一进程与所述第二进程之间的数据传送是经由网络通信协议发生的。
10.根据权利要求1所述的计算系统,其中,所述第二进程还发起所述软件应用的第三进程,其中,所述第三进程是作为在所述软件应用的所述第二进程下操作的子进程来发起的。
11.一种方法,包括利用计算系统的处理器和存储器运行的多个操作,用于在软件应用的多个进程之间协调数据处理,其中,所述多个操作包括:
运行所述软件应用的第一进程,其中,所述第一进程以受限于所述计算系统的操作约束的第一能力来操作;
产生所述软件应用的第二进程,其中,所述第二进程是作为所述第一进程的子进程来产生的,并且其中,所述第二进程以超出所述计算系统的所述操作约束的第二能力来操作;
将数据从所述软件应用的所述第一进程传送到所述第二进程,其中,所述第二进程适于对所述数据执行数据分析操作;以及
响应于由所述第二进程的所述数据分析操作处理所述数据,将数据从所述软件应用的所述第二进程传送到所述软件应用的所述第一进程。
12.根据权利要求11所述的方法,其中,所述操作约束施加了关于在所述计算系统的32位地址空间中运行的约束,其中,所述第一进程被编译成32位版本以用于在所述计算系统的所述32位地址空间中操作,其中,所述第二进程被编译成64位版本以用于在所述计算系统的64位地址空间中操作,其中,所述第一进程以所述计算系统的硬件的32位指令集来运行,并且其中,所述第二进程以所述计算系统的所述硬件的64位指令集来运行。
13.根据权利要求11所述的方法,其中,所述计算系统的所述操作约束是至少部分地根据用户定义的参数来施行的,并且其中,所述用户定义的参数指示根据所述计算系统的可用硬件或软件能力的架构参数。
14.根据权利要求11所述的方法,其中,所述操作约束涉及以下中的至少一项:逐位兼容性,操作系统的版本,操作系统内的兼容性模式,所述软件应用的版本,硬件架构,所述计算系统的硬件组件的版本,针对所述计算系统的硬件架构的数据提供者的可用性,或者操作用户偏好。
15.根据权利要求11所述的方法,所述多个操作还包括:
在所述软件应用的所述第一进程内发起并且运行扩展组件,其中,所述扩展组件以受限于所述计算系统的所述操作约束的所述第一能力来操作;
其中,所述扩展组件是所述软件应用的插件或组件对象模型COM加载项;并且
其中,所述扩展组件能运行用于在所述软件应用中执行数据处理操作,并且其中,所述操作约束是作为32位版本来运行以用于在所述计算系统的32位地址空间中操作。
CN201880021493.3A 2017-03-31 2018-03-20 针对传统应用兼容性的地址空间拆分系统及方法 Active CN110520842B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/476,563 US10853040B2 (en) 2017-03-31 2017-03-31 Address space splitting for legacy application compatibility
US15/476,563 2017-03-31
PCT/US2018/023210 WO2018183023A1 (en) 2017-03-31 2018-03-20 Address space splitting for legacy application compatibility

Publications (2)

Publication Number Publication Date
CN110520842A CN110520842A (zh) 2019-11-29
CN110520842B true CN110520842B (zh) 2022-09-13

Family

ID=61952976

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880021493.3A Active CN110520842B (zh) 2017-03-31 2018-03-20 针对传统应用兼容性的地址空间拆分系统及方法

Country Status (4)

Country Link
US (1) US10853040B2 (zh)
EP (1) EP3602284A1 (zh)
CN (1) CN110520842B (zh)
WO (1) WO2018183023A1 (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010257033A (ja) * 2009-04-22 2010-11-11 Hitachi Software Eng Co Ltd ユーザログ収集装置、及びユーザログ管理システム
CN104951296A (zh) * 2014-03-28 2015-09-30 英特尔公司 允许一种架构的代码模块使用另一种架构的库模块的架构间兼容模块
CN105094870A (zh) * 2014-05-13 2015-11-25 中标软件有限公司 64位Linux操作系统兼容32位应用软件的方法
CN105184151A (zh) * 2015-09-23 2015-12-23 北京北信源软件股份有限公司 32位进程和64位进程交叉注入方法及装置
CN105302543A (zh) * 2014-07-14 2016-02-03 想象技术有限公司 在64位机器上运行32位操作系统
WO2016028425A1 (en) * 2014-08-21 2016-02-25 Qualcomm Incorporated Programmatic decoupling of task execution from task finish in parallel programs

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7401178B1 (en) * 2003-02-28 2008-07-15 Azul Systems, Inc. Expanded memory space in environments including virtual machines
US7478388B1 (en) 2004-04-21 2009-01-13 Vmware, Inc. Switching between multiple software entities using different operating modes of a processor in a computer system
US8161544B2 (en) 2006-07-19 2012-04-17 Microsoft Corporation Trusted communications with child processes
US7451298B2 (en) * 2006-08-03 2008-11-11 Apple Inc. Processing exceptions from 64-bit application program executing in 64-bit processor with 32-bit OS kernel by switching to 32-bit processor mode
US20110231847A1 (en) 2009-10-28 2011-09-22 Lategan Christopher F Management of multiple instances of legacy application tasks
GB2508826A (en) * 2012-12-11 2014-06-18 Ariadne Insight Ltd A framework for enabling user-defined functions in a spreadsheet application
WO2015137978A1 (en) * 2014-03-14 2015-09-17 Hewlett Packard Development Company, L.P. Semantic restriction
CN107077337B (zh) 2014-12-09 2021-01-15 英特尔公司 用于执行根据两个指令集架构编译的应用编码的系统和方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010257033A (ja) * 2009-04-22 2010-11-11 Hitachi Software Eng Co Ltd ユーザログ収集装置、及びユーザログ管理システム
CN104951296A (zh) * 2014-03-28 2015-09-30 英特尔公司 允许一种架构的代码模块使用另一种架构的库模块的架构间兼容模块
CN105094870A (zh) * 2014-05-13 2015-11-25 中标软件有限公司 64位Linux操作系统兼容32位应用软件的方法
CN105302543A (zh) * 2014-07-14 2016-02-03 想象技术有限公司 在64位机器上运行32位操作系统
WO2016028425A1 (en) * 2014-08-21 2016-02-25 Qualcomm Incorporated Programmatic decoupling of task execution from task finish in parallel programs
CN105184151A (zh) * 2015-09-23 2015-12-23 北京北信源软件股份有限公司 32位进程和64位进程交叉注入方法及装置

Also Published As

Publication number Publication date
US20180285152A1 (en) 2018-10-04
WO2018183023A1 (en) 2018-10-04
CN110520842A (zh) 2019-11-29
US10853040B2 (en) 2020-12-01
EP3602284A1 (en) 2020-02-05

Similar Documents

Publication Publication Date Title
US10956191B2 (en) Systems and methods for customizing and programming a cloud-based management server
EP2798494B1 (en) Virtual channel for embedded process communication
US9223568B2 (en) Designing and cross-configuring software
JP6192534B2 (ja) 仮想アプリケーション拡張ポイント
US8069341B2 (en) Unified provisioning of physical and virtual images
WO2009100156A1 (en) Automatic connections between application components
WO2012142798A1 (zh) 一种应用程序加载的方法及装置
CN114586011A (zh) 将所有者指定的数据处理流水线插入到对象存储服务的输入/输出路径
US20190140894A1 (en) System and method for enabling hybrid integration platform through runtime auto-scalable deployment model for varying integration
US20160321116A1 (en) Translating operating system processes
US9135001B2 (en) Dynamically configuring an integrated development environment
WO2018045926A1 (zh) 用于访问容器的方法和装置
US9411569B1 (en) System and method for providing a climate data analytic services application programming interface distribution package
US20070006121A1 (en) Development activity recipe
CN110520842B (zh) 针对传统应用兼容性的地址空间拆分系统及方法
CN116028163A (zh) 一种容器组的动态链接库调度方法、装置及存储介质
US20230409417A1 (en) Automated generation of application programming interfaces for microservices
US8924963B2 (en) In-process intermediary to create virtual processes
Haja et al. Location, proximity, affinity–the key factors in FaaS
EP1977338B1 (en) External configuration of processing content for script
van Gurp et al. Service grid variability realization
RU2786200C1 (ru) Система и способ установки персонализированного приложения на мобильное устройство
US20220309219A1 (en) Software to industrial device interface
CN114661426A (zh) 容器管理方法、装置、电子设备及存储介质
CN113760384A (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
GR01 Patent grant
GR01 Patent grant