当在运行于相同数据处理系统上的应用程序之间通信时,通过旁路网络栈而在逻辑分区...的制作方法

文档序号:6350883阅读:130来源:国知局
专利名称:当在运行于相同数据处理系统上的应用程序之间通信时,通过旁路网络栈而在逻辑分区 ...的制作方法
技术领域
本发明一般涉及改进的数据处理装置和方法,更具体地说,涉及用于逻辑分区系统中的分区之间的高性能和资源高效通信的装置和方法。
背景技术
在现今的信息技术基础设施中,许多服务器系统支持逻辑分区。逻辑分区系统的许多逻辑分区运行操作系统,在所述操作系统上部署应用程序。这样的应用程序与相同逻辑分区系统内的相同分区内的应用程序、与耦接到逻辑分区系统的设备、以及与耦接到逻辑分区系统的其它系统上的其它应用程序通信。支持这种通信所需的通信协议必须支持面向连接的、有序的、可靠的并且流动受控的数据传送。实现满足这些要求的协议导致资源密集的实现,资源密集的实现要求增强的性能。提供这样的性能则要求复杂并且昂贵的通信硬件。即使在虚拟化服务器环境中,仍然存在这些要求。

发明内容
在一个例证实施例中,提供了数据处理系统中的用于在多个应用程序之间进行通信的方法。例示实施例从始发应用程序接收向目的地应用程序发送数据的请求。例示实施例向虚拟化管理机构发送识别目的地应用程序的位置的请求。响应于从虚拟化管理机构收到响应,例示实施例确定目的地应用程序的位置是否是逻辑分区数据处理系统的多个逻辑分区中的第二逻辑分区。响应于所述位置是第二逻辑分区,例示实施例利用旁路协议把来自始发应用程序的请求发送给目的地应用程序。在其它例示实施例中,提供包含具有计算机可读程序的计算机可用或可读介质的计算机程序产品。当在计算装置上运行时,所述计算机可读程序使计算装置执行上面关于方法例示实施例概述的操作之中的各个操作或其组合。在另一个例示实施例中,提供一种系统/装置。所述系统/装置包含一个或多个处理器以及与所述一个或多个处理器耦接的存储器。所述存储器可包括当被所述一个或多个处理器执行时,使所述一个或多个处理器执行上面关于方法例示实施例概述的操作之中的各个操作或其组合的指令。本发明的这些以及其它特征和优点将在本发明的例证实施例的以下详细说明中描述,或者鉴于本发明的例证实施例的以下详细说明,对本领域的普通技术人员来说将变得明显。


下面参考附图,举例说明本发明的实施例,其中图1是可有利地应用例证实施例的各个方面的数据处理系统的方框图;图2是其中可以实现例证实施例的例证逻辑分区平台的方框图3是图解说明按照例证实施例,具有虚拟化环境的数据处理系统的例证方框
图4描述按照例证实施例,由逻辑分区的应用程序接口进行的操作;以及图5描述按照例证实施例,由逻辑分区系统的虚拟化机构进行的操作。
具体实施例方式例证实施例试图提供一种运行于逻辑分区系统的逻辑分区的多个应用程序之间的高性能、资源高效通信机制。通过提供高吞吐量,以及低等待时间,提高通信的性能。通过增大吞吐量和减小等待时间,逻辑分区系统降低逻辑分区系统的组件的处理要求,比如处理单元、内存、输入/输出带宽等。所述机制包含用于在逻辑分区之间进行通信的旁路传输协议。在运行于逻辑分区上的操作系统之内的通信软件确定何时部署旁路传输协议。于是,如此保持应用程序接口,以无变化地支持现有应用程序,和支持面向连接、可靠、有序并且流动受控的数据传送。 从而,例证实施例可以用在许多不同种类的数据处理环境,包括分布式数据处理环境、单个数据处理设备等中。为了提供说明例证实施例的具体部件和功能的描述的上下文,下面提供了图1和图2,作为其中可以实现例示实施例的各个方面的例证环境。虽然图 1和2之后的说明将主要集中在高性能和资源高效通信机制的单个数据处理设备实现,不过这只是一个例子,而不意图声明或暗示对本发明的特征的任何限制。相反,例示实施例意图包括其中可以实现高性能和资源高效通信机制的分布式数据处理环境和实施例。现在参考附图,尤其是参考图1-2,图中提供了可实现本发明的例示实施例的数据处理环境的例证示图。应理解图1-2只是例子,并不意图声明或暗示对其中可以实现本发明的各个方面或实施例的环境的任何限制。可以做出对所述环境的许多修改,而不脱离本发明的精神和范围。在例示的实施例中,计算机体系结构被实现成硬件和软件的结合。计算机体系结构的软件部分可被称为微代码或毫代码。硬件和软件的结合产生剩余的计算机软件工作于其上的指令集和系统体系结构,比如基本输入/输出系统(BIOS)、虚拟机监视器(VMM)、管理程序、应用程序等。除了通过很少的规定接口之外,相对于计算机软件(BIOS等),借助初始结合创建的计算机体系结构是不变的。现在参考附图,尤其是参考图1,图中描述了可有利地应用例证实施例的各个方面的数据处理系统的方框图。如图所示,数据处理系统100包括处理器单元llla-llln。各个处理器单元llla-llln包括处理器和高速缓冲存储器。例如,处理器单元Illa包含处理器 112a和高速缓冲存储器113a,处理器单元Illn包含处理器112η和高速缓冲存储器113η。处理器单元llla-llln连接到主总线115。主总线115支持包含处理器单元 llla-llln和存储卡123的系统背板120。系统背板120还包含数据开关121和存储控制器/高速缓冲存储器122。存储控制器/高速缓冲存储器122支持存储卡123,存储卡123 包括具有多个双列直插内存模块(DIMM)的本地存储器116。数据开关121连接到位于本地Ι/0(ΝΙ0)背板124内的总线桥117和总线桥118。 如图所示,总线桥118通过系统总线119连接到外设组件互连(PCI)桥125和126。PCI桥 125通过PCI总线1 连接到各种I/O设备。如图所示,硬盘136可通过小型计算机系统接
CN 102576309 A
说明书2/8页

00
6口(SCSI)主机适配器130连接到PCI总线128。图形适配器131可直接或间接连接到PCI 总线128。PCI桥1 经PCI总线127,通过网络适配器1;34和适配器卡插槽为外部数据流提供连接。工业标准体系结构(ISA)总线129经ISA桥132连接到PCI总线128。ISA桥132 通过具有串行连接串行1和串行2的NIO控制器133提供互连能力。NIO控制器133提供软盘驱动器连接、键盘连接和鼠标连接,以使数据处理系统可以经由对应的输入设备接受用户输入的数据。另外,连接到ISA总线1 的非易失性RAM(NVRAM) 140提供用于保存某些种类的数据,以免因系统中断或系统故障,比如电源问题而受损的非易失性存储器。系统固件141也连接到ISA总线129,以便实现初始的基本输入/输出系统(BIOS)功能。服务处理器144连接到ISA总线129,以提供系统诊断或系统服务功能。操作系统(OS)保存在硬盘136上,硬盘136还为供数据处理系统执行的另外的应用软件提供存储。NVRAM 140用于为现场可更换单元(FRU)的隔离保存系统变量和错误信息。在系统启动期间,引导程序加载操作系统,并启动操作系统的运行。为了加载操作系统, 引导程序首先在硬盘136上定位操作系统内核镜像,把OS内核镜像载入内存中,然后跳转到操作系统内核所提供的起始地址。一般,操作系统被加载到数据处理系统内的随机存取存储器(RAM)中。一旦被加载和初始化,操作系统控制程序的运行,并且可提供诸如资源分配、调度、输入/输出控制和数据管理之类的服务。例示实施例可以用利用许多不同硬件配置和软件,比如引导程序和操作系统的各种数据处理系统来体现。例如,数据处理系统100可以是单独的系统,或者是诸如局域网 (LAN)或广域网(WAN)的网络的一部分。如上所述,图1只是一个例子,而不是对本发明的不同实施例的体系结构限制,因此,图1中所示的特定元件不应被看作是对可实现本发明的例示实施例的环境的限制。现在参考图2,图中描述了其中可实现例示实施例的例证逻辑分区平台的方框图。 逻辑分区平台200中的硬件可利用例如图1中的数据处理系统100的硬件来实现。逻辑分区平台200包括分区的硬件230、操作系统202、204、206和208、以及虚拟机监视器210。操作系统202、204、206和208可以是同时运行于逻辑分区平台200上的单个操作系统的多个副本或者是多个不同种类的操作系统。这些操作系统可以利用例如 0S/400来实现,0S/400被设计成与虚拟化机构,比如分区管理固件,例如管理程序接口。在这些例示实施例中,0S/400只是用作一个例子。当然,取决于特定的实现,可以使用其它种类的操作系统,比如Α Χ 和Linux (Aix是国际商用机器公司的注册商标,Linux是 Linus Torvalds的注册商标)。操作系统202、204、206和208分别位于逻辑分区203、205、 207和209中。管理程序软件是可用于实现平台(在本例中,虚拟机监视器210)的软件的例子,并且可从国际商用机器公司获得。固件是保存在存储芯片中的“软件”,所述存储芯片可在无电力的情况下保持其内容,例如是只读存储器(ROM)、可编程ROM(PROM)、可擦可编程ROM(EI3ROM)和电可擦可编程ROM (EEPROM)。逻辑分区203、205、207和209还包括分区固件加载器211、213、215和217。分区固件加载器211、213、215和217可以利用IPL或者初始引导码、IEEE-1275标准开放固件以及可从国际商用机器公司获得的运行时抽象软件(RTAS)来实现。当逻辑分区203、205、207和209被实例化时,虚拟机监视器210把引导码的副本载入逻辑分区203、205、207和209中。之后,控制被转移给引导码,引导码随后加载开放固件和RTAS。与逻辑分区203、205、207和209相关或者分配给逻辑分区203、205、207和209 的处理器随后被分派给逻辑分区的内存,以执行逻辑分区固件。分区的硬件230包括多个处理器232-238、多个系统内存单元M0-M6、多个输入/ 输出(I/O)适配器对8-洸2、以及存储单元270。处理器232-238、内存单元对0-对6、附肌1 存储器298和I/O适配器248-262中的每一个可被分配给逻辑分区平台200内的多个逻辑分区203、205、207和209之一,所述多个逻辑分区203、205、207和209分别对应于操作系统 202,204,206 和 208 之一。虚拟机监视器210为逻辑分区203、205、207和209执行许多功能和服务,以生成和实施逻辑分区平台200的分区。虚拟机监视器210是固件实现的与底层硬件相同的虚拟机。因此,通过虚拟化逻辑分区平台200的所有硬件资源,虚拟机监视器210允许独立的OS 镜像202、204、206和208的同时运行。服务处理器290可用于提供各种服务,比如逻辑分区203、205、207和209中的平台错误的处理。服务处理器290还可充当向厂家,比如国际商用机器公司报告错误的服务代理。可以通过硬件系统控制台280来控制不同逻辑分区的操作。硬件系统控制台280是系统管理员可从其进行各种功能,包括对于不同逻辑分区的资源再分配的独立数据处理系统。图3是图解说明按照例示实施例,具有虚拟化环境的数据处理系统的例证方框图。逻辑分区数据处理系统300具有也可被称为客户端或起始器的多个逻辑分区 (LPAR) 310、320和330。LPAR 310具有带有一组应用程序接口(API) 314的操作系统312的实例和运行的一个或多个应用程序316。LPAR 320具有带有API 3 的操作系统322和一个或多个应用程序326。LPAR 330具有带有API 334的操作系统332和一个或多个应用程序336。虽然逻辑分区数据处理系统300仅仅图解说明了 LPAR 310、320和330,但例示实施例并不局限于此。相反,任意数目的LPAR可以与例示实施例的机构一起应用,而不脱离本发明的精神和范围。LPAR 310、320和330可通过虚拟化层370相互通信。虚拟化层370是进行通信和资源管理,以允许操作系统312、322和332的多个实例同时在逻辑分区数据处理系统300 上运行的软件。虚拟化层370执行诸如处理器时间片共享、内存分配之类的任务。虚拟化层370可以是例如管理程序。应用程序316、3沈和336可包括通过网络382与其它网络应用程序通信的网络应用程序,或者与相同数据处理系统中的其它应用程序通信的本地数据处理系统应用程序。 例如,应用程序316之一与应用程序336之一通信。应用程序316、3沈和336还可以分别具有相关的一组应用程序缓冲器317、327和337。当通过网络382与网络应用程序通信时, 应用程序316、3沈和336利用针对API 314、3M和334的面向连接、可靠、有序传送、流动受控的协议,比如TCP (它是TCP/IP协议组的一部分)以及分别通过适配器318、3观和338 与虚拟化层370和网络层380通信的操作系统312、322和332对网络382进行传输协议呼叫。网络层380是进行网络通信任务的软件。网络层380可以进行诸如端到端分组传送、 服务质量维护、错误控制之类的任务。通过应用程序316、3沈和336利用API 314,324和334访问传输协议,应用程序316,326和336被允许打开与远程应用程序的连接,排队待传送的数据,接收数据,在数据传输结束时关闭连接,等等。从而,传输协议是资源密集的,因为传输协议需要对网络通信来说必需,但是对本地通信来说不必需的传输协议层、网络协议层、链路层和通信适配器驱动器处理。例示实施例提供了运行于虚拟化服务器平台,比如逻辑分区数据处理系统300的 LPAR 310,320和330中的应用程序316,326和336之间的高性能通信。除了提供高性能 (很高带宽和较低等待时间的传输)之外,例示实施例所提供的通信降低了通信的资源要求,比如中央处理器(CPU)使用、内存使用、输入/输出(I/O)带宽等。为了提供高带宽通信,例示实施例提供了资源不太密集的协议(这里称为旁路传输协议)。旁路传输协议包含许多和用于网络通信的传输协议相同的属性,但充分利用了通信在运行于逻辑分区数据处理系统300上的LPAR310、320和330中的应用程序316、3 和336之间的事实。因此,发现远程主机应用程序端点的传输协议要素被保留。远程应用程序端点由一组寻址要素表征, 所述一组寻址要素包括通信适配器的硬件地址。即,与应用程序316、3沈和336的端点相关联的通信适配器318、3观和338的硬件地址可被确定为用于逻辑分区数据处理系统300 内的 LPAR 310、320 和 330 之一。例如,当应用程序316之一对API 314发出数据发送呼叫时,API314通过适配器 318与虚拟化层370进行核对,以确定待通信的应用程序是否在逻辑分区数据处理系统300 的LPAR之一,比如LPAR 320或330内。由于虚拟化层370提供LPAR到LPAR的通信,因此虚拟化层370包含网络端点的所有硬件地址的知识,所述知识可以包含在网络端点的硬件地址的列表中。因此,虚拟化层370可确定目的地是在逻辑分区数据处理系统300之内还是之外。如果虚拟化层370答复待通信的应用程序是例如LPAR 320中的应用程序336之一,那么API314把应用程序336识别为本地应用程序,保存所述识别,并使用旁路传输协议用于应用程序316到应用程序336的通信。在应用程序316和应用程序336之间的通信的持续时间内,API 314只进行一次所述识别,于是进一步降低了资源要求。旁路传输协议利用数据处理系统硬件,比如处理器数据移动能力,与利用完整的传输协议相反,从而提供了高带宽和低等待时间。一旦API 314根据从虚拟化层370接收的标识识别出要使用的协议的类型,API 314随后就把数据从与应用程序316相关联的应用程序缓冲器317转移到与应用程序336 相关联的远程应用程序缓冲器337,如果应用程序336准备好接收该数据的话。如果应用程序336未准备好接收数据,那么API 314可把数据发送给与操作系统332相关联的系统缓冲器(未示出)。因此,API 314只进行把分组从LPAR 310内部传送给LPAR 330所需的那些处理,从而消除了传输协议所需的资源密集处理,比如对网络通信来说必需,但是对本地通信来说不必需的传输协议层、网络协议层、链路层和通信适配器驱动器处理。因此,利用旁路协议可使应用程序数据保持顺序,并且不需要关于数据完整性的任何额外处理,因为已确定数据被指定给逻辑分区数据处理系统300内的目的地。旁路传输协议借助API 314、3M和334的流动应用程序能力,支持流动控制,并且维持了应用程序 API的全兼容性。例如,套接字API具有允许应用程序数据被流控制的套接字缓存能力,基于套接字的应用程序不需要改变以包括地址族。即,不需要对应用程序316、3沈和336的任何变化或修改,应用程序316、3沈和336正常地关闭连接。另外,API 314、3M和334的套接字信息被保留。通过利用被设计成最小化机器资源利用的旁路协议,实现了总体资源效率。旁路协议所提供的资源效率的例子可以是更大的层分组大小,不需要外部通信协议, 比如TCP所需要的重试计时器和算法、完整性检查等。本领域的技术人员会理解,本发明可被具体体现成系统、方法或计算机程序产品。 因而,本发明的各个方面可以采取纯硬件实施例,纯软件实施例(包括固件、驻留软件、微代码等),或者结合这里通常可被称为“电路”、“模块”或“系统”的软件和硬件特征的实施例的形式。此外,本发明的各个方面可以采取包含在一个或多个计算机可读介质中的计算机程序产品的形式,所述一个或多个计算机可读介质具有包含于其中的计算机可用程序代码。可以使用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以是例如(但不限于)电、 磁、光、电磁、红外或半导体系统、设备或装置,或者它们的任意适当组合。计算机可读介质的更具体的例子(非穷举列表)可包括具有一根或多根导线的电连接、可移植计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦可编程只读存储器(EPR0M或闪速存储器)、光纤、便携式光盘只读存储器(⑶-ROM)、光存储装置、磁存储装置、或者上述存储介质的任意适当组合。在本文的上下文中,计算机可读存储介质可以是能够包含或者保存供指令执行系统、设备或装置使用的,或者结合指令执行系统、设备或装置使用的程序的任何有形介质。计算机可读信号介质可包括计算机可读程序代码包含于其中,例如,包含在基带中,或者体现为载波的一部分的传播数据信号。这种传播信号可以采取任意各种形式,包括 (但不限于)电磁、光或者它们的任意适当组合。计算机可读信号介质可以是不是计算机可读存储介质,却能够传递、传播或传送供指令执行系统、设备或装置使用的,或者结合指令执行系统、设备或装置使用的程序的任何计算机可读介质。包含在计算机可读介质上的程序代码可利用任何适当的媒体传送,包括(但不限于)无线媒体、有线媒体、光缆、RF等,或者它们的任意适当组合。可用一种或多种编程语言,包括诸如java 、Smalltalk, C++之类的面向对象的编程语言,和诸如“C”编程语言或类似编程语言之类的常规过程编程语言的任意组合,编写执行本发明的各个方面的操作的计算机程序代码(Java是太阳微系统公司的注册商标)。 程序代码可完全在用户的计算机上运行,部分在用户的计算机上运行,作为独立的软件包运行,部分在用户的计算机上运行并且部分在远程计算机上运行,或者完全在远程计算机或服务器上运行。在后一情况下,远程计算机可通过任意类型的网络,包括局域网(LAN)或广域网(WAN),连接到用户的计算机,或者可实现与外部计算机的连接(例如,利用因特网服务提供商,经因特网实现与外部计算机的连接)。下面参考按照本发明的例示实施例的方法、设备(系统)和计算机程序产品的流程图和/或方框图,说明本发明的各个方面。要明白流程图和/或方框图的每个方框,以及流程图和/或方框图中的各个方框的组合可用计算机程序指令实现。这些计算机程序指令可被提供给通用计算机、专用计算机或者其它可编程数据处理设备的处理器,从而产生机器,以致借助计算机或其它可编程数据处理设备的处理器执行的指令产生实现在流程图和 /或方框图的一个或多个方框中指定的功能/动作的装置。
这些计算机程序指令也可被保存在计算机可读介质中,所述计算机可读介质能够指令计算机、其它可编程数据处理设备或者其它装置按特定方式运行,以致保存在计算机可读介质中的指令产生制成品,所述制成品包括实现在流程图和/或方框图的一个或多个方框中指定的功能/动作的指令。计算机程序指令也可被加载到计算机、其它可编程数据处理设备或其它装置上, 使得在计算机、其它可编程数据处理设备或其它装置上执行一系列的操作步骤,从而产生计算机实现的处理,以致在计算机或其它可编程设备上执行的指令提供实现在流程图和/ 或方框图的一个或多个方框中指定的功能/动作的处理。现在参见图4和5,这些附图提供了概述逻辑分区系统中的分区之间的高性能、资源高效通信的例证操作的流程图。图4描述了按照例示实施例,由逻辑分区的应用程序接口执行的操作。当操作开始时,应用程序接口(API)从始发应用程序接收向目的地应用程序发送数据的请求(步骤402)。API确定与所述请求相关联的目的地应用程序的身份(步骤404),然后向与虚拟化层相关联的虚拟化管理机构发送位置识别请求,以便识别目的地应用程序的位置(步骤406)。API随后接收目的地应用程序的位置识别(步骤408),然后确定目的地应用程序的位置是否是相同数据处理系统的另一个LPAR中的另一个应用程序 (步骤410)。如果在步骤410,目的地应用程序是相同数据处理系统的另一个LPAR中的另一个应用程序,那么API利用旁路协议把来自始发应用程序的请求发送给目的地应用程序 (步骤412),之后终止操作。如果在步骤410,目的地应用程序不是相同数据处理系统的另一个LPAR中的另一个应用程序,那么API利用传输协议,把来自始发应用程序的请求发送给目的地应用程序(步骤414),之后终止操作。图5描述了按照例示实施例,由逻辑分区系统的虚拟化机构进行的操作。当操作开始时,虚拟化机构接收来自数据处理系统的逻辑分区的应用程序接口(API)的请求(步骤50 。虚拟化机构确定所述请求是否是识别目的地应用程序的位置的请求(步骤504)。 如果在步骤504,所述请求是识别目的地应用程序的位置的请求,那么虚拟化机构确定目的地应用程序的位置(步骤506),然后把所述位置发送给发出请求的API (步骤508),之后终止操作。如果在步骤504,所述请求是向另一个应用程序发送分组的请求,那么虚拟化机构把该请求发送给目的地应用程序(步骤510),之后,终止操作。附图中的流程图和方框解说明按照本发明的各个实施例的系统、方法和计算机程序产品的可能实现的体系结构、功能和操作。在这方面,流程图或方框图中的每个方框可代表包含实现指定的逻辑功能的一个或多个可执行指令的模块、程序段或一部分代码。 另外应注意,在一些备选实现中,在方框中表示的功能可不按照附图中所示的顺序发生。例如,接连表示的两个方框事实上可以基本同时地执行,或者各个方框有时可按照相反的顺序执行,取决于所涉及的功能。另外应注意方框图和/或流程图的每个方框,以及方框图和 /或流程图中的各个方框的组合可用实现指定功能或动作的基于专用硬件的系统,或者专用硬件和计算机指令的组合实现。从而,例证实施例提供了用于逻辑分区系统中的分区之间的高性能、资源高效通信的机制。旁路协议透明地避免了用于系统内逻辑分区对逻辑分区通信的传输协议开销。 旁路协议支持数据的流动控制和有序传送,确保数据在系统内传输中的可靠性和完整性, 以及事件的高效通知和处理。通过增大吞吐量和减小等待时间,逻辑分区系统降低了逻辑分区系统的组件的处理要求,比如处理单元、内存、输入/输出带宽等。如上所述,应理解例证实施例可以采取纯硬件实施例、纯软件实施例、或者包含硬件和软件元件的实施例的形式。在一个例证实施例中,各个例示实施例的机制用软件或程序代码实现,所述软件或程序代码包括(但不限于)固件、驻留软件、微代码等。适合于保存和/或执行程序代码的数据处理系统包括通过系统总线与存储元件直接或间接耦接的至少一个处理器。存储元件可包括在程序代码的实际执行期间采用的本地存储器,大容量存储器,和提供至少一些程序代码的临时存储,以便减少在执行期间,必须从大容量存储器取回代码的次数的高速缓冲存储器。输入/输出或I/O装置(包括但不限于键盘、显示器、指示装置等)可直接地或者通过居间的I/O控制器与系统耦接。网络适配器也可与系统耦接,以使数据处理系统能够通过居间的专用或公共网络,与其它数据处理系统或远程打印机或存储装置耦接。调制解调器、线缆调制解调器和以太网卡只是目前可用的各种网络适配器中的一些。出于举例说明的目的,提供了本发明的以上说明。上述说明不是穷尽的,也不意图把本发明局限于公开的形式。对本领域的技术人员来说,许多修改和变化是显而易见的。选择和说明实施例是为了更好地解释本发明的原理和实际应用,和使本领域的其他技术人员能够理解本发明的具有适合于预期的特定应用的各种修改的各个实施例。
权利要求
1.一种逻辑分区数据处理系统中的用于在多个应用程序之间进行通信的方法,所述方法包括与运行于逻辑分区数据处理系统的多个逻辑分区中的第一逻辑分区上的始发应用程序相关联的应用程序接口接收向目的地应用程序发送数据的请求;所述应用程序接口向虚拟化管理机构发送识别目的地应用程序的位置的请求; 响应于从虚拟化管理机构收到响应,所述应用程序接口确定目的地应用程序的位置是否是逻辑分区数据处理系统的多个逻辑分区中的第二逻辑分区;以及响应于所述位置是第二逻辑分区,所述应用程序接口利用旁路协议把来自始发应用程序的请求发送给目的地应用程序。
2.按照权利要求1所述的方法,进一步包括响应于所述位置不是第二逻辑分区,所述应用程序接口利用传输协议把来自始发应用程序的请求发给目的地应用程序。
3.按照权利要求1或2所述的方法,进一步包括所述虚拟化管理机构接收识别目的地应用程序的位置的请求; 所述虚拟化管理机构利用连接到逻辑分区数据处理系统的网络端点的硬件地址的列表,来识别目的地应用程序的位置;以及所述虚拟化管理机构把目的地应用程序的位置发送给所述应用程序接口。
4.按照前述权利要求任意之一所述的方法,其中,数据被发送给与目的地应用程序相关联的应用程序缓冲器。
5.按照权利要求4所述的方法,进一步包括响应于目的地应用程序未准备好接收所述数据,所述应用程序接口把所述数据发送给与运行目的地应用程序的操作系统相关联的系统缓冲器。
6.按照前述权利要求任意之一所述的方法,其中,利用旁路协议降低资源要求,其中, 资源要求是中央处理器(CPU)使用、内存使用或输入/输出(I/O)带宽中的至少一个。
7.按照前述权利要求任意之一所述的方法,其中,利用旁路协议保留发现远程主机应用程序端点的传输协议要素。
8.按照前述权利要求任意之一所述的方法,其中,利用旁路协议保留应用程序接口的套接字信息,从而消除修改多个应用程序的任何需要。
9.一种包含计算机可读存储介质的计算机程序产品,所述计算机可读存储介质具有保存于其中的计算机可读程序,其中,当在计算设备上执行时,所述计算机可读程序使计算设备从始发应用程序接收向目的地应用程序发送数据的请求; 向虚拟化管理机构发送识别目的地应用程序的位置的请求;响应于从虚拟化管理机构收到响应,确定目的地应用程序的位置是否是逻辑分区数据处理系统的多个逻辑分区中的第二逻辑分区;以及响应于所述位置是第二逻辑分区,利用旁路协议把来自始发应用程序的请求发送给目的地应用程序。
10.按照权利要求9所述的计算机程序产品,其中,计算机可读程序进一步使计算设响应于所述位置不是第二逻辑分区,利用传输协议把来自始发应用程序的请求发给目的地应用程序。
11.按照权利要求9或10所述的计算机程序产品,其中,计算机可读程序进一步使计算设备接收识别目的地应用程序的位置的请求;利用连接到逻辑分区数据处理系统的网络端点的硬件地址的列表,来识别目的地应用程序的位置;以及把目的地应用程序的位置发送给应用程序接口。
12.按照权利要求9-11任意之一所述的计算机程序产品,其中,数据被发送给与目的地应用程序相关联的应用程序缓冲器。
13.按照权利要求12所述的计算机程序产品,其中,计算机可读程序进一步使计算设备响应于目的地应用程序未准备好接收所述数据,把所述数据发送给与运行目的地应用程序的操作系统相关联的系统缓冲器。
14.按照权利要求9-13任意之一所述的计算机程序产品,其中,利用旁路协议提供下述至少之一降低资源要求,保留发现远程主机应用程序端点的传输协议要素,或者保留应用程序接口的套接字信息,从而消除修改多个应用程序的任何需要,其中,资源要求是中央处理器(CPU)使用、内存使用或输入/输出(I/O)带宽中的至少一个。
15.一种装置,包括处理器;和与处理器耦接的存储器,其中,所述存储器包括指令,当被处理器执行时,所述指令使处理器从始发应用程序接收向目的地应用程序发送数据的请求;向虚拟化管理机构发送识别目的地应用程序的位置的请求;响应于从虚拟化管理机构收到响应,确定目的地应用程序的位置是否是逻辑分区数据处理系统的多个逻辑分区中的第二逻辑分区;以及响应于所述位置是第二逻辑分区,利用旁路协议把来自始发应用程序的请求发送给目的地应用程序。
16.按照权利要求15所述的装置,其中,所述指令进一步使处理器响应于所述位置不是第二逻辑分区,利用传输协议把来自始发应用程序的请求发给目的地应用程序。
17.按照权利要求15或16所述的装置,其中,所述指令进一步使处理器接收识别目的地应用程序的位置的请求;利用连接到逻辑分区数据处理系统的网络端点的硬件地址的列表,来识别目的地应用程序的位置;以及把目的地应用程序的位置发送给应用程序接口。
18.按照权利要求15-17任意之一所述的装置,其中,数据被发送给与目的地应用程序相关联的应用程序缓冲器。
19.按照权利要求18所述的装置,其中,所述指令进一步使处理器响应于目的地应用程序未准备好接收所述数据,把所述数据发送给与运行目的地应用程序的操作系统相关联的系统缓冲器。
20.按照权利要求15-20任意之一所述的装置,其中,利用旁路协议提供下述至少之一降低资源要求,保留发现远程主机应用程序端点的传输协议要素,或者保留应用程序接口的套接字信息,从而消除修改多个应用程序的任何需要,其中,资源要求是中央处理器 (CPU)使用、内存使用或输入/输出(I/O)带宽中的至少一个。
21.一种包含程序代码装置的计算机程序,当所述程序在计算机上运行时,所述程序代码装置适合于执行权利要求1-8的所有步骤。
全文摘要
提供了一种在多个应用程序之间进行通信的机制。与运行于逻辑分区数据处理系统的多个逻辑分区中的第一逻辑分区上的始发应用程序相关联的应用程序接口(API)接收向目的地应用程序发送数据的请求。API向虚拟化管理机构发送识别目的地应用程序的位置的请求。响应于从虚拟化管理机构收到响应,API确定目的地应用程序的位置是否是逻辑分区数据处理系统的多个逻辑分区中的第二逻辑分区。响应于所述位置是第二逻辑分区,API利用旁路协议把来自始发应用程序的请求发送给目的地应用程序。
文档编号G06F9/50GK102576309SQ201080047486
公开日2012年7月11日 申请日期2010年8月27日 优先权日2009年10月21日
发明者R·沙尔马, S·P·沙尔马 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1