CN103403749A - 用于提供涉及多个软件应用程序的会话的方法和系统 - Google Patents

用于提供涉及多个软件应用程序的会话的方法和系统 Download PDF

Info

Publication number
CN103403749A
CN103403749A CN2012800105924A CN201280010592A CN103403749A CN 103403749 A CN103403749 A CN 103403749A CN 2012800105924 A CN2012800105924 A CN 2012800105924A CN 201280010592 A CN201280010592 A CN 201280010592A CN 103403749 A CN103403749 A CN 103403749A
Authority
CN
China
Prior art keywords
application server
user
affinity
context
application
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
Application number
CN2012800105924A
Other languages
English (en)
Inventor
P·多尔
D·福泽
J·丹尼尔
S·蒙贝尔
C·迪盖斯特
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.)
Amadeus SAS
Original Assignee
Amadeus SAS
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 Amadeus SAS filed Critical Amadeus SAS
Publication of CN103403749A publication Critical patent/CN103403749A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0603Catalogue ordering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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/5033Allocation 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 data affinity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • G06Q50/14Travel agencies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5016Session

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Tourism & Hospitality (AREA)
  • Software Systems (AREA)
  • Economics (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Finance (AREA)
  • General Engineering & Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • General Health & Medical Sciences (AREA)
  • Primary Health Care (AREA)
  • Human Resources & Organizations (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Development Economics (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了用于在分布式环境中为用户提供用户会话的一致视图的计算机实现方法。该方法包括为应用服务器(A1、A2、...)提供用于存储用于该用户会话的用户上下文的一部分的数据存储装置,从而针对每个用户会话定义每个与用户会话具有亲合性的一组应用服务器(A3、B8、C4)。每个应用服务器被配置成处理该用户会话所需的软件应用程序。在路由装置(10、11、12)处,用至少一个处理器来执行以下步骤:从用户接收请求并将用户会话的事务朝着与用户会话具有亲合性的应用服务器(A1、A2、...)路由以便满足请求,向用户会话分配被布置成包括亲合性密钥的相关记录(DCX),每个亲合性密钥指示对于给定软件应用程序与用户会话具有亲合性的应用服务器,与每个事务一起传播该相关记录,从而允许路由装置(10、11、12)以被链接到用户会话的用户上下文且处理与处理事务有关的软件应用程序的应用服务器(A3、B8、C4)作为目标。

Description

用于提供涉及多个软件应用程序的会话的方法和系统
技术领域
本发明一般地涉及在分布式计算环境中为软件应用的用户提供每个打开会话的一致视图的方法和系统。更特别地,本发明涉及其中非常多的用户会话可能被同时打开且其中每个用户会话可能要求各种软件应用的合作以便完成的方法和系统。
背景技术
随着在其每天的生活中使用电子服务的人数每天增加,要求提供这些电子服务的系统来处理数目不断增加的用户会话。另外,用户现在正期待输送的信息和服务越来越高效和尖端。然而,为了达到此目的,常常需要由不同的软件应用来处理用于每个用户会话的事务。
例如,在旅行和旅游行业中,预订系统必须处理同时打开的数万个用户会话并请求检查班机的有效性。由用户提供给此类用户会话的信息通畅包括班机的起飞日期、出发地和目的地。它们形成用于该会话的用户上下文的一部分,其也包括从由该会话处理的各种事务收集的数据,诸如可用性信息、价格、班机参考等。
为了保持足够的吞吐量,某些解决方案基于具有单个非常强大的处理单元的集中式计算系统。然而,这些集中式系统在新附加应用程序的部署方面以及在提高处理能力方面几乎是不可调节的(scalable)。另外,这些系统并不是可靠的,因为集中式处理单元的故障可能导致全面中断。
其他解决方案依赖于分布式系统,其中,总处理能力遍布于许多个分布式机器。在这些现有分布式系统中,仍有单个机器来管理专用于给定用户会话的所有事务。
然后简单地通过增加机器的数目来实现可调节性,使得系统的总体处理能力能够容易地适合于满足吞吐量需要。
然而,用这些分布式系统,仍难以管理新服务的集成,尤其是当新服务基于意图在始终保持来自用户侧的一致性的同时与已加载的软件应用程序相交互的新软件应用程序时。
因此,为了能够保持来自用户侧的一致且同一的视图,必须在每一个机器上加载新的软件应用程序。然而,除了是耗时的操作之外,这并不允许实际上实现所有用户之间的一致性,直至加载步骤已在整个分布式系统上完成。
因此,本发明的总目标是描述一种方法和系统,能够为用户提供会话的统一视图,同时允许处理能力的可调节性且同时使新服务的集成变得容易。
发明内容
根据本发明的实施例,至少部分地达到前述及其他目的,并且实现了其他优点。
本发明涉及一种为用户提供计算机化用户会话的用户统一视图的方法,其中,用户会话要求运行由系统处理的多个软件应用程序,该系统与用户以客户/服务器模式运行,多个软件应用程序被链接到与用户会话有关的用户上下文的至少一部分上,所述方法的特征在于包括用至少一个数据处理器执行的以下步骤:
—针对每个用户会话,被链接到用户上下文的至少一部分的每个软件应用程序被一组应用服务器之中的专用应用服务器处理,其中所述一组应用服务器中的每一个应用服务器独立地处理该软件应用程序,从而为每个会话定义其中每个都与用户会话具有亲合性的一组应用服务器,
—为具有与用户会话的亲合性的每个应用服务器提供数据存储装置,该数据存储装置被配置为存储被链接到由所述每个应用服务器处理的应用软件的那部分用户上下文,
—在一个或多个路由装置处,所述一个或多个路由装置中的一个是负责用户会话的主路由装置:至少从用户接收请求并将用户会话的事务至少朝着与用户会话具有亲合性的应用服务器路由,以便满足请求,路由事务的步骤包括;
○向用户会话分配被布置成包括亲合性密钥的相关记录(DCX),每个亲合性密钥指示对于给定软件应用程序与用户会话具有亲合性的应用服务器,
○与每个事务一起传播该相关记录,从而允许路由装置读取相关记录以便将与用户会话具有亲合性且处理与处理事务有关的软件应用程序的应用服务器作为目标。
本发明的另一方面涉及一种为用户提供用户会话的方法,其中,用户会话要求由与用户以客户/服务器模式运行的系统处理的多个软件应用程序的运行,所述软件应用程序中的至少一个被链接到与用户会话有关的用户上下文的至少一部分,其特征在于针对每个用户会话,由每个独立地处理所述每个软件应用程序的一组应用服务器之中的一个应用服务器来处理每个软件应用程序,在于处理被连接到用户上下文的一部分的软件应用程序的每个应用服务器从而被链接到用户上下文,即与会话具有亲合性,并被提供有数据存储装置,该数据存储装置被配置成存储其被链接到的那部分用户上下文。该方法包括用至少一个处理器执行的向用户会话分配被配置成包括亲合性密钥的相关记录(DCX)的步骤,每个亲合性密钥指示必须被针对给定软件应用程序且针对所述用户会话确定为目标的应用服务器。该方法还包括通过处理器在一个或多个路由装置中的一个处执行的以下步骤,一个路由装置是负责用户会话的主路由装置:接收事务;确定被该事务调用的软件应用程序,确定事务是否要求被路由到被链接到用户上下文的应用服务器:
○如果事务要求被路由到被链接到用户上下文的应用服务器,则:
如果相关记录包含用于被调用软件应用程序的任何亲合性密钥,则根据亲合性密钥来路由事务;
—如果相关记录不包含用于被调用软件应用程序的亲合性密钥,则路由装置中的一个选择处理被调用软件应用程序的应用服务器组之中的应用服务器,用指示所选应用服务器的亲合性密钥来充填相关记录,将事务路由到所选应用服务器,并且所述主路由装置存储相关记录。
可选地且优选地,如果事务并不要求被路由到被链接到用户上下文的应用服务器,则路由装置选择处理被调用软件应用程序的应用服务器组之中的应用服务器,并且将该事务路由到所选应用服务器。
可选地且优选地,接收事务的步骤包括从用户接收事务。可选地,接收事务的步骤包括从软件应用程序接收事务。
本发明的另一方面涉及一种非临时计算机可读介质,其包括软件程序指令,其中,由至少一个数据处理器进行的软件程序指令的执行导致运行的执行,其中包括如在前述权利要求中的任一项所述的方法的执行。
根据另一方面,本发明涉及一种包括被配置成执行如在前述特征和步骤中的任何一个中的方法的装置的系统。
本发明的另一方面涉及一种用于为用户提供用户会话的系统,包括多个软件应用程序,其运行是提供用户会话所需要的,软件应用程序中的至少一个被链接到与用户会话有关的用户上下文的至少一部分,其特征在于包括:
○多个机器,每个机器至少包括处理器,
○多个应用服务器,每个应用服务器在一个机器上运行,每个应用服务器被布置成使得针对该用户会话,每个软件应用程序由一组应用服务器之中的专用于该软件应用程序的一个应用服务器来处理,从而针对每个用户会话定义其中每个与用户会话具有亲合性的一组应用服务器,
○数据存储装置,被关联到处理被链接到用户上下文的一部分的软件应用程序的每个应用服务器,每个存储装置被布置成存储被链接到软件应用程序的那部分用户上下文,所述软件应用程序由被关联到所述存储装置的应用服务器处理,
○一个或多个路由装置,其中,主路由装置被布置成负责用户会话,所述一个或多个路由装置被配置成:
至少从用户接收请求并将用户会话的事务朝着与用户会话具有亲合性的应用服务器路由,以便满足请求,所述路由装置被配置成使得所述事务步骤包括:
○向用户会话分配被布置成包括亲合性密钥的相关记录(DCX),每个亲合性密钥指示对于给定软件应用程序与用户会话具有亲合性的应用服务器,
○与每个事务一起传播该相关记录,从而允许路由装置读取相关记录以便以与用户会话具有亲合性并且处理与处理事务有关的软件应用程序的应用服务器作为目标。
附图说明
当结合附图来阅读时,在以下详细描述中,将使得本发明的实施例的前述及其他方面变得更加显而易见,在所述附图中:
图1示出了根据本发明的实施例的系统的示例。
图2示出了根据本发明的另一实施例的系统的示例。描述了示例性使用情况。
图3示出了图2的系统和另一示例性使用情况,图示出其中用户上下文的一部分的寿命需要被链接到用户会话的寿命。
图4是图示出亲合性(affinity)初始化步骤的系统的某些部件的简化高级方框图。
图5是图示出示例性使用情况的系统的某些部件的简化高级方框图。
具体实施方式
下面将描述某些有利特征和步骤。然后,将相对于附图更详细地描述某些实施例和使用情况。
如上文所指示的,本发明涉及一种为用户提供计算机化用户会话的用户统一视图的方法,其中,该用户会话要求由系统处理的多个软件应用程序的运行,该系统在客户/服务器模式下关于用户进行运行,多个软件应用程序每个被链接到与用户会话有关的用户上下文的至少一部分。该方法包括用至少一个处理器执行的以下步骤:
—针对每个用户会话,由一组应用服务器之中的专用应用服务器来处理被链接到用户上下文的至少一部分的每个软件应用程序,所述应用服务器每个独立地处理该软件应用程序,从而针对每个会话定义每个具有与用户会话的亲合性的一组应用服务器,
—为具有与用户会话的亲合性的每个应用服务器提供数据存储装置,该数据存储装置每个被配置成存储被链接到由所述每个应用服务器处理的应用软件的那部分用户上下文,
—在一个或多个路由装置处,所述一个或多个路由装置中的作为主路由装置的一个负责用户会话:至少从用户接收请求并将用户会话的事务至少朝着与用户会话具有亲合性的应用服务器路由以便满足请求,路由事务的步骤包括:
○向用户会话分配被布置成包括亲合性密钥的相关记录(DCX),每个亲合性密钥指示对于给定软件应用程序的与用户会话具有亲合性的应用服务器,
○与每个事务一起传播该相关记录,从而允许路由装置读取相关记录并以与用户会话具有亲合性且处理与处理事务有关的软件应用程序的应用服务器为目标。
因此,在独立的一组应用服务器上处理每组服务,每个应用服务器可能由独立的机器运行,与一组服务有关的用户上下文的每个部分被本地地存储在负责该组服务的应用服务器中的一个上,并且每个用户与系统相交互,如同其仅仅是一个应用服务器一样。在进入系统的每个事务上添加DCX以使通过可能大数目的服务器传播的用户上下文的各部分相关。亲合性密钥是用以识别哪个应用服务器(和机器)正在保持用于给定的一组服务的用户上下文的一部分的特定信息。然后,该亲合性密钥被ESB用来将事务路由到管理用户的上下文的特定应用服务器。
因此,本发明公开了一种解决方案,为用户提供用户上下文的一致且统一的视图,保持系统的模块性以使得处理容量的增加变得容易并允许新服务/产品的容易集成。
本发明还提供了可操作性方面的显著优点,因为其允许分配给包括各种软件应用程序的全局产品的每个子部分的资源的更容易控制。其还允许使全局中断的风险最小化,因为给定机器或机器组上的中断并不显著地影响其他机器。
所有应用服务器相互独立。其并不相互知晓。只有被路由装置读取的相关记录允许在处理不同软件应用程序的两个应用服务器之间建立会话。因此,亲合性密钥是被添加到相关记录的参考,并且其允许路由装置将保持被链接到用户会话的那部分用户上下文并与处理事务有关的应用服务器作为目标。
可选地,本发明可以包括以下非限制性特征和步骤中的至少一个:
所述一个或多个路由装置被配置成知道如何到达每一个应用服务器。
因此,所述一个或多个路由装置知道每个应用服务器的存在和每个应用服务器位于什么位置。所述一个或多个路由装置还知道在哪个应用服务器上面处理给定软件应用程序。
优选地,相关记录被存储在被关联至主路由装置的数据存储装置中。
主路由装置是接收用户请求的路由装置。亲合性密钥由路由装置设定。
该路由装置是企业服务总线(ESB)。
路由装置从处理软件应用程序和分配给会话的相关记录的应用服务器接收事务并将该事务路由到专用于处理另一软件应用程序的另一应用服务器。路由事务的步骤包括其中路由装置读取相关记录的步骤。
当在所述路由装置处接收到相关记录时,如果该相关记录不包含指示事务必须被路由到的所述另一应用服务器的亲合性密钥,则其中所述路由装置将事务路由到另一应用服务器的步骤包括附加的以下步骤:路由装置确定被链接到所述其他软件应用程序的那部分用户上下文的寿命是否必须被链接到会话的寿命。
当在所述路由装置处接收到相关记录时,如果该相关记录不包含指示事务必须被路由到的所述另一应用服务器的亲合性密钥且如果被链接到所述另一软件应用程序的那部分用户上下文的寿命必须被链接到用户会话的寿命,则其中所述路由装置将事务路由到另一应用服务器的步骤包括附加的以下步骤:
—所述路由装置向主路由装置发送用于亲合性初始化的请求,
—然后主路由装置:
○选择应用服务器组之中的处理所述另一软件应用程序的所述另一应用服务器,
○向所述另一应用服务器发送亲合性初始化的消息,
○从所述另一应用服务器接收亲合性初始化的确认,
○用指示所述另一应用服务器的亲合性密钥充填相关记录,
○将被充填的相关记录发送到所述路由装置,
—然后所述路由装置根据被充填的相关记录的亲合性密钥将事务路由到所述另一应用服务器。
当在所述路由装置处接收到相关记录时,如果相关记录不包含指示事务必须被路由到的所述另一应用服务器的亲合性密钥且如果被链接到所述另一软件应用程序的那部分用户上下文的寿命不必被链接至会话的寿命,则其中路由装置将事务路由到所述另一应用服务器的步骤包括附加的以下步骤:所述路由装置选择应用服务器之中的处理所述另一软件应用程序的所述另一应用服务器,所述另一软件应用程序必须被处理以履行该事务并将事务路由到所述另一应用服务器。
优选地,相关记录被充填指示所述另一应用服务器的亲合性密钥。
相关记录被所述路由装置充填,并且相关记录经由答复路径返回至主路由装置且被存储在被关联至主路由装置的数据存储装置中。充填相关记录的路由装置和主路由装置是不同的。根据替换实施例,充填相关记录的路由装置和主路由装置是相同的。
当在所述路由装置处接收到相关记录时,如果相关记录已包含指示事务必须被路由到的所述另一应用服务器的亲合性密钥,则所述路由装置根据亲合性密钥将事务路由到所述应用服务器。
应用服务器从路由装置接收事务,通过处理事务而生成用户上下文的一部分并将该用户上下文部分存储在被提供给所述应用服务器的数据存储装置中。
应用服务器用可应用上下文密钥来充填相关记录,这允许从应用服务器取回(retrieve)用户上下文的所述部分。
因此,可应用上下文密钥是指示被链接到软件应用程序的用户上下文的所述部分位于所述应用服务器上的什么位置的参考。
用可应用上下文密钥充填的相关记录经由答复路径被发送回到主路由装置并被存储在被关联至主路由装置的数据存储装置中。
当在所述应用服务器处接收到与所述用户会话有关的另一事务时,所述应用服务器基于可应用上下文密钥将用户上下文的所述部分定位于所述存储装置中。然后可以进一步取回和处理用户上下文的所述部分。这允许每当用户上下文的所有部分被定位时进行其容易的取回。
相关记录被与每个事务一起传播。相关记录被路由装置用亲合性密钥充填以允许路由装置将保持用户会话的上下文的所述部分的应用服务器作为目标。相关记录还被应用服务器用可应用上下文密钥充填以允许每个应用服务器取回存储在其存储装置中的那部分用户上下文。每当相关记录被用新的亲合性密钥或用新的可应用上下文密钥充填时,相关记录被返回至主路由装置。
如果被链接到软件应用程序的用户上下文的一部分的寿命必须被链接到用户会话的寿命,则有状态对话在主路由装置与处理所述软件应用程序的应用服务器之间打开,只要用户会话是活动的即可,有状态对话在用户会话结束时被自动关闭。
有利地,只要用户会话是活动的,主路由装置定期地向所述应用服务器指示必须保持存储用户上下文的所述部分。
主路由装置向所述应用服务器指示可以删除被链接到所述另一软件应用程序的用户上下文的所述部分。
被链接到软件应用程序的那部分用户上下文可以由用户和/或由被链接到应用服务器的软件应用程序生成,所述应用服务器包括存储用户上下文的所述部分的数据存储装置。被链接到软件应用程序的那部分用户上下文也可以是该软件应用程序要求或生成的。
给定应用服务器的每个数据存储装置不同于其他应用服务器的数据存储装置。
应用服务器在包括处理器和数据存储装置的机器上运行。根据实施例,至少多个应用服务器在同一机器上运行。根据另一实施例,一个应用服务器在每个机器上运行。
通常,会话允许以下各项中的至少一个:检查旅行产品的可用性、预订旅行产品或支付旅行产品。例如,那部分用户上下文可以涉及旅行产品可用性。典型地,旅行产品是用于班机、铁路或船运输的票。那部分用户上下文还可以涉及旅客姓名记录(PNR)。
在本发明的背景下,可以将用户会话视为其中为用户至少提供服务、要求处理一个或多个软件应用程序的服务的会话。
例如,在用户会话期间,用户访问与火车票可用性信息有关的服务和与飞机票可用性信息有关的服务。这些服务中的每一个要求软件应用程序的操作,例如:用于从用户接收关于出发日期和/或出发地和/或目的地的输入的软件应用程序;用于将用户请求的协议变换成另一协议的软件应用程序;用于从铁路库存数据库取回关于火车的可用性数据的软件应用程序;用于从航线库存数据库取回可用性的软件应用程序等。
如图1上所示,所述系统至少包括从用户接收请求的路由装置。优选地,所述路由装置是企业服务总线。替换地,路由装置还可以由路由器或者能够将事务路由到适当的应用服务器的任何其他装置。下面,路由装置将被称为ESBS。无论其性质是什么:企业服务总线、路由器等。
针对每个用户会话,一个ESB负责该会话。此ESB被从称为主ESB。优选地,主ESB是从用户接收请求的ESB。
优选地,所述系统包括多个机器。每个机器是至少包括至少运行应用服务器的处理装置的硬件设备。机器中的至少某些还包括数据存储装置。至少一个应用服务器在机器上运行。应用服务器使用处理装置。应用服务器中的至少某些还使用数据存储装置。因此,应用服务器被链接到处理装置且最后到数据存储装置。
根据特定实施例,多个应用服务器在单个机器上运行。每个应用服务器可以使用其自己的处理器装置,并且最后使用其自己的最后数据存储装置。替换地,多个应用服务器可以共享同一处理器且最后共享相同的数据存储装置。
根据另一实施例,对于给定机器而言,仅一个应用服务器运行。因此,根据本另一实施例,在以下描述中,将事务路由到机器还将意味着将事务路由到应用服务器。
每个应用服务器处理软件应用程序。
有利的,该软件应用程序被多个应用服务器独立地处理,这些应用服务器在同一机器上或不同机器上运行。
该系统还可以称为平台。
应用服务器被组织成群组20、30、40、50。
同一组应用服务器的所有应用服务器处理同一软件应用程序。例如,群组20的每个应用服务器A1、A2、...、A12处理软件应用程序A。群组30的每个应用服务器B1、B2、B8处理软件应用程序B。群组40的每个应用服务器C1、C2、C3处理软件应用程序C。
针对一个给定会话,仅存在按照软件应用程序操作的一个应用服务器。因此,在处理同一软件应用程序的一组应用服务器之中,一个应用服务器专用于该给定会话。
如上文所指示的,需要存储数据的每个应用服务器提供有数据存储装置。专用于会话的应用服务器在其存储装置中存储关于由该专用应用服务器处理的软件应用程序的那部分用户上下文。
在本发明中,也称为上下文的用户上下文是与用户有关且与处理会话有关的上下文。其表示被用于此特定用户的系统用来执行所请求功能的所有功能和技术信息,例如在旅行预订系统中,被链接到活动结束会话的预订(购物)会话上下文。那部分用户上下文可以是由用户提供的数据,诸如用户个人参考资料、出发日期、出发地或目的地。用户上下文的此部分可能是链接到存储装置的软件应用程序所需要的。该部分用户上下文还可以是由软件应用程序生成的数据。例如,该部分用户上下文可以涉及被软件应用程序取回的班机可用性或由软件应用程序计算或取回的价格。那部分用户上下文还可以涉及乘客姓名记录(PNR)或PNR的一部分。
因此,用户的上下文通过可能数目非常多的应用服务器被分发,用户上下文的每个部分被本地地存储。如图1上所描述的,用户Ua的上下文包括部分a0、a1、a2、a3,并且被通过应用服务器A2、B3、C2分发。用户Ub的上下文包括部分b0、b1、b2、b3,并且通过应用服务器A5、B5、C4被分发。更确切地,用户Ua的上下文的部分a1被存储在应用服务器A2的数据存储装置中;用户Ua的上下文的部分a2被存储在应用服务器B3的数据存储装置中;用户Uc的上下文的部分c3被存储在应用服务器C3的数据存储装置中等。
因此,专用于给定用户会话的所有应用服务器形成每个与该会话具有亲合性的一组应用服务器。
为了处理会话且为了为用户提供会话的统一视图,系统必须将与该会话具有亲合性的所有应用服务器作为目标。
为用户提供会话的统一视图意味着用户未注意到由各种并独立的应用服务器来处理各种软件应用程序。因此,在会话中涉及到的软件应用程序和应用服务器的数目对于用户而言是透明的。用户与系统相交互,如同其是唯一的应用服务器和机器一样。
下面参考图2和5来描述用于将相关应用服务器作为目标的解决方案。
图1清楚地图示出可以将附加应用程序添加到系统,从而增加整个系统的处理能力。例如,应用服务器A9、A10、A11、A12被添加到包括应用服务器A1、A2、...、A8的群组20。因此,可以由群组20来处理更多的事务,并且可以同时地处理更多数目的会话,而不减少处理时间。另外,附加应用服务器的集成是容易的,并且对于用户而言全部是透明的。
有利地,本发明还允许新服务或新软件应用程序到系统的集成。应用服务器D1、D2、D3、D4的群组50图示出处理新软件应用程序的应用服务器的集成,该新软件应用程序不处理先前集成的应用服务器。因此,可以在不要求在已集成的每一个应用服务器上加载新软件应用程序的情况下向所有用户提供附加服务。此外,在系统中集成新软件应用程序是相当简单的,因为只有ESB必须知道这些新软件应用程序和应用服务器的存在。更确切地,当集成每个新应用服务器时,该应用服务器和在其上面运行的软件应用程序被向ESB声明。在存在多个ESB的情况下,所有ESB都知道系统的布局,即每个ESB知道将每个应用服务器定位于哪里和在每个应用服务器上处理的软件应用程序是什么。
在特定实施例中,不止一个应用服务器在单个硬件机器上运行。然而,ESB知道专用于每个软件应用程序的所有应用服务器。
已在系统中的应用服务器群组不必知道附加应用服务器或附加软件应用程序被集成。因此,集成附加处理能力或附加服务不影响系统的其余部分且对于使用而言是透明的。
由于本发明,使新软件应用程序同时可用于所有用户也是容易的且不是耗时的。
在所示的使用情况下,每个应用服务器保持用户上下文的一部分。在某些实施例中,应用服务器不存储用户上下文的一部分。例如,此类应用服务器负责取回某些静态数据,诸如负责将出售事务传播至外部提供商的HTML资源。
亲合性密钥
现在将更详细地解释用于为用户提供用户会话的统一视图的解决方案。
在会话期间,用户通过同一ESB进入系统。优选地,形成入口点的ESB是主ESB并负责会话直至该会话的结束。
针对进入系统的每个事务,主ESB创建被称为分布式上下文相关器(DCX)的记录。
DCX专用于唯一用户会话。其被存储在主ESB处。DCX包括参考。参考识别哪个应用服务器正在保持用于给定软件应用程序或软件应用程序组的用户上下文。此参考被称为亲合性密钥。由于每个ESB知道系统的布局,通过读取DCX的亲合性密钥,ESB能够将与会话具有亲合性的应用服务器、即使用存储用户上下文的该部分的数据存储装置的应用服务器作为目标。因此,能够访问用户的整个上下文,即使其被通过大量的独立机器传播。
DCX被添加到每个事务。其被级联到两个应用服务器之间的所有事务。当应用服务器调用另一应用服务器时,DCX被传送到该另一应用服务器。其中应用服务器调用另一应用服务器的此类事务被称为并行调用或并行事务。
优选地,接收到DCX的每个用于应用服务器能够用附加信息将其充填,该附加信息允许所述应用服务器取回存储在其存储装置中的那部分用户上下文。这样,下次应用服务器将接收到用于该会话的事务;其将能够通过简单地读取DCX的该信息且无论事务来自哪个其他应用服务器而容易地取回用于该会话的那部分用户上下文。在本发明中,存储在DCX中的此信息片被称为可应用(applicative)上下文密钥。
因此,该DCX包括其被附着到的会话的参考、用于将与该会话具有亲合性的应用服务器作为目标的亲合性密钥和用以允许每个应用服务器取回其用户上下文部分的可应用上下文密钥。
可应用上下文密钥
DCX还包括唯一标识符。根据特定实施例,此唯一标识符可以用来参考子可应用上下文而不是使用特定参考。因此,此唯一标识符可以被应用服务器用作隐式可应用上下文密钥而不是创建和存储其自己的可应用上下文密钥。在这种情况下,在存储装置中用唯一标识符对应用上下文编索引。因此,DCX包含较少的信息,同时仍允许应用服务器取回其用户上下文部分。
有利地,DCX在任何事务上是可用的,独立于在事务中使用的通信协议。
因此,在软件应用程序被调用时的任何时间,接收到事务的ESB确定该事务是否要求被路由到与该会话具有亲合性的应用服务器。
如果要求亲合性,则事务需要被路由到保持被关联到该软件应用程序的用户上下文的一部分的应用服务器,则ESB必须将该应用服务器作为目标。为此,ESB读取DCX的亲合性密钥并识别相关应用服务器。
然后,所述相关应用服务器接收事务和DCX。然后,其可以读取应用上下文密钥以取回处理事务所需的那部分用户上下文。
如果到达ESB的事务不要求亲合性,则所述事务不需要被路由到处理被调用软件应用程序的应用服务器组中的特定应用服务器。
例如,这针对生成其自己的用户上下文部分的软件应用程序且在处理所述软件应用程序的应用服务器第一次接收到与该会话有关的事务时发生。在该第一事务之前,所述应用服务器没有创建用户上下文部分。典型示例涉及其中应用服务器旨在取回可用于给定参数:日期/出发地/目的地的班机的使用情况。在接收到这些参数之前,应用服务器并不保持用于该会话的任何上下文。然而,在第一处理之后,所述应用服务器将所取回的班机存储在专用存储装置中,从而创建用户上下文的一部分。
然后,在该应用服务器与会话之间创建亲合性。该应用服务器用将进一步允许每个ESB将其作为目标的亲合性密钥来充填DCX。优选地,应用服务器还用将允许其在下一次其接收到用于该会话的事务时取回可用班机的可应用上下文密钥来充填DCX。
一旦DCX被充填,则其被使用答复路径发送回到主ESB,其被存储在那里。
其中不要求亲合性的另一示例涉及不会使得需要存储与会话有关的任何数据的软件应用程序。例如,此类软件应用程序允许修改消息的格式以适应另一协议。一旦被变换,该消息然后被传播,但是不需要被存储在已执行格式变换的应用服务器处。然后,针对该软件应用程序,不用任何亲合性密钥来充填DCX。
当ESB接收到事务并确定此事务不要求亲合性时,ESB判定将在那里路由事务的应用服务器。通常,ESB将负荷加载或接近性参数考虑在内。
现在将参考描述示例性使用情况的图2来解释本发明。
为了明了起见,在图2中仅表示用户Ua。在会话开始时,不存在用户上下文。在本实施例中,系统包括多个ESB10、11、12。ESB被配置成使得事务在应用服务器上的每个处理之后到达ESB。
用户Ua开始会话并通过ESB10进入系统,因此其为用于该会话的主ESB。用户Ua为主ESB10提供形成用户上下文的一部分a0的信息。主ESB10保持用户上下文的部分a0。通常,a0包括DCX,或者是存储在主ESB中的DCX。ESB10确定软件应用程序A被调用。ESB10确定是否请求亲合性。由于在此阶段请求亲合性且由于DCX不包含用于软件应用程序A的任何亲合性密钥,所以ESB选择处理软件应用程序A的应用服务器组中的应用服务器中的任何一个。在本示例中,选择了应用服务器A3。主ESB10将事务(事务1)发送到应用服务器A3(步骤201)。应用服务器A3处理事务,生成用于上下文的部分a1并存储在其中A3运行的机器的数据存储装置中。主ESB还用将允许任何ESB在软件应用程序A将针对该会话被调用时进一步将应用服务器A3作为目标的亲合性密钥来充填DCX。亲合性的请求是ESB配置的一部分。基于事务参数,诸如到达ESB的事务的软件应用程序、来源和目的地,该ESB由于其配置而能够确定是否必须在考虑亲合性的情况下处理该事务。因此,将静态信息(ESB的配置)考虑在内以便确定是否同时请求亲合性。DCX的内容是动态信息。
优选地,应用服务器A3在DCX中添加将进一步允许应用服务器A3在下一次其将接收用于该会话的事务时容易地取回上下文的一部分a1的可应用上下文密钥。
DCX然后被返回至主ESB10并存储在那里。ESB11从应用服务器A3接收事务并确定软件应用程序B被软件应用程序A调用(步骤202)。此类调用称为并行调用或并行事务。由于针对软件应用程序B请求了亲合性且对于应用程序B而言没有亲合性被存储在DCX中,所以ESB11可以选择运行软件应用程序B的应用服务器组的应用服务器中的任何一个。ESB11选择应用服务器B8,用对应于B8的亲合性密钥来充填DCX,并且处理事务1所需的并行事务到达应用服务器B8。应用服务器B8处理事务并创建用于用户Ua的上下文的部分a2。通过并行调用创建的用户上下文的部分也称为子上下文。
DCX被用涉及应用服务器B8的可应用上下文密钥充填。
与软件应用程序A和软件应用程序B接收到的调用201、202同样地,软件应用程序C在没有用于亲合性的请求的情况下被调用(步骤203)。处理软件应用程序C的应用服务器C4被选用于处理事务1。应用服务器C4创建用户上下文的部分a3并将其存储在其数据存储装置中。DCX被用允许目标应用服务器C4取回用户上下文的部分a3的亲合性密钥充填。DCX被用答复返回至主ESB10。
主ESB10从用户Ua接收新事务(事务2)。主ESB10确定软件应用程序B被调用以处理该新事务,并且请求了亲合性。因此,必须将保持被关联至该服务的那部分用户上下文的服务组B的应用服务器作为目标。通过读取DCX,主ESB10读取用于该会话的服务组B的相关应用服务器的参考并因此将应用服务器B8作为目标。
然后,主ESB10然后将新事务路由到应用服务器B8(步骤204)。
然后,应用服务器B8将接收新事务,将取回用户上下文的其部分a3,并将处理该新事务。
因此,通过允许各种服务器和ESB相交互,本发明提供了用以在其上下文被分发并本地地存储的同时提供会话的统一视图的高效解决方案。
用户上下文的一部分的上下文寿命
现在将描述本发明的非限制性但特别有利特征。这些特征允许用户上下文的某些部分在所有会话期间保持可用,该用户上下文的某些部分在该会话期间最后可能被需要以便处理事务。当会话结束时,上下文的这些部分被去除。
事实上,用户上下文优选地仅在会话的寿命期间是有效的。因此,会话的上下文并不是持久性的,并且在会话结束时,上下文不再被存储且被去除。
例如,在用户会话的用户上下文中用来管理预订的用户上下文的所有部分被保持到用户会话的结束。
分布式上下文相关器(DCX)在用户会话的整个寿命期间是可用的。保持用户上下文的一部分的任何应用服务器可以请求将其上下文的寿命链接到用户会话的寿命。
通过打开保持DCX的ESB与保持用户上下文的应用服务器之间的有状态对话,用户上下文和用户会话在寿命方面被链接在一起。
用于打开有状态对话的请求在ESB配置中被静态地定义为被调用服务的一部分。更确切地,当ESB接收到事务时,其分析事务的参数,诸如其来源、目的地和被调用软件应用程序。然后,ESB由于其配置而能够确定是否必须打开有状态对话。该机制适用于确定事务是否必须考虑亲合性。
如果应用服务器调用在要求使其用户上下文的寿命被链接到DCX的那个的另一应用服务器上处理的服务或软件应用程序,则负责路由并行事务的ESB然后调用主ESB并让后者打开与所述另一应用服务器的有状态对话。然后,主ESB打开与所述另一应用服务器的有状态对话。负责路由并行事务的ESB然后将事务路由到已在其上面与主ESB打开有状态对话的所述另一应用服务器。
主ESB与给定应用服务器之间的有状态对话必须在任何事务转到该给定应用服务器之前打开。这是为什么如果必须由并行业务且在使有状态对话打开之前将事务路由到给定应用服务器、则路由并行事务的ESB将在将事务路由到应用服务器之前请求主ESB打开有状态对话的原因。此功能被称为对话的自动发起。
一旦此类有状态对话被打开,则DCX的寿命被链接到存储在机器中的用户上下文的寿命,处于与主ESB的有状态对话中的应用服务器在所述机器处运行。只有当DCX将消失时,所述用户上下文才将被删除。
由于此解决方案,本发明允许在限制在会话结束时存储的数据的同时保持在会话期间必须可用的上下文的所有部分。另外,这种解决方案限制在应用服务器之间传送的业务和数据量。
根据优选实施例,当有状态对话打开时,ESB定期地向共享其有状态对话的应用服务器发送消息,所述消息指示必须保持用户上下文。这些消息被称为“保持活动”消息。因此,“保持活动”消息被从主ESB发送到与该主ESB处于有状态对话中的所有应用服务器。当会话结束时,可以将DCX删除,并且主ESB向处于有状态对话中的所有应用服务器发送指示可以删除用户上下文的消息。这些消息被称为“终止”消息。
每个应用服务器或机器和用户上下文仅存在一个来自DCX的主ESB所有者的有状态对话。所有并行事务都使用无状态会话,即使全局事务是有状态的。
图3描述了其中有状态对话必须打开的事务的第一示例。
用户Ua通过主ESB10向系统发送请求。步骤301和302类似于图2的步骤201和202。当应用服务器B8已处理事务时,ESB12接收该事务(步骤303)并负责将其路由。ESB12确定被软件应用程序B调用的软件应用程序C要求使其用户上下文的一部分的寿命被链接到会话的寿命。
如果对于服务组C的任何应用服务器上的客户Ua而言不存在用户上下文的一部分,则负责将事务路由到服务组C的ESB12调用保持DCX的主ESB10并请求其打开与服务组C的一个应用服务器的有状态对话(步骤304)。然后,主ESB10打开与服务组C的应用服务器的一个应用服务器的有状态对话(步骤305)。然后,用所选的应用服务器C4的参考充填DCX。然后,DCX被返回至负责路由并行事务的ESB12。然后,ESB12通过读取DCX将应用服务器C4作为目标并将事务路由到处于与主ESB的有状态对话中的应用服务器C4(步骤306)。
图4描述了其中有状态对话必须打开的事务的另一示例。
通过图形用户界面(GUI),主ESB在步骤401处从用户接收请求。例如,该请求是乘客文件的创建。其协议是HTML。为了被系统处理,该请求必须被变换成诸如EDIFACT协议的另一协议。主ESB确定为了对请求进行变换,必须将处理软件应用程序A的应用服务器组的应用服务器作为目标。此类变换不需要亲合性。然后,主ESB选择服务组A的应用服务器并将事务路由到该应用服务器(步骤402)。该应用服务器被称为A1。
A1通过对协议进行变换来处理事务。没有数据必须被A1存储。因此,在A1处不创建用户上下文的一部分。主ESB与A1之间的会话是无状态的。
然后,被称为并行ESB的ESB(ESB Col)接收事务(步骤403)。并行ESB确定必须将事务路由到处理软件应用程序B的应用服务器。并行ESB还确定请求亲合性,并且被关联到负责下一个处理的应用服务器的那部分上下文的寿命将必须被链接到会话的寿命。并行ESB读取DCX并确定在用于软件应用程序B的DCX中未设定亲合性(步骤404)。然后,并行ESB调用主ESB并请求它打开与处理软件应用程序B的应用服务器的有状态对话(步骤405)。主ESB选择专用于处理软件应用程序B的应用服务器,称为B2。主ESB用对应于B2的亲合性密钥充填DCX(步骤406)并向该应用服务器转送用于亲合性初始化的请求(步骤407)。因此,B2被告知必须将其用户上下文部分的寿命链接到会话的寿命(步骤405)。B2将其数据存储装置的一部分分配给用户上下文的该部分(步骤408)。B2用可应用上下文密钥来充填DCX并将DCX发送回到主ESB(步骤409)。DCX被存储在主ESB处并被发送回到并行ESB(步骤410)。
并行ESB取回原始消息,用新DCX将其更新并根据DCX的亲合性密钥将应用服务器B2被作为目标(步骤411)。因此该事务被路由到B2(步骤411)。B2然后在EDIFACT协议中接收请求并对其进行处理。例如,该请求可以在于创建乘客文件。
由于B2的用户上下文的该部分的寿命被链接到会话的寿命,所以乘客文件在会话的整个寿命期间在B2处将是可用的,并且稍后将被删除。
图5描述了本发明的另一使用情况。在本示例性使用情况中,ESB10包括多个复用器(MUX1、MUX2、MUX3)和至少与复用器MUX3相连的服务器(SRV2)。
在步骤501处,用户向服务器SRV2发送请求。服务器SRV2创建用于该会话的DCX记录。
由于会话刚刚开始,还没有上下文可用,并且处理软件应用程序A的应用服务器A1被调用,并接收事务以及DCX。DCX被充填用于该应用服务器A1的亲合性密钥。然后针对软件应用程序A设定亲合性(步骤502)。A1处理事务,存储其用户上下文部分并用其可应用上下文来充填DCX。例如,用户上下文涉及班机可用性且A1负责取回可用班机的参考。DCX然后在主ESB10处被发送回(步骤503)并被存储(步骤504)。在步骤505处,为用户提供A1的处理结果(可用的班机的参考)。这结束了用于该会话的第一事务。
用户然后发起另一事务。例如,用户想要购买通过事务1取回的班机的一段。
SRV2接收购买请求并确定必须调用软件应用程序B(步骤506)。然后用服务组B的应用服务器B1来创建亲合性。DCX被发送到该应用服务器B1(步骤507)。还针对B1创建可应用上下文密钥(508)。DCX然后通过负责处理来自处理软件应用程序B的应用服务器的所有事务的复用器MUX1被级联(步骤509)。MUX1确定用亲合性的请求来调用软件应用程序A。DCX允许MUX1将A1作为目标(步骤510)。由于其可应用上下文密钥,A1取回在前一事务期间存储的其上下文部分(可用班机的参考)。然后A1将事务连同DCX一起发送回到MUX1(步骤511)。来自A1的答复被ESB返回至B1(步骤512)。B1由于来自A1的数据取回而处理该事务。例如,询问可用段的价格。DCX被级联(步骤513)并与处理结果一起发送到主ESB(步骤514)。DCX被存储。处理的结果被提供给用户(步骤515)。
如以下描述中详述的,本发明提供了一种解决方案,提供用户上下文的一致且统一的视图,保持系统的模块性以使得处理容量的增加变得容易并允许新服务/产品的容易集成。
本发明还提供了可操作性方面的显著优点,因为其允许分配给包括各种软件应用程序的全局产品的每个子部分的资源的更容易控制。其还使得能够使全局中断的风险最小化,因为给定机器或机器组上的中断并不显著地影响其他机器。
前述描述已经由示例性且非限制性示例提供了用于实现本发明的示例性实施例的各种方法、设备和计算机程序软件的全面的信息性描述。然而,当结合附图和所附权利要求来阅读时,鉴于前述描述,各种修改和自适应可以变得对于本领域的技术人员而言显而易见。作为某些示例,本领域的技术人员可以尝试其他类似或等价数据结构和逻辑流的使用。然而,本发明的讲授内容的所有此类和类似修改仍将落在本发明的实施例的范围内。
此外,可以在没有其他特征的相应使用的情况下有利地使用本发明的示例性实施例的特征中的某些。同样地,应将前述描述视为仅仅说明本发明的原理、讲授内容和示例性实施例,并且不对其进行限制。

Claims (20)

1.一种为用户(1、2、3)提供用户会话的方法,其中,用户会话要求运行由系统(100)处理的多个软件应用程序,该系统与用户以客户/服务器模式运行,多个软件应用程序被链接到与用户会话有关的用户上下文的至少一部分,所述方法的特征在于包括用至少一个数据处理器执行的以下步骤:
—针对每个用户会话,被链接到用户上下文的至少一部分的每个软件应用程序被一组(20、30、40、50)应用服务器(A1、A2、...)之中的专用应用服务器(A1、A2、...)处理,其中所述一组(20、30、40、50)应用服务器(A1、A2、...)中的每一个应用服务器独立地处理该软件应用程序,从而为每个会话定义其中每个都与用户会话具有亲合性的一组应用服务器(A3、B8、C4),
—为具有与用户会话的亲合性的每个应用服务器提供数据存储装置,该数据存储装置被配置为存储被链接到由所述每个应用服务器处理的应用软件的那部分用户上下文,
—在一个或多个路由装置(10、11、12)处,所述一个或多个路由装置中的一个是负责用户会话的主路由装置(10):至少从用户接收请求并将用户会话的事务至少朝着与用户会话具有亲合性的应用服务器(A3、B8、C4)路由,以便满足请求,路由事务的步骤包括;
○向用户会话分配被布置成包括亲合性密钥的相关记录(DCX),每个亲合性密钥指示对于给定软件应用程序与用户会话具有亲合性的应用服务器,
○与每个事务一起传播该相关记录,从而允许路由装置(10、11、12)读取相关记录以便将与用户会话具有亲合性且处理与处理事务有关的软件应用程序的应用服务器(A3、B8、C4)作为目标。
2.根据前一权利要求所述的方法,其中,所述一个或多个路由装置(10、11、12)被配置成知道如何到达每一个应用服务器(A3、B8、C4)。
3.根据前述权利要求中的任一项所述的方法,其中,所述相关记录被存储在被关联到主路由装置(10)的数据存储装置中。
4.根据前述权利要求中的任一项所述的方法,其中,所述主路由装置(10)是从用户接收请求的路由装置(10、11、12)。
5.根据前述权利要求中的任一项所述的方法,其中,所述亲合性密钥由路由装置(10、11、12)设定。
6.根据前述权利要求中的任一项所述的方法,其中,所述路由装置(10、11、12)是企业服务总线(ESB)。
7.根据前述权利要求中的任一项所述的方法,其中,路由装置(10、11、12)从处理软件应用程序的应用服务器接收事务以及被分配给用户会话的相关记录;然后将该事务路由到处理另一软件应用程序的另一应用服务器,路由事务的步骤包括其中所述路由装置(10、11、12)读取相关记录的步骤。
8.根据前述权利要求所述的方法,其中,当在所述路由装置(10、11、12)处接收到相关记录时,如果该相关记录不包含指示所述另一应用服务器的亲合性密钥,则其中所述路由装置(10、11、12)将事务路由到另一应用服务器的步骤包括以下步骤:所述路由装置(10、11、12)确定被链接到所述另一软件应用程序的那部分用户上下文的寿命是否必须被链接到用户会话的寿命。
9.根据两个前述权利要求中的任一项所述的方法,其中,当在所述路由装置(10、11、12)处接收到相关记录时,如果该相关记录不包含指示所述另一应用服务器的亲合性密钥并且如果被链接到所述另一软件应用程序的那部分用户上下文的寿命必须被链接到用户会话的寿命,则其中所述路由装置(10、11、12)将事务路由到另一应用服务器的步骤包括附加的以下步骤:
—所述路由装置(10、11、12)向主路由装置(10)发送用于亲合性初始化的请求,
然后所述主路由装置(10):
○选择应用服务器组(B1、B2、...)之中的处理所述另一软件应用程序的所述另一应用服务器,
○用指示所述另一应用服务器的亲合性密钥充填相关记录,
○向所述另一应用服务器发送亲合性初始化的消息,
○从所述另一应用服务器接收亲合性初始化的确认,
○将被充填的相关记录发送到所述路由装置(10、11、12),
—然后所述路由装置(10、11、12)根据被充填的相关记录的亲合性密钥将事务路由到所述另一应用服务器。
10.根据权利要求8所述的方法,其中,当在所述路由装置(10、11、12)处接收到相关记录时,如果该相关记录不包含指示所述另一应用服务器的亲合性密钥并且如果被链接到所述另一软件应用程序的那部分用户上下文的寿命不必须被链接到用户会话的寿命,则其中所述路由装置(10、11、12)将事务路由到所述另一应用服务器的步骤包括附加的以下步骤:所述路由装置(10、11、12)选择应用服务器组(B1、B2、...)之中的处理所述另一软件应用程序的所述另一应用服务器并将事务路由到所述另一应用服务器。
11.根据前述权利要求所述的方法,其中,所述相关记录被充填指示所述另一应用服务器的亲合性密钥。
12.根据前述权利要求所述的方法,其中,所述相关记录被所述路由装置(10、11、12)充填,并且其中,所述相关记录被返回到主路由装置(10)并存储在被关联到主路由装置(10)的数据存储装置中。
13.根据权利要求7所述的方法,其中,当在所述路由装置(10、11、12)处接收到相关记录时,如果该相关记录已包含指示所述另一应用服务器的亲合性密钥,则所述路由装置(10、11、12)根据亲合性密钥来路由事务。
14.根据前述权利要求中的任一项所述的方法,其中,应用服务器从路由装置(10、11、12)接收事务,通过处理该事务来生成用户上下文的一部分并将用户上下文的该部分存储在被提供给所述应用服务器的数据存储装置中。
15.根据前述权利要求所述的方法,其中,所述应用服务器用允许从所述应用服务器取回用户上下文的所述部分的可应用上下文密钥来充填相关记录。
16.根据前述权利要求所述的方法,其中,用可应用上下文密钥充填的相关记录被发送到主路由装置(10)并存储在被关联到主路由装置(10)的数据存储装置中。
17.根据两个前述权利要求中的任一项所述的方法,其中,当在所述应用服务器处接收到与所述用户会话有关的另一事务时,所述应用服务器基于可应用上下文密钥将用户上下文的所述部分定位于所述存储装置中。
18.根据权利要求1至9中的任一项所述的方法,其中,如果被链接到软件应用程序的用户上下文的一部分的寿命必须被链接到用户会话的寿命,则有状态对话在主路由装置(10)和处理所述软件应用程序的应用服务器之间打开,只要用户会话是活动的即可,有状态对话在用户会话结束时被自动关闭。
19.一种包含软件程序指令的非临时计算机可读介质,其中,由至少一个数据处理器进行的软件程序指令的执行导致运行的执行,该操作包括如前述权利要求中的任一项所述的方法的执行。
20.一种用于为用户(1、2、3)提供用户会话的系统(100),包括多个软件应用程序,软件应用程序的运行是提供用户会话所需要的,软件应用程序中的至少一个被链接到与用户会话有关的用户上下文的至少一部分,
所述系统的特征在于包括:
○多个机器,每个机器至少包括处理器,
○多个应用服务器(A1、A2、...),每个应用服务器在一个机器上运行,每个应用服务器被布置成使得针对该用户会话,每个软件应用程序由一组(20、30、40、50)应用服务器(A1、A2、...)之中的专用于该软件应用程序的一个应用服务器来处理,从而针对每个用户会话定义其中每个与用户会话具有亲合性的一组应用服务器(A3、B8、C4),
○数据存储装置,被关联到处理被链接到用户上下文的一部分的软件应用程序的每个应用服务器,每个存储装置被布置成存储被链接到软件应用程序的那部分用户上下文,所述软件应用程序由被关联到所述存储装置的应用服务器处理,
○一个或多个路由装置(10、11、12),其中,主路由装置(10)被布置成负责用户会话,所述一个或多个路由装置(10、11、12)被配置成:
至少从用户接收请求并将用户会话的事务朝着与用户会话具有亲合性的应用服务器(A3、B8、C4)路由,以便满足请求,所述路由装置(10、11、12)被配置成使得所述事务步骤包括:
○向用户会话分配被布置成包括亲合性密钥的相关记录(DCX),每个亲合性密钥指示对于给定软件应用程序与用户会话具有亲合性的应用服务器,
○与每个事务一起传播该相关记录,从而允许路由装置(10、11、12)读取相关记录以便以与用户会话具有亲合性并且处理与处理事务有关的软件应用程序的应用服务器(A2、B3、C2)作为目标。
CN2012800105924A 2011-03-15 2012-03-15 用于提供涉及多个软件应用程序的会话的方法和系统 Pending CN103403749A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
EP11305281.5 2011-03-15
EP11305281A EP2500856A1 (en) 2011-03-15 2011-03-15 Method and system for providing a session involving a plurality of software applications
US13/065,312 US8433809B2 (en) 2011-03-15 2011-03-18 Method and system for providing a session involving a plurality of software applications
US13/065,312 2011-03-18
PCT/EP2012/054563 WO2012123544A1 (en) 2011-03-15 2012-03-15 Method and system for providing a session involving a plurality of software applications

Publications (1)

Publication Number Publication Date
CN103403749A true CN103403749A (zh) 2013-11-20

Family

ID=44314913

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2012800105924A Pending CN103403749A (zh) 2011-03-15 2012-03-15 用于提供涉及多个软件应用程序的会话的方法和系统

Country Status (11)

Country Link
US (1) US8433809B2 (zh)
EP (1) EP2500856A1 (zh)
JP (1) JP6087847B2 (zh)
KR (1) KR101636601B1 (zh)
CN (1) CN103403749A (zh)
AU (1) AU2012228218B2 (zh)
BR (1) BR112013019278A2 (zh)
CA (1) CA2824393C (zh)
SG (1) SG192161A1 (zh)
WO (1) WO2012123544A1 (zh)
ZA (1) ZA201305950B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9209983B2 (en) * 2007-11-19 2015-12-08 Cisco Technology, Inc. Generating a single advice of charge request for multiple sessions in a network environment
US9202237B2 (en) * 2007-11-27 2015-12-01 Cisco Technology, Inc. Generating a single billing record for multiple sessions in a network environment
US9235620B2 (en) 2012-08-14 2016-01-12 Amadeus S.A.S. Updating cached database query results
US9524186B2 (en) 2014-04-28 2016-12-20 Oracle International Corporation System and method for supporting common transaction identifier (XID) optimization based on resource manager (RM) instance awareness in a transactional environment
US9569224B2 (en) 2014-05-06 2017-02-14 Oracle International Corporation System and method for adaptively integrating a database state notification service with a distributed transactional middleware machine
US20160285957A1 (en) * 2015-03-26 2016-09-29 Avaya Inc. Server cluster profile definition in a distributed processing network
US10860735B2 (en) 2016-08-05 2020-12-08 Sensoriant, Inc. Database system for protecting and securing stored data using a privacy switch
CN109643300A (zh) * 2016-08-05 2019-04-16 传感器有限公司 在提供产品和/或服务的应用程序中维护用户隐私的系统和方法
US10380359B2 (en) 2016-08-05 2019-08-13 Sensoriant, Inc. Software-based switch for providing products and/or services to users without compromising their privacy
JP2019533852A (ja) * 2016-09-09 2019-11-21 センソリアント・インコーポレイテッド プライバシーを損なうことなしに製品および/またはサービスをユーザに提供するためのソフトウェアベースのスイッチ
US10891440B1 (en) 2019-10-30 2021-01-12 Globant España, S.A. Natural language driven transaction system
US11695849B2 (en) * 2021-01-19 2023-07-04 International Business Machines Corporation Transaction tracking for high availability architecture using a tracking token and middleware instance information

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6466965B1 (en) * 1999-04-15 2002-10-15 International Business Machines Corporation Centralized affinity maintenance in a workload managed client/server data processing system
CN1764191A (zh) * 2004-10-18 2006-04-26 国际商业机器公司 用于动态更新会话状态亲缘性的方法和系统
US20060155857A1 (en) * 2005-01-06 2006-07-13 Oracle International Corporation Deterministic session state management within a global cache array
CN101048735A (zh) * 2004-08-03 2007-10-03 索芙特瑞斯提股份有限公司 用于经由上下文策略控制来控制应用程序间关联的系统和方法
CN101083620A (zh) * 2006-05-31 2007-12-05 华为技术有限公司 消息业务路由装置和方法
CN101197806A (zh) * 2006-12-08 2008-06-11 华为技术有限公司 一种路由会话的方法、网络及设备

Family Cites Families (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5495606A (en) 1993-11-04 1996-02-27 International Business Machines Corporation System for parallel processing of complex read-only database queries using master and slave central processor complexes
US5819255A (en) 1996-08-23 1998-10-06 Tandem Computers, Inc. System and method for database query optimization
US5822747A (en) 1996-08-23 1998-10-13 Tandem Computers, Inc. System and method for optimizing database queries
US6158044A (en) 1997-05-21 2000-12-05 Epropose, Inc. Proposal based architecture system
US7328166B1 (en) 1999-01-20 2008-02-05 Sabre, Inc. Global reservations transaction management system and method
US6392997B1 (en) 1999-03-16 2002-05-21 Cisco Technology, Inc. Technique for group-based routing update with limited per neighbor/adjacency customization
AU4350700A (en) 1999-04-16 2000-11-02 Cg & G Software Plus Tee time reservation system
WO2001033472A2 (en) 1999-11-01 2001-05-10 Ita Software, Inc. Method and apparatus for providing availability of airline seats
US20030004760A1 (en) 1999-12-03 2003-01-02 Schiff Martin R. Systems and methods of on-line booking of cruises
US7437408B2 (en) 2000-02-14 2008-10-14 Lockheed Martin Corporation Information aggregation, processing and distribution system
CA2409920C (en) 2000-06-22 2013-05-14 Microsoft Corporation Distributed computing services platform
NO312697B1 (no) 2000-09-01 2002-06-17 Ericsson Telefon Ab L M Fremgangsmåte for å tilveiebringe effektive operasjoner i et serversystem
US6640222B1 (en) 2000-09-29 2003-10-28 Motorola, Inc. Method for selecting an information unit among conflicting information units based on context fields by a user device
US20020078150A1 (en) 2000-12-18 2002-06-20 Nortel Networks Limited And Bell Canada Method of team member profile selection within a virtual team environment
US7003565B2 (en) * 2001-04-03 2006-02-21 International Business Machines Corporation Clickstream data collection technique
US7543066B2 (en) * 2001-04-30 2009-06-02 International Business Machines Corporation Method and apparatus for maintaining session affinity across multiple server groups
US7165105B2 (en) 2001-07-16 2007-01-16 Netgenesis Corporation System and method for logical view analysis and visualization of user behavior in a distributed computer network
US7512652B1 (en) 2001-09-28 2009-03-31 Aol Llc, A Delaware Limited Liability Company Passive personalization of buddy lists
WO2003060798A2 (en) 2002-01-09 2003-07-24 Agilquest Corporation System and method for managing workplace real estate and other resources
CA2381737A1 (en) 2002-04-15 2003-10-15 Ibm Canada Limited-Ibm Canada Limitee Framework for managing data that provides correlation information in a distributed computing system
US7089228B2 (en) 2002-04-18 2006-08-08 International Business Machines Corporation Computer apparatus and method for caching results of a database query
US20030233473A1 (en) 2002-05-07 2003-12-18 International Business Machines Corporation Method for configuring logical connections to a router in a data communication system
AU2003239385A1 (en) * 2002-05-10 2003-11-11 Richard R. Reisman Method and apparatus for browsing using multiple coordinated device
US7337226B2 (en) * 2002-05-10 2008-02-26 Oracle International Corporation Method and mechanism for implementing dynamic sizing of session pools
US7490162B1 (en) * 2002-05-15 2009-02-10 F5 Networks, Inc. Method and system for forwarding messages received at a traffic manager
US7146400B2 (en) 2002-05-29 2006-12-05 International Business Machines Corporation Web and lotus notes adapter layers
US8020196B2 (en) * 2002-10-25 2011-09-13 Randle William M Secure transmission and exchange of standardized data
US8602774B2 (en) * 2002-12-04 2013-12-10 Bryan Wasylucha Process of tooth whitening and apparatus therefor
US7454761B1 (en) 2002-12-20 2008-11-18 Cisco Technology, Inc. Method and apparatus for correlating output of distributed processes
US20040128542A1 (en) 2002-12-31 2004-07-01 International Business Machines Corporation Method and system for native authentication protocols in a heterogeneous federated environment
JP3882917B2 (ja) * 2003-04-03 2007-02-21 日本アイ・ビー・エム株式会社 情報処理システム、情報処理装置及びプログラム
WO2004109443A2 (en) 2003-06-02 2004-12-16 Liquid Machines, Inc. Managing data objects in dynamic, distributed and collaborative contexts
KR100541758B1 (ko) 2003-07-08 2006-01-10 주식회사 팬택앤큐리텔 무선가입자망의 가입자접속장치에서 패킷 형태의 과금갱신 정보 전송 방법
US7395279B2 (en) 2003-11-17 2008-07-01 International Business Machines Corporation System and method for achieving different levels of data consistency
US20050108069A1 (en) 2003-11-18 2005-05-19 Tomer Shiran System and a method for prefetching travel information
JP4452533B2 (ja) 2004-03-19 2010-04-21 株式会社日立製作所 システムおよび記憶装置システム
US7778962B2 (en) 2004-04-30 2010-08-17 Microsoft Corporation Client store synchronization through intermediary store change packets
US20050262100A1 (en) 2004-05-19 2005-11-24 Bea Systems, Inc. System and method for context propagation in application servers and transaction-based systems
US20060212583A1 (en) 2005-03-17 2006-09-21 Beadle Bruce A Distributing messaging session logs to users entering an already ongoing messaging session
JP4042760B2 (ja) * 2005-05-30 2008-02-06 株式会社日立製作所 通信管理方法及びシステム
US7412224B2 (en) 2005-11-14 2008-08-12 Nokia Corporation Portable local server with context sensing
JP4763800B2 (ja) 2005-12-12 2011-08-31 テレフオンアクチーボラゲット エル エム エリクソン(パブル) マルチメディア通信セッションを確立するための方法および装置
JP2007219608A (ja) * 2006-02-14 2007-08-30 Fujitsu Ltd 負荷分散処理プログラム及び負荷分散装置
US7925624B2 (en) 2006-03-31 2011-04-12 Amazon Technologies, Inc. System and method for providing high availability data
US7774463B2 (en) 2006-07-25 2010-08-10 Sap Ag Unified meta-model for a service oriented architecture
US8112550B2 (en) 2006-09-19 2012-02-07 Tacoda Llc System and method for preserving consumer choice
WO2008086157A2 (en) 2007-01-05 2008-07-17 Ita Software, Inc. Notification service for presenting travel information
US20080167906A1 (en) 2007-01-05 2008-07-10 De Marcken Carl Support for flexible travel planning
US20080262878A1 (en) 2007-04-17 2008-10-23 Travelocity.Com Lp Systems, methods, and computer program products for generating and updating a cache of price and availability information for travel packages and components
US7870267B2 (en) 2007-05-16 2011-01-11 International Business Machines Corporation Creating global sessions across converged protocol applications
US8108528B2 (en) 2007-07-11 2012-01-31 International Business Machines Corporation System and method for verifying the identity of a chat partner during an instant messaging session
CN101187946A (zh) 2007-12-14 2008-05-28 无敌科技(西安)有限公司 利用实时信息更新数据系统及其方法
US20110082942A1 (en) 2008-05-28 2011-04-07 Panasonic Corporation Communication terminal device, communication control method, and communication control program
US8447881B2 (en) * 2008-09-02 2013-05-21 Microsoft Corporation Load balancing for services
US20100312586A1 (en) 2009-06-03 2010-12-09 Drefs Martin J Generation of Travel-Related Offerings
EP2282287A1 (en) 2009-07-28 2011-02-09 Amadeus S.A.S. Method to keep coherent a travel shopping basket
US9515849B2 (en) 2009-12-22 2016-12-06 At&T Intellectual Property I, L.P. Method and apparatus for managing communication faults
US9880014B2 (en) 2010-11-24 2018-01-30 Telenav, Inc. Navigation system with session transfer mechanism and method of operation thereof
EP2500848A1 (en) 2011-03-15 2012-09-19 Amadeus S.A.S. Method and system for centralized reservation context management on multi-server reservation system
ES2454548T3 (es) 2011-03-15 2014-04-10 Amadeus S.A.S. Procedimiento y sistema para proporcionar una sesión en un entorno heterogéneo
EP2500832B1 (en) 2011-03-15 2018-07-25 Amadeus S.A.S. Method and system for synchronization mechanism on multi-server reservation system
EP2521074A1 (en) 2011-05-02 2012-11-07 Amadeus S.A.S. Method and system for an improved reservation system optimizing repeated search requests

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6466965B1 (en) * 1999-04-15 2002-10-15 International Business Machines Corporation Centralized affinity maintenance in a workload managed client/server data processing system
CN101048735A (zh) * 2004-08-03 2007-10-03 索芙特瑞斯提股份有限公司 用于经由上下文策略控制来控制应用程序间关联的系统和方法
CN1764191A (zh) * 2004-10-18 2006-04-26 国际商业机器公司 用于动态更新会话状态亲缘性的方法和系统
US20060155857A1 (en) * 2005-01-06 2006-07-13 Oracle International Corporation Deterministic session state management within a global cache array
CN101083620A (zh) * 2006-05-31 2007-12-05 华为技术有限公司 消息业务路由装置和方法
CN101197806A (zh) * 2006-12-08 2008-06-11 华为技术有限公司 一种路由会话的方法、网络及设备

Also Published As

Publication number Publication date
US20120239728A1 (en) 2012-09-20
AU2012228218B2 (en) 2015-03-19
ZA201305950B (en) 2015-03-25
KR101636601B1 (ko) 2016-07-20
AU2012228218A1 (en) 2013-05-02
SG192161A1 (en) 2013-08-30
KR20140010960A (ko) 2014-01-27
CA2824393C (en) 2018-05-01
WO2012123544A1 (en) 2012-09-20
JP2014512035A (ja) 2014-05-19
BR112013019278A2 (pt) 2017-02-21
CA2824393A1 (en) 2012-09-20
US8433809B2 (en) 2013-04-30
EP2500856A1 (en) 2012-09-19
JP6087847B2 (ja) 2017-03-01

Similar Documents

Publication Publication Date Title
CN103403749A (zh) 用于提供涉及多个软件应用程序的会话的方法和系统
CN110443695A (zh) 数据处理方法及其装置、电子设备和介质
CN108182111A (zh) 任务调度系统、方法和装置
CN103404111B (zh) 用于在异构环境中提供会话的方法与系统
CN107798108A (zh) 一种异步任务查询方法及设备
CN106548261A (zh) 一种业务流程控制方法、装置及电子设备
CN111612502A (zh) 一种基于活动任务的资源分配方法、装置和电子设备
CN111010527B (zh) 一种通过短信链接建立视频通话的方法及相关装置
CN109783197A (zh) 用于程序运行时环境的调度方法和装置
CN110750780A (zh) 基于多业务系统的用户角色权限融合方法、装置以及设备
CN114169801A (zh) 工作流调度方法和装置
CN109685642A (zh) 信用卡资源处理方法、装置、电子设备及存储介质
US20230145947A1 (en) Interactive voice response using intent prediction and, for example a 5g capable device
CN111353766A (zh) 分布式业务系统的业务流程处理系统及方法
US9323509B2 (en) Method and system for automated process distribution
US20200128133A1 (en) System and method for maintaining sharing groups in a service delivery system
US8699696B1 (en) System and method for efficiently managing large contact centers
JP2004110620A (ja) Webサービスの動的統合方法およびシステム
CN112954075B (zh) 一种业务功能实现方法、系统、对应装置及存储介质
CN110311984A (zh) 一种防止跳单的方法、介质、装置和计算设备
CN113887944A (zh) 活动管理方法、装置、服务器及介质
CN116228346A (zh) 订单任务处理方法、装置、系统和存储介质
CN114493628A (zh) 服务单处理方法、装置、电子设备和计算机可读介质
CN112235403A (zh) 一种新旧系统割接过程灰度管控的方法、装置以及系统
CN115796753A (zh) 宽带业务办理方法、装置、系统及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20131120