CN101636723A - 管理会话的Web服务器及其方法 - Google Patents

管理会话的Web服务器及其方法 Download PDF

Info

Publication number
CN101636723A
CN101636723A CN200880008946A CN200880008946A CN101636723A CN 101636723 A CN101636723 A CN 101636723A CN 200880008946 A CN200880008946 A CN 200880008946A CN 200880008946 A CN200880008946 A CN 200880008946A CN 101636723 A CN101636723 A CN 101636723A
Authority
CN
China
Prior art keywords
mentioned
http
session status
session
response
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
CN200880008946A
Other languages
English (en)
Inventor
村井修一
花井志生
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN101636723A publication Critical patent/CN101636723A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Software Systems (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明提供一种Web服务器,包括:存储部,其用于存储会话状态;接收部,其将会话状态与第一HTTP请求建立对应而从终端装置进行接收;存入部,其向存储部中的、作为HTTP会话对象而被响应接收到的第一HTTP请求来进行处理的处理程序访问的存储区域中存入接收到的会话状态;访问部,其响应处理程序中的访问指令的执行来访问所存入的会话状态;以及返回部,其响应处理程序中的返回指令的执行,从存储部中读出会话状态来作为与第二HTTP请求建立对应而由终端装置发送的参数,来设定在第一HTTP响应中,并将所设定的第一HTTP响应返回到终端装置。能灵活地变更Web服务器的结构。

Description

管理会话的Web服务器及其方法
技术领域
本发明涉及Web服务器。本发明尤其涉及管理会话的Web服务器及其方法。
背景技术
为了实现近年来的多种多样的网页(webpage),在Web服务器中装载有会话管理功能。按照该功能,使用者不仅能够阅览已请求的网页,还能够登录到自己的专用页来参照以前访问过的历史,或者根据该历史来进行接下来的操作。会话管理通过按每个使用者来保存表示由Web服务器进行的处理的经过的会话状态来实现。例如,在JavaEE(Java Enterprise Edition、Java为注册商标)中,会话状态被存储在Web服务器的存储装置中,根据在Web服务器上运行的Servlet程序,作为HTTP会话对象(object)而被参照。
专利文献1:日本特开2004-206695号公报
非专利文献1:DB2Alphablox的概要,主页URL“http://www-06.ibm.com/jp/software/data/bi/alphablox/”,2007年1月10日检索
非专利文献2:Patterns of Enterprise Application Architecture,Martin Fowler著,Amazon.com书籍介绍,主页URL“http://www.amazon.com/exec/obidos/ASIN/0321127420”,2007年1月10日检索
非专利文献3:WebSphere Application Server Version 5.1InfoCenter,会话管理端口的说明,主页URL“http://publib.boulder.ibm.com/infocenter/wasinfo/v5r1//topic/com.ibm. websphere.nd.doc/info/ae/ae/cprs sesm.html”,2007年1月10日检索
非专利文献4:Web 2.0时代的DWH环境下用DB2 Alphablox来实现的Inline Analytic的概要,主页URL“http://www- 06.ibm.com/jp/domino01/mkt/dminfo.nsf/doc/00825839”,2007年1月10日检索
发明内容
当网站的规模增大时,由于单一的Web服务器的处理能力不够,所以利用多个Web服务器来实现。在这种情况下,依次接收的HTTP请求被分配给各Web服务器来进行处理。因此,存在着从同一使用者处接受的多个HTTP请求分别到达不同的多个Web服务器的情况。在这种情况下,会话状态仅被存储在接收了以前的HTTP请求的Web服务器中,所以在响应下一个HTTP请求的处理中就不能参照该会话状态了。
对此,采用了由多个Web服务器来共享会话状态的功能(参照非专利文献3)。但是,采用该功能有时会由于不能有效地选择应在Web服务器之间共享的会话状态而导致共享所需的通信量和处理量增大。另外,该功能的应用范围有限,例如不能应用于采用了非专利文献1的数据库的系统。另一方面,采用了如下技术:通过将会话状态作为cookie等存储在终端装置的Web浏览器上,而不是存储在Web服务器上来避免该问题出现(参照非专利文献2和专利文献1)。
在该项技术中,存储在终端装置中的会话状态与下一个HTTP请求相对应(建立对应关系)而被发送到Web服务器。然后,该会话状态根据Servlet程序,作为HTTP请求附带的参数而被参照。但是,有在HTTP请求中设定有多个其他的参数的情况,专业技术人员参照程序也难以判断哪个参数为会话状态。这可能导致Servlet程序的开发和维护效率的降低。另外,用于访问会话状态的接口也与HTTP会话对象完全不同,所以通过规格变更将会话状态的保存地点从Web服务器变更为终端装置也很困难。
关于非专利文献4,参照后面。
因此,本发明的目的在于提供一种能够解决上述课题的Web服务器、系统、方法以及程序。该目的通过权利要求书中的独立权利要求所述的特征的组合来实现。另外,从属权利要求规定本发明的更有利的具体例。
为了解决上述课题,本发明提供一种Web服务器,其包括:存储部,其用于存储表示响应从终端装置依次接收的多个HTTP请求而进行的处理的经过的会话状态;接收部,其将会话状态与第一HTTP请求建立对应而从终端装置进行接收;存入部,其向上述存储部中的、作为HTTP会话对象而被响应接收到的上述第一HTTP请求来进行处理的处理程序访问的存储区域中存入接收到的上述会话状态;访问部,其响应上述处理程序中包含的、访问HTTP会话对象的指令的执行来访问所存入的上述会话状态;以及返回部,其响应上述处理程序中包含的、返回第一HTTP响应的指令的执行,从上述存储部中读出上述会话状态来作为与第二HTTP请求建立对应而由终端装置将其发送的参数,来设定在上述第一HTTP响应中,并将所设定的上述第一HTTP响应返回到终端装置。另外,本发明提供一种利用上述Web服务器响应HTTP请求而进行处理的方法、作为上述Web服务器使信息处理装置工作的程序、以及具有多个上述Web服务器的系统。
另外,上述发明的概要并没有列举出本发明所有的必要特征,这些特征组的变形也能构成发明。
附图说明
图1表示采用了第一结构的Web服务器即Web服务器510的功能的概要。
图2表示采用了第二结构的Web服务器即Web服务器540的功能的概要。
图3表示本实施方式的信息系统10的整体结构。
图4表示本实施方式的Web服务器20-1的功能结构。
图5表示本实施方式的Web服务器20-1与终端装置15进行通信的顺序。
图6是表示在Web服务器20-1中工作的软件和数据的第一结构的示意图。
图7是表示在Web服务器20-1中工作的软件和数据的第二结构的示意图。
图8表示在本实施方式的变形例中Web服务器20-1~N与终端装置15进行通信的顺序。
图9表示在本实施方式或其变形例中作为Web服务器20-1发挥功能的信息处理装置900的硬件结构的一例。
标号说明
10信息系统
15终端装置
18调度(dispatcher)装置
20Web服务器
200存储部
210接收部
220存入部
230执行部
240访问部
250返回部
260更改处理部
510Web服务器
520HTTP servlet请求对象
530HTTP servlet
540Web服务器
550HTTP servlet请求对象
560HTTP servlet
600滤镜对象(filter object)
610HTTP servlet请求对象
620浏览器内核(rendering engine)
630HTTP servlet
635Servlet程序
700滤镜对象(过滤器对象)
710HTTP servlet请求对象
720浏览器内核(或称解释引擎:Rendering Engine)
730HTTP servlet
735Servlet程序
900信息处理装置
具体实施方式
以下,通过用于实施发明的最佳方法(以下,称为实施方式)来说明本发明,但以下的实施方式不限于权利要求书所涉及的发明,而且实施方式中说明的特征的全部组合未必是发明的解决手段中必须的。
图1表示采用了第一结构的Web服务器即Web服务器510的功能的概要。在该结构中,会话状态被存储在Web服务器510中。响应HTTP请求的工作如下。首先,Web服务器510将HTTP请求与会话ID建立对应而接收。检索与接收到的会话ID对应的HTTPservlet请求对象来提供给HTTP servlet530。将检索到的该对象作为HTTP servlet请求对象520。至此的工作通过依据例如Java EE(JavaEnterprise Edition)等的中间软件自动进行。接着,根据应用程序的研究开发人员制作的Servlet程序,HTTP servlet 530开始工作。
如图中的程序代码的第一行所示那样,在实现HTTP servlet 530的Servlet程序上,HTTP servlet请求对象根据“req”这样的自变量进行参照。如第四行所示那样,如果对该“req”调用getSession这样的方法(method),则从HTTP servlet请求对象中读出HTTP会话对象。该对象是会话状态的实体。例如图中所示,会话状态用“key1”等的关键字名称和作为其值的字符串“abc”的组来表示。在Servlet程序中,作为“session”这样的变量而被参照。
如第六行所示那样,如果对“session”调用getAttribute这样的方法,则能从HTTP会话对象中读出值。在该Servlet程序中,读出的值被代入变量“value”中。另外,如第八行所示那样,如果对“session”调用setAttribute这样的方法,则HTTP会话对象的值被更新。在该Servlet程序中,关键字“key1”的值被更新为“abc”。在返回HTTP响应时,HTTP servlet530将接收HTTP请求时接收到的会话ID与该HTTP响应建立对应而发送。
在图1所示的第一结构中,会话状态的实体被存储在Web服务器510中。并且,为了能够在响应请求的处理中参照正确的会话状态,将会话ID与请求建立对应而发送。这样,第一结构中,也能够将响应多个请求的一系列的处理关联作为会话来管理。但是,在用包含Web服务器510的多个Web服务器实现网站时,将发生不良状况。即,即使发送正确的会话ID,当请求到达与进行了以前的处理的Web服务器不同的Web服务器时,不会读出基于以前的处理的会话状态。
与此相对,在以下的图2所示的第二结构中,通过将会话状态设置在终端装置一侧来实现该课题的解决。
图2表示采用了第二结构的Web服务器即Web服务器540的功能的概要。在该结构中,会话状态作为cookie等被存储在终端装置中。响应HTTP请求的工作如下。首先,Web服务器540将HTTP请求与会话状态建立对应而接收。在此,接收的与图1的情况不同,不是会话ID,而是会话状态的实体。会话状态被追加设定在HTTP请求所设定的其他参数中。该其他参数是指对网站的请求的属性,例如若网站用于购物,则该其他参数是要购买的商品的ID、数量等。即,会话状态与这样的参数一起被设定在HTTP请求中而被接收。至此的工作通过依据例如Java EE等的中间软件自动地进行。然后,根据Servlet程序,HTTPservlet560开始工作。
如图中的程序代码的第一行所示那样,在实现HTTPservlet560的Servlet程序上,HTTPservlet请求对象550根据“req”这样的自变量进行参照。在该对象中设定与HTTP请求建立对应而接收到的所有的参数。如第四行所示那样,如果对对象req指定参数的关键字名来调用getParameter这样的方法,则能够读出用该关键字名指定的参数。该程序例中,指定了表示会话状态的key2,所以会话状态的值“abc”被读出,并被代入到变量value中。另外,如第六行所示那样,如果对该对象req调用setParameter这样的方法,代入指定的关键字所指定的值。另外,如第九行-第十行所示那样,如果作为HTTP响应而返回的网页中嵌入会话状态,则能够将该会话状态与下一个HTTP请求建立对应而再次发送。
这样,根据第二结构,也能够将会话状态存储在终端装置侧,并且根据Web服务器侧的Servlet程序适当地参照该会话状态。但在该结构中,有在Servlet程序的开发、维护的效率上产生不良状况的情况。即,Servlet程序的字面上,会话状态作为HTTP请求的参数之一而被参照。并且,能够在HTTP请求中设定其他的原来请求所附带的各种属性作为参数。表示这些属性的参数和表示会话状态的参数仅根据参数的关键字名来区别。因此,如果程序的研究开发人员和维护者不知道表示会话状态的参数的关键字名,则很难辨别哪个参数表示会话状态。该不良状况随着网站的大规模化而越发显著,而且随着参与开发和维护的工程技术人员的增加而越发显著。即,仅看程序的字面,没有写明会话状态,所以需要使用规格说明书等其他手段充分地共享信息。
这样,根据第一结构或第二结构,都能够管理会话状态,但是存在不适合近年来的大规模且复杂的网站的构建的情况。与之相对,根据参照图3~图9说明的结构,能够在终端装置侧管理会话状态,并且大幅度提高程序的开发、维护的效率。以下,具体进行说明。
图3表示本实施方式的信息系统10的整体结构。信息系统10包括调度装置18和Web服务器20-1~N,其目的是响应从外部的终端装置15接受的HTTP请求而返回HTTP响应。调度装置18将从终端装置15接受的HTTP请求有选择地分配给Web服务器20-1~N的某一个。具体而言,调度装置18利用例如循环方法等将从终端装置15接收到的HTTP请求传输到从Web服务器20-1~N中选择出的Web服务器。Web服务器20-1~N的每一个在接收HTTP请求时,响应该请求而进行处理,根据该处理结果生成HTTP响应,并将其返回到终端装置15。
图4表示本实施方式的Web服务器20-1的功能结构。Web服务器20-1包括存储部200、接收部210、存入部220、执行部230、访问部240以及返回部250。首先,叙述这些部件与硬件资源的关系。存储部200通过后述的RAM1020或硬盘驱动器1040等存储装置来实现。另外,接收部210和返回部250通过后述的通信接口1030等硬件设备和执行Java EE等中间软件的CPU1000的组合来实现。另外,存入部220和执行部230通过由CPU1000使该中间软件上的Servlet程序工作来实现。另外,访问部240通过由CPU1000使与JavaEE等中间软件一起被安装的被称为类库的程序工作来实现。
存储部200是为了存储表示响应从终端装置15依次接收的多个HTTP请求而进行的处理的经过的会话状态而设置的。接收部210将会话状态与第一HTTP请求建立对应而从终端装置15进行接收。存入部220向存储部200中的、根据响应接收到的该第一HTTP请求进行处理的处理程序而被作为HTTP会话对象进行访问的存储区域中,存入接收到的会话状态。存入部220通过例如被称为滤镜类的、当Servlet程序工作开始时在该工作开始之前进行工作的对象来实现。即,存入部220在由后述的执行部230使Servlet程序开始工作之前开始工作,将会话状态存储在存储部200。
执行部230执行处理程序即Servlet程序。在该执行中,有执行访问HTTP会话对象的指令的情况。该指令是调用访问HTTP会话对象的方法的指令,例如,在Java EE中是对getSession方法或setSession方法等的调用。接受这样的调用,访问部240访问存入存储部200的会话状态。所谓访问,也就是读出或写入,由此能够更新会话状态。
另外,在Servlet程序执行中,有执行用于返回与第一HTTP请求对应的第一HTTP响应的指令的情况。该指令是对表示HTTP响应的输出流(例如Java EE的输出对象等)调用println等的字符串输出用的方法的指令。作为其他例,该指令还可以是用JSP(JavaServer Pages)等记述的网页本身。JSP网页是用于将该页的内容变换为作为HTTP请求而返回的指令并被执行。
响应这样的指令的执行,返回部250从存储部200读出会话状态。被读出的会话状态存在如下情况:例如利用访问部240的功能从接收时的会话状态进行了变更。并且,返回部250将读出的该会话状态作为与第二HTTP请求建立对应而由终端装置15发送的参数,来设定在该第一HTTP响应中,并将所设定的该第一HTTP响应返回到终端装置15。优选的是,该参数是在接受了该第一HTTP响应的终端装置15显示的网页上不显示的参数。另外,优选的是,该参数是响应对该网页的使用者的操作与第二HTTP请求建立对应而发送的参数。在此所说的使用者的操作是指,按下例如“提交”按钮、“OK”按钮、或“下一步”按钮等的操作。由此,能够与第二HTTP请求建立对应而发送最新的会话状态。
Web服务器20-2~N的各个结构都与如上所述的Web服务器20-1大致相同,所以省略说明。
根据以上的结构,会话状态能够不是由Web服务器20-1来管理,而是由终端装置15侧适当地管理。由此,即使在来自终端装置15的第二HTTP请求不到达Web服务器20-1而到达Web服务器20-2的情况下,Web服务器20-2也能够适当地参照最新的会话状态来继续正常的处理。另外,由执行部230执行的Servlet程序中,会话状态与HTTP请求的参数相区别,可作为HTTP会话对象来参照。由此,即使在网站大规模化且Servlet程序复杂的情况下,只要工程技术人员看到程序,就能够明确地识别会话状态。另外,由于会话状态没有显示在网页上,所以能够使得不会对网站的使用者带来任何不协调感。
接着,说明网站采用了Ajax(Asynchronous JavaScript+XML)时的处理功能。在这种情况下,即使使用者没有操作网页上的按钮,也响应使用者移动鼠标光标的工作等,网页所包含的Java Script程序自动地将基于XMLHTTP通信的请求发送到Web服务器20-1。其结果,存在如下情况:访问部240在返回上述第一HTTP响应开始直到接收上述第二HTTP请求期间,响应基于XMLHTTP通信的请求,更新已存入存储部200的会话状态。
在这种情况下,虽然更新后的最新的会话状态被存储在存储部200中,但是与接下来的第二HTTP请求建立对应而被发送到Web服务器20-1的会话状态变成更新前的旧的会话状态。其结果,通过存入部220的工作,被接收到的旧的会话状态覆盖了最新的会话状态,导致会话无法正确地继续。为了避免这种不良状况,在网站采用了Ajax时,优选Web服务器20-1还具有更改处理部260。并且,返回部25向终端装置15返回作为第二HTTP请求而由终端装置15请求更改处理的第一HTTP响应。
接受第一HTTP响应的终端装置15接受使用者的操作,将请求更改处理的第二HTTP请求发送到Web服务器20-1。更改处理部260在接收该请求时从存储部200读出会话状态。然后,更改处理部260将该会话状态作为与接下来的第三HTTP请求建立对应而由终端装置15发送的参数,来设定在要返回的第二HTTP响应中。然后,更改处理部260返回所设定的该第二HTTP响应。接受第二HTTP响应的终端装置15立刻发送第三HTTP请求。不知道该请求到达Web服务器20-1~N中的哪一个。但是,最新的会话状态与该第三HTTP请求建立对应。因此,当接收第三HTTP请求时,接收部210能够将对应接收到的会话状态存入存储部200。
这样,通过设置更改处理部260,在采用Ajax的网站中也能够适当地维持会话。
图5表示本实施方式的Web服务器20-1与终端装置15进行通信的顺序。在图5中,首先说明涉及没有采用Ajax的网站的处理。当从使用者接受对已显示的网页的操作时,终端装置15将第一HTTP请求与会话状态建立对应而发送到Web服务器20-1(S500)。该会话状态在已显示的该网页的数据中被设定为应与下一个HTTP请求建立对应来发送的参数。与其对应,接收部210将第一HTTP请求与会话状态建立对应来接收(S510)。
接着,存入部220向存储部200中的、根据响应接收到的该第一HTTP请求进行处理的处理程序而被作为HTTP会话对象进行访问的存储区域,存入接收到的该会话状态(S520)。会话状态既可以被盖写,还可以被追加。即,存入部220可以存入由接收部210新接收到的该会话状态,来代替已存储在存储区域的会话状态。另外,存入部220可以对已存储在该存储区域中的会话状态进行追加,存入由接收部210新接收到的该会话状态。
接着,执行部230开始执行处理程序即Servlet程序。该执行过程中,当执行访问HTTP会话对象的指令时,对其进行响应,访问部240访问存入存储部200的该会话状态(S540)。按照程序的处理内容,访问的次数可以是多次。另外,Servlet程序执行的过程中,当执行返回第一HTTP响应的指令时,对其进行响应,返回部250从存储部200读出会话状态(S550)。然后,返回部250对读出的会话状态进行串行化处理(Serialization)。
所谓串行化处理是指,将存储部200中的地址空间所存储的会话状态等数据向其他地址空间进行再配置、或者可经由通信电路发送到外部装置的处理。具体如以下所述。存储部200存储包含多个数据的数据组作为会话状态,这些数据有通过被称作表结构的结构而相互关联的情况。例如,这些数据中的第一数据根据该第一数据的存入目标地址而被第二数据参照。在这种情况下,当读出第一数据和第二数据并记录在其他地址时,第一数据的存入目标地址被变更。其结果,导致实际的存入目标地址和用于被第二数据参照的存入目标地址不同。
因此,返回部250对这些数据组进行变换,使得不使用第一数据的存入目标地址而被第二数据参照第一数据。作为一例,既可以将数据组的数据结构从表结构变换为排列结构,还可以将被第二数据参照的第一数据所使用的数据变更为数据的标识符来代替存入目标地址。除此此外,还可以将字符串的字符代码的变换和数值信息的数值格式的变换等处理作为串行化处理来进行。
再有,返回部250还可以对进行了串行化处理的数据组进一步进行包含加密处理和数据压缩处理中至少一方的变换。根据加密处理,能够在终端装置15的装置内和通信路径上无法参照原本不需要对第三者公开的会话状态,能够防不正当的窃听行为于未然。被串行化以及数据压缩/加密后的会话状态被设定在第一HTTP响应中。进而,作为其他处理,返回部250还可以进行用于对其他用途开放存储有读出的会话状态的存储区域的处理。该处理不是Servlet程序的字面上的写明的处理,可以利用无用信息收集程序与Servlet程序异步进行。然后,返回部250将该第一HTTP响应返回到终端装置15(S560)。
终端装置15在接收第一HTTP响应时,将该响应所包含的网页向使用者显示(S580)。当使用者操作网页上的按钮时,发送第二HTTP请求(S500)。此后的处理与已说明的从S500到S580的上述处理相同。但是,该第二HTTP请求未必到达Web服务器20-1,有时到达Web服务器20-2~N的某一个。即使在这样的情况下,也将最新的会话状态与第二HTTP请求建立对应来发送,所以接受了请求的Web服务器能够适当地继续进行处理。
接着,参照图6和图7,说明Web服务器20-1的处理功能的安装例和对实施方式的进一步详细的变化(variation)。
图6是表示在Web服务器20-1工作的软件和数据的第一结构的示意图。该第一结构是将会话状态全部存储在终端装置15、在Web服务器20-1中仅从请求到响应的微少期间暂时存储会话状态的结构。根据该结构,几乎不会改变以将会话状态存储在Web服务器20-1为前提预先开发的Servlet程序,能够使其在将会话状态存储于终端装置15的状态下进行工作。以下,叙述概要。
Web服务器20-1使滤镜对象600、HTT Pservlet请求对象610、HTTPservlet630在例如依据JavaEE等的中间软件上工作。另外,Web服务器20-1使浏览器内核620工作。滤镜对象600是例如JavaEE的滤镜类的对象,作为上述存入部220进行工作。并且,当接收部210接收HTTP请求时,滤镜对象600开始工作,将与该HTTP请求对应接收到的会话状态存入存储部200。
存储会话状态的存储区域如已叙述那样,其是根据Servlet程序作为HTTP会话对象而被访问的区域。具体而言,滤镜对象600可以作为HTTPservlet请求对象(图中的HTTPservlet请求对象610)的1个数据字段来确保HTTP会话对象的存储区域,并对该存储区域存入会话状态。另外,在已确保HTTP会话对象的存储区域的情况下,滤镜对象600更新已存储在该存储区域中的会话状态,并存入接收到的新的会话状态。例如,在图6中,key1和ke2这两个字符串变量双方是接收到的会话状态,请求接收前已被存入的会话状态被废弃。
响应会话状态的存入,执行部230开始工作,执行处理程序即Servlet程序635来作为HTTPservlet630进行工作。如Servlet程序635的第一行所示,在该程序上,HTTP servlet请求对象根据“req”这样的自变量进行参照。如第4行所示,如果对该“req”调用getSession这样的方法,则从HTTP servlet请求对象中读出HTTP会话对象。该对象根据Servlet程序635,作为“session”这样的变量而被参照。
如第六行所示那样,如果对“session”调用getAttribute这样的方法,则能从HTTP会话对象中读出值。被读出的值被代入到变量“value1”中。同样地,如第七行所示那样,如果指定其他关键字名调用getAttribute这样的方法,则能从HTTP会话对象中读出其他的值。被读出的值被代入到变量“value2”中。
另外,如第九行所示那样,如果对“session”调用setAttribute这样的方法,则HTTP会话对象的值被更新。在该行,关键字“key1”的值被更新为“abc”。同样地,如第十行所示那样,如果对“session”调用setAttribute这样的方法,则HTTP会话对象的值被更新。在该行,关键字“key2”的值被更新为“ABC”。
在图6中,例示了Servlet程序635中依据Java EE等的处理部分,但Servlet程序635也可以包含用JSP等记述的页部分。因此,当HTTPservlet630的工作完成时,Servlet程序635被输出到浏览器内核620,浏览器内核620开始进行JSP的渲染(rendering)处理。所谓渲染处理是指,在将Servlet程序635记述的HTML的标签和属性变换为输出这些HTML标签和属性的Java程序后执行该程序的处理。
在本实施方式中,浏览器内核620具有作为上述返回部250的作用。即,浏览器内核620从存储部200读出作为HTTP会话对象而被存储的会话状态,作为参数设定在变换后的HTML文件中。会话状态被设定在构成HTTP响应的HTML文件的各form标签中。所设定的参数是嵌套在各form标签的hidden标签的参数,作为一例,能够使用form标签和<%标签如以下那样来表示。
<form...>
...
<%=CSHttpServletRequest.renderClientSession(request)%>
</form>
在此,标签<%是对JSP的渲染处理的指令,表示在JSP渲染时评价与该标签对应的式子的值并将评价值直接作为HTML文件的一部分。即,浏览器内核620将这样的标签<%预先插入JSP代码中后,对该JSP代码进行渲染来生成HTML文件,包含于HTTP响应中而返回。
另外,设定的参数如上述那样被串行化,而且优选的是,进行包含加密和数据压缩的变换。另外,在图6的例子中,会话状态是key1和key2这两个,但浏览器内核620可以结合这些会话状态作为一个参数设定于HTTP响应中。由此,在下一个HTTP请求中,表示会话状态的参数为1个即可,能够减小HTML文档和请求消息的数据大小,而且能够简化数据结构。
Web服务器20-2~N的每一个都能够采用与Web服务器20-1相同的结构,所以省略说明。
图7是表示在Web服务器20-1中工作的软件和数据的第二结构的示意图。该第二结构是不是将会话状态全部存储在终端装置15中而是能够根据会话状态的用途从终端装置15和Web服务器20-1中选择存储目标的结构。根据该结构,为了继续处理,能够仅将重要度高的会话状态存储在终端装置15,能够减少用于维持会话的通信数据量和处理量。以下,叙述概要。
Web服务器20-1使滤镜对象700、HTTPservlet请求对象710、HTTPservlet730在例如JavaEE等假想设备上工作。另外,Web服务器20-1使浏览器内核720工作。滤镜对象700与图6的例子相同,其是滤镜类的对象,当接收HTTP请求时,作为存入部220开始工作。并且,滤镜对象700将与HTTP请求对应接收到的会话状态存入存储部200中。存入会话状态的存储区域例如是HTTPservlet请求对象710内的存储区域。
但是,图7中的滤镜对象700与滤镜对象600不同,不是利用接收到的会话状态更新已存储的会话状态,而是将接收到的会话状态追加到已存储的会话状态中并存入。具体如以下所述。存储部200在HTTPservlet请求对象710中的存储区域存储有第一HTTP会话对象和第二HTTP会话对象这两个。第一HTTP会话对象是应存储在终端装置15的对象,在图中将key1作为关键字名。第二HTTP会话对象是应存储在Web服务器20-1的对象,在图中将key2作为关键字名。
滤镜对象700在接收将key1作为关键字名的会话状态时,将该会话状态存入HTTPservlet请求对象710中的存储区域。此时,滤镜对象700不变更已将key2作为关键字名存入的会话状态而进行维持。然后,执行部230开始工作,执行Servlet程序735来作为HTTPservlet730工作。如第一行~第四行所示那样,当对HTTPservlet请求对象调用getSession这样的方法时,读出会话状态来作为HTTP会话类的对象。被读出的会话状态被存入变量serverSession中。该处理与图6的例子相同。但是,在此被读出的仅是关键字名为key2的会话状态。
另一方面,如第六行、第七行所示那样,如果对HTTPservlet请求对象调用getClientSession这样的方法,则读出会话状态来作为除HTTP会话类之外的对象。被读出的会话状态被存入变量clientSession中。在此,读出关键字名为key1的会话状态。第六行所示的是形式上的型变换,变量csr和变量req的实体相同。
然后,如第九行、第十行所示那样,如果对变量serverSession和clientSession都调用getAttribute这样的方法,则能够区别各内容而读出。另外,如第十二行、第十三行所示那样,如果对这些变量的哪个都调用SsetAttribute这样的方法,则能够区别各对象来设定新的值。
这样,响应Servlet程序735的执行,访问部240能够选择性地访问作为第一和第二HTTP会话对象而被存储的各会话状态。
在图7中,也与图6相同,例示了Servlet程序735中依据JavaEE等的处理部分,但Servlet程序735也可以包含用JSP等记述的页部分。因此,当HTTPservlet730的工作完成时,Servlet程序735被输出到浏览器内核720,浏览器内核720开始进行JSP的渲染处理。浏览器内核720具有作为上述返回部250的作用。即,浏览器内核720从存储部200读出HTTP会话对象,作为参数设定在变换后的HTML文件中。但是,在图7的例子中,返回部250仅读出作为第一HTTP会话对象而被存储的会话状态来设定,不读出作为第二HTTP会话对象而被存储的会话状态。这样,在图7中仅将一部分的会话状态返回到终端装置15,所以能够减少维持会话所需的通信量和处理负荷。
Web服务器20-2~N的每一个都能够采用与Web服务器20-1相同的结构,所以省略说明。
图8表示在本实施方式的变形例中Web服务器20-1~N与终端装置15进行通信的顺序。参照图8,将网站采用Ajax时的处理顺序作为变形例来示出。在本变形例中,返回部250和更改处理部260进行本图的S800到S880的处理,代替图5的S560到S510的处理。另外,终端装置15进行该图的S810到S870的处理,代替图5的从S570经由S580到S500的处理。
首先,返回部250向终端装置15返回设定成将更改要求作为第二HTTP请求发送给更改处理部260的第一HTTP响应(S800)。该更改要求的要求目标不是Web服务器20-1~N中任意的Web服务器,而是被设定为当前要返回第一HTTP响应的Web服务器20-1。与其对应地,终端装置15接收第一HTTP响应(S810),按照该响应所包含的指示显示网页(S820)。
终端装置15即使不接受发送HTTP请求的写明的操作,也通过在该网页上工作的JavaScript的工作,将基于XMLHTTP通信的请求发送到Web服务器20-1(S830)。接受该请求,访问部240访问已存入的会话状态(S835)。终端装置15在从使用者接受应发送HTTP请求的写明的操作时,对其进行响应,发送第二HTTP请求(S840)。在该HTTP请求中,如S800中说明过的那样,预先设定成对更改处理部260请求更改处理。因此,更改处理部260响应该更改要求从存储部200读出会话状态(S845)。
然后,更改处理部260将该会话状态作为与接下来的第三HTTP请求建立对应而由终端装置15发送的参数,来设定在与该第二HTTP请求对应的第二HTTP响应中。然后,更改处理部260将立刻对其他Web服务器重新发送第三HTTP请求的指示包含在该第二HTTP响应中并返回到终端装置15。
终端装置15在接收该第二HTTP响应时(S860),立刻向其他Web服务器发送第三HTTP请求(S870)。将最新的会话状态与该第三HTTP请求建立对应而发送。因此,接到该请求的Web服务器能够与HTTP请求建立对应而适当地接收最新的会话状态(S880)。此后的处理与参照图1到图7说明过的实施例相同。即,该Web服务器返回到图5的S520,进行响应HTTP请求的处理。
这样,在网站采用了Ajax功能的情况下,通过对HTTP响应的参数设定成使该响应的发送方请求更改处理,能够读出最新的会话状态。然后,请求了更改处理的Web服务器20-1对HTTP响应设定成将最新的会话状态与下一个HTTP请求建立对应而发送。由此,接受了该下一个HTTP请求的其他Web服务器能够正确地继续会话。
图9表示在本实施方式或其变形例中作为Web服务器20-1发挥功能的信息处理装置900的硬件结构的一例。信息处理装置900包括:具有通过主机控制器1082相互连接的CPU1000、RAM1020、以及图形控制器1075的CPU外围部;具有通过输入输出控制器1084与主机控制器1082连接的通信接口1030、硬盘驱动器1040以及CD-ROM驱动器1060的输入输出部;具有与输入输出控制器1084连接的ROM1010、软盘驱动器1050以及输入输出芯片1070的传统(legacy)输入输出部。
主机控制器1082连接RAM1020、以高传输率访问RAM1020的CPU1000以及图形控制器1075。CPU1000根据存入ROM1010和RAM1020的程序而工作,进行各部的控制。图形控制器1075取得CPU1000等在设置于RAM1020内的帧缓存器上生成的画像数据,并使其显示在显示装置1080上。取而代之,图形控制器1075也可以在内部包含用于存入CPU1000等生成的画像数据的帧缓存器。
输入输出控制器1084连接主机控制器1082、较高速的输入输出装置即通信接口1030、硬盘驱动器1040以及CD-ROM驱动器1060。通信接口1030经由网络与外部装置进行通信。硬盘驱动器1040存入信息处理装置900使用的程序和数据。CD-ROM驱动器1060从CD-ROM1095读取程序或数据,并提供给RAM1020或硬盘驱动器1040。
另外,在输入输出控制器1084上连接ROM1010、软盘驱动器1050和输入输出芯片1070等较低速的输入输出装置。ROM1010存入信息处理装置900启动时CPU1000执行的引导程序、和信息处理装置900的硬件所依赖的程序等。软盘驱动器1050从软盘1090读取程序或数据,经由输入输出芯片1070提供给RAM1020或硬盘驱动器1040。输入输出芯片1070经由软盘1090、例如并行端口、串行端口、键盘端口、鼠标端口等连接各种输入输出装置。
提供给信息处理装置900的程序被存入软盘1090、CD-ROM1095、或IC卡等记录介质中,由使用者提供。程序从记录介质经由输入输出芯片1070和/或输入输出控制器1084被读出,并安装到信息处理装置900而被执行。程序在信息处理装置900等中进行的工作与图1到图8中说明过的Web服务器20-1的工作相同,所以省略说明。
以上所示的程序也可以存入外部的存储介质中。作为存储介质,除了软盘1090、CD-ROM1095之外,还能够使用DVD和PD等光学记录介质、MD等光磁记录介质、带状介质、IC卡等半导体存储器等。另外,将设置在与专用通信网络或因特网连接的服务器系统中的硬盘或RAM等的存储装置作为记录介质来使用,也可以经由将程序网络提供给信息处理装置900。
以上,根据本实施方式及其变形例,能够在Servlet程序中将会话状态作为HTTP会话对象来参照,并且,会话状态的实体能够存储在终端装置中。由此,能够在Servlet程序的代码中一目了然地区别会话状态来识别,且即使由多个Web服务器构建网站,也能适当地维持会话。这关系到提高程序开发和维护的效率、使网站的硬件结构变更易于进行,能够极其有效地构建近年来的大规模的网站。
以上,用实施方式对本发明进行了说明,但本发明的技术性范围不限于上述实施方式所记载的范围。对本领域技术人员来说,可对上述实施方式进行各种各样变更或改良是显而易见的。进行了这样的变更或改良的方式也能包含在本发明的技术性范围内,这一点根据权利要求书的记载得以明确。

Claims (11)

1.一种Web服务器,包括:
存储部,其用于存储表示响应从终端装置依次接收的多个HTTP请求而进行的处理的经过的会话状态;
接收部,其将会话状态与第一HTTP请求建立对应而从终端装置进行接收;
存入部,其向上述存储部中的、作为HTTP会话对象而被响应接收到的上述第一HTTP请求来进行处理的处理程序访问的存储区域中存入接收到的上述会话状态;
访问部,其响应上述处理程序中包含的、访问HTTP会话对象的指令的执行来访问所存入的上述会话状态;以及
返回部,其响应上述处理程序中包含的、返回第一HTTP响应的指令的执行,从上述存储部中读出上述会话状态来作为与第二HTTP请求建立对应而由终端装置发送的参数,来设定在上述第一HTTP响应中,并将所设定的上述第一HTTP响应返回到终端装置。
2.根据权利要求1所述的Web服务器,其特征在于,
上述存入部向作为HTTP会话对象而被访问的上述存储区域中存入由上述接收部新接收到的上述会话状态,来代替已存储在该存储区域中的会话状态。
3.根据权利要求1所述的Web服务器,其特征在于,
上述存储部在作为HTTP会话对象而被访问的上述存储区域中存储第一HTTP会话对象和第二HTTP会话对象,
上述存入部将新接收到的上述会话状态作为上述第一HTTP会话对象来存入上述存储部,
上述访问部响应上述处理程序的执行,来访问作为上述第一HTTP会话对象和第二HTTP会话对象而被存储的各会话状态,
上述返回部从上述存储部中读出作为上述第一HTTP会话对象而被存储的会话状态,并将读出的该会话状态作为与上述第二HTTP请求建立对应而发送的参数来设定在上述第一HTTP响应中。
4.根据权利要求3所述的Web服务器,其特征在于,
上述返回部还进行如下处理:响应从上述存储部中读出作为上述第一HTTP会话对象而被存储的会话状态,来将存储有该会话状态的存储区域对其他用途开放。
5.根据权利要求1所述的Web服务器,其特征在于,
上述返回部将所读出的上述会话状态设定为在接受到上述第一HTTP响应的终端装置显示的网页上不显示的参数,并且是响应对该网页进行的操作而与上述第二HTTP请求建立对应而被发送的参数。
6.根据权利要求1所述的Web服务器,其特征在于,
上述存储部存储有数据组作为会话状态,该数据组包括第一数据和根据上述第一数据的存入目标地址来参照上述第一数据的第二数据,
上述返回部对从上述存储部中作为会话状态而读出的上述数据组进行串行化处理,该串行化处理不使用上述第一数据的存入目标地址而从上述第二数据参照上述第一数据,并将进行了串行化处理的数据组设定在上述第一HTTP响应中。
7.根据权利要求6所述的Web服务器,其特征在于,
上述返回部对进行了串行化处理的上述数据组还进行包含加密处理和数据压缩处理中至少一方的变换,并将进行了变换的数据组设定为上述第一HTTP响应的参数。
8.根据权利要求1所述的Web服务器,其特征在于,
当上述访问部在从返回上述第一HTTP响应开始直到接收上述第二HTTP请求为止的期间进一步访问上述存储部的会话状态时,
上述返回部返回作为上述第二HTTP请求而由终端装置请求更改处理的上述第一HTTP响应,
上述Web服务器还包括更改处理部,该更改处理部以接收到的上述第二HTTP请求请求更改处理为条件,从上述存储部中读出上述会话状态并将其作为与第三HTTP请求建立对应而由终端装置发送的参数来设定在第二HTTP响应中,并返回所设定的上述第二HTTP响应,
上述存入部以接收到上述第三HTTP请求为条件,将接收到的上述会话状态存入上述存储部。
9.一种具有多个Web服务器和调度装置的系统,该调度装置将从终端装置接受到的HTTP请求有选择地分配给某一个Web服务器,
上述多个Web服务器的每一个包括:
存储部,其用于存储表示响应从终端装置依次接收的多个HTTP请求而进行的处理的经过的会话状态;
接收部,其接受来自上述调度装置的分配,将会话状态与第一HTTP请求建立对应而从终端装置进行接收;
存入部,其向上述存储部中的、作为HTTP会话对象而被响应接收到的上述第一HTTP请求来进行处理的处理程序访问的存储区域中存入接收到的上述会话状态;
访问部,其响应上述处理程序中包含的、访问HTTP会话对象的指令的执行来访问所存入的上述会话状态;以及
返回部,其响应上述处理程序中包含的、返回第一HTTP响应的指令的执行,从上述存储部中读出上述会话状态并将其作为与第二HTTP请求建立对应而由终端装置发送的参数来设定在上述第一HTTP响应中,并将所设定的上述第一HTTP响应返回到终端装置。
10.一种在Web服务器中响应从终端装置接受到的HTTP请求来进行处理的方法,该Web服务器具有存储部,该存储部用于存储表示响应从终端装置依次接收的多个HTTP请求而进行的处理的经过的会话状态,
上述方法包括以下步骤:
将会话状态与第一HTTP请求建立对应而从终端装置进行接收;
向上述存储部中的、作为HTTP会话对象而被响应接收到的上述第一HTTP请求来进行处理的处理程序访问的存储区域中存入接收到的上述会话状态;
响应上述处理程序中包含的、访问HTTP会话对象的指令的执行来访问所存入的上述会话状态;以及
响应上述处理程序中包含的、返回第一HTTP响应的指令的执行,从上述存储部中读出上述会话状态并将其作为与第二HTTP请求建立对应而由终端装置发送的参数,来设定在上述第一HTTP响应中,并将所设定的上述第一HTTP响应返回到终端装置。
11.一种使信息处理装置作为存储部、接收部、存入部、访问部和返回部来发挥功能的程序,其中:
存储部,其用于存储表示响应从终端装置依次接收的多个HTTP请求而进行的处理的经过的会话状态;
接收部,其将会话状态与第一HTTP请求建立对应而从终端装置进行接收;
存入部,其向上述存储部中的、作为HTTP会话对象而被响应接收到的上述第一HTTP请求来进行处理的处理程序访问的存储区域中存入接收到的上述会话状态;
访问部,其响应上述处理程序中包含的、访问HTTP会话对象的指令的执行来访问所存入的上述会话状态;
返回部,其响应上述处理程序中包含的、返回第一HTTP响应的指令的执行,从上述存储部中读出上述会话状态来作为与第二HTTP请求建立对应而由终端装置发送的参数,来设定在上述第一HTTP响应中,并将所设定的上述第一HTTP响应返回到终端装置。
CN200880008946A 2007-01-19 2008-01-17 管理会话的Web服务器及其方法 Pending CN101636723A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP009726/2007 2007-01-19
JP2007009726 2007-01-19
PCT/JP2008/050544 WO2008088026A1 (ja) 2007-01-19 2008-01-17 セッションを管理するウェブサーバおよびその方法

Publications (1)

Publication Number Publication Date
CN101636723A true CN101636723A (zh) 2010-01-27

Family

ID=39636027

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200880008946A Pending CN101636723A (zh) 2007-01-19 2008-01-17 管理会话的Web服务器及其方法

Country Status (7)

Country Link
US (1) US8332520B2 (zh)
EP (1) EP2116937A4 (zh)
JP (1) JP5315062B2 (zh)
KR (1) KR20090112669A (zh)
CN (1) CN101636723A (zh)
CA (1) CA2674000A1 (zh)
WO (1) WO2008088026A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103973641A (zh) * 2013-01-29 2014-08-06 国际商业机器公司 管理不同网站的会话的方法及装置
CN105553756A (zh) * 2015-12-09 2016-05-04 福建天晴数码有限公司 基于Web服务器的响应压缩调整方法及其系统
CN111756784A (zh) * 2019-04-30 2020-10-09 北京京东尚科信息技术有限公司 会话方法、会话装置、计算机设备和介质

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8332520B2 (en) 2007-01-19 2012-12-11 International Business Machines Corporation Web server for managing session and method thereof
AU2009231676B2 (en) 2008-04-02 2013-10-03 Twilio Inc. System and method for processing telephony sessions
US8837465B2 (en) 2008-04-02 2014-09-16 Twilio, Inc. System and method for processing telephony sessions
WO2010040010A1 (en) 2008-10-01 2010-04-08 Twilio Inc Telephony web event system and method
EP2404412B1 (en) 2009-03-02 2019-05-01 Twilio Inc. Method and system for a multitenancy telephone network
US9210275B2 (en) 2009-10-07 2015-12-08 Twilio, Inc. System and method for running a multi-module telephony application
US8635334B2 (en) * 2009-12-10 2014-01-21 Riverbed Technology, Inc. Web transaction analysis
CN102804700B (zh) * 2010-01-19 2015-04-15 特维里奥公司 用于保持通话会话状态的方法和系统
US20120208495A1 (en) 2010-06-23 2012-08-16 Twilio, Inc. System and method for monitoring account usage on a platform
US9338064B2 (en) 2010-06-23 2016-05-10 Twilio, Inc. System and method for managing a computing cluster
US9459925B2 (en) 2010-06-23 2016-10-04 Twilio, Inc. System and method for managing a computing cluster
US9459926B2 (en) 2010-06-23 2016-10-04 Twilio, Inc. System and method for managing a computing cluster
US9590849B2 (en) 2010-06-23 2017-03-07 Twilio, Inc. System and method for managing a computing cluster
US8838707B2 (en) 2010-06-25 2014-09-16 Twilio, Inc. System and method for enabling real-time eventing
US8649268B2 (en) 2011-02-04 2014-02-11 Twilio, Inc. Method for processing telephony sessions of a network
US9398622B2 (en) 2011-05-23 2016-07-19 Twilio, Inc. System and method for connecting a communication to a client
US9648006B2 (en) 2011-05-23 2017-05-09 Twilio, Inc. System and method for communicating with a client application
US20140044123A1 (en) 2011-05-23 2014-02-13 Twilio, Inc. System and method for real time communicating with a client application
US8527862B2 (en) 2011-06-24 2013-09-03 Usablenet Inc. Methods for making ajax web applications bookmarkable and crawlable and devices thereof
US9336500B2 (en) 2011-09-21 2016-05-10 Twilio, Inc. System and method for authorizing and connecting application developers and users
US10182147B2 (en) 2011-09-21 2019-01-15 Twilio Inc. System and method for determining and communicating presence information
US9462466B2 (en) * 2011-09-29 2016-10-04 Israel L'Heureux Gateway router supporting session hand-off and content sharing among clients of a local area network
US9495227B2 (en) 2012-02-10 2016-11-15 Twilio, Inc. System and method for managing concurrent events
US9602586B2 (en) 2012-05-09 2017-03-21 Twilio, Inc. System and method for managing media in a distributed communication network
US9240941B2 (en) 2012-05-09 2016-01-19 Twilio, Inc. System and method for managing media in a distributed communication network
US20130304928A1 (en) 2012-05-09 2013-11-14 Twilio, Inc. System and method for managing latency in a distributed telephony network
US9247062B2 (en) 2012-06-19 2016-01-26 Twilio, Inc. System and method for queuing a communication session
US8737962B2 (en) 2012-07-24 2014-05-27 Twilio, Inc. Method and system for preventing illicit use of a telephony platform
US8738051B2 (en) 2012-07-26 2014-05-27 Twilio, Inc. Method and system for controlling message routing
US8938053B2 (en) 2012-10-15 2015-01-20 Twilio, Inc. System and method for triggering on platform usage
US8948356B2 (en) 2012-10-15 2015-02-03 Twilio, Inc. System and method for routing communications
US9253254B2 (en) 2013-01-14 2016-02-02 Twilio, Inc. System and method for offering a multi-partner delegated platform
US9282124B2 (en) 2013-03-14 2016-03-08 Twilio, Inc. System and method for integrating session initiation protocol communication in a telecommunications platform
US9001666B2 (en) 2013-03-15 2015-04-07 Twilio, Inc. System and method for improving routing in a distributed communication platform
US9338280B2 (en) 2013-06-19 2016-05-10 Twilio, Inc. System and method for managing telephony endpoint inventory
US9240966B2 (en) 2013-06-19 2016-01-19 Twilio, Inc. System and method for transmitting and receiving media messages
US9225840B2 (en) 2013-06-19 2015-12-29 Twilio, Inc. System and method for providing a communication endpoint information service
US9483328B2 (en) 2013-07-19 2016-11-01 Twilio, Inc. System and method for delivering application content
US9137127B2 (en) 2013-09-17 2015-09-15 Twilio, Inc. System and method for providing communication platform metadata
US9274858B2 (en) 2013-09-17 2016-03-01 Twilio, Inc. System and method for tagging and tracking events of an application platform
US9338018B2 (en) 2013-09-17 2016-05-10 Twilio, Inc. System and method for pricing communication of a telecommunication platform
US9325624B2 (en) 2013-11-12 2016-04-26 Twilio, Inc. System and method for enabling dynamic multi-modal communication
US9553799B2 (en) 2013-11-12 2017-01-24 Twilio, Inc. System and method for client communication in a distributed telephony network
US9609068B2 (en) * 2013-12-16 2017-03-28 Fuji Xerox Co., Ltd. Session management system, session management apparatus, and non-transitory computer readable medium
US9344573B2 (en) 2014-03-14 2016-05-17 Twilio, Inc. System and method for a work distribution service
US9226217B2 (en) 2014-04-17 2015-12-29 Twilio, Inc. System and method for enabling multi-modal communication
CN105022622B (zh) * 2014-04-29 2018-09-28 鼎捷软件股份有限公司 适用于远程程序呼叫的逾时控制单元与远程程序呼叫方法
US9774687B2 (en) 2014-07-07 2017-09-26 Twilio, Inc. System and method for managing media and signaling in a communication platform
US9516101B2 (en) 2014-07-07 2016-12-06 Twilio, Inc. System and method for collecting feedback in a multi-tenant communication platform
US9251371B2 (en) 2014-07-07 2016-02-02 Twilio, Inc. Method and system for applying data retention policies in a computing platform
US9246694B1 (en) 2014-07-07 2016-01-26 Twilio, Inc. System and method for managing conferencing in a distributed communication network
US9363301B2 (en) 2014-10-21 2016-06-07 Twilio, Inc. System and method for providing a micro-services communication platform
US9477975B2 (en) 2015-02-03 2016-10-25 Twilio, Inc. System and method for a media intelligence platform
US9948703B2 (en) 2015-05-14 2018-04-17 Twilio, Inc. System and method for signaling through data storage
US10419891B2 (en) 2015-05-14 2019-09-17 Twilio, Inc. System and method for communicating through multiple endpoints
US10659349B2 (en) 2016-02-04 2020-05-19 Twilio Inc. Systems and methods for providing secure network exchanged for a multitenant virtual private cloud
KR101676653B1 (ko) * 2016-04-20 2016-11-17 주식회사 티맥스 소프트 Http 세션 정보 동적 유지 방법, 이를 사용한 웹 애플리케이션 서버 및 웹 서버
US10686902B2 (en) 2016-05-23 2020-06-16 Twilio Inc. System and method for a multi-channel notification service
US10063713B2 (en) 2016-05-23 2018-08-28 Twilio Inc. System and method for programmatic device connectivity

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6003083A (en) 1998-02-19 1999-12-14 International Business Machines Corporation Workload management amongst server objects in a client/server network with distributed objects
DE60110744D1 (de) * 2001-03-23 2005-06-16 Sun Microsystems Inc Client- Abfragenumlenkung
JP2002334057A (ja) 2001-05-11 2002-11-22 Hitachi Ltd 負荷分散時のセッション継続方法
US7191233B2 (en) * 2001-09-17 2007-03-13 Telecommunication Systems, Inc. System for automated, mid-session, user-directed, device-to-device session transfer system
US7024451B2 (en) * 2001-11-05 2006-04-04 Hewlett-Packard Development Company, L.P. System and method for maintaining consistent independent server-side state among collaborating servers
US7308502B2 (en) 2002-12-20 2007-12-11 Hewlett-Packard Development Company, L.P. Method and architecture to provide client session failover
US7000089B2 (en) * 2002-12-20 2006-02-14 International Business Machines Corporation Address assignment to transaction for serialization
US7346773B2 (en) * 2004-01-12 2008-03-18 Cisco Technology, Inc. Enabling stateless server-based pre-shared secrets
JP4615247B2 (ja) 2004-05-07 2011-01-19 株式会社日立製作所 コンピュータシステム
JP2006011739A (ja) 2004-06-24 2006-01-12 Internatl Business Mach Corp <Ibm> オントロジを利用する装置、コンピュータシステムおよびデータ処理方法
US8332520B2 (en) 2007-01-19 2012-12-11 International Business Machines Corporation Web server for managing session and method thereof

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103973641A (zh) * 2013-01-29 2014-08-06 国际商业机器公司 管理不同网站的会话的方法及装置
CN103973641B (zh) * 2013-01-29 2017-08-25 国际商业机器公司 管理不同网站的会话的方法及装置
CN105553756A (zh) * 2015-12-09 2016-05-04 福建天晴数码有限公司 基于Web服务器的响应压缩调整方法及其系统
CN105553756B (zh) * 2015-12-09 2019-01-11 福建天晴数码有限公司 基于Web服务器的响应压缩调整方法及其系统
CN111756784A (zh) * 2019-04-30 2020-10-09 北京京东尚科信息技术有限公司 会话方法、会话装置、计算机设备和介质

Also Published As

Publication number Publication date
JP5315062B2 (ja) 2013-10-16
EP2116937A4 (en) 2010-06-09
WO2008088026A1 (ja) 2008-07-24
US8332520B2 (en) 2012-12-11
EP2116937A1 (en) 2009-11-11
US20080177883A1 (en) 2008-07-24
KR20090112669A (ko) 2009-10-28
JPWO2008088026A1 (ja) 2010-05-13
CA2674000A1 (en) 2008-07-24

Similar Documents

Publication Publication Date Title
CN101636723A (zh) 管理会话的Web服务器及其方法
US10785322B2 (en) Server side data cache system
US20230109969A1 (en) Data processing method and apparatus based on node internal memory, device and medium
CN101178722B (zh) 用于选择和显示后代页面的方法和系统
CN101147145B (zh) 基于嵌入式web的管理方法
CN102480513B (zh) 在社交网络中辅助传递更新内容的装置和方法
TWI705342B (zh) 一種透過網頁監測對網頁進行區塊鏈存證的方法及裝置
CN101789971A (zh) 客户端程序、终端、方法、服务器系统及服务器程序
CN101236569B (zh) 一种基于ContextFS上下文文件系统的高效动态路径解析方法
CN104780221B (zh) 中小企业知识产权综合服务平台系统
CN102812452A (zh) 用于显示缓存网页的系统、服务器、终端、方法、以及记录该方法的计算机可读记录介质
CN101345772A (zh) 利用代理下载数据的系统和方法
CN1987864A (zh) 访问数据库的方法和系统
RU2316131C2 (ru) Способ хранения страниц в памяти мобильного устройства (варианты) и мобильное устройство для его осуществления
CN107741859A (zh) 基于国产cpu和os的软件包管理方法、装置及系统
CN102722405A (zh) 高并发、多线程应用中的计数方法及系统
CN102447714A (zh) Cookie管理方法
CN101192218A (zh) 提供和获取网络内容的方法、装置和系统
CN101770511B (zh) 一种用于移动通讯设备终端加快回退操作的浏览系统及其应用方法
CN102833295B (zh) 分布式缓存系统中的数据操作方法和装置
CN108960801A (zh) 基于区块链技术的交易记录管理方法、系统及存储介质
CN101517540B (zh) 在规则系统中键入基于资源的事件的方法和系统
JP2006113745A (ja) インターネット広告システム
CN105850142A (zh) 内容分发装置、内容分发系统、内容分发方法和程序
JP5580182B2 (ja) データ提供システム、データ提供方法、先読み更新確認サーバ、プログラム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Open date: 20100127