CN102681836B - 针对大量并发用户进行扩展的系统和方法 - Google Patents

针对大量并发用户进行扩展的系统和方法 Download PDF

Info

Publication number
CN102681836B
CN102681836B CN201110434451.2A CN201110434451A CN102681836B CN 102681836 B CN102681836 B CN 102681836B CN 201110434451 A CN201110434451 A CN 201110434451A CN 102681836 B CN102681836 B CN 102681836B
Authority
CN
China
Prior art keywords
user
application
computer
context
function
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
CN201110434451.2A
Other languages
English (en)
Other versions
CN102681836A (zh
Inventor
W.迪特里克
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.)
SAP SE
Original Assignee
SAP SE
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 SAP SE filed Critical SAP SE
Publication of CN102681836A publication Critical patent/CN102681836A/zh
Application granted granted Critical
Publication of CN102681836B publication Critical patent/CN102681836B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • G06F16/972Access to data in other repository systems, e.g. legacy data or dynamic Web page generation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/142Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/146Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Abstract

公开的实施例提供可以生成用于计算机应用的多个用户中的每一个的用户会话的会话标识的系统、机器可读介质和方法。可以使用会话标识从外部存储器检索与用户相关的cookies。可以使用所检索的cookies恢复用户上下文。可以基于恢复的用户上下文调用功能计算逻辑。可以根据数据库中的数据组装状态表示。当由调用的功能计算逻辑执行的功能完成时,可以将用户上下文和所组装的状态表示作为每个用户的cookie存储在外部存储器中。可以基于所组装的状态表示、用户上下文和来自所访问数据库的数据生成HTML代码。通过采用执行实际数据库改变的、可以包括加锁管理和更新任务处理的一致性框架的无状态实现,可以对有状态功能计算逻辑进行重用。

Description

针对大量并发用户进行扩展的系统和方法
技术领域
公开的主题涉及用于将硬件资源有限的计算机系统从支持少量并发用户扩展(scaling)到支持大量并发用户的系统和方法。具体来说,公开的主题涉及通过转换传统计算机程序(如ABAPTM程序)的状态管理和一致性处理进行扩展、以便利用有限硬件资源支持大量并发用户的软件架构。
背景技术
诸如ABAPTM应用的特定计算机应用是“有状态”(stateful)应用,在有状态应用中,将用户会话的状态作为用户特定会话变量的集合(collection),在应用服务器的主存储器中进行维护。用户特定会话变量的设置(set)甚至可以是对特定会话唯一的。当存在已知数量、或至少是可预测数量的并发用户时,有状态应用是高效率的且能提供卓越的性能,使正确的硬件规模估计成为可能。特别是,在那些情况下,有状态应用以极高的效率处理持续时间相对较短、频率非常高的请求,所述请求甚至可以工作在非常大的会话上。然而,在诸如云计算和软件即服务(software-as-a-service)的环境中,并发用户的数量范围可以从数个到许多个,并且并发用户的数量一般是未知量;在这样的环境中,有状态应用可能由于存储器约束而无法提供同样的效率且可能性能低下。并且,在提供云计算和软件即服务的活动中,一般来说用户会话可能会经历相当稀少的请求(即,较长的思考时间),因此用户会话会在较长的时间段内预留计算资源而不加以利用,这会造成拥塞和对计算和存储器资源的低效利用。
“无状态”的计算机应用更适合在云计算和软件即服务环境中使用。无状态应用是这样的计算机应用:它不会分配专用的应用服务器主存储器来(在用户请求之间)维护用户会话的状态,而是使用诸如数据库的外部存储器来在持久化存储器中维护用户会话的状态。如果可以将有状态应用转换成无状态应用以利用“云计算”环境的优点,将会是有益的。
发明人认识到这些益处,并开发了一种解决方案,用于将有状态应用转换成无状态应用,从而允许将有状态应用扩展成用于大量并发用户,并更有效率地处理在连续请求之间具有较长延迟的会话。
发明内容
根据本发明的一个方面,提供一种将有状态计算机应用转换成无状态应用以帮助扩展从而支持计算机系统的大量并发用户的方法,包括:由运行计算机应用的处理器为该计算机应用的多个用户中的每个用户生成用户会话的会话标识;使用会话标识从外部存储器检索与所述多个用户当中的用户相关的cookies;由所述处理器使用所检索的cookies恢复用于该计算机应用的多个用户当中的用户的用户上下文;基于恢复的用户上下文调用功能计算逻辑;根据数据库中的数据组装该用户上下文的状态表示子集;当完成由计算机应用功能计算逻辑执行的功能时,将用户上下文和所组装的状态表示作为所述多个用户中的每一个的cookie存储在外部存储器中,其中,所述会话ID是主关键字;以及由用户的用户接口基于所组装的状态表示、用户上下文和来自所访问数据库的数据,生成HTML代码。
根据本发明的另一个方面,提供一种将有状态计算机应用转换成无状态应用以帮助将计算机系统扩展为支持大量并发用户的计算机系统,包括:终端,用于接收输入和输出数据;数据库,用于存储数据;以及应用服务器,其具有处理器,该处理器被配置成:为计算机应用的多个用户中的每一个的用户会话生成会话标识;使用会话标识从外部存储器检索与所述多个用户中的每一个相关的cookies;使用检索的cookies恢复该计算机应用的多个用户中的每一个的用户上下文;基于恢复的用户上下文调用功能计算逻辑;根据数据库中的数据组装用户上下文的状态表示子集;当由功能计算逻辑执行的功能完成时,将用户上下文和所组装的状态表示作为所述多个用户中的每一个的cookie存储在外部存储器中,其中,所述会话ID是主关键字;以及由用户接口基于所组装的状态表示、用户上下文和来自所访问数据库的数据,生成HTML代码。
根据本发明的另一个方面,提供一种包含程序指令的机器可读存储介质,所述程序指令用于导致计算机处理器运行用于将计算机系统扩展为支持大量并发用户的方法,该方法包括:为该计算机应用的多个用户中的每一个的用户会话生成会话标识;使用会话标识从外部存储器检索与所述多个用户中的每一个相关的cookies;使用检索的cookies恢复该计算机应用的多个用户中的每一个的用户上下文;基于恢复的用户上下文调用功能计算逻辑;根据数据库中的数据组装用户上下文的状态表示子集;当由功能计算逻辑执行的功能完成时,将用户上下文和所组装的状态表示作为所述多个用户中的每一个的cookie存储在外部存储器中,其中,所述会话ID是主关键字;以及由多个用户中的每一个的用户接口基于所组装的状态表示、用户上下文和来自所访问数据库的数据,生成HTML代码。
根据本发明的另一个方面,提供一种用于以无状态实现代替有状态实现、以提供扩展计算机应用以供大量用户使用的进一步功能的方法,包括:响应于对计算机应用的请求生成计算机会话标识,该计算机会话标识包括与请求计算机应用的计算机相关的信息;从与请求计算机相关的信息形成用户上下文;创建具有该用户上下文的状态表示和计算机会话标识的cookie;从数据库访问数据以运行计算机应用功能;当运行与计算机应用相关的功能时,组装包括计算机会话的用户上下文的修正的状态表示;当由计算机应用执行的功能完成时,修正cookie以包括所组装的状态表示,其中,所述会话ID是用于从外部存储器检索cookie的主关键字;将修正后的cookie存储在外部存储器中;以及由用户接口基于所组装的状态表示、用户上下文和来自所访问数据库的数据,生成HTML代码。
根据本发明的另一个方面,提供一种用于以无状态实现代替有状态实现、以提供扩展计算机应用以供大量用户使用的进一步功能的系统,包括:终端,用于接收输入和输出数据;数据库,用于存储数据;以及具有处理器的应用服务器,该处理器被配置成:响应于对计算机应用的请求生成计算机会话标识,该计算机会话标识包括与请求计算机应用的计算机相关的信息;从与请求的计算机相关的信息形成用户上下文;创建具有该用户上下文的状态表示和计算机会话标识的cookie;从数据库访问数据以运行计算机应用功能;当运行与计算机应用相关的功能时,组装包括计算机会话的用户上下文的修正的状态表示;当由计算机应用执行的功能完成时,修正cookie以包括所组装的状态表示,其中,所述会话ID是用于从外部存储器检索cookie的主关键字;将修正后的cookie存储在外部存储器中;以及由用户接口基于所组装的状态表示、用户上下文和来自所访问数据库的数据,生成HTML代码。
根据本发明的另一个方面,提供一种包含程序指令的机器可读存储介质,该程序指令用于导致计算机处理器运行用于扩展计算机系统以支持大量用户的方法,该方法包括:响应于对计算机应用的请求生成计算机会话标识,该计算机会话标识包括与请求计算机应用的计算机相关的信息;从与请求计算机相关的信息形成用户上下文;创建具有该用户上下文的状态表示和计算机会话标识的cookie;从数据库访问数据以运行计算机应用功能;当运行与计算机应用相关的功能时,组装包括计算机会话的用户上下文的修正的状态表示;当由计算机应用执行的功能完成时,修正cookie以包括所组装的状态表示,其中,所述会话ID是用于从外部存储器检索cookie的主关键字;将修正后的cookie存储在外部存储器中;以及由用户接口基于所组装的状态表示、用户上下文和来自所访问数据库的数据,生成HTML代码。
附图说明
图1示出了根据示例性实施例的用于将有状态计算机应用转换成无状态计算机应用的示例性无状态模式(pattern)。
图2A和图2B分别示出了根据示例性实施例的、在应用环境和服务器环境中的软件框架的示例性组件图,所述软件框架用于将计算机系统扩展到支持大量并发用户。
图3示出了根据示例性实施例的、在应用环境和服务器环境中用于将计算机系统扩展到支持大量并发用户的示例性过程。
图4示出了根据示例性实施例的、用于实现将计算机系统扩展到支持大量并发用户的过程的系统图。
具体实施方式
实施例可以采用现有的有状态的基于web(网络)的应用,如ABAP应用,并通过将诸如无状态一致性处理和手动状态管理模式的技术组合分别应用于web应用和批量作业,来将有状态的基于web的应用转换成无状态应用。
此处描述的是用于将有状态计算机应用转换成无状态应用、从而使大量并发用户可以使用有限硬件资源的系统、机器可读存储介质和方法的实施例。在示例性方法中,处理器可以为计算机应用的多个用户中的每一个的用户会话生成会话标识。可以使用会话标识(ID)从外部存储器检索与多个用户中的每一个相关的cookies(小型文字档案或小甜饼)。可以使用检索的cookies为计算机应用的多个用户中的每一个恢复用户上下文。用户上下文可以是应用用来处理请求的“主存储器内容”,并且包括本地数据结构、用户输入、高速缓存以及可能的相关数据库信息。可以基于恢复的用户上下文调用功能计算逻辑(functional computing logic),也可称为业务逻辑。然后可以组装(assemble)用户上下文的状态表示子集。状态表示可以是用户上下文中足以重建全部用户上下文的部分。状态表示可以被理解为用户上下文的压缩版本。当完成了由调用的功能计算逻辑执行的功能时,所组装的状态表示可以作为多个用户中的每一个的cookies存储在外部存储器中,在这种情况下,会话ID可以作为主关键字。基于用户上下文以及来自所访问的数据库的数据,可以由用户接口层生成HTML代码。
实施例可以提供一种系统,其可以包括用户终端、数据库和应用服务器。用户终端可以接收输入并输出数据。数据库可以存储数据。应用服务器可以具有处理器,该处理器被配置成为计算机应用的多个用户中的每一个的用户会话生成会话标识。处理器可以使用会话标识从外部存储器检索与多个用户中的每一个相关的cookies。可以使用检索的cookies恢复计算机应用的多个用户中的每一个的用户上下文。可以基于恢复的用户上下文调用功能计算逻辑。可以由处理器组装用户上下文的状态表示子集。当由处理器根据调用的功能计算逻辑执行的功能完成时,所组装的状态表示可以作为多个用户中的每一个的cookie存储在外部存储器中。在存储组装的状态表示时,会话ID可以作为主关键字。基于用户上下文以及来自所访问的数据库的数据,可以通过用户接口生成HTML代码。
并且,所描述的实施例提供一种包含计算机程序指令的机器可读存储介质,所述计算机程序指令用于实现将有状态计算机应用转换成无状态应用、从而使大量并发用户可以使用有限硬件资源的方法。
本公开文件中使用的术语包括:“状态存储器”,其可以指代保存服务器侧cookies的持久化存储器;“应用数据库”,其可以指代用作应用的持久性存储器的数据库(DB);“用户上下文”,如在ABAP应用中的用户上下文,可以包括系统变量和应用变量(例如,全局变量和静态变量);“状态表示”可以是足以重构用户上下文的全部用户上下文的子集;“对话步骤”(dialog step)可以是系统对用户的单个请求。应当理解,公开的实施例可以指在服务器上运行的任意web应用,但是,为了便于解释,可能会参照在诸如ABAP服务器的服务器上运行的ABAP应用这样的特定示例。其他示例包括二层应用;通过将UI从计算逻辑层分离、以使UI层在浏览器中运行而计算逻辑层在应用服务器上运行,可以将二层应用变换成富互联网应用(Rich Internet Application,RIA)互联网应用。这些应用可以采用像Microsoft.Net和Java那样的编程环境。处理器可以运行功能计算逻辑或业务逻辑,以提供对数据的特定算子,并且功能计算逻辑或业务逻辑可以涵盖任何数量的进程,如开发票、会计、人力资源等等。
无状态模式可以指代在诸如ABAP服务器的服务器上执行的无状态请求处理。无状态请求处理可以在计算机应用不分配主存储器、而是可以使用诸如数据库的外部存储器来在对话步骤之间在持久化存储器中维护用户会话的状态时发生。此外,术语“无状态”可以指仅仅在实际处理请求时才阻塞(block)或预留服务器上的资源。在服务器结束请求处理(即,向客户端发送了响应)之后,所有资源,特别是用户上下文可以被释放(free)或返回(return)以供其他请求重用。
图1示出了根据示例性实施例的用于将有状态计算机应用转换成无状态计算机应用的无状态模式的示例性应用。为了克服与有状态应用扩展相关的不足,用于维护用户状态的方法和用于一致性处理的方法(例如,入队加锁(Enqueue lock)和更新任务)都可能需要转换,以便作为无状态应用来工作。如图1的无状态模式所示,可以采取不同的动作来完成所述转换。
图1中示出了无状态模式的工作原理。实现的计算机系统可以包括应用服务器105、状态存储器112和应用数据库(DB)114。应用服务器105可以包括计算机应用106。计算机应用106可以包括用户接口(UI)层107和功能计算逻辑层109。用户接口层107可以导致在工作站103上呈现图形用户接口。各个层107和109可以包括模块,所述模块包含可由工作站103中的处理器运行的软件代码。在图1的过程100中,在步骤110,UI层107可以接收在运行于工作站103上的处理器的控制下从浏览器发出的请求。该请求可以包括与用户相关的数据(例如,密码、登录ID等等)。功能计算逻辑层109可以是与诸如开发票、人力资源管理等等的功能性计算机进程相关的可执行代码。然而,功能计算逻辑层日志可以与任何适当的进程,如文件管理,相关。
过程100可以通过在计算机处理器上运行的UI层107来验证用户,并生成会话ID。会话ID可以由运行在应用服务器105上的UI框架(例如,业务服务器页面(Business ServerPages,BSP)应用框架)、结合在UI层107的处理来生成。在步骤120,运行UI层107的处理器可以使用会话ID从例如状态存储器112检索与会话ID的数据相关联的cookies。状态存储器112可以是能够存储服务器侧cookies并且可由处理器访问的任何数据存储器。由于用户会话ID可以是少量数据并且可以容易地在应用服务器105内的函数之间传递,所以当在状态存储器112中存储cookie时可以将用户会话ID用作主关键字。
处理器可以使用UI层107,从自cookies导出的状态表示恢复出用户上下文(或状态)。如上所述,用户上下文可以由系统变量和应用变量组成。由于系统变量(SY变量)可能不是由应用直接设置的,所以可以使用SY变量的应用的组件(功能计算逻辑层109或用户接口层107)可以被配置成在逐个情况的基础上利用相应的SY变量。此外,由于大多数SY变量仅仅在单个对话会话期间消费,所以发生与SY变量相关的错误的可能性相当低。
在步骤130,基于在检索的cookie中存储的状态表示,UI层107的功能可以使得处理器通过设置与经验证的用户相关的所有必需的函数模块的静态变量、全局变量等等,来恢复用户上下文。在步骤140,可以使用恢复的用户上下文调用功能计算逻辑109。
在步骤150,功能计算逻辑109可以使得处理器访问应用数据库114和/或可以基于所请求的供工作站103使用的数据设置或释放(release)锁。锁可以由锁管理器,例如SAP入队服务器,来管理。应用数据库114可以包含由锁管理器运行的锁存储器,例如数据库表,该锁管理器维护每个会话的所有锁的状态。在功能计算逻辑109完成检索数据之后,在步骤160,UI层107的功能可以使得处理器组装当前用户会话的状态表示。在组装了状态表示之后,在步骤170,可以将用户上下文作为cookie存储在状态存储器112中。在步骤180,UI 107可以生成包含工作站103请求的数据的HTML,以便由工作站103上的浏览器绘制(render)。UI 107在生成供浏览器绘制的HTML时可以使用已恢复的用户上下文。
将有状态应用转换成无状态应用的第一步可以是对结构重组(regroup),以使其遵循无状态模式。重组可能要求修改功能计算逻辑层109和用户接口层107。此外,可以添加用于步骤120、130、160和170的新编码以对状态进行管理(通过应用状态管理模式)。如图1中所示,计算机应用106可以被从概念上分成用户接口107和功能计算逻辑109。手动状态管理可以包括两个阶段:阶段1和阶段2。在阶段1期间(包括图1的步骤110-140),可以从自例如外部状态存储器112读取的压缩的状态表示恢复出用户上下文,以便功能计算逻辑109能被基本无变化地调用。在阶段2期间(图1的步骤160-170),可以使用用户上下文组装压缩的状态表示,并在外部状态存储器112上保持(例如保存)该压缩的状态表示。在两种情况下,都可以使用会话ID来识别外部存储器112上的状态表示。
下面参照图2A提供对应用106的转换的更详细解释。图2A示出了根据示例性实施例的在应用环境中用于将计算机系统扩展为支持大量并发用户的软件框架的示例性组件图。在计算机处理器上运行的计算机应用210可以包括两个软件层:用户接口(UI)层210-1和功能计算逻辑(FL)层210-2。计算机应用210还可以生成批量作业210-3。UI层210-1可以生成HTML页面,该HTML页面可以由客户端上的浏览器绘制(直接或间接地使用例如插件)。HTML页面可以基于无状态计算机应用210的框架(如业务服务器页面(BSP)应用框架)内的服务器侧编程模型来创建。
计算机应用210可以是可以包括下列组成部分的无状态应用:页面、页面片段、导航结构、应用类、MIME对象、主题和/或其他特征。主题可以是用于针对内容分类和确定目标的预定义的内容类别,并且可以供用户订阅(subscription)。无状态业务服务器页面还可以以无状态方式处理HTTP请求。计算机应用210可以生成HTML页面,并且在特定示例中HTML页面还可以被看作是业务服务器页面应用的组成部分。所生成的HTML页面可以包括布局部分、事件处理机(handler)以及页面属性和类型定义。在一些实施例中,计算机应用210可以是可以利用诸如CL_BSP_EXTENSION的HTTP请求处理机的任何形式的web应用。例如,web应用可以是门户、在线商店等等。在ABAP服务器中“无状态模式”技术的基础可以说是对业务服务器页面的无状态请求处理的利用。
在有状态条件下,图2A的计算机系统可以包括应用服务器220,其可以托管(host)计算机应用210。然而,当被转换时,应用210可以包括附加的数据和可执行代码。例如,经转换的应用215可以包括转换的用户接口(UI)215-1、转换的功能计算逻辑215-2和转换的批量作业215-3。此外,应用服务器220可以运行一致性框架245以支持对转换的应用的一致性处理,其中该一致性框架245可以包括无状态加锁框架245-1和无状态更新任务框架245-2。此外,清理作业245-4可以从一致性框架使用的外部存储器和/或从状态存储器中去除不再活动的会话的数据。
转换的应用的UI 215-1可以是无状态的,并且可以与诸如BSP应用的应用交互。UI215-1还可以包括由提供状态处理的附加可执行代码提供的附加功能。例如,属于UI 215-1的BSP应用的状态也可以作为状态表示的一部分而被包括。转换的应用215的批量作业215-3也可以包括用于维护一致性处理的附加功能。类似地,转换的应用215的功能计算逻辑215-2可以包括用于一致性处理和状态处理两者的附加功能。
为了应用状态管理模式(其可以应用于图1的步骤120、130、160和170),可以对将被转换的应用进行手动改变。为了检索状态表示(阶段2)并从状态表示重建上下文(阶段1),可以向功能计算逻辑215-2添加附加编码。然后(例如在图1的步骤130和160期间)调用该编码以分别检索和设置上下文。例如,可以向类和/或函数组添加用于串行化对象的内部状态的方法以及用于从串行化的数据重建那些对象的特殊构造器(constructor),从而使函数模块可以检索/设置函数组的状态(即,函数组的有范围的变量(variables withscope function group))。
在转换的应用215中,可能仅仅需要对例如在步骤140处理锁的方式进行细微的修改。这些修改可以是例如以对无状态加锁框架提供的语义兼容的函数的调用,来替换SAP入队加锁调用。
无状态加锁框架245-1可以提供所有现有函数的替代物,特别是试图设置锁(例如,用S_ENQUEUE代替SAP应用服务器提供的ENQUEUE)、去除锁(例如,用S_DEQUEUE代替DEQUEUE)以及去除给定会话的所有锁(例如,用S_DEQUEUE_ALL代替DEQUEUE_ALL)的函数可以具有替代物。上述函数中的每一个——除了原函数的参数之外——还可以包括新的参数LUW_ID。LUW是工作的逻辑单位(logical unit of work),可以在某一时间跨度内是活动的,在该时间跨度期间任意事务以全有或全无的方式更新。例如,可以将会话ID用作LUW_ID。会话ID可以使用例如RUNTIME对象,其中(RUNTIME->会话ID),从例如在应用服务器215上运行的BSP应用检索得到。
无状态加锁框架的实现可以包括锁管理器和锁存储器。锁存储器可以是具有复合主关键字的数据库表,该复合主关键字由计算机名、LUW_ID和时间戳组成。时间戳可以包含锁被设置的时间点,并且计算机名是调用无状态加锁框架的应用服务器的唯一标识。利用该数据结构,可以借助于公共的LUW_ID容易地识别与用户会话相关联的所有锁。此外,可以基于时间、按照设置锁的计算机来选择锁。可以例如使用异步远程函数调用来实现无状态加锁框架245-1的异步行为。
在转换的应用215中,可以在图1的步骤140修改处理更新任务的方式。因此,无状态更新任务框架245-2可以提供下列函数的兼容代替物:
+CALL FUNCTION...IN UPDATE TASK——如果例如使用本语句调用函数模块,则该函数模块可以被标记为使用特殊更新工作进程(work process)来执行。
+PERFORM ON COMMIT——本语句可被用于例如在对话工作进程中调用子例程(subroutine)。
+CALL FUNCTION...IN BACKGROUND TASK DESTINATION——使用本语句调用的函数模块可以例如被注册为当程序到达下一个COMMIT WORK语句(使用例如远程函数调用)时在诸如SAP系统的另一个系统中后台运行。
+PERFORM ON COMMIT——本语句可以在到达COMMIT WORK时例如在对话工作进程中调用子例程。
+PERFORM ON ROLLBACK——本语句可以在达到ROLLBACK时在对话工作进程中调用子例程。
+SET UPDATE TASK LOCAL——如果在上述任意语句之前调用本语句,则本语句可以导致在COMMIT WORK的所述语句由当前工作进程运行。
无状态更新任务框架的总体概念可以是:不直接运行上述语句,而是可以通过使上述语句在特定数据库表(更新任务存储器)中排队,来将上述语句的运行推迟到稍晚的时间点(该稍晚的时间点可以由应用215逻辑来确定)。排队的语句可以在整个用户会话期间都在像数据库表格的更新任务存储器中被维护,而不是仅仅在单个对话步骤期间被维护。可以由无状态更新任务框架245-2来管理对这些语句进行排队和重演(replay)的任务。触发重演或取消(cancel)的时间点可以通过在应用215逻辑内运行COMMIT WORK或ROLLBACKWORK语句来确定。具体来说,不是直接调用,例如CALL FUNCTION IN UPDATE TASK(以及其他语句),而是代之以可以调用无状态更新任务框架245-2。无状态更新任务框架245-2可以使用会话密钥(session key)作为主关键字,将函数的名称及其所有参数的值存储在持久化队列中。此外,在每个COMMIT WORK或ROLLBACK WORK语句之前,可以分别插入对无状态更新任务框架245-2的调用,以重演或取消排队的语句。通过在图1所示的无状态模式的步骤140之前利用PERFORM ON COMMIT和PERFORM ON ROLLBACK来注册子例程,可以简化对排队的语句的取消。该子例程可以调用无状态更新任务框架245-2以触发适当的动作。
当例如调用COMMIT WORK时,无状态更新任务框架245-2可以检索所有排队的语句,并且可以逐个执行它们。在ROLLBACK WORK的情况下,可以从无状态更新任务框架245-2队列中去除已存储的语句。为了简化框架队列的实现并且为了避免另一个后台任务清空数据库项,可以使用诸如用来存储服务器侧cookies的图1的状态存储器112的数据存储器。
当进程开始新任务时,可以调用像CALL FUNCTION STARTING NEW TASK语句这样的语句。语句CALL FUNCTION STARTING NEW TASK可以仅受到无状态模式的间接影响。可以仅在使用回调(callback)的情况下需要代码修改。例如,回调可以在运行CALL FUNCTIONSTARTING NEW TASK的对话步骤已经结束之后不工作。因此可以在有状态应用中的对话步骤结束之前添加语句WAIT_UNTIL,以便与异步调用的函数同步。
在将于不同对话步骤中运行两个(或更多)对同一函数模块实例的远程函数调用、并且所述不同对话步骤中的每一个均期望接收侧的有状态行为的情况中,应用服务器225可能必须指明远程函数调用的地址以确保正确执行该远程函数调用。可以使用与用于web应用的技术类似的技术,其中,被调用函数模块(甚或是函数组)的内部状态被串行化并被使用服务器侧cookie存储,并且在函数模块被再次调用时再次被检索。
应用215可以通过图2A中的批量作业210-3执行后台任务。为了使它们与经转换的用户接口215-1和相关功能计算逻辑215-2平稳地工作(即,为了避免不一致性),批量作业210-3可能需要像其他部分那样被调整,以变成批量作业215-3。例如,由于可能不存在关于后台任务的会话ID,因此可以创建模拟(artificial)会话ID。模拟会话ID可以通过针对每个任务实例使用例如函数GUID_CREATE生成GUID(该GUID是唯一ID)来创建。在该上下文中,GUID可以仅仅生成一次,并且可以被用作会话ID。由于GUID对于会话是唯一的,因此GUID允许一致性处理。在会话期间所有转换均可适用于GUID。这不仅适用于批量作业,还适用于远程函数调用、函数新任务调用、业务应用编程接口(business application programminginterface,BAPI)等等。BAPI可以是用于提供对诸如R/3的业务应用系统中的进程和数据的访问的接口。
由于无状态加锁框架245-1未与ABAP基础整合,因此万一应用结束(正常或异常结束)可能无法对无状态加锁框架245-1进行调用。锁例如由于计算机应用215可能发生的不可预见的异常中断(abort)而继续存在。因此,需要一种机制来确保那些由无状态加锁框架245-1管理的不再有效的锁被去除。无状态更新任务框架245-2的存储器和状态存储器存在类似的问题。清理(clean-up)函数245-4可以检查不活动的会话(即,这样的会话,其不再活动,但针对该会话的锁、更新任务或已存储的状态表示仍然存在),并且可以去除属于不再存在的会话的无效的锁、更新任务和状态表示。运行清理函数245-4的批量作业可以一次一次地重复运行,例如,每15分钟重复运行一次,并且可以去除针对不再存在的活动会话的锁、更新任务和状态表示。
在特定的例子中,用作应用215的ABAP应用的状态信息可以包括如下信息:用户接口交互状态,其可以包括用户接口控件的当前状态;以及所有尚未提交到数据库的用户发布的变化的记录。用户发布的变化可以用应用特定的数据结构和变量来存储。任何其他数据可以被视为支持数据结构。出于性能原因而保持在用户上下文中的特定高速缓存数据不是用户状态的一部分。相反,其可以随着每个请求而被重新读取。任何包含复制或导出信息的变量也可能不是用户状态的一部分,并且也可以在需要时从数据库重新读取或重新计算。
在一个实施例中,只有以上列出的状态信息需要存储在状态存储器中,并且所有的支持数据结构每次都在阶段1中使用状态信息来重构。然而,取决于构建支持数据结构所需的时间,将一些或全部支持数据包括在用户状态中可能是有益的。可以针对每个应用来确定需要多少状态信息或应当存储多少状态信息的折衷方案。
图2B示出了根据示例性实施例的在服务器环境中用于将计算机系统扩展为支持大量并发用户的软件框架的示例性组件图。
在有状态条件下,图2B的计算机系统可以包括应用服务器220,其可以托管(host)计算机应用210。然而,当被转换时,经转换的应用210可以包括一些附加的数据和可执行代码。例如,其可以包括转换的用户接口(UI)216-1、转换的功能计算逻辑216-2和未改变的批量作业210-3。此外,应用服务器220可以被扩展成扩展应用服务器225,并且可以包括用于无状态一致性处理的附加软件框架。具体来说,扩展服务器225可以包括一致性框架226,该一致性框架226可以包括无状态加锁框架225-1和无状态更新任务框架225-2。
已转换应用的UI 216-1可以是无状态的,并且可以包括由附加代码提供的附加功能,所述附加代码提供与图2A的已转换应用类似的状态处理。再有,已转换应用216的功能计算逻辑216-2可以包括用于与图2A的已转换应用类似的状态处理的附加代码。
在例如被实现为扩展应用服务器225的应用服务器内的一致性框架226的实现可以直接访问UI框架(例如,BSP应用框架)所生成的用户会话ID。另外,对于批量作业,应用服务器可以生成唯一ID,或者可以重用像进程ID那样的内部唯一ID(例如在ABAP应用服务器的情况下可以是用户上下文ID),来标识每个批量作业。因此,在每种情况下一致性框架226均可以访问该ID。所以,应用服务器可以有能力基于有关编码是作为用户接口任务运行还是作为后台作业运行的确定,自动选择调用一致性框架所需的适当的LUW_ID。
由应用服务器确定的且为一致性框架所需的LUW_ID可以在应用服务器225(在本例中为ABAP服务器)内进行内部传递。结果,可能不需要对应用216的编码(例如ABAP应用的功能计算层编码和批量作业)进行进一步的修改以提供该项功能。换句话说,可以使用下列ABAP语句而无需改变原始的应用编码:CALL FUNCTION...IN UPDATE TASK、PERFORM ONCOMMIT、CALL FUNCTION...IN BACKGROUND TASK DESTINATION、COMMIT WORK、PERFORM ONCOMMIT、PERFORM ON ROLLBACK、ROLLBACK、SET UPDATE TASK LOCAL、ENQUEUE、DEQUEUE以及DEQUEUE_ALL。
两个一致性框架,即无状态加锁(stateless lock)和更新任务框架,可以与图2A中示出的框架类似地实现。无状态加锁和更新任务框架的实现可以分别使用锁存储器和更新任务存储器。区别在于,不需要批量作业循环地运行清理函数来从不同存储器去除异常终止的应用的数据。而是,应用服务器在会话结束(异常结束或正常结束)时直接调用清理功能。在应用服务器自身异常中断的情况下,其也可以异常终止所有正在运行的会话。因此,可以在服务器启动时调用清理函数来去除属于不活动会话的信息。
构造无状态应用用户上下文的一般原则可以包括将状态表示数据的大小限制为小于原始有状态应用中的用户上下文(例如,图2A的210)。如果以少于原始应用用户上下文的数据来维护状态,则可以优化状态管理(状态存储和用户上下文重构)的效率。结果,可以在请求(对话步骤)之间维护状态表示。
图3示出了用于将计算机系统扩展为支持大量并发用户的示例性过程。在步骤310在有状态应用中开始过程300,其中,可以为用户会话生成会话标识(ID)。在大量用户可能正在访问计算机应用的情况下,例如访问会计程序以进行月底核对时,可以为计算机应用的多个用户中的每一个生成会话ID。例如,会话ID可以由运行于应用服务器之上的业务服务器页面框架结合图1中示出的UI层来生成。在步骤320,可以通过使用各个生成的会话ID从外部存储器检索cookies来恢复多个用户中的每一个的用户上下文。使用恢复的用户上下文,可以调用功能计算逻辑来向多个用户中的每一个提供例如所请求的功能。根据来自用户接口的请求并基于来自恢复的用户上下文的诸如许可和安全设置的数据,在步骤330,借助于可以包括无状态加锁管理和更新任务框架的一致性框架,功能计算逻辑函数可以访问数据库中的数据,可以创建/取消更新任务,并且可以设置/重置锁。在步骤340,可以组装用户上下文的状态表示子集。可以使用例如会话ID作为主关键字,将用户上下文和所组装的状态表示作为cookie存储在外部存储器中。在步骤350,可以基于所组装的状态表示、用户上下文和来自所访问数据库的数据,通过例如用户接口生成HTML代码。
过程300还可以应用于应用服务器实施例,其中,如图2A中所示,应用服务器225可以被扩展为提供状态处理和一致性处理而无需应用。扩展的服务器225可以实现被解释为由计算机应用处理的上面指出的过程步骤。在服务器实现的情况下,只有对于应用编码的状态处理的改变是必需的,因为所有状态和一致性处理功能均由服务器处的处理器执行。因此,可以向服务器级别的多个不同的计算机应用提供上面描述的无状态功能。
图4中示出了用于实现参照图3描述的过程的示例性计算机系统。计算机系统400可以包括终端420A和420B、web应用服务器430和数据库431。终端420A和420B可以访问各个数据存储器421A和421B。终端420A和420B可以是简单的具有输入能力(例如键盘)、用于呈现图形用户接口并接收输入的显示设备。可替换地,终端420A和420B可以包含处理器并运行功能计算逻辑,诸如与例如开发票和人力资源管理相关的计算机应用。计算机应用进程可以在web应用服务器430的处理器上运行,并且图形用户接口可以绘制数据以呈现在客户终端420A和420B上。可替换地,图形用户接口和相关功能可以呈现在终端420A和420B上。web应用服务器430可以与网络内的其他服务器,如服务器433和435通信。服务器433和435之一或两者可以维护上述锁服务器和消息服务器,用作数据库服务器或web应用服务器。服务器433和435可以检索数据库431中的数据以及将数据存储在数据库431中。
示例性方法和计算机程序指令可以具体实现在机器可读存储介质上,如计算机盘、光学可读介质、磁介质、硬盘驱动器、RAID存储设备和快闪存储器。此外,服务器或数据库服务器可以包括被配置为存储机器可执行程序指令的机器可读介质。所公开实施例的特征可以用硬件、软件、固件或它们的组合来实现,并且可以在系统、子系统、组件或它们的子组件中加以利用。当以软件实现时,所公开实施例的元素是程序或用来执行必要任务的代码段。程序或代码段可以存储在机器可读存储介质上。“机器可读存储介质”可以包括能够存储信息的任意介质。机器可读存储介质的例子包括电子电路、半导体存储器件、ROM、快闪存储器、可擦除ROM(EROM)、软盘、CD-ROM、光盘、硬盘、光纤介质或任何电磁或光存储设备。代码段可以经由诸如互联网、内联网等等的计算机网络下载。
尽管以上已经参照特定实施例描述了本发明,但本发明不局限于上述实施例和附图中示出的特定配置。例如,示出的一些组件可以相互组合成一个实施例,或者组件可以被分成若干子组件,或者可以添加任何其他已知或可获得的组件。操作过程也不限于例子中示出的那些。本领域技术人员将会理解,可以以其他方式来实现本发明而不会偏离本发明的精神和实质特征。例如,上面描述的特征和实施例可以相互组合或者可以不相互组合。因此,所呈现的实施例从各个方面来看都应被认为是说明性的而非限制性的。发明的范围由所附权利要求而非前述说明限定,因此,在权利要求等价物的含义和范围内的所有变化都意图包括在发明范围之内。

Claims (10)

1.一种将有状态计算机应用转换成无状态应用以帮助扩展从而支持计算机系统的大量并发用户的方法,包括:
由运行计算机应用的处理器为该计算机系统中的用户会话生成会话标识(ID);
使用该会话标识(ID)从外部存储器检索与该用户会话相关的服务器侧cookie;
由所述处理器使用所检索的应用服务器侧cookie恢复该用户会话的用户上下文;
基于恢复的用户上下文调用功能计算逻辑,其中该功能计算逻辑的运行包括访问应用数据库,其包括:
通过使用包括工作标识符的逻辑单位(LUW_ID)和时戳的相应关键字来存储该应用数据库的每个锁;
在应用服务器上实现无状态更新任务框架,其进一步包括:
在该用户会话期间在作为数据库表格的、应用服务器侧更新任务存储器中排队并且维护更新语句;
在稍后的时间点运行所述语句;
根据应用数据库中的数据组装该用户上下文的状态表示子集;
当完成由计算机应用功能计算逻辑执行的功能时,将用户上下文和所组装的状态表示作为应用服务器侧cookie存储在外部存储器中,其中,所述会话标识(ID)是主关键字;以及
由用户的用户接口基于所组装的状态表示、用户上下文和来自所访问应用数据库的数据,生成HTML代码。
2.如权利要求1所述的方法,包括:
在先前的会话标识保持活动的同时,为不同计算机应用的多个用户中的每一个生成新的会话标识。
3.如权利要求1所述的方法,其中,所述会话标识由有状态计算机应用生成,并且
所述用户上下文由无状态计算机应用恢复。
4.如权利要求3所述的方法,其中,所述无状态计算机应用是业务页面服务器(BSP)应用。
5.一种将有状态计算机应用转换成无状态应用以帮助将计算机系统扩展为支持大量并发用户的计算机系统,包括:
终端,用于接收输入和输出数据;
应用数据库,用于存储数据;以及
应用服务器,其具有处理器,该处理器被配置成:
为计算机系统中的用户会话生成会话标识(ID);
在该计算机系统中使用该会话标识(ID)从外部存储器检索与该用户会话相关的应用服务器侧cookie;
使用检索的应用服务器侧cookie恢复该用户会话的用户上下文;
基于恢复的用户上下文调用功能计算逻辑,其中该功能计算逻辑的运行包括访问应用数据库,其包括:
通过使用包括工作标识符的逻辑单位(LUW_ID)和时戳的相应关键字来存储该应用数据库的每个锁;
在应用服务器上实现无状态更新任务框架,其进一步包括:
在该用户会话期间在作为数据库表格的、应用服务器侧更新任务存储器中排队并且维护更新语句;
在稍后的时间点运行所述语句;
根据应用数据库中的数据组装用户上下文的状态表示子集;
当由功能计算逻辑执行的功能完成时,将用户上下文和所组装的状态表示作为应用服务器侧cookie存储在外部存储器中,其中,所述会话标识(ID)是主关键字;以及
由用户接口基于所组装的状态表示、用户上下文和来自所访问应用数据库的数据,生成HTML代码。
6.如权利要求5所述的计算机系统,所述处理器还被配置成:
在先前的会话标识保持活动的同时,为具有不同功能计算逻辑的不同计算机应用的多个用户中的每一个生成新的会话标识。
7.如权利要求6所述的计算机系统,其中,所述会话标识由有状态计算机应用生成,并且
所述用户上下文由无状态计算机应用恢复。
8.如权利要求7所述的计算机系统,其中,所述无状态计算机应用是业务页面服务器应用。
9.一种用于以无状态实现代替有状态实现、以提供扩展计算机应用以供大量用户使用的进一步功能的方法,包括:
响应于对计算机应用的请求生成计算机会话标识(ID),该计算机会话ID包括与请求计算机应用的计算机相关的信息;
从与请求计算机相关的信息形成用户上下文;
创建具有该用户上下文的状态表示和计算机会话标识(ID)的应用服务器侧cookie;
从应用数据库访问数据以运行计算机应用功能,访问应用数据库包括:
通过使用包括工作标识符的逻辑单位(LUW_ID)和时戳的相应关键字来存储该应用数据库的每个锁;
在应用服务器上实现无状态更新任务框架,其进一步包括:
在该用户会话期间在作为数据库表格的、应用服务器侧更新任务存储器中排队并且维护更新语句;
在稍后的时间点运行所述语句;
当运行与计算机应用相关的功能时,组装包括计算机会话的用户上下文的修正的状态表示;
当由计算机应用执行的功能完成时,修正该应用服务器侧cookie以包括所组装的状态表示,其中,所述会话标识(ID)是用于从外部存储器检索该应用服务器侧cookie的主关键字;
将修正后的应用服务器侧cookie存储在外部存储器中;以及
由用户接口基于所组装的状态表示、用户上下文和来自所访问应用数据库的数据,生成HTML代码。
10.一种用于以无状态实现代替有状态实现、以提供扩展计算机应用以供大量用户使用的进一步功能的系统,包括:
终端,用于接收输入和输出数据;
应用数据库,用于存储数据;以及
具有处理器的应用服务器,该处理器被配置成:
响应于对计算机应用的请求生成计算机会话标识(ID),该计算机会话ID包括与请求计算机应用的计算机相关的信息;
从与请求的计算机相关的信息形成用户上下文;
创建具有该用户上下文的状态表示和计算机会话标识(ID)的应用服务器侧cookie;
从应用数据库访问数据以运行计算机应用功能,访问应用数据库包括:
通过使用包括工作标识符的逻辑单位(LUW_ID)和时戳的相应关键字来存储该应用数据库的每个锁;
在应用服务器上实现无状态更新任务框架,其进一步包括:
在该用户会话期间在作为数据库表格的、应用服务器侧更新任务存储器中排队并且维护更新语句;
在稍后的时间点运行所述语句;
当运行与计算机应用相关的功能时,组装包括计算机会话的用户上下文的修正的状态表示;
当由计算机应用执行的功能完成时,修正该应用服务器侧cookie以包括所组装的状态表示,其中,所述会话标识(ID)是用于从外部存储器检索该应用服务器侧cookie的主关键字;
将修正后的应用服务器侧cookie存储在外部存储器中;以及
由用户接口基于所组装的状态表示、用户上下文和来自所访问应用数据库的数据,生成HTML代码。
CN201110434451.2A 2010-12-22 2011-12-22 针对大量并发用户进行扩展的系统和方法 Active CN102681836B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/976,175 2010-12-22
US12/976,175 US9697050B2 (en) 2010-12-22 2010-12-22 System and method for scaling for a large number of concurrent users

Publications (2)

Publication Number Publication Date
CN102681836A CN102681836A (zh) 2012-09-19
CN102681836B true CN102681836B (zh) 2018-04-03

Family

ID=45491266

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110434451.2A Active CN102681836B (zh) 2010-12-22 2011-12-22 针对大量并发用户进行扩展的系统和方法

Country Status (3)

Country Link
US (1) US9697050B2 (zh)
EP (1) EP2469410A3 (zh)
CN (1) CN102681836B (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ITTO20060149A1 (it) * 2006-03-01 2007-09-02 Cisco Tech Inc Tecnica per l'instradamento ottimizzato di flussi di dati su una dorsale ip in una rete di computer.
JP5640556B2 (ja) * 2010-08-23 2014-12-17 富士ゼロックス株式会社 画像形成装置及び画像形成プログラム
CN104935450B (zh) * 2014-03-19 2018-12-25 新华三技术有限公司 一种访问会话管理方法及其装置
CN103927232B (zh) * 2014-04-15 2017-08-04 广东电网有限责任公司信息中心 系统处理方法
US10296609B2 (en) 2014-07-07 2019-05-21 Microsoft Technology Licensing, Llc Extended memory system
US9672494B2 (en) * 2014-11-25 2017-06-06 Sap Se Light-weight lifecycle management of enqueue locks
US10491685B2 (en) * 2015-03-31 2019-11-26 Microsoft Technology Licensing, Llc Session transfer between resources
US10148592B1 (en) 2015-06-29 2018-12-04 Amazon Technologies, Inc. Prioritization-based scaling of computing resources
US10021008B1 (en) * 2015-06-29 2018-07-10 Amazon Technologies, Inc. Policy-based scaling of computing resource groups
CN107925876B (zh) * 2015-08-14 2021-07-30 瑞典爱立信有限公司 用于处理无线设备的移动性过程的节点和方法
US11308068B2 (en) * 2016-05-13 2022-04-19 Sap Se Control systems for draft lifecycle
US10732990B2 (en) * 2018-04-27 2020-08-04 Paypal, Inc. Systems and methods for providing services in a stateless application framework
US10733018B2 (en) 2018-04-27 2020-08-04 Paypal, Inc. Systems and methods for providing services in a stateless application framework
CN109857910B (zh) * 2019-01-07 2024-03-26 平安科技(深圳)有限公司 Xml文件的生成方法、装置、计算机设备及存储介质
CN111988195B (zh) * 2019-05-24 2023-04-07 北京京东尚科信息技术有限公司 用于分组测试的应答方案确定方法、装置、设备及介质
EP4042280A1 (en) * 2019-10-09 2022-08-17 Microsoft Technology Licensing, LLC Systems and methods for implementing soft locking in a stateless microservice environment
US11240318B1 (en) 2021-05-11 2022-02-01 Integrity Security Services Llc Systems and methods for virtual multiplexed connections

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1710865A (zh) * 2005-06-30 2005-12-21 西安交通大学 一种提高基于构件软件系统可靠性的方法
CN1836416A (zh) * 2003-08-14 2006-09-20 甲骨文国际公司 服务器之间无状态会话的透明迁移

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5699500A (en) 1995-06-01 1997-12-16 Ncr Corporation Reliable datagram service provider for fast messaging in a clustered environment
US5875296A (en) * 1997-01-28 1999-02-23 International Business Machines Corporation Distributed file system web server user authentication with cookies
DE69904462T2 (de) * 1998-05-01 2003-10-02 Powerquest Corp Manipulation von partitionen virtueller und realer rechnerspeichervorrichtungen
US7100195B1 (en) * 1999-07-30 2006-08-29 Accenture Llp Managing user information on an e-commerce system
US6954220B1 (en) * 1999-08-31 2005-10-11 Accenture Llp User context component in environment services patterns
US7206805B1 (en) * 1999-09-09 2007-04-17 Oracle International Corporation Asynchronous transcription object management system
US7290056B1 (en) * 1999-09-09 2007-10-30 Oracle International Corporation Monitoring latency of a network to manage termination of distributed transactions
US8239445B1 (en) * 2000-04-25 2012-08-07 International Business Machines Corporation URL-based sticky routing tokens using a server-side cookie jar
US7634570B2 (en) * 2003-03-12 2009-12-15 Microsoft Corporation Managing state information across communication sessions between a client and a server via a stateless protocol
US7565425B2 (en) * 2003-07-02 2009-07-21 Amazon Technologies, Inc. Server architecture and methods for persistently storing and serving event data
US7546630B2 (en) * 2003-07-17 2009-06-09 International Business Machines Corporation Methods, systems, and media to authenticate a user
US20060155857A1 (en) * 2005-01-06 2006-07-13 Oracle International Corporation Deterministic session state management within a global cache array
US7424499B2 (en) * 2005-01-21 2008-09-09 Microsoft Corporation Lazy timestamping in transaction time database
US7870265B2 (en) * 2005-06-30 2011-01-11 Oracle International Corporation System and method for managing communications sessions in a network
US8620994B2 (en) * 2006-02-23 2013-12-31 Qualcomm Incorporated System and method for scheduling content updates in a content-based application
US20080109037A1 (en) * 2006-11-03 2008-05-08 Musculoskeletal Transplant Foundation Press fit suture anchor and inserter assembly
US9317255B2 (en) 2008-03-28 2016-04-19 Microsoft Technology Licensing, LCC Automatic code transformation with state transformer monads
US9749387B2 (en) * 2009-08-13 2017-08-29 Sap Se Transparently stateful execution of stateless applications

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1836416A (zh) * 2003-08-14 2006-09-20 甲骨文国际公司 服务器之间无状态会话的透明迁移
CN1710865A (zh) * 2005-06-30 2005-12-21 西安交通大学 一种提高基于构件软件系统可靠性的方法

Also Published As

Publication number Publication date
CN102681836A (zh) 2012-09-19
EP2469410A3 (en) 2012-07-18
US20120166481A1 (en) 2012-06-28
EP2469410A2 (en) 2012-06-27
US9697050B2 (en) 2017-07-04

Similar Documents

Publication Publication Date Title
CN102681836B (zh) 针对大量并发用户进行扩展的系统和方法
US9921775B2 (en) Memory management in a decentralized control plane of a computing system
US7716377B2 (en) Clustering server providing virtual machine data sharing
US7640249B2 (en) System and method for transactional session management
US7383271B2 (en) Centralized configuration data management for distributed clients
US7590669B2 (en) Managing client configuration data
US9176772B2 (en) Suspending and resuming of sessions
US7631108B2 (en) Method and apparatus for executing event driven simulations
WO2010116676A1 (ja) サービス提供装置、サービス提供システム、サービス提供装置のデータ処理方法およびコンピュータプログラム
US8458215B2 (en) Dynamic functional module availability
JP2009505226A (ja) サーバ側のプロジェクトマネージャ
Weikum Towards guaranteed quality and dependability of information services
CN108363787A (zh) 一种ifc文件并行存储方法、装置及系统
CN109408212B (zh) 任务调度组件构造方法、装置及存储介质、服务器
Wallace et al. A situated evaluation of the Object Management Group's (OMG) Object Management Architecture (OMA)
EP4136541B1 (en) Transactional support for non-relational database
CN112433716B (zh) 基于非侵入式监控的运行时组件动态交互模型构造方法
US20240112067A1 (en) Managed solver execution using different solver types
US20240111832A1 (en) Solver execution service management
US20240111831A1 (en) Multi-tenant solver execution service
Lazarov Comparison of different implementations of multi-tenant databases
Cuomo et al. Concurrent simulation in the cloud with the mJADES framework
Howard et al. Using the compliant systems architecture to deliver flexible policies within two-phase commit
CN117093252A (zh) 云对象交付方法、装置、电子设备和计算机可读存储介质
Abboud Transaction execution in grid database

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C53 Correction of patent for invention or patent application
CB02 Change of applicant information

Address after: German Waldo

Applicant after: SAP AG

Address before: German Waldo

Applicant before: SAP AG

COR Change of bibliographic data

Free format text: CORRECT: APPLICANT; FROM: SAP AG TO: SAP EUROPE AG

GR01 Patent grant
GR01 Patent grant