【技术实现步骤摘要】
【国外来华专利技术】
本申请涉及数据处理。
技术介绍
某些服务器,例如企业服务器或者其他的大型服务器,一般可以被刻画为请求处理引擎,因为它们处理大量通常较小的用户请求,这些用户请求属于用户会话。处理请求通常涉及在服务器上执行的运行时系统(例如Java虚拟机)中运行用户代码(例如Java服务器小程序(servlet)或企业Java Bean)。在这种服务器中的可扩展性(scalability)传统上是通过使用线程来实现的——例如使用多线程虚拟机(virtual machine,VM)来处理相应于许多个用户会话的请求。但是系统鲁棒性要求用户会话之间有很强的隔离,当大量用户会话运行于单个VM中时,这可能很难实现。操作系统能够为进程提供近乎完美的隔离。在某些操作系统中,崩溃的进程(crashed process)将不会影响其他的进程,并且将不泄漏或遗留被分配的资源。在概念上,有可能通过为每一个用户会话分配一个操作系统(OS)进程并在所分配的进程内为该用户会话运行VM来隔离用户会话,并从而提高服务器的鲁棒性。但是,在某些情形下(例如在存在大量用户会话的情形下),由于在相应大量的进程之间切换将导致的OS调度开销以及由于这种方法将消耗的资源所致,这种方法可能并不实用。OS进程一般未被设计成像用户会话那样细致地对实体建模。
技术实现思路
本专利技术提供了方法和装置,包括计算机程序产品,它们实施了用于共享数据并在用户会话之间提供隔离的技术。在一个总体方面,这些技术的特征是一种计算机程序产品,所述计算机程序产品可运行,以便使得数据处理装置接收第一数据对象的标识,该第一数据对象是第一运行时类的实例; ...
【技术保护点】
一种计算机程序产品,存储在机器可读介质上,所述计算机程序产品可运行,以便使得数据处理装置:为用户会话初始化运行时系统;在共享存储器区域中创建数据对象的共享闭包,数据对象的所述共享闭包由第一数据对象和一个或更多个被引用的数据对象的传递闭包组成,每一个被引用的数据对象均被所述第一数据对象引用;接收相应于所述用户会话的请求;从操作系统进程的集合中选择第一进程;将所述运行时系统绑定到所述第一进程;以及将数据对象的所述共享闭包与所述运行时系统相关联。
【技术特征摘要】
【国外来华专利技术】US 2004-5-20 10/851,7941.一种计算机程序产品,存储在机器可读介质上,所述计算机程序产品可运行,以便使得数据处理装置为用户会话初始化运行时系统;在共享存储器区域中创建数据对象的共享闭包,数据对象的所述共享闭包由第一数据对象和一个或更多个被引用的数据对象的传递闭包组成,每一个被引用的数据对象均被所述第一数据对象引用;接收相应于所述用户会话的请求;从操作系统进程的集合中选择第一进程;将所述运行时系统绑定到所述第一进程;以及将数据对象的所述共享闭包与所述运行时系统相关联。2.如权利要求1所述的计算机程序产品,其中,所述运行时系统包含虚拟机。3.如权利要求2所述的计算机程序产品,其中,所述虚拟机是Java虚拟机或公共语言运行时虚拟机。4.如权利要求1到3中的任何一个所述的计算机程序产品,其中,数据对象的所述共享闭包包括相应于所述用户会话的用户上下文信息。5.如权利要求1到4中的任何一个所述的计算机程序产品,其中,将所述共享闭包与所述运行时系统相关联包含将所述共享闭包绑定到所述第一进程。6.如权利要求5所述的计算机程序产品,其中,将所述共享闭包绑定到所述第一进程包含将所述共享闭包映射到所述第一进程的地址空间中。7.如权利要求5或6所述的计算机程序产品,其中,绑定所述共享闭包包含防止对所述共享闭包的写访问。8.如权利要求6或权利要求6和7所述的计算机程序产品,其中,所述计算机程序产品还可运行,以便使得所述数据处理装置在检测到对所述共享闭包中的所述数据对象之一的首次写访问时,将所述共享闭包复制到所述第一进程的地址空间中。9.如权利要求5到8中的任何一个所述的计算机程序产品,其中,将所述共享闭包绑定到所述第一进程包含将所述共享闭包复制到所述第一进程的地址空间中。10.如前面的权利要求中的任何一个所述的计算机程序产品,其中,所述指令还可运行,以便使得所述数据处理装置为第二用户会话初始化第二运行时系统;接收相应于所述第二用户会话的第二请求;从所述操作系统进程的集合中选择第二进程;将所述第二运行时系统绑定到所述第二进程;以及将数据对象的所述共享闭包与所述第二运行时系统相关联。11.一种计算机程序产品,存储在机器可读介质上,所述计算机程序产品可运行,以便使得数据处理装置将相应于用户会话的用户上下文存储在共享存储器区域中;接收相应于所述用户会话的请求;从操作系统进程的集合中选择进程,该进程包含地址空间;从运行时系统的集合中选择运行时系统;将所述运行时系统绑定到所述进程;以及将所述用户上下文与所述运行时系统相关联。12.如权利要求11所述的计算机程序产品,其中,所述运行时系统的集合中的每一个运行时系统均包含虚拟机。13.如权利要求12所述的计算机程序产品,其中,所述虚拟机是Java虚拟机或公共语言运行时虚拟机。14.如权利要求11到13中的任何一个所述的计算机程序产品,其中,所述用户上下文包含共享闭包,所述共享闭包由第一数据对象和被所述第一数据对象引用的数据对象的传递闭包组成。15.如权利要求11到14中的任何一个所述的计算机程序产品,其中,所述运行时系统被存储在共享存储器区域中,并且其中,将所述运行时系统绑定到所述进程包含将所述共享存储器区域的相应于所述运行时系统的部分映射到所述进程的地址空间中。16.如权利要求11到15中的任何一个所述的计算机程序产品,其中,将所述用户上下文与所述运行时系统相关联包含将所述用户上下文绑定到所述进程。17.如权利要求16所述的计算机程序产品,其中,将所述用户上下文绑定到所述进程包含将所述用户上下文映射到所述进程的地址空间中。18.如权利要求11到17中的任何一个所述的计算机程序产品,其中,所述计算机程序产品还可运行,以便使得所述数据处理装置在检测到对所述用户上下文的首次写访问时,将所述用户上下文复制到所述进程的地址空间中。19.如权利要求11到18中的任何一个和权利要求16所述的计算机程序产品,其中,将所述用户上下文绑定到所述进程包含将所述用户上下文复制到所述进程的地址空间中。20.如权利要求11到19中的任何一个和权利要求16所述的计算机程序产品,其中,所述指令还可运行,以便使得所述数据处理装置将所述用户上下文从所述进程解除绑定。21.如权利要求20所述的计算机程序产品,其中,将所述用户上下文从所述进程解除绑定包含将所述用户上下文复制到所述共享存储器区域。22.如权利要求20或21所述的计算机程序产品,其中,将所述用户上下文从所述进程解除绑定包含确定在所述共享存储器区域中是否存在所述用户上下文的先前版本;和如果在所述共享存储器区域中存在所述用户上下文的先前版本,则在所述共享存储器区域中创建所述用户上下文的新版本。23.如权利要求11到22中的任何一个和权利要求16所述的计算机程序产品,其中,所述指令还可运行,以便使得所述数据处理装置在检测到所述进程被阻塞时将所述运行时系统从所述进程解除绑定;以及将所述用户上下文从所述进程解除绑定。24.如权利要求23所述的计算机程序产品,其中,检测所述进程被阻...
【专利技术属性】
技术研发人员:奥利弗施米特,诺伯特库克,埃德加洛特,马丁斯特拉斯伯格,阿尔诺希尔根伯格,拉尔夫施梅尔特,
申请(专利权)人:SAP股份公司,
类型:发明
国别省市:DE[德国]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。