CN1717676A - 用于在客户机-服务器网络上通信的方法和系统 - Google Patents

用于在客户机-服务器网络上通信的方法和系统 Download PDF

Info

Publication number
CN1717676A
CN1717676A CNA2003801045777A CN200380104577A CN1717676A CN 1717676 A CN1717676 A CN 1717676A CN A2003801045777 A CNA2003801045777 A CN A2003801045777A CN 200380104577 A CN200380104577 A CN 200380104577A CN 1717676 A CN1717676 A CN 1717676A
Authority
CN
China
Prior art keywords
user
session
server
client
request
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
CNA2003801045777A
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.)
Citrix Systems Inc
Original Assignee
Citrix Systems Inc
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 Citrix Systems Inc filed Critical Citrix Systems Inc
Publication of CN1717676A publication Critical patent/CN1717676A/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/14Session management
    • 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]
    • 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
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明涉及用于在客户机-服务器网络上通信的服务器。服务器包括接收器,接收来自第一客户机的第一与服务器建立通信会话的请求。服务器还有用户会话机制,建立用户会话,响应第一请求。服务器另外包括客户机会话机制,建立第一客户机会话,响应第一请求。第一客户机会话终止之后,服务器在存储器单元存储用户会话数据,可能是,例如,数据库。接收器还接收来自第二客户机的第二与服务器建立通信会话的请求。当接收这第二请求时,用户会话机制重新激活用户会话。

Description

用于在客户机-服务器网络上通信的方法和系统
技术领域
[0001]发明一般涉及在客户机-服务器网络上通信,更具体地,涉及,允许操作第一客户机的用户断开与服务器的通信会话,并且,随后在任何时候从同一个或另一个客户机重新连到同一会话。
背景技术
[0002]参考图1,先有技术熟知的一种联网的计算机系统100通常包括客户机计算机110和服务器115。客户机计算机110通常是能从服务器115下载信息的个人计算机。常规的客户机110在经过网络125(如因特网或万维网)的客户机-服务器通信信道120上与服务器115通信。服务器115还可是一个或更多的能被客户机110访问的应用程序130的主机。
[0003]客户机110还可包括Web浏览器135,用于连接Web和/或从服务器115下载内容,如INTERNET EXPLORE,由位于华盛顿州雷蒙德市的微软公司(Microsoft Corporation)开发,或NETSCAPENAVIGATOR,由加利福尼亚州芒廷维尤市的网景通信公司(NetscapeCommunications Corporation)开发。服务器115通常发送网页给客户机110(如Web浏览器135),响应来自客户机110的通信请求。
[0004]当在因特网125上通信的时候,客户机110和服务器115传统采用超文本传输协议(HTTP)。但是,不幸的是,HTTP是“无状态的”协议。换句话说,每个到服务器115的访问通常被服务器115看作是用户的第一次访问。本质上,每个通信请求过后,服务器“忘记”一切。
[0005]例如,用户操作客户机110,可以在因特网上和服务器115通信。在这些通信期间,用户可以用在服务器115上执行的应用程序130,例如,进行一些工作。服务器115还通常存储和通信相关联的数据。随后,例如当用户不得不离开这个区域的时候,用户结束与服务器115的通信。作为通信终止的结果,服务器115通常删除和通信相关联的数据。当用户随后回到这个区域用同一个客户机110,用户可以用客户机110再次与服务器115通信。如果用户试图访问在以前的通信期间服务器115存储的数据,用户通常无法访问,因为,服务器115由于HTTP无状态的本质不再存取和以前的通信相关联的数据。
[0006]这个问题的一种解决方法是建立HTTP会话。HTTP会话通常指,操作客户机110的单个用户对网页的数个请求的持续时间。在HTTP会话期间,通常采用Cookie来维持状态。例如,服务器115可以创建和发送Cookie到Web浏览器135以随后在客户机110上存储。在HTTP会话期间,客户机110通常发送和用户Cookie相关联的数据到服务器115,以保持状态。
[0007]此外,如果服务器115和应用服务提供商(ASP.NET)模块(由位于华盛顿州雷蒙德市的微软公司开发)一起执行,ASP.NET模块通常允许HTTP会话状态存储在服务器115中。此外,为了随后的会话状态的识别,服务器115可分配认证Cookie给客户机110。此外,在客户机110和服务器115之间只发送认证Cookie,而会话状态存储在服务器115中。
[0008]HTTP会话的实现即使用了Cookie,还是经常缺乏灵活性和健壮性。例如,Cookie常规上局限于特定的客户机110。此外,常规的HTTP会话,传统上适合提供简短服务的Web应用程序130。对于服务器在其中采用HTTP会话的应用程序130,用户可能不得不在相当短的时段内没有中断地完成任务。如果用户在任务期间空闲太久,服务器115可能终止会话,再次导致用户数据的损失。
[0009]例如,当用户想在线(例如,在因特网125上)购买商品时,用户用客户机110登录到出售其感兴趣的商品的网页。用户通常经过多个屏幕,如用于选择商品的屏幕和用于输入个人信息(例如:邮寄地址)的屏幕。然后,在某点,用户来到必需输入付款信息的屏幕,如信用卡号码。如果用户等了很久才提供其信用卡信息,服务器115经常终止通信会话,强制用户建立另一个与服务器115的通信会话。在这第二通信会话中,因为客户机110和服务器115之间的超时,用户通常不得不在以后的通信会话中再次重新输入所有其数据。
[0010]此外,以前用客户机110访问网页的用户此后“绑定”到那个客户机,以利用存储在客户机110上的Cookie。因此,有必要增加客户机110和服务器115之间的通信会话的灵活性和健壮性。
发明内容
[0011]本发明涉及,允许用户断开与Web服务器的通信会话然后在任何时候、从任何地方和通过任何设备重新连到同一个会话的方法和系统。因此,减轻了上面提到与通信会话相关联的限制,如在预先确定的时段内完不成任务丢失数据的可能性。此外,因为撤销了通常和服务器与客户机之间的常规的通信会话相关联的时间限制和客户机限制,本发明为通信会话增加了灵活性和健壮性。
[0012]一方面,本发明涉及用于在客户机-服务器网络上通信的服务器。服务器包括接收器,接收第一来自第一客户机的与服务器建立通信会话的请求。服务器还有用户会话机制,建立用户会话响应第一请求。服务器另外包括客户机会话机制,建立第一客户机会话响应第一请求。第一客户机会话终止后,服务器在存储器单元(可能是例如数据库)存储用户会话数据。接收器还从第二客户机接收第二与服务器建立通信会话的第二请求。当接收这第二请求时,用户会话机制重新激活用户会话。在一个实施例中,用户会话机制分配状态给建立的用户会话。该状态可能是活动状态、暂停状态或完成状态。
[0013]在另一方面,本发明涉及用于在客户机-服务器网络上进行通信的方法。方法包括步骤:通过服务器接收与所述服务器建立通信的请求。由用户操作的第一客户机发送请求到服务器。响应接收的请求,建立服务器和识别的用户之间的用户会话。相似地,第一客户机和服务器之间的客户机会话也被建立,以响应接收的请求。方法还包括步骤:通过服务器存储用户会话数据,以响应客户机会话的终止。方法还包括步骤:通过服务器接收来自由用户操作的第二客户机的与服务器建立通信的请求,和重新激活用户会话。
[0014]在一个实施例中,请求识别用户,如用用户认证证书。方法还可包括从第一客户机接收终止消息,并且在存储用户会话数据之前终止第一客户机和服务器之间的客户机会话。在另一个实施例中,服务器在等待预先确定的时间后,终止第一客户机和服务器之间的客户机会话,并且存储用户会话数据。在一些实施例中,方法还包括分配状态给建立的用户会话,如活动、暂停或完成状态。
[0015]存储的用户会话数据可用于,在接收另一个与服务器建立通信的请求之后,确定和用户相关联的建立的用户会话的存在性。在一个实施例中,当建立的用户会话的存在性确定时,重新激活用户会话。
附图说明
[0016]通过参考下面的附图描述,可更好地理解本发明上述的优点以及更多的优点。图中,相似的参考字符通常指不同视图中同样的部分。此外,附图不一定按比例,而通常着重说明本发明的原理。
[0017]图1是先有技术的客户机-服务器网络的实施例的方框图
[0018]图2是具有用户会话机制的服务器的客户机-服务器网络的实施例的方框图。
[0019]图3是具有用户会话机制的服务器的实施例的更详细的方框图。
[0020]图4是说明通过服务器进行的步骤的实施例的流程图。
[0021]图5是说明通过服务器进行的建立用户会话的步骤的实施例的流程图。
[0022]图6是说明通过服务器进行的终止客户机会话的步骤的实施例的流程图。
[0023]图7是说明通过服务器进行的重新激活用户会话的步骤的
实施例的流程图。
[0024]图8是说明分配给用户会话的状态的实施例的状态图。
[0025]图9是说明用户和客户机会话的相关时序的实施例的流程图。
[0026]图10是说明通过服务器进行的和图9的用户和客户机会话的相关时序相关联的步骤的流程图。
[0027]图11是存储单元的实施例的更详细的方框图。
具体实施方式
[0028]参考图2,示出了允许在客户机-服务器网络125上通信同时移除了许多HTTP、或客户机、会话限制的计算机系统200的实施例。具体地,系统200允许服务器115在通信会话期间维持状态,允许用户在以后的通信会话中存取第一客户机通信会话期间存储的数据。因此,在一个实施例中,会话数据的存取发生在第一客户机通信会话结束之后。
[0029]计算机系统200包括第一客户机110’、第二客户机110”(通常在下面表示为客户机110)和服务器115。在一个实施例中,每个客户机110’、110”有各自的Web浏览器135’、135”(通常在下面表示为Web浏览器135)。虽然以两个客户机110’、110”示出,但是计算机系统200可以有任何数量的客户机(例如,一、三或五十)。
[0030]客户机110可以是任何个人计算机(如,基于x86系列的、奔腾系列的、680x0系列的、PowerPC、PA-RISC、MIPS系列的微处理器)、智能的或非智能的终端、网络计算机、无线设备、信息装置、工作站、小型计算机、大型计算机或其它的计算设备。客户机110支持的操作系统可包括,来自位于华盛顿州雷蒙德市的微软公司的WINDOWS系列操作系统的任何成员,MacOS、JavaOS和Unix的各种变体(如Solaris、SunOS、Linux、HP-UX、A/IX和基于BSD的发布)。
[0031]在一个实施例中,为了与服务器115通信,Web浏览器135使用安全套接层(Secure Socket Layer)(SSL)支持。SSL是由加利福尼亚州芒廷维尤市的网景通信公司(Netscape CommunicationsCorporation)开发的安全的协议,并且现在是由因特网工程任务组(Internet Engineering Task Force)(IETF)颁布的标准。Web浏览器135可选择地用其它安全协议连到服务器115,例如,但不局限于,由美国中部的洛斯阿尔托斯市的Terisa Systems开发的安全的超文本传输协议(Secure Hypertext Transfer Protocol)(SHTTP)、基于SSL的HTTP(HTTPS)、由华盛顿州雷蒙德市的微软公司(MicrosoftCorporation)开发的专用通信技术(Private CommunicationTechnology)(PCT)和由IETF颁布的传输层安全(Transport LevelSecurity)(TLS)标准。
[0032]虽然上面和下面以Web浏览器135描述,但是客户机110可以选择地不用Web浏览器135从服务器115获取内容。例如,客户机110可以从服务器110获取内容,不用访问Web,而是使用通信设备或模块直接与服务器115通信。此外,虽然用于服务器115和客户机110之间通信的协议在上面和下面描述为HTTP,但是可以使用任何协议。
[0033]如上所述,在一个实施例中,每个客户机110能通过网络125从服务器115下载内容。网络125可以是局域网(LAN)、广域网(WAN)或诸如因特网或万维网(即,Web)的网络组成的网络。在另一个实施例中,第一客户机110’和第二客户机110”通过不同的网络与服务器115通信。具体地,每个客户机110’、110”可通过各自的经过网络125的客户机-服务器通信信道120’、120”(通常在下面被表示为客户机-服务器通信信道120)与服务器115通信。
[0034]通信信道120’、120”的示例实施例包括标准的电话线、LAN或WAN链接(例如,T1、T3、56kb、X.25),宽带连接(ISDN、帧中继、ATM)和无线连接。通信信道120’、120”上的连接可采用各种通信协议建立(例如,HTTP、HTTPS、TCP/IP、IPX、SPX、NetBIOS、以太网、RS232、消息传送应用编程接口(messagingapplication programming interface)(MAPI)协议、实时流协议(real-timestreaming protocol)(RTSP)、用于用户数据报协议方案的实时流协议(RTSPU)、由华盛顿州西雅图市的RealNetworks股份有限公司开发的顺序网络多媒体(Progressive Networks Multimedia)(PNM)、制造消息规范(manufacturing message specification)(MMS)协议和直接的异步连接)。
[0035]在一个实施例中,服务器115发送内容(例如,网页)到客户机110。服务器115可以是任何能与客户机110通信的个人计算机,例如上述的那些关于客户机110的计算机。此外,服务器115能支持任何操作系统,例子也同样在上面为客户机110给出。
[0036]在一个实施例中,服务器115是由客户机110可用的应用程序130的主机。这种应用程序的例子包括,诸如MICROSOFT WORD的字处理程序和诸如MICROSOFT EXCEL的电子表格程序(这两个程序都是华盛顿州雷蒙德市的微软公司(Microsoft Corporation)制作的)、财务报表程序、客户注册程序、提供技术支持信息的程序、客户数据库应用程序和应用程序集合管理器。
[0037]服务器115还包括用户会话机制205。用户会话机制205建立和管理服务器115和用户之间的一个或更多的用户会话。在一个实施例中,  用户会话包括一系列的源自同一识别用户的HTTP请求。在一些实施例中,请求被提交给应用程序130。因为建立用户会话的请求源自同一个用户而不是同一个Web浏览器135(并且因此不是同一个客户机),所以用户会话机制205可以维持与同一用户的来自不同Web浏览器和/或来自不同客户机的单个用户会话。此外,用户会话机制205可以建立和维持多个在同一个和多个客户机110上的服务器115与用户之间的用户会话。
[0038]在一个实施例中,用户会话机制205是在服务器115内部执行的软件模块。用户会话机制205也可以是外部的软件模块,  “插入”服务器115以增加服务器115的用户会话能力。不像HTTP会话被时间限制,特定用户和用户会话机制205之间的用户会话不依赖于任何时间周期。在更多的实施例中,用户会话机制205’作为应用程序130的一部分执行,例如应用程序130的子例程或过程。
[0039]服务器115还可以是服务器场210或服务器网络的成员,它是一个或更多个服务器的逻辑组,作为单个实体被管理。在一个实施例中,服务器场210包括三个Web服务器115、115’、115”(通常115)。虽然图2所示的实施例有三个Web服务器115,但是服务器场210可以有任何数量的服务器。在其它的实施例中,服务器场210是保护的网络,未授权的个人不能访问,例如公司的内部网、虚拟专用网(VPN)或安全的外部网。此外,组成服务器场210的服务器可以在上述的任何网络(例如,WAN,LAN)上用任何所讨论的协议通信。
[0040]关于服务器115的更详细地,还参考图3,在一个实施例中,服务器115包括接收器305、客户机会话机制310、存储器单元315、用户会话机制205和应用程序130。这些部件允许服务器115创建和维持用户会话,即使在终止建立的客户机会话之后。
[0041]具体地,在一个实施例中,接收器305是软件模块,接收一个或更多个来自客户机110的与服务器115建立通信会话的请求320。因此,在一个实施例中,请求320提交给接收器305。请求300可能是,例如,登录并使用诸如MICROSOFT WORD的应用程序130的请求。在一个实施例中,接收器305在应用程序130内部执行。在其它的实施例中,接收器305是在服务器115或服务器115的另一个模块的一部分上(例如,用户会话机制205)独立地执行的软件模块。
[0042]服务器115还包括与接收器305通信的客户机会话机制310。客户机会话机制310是建立和管理服务器115和客户机110之间的HTTP通信会话的软件模块。作为该管理的一部分,客户机会话机制310存储和维持和客户机110和服务器115之间的每个通信会话相关联的会话数据。在一个实施例中,客户机会话机制310在存储器单元315存储会话数据。
[0043]存储器单元315可以是任何标准的存储器设备,例如,动态RAM(DRAM)、静态RAM(SRAM)、同步DRAM(SDRAM)、双倍数据速率同步动态RAM(DDR SDRAM)、电可擦除可编程只读存储器(EEPROM)或可编程只读存储器(PROM)。存储器单元315可以放在服务器315的内部或外部。另外的存储器单元315例子包括永久数据库(例如,永久用户会话数据库)、磁盘、或磁光驱动器。在一些实施例中,应用程序130也在存储器单元315访问和存储信息。
[0044]如下更详细地描述,在一个实施例中,客户机会话机制310可创建客户机会话对象325,用于存储和与一个或更多的客户机会话相关联的会话数据。此外,用户会话机制205还创建用户会话对象330,用于存储与一个或更多的用户会话相关联的会话数据。
[0045]在建立客户机会话之后的某点,服务器115将终止通信会话。在一个实施例中,通信会话的终止是响应指定的终止消息。在一些实施例中,终止消息由客户机110发送,或者响应客户机110上的用户进行的动作,例如,当用户关闭Web浏览器135的时候。选择地,当服务器115在预先确定的时段没有接收来自用户110的关于客户机通信会话的任何信息,可接收终止消息。换句话说,当客户机110的用户保持空闲太久的时候,服务器115可终止客户机会话。
[0046]一旦客户机会话结束,服务器115通常丢弃会话数据,因为通信会话结束。但是,为了允许用户在以后从同样的或不同的客户机110回到其通信会话,在客户机会话终止之后,用户会话机制205维持会话数据。
[0047]此外,软件模块130、205、305、310、315、325、330的任何组合可组合为单个模块。例如,用户会话机制205和客户机会话机制310可并入单个会话机制335。此外,任何或所有软件模块130、205、305、310、315、325、330和335可放在服务器115的内部或外部。
[0048]作为由服务器115进行的步骤的纵览,并且还参考图4,接收器305接收(步骤405)来自第一客户机110’的与服务器建立通信会话的请求320,例如,访问应用程序130。在一个实施例中,一旦接收器305接收请求320,然后,用户会话机制205建立(步骤410)操作第一客户机110’的用户与服务器115之间的用户会话。
[0049]然后,服务器115建立(步骤415)第一客户机110’与服务器115之间的客户机会话。如上所述,客户机会话机制310存储与客户机会话相关联的在客户机会话期间的会话数据。客户机会话机制310在客户机会话期间继续存储会话数据直到服务器115确定,在步骤420,终止客户机会话(例如,响应超时或终止消息的接收)。在这种确定时,服务器115终止(步骤425)客户机会话,并且用户会话机制205接管了存储用户会话数据的责任。
[0050]然后,服务器115接收(步骤430)来自第二客户机110”的继续用户的通信会话的请求。然后,用户会话机制205重新激活(步骤435)用户会话。尽管终止了以前的客户机会话,用户会话的重新激活允许用户在不同的机器(例如,第二客户机110”)上和不同的时间继续其工作。
[0051]关于建立用户会话更详细地,并且参考图5,在服务器115接收来自第一客户机110’的建立用户会话的请求(如上所述在步骤405)之后,服务器115在建立用户会话之前,在步骤510-520认证用户。认证过程包括服务器115请求(步骤510)用户的证书,例如用户的登录名和口令。在一个实施例中,用户在第一客户机110’的Web浏览器135’的显示上输入其证书,并且Web浏览器135’发送该信息到服务器115。在其它的实施例中,Web浏览器135’自动发送该信息到服务器115用于用户验证。在另外其它的实施例中,服务器115通过声音辨认和通过生物计量信息(例如,面孔辨认或眼睛扫描)验证用户。
[0052]服务器115等待接收用户证书(步骤515),然后确定服务器启115是否认可接收的用户证书(步骤520)。在一个实施例中,服务器115用其存储在存储器单元315中的用户证书列表来检验接收的用户证书。如果在步骤520,服务器115不认可用户(例如,服务器115未认可接收的用户证书),服务器115重复请求用户的证书。在一个实施例中,服务器115在终止其与第一客户机110’的通信之前,只请求用户的证书固定的次数。如果在步骤515,服务器115在预先确定的时间未接收任何用户证书,服务器115也可终止其与第一客户机110’的通信。
[0053]如果在步骤520,服务器115认可用户证书,并且因此识别用户,然后服务器115创建认证Cookie(步骤525),用于建立与第一客户机110’的客户机会话。在一个实施例中,服务器115传送认证Cookie到第一客户机110’,例如,作为一个或更多个HTTP报头的一部分。此外,在一些实施例中,服务器115还保留了在认证Cookie中发送的数据的副本为将来用于识别用户。在一个实施例中,服务器115然后创建和认证Cookie(步骤530)相关联的客户机会话对象325。因此,在第一客户机110’与服务器115之间的客户机通信会话期间,服务器115存储和客户机会话相关联的会话数据在客户机会话对象325中。
[0054]在步骤535,服务器115还创建和以前在步骤510-520认证的用户相关联的用户会话对象330。然后,服务器115把客户机会话和用户会话相关联(步骤540),以便对同一用户,用户会话和客户机会话有关。在一个实施例中,服务器115通过连接客户机会话对象325和用户会话对象330来关联客户机会话和用户会话。在另一个实施例中,服务器115通过维持客户机会话标识符与用户会话标识符之间的映射来关联客户机会话和用户会话。在一个实施例中,服务器115关联对象325、330,以便服务器115在客户机会话对象325存储的数据对用户会话对象330是可存取的,即使是在客户机会话终止之后。
[0055]在一个实施例中,当在用户会话机制205创建用户会话之后接收随后的建立通信会话的请求320的时候,服务器115比较来自请求报头的认证Cookie和与服务器115存储用于将来的用户识别的Cookie相关联的数据。如果来自接收的Cookie的信息和存储的数据匹配,服务器115把当前的请求320和客户机会话相关联。在一个实施例中,这种关联包括在用户以前创建的和使用的同样的用户会话中创建客户机会话。
[0056]关于在与第一客户机110’的客户机会话终止时服务器115进行的步骤更详细地,并且也参考图6,服务器115在确定接收终止消息后,从HTTP报头除去认证Cookie(步骤605)。然后,服务器115传递(步骤610)以前存储在客户机会话对象325中的客户机会话数据到用户会话对象330,使得尽管终止了与第一客户机110’的客户机会话,用户仍能在以后的时间存取同样的会话数据。在步骤615,服务器除去了用户会话与客户机会话之间的关联。在一个实施例中,服务器115删除客户机会话对象325。
[0057]参考图7,如上在图4简述的(步骤430和435),在服务器确定终止与第一客户机110’的客户机会话之后,用户可发送来自第二客户机110”的请求以重新激活同样的用户会话(步骤705)。这可能发生,例如,如果从其办公室的计算机连到服务器115的用户现在出差。用户可能更喜欢继续以前在其办公室计算机上建立的通信会话,但是用户可能在其旅途上只能使用膝上型电脑(例如,第二客户机110”)。在这种情形下,用户可使用,例如,他的膝上型电脑向服务器115发送代表用户期望重新激活以前的用户会话的请求。
[0058]在步骤710,在允许存取在以前的通信会话中创建的会话数据之前,服务器115认证用户。上面参考图5的步骤510-520更详细地描述了该认证过程。一旦认证用户,服务器然后创建认证Cookie(步骤715),也在上面图5的步骤525中描述。服务器115还创建客户机会话对象325,以建立服务器115与第二客户机110”之间的新的客户机会话(步骤720)。
[0059]在一个实施例中,服务器115然后搜索存储器单元315找与用户的证书(例如,用户的名字、用户的口令或任何其它的用户标识符)相关联的用户会话对象330。关联的用户会话数据和用户会话定位(步骤725)后,然后,服务器115把客户机会话和用户会话相关联(步骤730)。然后,服务器115检索和传递(步骤735)以前在图6的步骤610中发送到用户会话对象330的会话数据到客户机会话对象325,以允许客户机会话机制310管理和更新会话数据。
[0060]关于用户会话更详细地,并且参考图8,在一个实施例中,用户会话机制205分配状态给用户会话,以在用户通信会话期间维持状态。分配一个状态给用户会话允述再次激活用户会话。具体地,用户会话机制可分配活动状态805、暂停状态810、或完成状态815给用户会话。
[0061]在一个实施例中,用户会话开始于活动状态805。只要客户机110和服务器115之间的客户机会话建立,用户会话就在活动状态805。因此,在一个实施例中,用户会话机制205分配用户一个活动状态805响应开始事件820。开始事件820的一个例子包括接收来自客户机110的与服务器115建立用户通信的请求,如在上面步骤405(图4)所述。用户会话机制205维持用户会话在活动状态805,直到断开事件825(例如,终止消息)发生。当服务器115经历了断开事件825,用户会话机制205重新分配用户会话的状态,从活动状态805到暂停状态810。此后,当服务器收到继续事件830(例如,来自另一个客户机上的同一个用户的继续以前的用户会话的请求),用户会话机制205重新分配用户会话的状态,从暂停状态810回到活动状态805。因此,用户会话机制205可以分配和重新分配用户会话状态,从活动状态805到暂停状态810(和从暂停状态810到活动状态805),次数和用户想要的次数一样多。具体地,用户会话机制205可改变用户会话的状态,从活动到暂停和从暂停到活动,次数和服务器收到继续事件830和/或断开事件825的次数一样多。
[0062]此外,如上所述,服务器115接收结束事件835之后结束用户会话(例如,通过用户会话终止消息)。当接收结束事件835时,用户会话机制205转换用户会话的状态,从活动状态805到完成状态815。在一个实施例中,用户会话状态可从暂停状态转变到完成状态815,以响应清除事件840。在一个实施例中,清除事件840是管理员(例如,服务器115的,用户会话机制205的,等等)采取的命令或动作。在另一个实施例中,用户会话状态可从暂停状态810转变到完成状态815,是用于管理程序周期地检验暂停会话,以确定是否有暂停会话在预先确定的时段(例如,一个月)之外保持在暂停状态810。如果这样的暂停会话存在,用户会话将可能在将来不被用户激活。因此,管理程序可转变这些会话状态到完成状态815。
[0063]参考图9和10,示出了用户会话状态变化的时线900和服务器115进行的关于用户会话状态的步骤的实施例。服务器115(即接收器305)接收来自第一客户机110’的第一开始事件820’(例如,请求与服务器115建立通信)(步骤1005)。接收到第一开始事件820’后,为了用户会话机制205检验以前和用户相关联的任何用户会话(即,处于暂停状态810的用户会话)用的存储器单元315(例如,永久用户会话数据库)(步骤1010)。在一个实施例中,这发生在认证用户之后,如上所述。如果在步骤1010,用户会话机制205确定对于识别的用户不存在用户会话,用户会话机制205为用户创建新的用户会话(步骤1020),如上参考图5所述。因此,如上所述,当用户会话机制205创建第一用户会话时,用户客户机会话机制310也创建第一客户机会话905。此外,客户机会话机制310创建初始的客户机会话对象325’,并且分配缺省的用户会话状态给该对象325’。
[0064]当第一客户机会话905进行时,客户机会话机制310存储与第一客户机会话905相关联的会话数据在初始的客户机会话对象325’中,因此,使得对象325’的状态转变到具有第一存储用户会话状态的初始的第一状态客户机会话对象325”。随后,服务器115接收断开事件825,以终止第一客户机会话905。在该点,当用户会话机制205转变用户会话到暂停的状态810时,用户会话机制205还传递来自初始的第一状态客户机会话对象325”的会话数据到永久用户会话对象330’(用箭头910示出)。因此,用户会话机制205分配第一永久数据会话状态给永久用户会话对象330’。
[0065]但是,如果用户会话机制205在步骤1010确定对于识别的用户存在暂停的用户会话810,例如在断开事件825之后收到继续事件830(例如,来自第二客户机110”的请求),服务器115在做出最近的通信请求的客户机110(例如,第二客户机110”)上显示关于用户可用的每个暂停的用户会话810的信息(步骤1025)。在一个实施例中,用户会话机制205然后在步骤1030确定,是否用户更喜欢重新连到暂停的用户会话810,例如通过从用户接收输入。如果服务器115确定用户选择不重新连到暂停的用户会话,服务器115在步骤1020创建新的用户会话。
[0066]如果用户选择继续暂停的用户会话810,用户会话机制205等待用户从显示的用户会话中选择暂停的用户会话810,如果对于识别的用户存在不止一个暂停的用户会话810的话。在一个实施例中,服务器115认为继续事件830是从服务器显示的客户机110(例如,第二客户机110”)上的暂停的用户会话810中选择暂停的用户会话810。
[0067]选择地,继续事件830可以是从第二客户机110”接收的与服务器115建立通信会话的直接请求。在这个实施例中,服务器115不向用户提供任何选择。代替地,服务器115可连到最近暂停的用户会话810、最早暂停的用户会话810、或预先确定的暂停的用户会话810。在一些实施例中,请求指示了用户要重新激活哪个用户会话810。
[0068]一旦用户会话机制205确定用户会话机制205接收了继续事件830,用户会话机制205转变暂停的用户会话810到活动的用户会话805,并且客户机会话机制310创建第二客户机会话915。此外,在一个实施例中,用户会话机制205恢复来自永久用户会话对象的会话数据在第二第一状态客户机会话对象325中(用箭头920示出)(步骤1035)。该客户机会话对象325具有和初始的第一状态客户机会话对象325”在第一客户机会话905结束之前具有的一样的会话数据。一旦用户会话机制205恢复会话数据,以前暂停的用户会话继续(步骤1040)。
[0069]当第二客户机会话915进行时,客户机会话机制310保存新的会话数据在第二第一状态客户机会话对象325中,因此,客户机会话对象325转化为具有第二存储用户会话状态的第二状态客户机会话对象325””。当用户请求结束用户会话时,服务器115接收结束事件835。在接收终止事件835时,用户会话机制205然后清空具有第一用户会话状态的永久用户会话对象330’,因此产生空的永久用户会话对象330”。如果服务器115然后接收第二开始事件820”,重复该过程,例如伴随着第三客户机对象925的创建。
[0070]在用户会话机制205更详细的实施例中,可用任何计算机语言或框架来写用户会话机制205。例如,用户会话机制205,可以是应用服务提供商(ASP.NET)的HTTP模块或HTTP处理器。在一个实施例中,用户会话机制205是连在HTTP事件处理器上的HTTP事件模块。采用ASP.NET的框架,用户会话机制205可以是加到HTTP运行时间的管线上的HTTP模块,提供上述的用户会话能力。
[0071]在一个实施例中,用户会话机制205可预/后处理提供用户会话服务的请求。具体地,在一个实施例中,HTTP模块通过确定是否有开始或继续用户会话的需要预处理请求320。HTTP模块能后处理请求320,以确定用户是否要求断开或结束用户会话。
[0072]服务器115存储在存储器单元315的用户会话数据和客户机会话数据的实施例,如图11所示。客户机会话对象325包括,例如,应用程序模块1115里的AppID字段1105和App名(AppName)字段1110。在会话模块1120中,客户机会话对象325存储,例如,会话ID(SessionID)字段1122、已创建(Created)字段1125、过期时间(Expires)字段1130、锁定日期(LockDate)字段1135、锁定Cookie(LockCookie)字段1140、超时(Timeout)字段1145、已锁定(Locked)字段1150、会话项短型(SessionItemShort)字段1155和会话项长型(SessionItemLong)字段1160。在一个实施例中,客户机会话机制310为客户机会话存储会话数据在这些字段中。在一些实施例中,这些字段是存储在数据库315中的表的字段。
[0073]在一个实施例中,客户机会话机制310为与客户机110的客户机通信会话存储标识符在会话ID(SessionID)字段1122中。已创建(Created)字段1125可存储客户机通信会话创建时候的时间标记。相似地,过期时间(Expires)字段1130包括客户机会话过期的时间。锁定日期(LockDate)字段1135存储日期,如果有的话,客户机会话在该日期锁定,使得该会话不能被访问。在一个实施例中,锁定Cookie(LockCookie)字段1140存储关于特定的Cookie是否锁定的布尔值(即,真或假),使得与Cookie相关联的数据是不可访问的(例如,在使用期间,如当Cookie正在被更新的时候)。在另一个实施例中,如果会话数据锁定,锁定Cookie(LockCookie)字段1140包括存储器单元315中的客户机会话数据的锁定类型。在一个实施例中,存在三种可能锁定类型:读锁定(Read Lock)、写锁定(Write Lock)和自旋锁定(Spin Lock)。在一个实施例中,设置读锁定以允许多个程序同时读会话数据而阻止程序写会话数据。此外,设置写锁定以阻止其它的程序在一个程序正在写会话数据的时候读和写会话数据。此外,在一个实施例中,设置自旋锁定以阻止在一个程序正存取(即,读或写)会话数据的时候存取会话数据。超时(Timeout)字段1145存储因为例如服务器115未收到输入而结束客户机会话的时间值。在一个实施例中,锁定(Locked)字段1150是代表数据是否锁定的布尔值,因此,当客户机会话使用(例如,写和/或读)会话数据时,禁止存取数据。会话项短型(SessionItemShort)字段1155和会话项长型(SessionItemLong)字段1160可以是服务器115存储会话数据的字段。
[0074]用户会话机制205存储关于客户机会话机制310的附加的信息。具体地,用户会话机制205存储用户ID(UserID)字段1165、用户名(UserName)字段1170和Auth类型(AuthType)字段1175在用户会话对象330的会话用户模块1180中。在一个实施例中,用户ID(UserID)字段1165包括唯一的用户标识符。用户名(UserName)字段1170可包括用于识别用户的名称。在一些实施例中,Auth类型(AuthType)字段1175包括用于认证用户的方法,例如通过Web形式、窗口或通行证认证。
[0075]用户会话对象330还可包括活动的会话模块1185。活动的会话模块1185包括会话ID(SessionID)字段1190、已创建(Created)字段1195和用户ID(UserID)字段1200。在一个实施例中,会话ID(SessionID)字段119包括唯一的用户会话标识符。已创建(Created)字段1195包括用户会话机制205创建用户会话的时间。在一个实施例中,用户ID(UserID)字段1200包括唯一的与活动的用户会话有关的用户标识符。
[0076]用户会话对象330还可包括断开会话模块1205。断开会话模块1205可包括会话ID(SessionID)字段1210、已创建(Created)字段1215、锁定Cookie(LockCookie)字段1220、超时(Timeout)字段1225、会话项短型(SessionItemShort)字段1230、会话项长型(SessionItemLong)字段1235、用户ID字段(UserID)1240和断开时间(DisconnectTime)字段1245。在一个实施例中,如果会话数据锁定,锁定Cookie(LockCookie)字段1220包括存储器单元315中存储的会话数据的锁定类型(例如,读锁定(Read Lock)、写锁定(Write Lock)或自旋锁定(Spin Lock))。超时(Timeout)字段1225包括预先确定的时间,用于在客户机110不动作(例如,从客户机110没有接收请求320)之后终止客户机会话。会话项短型(SessionItemShort)字段1230可存储当数据比预先确定数量的字节(例如,7000)小的时候的会话数据。同样地,会话项长型(SessionItemLong)字段1235可存储当数据比预先确定的数量字节(例如,7000)大的时候的会话数据。在一个实施例中,断开时间(DisconnectTime)字段1245包括用户会话断开的时间。
[0077]使能用户会话向最终用户提供了许多的优点。例如,用户会话向用户提供了高的可动性,因为用户可在第一地方开始任务,并且移动到另一个地方继续进行任务。此外,用户不必为找到正确的地点以继续工作而寻遍网络应用程序130,用户一登录进服务器115就能立即工作。此外,用户会话能力确保用户的部分工作不被丢失,即使用户在有机会暂停应用程序130之前不得不离开。对用户会话也没有时间限制,并且用户可使多个用户会话同时活动,以便用户能从一个任务移动到另一个。
[0078]相似地,对Web开发器存在许多优点。例如,用户会话能力简化了Web应用程序能如用户期望的那么久保持用户会话数据的特征。此外,在一个实施例中,引入用户会话没有给Web开发器增加负担,因为关于以与当前编程同样的方式编程会话数据存在着高级别的透明度。此外,用户会话可被任何Web应用程序130使用。用户会话还允许Web开发器有更大的自由集中在业务问题而不是会话数据上,潜在地减少了应用程序130的开发时间。
[0079]本发明可作为包含在一个或多个制造产品上或内的一个或多个计算机可读的程序提供。制造产品可能是软盘、硬盘、CDROM、闪存卡、PROM、RAM、ROM、便携式存储设备或磁带。通常,计算机可读的程序可以用任何编程语言实现。可用语言的例子包括C、C++或JAVA。软件程序可作为对象代码存储在一个或多个制造产品上或里。
[0080]描述了本发明的某些实施例,现在,本领域的技术人员将理解,可使用其它的包含本发明概念的实施例。因此,本发明不应该被限制在某些实施例,而是应该只被下面权利要求书的精神和保护范围限制。

Claims (27)

1.一种用于在客户机-服务器网络上通信的方法,所述方法包含以下步骤:
(a)通过服务器,接收来自由用户操作的第一客户机的与所述服务器建立通信的请求;
(b)响应所接收的请求,建立所述服务器和所识别的用户之间的用户会话;
(c)响应所接收的请求,建立第一客户机和所述服务器之间的客户机会话;
(d)通过所述服务器,存储用户会话数据,响应所述客户机会话的终止;
(e)通过所述服务器,接收来自由所述用户操作的第二客户机的与所述服务器建立通信的请求;以及
(f)重新激活所述用户会话。
2.如权利要求1所述的方法,其中步骤(a)包含,通过服务器,接收与所述服务器建立通信的请求,其中所述请求识别所述用户。
3.如权利要求1所述的方法,还包含通过服务器接收用户认证证书的步骤。
4.如权利要求1所述的方法,其中步骤(a)包含,通过服务器接收与所述服务器建立通信的超文本传输协议(http)的请求。
5.如权利要求1所述的方法,其中步骤(d)还包含:
(d-a)接收来自第一客户机的终止消息;
(d-b)终止第一用户和所述服务器之间的客户机会话;以及
(d-c)通过所述服务器存储用户会话数据,响应第一客户机和所述服务器之间的客户机会话的终止。
6.如权利要求1所述的方法,其中步骤(d)还包含:
(d-a)等待预先确定的时段;
(d-b)终止第一客户机和所述服务器之间的客户机会话;以及
(d-c)通过所述服务器存储用户会话数据,响应第一客户机和所述服务器之间的客户机会话的终止。
7.如权利要求1所述的方法,其中步骤(d)还包含,通过所述服务器在数据库中存储用户会话数据,响应所述客户机会话的终止。
8.如权利要求1所述的方法,还包含分配状态给建立的用户会话的步骤。
9.如权利要求8所述的方法,其中步骤(b)还包含,分配标识符给所建立的用户会话,指示所述用户会话是活动的。
10.如权利要求8所述的方法,其中步骤(f)还包含,分配标识符给所述用户会话,指示所重新激活的用户会话是活动的。
11.如权利要求8所述的方法,其中步骤(d)还包含,分配标识符给所述用户会话,指示所述用户会话暂停。
12.如权利要求1所述的方法,还包含以下所述步骤:
(g)接收用户会话终止消息,以终止所述用户会话;以及
(h)分配标识符给所述用户会话,指示所述用户会话完成。
13.如权利要求12所述的方法,还包含删除所存储的用户会话数据的步骤。
14.如权利要求1所述的方法,其中,步骤(e)包含:
(e-a)通过所述服务器,接收另一个来自由所述用户操作的第一客户机和第二客户机中的至少一个的与所述服务器建立通信的请求;以及
(e-b)使用所存储的用户会话数据,确定和所述用户关联的建立的用户会话的存在性。
15.如权利要求14所述的方法,还包含以下步骤:重新激活所述用户会话,响应确定所建立的用户会话的存在性。
16.如权利要求1所述的方法,其中步骤(d)还包含以下步骤:通过所述服务器存储下列项的至少一项:对所述用户的用户识别、用于识别所述用户的名字、代表用于认证所述用户的方法的方法指示器、所述用户会话的唯一标识符、所述用户会话创建的时间、所述会话数据的锁定类型、超时、所述会话数据和断开的时间。
17.如权利要求1所述的方法,其中,步骤(b)还包含:
(b-a)通过所述服务器接收来自第一客户机的用户证书;
(b-b)用所述用户证书认证所述用户;
(b-c)创建认证Cookie;
(b-d)创建和所述认证Cookie关联的客户机会话对象;
(b-e)创建和所述用户关联的用户会话对象;以及
(b-f)把所述用户会话和所述客户机会话相关联。
18.如权利要求17所述的方法,还包含以下步骤:接收来自第一客户机和第二客户机中的至少一个的与所述服务器建立通信的另一个请求。
19.如权利要求18所述的方法,还包含,在与所述另一个请求建立客户机会话之前,比较所述另一个请求的报头中的Cookie和所述服务器上的Cookie。
20.一种用于在客户机-服务器网络上通信的服务器,包含:
(a)接收器,接收来自第一客户机的与所述服务器建立通信会话的第一请求和来自第二客户机的与所述服务器建立通信会话的第二请求;
(b)与所述接收器通信的用户会话机制,建立用户会话,响应与所述服务器建立通信会话的第一请求;
(c)与所述接收器通信的客户机会话机制,建立第一客户机会话,响应与所述服务器建立通信会话的第一请求;以及
(d)存储器单元,存储用户会话数据,响应第一客户机会话的终止,
其中,所述用户会话机制重新激活所述用户会话,响应所述接收器接收第二请求。
21.如权利要求20所述的服务器,其中,所述用户会话机制包含事件处理器。
22.如权利要求20所述的服务器,其中,所述用户会话机制包含HTTP模块。
23.如权利要求20所述的服务器,其中,所述存储器单元包含数据库。
24.如权利要求20所述的服务器,其中,所述用户会话机制分配状态给建立的用户会话。
25.如权利要求24所述的服务器,其中,所述用户会话机制分配状态,该状态又由活动状态、完成状态和暂停状态中的至少一个组成。
26.一种用于在客户机-服务器网络上通信的服务器,包括:
(a)用于接收来自由用户操作的第一客户机的与所述服务器建立通信的请求的装置;
(b)用于响应所接收的请求而建立和所识别的用户的用户会话的装置;
(c)用于响应所接受的请求而建立和第一客户机的客户机会话的装置;
(d)用于存储用户会话数据响应所述客户机会话终止的装置;
(e)用于接收来自由所述用户操作的第二客户机的与所述服务器建立通信的请求的装置;
(f)用于重新激活所述用户会话的装置。
27.一种具有其中包含的计算机可读程序装置的制造产品,所述产品包含:
(a)计算机可读程序装置,用于接收来自第一客户机的与所述服务器建立通信会话的第一请求和来自第二客户机的与所述服务器建立通信会话的第二请求;
(b)计算机可读程序装置,用于建立用户会话,响应与所述服务器建立通信会话的第一请求;
(c)计算机可读程序装置,用于建立第一客户机会话,响应与所述服务器建立通信会话的第一请求;以及
(d)计算机可读程序装置,用于存储用户会话数据,响应第一客户机会话的终止,
其中,用于建立用户会话以响应第一请求的计算机可读程序装置重新激活所述用户会话,响应所述接收器接收第二请求。
CNA2003801045777A 2002-10-04 2003-10-03 用于在客户机-服务器网络上通信的方法和系统 Pending CN1717676A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/264,487 US20040068572A1 (en) 2002-10-04 2002-10-04 Methods and systems for communicating over a client-server network
US10/264,487 2002-10-04

Publications (1)

Publication Number Publication Date
CN1717676A true CN1717676A (zh) 2006-01-04

Family

ID=32042238

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2003801045777A Pending CN1717676A (zh) 2002-10-04 2003-10-03 用于在客户机-服务器网络上通信的方法和系统

Country Status (8)

Country Link
US (1) US20040068572A1 (zh)
JP (1) JP2006502496A (zh)
KR (1) KR20050055743A (zh)
CN (1) CN1717676A (zh)
AU (1) AU2003299554A1 (zh)
CA (1) CA2501170A1 (zh)
RU (1) RU2005111592A (zh)
WO (1) WO2004034192A2 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101977224A (zh) * 2010-10-28 2011-02-16 神州数码网络(北京)有限公司 一种基于SSL VPN设备的Web资源认证信息管理方法
US7953861B2 (en) 2006-08-10 2011-05-31 International Business Machines Corporation Managing session state for web applications
CN102546795A (zh) * 2011-12-31 2012-07-04 成都巴比塔网络技术股份有限公司 基于用户对话模式的客户机服务器持续会话的方法
CN101543070B (zh) * 2007-04-10 2012-07-04 电子部品研究院 异步多媒体检索的方法
CN110191041A (zh) * 2019-05-05 2019-08-30 杭州迪普科技股份有限公司 局域网的设备的管理方法和装置
CN111800316A (zh) * 2020-07-16 2020-10-20 浙江百应科技有限公司 一种解决管线式http请求的服务器链路关闭的方法

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BR0111748A (pt) * 2000-06-22 2004-08-10 Microsoft Corp Plataforma de serviços de computação distribuìdos
US6874031B2 (en) * 2002-10-07 2005-03-29 Qualcomm Inc. Method and apparatus for sharing authentication session state in a global distributed network
US7653645B1 (en) 2002-10-29 2010-01-26 Novell, Inc. Multi-epoch method for saving and exporting file system events
US7213040B1 (en) * 2002-10-29 2007-05-01 Novell, Inc. Apparatus for policy based storage of file data and meta-data changes over time
US7546630B2 (en) * 2003-07-17 2009-06-09 International Business Machines Corporation Methods, systems, and media to authenticate a user
US7747759B1 (en) * 2003-11-26 2010-06-29 Teradata Us, Inc. Techniques for maintaining persistent preferences
US7735120B2 (en) * 2003-12-24 2010-06-08 Apple Inc. Server computer issued credential authentication
US8442227B1 (en) 2004-02-23 2013-05-14 Rockstar Consortium Us Lp Providing additional information with session requests
US7469293B1 (en) * 2004-02-23 2008-12-23 Nortel Networks Limited Using additional information provided in session requests
US8219609B1 (en) * 2004-05-17 2012-07-10 Oracle America, Inc. Establishing a stateful environment for a stateless environment
KR20050114047A (ko) * 2004-05-31 2005-12-05 삼성전자주식회사 원격지에 소재하는 다수의 클라이언트들을 지원하는 방법및 서버
KR100690764B1 (ko) 2004-06-08 2007-03-09 엘지전자 주식회사 아이엠피에스 클라이언트의 상태정보 동기화 방법
US7984149B1 (en) * 2004-08-04 2011-07-19 Cisco Technology, Inc. Method and apparatus for identifying a policy server
US20100299736A1 (en) * 2004-09-01 2010-11-25 Nortel Networks Limited Automated session admission
US10169765B2 (en) 2004-10-01 2019-01-01 Reachlocal, Inc. Method and apparatus for generating advertisement information for performing a marketing campaign
US20060130135A1 (en) * 2004-12-10 2006-06-15 Alcatel Virtual private network connection methods and systems
US8515490B2 (en) * 2004-12-30 2013-08-20 Alcatel Lucent Method and apparatus for providing same session switchover between end-user terminals
DE102005055293A1 (de) * 2005-08-05 2007-02-15 Osram Opto Semiconductors Gmbh Verfahren zur Herstellung von Halbleiterchips und Dünnfilm-Halbleiterchip
US7921208B2 (en) * 2005-10-24 2011-04-05 Sap Aktiengesellschaft Network time out handling
US8756326B1 (en) 2005-11-08 2014-06-17 Rockstar Consortium Us Lp Using interactive communication session cookies in web sessions
US20070106670A1 (en) * 2005-11-08 2007-05-10 Nortel Networks Limited Interactive communication session cookies
US7702947B2 (en) * 2005-11-29 2010-04-20 Bea Systems, Inc. System and method for enabling site failover in an application server environment
US7587031B1 (en) * 2005-12-22 2009-09-08 Nortel Networks Limited Forced hold call handling in a VoP environment
DE102006001503B4 (de) * 2006-01-11 2016-09-15 Intel Deutschland Gmbh Verfahren und System zum Übermitteln von Zusatzdaten
US20070239528A1 (en) * 2006-03-29 2007-10-11 Reachlocal, Inc. Dynamic proxy method and apparatus for an online marketing campaign
US8635247B1 (en) * 2006-04-28 2014-01-21 Netapp, Inc. Namespace and storage management application infrastructure for use in management of resources in a storage system environment
US20080002695A1 (en) * 2006-06-28 2008-01-03 Motorola, Inc. Preservation of session information on a communications network
KR100864940B1 (ko) * 2006-12-27 2008-10-22 (재)대구경북과학기술연구원 Oma dm 프로토콜을 위한 세션 제어 방법
KR100804831B1 (ko) * 2006-12-28 2008-02-20 삼성전자주식회사 무선 usb 호스트 및 무선 usb 디바이스간에 세션을생성하고 관리하는 방법, 무선 usb 호스트 및 무선usb 디바이스
US20080177796A1 (en) * 2007-01-19 2008-07-24 Eldering Charles A Method of Distributing Contact Information to Merchant Websites
US8417675B2 (en) * 2007-01-19 2013-04-09 Tepa Datasolutions Co., Llc Method of distributing contact and calendar records
US8234244B2 (en) * 2007-01-19 2012-07-31 Tepa Datasolutions Co., Llc Method of distributing contact and calendar records
US8150422B2 (en) * 2007-01-19 2012-04-03 Tepa Datasolutions Co., Llc Method of displaying contact information
US20080177797A1 (en) * 2007-01-19 2008-07-24 Eldering Charles A Method of Updating Contact Information on Merchant Websites
US8346307B2 (en) * 2007-01-19 2013-01-01 Tepa Datasolutions Co., Llc Method of displaying contact information
DE102007004304A1 (de) * 2007-01-29 2008-07-31 Osram Opto Semiconductors Gmbh Dünnfilm-Leuchtdioden-Chip und Verfahren zur Herstellung eines Dünnfilm-Leuchtdioden-Chips
US9264483B2 (en) 2007-07-18 2016-02-16 Hammond Development International, Inc. Method and system for enabling a communication device to remotely execute an application
US7769828B2 (en) * 2007-10-05 2010-08-03 International Business Machines Corporation System for provisioning time sharing option (TSO) and interactive productivity system facility (ISPF) services in a network environment
US20090113058A1 (en) * 2007-10-29 2009-04-30 Microsoft Corporation Terminal server draining
JP5426008B2 (ja) * 2010-02-22 2014-02-26 株式会社ソニー・コンピュータエンタテインメント コンテンツ再生装置
KR101053681B1 (ko) * 2010-05-19 2011-08-02 계영티앤아이 (주) 사용자 단말 및 이의 소프트웨어 관리제어방법 및 장치
WO2012116463A2 (en) * 2011-02-28 2012-09-07 Hewlett-Packard Development Company, L.P. Multi-session user interfaces
US9749373B2 (en) * 2012-08-14 2017-08-29 Apple Inc. System and method for improved content streaming
US10904312B2 (en) * 2014-12-10 2021-01-26 Akamai Technologies, Inc. Server-side prediction of media client steady state
US10389652B2 (en) 2014-12-19 2019-08-20 International Business Machines Corporation Connection pool management
US20160344807A1 (en) * 2015-05-20 2016-11-24 International Business Machines Corporation Message synchronization across multiple clients
US10673956B2 (en) * 2017-11-03 2020-06-02 International Business Machines Corporation Control of an application session to accommodate different users
US11861041B2 (en) * 2021-02-08 2024-01-02 Capital One Services, Llc Methods and systems for automatically preserving a user session on a public access shared computer
WO2023129613A1 (en) * 2021-12-30 2023-07-06 Skillz Platform Inc. System and method for remotely interacting with cloud-based client applications
US12047459B1 (en) * 2023-05-05 2024-07-23 Dell Products L.P. Tunneling a first protocol communication message through a second protocol communication channel

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6216151B1 (en) * 1995-12-13 2001-04-10 Bea Systems, Inc. Saving connection time by obtaining result of request at later reconnection with server supplied associated key
US5835724A (en) * 1996-07-03 1998-11-10 Electronic Data Systems Corporation System and method for communication information using the internet that receives and maintains information concerning the client and generates and conveys the session data to the client
US5941949A (en) * 1997-05-14 1999-08-24 Citrix Systems, Inc. System and method for transmitting data from a server application to more than one client node
EP1717696A1 (en) * 1997-11-14 2006-11-02 Microsoft Corporation Server operating system for supporting multiple client-server sessions and dynamic reconnection of users to previous sessions
US6085247A (en) * 1998-06-08 2000-07-04 Microsoft Corporation Server operating system for supporting multiple client-server sessions and dynamic reconnection of users to previous sessions using different computers
US6460071B1 (en) * 1997-11-21 2002-10-01 International Business Machines Corporation System and method for managing client application state in a stateless web browser environment
US6076108A (en) * 1998-03-06 2000-06-13 I2 Technologies, Inc. System and method for maintaining a state for a user session using a web system having a global session server
US6138120A (en) * 1998-06-19 2000-10-24 Oracle Corporation System for sharing server sessions across multiple clients
US6205480B1 (en) * 1998-08-19 2001-03-20 Computer Associates Think, Inc. System and method for web server user authentication
US6574239B1 (en) * 1998-10-07 2003-06-03 Eric Morgan Dowling Virtual connection of a remote unit to a server
US6446117B1 (en) * 1998-11-09 2002-09-03 Unisys Corporation Apparatus and method for saving session variables on the server side of an on-line data base management system
US6519643B1 (en) * 1999-04-29 2003-02-11 Attachmate Corporation Method and system for a session allocation manager (“SAM”)
US6499052B1 (en) * 1999-08-11 2002-12-24 Yahoo! Inc. Electronic commerce system for referencing remote commerce sites at a local commerce site
US6526434B1 (en) * 1999-08-24 2003-02-25 International Business Machines Corporation System and method for efficient transfer of data blocks from client to server
US6434543B1 (en) * 1999-11-01 2002-08-13 Sun Microsystems, Inc. System and method for reliable caching of database connections in a distributed application
IE20010743A1 (en) * 2000-08-04 2002-04-17 Mobileaware Technologies Ltd An e-business mobility platform
JP3754912B2 (ja) * 2000-11-13 2006-03-15 キヤノン株式会社 マルチメディアコンテンツの配信方法
US7191233B2 (en) * 2001-09-17 2007-03-13 Telecommunication Systems, Inc. System for automated, mid-session, user-directed, device-to-device session transfer system
US7228414B2 (en) * 2001-11-02 2007-06-05 General Instrument Corporation Method and apparatus for transferring a communication session
US7080404B2 (en) * 2002-04-01 2006-07-18 Microsoft Corporation Automatic re-authentication
US6926199B2 (en) * 2003-11-25 2005-08-09 Segwave, Inc. Method and apparatus for storing personalized computing device setting information and user session information to enable a user to transport such settings between computing devices

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7953861B2 (en) 2006-08-10 2011-05-31 International Business Machines Corporation Managing session state for web applications
CN101543070B (zh) * 2007-04-10 2012-07-04 电子部品研究院 异步多媒体检索的方法
CN101977224A (zh) * 2010-10-28 2011-02-16 神州数码网络(北京)有限公司 一种基于SSL VPN设备的Web资源认证信息管理方法
CN101977224B (zh) * 2010-10-28 2013-10-09 神州数码网络(北京)有限公司 一种基于SSL VPN设备的Web资源认证信息管理方法
CN102546795A (zh) * 2011-12-31 2012-07-04 成都巴比塔网络技术股份有限公司 基于用户对话模式的客户机服务器持续会话的方法
CN110191041A (zh) * 2019-05-05 2019-08-30 杭州迪普科技股份有限公司 局域网的设备的管理方法和装置
CN110191041B (zh) * 2019-05-05 2021-03-23 杭州迪普科技股份有限公司 局域网的设备的管理方法和装置
CN111800316A (zh) * 2020-07-16 2020-10-20 浙江百应科技有限公司 一种解决管线式http请求的服务器链路关闭的方法
CN111800316B (zh) * 2020-07-16 2021-08-13 浙江百应科技有限公司 一种解决管线式http请求的服务器链路关闭的方法

Also Published As

Publication number Publication date
WO2004034192A2 (en) 2004-04-22
RU2005111592A (ru) 2006-01-20
WO2004034192A3 (en) 2004-07-29
US20040068572A1 (en) 2004-04-08
KR20050055743A (ko) 2005-06-13
AU2003299554A1 (en) 2004-05-04
CA2501170A1 (en) 2004-04-22
JP2006502496A (ja) 2006-01-19

Similar Documents

Publication Publication Date Title
CN1717676A (zh) 用于在客户机-服务器网络上通信的方法和系统
US8156549B2 (en) Device independent authentication system and method
US11122035B2 (en) Secure delegation of a refresh token for long-running operations
US9143502B2 (en) Method and system for secure binding register name identifier profile
CN1291318C (zh) 在计算网络中供应聚合服务的方法和系统
CA2508464C (en) Method and system for consolidated sign-off in a heterogeneous federated environment
US7801944B2 (en) Distributed computing using agent embedded in content unrelated to agents processing function
CN1243428C (zh) 基于简单对象访问协议通信协议的网络服务的计数和记帐机构
US8141140B2 (en) Methods and systems for single sign on with dynamic authentication levels
US7526801B2 (en) Bulk transmission of messages using a single HTTP request
CN102571932B (zh) 为在线应用用户提供状态服务
US7945949B2 (en) Providing remote services to legacy applications
US20050022006A1 (en) Systems and methods for managing web user information
US20030061512A1 (en) Method and system for a single-sign-on mechanism within application service provider (ASP) aggregation
US20050138198A1 (en) Methods, apparatuses, systems, and articles for determining and implementing an efficient computer network architecture
US20030126441A1 (en) Method and system for single authentication for a plurality of services
JP2012528411A (ja) 非http通信プロトコルを用いてウエブアプリケーションの状態非依存型安全性管理を提供するシステム及び方法
US20060059564A1 (en) Methods, systems, and computer program products for user authorization levels in aggregated systems
CN105227577A (zh) 一种多客户端下的统一数据库访问代理均衡方法
WO2000036807A2 (en) Encrypted virtual private network for accessing remote sensors
JP2004524591A (ja) オンラインアプリケーション用統合型認証サービスを提供するシステム、方法およびコンピュータプログラム製品
WO2001037079A2 (en) Method and apparatus for controlling server networks

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication