CN1173671A - 在无状态网络协议情况下保留状态 - Google Patents

在无状态网络协议情况下保留状态 Download PDF

Info

Publication number
CN1173671A
CN1173671A CN97111570A CN97111570A CN1173671A CN 1173671 A CN1173671 A CN 1173671A CN 97111570 A CN97111570 A CN 97111570A CN 97111570 A CN97111570 A CN 97111570A CN 1173671 A CN1173671 A CN 1173671A
Authority
CN
China
Prior art keywords
status information
server
continuity
client computer
computer
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.)
Granted
Application number
CN97111570A
Other languages
English (en)
Other versions
CN1108682C (zh
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=24650328&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=CN1173671(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1173671A publication Critical patent/CN1173671A/zh
Application granted granted Critical
Publication of CN1108682C publication Critical patent/CN1108682C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • 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/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1087Peer-to-peer [P2P] networks using cross-functional networking aspects
    • H04L67/1091Interfacing with client-server systems or between P2P systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • 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

Abstract

一种在使用无状态协议(例如HTTP)的网络(例如环球网(WWW))上进行通信的计算机中保留状态的方法和系统。在请求服务的客户机和服务器之间的对话中保留状态是通过完成服务和识别出来自服务的输出中的所有延续;并在向客户机发送的输出中的所有被识别出的延续中递归地嵌入状态信息来实现的。状态信息可以被嵌入并由服务器传送给客户机。另一种作法是,可以使用可动态下载的程序代码在客户机处嵌入状态信息。

Description

在无状态网络协议情况下保留状态
本发明是关于计算机和计算机网络。具体地说,本发明是关于通过无状态协议(Stateless protocals)进行网络通信时由计算机保留状态。更具体地说,本发明是关于在Internet(互联网络)上进行计算机通信时,特别是使用超文本传输协议(HTTP)通过环球网(World wideWeb)进行计算机通信时,为保留状态所用的方法和系统。
本申请题为“在无状态网络协议中保留状态”,它与下列未决(co-pending)美国专利申请相关联:
S/N 512205,1995年8月7日提出申请,题为“为分布式计算机网络建立超文本语言的方法”,申请人Chiu等,IBM案卷ST 995025号;以及
S/N 474571,1995年6月7日提出申请,题为“通过Internet进行WWW服务器数据访问的计算机网络”,申请人Lagarde等,IBM案卷PO995020号。这些申请具有共同的受让人,国际商用机器公司(IBM),Armonk,纽约,这些申请在这里完全地引入作为参考。
术语表
尽管这里所用的一些术语也具有词典中的意义,但对一些术语的下列术语表可能是有用的。
Internet(互联网络)
使用一套TCT/IP协议的若干网络和网关组成的网络。
TCP/IP
传输控制协议/互联网络协议。是Internet用于分段、建立路径和重建它所处理的数据(从电子邮件到视频数据)所使用的分组交换方法。
Client(客户机)
客户机是一台计算机,它向服务器发出命令,服务器完成与此命令相关的任务。
Server(服务器)
按照另一台计算机的命令完成任务的任何计算机是一个服务器。一个环球网服务器通常支持一个或多个客户机。
World Wide Web(WWW或Web)(环球网)
Internet的一种应用,它让人们通过击打感兴趣的增强亮度词或词组在Internet上从服务器到服务器和从数据库到数据库寻找信息(超链接)。一个Internet WWW服务器支持客户并提供信息。环球网可被看作是具有以URL编址的全部资源而且使用HTML显示对应于URL的信息并向其他URL提供“点击(point-and-click)”界面的互联网络。
Universal Resource Locator(URL)(通用资源定位器)
唯一地识别和编址Internet信息的一种方式。可看作是电子邮件地址的环球网报告版本。如果URL属于埋在其他URL深部的报告,这些URL会是很累赘的。它们可由超链路访问。URL的一例是“http:∥www.arun.Com:80/table.html”一个URL有四部分。从左边开始,第一部分指明所用的协议,用一个“:”与该定位器的其余部分分开。下一部分是目标主机的主机名或IP地址,它在左边用“∥”分界,在右边用“/”或可选用“:”分界。端口号是可选的,左边用“:”与主机名分界,右边用“/”分界。第四部分是实际文件名或程序名。在本例中,扩展名“.html”表示这是一个HTML文件。
Hyperlink(超链接)
埋在你选择后被激活的词、短语、图标或图画之中的网络地址。关于那一项的信息被返回给客户机并用环球网浏览器显示。
HyperText Markup Language(HTML)(超文本置标语言)
HTML是环球网服务器用于建立和连接由环球网客户机观看的报告所用的语言。HTML使用超文本报告。超文本报告的其他应用在下列美国专利中描述:1993年4月20日授予Bernstein等的5,204,947号;1994年3月22日授予Bernstein等的5,297,249号;1994年10月11日授予Lewis等的5,355,472号;所有这些专利的受让人均为国际商用机器公司,这里引入作为参考。Hypertext transfer protocal(HTTP)(超文本传输协议)。
HTTP是无状态协议的一个实例。无状态协议的意思是由客户机向服务器发出的每个请求是被独立处理的。服务器没有先前连接的记录。在URL的开头,“http:”表明该文件包含超链接。
Home page(主页)
内容的多媒体表,用于把环球网用户引向Internet上存储的信息,例如关于一个组织的信息。
Web browser(环球网浏览器)
作为Internet旅行指南而在计算机上运行的一个程序,当用户在Internet“冲浪”时使用图形桌面设备、目录和查寻工具来完成。在本申请书中Web浏览器是与环球网通信的客户机服务程序。
HTTP Daemon(HTTPD)(HTTP守护程序)
具有超文本置标语言和公共网关接口能力的IBM OS/2环球网服务器或其他服务器。HTTPD通常由一访问媒介(agent)支持,该媒介物提供与内部网(Internet)上机器的硬件连接和对Internet的访问,例如TCP/IP耦合。
Continuation(延续)
超文本链接(或超链接)是在客户机-服务器通信中“延续”的实例。一个“延续”是指一个客户机可以向服务器发出的一个新请求。每当客户机要从服务器中请求什么的时候,服务器可以在其响应中包括一个或多个“延续”。当一个服务器响应一个请求时,它可以包括一个或多个“延续”,它们可以是任何有效的请求。然而,有用的“延续”一般在逻辑上与原始请求相关联。
Conversation(对话)
客户机的服务器之间的通信序列,在这一通信系列中服务器以一组“延续”响应每个请求,而客户机总是从这组“延续”中选取下一个请求。在环球网上,超文本链接代表“若干延续”,而一个客户机每当它跟随超文本链接时便进入了一次对话。
网络已改变了人们使用计算机的方式。具有对一台个人计算机或工作站的访问能力的人能与Internet连接并与全世界的系统和人们进行通 信。环球网(WWW或Web)是使用Internet的一种方式,它使得用户能通过链接的报告访问分布于全球的信息资源。WWW还允许用户执行在远程服务器上运行的程序。这一能力使得用户能从那些由于硬件和/或软件限制而不能在当地运行的程序中获得结果。它还能下载和运行存储于远程环球网上的程序。这一点所具有的潜力是大大增加连于环球网上的计算机中的软件数量。
网络协议
网络协议提供计算机彼此通信的标准方法。协议指出数据应如何编排格式以在网络上接收和传送。异种机器能通过标准协议在网上进行无缝通信。标准的Internet协议的实例包括:HTTP,参见例如“超文本传输协议-HTTP/1.0”http:∥www.ics.uci.edu/pub/ietf/http/draft-ietf-http-v10-spec-0.3.html,作者T.Berners-Lee,R.Fielding及H.Frystyk,1995年9月4日;SMTP,参见例如“简单邮件传输协议”。RFC821,J.B.Postel,信息科学研究所USC,1982年8月,http:∥ds.internic.net/std/std10.txt.;NNTP,参见例如“网络新闻传输协议:一个用于以流为基础的新闻传输的建议标准”,RFC977,B.Kantor和P.Lapsley,圣戈哥加州大学和伯克莱加州大学,1986年2月,http:∥ds.internic.net/rfc/rfc977.txt;FTP,参见例如J.Postel和J.K.Reynolds的“文件传输协议(FTP)”,RFC959,信息科学研究所,南加州大学,1985年10月,http:∥ds.niternic.net/std/std9.txt.Gopher,参见例如F.Anklesoria,M.Mc Cahill,P.Lindner,D.Johnson,D.Torrey,和B.Alberti,“互联网络Gopher协议:一种分布式报告查询和提取协议”RFC1436,明尼苏达大学,1993年3月,http:∥ds.internic.net/rfc/rfc1436.txt;以及WAIS,参见例如F.Davis,B.Kahle,H.Morris,J.selem.T.Shen,R.Wang,J.Sui和M.Grinbaum,“WAIS接口协议原型功能说明书(V1.5),Thinking Machines Corporation,1990年4月。
客户机一服务器模型是网络程序设计中的主要范例(paradigm)之一,参见例如W.R.Stevens的“Unix网络程序设计”,Prentice HallPTR,Englewood cliffs,Nj,1990;及D.E.comer“以TCP/IP进行网间互联”,Voll.,Prentice Hall,Englewood cliffs,NJ.1991,这里全文引入作 为参考。一个服务器程序提供可由多个用户通过网络进行访问的服务。当一个程序向一个服务器发出一个消息(message)并等待来自该服务器的响应时,该程序便成为一个客户机。通常为用户的交互作用进行过优化的客户机处理使用所请求的服务而不必知道所请求服务或服务器的任何详细工作情况。在环球网上,“浏览器”是客户机程序,而向浏览器回送信息的程序构成服务器程序。
客户机和服务器可以是同步通信,也可以是异步通信。在同步通信中,客户机在发出下一个请求之前等待来自服务器的响应。在异步通信中,客户可在已经收到对先前向服务器的请求的一个或多个响应之前再发出请求。
许多在客户和服务器之间的网络协议是无状态的。这就是说由客户到服务器的每个请求是独立对待的。服务器没有关于先前连接的记录。HTTP是无状态协议的一个实例。使用无状态协议的二个好处是效率高和简单。然而,在一些场合希望客户机和服务器之间通信过程中保持状态信息。对于这些类交互作用,协议的无状态性会出现问题。
HTTP协议和环球网
本发明的最令人瞩目的应用是通过HTTP协议浏览环球网,参见例如“超文本传输协议-HTTP/1.0”,http.∥www.ics.uci.edu/pub/ietf/http/draft-ietf-http-V10-spec-0.3.html,作者T.Berners-Lee,R.Fielding,和H.Frystyk,1995年9月4日,这里全文引用作为参考。然而,精通本门技术的人们将会理解,本发明不限于HTTP。现在将讨论环球网的有关方面及由协议(例如HTTP)的无状态性造成的限制。
环球网由被网络联在一起的多个服务器组成。客户机通常用标准的浏览器与服务器通信,例如由Netscape(网景公司)以商标“NETSCAPENAVIGATOR(网景导航者)”、NCSA以商标“ MOSAIC(马赛克)”或IBM以商标“Web EXPLORER(环球网探索者)”出售的浏览器。客户机和服务器之间通信的最普通方法是通过HTTP协议。HTTP允许客户机或者通过请求一个文件或者调用一个在服务器上执行的程序(称作公共网关接口(CGI)程序)来获得数据。CGI编程在技术上是公知的。参见例如“HTML和发动的(unleashed)CGI”,作者John December和Mark  Ginsburg,Sams.net  Publishing,Indianapolis,In.(1995)。然后服务器把文件或CGI程序的输出发送给客户机。服务器通常限制客户机访问文件的程序的能力。
服务器利用超文本置标语言(HTML)向客户机发送信息,参见例如“HTML原始资料集”,作者Ian S.Graham,John Wiley &sons,Inc.,New York,1995,这里全文引用作为参考。HTML报告由传统的ASCII文本组成,其中要被显示的信息由HTML标记加以装饰。这些标记被包围在大于和小于号之间(<……>),告诉浏览器如何解释报告的不同部分。浏览器使用通用资源定位器(URL)在Internet上唯一地识别和寻址信息。浏览器读出对应于URL的HTML报告,并遵循置标记中存储的指示显示这些报告。
下面给出的HTML代码序列(表1)给出的HTML文本对应于1996年6月3日IBM T.J.Watson Research Center的环球网主页。这一环球网主页对应于URL“http:∥www.watson.ibm.com/”图1中给出一个标准的浏览器访问这一页时会显示出的对应输出。
<pre listing-type="program-listing"> <HTM><HEAD> <TITLE>IBM T.J.Watson Research Center home page</TITLE> <meta name="owner"content="calyson@watson.ibm.com"> <meta name="review"content="19960202"> </HEAD> <BODY> <IMG SRC="/watson/mast.gif"alt="Research"> <p> <hl>IBM T.J.Watson Research Center</hl> <p> <IMG SRC="/watson/night.gif"><IMG SRC="/watson/haw2.gif"> <br> <i>T.J.Watson Research Center.Yorktown(left)and Hawthorne.</i> <p> <ul> <IMG align=middle SRC="/watson/bullet.gif"><A HREF="/watwel.html"> Welcome!</a> <br> <IMG align=middle SRC="/watson/oullet.gif"><A HREF="/leo">Local Education Outreach </a> <br> <IMG align=middle SRC="/watson/bullet.gif"><A HREF="/menu.html">Visitor info and local site directions </a> <br> <IMG align=middle SRC="/watson/bullet. gif" ><A HREF="/lodging.html"> Local hotels</a> <br> <IMG align=middle SRC="/watson/oullet. gif" ><A href="http:∥www.ibm.com"> IBM home page</a> - <A href="http:∥www.research.ibm.com/"> IBM Research home page</a> <br> </ul> <p> <hr> <A HREF="/watson/mail.html" ><IMG align=middle SRC="/research/images/mail.gif"></a><b>Click on icon to send your comments.</b> <p> Or. contact <i>webmaster@watson.ibm.com</i> <p> <hr> <Address><homepage@watson.ibm.com></address> <b> [ <A href="http:∥www.ibm.com/">IBM home page</a>| <A href="http:∥www. ibm.com/Orders/">Order</a>| <A href="http:∥www.austin. ibm.com/search/">Search</a>| <A href="http:∥www.ibm.com/Assist/">Contact IBM</a>| <A href="http:∥www.ibm.com/Finding/">Help</a>| <A href="http:∥www.ibm.com/copyright. html">(C)</a>| <A href="http:∥www.ibm.com/trademarks.html">(TM)</a> ] </b> </BODY> </HTML>
表1.对应于IBM T.J.Watson Research Center主页的HTML源代码。
许多Web浏览器允许用户观看被观看的任何报告的HTML源代码。表1中的HTML文本存储在一个文件中,该文件可被IBMT.J.Waston研究中心的Web服务器访问。当这个Web服务器接受一个对URL“http:∥www.waston.ibm.con/”的请求时,它向该客户机的浏览器发送适当的文件。然后该客户机浏览器将读和显示这一HTML文件。(表1包含多个有关的链接。只有当文件存储于适当的目录中,超文本链接和图象文件才是有效的。例如,如果表1中的“night.gif”文件于任意位置,该超文本链接将会无效,于是相应的图象将不出现。
表1中的“Visitor info and local site directions”(意思是“参观者所需信息及当地参观点指南”)是超文本链接(亦称超链接)的一例。图1中显示出会由一标准的浏览器显示出来的对应输出。当用户点击这一个由浏览器显示的链接(如图1所示)时,便从服务器取回一个新的HTML文件“menu.html”并由浏览器显示。与本机和远程服务器上的报告的超文本链接都能放到HTML文件中。能在一个HTML文件中包含超链接以链接全世界服务器上的报告,这种能力是环球网的主要特点之一。换句话说,利用简单的指向和点击到超文本链接上便能用Web浏览器访问来自全世界服务器的信息。
提醒一下,超文本链接是客户机一服务器通信中的“延续”的实例。一个“延续”是客户机可以向服务器发出的一个新请求。每当一个客户机从服务器请求什么的时候,服务器便可能在其响应中包含一个或多个“延续”。这些“延续”能代表任何有效的请求。然而,有用的“延续”通常在逻辑上与原始请求相关联。。一组好的“延续”使客户机易于与服务器进行同步通信。在每个请求之后,服务器以一组“延续”作为响应。客户机选择“延续”之一作为下一个请求。一个“对话”是客户机和服务器之间的一个通信系列,其中服务器以一组“延续”来响应每个请求,而客户机总是从这组“延续”中选择下一个请求。
在环球网上,超文本链接代表“延续”,每当客户机遵循超文本链接时,它便进入了对话状态。每当客户机明确地请求一个新的URL从而 得到一个新页面,而不再遵循超文本链接时,对话便被中断。如果对应于被中断对话的页面仍能被客户机使用(例如存在浏览器高速缓冲存储器或磁盘存储器中),则继续被中断的对话是可能的。如果是这样,可通过重新加载该页面而继续对话并继续遵循超链接。在同一对话中客户机可以与多个服务器通信。
更正式的表述是:
如果一系列HTML页面p1,p2…,pn中
1.p1,p2…,pn全曾被一客户机观看过,而且
2.对所有i,使1<i<=n,由遵循页面pi-1上的超文本链接得到页面pi,
则该HTML页面p1,p2,…,pn系列继续对话。
在一个未被中断的对话中,客户机简单地遵循n-1超文本链接以从页面p1到pn,而没有任何“反向追踪”。在一个被中断对话中,客户机至少有一次反向追踪。这里“反向追踪”的意思是:
1.初始时观看页面pi,这里1<=i<n,
2.或者遵循超链接或者明确地访问URL从而观看其他页面,以及
3.通过从存储器中再加载页面pi(假定页面pi仍是可得到的)来返回页面pi。
所有对URL的请求都是无状态的。即使一个客户机多次请求一个页面,该服务器并不保留关于先前连接的任何历史或知识。当一客户机请求一个HTML文件时,客户机没有办法以该请求传送附加的信息。这样,在环球网环境下当一客户机正在浏览HTML文件时有在整个对话过程中保留状态信息的必要性。本发明就是针对这一需要的。
例如,考虑一个处理商务事务的服务器。为了适当地发挥其功能,服务器需要状态信息,诸如客户机的用户ID和对应于当前交易号的交易号。这样,当一个客户机通过遵循对话中的超链接浏览HTML文件时需要保留这一信息。本发明满足了这一需要。在环球网上处理状态的当前方法
当前的一种在环球网上处理状态的方法涉及CGI程序的使用。客户机可通过向它传送参量来启动一个CGI程序。例如,命令 http:∥tranman.Waston.ibm.com/cgi-bin/get-args?Var1=7&Var2=10传送变量Var1=7和Var2=10来启动一个CGI程序。期望一个客户机遵循严格的句法向CGI程序传送变量是一件烦人的事。更加用户友好的方法是允许用户通过HTML“表格”输入参量。图2中给出由一Web浏览器显示的HTML表格举例。用户填写适当的字段并通过点击发送钮来向服务器发送信息。由用户键入的值作为参量传送给一个CGI原本(script)。客户机不需要知道被启动的CGI程序的详细情况或由该程序所期望的参量的格式。
表格允许客户机向服务器传送状态。服务器也能使用表格向客户机传送变量。表格中可以包含这样一些隐蔽的变量,它们不对客户机显示出来,但在客户机提交表格时回送给服务器。Web服务器通常通过传送作为表格中隐蔽变量的状态变量来保留状态。当客户机提交表格时,接受表格的服务器能从隐蔽字段中得到的状态变量。
例如,假定一个商务事务处理服务器在与一个客户机通信。事务处理服务器需要得到客户机用户ID和一次会话的ID以便与客户机进行其余的对话。服务器能从该客户机提交的表格中得到该客户机的用户ID。该表格启动一个CGI程序,然后该CGI程序产生一个会话ID。其后来自服务器的每个响应都是一个表格。该表格是动态产生的,并包含用户和会话的ID作为隐蔽变量嵌入其中。客户机通过完成和提交由服务器产生的表格来作出响应。
图3描述了当前的一种使用HTML表格保留状态的方法。服务器410把隐蔽参量中的状态变量嵌入动态产生的HTML表格420中。状态变量425在客户机450和服务器410之间往返传送。利用表格,客户机450和服务器410往返传送状态信息425。服务器410通过急速(on thefly)建立HTML表格并把状态变量425嵌入隐蔽字段来向客户机传送状态信息。客户机450通过完成和提交由服务器410产生的表格420来向服务器回送状态信息425。
处理状态的当前技术的局限性
刚才概述的方法的问题在于它严重地限制了客户机和服务器在对话期间彼此相互作用的类型。服务器410必须总是以动态生成的包含隐蔽 变量425的HTML表格420来响应客户机450。在客户机浏览HTML文件时没有办法保存状态。例如,假定客户机希望在会话过程中间浏览一个目录。该目录由若干HTML文件组成。利用当前技术则没有办法既让客户机浏览目录(中的不同HTML文件)又不丢失状态信息。如果服务器允许客户机通过观察目录来继续对话,则当客户机一访问目录中的一个HTML文件便立即丢失状态信息。
这样,需要一个系统和方法,它允许客户机浏览目录,即访问不同的HTML文件,而又保留状态信息。本发明就是要满足这种需要,不论目录中包含的HTML文件是否存于不同的服务器上。
当前技术对保留状态的局限性已被其他人注意到。例如,见“持续性的客户机状态HTTP辅件(Cookies)”,网景通信公司,1996,http:∥home.netscape.com/newsref/std/cookie spec.html;还可参见“建议的HTTP状态信息机制”,D.M.Kristol,AT&T贝尔实验室,1995年9月22日,http:∥www.research.att.com/-dmk/session 01.txt;以及M.Culter和D.Hall,“1995年8月对环球网的观察”,http:∥www.netgen.com/corpinfo/press/webwtchv6ng.html。Kristol建立的解决办法要修改HTTP协议以保留状态,与此不同的是本发明保留状态而无需改变底层的协议。
由网景通信公司提出的另一个解决办法得要给它们的浏览器增加一个特征,称之为辅件;参见“持续性的客户机状态HTTP辅件”,网景通信公司,1996,http:∥home.netscape.com/newsref/std/cookie_spec.html。这里,服务器能通过在其响应的后面追加一个状态对象(称作辅件)来满足一个HTTP请求。这个辅件包含对该状态有效的URL范围的描述。这个辅件由客户机运行的Netscape(网景)浏览器存储。由该客户机在将来向辅件中指定的URL之一发出任何HTTP请求时,这些请求中都将包含存储于辅件中的状态对象从客户机向服务器的反向传送。
这种方法有许多缺点。希望保留状态的服务器应用程序必须提供一个可能利用这一状态的所有URL的清单。这是烦人的事,而且有时会是不可能的。辅件还缺少一种方法把状态信息和具体的对话关联起来。例如,假定一个浏览器在二个不同的对话中访问同一个URL。在第一个对 话过程中,在该URL被访问时状态信息存在并被通过辅件传送给服务器。在第二个对话过程中,在该URL被访问时不存在状态信息。然而,老的辅件仍然存在,而且老的状态仍然传回服务器。这会使服务器弄混淆是否相信老的状态信息仍适用于这新的对话。另一个问题是辅件不是标准特征,它将只工作于支持Netscape(网景)协议的服务器和浏览器。
这样,需要一种方法和系统在无状态协议中保留状态,它不限于一个需要利用状态信息的URL清单,而且其状态信息与具体的对话相关联从而避免向服务器传送过时状态信息的问题。再有,需要一个在诸如HTTP之类协议中保留状态的系统,它能以任何支持HTTP协议的浏览器进行工作,而不需要在客户机或服务器上具有特殊的非标准的特征。
根据前述需要,本发明是针对使用无状态协议进行网络通信的计算机中保留状态的方法和系统。尽管最佳实施例是用于使用超文本传输协议(HTTP)在环球网(WWW或称Web)上进行通信的计算机,但本发明也适用于其他形式的网络通信。
假定由服务器代表一客户机完成的服务是由客户机启动的程序。一个服务能接收不定数量的参量。一个对话是该客户机与一个或多个提供服务的服务器之间进行的一个通信系列,这里每个来自服务器的响应包括一个或多个“延续”,它们使能另一个对服务的请求,而且这里的客户机必须启动“延续”之一以便继续对话。
于是,一个计算机化的方法、系统和计算机程序产品,它具有本发明的特点,即在适于请求服务的客户机与一个或多个通过无状态协议与客户机联网的服务器之间的对话当中保留状态信息,它包括:客户机用无状态协议发起与服务器的对话;检测对服务的请求何时需要保留状态信息;当状态被保留时,完成服务并识别来自服务的输出中的全部“延续”;在所有识别出的“延续”中递归地嵌入状态信息;以及将输出传送给客户机;这里对于对话过程保留状态信息并将其提供给所有的服务。
根据本发明的另一方面,状态信息的嵌入是由服务器完成的,而且由服务器将其传送给客户机。本发明的另一方面包括:将至少一部分状 态信息存储于和服务器相连的存储器中,并将代表该部分状态信息的一个索引嵌入所有被识别出的“延续”中。
本发明的又一个方面包括向客户机动态下载计算机程序代码,以把状态信息嵌入到来自也与该客户机通信的服务的输出中。本发明的再一个方面包括把至少一部分状态信息存入与客户机相连的存储器中并嵌入代表所存状态信息的索引。
在一个最佳实施例中,当使用Web浏览器在环球网上遍历超文本链接时,我们的方法允许保留全部状态信息。超文本链接由若干个“延续”构成。客户机浏览器通过遵循超文本链接来遵循一个对话,从而取得新的页面。本发明的特点是在任何对话过程中保留状态变量。根据本发明的一个方面,在整个对话过程中被保留的状态变量被传送到整个对话过程中可能被启动的每个CGI程序。
当客户机和服务器是通过环球网连网时,无状态协议是超文本传协议(HTTP),“延续”是对超文本置标语言(HTML)文件和公共网关接口(CGI)程序之一的超链接,本发明的特点在于使能根据预定判据滤掉和/或增加来自服务的超链接和数据输出。本发明嵌入状态信息的再一个方面包括:修改一个被识别的“延续”,该“延续”是对一个HTML文件的请求,用以把被识别的“延续”和传送的状态信息作为参量来启动一个CGI转换程序。本发明嵌入状态信息的又一个方面包括修改一个被识别的“延续”,该“延续”是把被识别的“延续”和传送的状态信息作为参量对一个CGI程序的启动,这里由该CGI程序完成嵌入步骤。
本发明嵌入状态信息的另一方面包括:修改一个被识别的“延续”,该“延续”是对一个CGI程序的启动,以用识别出的“延续”、一个指示伴随该CGI程序的参量个数的参量计数器以及所传送的状态信息作为参量来启动一个CGI转换程序,这里的嵌入步骤由该转换程序完成。
下面结合附图进行的描述将使本发明的这些或那些特点和优点更加显然,这里,
图1是由标准浏览器显示的HTML页面一例;
图2显示由Web浏览器观看到的HTML“表格”的一例。
图3显示出用“表格”保留状态变量的客户机和服务器的方框图;
图4是根据本发明使用无状态协议在网上保留状态的一般方法的方框图;
图5是通过无状态协议传送的数据包的一般化框图;
图6是根据本发明保留状态信息而对图5的数据包进行修改后的实例;
图7a描述具有本发明特点的一个系统的实施例,用于在环球网上传送商务业务并保留状态;
图7b描述在图7a系统上保留状态的方法的实施例;
图8描述根据本发明的方法的更详细举例,用于在图7a所示系统中和在图7b的方法步骤745中保留状态;
图9a描述连于HTML文件的一个超文本链接的结构;
图9a’描述图9a所示结构,但根据本发明进行修正以保留状态;
图9b描述与I类CGI程序的超文本链接的结构;
图9b’描述图9b所示的结构,其中根据本发明嵌入了状态参量;
图9c描述与2类CGI程序的超文本链接的结构;以及
图9c’描述图9c所示的结构,但根据本发明进行了修改以保留状态。
在使用无状态协议的对话中保留状态的方法的详细描述
本发明是使通过无状态协议在网络上通信的计算机具有能力的技术。虽然最佳实施例是针对使用超文本传输协议(HTTP)在环球网(WWW或称Web)上通信的计算机,但本发明也适用于其他形式的网络通信。
图4描述了根据本发明用无状态协议保留状态的一般方法,即它不限于环球网上的客户机和服务器通信。下文中要描述的最佳实施例具体应用于环球网,这里为了简化而假定由服务器代表一客户机完成的服务是由客户机启动的程序,并假定一个服务能接受可变个数参数。
如图所示,在步骤500,一客户机请求来自服务器的一个服务。当所提供的服务不需要保留状态信息时所采取的路径由步骤505、510和515代表。在步骤510,在某一点上服务器处理一个请求,对这一请求服务器确定要使当前对话中会被启动的全部服务能得到所需要的状态变 量。于是服务器将其输出连同所有的状态变量(由<state-variable-list>(状态变量表)表示)传送给由convert1表示的程序,并使过程继续到步骤520。在步骤520,convert1程序修改由该服务产生的“延续”,但把其他数据不做修改地传回给客户机。
例如,如图5中所示,在正常环境下,代表对程序service1的调用的一个“延续”会有如下形式:
service1<service-arg-list>    (1)
这里service1605是一个服务,<service-arg-list>是如果该客户机选择该“延续”则传送给该服务的服务参量表610。如图6b所示,本发明的convert1程序通过把每个“延续”(1)修改成如下形式来保留状态:
convert2 service-string<state-variable-list>    (2)
这里convert2 650是对一项具体服务的调用(下文中将描述),service-string 680是包含service1 605、<service-arg-list>610和一些定界信息685的串,以把服务参量610与图6中所示对convert2调用中的<state-variable-list>670区分开。<state-variable-list>670代表在该对话期间要保留的且可被所有服务使用的状态信息。
再参考图4,在步骤525,客户机接受由服务器发出的输出和修改过的“延续”。现在,该对话的每个修改过的“延续”是如(2)式所示的对convert2程序的调用。在步骤540,客户机检验该输出。如果一个“延续”被选择到,则过程返回步骤500,在那里该(修正过的)服务请求被送到服务器。在步骤505,服务器处理修正过的服务请求并启动convert2程序,并在步骤530继续处理过程(由于在前一步骤520中明确嵌入的调用)。在步骤530(参考图5和图6),convert2程序对服务605和将被由service-string 680传给服务器的参量<service-arg-list>610进行句法分析。convert2程序605通过把<service-arg-list>610以及<state-variable-list>上的所有变量传送给所请求的服务605(这里是service1)来启动服务605。这样,service1服务在需要时能访问所有的状态变量。在步骤535,convert2程序接收服务(service1)输出并把该输出连同<state-variable-list>(状态变量表)传送给convert1。在步骤520,convert1修改每个“延续”(如前文所讨论的那样)。在步骤 525再次将输出传送给客户机并重复其处理过程,使在对话过程期间保留状态信息670。
图7a描述具有本发明特点的一个系统的实施例,用于在环球网上传送商务业务。Web服务器410’允许在Internet(互联网络)上进行售货商务活动。消费者通过运行标准浏览器460的客户机450来访问服务器410’。为了安全地通信,“浏览器”460应能用SSL通信。例如参见A.O.Freier,P.Karlton,P.c.Kocher的“SSL协议3.0版”,Internet草案,1996年3月,http:∥home.netscape.com/eng/ssl 3/ssl-toc.html,这里全文引入作为参考。然而,不支持SSL的浏览器10也能使用一些服务。用可以浏览目录,这些目录可以存储在一个稳定的存储介质上,例如直接存取存储装置(DASD)470。象使用传统目录那样,用户浏览产品说明并能选取中哪些项目加到他们的购买目录中。当用户已确定完成购买目录,他将进行购买并接着付账。
如图中所示,服务器410’可以包括一个传统的数据库管理系统(DBMS)412来管理数据库475中所存储的关于,消费者、存货、和产品的信息。DBMS的一个实例是IBM公司以商标“DB2”销售的DBMS。此外,服务器410’允许用户在对话过程中浏览产品目录。服务器410’对产品目录的格式限定很少。目录可由HTML文件425以及传统的CGI程序构成。这些文件和/或程序可与本地的或远程的服务器相关联。在对话期间必须在服务器410’和客户机450之间保持状态信息,例如用户ID和会话ID。本发明提供一种改进的方法和系统以在对话过程中透明地保持这一状态信息。
每个客户机450可以访问伴随服务器410,的“主页(home page)”以及观看产品目录。为了购买产品、更新消费者信息、或访问某些类型信息,用户必须通过输入用户ID和口令来提供证明。根据本发明,每次对话只需证明一次。一但用户已被确认,则由本发明的转换器416将用户ID嵌入(保留)到对话中。
图7b描述了根据本发明的一种方法的实例,用于客户机450使用HTTP与服务器410’交互作用,同时保留状态。如图中所示,在步骤700,客户机访问驻留在服务器410’上的主页。在步骤710,客户机开始浏览 产品目录,在步骤720继续浏览目录所提供的内容,例如从在线产品目录中选择超链接。由于只浏览目录不需要确认用者,因而通信是无状态的,而且使最大量的人们可以浏览目录。在步骤730,找到了一项产品要加到购买清单中。在步骤740,于是客户机必须输入用户ID和口令才能继续。如果该客户机对系统而言是新的,客户机选取一个用户ID和口令,并向服务器提供一些附加的可选信息(地址、电话号码等)。在步骤745,根据本发明,转换器416把用户ID和会话ID嵌入对话中。在步骤750,用者能观看增加的产品、把增加的项目加到购买清单中、认可购买、或观看和更新数据库信息。保留状态变量是有好处的,从而不需再次确认用者。状态信息(即用户ID和会话ID)将被保留,并且,在该对话的其余部分中被启动的每个CGI程序都能使用这些状态信息。
提醒一下,当使用当前的“表格”技术时,用者得要在每次需要确认用者的动作(例如试图向购买清单中增加一个新项目)之时再次输入用者ID和口令。会话ID甚至会带来更大的困难,因为服务器得让客户机记住会话ID并在需要确认用者时输入它。
还要提醒的是,使用“辅件”限制得保留状态的URL的范围。使用辅件更加缺乏把状态信息与具体对话相关联的能力,而这种能力可能使更新的状态信息提供给服务器。最后,辅件要求使用特定的浏览器,还可能要求在其客户机或服务器上具有特殊的和/或非标准的特点。
图8描述根据本发明的方法的更详细的举例,用于在图7a所示系统中及在图7b的方法步骤745中保留状态。假定服务器410’是一个传统的Web服务器,包括典型的Internet联接的访问,例如TCP/IP耦合,进一步还有HTML和公共网关接口(CGI9能力413。
如图中所示,在步骤740’,假定一客户机450运行Web浏览器460,选择一超链接通过(无状态协议)HTTP向Web服务器410’请求服务。在步骤810,服务器410’把URL解释为例如调用一个CGI程序“P1”415,它决定应在对话中嵌入状态变量,例如“x1,x2…,xn”,从而使对话中会被启动的所有CGI程序能给予访问。P1为客户机450产生一个HTML页面“h”,以继续对话。不是无修改地把输出页“h”返回给客户机,而是更新“P1”以便通过把参量“h,x1,x2,…,xn”传送给转 换器416的convert1模块来启动本发明的转换器程序416。对convert1的调用可以是如下形式:
convert1’h,x1,x2,…,xn’
在步骤811和812,转换器程序的convert1模块修改在h中所有与HTML的超文本链接以保留状态变量。所有的相对超文本链接都转换成绝对超文本链接(也称为超链接)。参见前面提到的和作为参考引入的未决美国专利申请序列号512205,1995年8月7日提出申请,题为“为分布式计算机网络建立超文本语言的方法”,作者Chiu等,IBM案卷ST995025号,作为从相对地址到绝对地址转换方法的一例。如所说明的那样,这些申请有同一受让人,国际商用机器公司,A rmonk,纽约。那些精通本门技术的人们将会承认,能在本发明的范围和精神内以单向传送或双向传送过程来完成修改HTML文件的链接(步骤811)及修改CGI程序的链接(步骤812)。
如图中所示,在步骤811中转换器程序416的convert1模块取HTML页面h并修改所有与TML文件的超文本链接以保留状态变量。与HTML文件的超文本链接可修改成以参量h,x1,…,xn调用CGI程序convert2参考图9a,例如考虑包含下列对HTML文件915“mail.html”的参考,并假定状态变量930为x=32和y=45:
<A HREF=“http:∥www.watson.ibm.com/mail.html”>
将被convert1逻辑修改成图9a’描述的形式:
<A HREF=
“http:∥www.watson.ibm.com/cgi-bin/convert2?url=∥www.watson.ibm.com/mail.html&x=32&y=45”>
在步骤812,转换器程序的convert1模块修改所有与CGI程序的超文本链接。请注意,调用CGI程序的超文本链接可以有两种方式保留的状态变量:
(a)如图9b’中所示,把状态变量930’传送给CGI程序940,但不把状态变量嵌入任何由CGI程序产生的超文本链接,即不嵌入一个对convert2的调用。利用这一作法,CGI程序负责在它产 生的超文本链接之内传播状态信息;或者
(b)最好是如图9c’中所示,把状态变量930’传送给CGI程序950并(通过嵌入的对转换器920’的调用)把状态变量嵌入由该CGI程序产生的超文本链接之中。
为了利用二种作法(a)和(b)的好处,转换器可以确定如何区分基于本发明范围内的多种技术中任何一个的CGI程序。例如,如图9b中所示,可以使用一种命名约定,这样,任何以子串“type”作为名字开头的CGI程序可以认为是类型1的CGI程序并用第一种方法(a)处理。任何不以子串“type”作为名字开头的子串可以被认为是类型II的CGI程序并用第二种方法(b)处理。
例如,考虑类型I的CGI调用的下列举例(参考图9b):
<A HREF=“http:∥www.watson.ibm.com/cgi-bin/type1?arg1=55”>
假定状态变量是x=32和y=45。转换器416会把状态变量930’附加到超文本链路,构成如下形式(如图9b’所示);
<A HREF=“http:∥www.watson.ibm.com/cgi-bin/type1?&arg1=55&x=32&y=45”>
现在参考图9c来考虑一个与类型2CGI程序超文本链接的例子:
<A HREF=“http:∥www.watson.ibm.com/cgi-bin/prog?arg1=55”>
仍假定状态变量930”是x=32和y=45。转换器会修改这一超文本链接为如下形式(如图9c’所示):
<A HREF=“http:∥www.watson.ibm.com/cgi-bin/convert2?url=∥www.watson.ibm.com/cgi-bin/prog&numargs=1&arg1=55& x=32&y=45”>
这里的参量970“numargs=1”向convert2指明CGI程序950当初只有一个参量传送给它,而其余的参量是由转换器传送的状态变量930”。然后这修改过的输出被返回给发请求的客户机。
在步骤813,客户机450从服务器410’接受HTML文件h。现在,返回到客户机的每个超文本链接(唯由类型1 CGI程序造成的超文本链接除外)都是对转换器的convert2例程的调用。在步骤814,运行浏览器460的客户机450选择超文本链接之一。在步骤815,服务器确定所选择的超文本链接是否为对convert2的调用。如果是,则过程在步骤817继续。在步骤817,有二种可能性。
(1)传送给convert2的URL参考一个HTML文件。这里,过程在步骤819继续。例如假设客户机已选择了如下链接:
<A HREF=“http:∥www.watson.ibm.com/cgi-bin/convert2?url=∥www.watson.ibm.com/mail.html&x=32&y=45”>
在步骤819,convert2取出文件“mai.html”中包含的HTML页面。然后它把HTML页面及状态参量x=32和y=45传送给转换器的convert1模块,然后如前文所述返回步骤811。
或者,
(2)该超文本链接是对一个CGI程序的调用。在这种情况中,过程继续到步骤818。例如假定客户机已选择了如下链接:
<A HREF=“http:∥www.watson.ibm.com/cgi-bin/convert2?url=∥www.watson.ibm.com/cgi-bin/prog&numargs=1&arg1=55&x=32&y=45”>
这里,给conrert2的第二个参量numargs=1指明当初的超文本链接只向“prog”传送一个参量,即“arg1=55”。另外两个参量“x=32”和“y=45”是由转换器416嵌入的状态变量。convert2把全部三个参量传送给prog,其中包括状态变量。然后如前所述过程返回步骤811。
本发明的这一方法通过在客户机450和服务器410之间往返传送的所有超链接中嵌入状态有利地保留了状态信息。那些精通本门技术的人们将会承认,由于把大部分状态信息存于一个和服务器410’相连的文件系统或数据库425,从而可以降低客户机和服务器之间通信的详细程度。在这种情况下,只需要在客户机和服务器之间往返传送对状态变量的索引(或指针)。
本发明被设计成对标准浏览器460工作,它不需支持从服务器下载其后能在客户机上执行的程序。对于一个支持可下载的服务器程序(例如用Java写成的程序(“应用部件”(applets)),或用任何其他这类语言写成的程序)的浏览器,附加特点是可能的。Java编程环境是众所周知的技术。例如可参见P.Tyma,G.Torok及T.Downing的“Java入门及其他(Java primer Plus)”WaiteGroup Press,1966,这里全文引入作为参考。还可参见PatrickNaughton的“Java手册”,Osborne Mcgraw-Hill,1996,这里全文引入作为参考。例如,服务器410’可以包含一个可下载程序,它使状态存储于客户机。利用这一作法,全部或部分状态能储存在客户机上。指示存储器中状态信息位置的索引(如前文说明的)可在服务器和客户机之间往返传送,以允许从客户机中提取状态。
可下载服务器代码对本发明的另一应用能允许“转换器”416在客户机上运行。这里,客户机将要从服务器410’向该客户机下载全部或部分“转换器”逻辑416以便执行。这将允许以全部(或部分)处理过程在本地的客户机450上进行来完全地实现本发明的功能。在对话过程中客户机不再不得已地走通远程服务器去过滤HTML页面;所有过滤可发生在本地。其优点是减小了服务器上的负载。此外,即使客户机从中取得应用部件的服务器停机或由于网络故障而不能应用,客户机也将能继续对话。
在多通信服务器上保留状态
精通本门技术的人们将会承认,在本发明的范围内可以使用多个转换器在多个服务器上传播状态。例如,在环球网上的航空预订系统可能有一个转换器(转换器A)保留状态。超文本链路之一可能是带有自己的转换器的远程服务器上的一个旅馆预订系统(转换器H).一个客户机可能开始使用航空预订系统。在某点上状态信息被加到对话上。然后该客户机遵循一超文本链路达到旅馆预订系统。当客户机使用旅馆预订系统时转换器A继续保留状态信息。所有状态变量被传播给旅馆预定系统的CGI程序。这些远程服务器CGI程序可能简单地忽略这些状态变量。另一方面,如果旅馆预订 系统理解来自航空预订系统的状态变量,这些变量有被旅馆预订系统(转换器H)使用。
在某一点上,旅馆预订系统服务器可能启动其转换器(转换器H)以嵌入附加状态变量。当发生这种情况时,对转换器H的调用可以被嵌入对转换器A的调用之中。这将不存在问题。CGI程序现在将从转换器A和转换器H二者传送参量。如果转换器A有能力理解代表对转换器H的调用的CGI函数,额外的事情是可能的:
(1)转换器A能把转换器H作为先前讨论过的类型I的CGI程序对待。在这种情况下,转换器A能停止监视对话中未来的超文本链接。
(2)转换器A能把转换器H作为类型II的CGI程序对待,并继续修改超文本链接。此外,转换器A能对未来的HTML页面增加特殊的链接,这将允许用户脱离任何一个转换器的控制。动态修正页面的其他例子
本发明还有这样的特点:它提供系统和方法在对话中客户机浏览HTML文件时过滤所有的由客户机观看的HTML文本。例如,假定一个客户机已与一个服务器接触并开始一个对话。该服务器希望过滤全部HTML文本并去掉已决定排除的短语和超文本链接。本发明提供当客户机访问文件和程序时过滤和/或修改HTML文本的方法,这些文件和程序对于服务器进行过滤而言可能是远程的文件和程序。
本发明可应用于那些在对话过程中需要修改HTML页面的多种应用中。例如,假定一个服务器应用希望在对话中对传给客户机的全部HTML页面进行过滤。转换器能在把HTML页面发送给客户机之前修改和/或去掉这些HTML页面的不希望的部分。这只要修改转换器使其对不同的子串寻找文本。请注意,转换器能审查存在于远程服务器上的页面和CGI程序输出。如果客户机能从服务器下载用Java之类语言写的程序。则能在客户机上执行转换器审查工作。
作为另一个例子,假定一个客户机450处于一个对话中,那里 一些主要公司的名字在文本中频繁出现。运行转换器416的服务器410’能访问主要公司主页URL的数据库475。服务器希望在每次数据库中一个公司的名字出现在HTML页面中时便增加超文本链接。例如,每当IBM或国际商用机器公司的名字出现在一个HTML页面中时,服务器便希望把对超文本链接的参考转换到IBM的主页。通过这样做,客户机便能够利用点击得到关于在对话中出现的公司的有用信息。通过修改转换器416使其寻找数据库中出现的所有公司名字的HTML页面便能完成这一功能。每当找到这样一个名字,便在返回客户机的HTML文本中插入对该公司主页的一个超文本链接。在超文本链接遵循远程服务器的情况下,转换器416能继续监视对话。如前文指出的那样,如果客户机能从服务器下载由Jave之类语言写成的程序,转换器能在客户机上执行。
既然借助一个最佳实施例和若干变体描述了本发明,对于那些本门技术的专家而言,将能进行各种修改。这样,应该理解,所提供的最佳实施例是作为例子而不是作为限制。所附权利要求恰当地规定了本发明的范围。

Claims (50)

1.在一客户机和一个或多个服务器之间的对话中保留状态信息的计算机化的方法,该客户机适于向一个或多个服务器请求服务,这些服务器通过无状态协议与客户机联成网络,所述服务包括一个或多个可能由客户机请求的数据和程序,这里的对话是客户机与一个或多个服务器之间为了所述服务而进行的通信系列,这里来自服务器的每个响应包括一个或多个延续(continuation),它们使能进行为了所述服务的另一个请求,而这里的客户机必须启动延续之一来继续对话,该方法的组成步骤是:
客户机用无状态协议发起与服务器的对话;
检测何时对服务的请求需要保留状态信息;
响应所述检测步骤,完成所述服务并从所述服务中识别出所有延续;
递归地将状态信息嵌入所有被识别出的延续;以及
响应所述嵌入步骤,将输出通信给客户机;这里在对话过程中状态信息被保留并提供给所有的服务。
2.如权利要求1所述的方法,其特征在于所述嵌入步骤由服务器完成,所述通信步骤是对所述嵌入步骤的响应。
3.如权利要求2所述的方法,其特征在于还包括一个步骤将至少一部分状态信息存储于和服务器相连的存付器中,而且所述嵌入步骤包括把代表所述状态信息部分的索引嵌入所述所有识别出的延续中。
4.如权利要求1所述的方法,其特征在于还包括一个步骤将计算机程序代码动态地下载到客户机中以完成所述嵌入步骤,它是对所述把输出通信给客户机的步骤的响应。
5.如权利要求4所述的方法,其特征在于还包括一个步骤将至少一部分状态信息存储于和服务器相连的存储器中,所述嵌入步骤包括嵌入代表所述状态信息部分的索引。
6.如权利要求1的方法,其特征在于还包括以下步骤:
客户机从所述全部识别出的带有嵌入状态信息的延续中选择出第二 个延续;以及
从所述第二延续中恢复状态信息并以恢复的状态信息启动相伴的第二服务;
递归地识别和在全部伴有所述第二服务输出的延续中嵌入状态信息。
7.如权利要求1所述的方法,其特征在于还包括一个步骤将状态信息关联于一个具体的对话。
8.如权利要求1所述的方法,其特征在于客户机和服务器是通过环球网联成网路的,其无状态协议是超文本传输协议,其延续是与超文本置标语言文件和公共网关接口程序之一的超链接。
9.如权利要求8所述的方法,其特征在于还包括一个步骤是根据预定的判据对所述超链接和从所述服务输出的数据之一进行过滤。
10.如权利要求8所述的方法,其特征在于还包括一个步骤是根据预定的判据向所述服务的所述输出增加所述超链接和数据之一。
11.如权利要求8所述的方法,其特征在于所述嵌入步骤还包括如下步骤:
修改一个识别出的延续,它是请求一个HTML文件,以所识别的延续和作为参量传送的状态信息去启动一个CGI转换器程序。
12.如权利要求8所述的方法,其特征在于所述嵌入步骤还包括如下步骤:
修改一个识别出的延续,它是一个以识别出的延续和作为参量传送的状态信息对一CGI程序的启动,这里所述嵌入步骤由该CGI程序完成。
13.如权利要求8所述的方法,其特征在于所述嵌入步骤还包括如下步骤:
修改一个识别出的延续,它是对一个CGI程序的启动,以识别出的延续、指明伴随CGI程序参量个数的参量计数器以及作为参量传送的状态信息来启动CGI转换器程序,这里所述嵌入步骤由转换器程序完成。
14.一个计算机可读的程序存储装置,有形地实现一个由计算机可执行指令构成的程序,以提供一种在一个客户机和一个或多个服务器之间 的对话中保留状态信息的方法,该客户机适于向一个或多个服务器请求服务,这些服务器通过无状态协议与客户机联成网络,所述服务包括一个或多个可能由客户机请求的数据和程序,这里的对话是客户机与一个或多个服务器之间为了所述服务而进行的通信系列,这里来自服务器的每个响应包括一个或多个延续,它们使能进行为了所述服务的另一个请求,而这里的客户机必须启动延续之一来继续对话,该方法的组成步骤是:
客户机用无状态协议发起与服务器的对话,
检测何时对服务的请求需要保留状态信息;
响应所述检测步骤,完成所述服务并从所述服务中识别出一个输出中所有超链接;
递归地将状态信息嵌入所有被识别出的超链接;以及
响应所述嵌入步骤,将输出通信给客户机;这里在对话过中状态信息被保留并提供给所有的服务。
15.一个计算机可读的程序存储装置,有形地实现一个由计算机可执行指令构成的程序,以完成如权利要求14中的方法步骤,其特征在于所述嵌入步骤由服务器完成,所述通信步骤是对所述嵌入步骤的响应。
16.一个计算机可读的程序存储装置,有形地实现一个由计算机可执行指令构成的程序,以完成如权利要求15中的方法步骤,其特征在于还包括一个步骤将至少一部分状态信息存储于和服务器相连的存储器中,而且所述嵌入步骤包括把代表所述状态信息部分的索引嵌入所述所有识别出的延续中。
17.一个计算机可读的程序存储装置,有形地实现一个由计算机可执行指令构成的程序,以完成如权利要求14中的方法步骤,其特征在于还包括一个步骤将计算机程序代码动态地下载到客户机中以完成所述嵌入步骤,它是对所述把输出通信给客户机的步骤的响应。
18.一个计算机可读的程序存储装置,有形地实现一个由计算机可执行指令构成的程序,以完成如权利要求14中的方法步骤,其特征在于还包括一个步骤将至少一部分状态信息存储于和客户机相连的存储器中,所述嵌入步骤包括嵌入代表所述状态信息部分的索引。
19.一个计算机可读的程序存储装置,有形地实现一个由计算机可执行指令构成的程序,以完成如权利要求14中的方法步骤,其特征在于还包括以下步骤:
客户机从所述全部识别出的带有嵌入状态信息的延续中选择出第二个延续;以及
从所述第二延续中恢复状态信息并以恢复的状态信息启动相伴的第二服务;
递归地识别和在全部伴有所述第二服务输出的延续中嵌入状态信息。
20.一个计算机可读的程序存储装置,有形地实现一个由计算机可执行指令构成的程序,以完成如权利要求14中的方法步骤,其特征在于还包括一个步骤将状态信息关联于一个具体的对话。
21.一个计算机可读的程序存储装置,有形地实现一个由计算机可执行指令构成的程序,以完成如权利要求14中的方法步骤,其特征在于客户机和服务器是通过环球网联成网络的,其无状态协议是超文本传输协议,其延续是与超文本置标语言文件和公共网关接口程序之一的超链接。
22.一个计算机可读的程序存储装置,有形地实现一个由计算机可执行指令构成的程序,以完成如权利要求21中的方法步骤,其特征在于还包括一个步骤是根据预定的判据对所述超链接和来自所述服务的数据输出之一进行过滤。
23.一个计算机可读的程序存储装置,有形地实现一个由计算机可执行指令构成的程序,以完成如权利要求21中的方法步骤,其特征在于还包括一个步骤是根据预定的判据向来自所述服务的所述输出增加所述超链接和数据之一。
24.一个计算机可读的程序存储装置,有形地实现一个由计算机可执行指令构成的程序,以完成的权利要求21中的方法步骤,其特征在于所述嵌入步骤还包括如下步骤:
修改一个识别出的延续,它是请求一个HTML文件,以所识别的延续和作为参量传送的状态信息去启动一个CGI转换器程序。
25.一个计算机可读的程序存储装置,有形地实现一个由计算机可执行指令构成的程序,以完成如权利要求21中的方法步骤,其特征在于所述嵌入步骤还包括如下步骤:
修改一个识别出的延续,它是一个以识别出的延续和作为参量传送的状态信息对一个CGI程序的启动,这里所述嵌入步骤由该CGI程序完成。
26.一个计算机可读的程序存储装置,有形地实现一个由计算机可执行指令构成的程序,以完成如权利要求21中的方法步骤,其特征在于所述嵌入步骤还包括如下步骤:
修改一个识别出的延续,它是对一个CGI程序的启动,从而以识别出的延续、指明伴随CGI程序参量个数的参量计数器以及作为参量传送的状态信息来启动CGI转换器程序,这里所述嵌入步骤由该转换器程序完成。
27.一个在客户机和一个或多个服务器之间的对话中保留状态信息的计算机系统,该客户机适于从这些服务器请求服务,这些服务器通过无状态协议与该客户机联成网络,所述服务包括一个或多个可以由客户机请求的数据和程序,这里的对话是客户机与一个或多个服务器之间为了所述服务而进行的通信系列,这里来自服务器的每个响应包括一个或多个延续,它们使能进行为了所述服务的另一个请求,而这里的客户机必须启动延续之一来继续对话,该系统的组成是:
适于用无状态协议发起与服务器对话的客户机;
状态检测逻辑,用于检测何时对服务的请求需保留状态信息;
查寻逻辑,用于响应所述检测步骤,从所述服务输出中识别出所有延续;
转换器逻辑,用于递归地将状态信息嵌入所有被识别出的延续;以及
通信逻辑,用于将输出传送给客衣机;这里在对话过程中状态信息被保留并提供给所有的服务。
28.如权利要求27所述的计算机系统,其特征在于所述转换器逻辑由服务器执行,所述通信逻辑从服务器向客户机传送嵌入状态信息的输 出。
29.如权利要求28所述的计算机系统,其特征在于还包括:
与服务器相连的存储器,用于存储至少一部分状态信息,这里所述转换器逻辑适于将代表所述状态信息部分的索引嵌入所述所有识别出的延续中。
30.如权利要求27所述的计算机系统,其特征在于所述通信逻辑把不嵌入状态信息的输出从服务器传送给客户机;而服务器适于把所述转换器逻辑动态地下载到客户机去执行。
31.如权利要求30所述的计算机系统,其特征在于还包括:
与客户机相连的存储器,用于存储至少是一部分状态信息;这里所述转换器逻辑还适于嵌入代表所述状态信息部分的索引。
32.如权利要求27所述的计算机系统,其特征在于客户机从所有识别出的带有嵌入状态信息的延续中选择第二个延续,该系统还包括:
转换器逻辑还适于从所述第二延续恢复状态信息,以恢复的状态信息启动一个相伴的第二服务,并递归地识别和在伴有来自所述第二服务输出的所有延续中嵌入状态信息。
33.如权利要求27所述的计算机系统,其特在于所述信息与具体对话相关联。
34.如权利要求27所述的计算机系统,其特征在于客户机和服务器是通过环球网联成网络的,其无状态协议是超文本传输协议,其延续是与超文本置标语言文件和公共网关接口程序之一的超链接。
35.如权利要求34所述的计算机系统,其特征在于还包括过滤器逻辑用于根据预定判据对所述超链接和来自所述服务的数据输出之一进行过滤。
36.如权利要求34所述的计算机系统,其特征在于还包括集成逻辑,用于根据预定的判据向来自所述服务的所述输出增加所述超链接和数据之一。
37.如权利要求34所述的计算机系统,其特点在于所述嵌入步骤还包括如下步骤:
修改一个识别出的延续,它是请求一个HTML文件,以所识别的 延续和作为参量传送的状态信息去启动一个CGI转换器程序。
38.如权利要求34所述的计算机系统,其特征在于所述嵌入步骤还包括如下步骤:
修改一个识别出的延续,它是一个以识别出的延续和作为参量传送的状态信息对一个CGI程序的启动,这里所述嵌入步骤由该CGI程序完成。
39.如权利要求34所述的计算机系统,其特征在于所述嵌入步骤还包括如下步骤:
修改一个识别出的延续,它是对一个CGI程序的启动,从而以识别出的延续、指明伴随CGI程序参量个数的参量计数器以及作为参量传送的状态信息来启动CGI转换器程序,这里所述嵌入步骤由该转换器程序完成。
40.一个在客户机和一个或多个服务器之间的对话中保留状态信息的计算机系统,该客户机适于从这些服务器请求服务,这些服务器通过无状态协议与该客户机联成网络,所述服务包括一个或多个可以由客户机请求的数据和程序,这里的对话是客户机和一个或多个服务器之间为了所述服务而进行的通信系列,这里来自服务器的每个响应包括一个或多个延续,它们使能进行为了所述服务的另一个请求,而这里的客户机必须启动延续之一来继续对话,该系统的组成是:
适于用无状态协议发起与服务器对话的客户机;
状态检测手段,用于检测何时对服务的请求需保留状态信息;
查寻手段,用于响应所述检测步骤,从所述服务输出中识别出所有延续;
转换器手段,用于递归地将状态信息嵌入所有被识虽出的延续;以及
通信手段,用于将输出传送给客户机;这里在对话过程中状态信息被保留并提供给所有的服务。
41.如权利要求40所述的计算机系统,其特征在于所述转换器手段由服务器执行,所述通信手段从服务器向客户机传送嵌入状态信息的输出。
42.如权利要求41所述的计算机系统,其特征在于还包括:
与服务器相连的存储器,用于存储至少一部分状态信息,这里所述转换器手段适于将代表所述状态信息部分的索引嵌入所述所有被识别出的延续中。
43.如权利要求40所述的计算机系统,其特征在于所述通信手段把不嵌入状态信息的输出从服务器传送给客户机;而服务器适于把所述转换器手段动态地下载到客户机去执行。
44.如权利要求43所述的计算机系统,其特征在于还包括:
与客户机相连的存储器,用于存储至少是一部分状态信息;这里所述转换器手段还适于嵌入代表所述状态信息部分的索引。
45.如权利要求41所述的计算机系统,其特征在于客户机从所有识别出的带有嵌入状态信息的延续中选择第二个延续,该系统还包括:
转换器手段还适于从所述第二延续恢复状态信息,以恢复的状态信息启动一个相伴的第二服务,并递归地识别和在伴有来自所述第二服务输出的所有延续中嵌入状态信息。
46.如权利要求45所述的计算机系统,其特征在于还包括集成手段,用于根据预定的判据向来自所述服务的所述输出增加所述超链路和数据之一。
47.如权利要求40所述的计算机系统,其特征在于所述客户机和服务器是通过环球网联成网络的,其无状态协议是超文本传输协议,其延续是与超文本置标语言文件和公共网关接口程序之一的超链接。
48.如权利要求47所述的方法,其特征在于所述嵌入步骤还包括如下步骤:
修改一个识别出的延续,它是请求一个HTML文件,以所识别的延续和作为参量传送的状态信息去启动一个CGI转换器程序。
49.如权利要求47所述的方法,其特征在于所述嵌入步骤还包括如下步骤:
修改一个识别出的延续,它是一个以识别出的延续和作为参量传送的状态信息对一个CGI程序的启动,这里所述嵌入步骤由该CGI程序完成。
50.如权利要求47所述的方法,其特征在于所述嵌入步骤还包括如下步骤:
修改一个识别出的延续,它是对一个CGI程序的启动,从而以识别出的延续、指明伴随CGI程序参量个数的参量计数器以及作为参量传送的状态信息来启动CGI转换器程序,这里所述嵌入步骤由该转换器程序完成。
CN97111570A 1996-06-07 1997-05-16 在无状态网络协议情况下保留状态 Expired - Lifetime CN1108682C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/660,633 US5961601A (en) 1996-06-07 1996-06-07 Preserving state information in a continuing conversation between a client and server networked via a stateless protocol
US660633 2000-09-13

Publications (2)

Publication Number Publication Date
CN1173671A true CN1173671A (zh) 1998-02-18
CN1108682C CN1108682C (zh) 2003-05-14

Family

ID=24650328

Family Applications (1)

Application Number Title Priority Date Filing Date
CN97111570A Expired - Lifetime CN1108682C (zh) 1996-06-07 1997-05-16 在无状态网络协议情况下保留状态

Country Status (7)

Country Link
US (1) US5961601A (zh)
EP (1) EP0812088A3 (zh)
JP (1) JP3290377B2 (zh)
KR (1) KR100288490B1 (zh)
CN (1) CN1108682C (zh)
CA (1) CA2206685C (zh)
TW (1) TW349305B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100456722C (zh) * 2005-07-19 2009-01-28 国际商业机器公司 用于提供Web服务的方法、装置以及程序产品
CN101833952B (zh) * 2001-05-04 2013-02-13 微软公司 客户服务器系统中处理输入数据的方法

Families Citing this family (203)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9603582D0 (en) 1996-02-20 1996-04-17 Hewlett Packard Co Method of accessing service resource items that are for use in a telecommunications system
GB2313524A (en) * 1996-05-24 1997-11-26 Ibm Providing communications links in a computer network
US6006266A (en) * 1996-06-03 1999-12-21 International Business Machines Corporation Multiplexing of clients and applications among multiple servers
JP3437044B2 (ja) * 1996-10-23 2003-08-18 株式会社野村総合研究所 Www環境下で作動するクライアントサーバーシステムにおけるユーザー認証方法
US6145004A (en) * 1996-12-02 2000-11-07 Walsh; Stephen Kelly Intranet network system
US6901425B1 (en) * 1996-12-23 2005-05-31 International Business Machines Corporation Computer apparatus and method including a disconnect mechanism for communicating between software applications and computers on the world-wide web
US6225995B1 (en) * 1997-10-31 2001-05-01 Oracle Corporaton Method and apparatus for incorporating state information into a URL
US6845505B1 (en) 1997-02-03 2005-01-18 Oracle International Corporation Web request broker controlling multiple processes
US6710786B1 (en) 1997-02-03 2004-03-23 Oracle International Corporation Method and apparatus for incorporating state information into a URL
US6285683B1 (en) * 1997-02-14 2001-09-04 Global Adsi Solutions, Inc. Method and apparatus for providing extended capability telephone services via an automated server
US7020700B1 (en) * 1997-02-28 2006-03-28 International Business Machines Corporation Client side socks server for an internet client
US6345303B1 (en) * 1997-03-25 2002-02-05 Intel Corporation Network proxy capable of dynamically selecting a destination device for servicing a client request
US6170017B1 (en) * 1997-05-08 2001-01-02 International Business Machines Corporation Method and system coordinating actions among a group of servers
JP3883647B2 (ja) * 1997-06-10 2007-02-21 インターナショナル・ビジネス・マシーンズ・コーポレーション メッセージ処理方法、メッセージ処理装置及びメッセージ処理を制御するプログラムを格納する記憶媒体
US6182092B1 (en) * 1997-07-14 2001-01-30 Microsoft Corporation Method and system for converting between structured language elements and objects embeddable in a document
US6049877A (en) * 1997-07-16 2000-04-11 International Business Machines Corporation Systems, methods and computer program products for authorizing common gateway interface application requests
US6334114B1 (en) 1997-10-31 2001-12-25 Oracle Corporation Method and apparatus for performing transactions in a stateless web environment which supports a declarative paradigm
GB9726484D0 (en) * 1997-12-15 1998-02-11 British Telecomm Data communications
CA2315640A1 (en) * 1997-12-29 1999-07-08 Postx Corporation Method and apparatus capable of embedding, extracting and processing data within a file having an html format
US6357010B1 (en) * 1998-02-17 2002-03-12 Secure Computing Corporation System and method for controlling access to documents stored on an internal network
DE19814859B4 (de) * 1998-04-02 2006-04-13 Fujitsu Siemens Computers Gmbh Verfahren zum Steuern des Informationsaustausches unter Verwendung des Internet
US7346689B1 (en) * 1998-04-20 2008-03-18 Sun Microsystems, Inc. Computer architecture having a stateless human interface device and methods of use
US6353839B1 (en) * 1998-04-30 2002-03-05 Openwave Systems Inc. Method for inline variables management in a hypermedia display language
JP3780099B2 (ja) * 1998-05-14 2006-05-31 キヤノン株式会社 ページデータ生成制御装置及び方法及びコンピュータ読み取り可能なプログラムが格納された記憶媒体
US6308212B1 (en) 1998-05-29 2001-10-23 Hewlett-Packard Company Web user interface session and sharing of session environment information
US6810409B1 (en) * 1998-06-02 2004-10-26 British Telecommunications Public Limited Company Communications network
US6345278B1 (en) * 1998-06-04 2002-02-05 Collegenet, Inc. Universal forms engine
US6311269B2 (en) * 1998-06-15 2001-10-30 Lockheed Martin Corporation Trusted services broker for web page fine-grained security labeling
US6330566B1 (en) * 1998-06-22 2001-12-11 Microsoft Corporation Apparatus and method for optimizing client-state data storage
US6131118A (en) * 1998-07-07 2000-10-10 Compaq Computer Corporation Flexible display of management data in a programmable event driven processing system
US6108701A (en) * 1998-07-20 2000-08-22 Lucent Technologies, Inc. Soft switch extension for internet protocol applications
US6496824B1 (en) * 1999-02-19 2002-12-17 Saar Wilf Session management over a stateless protocol
US6519646B1 (en) * 1998-09-01 2003-02-11 Sun Microsystems, Inc. Method and apparatus for encoding content characteristics
US6397253B1 (en) * 1998-10-06 2002-05-28 Bull Hn Information Systems Inc. Method and system for providing high performance Web browser and server communications
JP2002528819A (ja) 1998-10-28 2002-09-03 バーティカルワン コーポレイション 自動集合の装置および方法、電子パーソナルインフォメーションあるいはデータを送達する装置および方法、ならびに電子パーソナルインフォメーションあるいはデータを含むトランザクション
EP0999677A1 (de) * 1998-11-05 2000-05-10 Olaf Walkowiak Verfahren und Vorrichtung zum Bereitstellen von Zustandsinformationen bei der Übertragung von Hypertextdokumenten über ein zustandloses Protokoll
US6324539B1 (en) * 1998-11-09 2001-11-27 Unisys Corporation Cool ice state management
US6662343B1 (en) * 1998-11-09 2003-12-09 Unisys Corporation Cool ice automatic footer text on HTML pages
US6295531B1 (en) * 1998-11-09 2001-09-25 Unisys Corporation Cool ICE data wizard
WO2000029976A1 (en) * 1998-11-16 2000-05-25 Trade Access, Inc. Integrated remote web authoring system
US7194442B1 (en) 1998-11-16 2007-03-20 Sky Technologies, Llc System and method for automated, iterative development negotiations
US8418131B2 (en) * 1998-11-25 2013-04-09 Helmut Emmelmann Interactive server side components
US7085997B1 (en) * 1998-12-08 2006-08-01 Yodlee.Com Network-based bookmark management and web-summary system
US8069407B1 (en) 1998-12-08 2011-11-29 Yodlee.Com, Inc. Method and apparatus for detecting changes in websites and reporting results to web developers for navigation template repair purposes
US7672879B1 (en) 1998-12-08 2010-03-02 Yodlee.Com, Inc. Interactive activity interface for managing personal data and performing transactions over a data packet network
US6209038B1 (en) * 1999-01-13 2001-03-27 International Business Machines Corporation Technique for aggregate transaction scope across multiple independent web requests
US6631512B1 (en) * 1999-01-15 2003-10-07 Gillis E Onyeabor Method and system for database-driven, scalable web page development, deployment-download, and execution
JP2000293426A (ja) * 1999-04-01 2000-10-20 Nec Soft Ltd レコードロック方式
US6975937B1 (en) 1999-05-11 2005-12-13 Christopher Kantarjiev Technique for processing customer service transactions at customer site using mobile computing device
US7370005B1 (en) 1999-05-11 2008-05-06 Peter Ham Inventory replication based upon order fulfillment rates
AU4839300A (en) 1999-05-11 2000-11-21 Webvan Group, Inc. Electronic commerce enabled delivery system and method
US7177825B1 (en) 1999-05-11 2007-02-13 Borders Louis H Integrated system for ordering, fulfillment, and delivery of consumer products using a data network
US7305473B2 (en) * 1999-05-28 2007-12-04 The Coca-Cola Company Provision of transparent proxy services to a user of a client device
US7752535B2 (en) 1999-06-01 2010-07-06 Yodlec.com, Inc. Categorization of summarized information
US6330719B1 (en) * 1999-06-30 2001-12-11 Webtv Networks, Inc. Interactive television receiver unit browser that waits to send requests
US6557038B1 (en) * 1999-06-30 2003-04-29 International Business Machines Corporation Method and apparatus for maintaining session states
FR2796511A1 (fr) * 1999-07-16 2001-01-19 Telediffusion Fse Telecommande d'execution d'une fonction dans un serveur
AU6264100A (en) * 1999-08-28 2001-03-26 Sevenval Ag Providing state information in a stateless data communication protocol
EP1085715A3 (en) * 1999-08-28 2001-06-06 Sevenval AG Providing state information in a data communication protocol
AU1249801A (en) * 1999-08-30 2001-03-26 Kerbango, Inc. Search engine to monitor and verify streaming audio sources
US20010047394A1 (en) 1999-09-10 2001-11-29 Kloba David D. System, method, and computer program product for executing scripts on mobile devices
US20020052781A1 (en) * 1999-09-10 2002-05-02 Avantgo, Inc. Interactive advertisement mechanism on a mobile device
US7987420B1 (en) 1999-09-10 2011-07-26 Ianywhere Solutions, Inc. System, method, and computer program product for a scalable, configurable, client/server, cross-platform browser for mobile devices
US8595308B1 (en) 1999-09-10 2013-11-26 Ianywhere Solutions, Inc. System, method, and computer program product for server side processing in a mobile device environment
US7392308B2 (en) * 1999-09-10 2008-06-24 Ianywhere Solutions, Inc. System, method, and computer program product for placement of channels on a mobile device
GB2371902B (en) 1999-09-10 2004-11-17 Avantgo Inc System, method, and computer program product for interactive interfacing with mobile devices
AU1079901A (en) * 1999-10-11 2001-04-23 I2 Technologies, Inc. Distributed session services
US6629092B1 (en) 1999-10-13 2003-09-30 Andrew Berke Search engine
WO2001029776A1 (en) 1999-10-18 2001-04-26 Stamps.Com Cryptographic module for secure processing of value-bearing items
EP1224630A1 (en) * 1999-10-18 2002-07-24 Stamps.Com Method and apparatus for on-line value-bearing item system
US6751651B2 (en) 1999-11-30 2004-06-15 David A. Crockett Web-site consistency administration among inconsistent software-object libraries of remote distributed health-care providers
US6888942B2 (en) * 1999-11-30 2005-05-03 David A. Crockett Process for administrating over changes to server-administrated client records in a stateless protocol
US8135682B1 (en) 1999-11-30 2012-03-13 Crockett David A Process for administrating over changes to server-administrated client records in a stateless protocol
US7107308B2 (en) * 1999-12-01 2006-09-12 Sun Microsystems, Inc. Low cost, stateless, full-featured information appliance
US6970904B1 (en) * 1999-12-29 2005-11-29 Rode Consulting, Inc. Methods and apparatus for sharing computational resources
AU2405101A (en) * 2000-01-05 2001-07-16 E-Pop Corp. Multimedia information intermediating device and method, web site registration updating method, and web site registration updating system
US20030135587A1 (en) * 2000-01-24 2003-07-17 Andrew Fisher Method and system of state management for data communications
AU2001247986A1 (en) 2000-02-16 2001-08-27 Stamps.Com Secure on-line ticketing
KR20010089012A (ko) * 2000-03-20 2001-09-29 전성영 인터넷 금고 서비스 시스템 및 그 방법
GB2348659B (en) * 2000-03-23 2001-03-28 Fmc Corp Tubing hanger saddle valve
WO2001071525A1 (en) * 2000-03-23 2001-09-27 Tingo Inc. System and method for managing user-specific data
US6886037B1 (en) * 2000-03-31 2005-04-26 Ncr Corporation Channel director for cross-channel customer interactions
ATE301308T1 (de) * 2000-04-17 2005-08-15 Shawn E Wiederin Online-verzeichnis-unterstützungssystem
US7240283B1 (en) 2000-11-10 2007-07-03 Narasimha Rao Paila Data transmission and rendering techniques implemented over a client-server system
US6985946B1 (en) * 2000-05-12 2006-01-10 Microsoft Corporation Authentication and authorization pipeline architecture for use in a web server
WO2001088789A1 (fr) * 2000-05-15 2001-11-22 Nifty Corporation Systeme et procede de traitement des commandes
DE60135125D1 (de) * 2000-05-15 2008-09-11 Nifty Corp Elektronischer kommerz in einem informationsverarbeitungssystem und verfahren
US7908200B2 (en) 2000-05-16 2011-03-15 Versata Development Group, Inc. Method and apparatus for efficiently generating electronic requests for quote
WO2001089170A2 (en) * 2000-05-17 2001-11-22 Interactive Video Technologies, Inc. Method for state preservation in http-based communications
US6990653B1 (en) 2000-05-18 2006-01-24 Microsoft Corporation Server-side code generation from a dynamic web page content file
US6792607B1 (en) * 2000-05-18 2004-09-14 Microsoft Corporation Databinding using server-side control objects
US6961750B1 (en) 2000-05-18 2005-11-01 Microsoft Corp. Server-side control objects for processing client-side user interface elements
US6757900B1 (en) 2000-05-18 2004-06-29 Microsoft Corporation State management of server-side control objects
US7013340B1 (en) 2000-05-18 2006-03-14 Microsoft Corporation Postback input handling by server-side control objects
US7739354B2 (en) * 2000-10-12 2010-06-15 Sap Portals Israel Ltd. Adding data to text pages by means of an intermediary proxy
CN1270259C (zh) * 2000-05-29 2006-08-16 诺基亚有限公司 同步方法
JP2004534286A (ja) * 2000-06-14 2004-11-11 ジョンソン・アンド・ジョンソン・ヘルス・ケア・システムズ・インコーポレイテッド オンライン医療品ショッピングシステム
US6996599B1 (en) 2000-06-21 2006-02-07 Microsoft Corporation System and method providing multi-tier applications architecture
JP4010749B2 (ja) * 2000-07-04 2007-11-21 本田技研工業株式会社 共有データベースを備えた電子ファイル管理システム
US7171455B1 (en) * 2000-08-22 2007-01-30 International Business Machines Corporation Object oriented based, business class methodology for generating quasi-static web pages at periodic intervals
US7069292B2 (en) * 2000-08-29 2006-06-27 Fujitsu Limited Automatic display method and apparatus for update information, and medium storing program for the method
US6799251B1 (en) 2000-08-29 2004-09-28 Oracle International Corporation Performance-based caching
US6853994B1 (en) * 2000-08-30 2005-02-08 International Business Machines Corporation Object oriented based, business class methodology for performing data metric analysis
JP4200645B2 (ja) * 2000-09-08 2008-12-24 日本電気株式会社 情報処理装置、情報処理方法および記録媒体
US7426513B2 (en) * 2000-10-12 2008-09-16 Sap Portals Israel Ltd. Client-based objectifying of text pages
US6848000B1 (en) * 2000-11-12 2005-01-25 International Business Machines Corporation System and method for improved handling of client state objects
US7233914B1 (en) 2000-12-27 2007-06-19 Joyo Wijaya Technique for implementing item substitution for unavailable items relating to a customer order
US7246351B2 (en) * 2001-02-20 2007-07-17 Jargon Software System and method for deploying and implementing software applications over a distributed network
US7720958B2 (en) 2001-03-09 2010-05-18 International Business Machines Corporation Method and system for embedding correlated performance measurements for distributed application performance decomposition
US7380250B2 (en) 2001-03-16 2008-05-27 Microsoft Corporation Method and system for interacting with devices having different capabilities
US7308423B1 (en) 2001-03-19 2007-12-11 Franklin Goodhue Woodward Technique for handling sales of regulated items implemented over a data network
US7447802B2 (en) * 2001-03-30 2008-11-04 Oracle International Corporation Method and system for maintaining a configuration state
EP1253517A1 (en) * 2001-04-26 2002-10-30 Telefonaktiebolaget Lm Ericsson Stateless server
WO2002088951A1 (en) * 2001-04-26 2002-11-07 Telefonaktiebolaget Lm Ericsson (Publ) Stateless server
US20020188666A1 (en) * 2001-05-23 2002-12-12 Lemon Michael J. Lightweight dynamic service conversation controller
GB0112780D0 (en) * 2001-05-25 2001-07-18 Nokia Corp Requests in a communication system
US7493397B1 (en) 2001-06-06 2009-02-17 Microsoft Corporation Providing remote processing services over a distributed communications network
US6944797B1 (en) 2001-06-07 2005-09-13 Microsoft Corporation Method and system for tracing
US6915454B1 (en) 2001-06-12 2005-07-05 Microsoft Corporation Web controls validation
US6898604B1 (en) * 2001-06-29 2005-05-24 Microsoft Corporation XML serialization and deserialization
US7162723B2 (en) 2001-06-29 2007-01-09 Microsoft Corporation ASP.NET HTTP runtime
KR100760789B1 (ko) * 2001-06-30 2007-09-20 주식회사 케이티 인터넷 서비스 시스템에서 과금대행을 위한 컨텐츠 중계방법
US7594001B1 (en) 2001-07-06 2009-09-22 Microsoft Corporation Partial page output caching
US7120897B2 (en) * 2001-07-10 2006-10-10 Microsoft Corporation User control objects for providing server-side code generation from a user-defined dynamic web page content file
EP1280055B1 (en) 2001-07-27 2010-04-14 Sap Ag Method and computer system for creating and processing a browser compliant human interface description
EP1280054A1 (en) 2001-07-27 2003-01-29 Sap Ag Method and computer system for separating and processing layout information and data of a document
EP1280053B1 (en) 2001-07-27 2010-02-24 Sap Ag Method and computer system for providing and processing a human interface description
US7216294B2 (en) 2001-09-04 2007-05-08 Microsoft Corporation Method and system for predicting optimal HTML structure without look-ahead
US7428725B2 (en) 2001-11-20 2008-09-23 Microsoft Corporation Inserting devices specific content
GB2382962A (en) * 2001-12-07 2003-06-11 Altio Ltd Data routing without using an address
US20030110266A1 (en) * 2001-12-10 2003-06-12 Cysive, Inc. Apparatus and method of using session state data across sessions
US20040205569A1 (en) * 2002-02-06 2004-10-14 Mccarty Jon S. Method and system to manage outdated web page links in a computing system
US20030195875A1 (en) * 2002-03-25 2003-10-16 Valk Jeffrey W. Information management structure
US20030225885A1 (en) * 2002-05-31 2003-12-04 Comverse, Ltd. Caching for limited bandwidth networks
US20030232245A1 (en) * 2002-06-13 2003-12-18 Jeffrey A. Turak Interactive training software
KR20040028257A (ko) * 2002-09-30 2004-04-03 삼성전자주식회사 네트워크에 접근가능한 장치, 그 보안 방법 및 정보저장매체
US7574653B2 (en) 2002-10-11 2009-08-11 Microsoft Corporation Adaptive image formatting control
US20040153973A1 (en) * 2002-11-21 2004-08-05 Lawrence Horwitz System and method for automatically storing and recalling application states based on application contexts
JP4571509B2 (ja) * 2002-12-02 2010-10-27 エスアーペー アーゲー セッション復帰可能な、処理状態を把握するウェブアプリケーション
US7472170B2 (en) 2003-02-13 2008-12-30 Bruce Zak System and method for managing content on a network interface
US7634570B2 (en) * 2003-03-12 2009-12-15 Microsoft Corporation Managing state information across communication sessions between a client and a server via a stateless protocol
US7240192B1 (en) 2003-03-12 2007-07-03 Microsoft Corporation Combining a browser cache and cookies to improve the security of token-based authentication protocols
US7451305B1 (en) 2003-04-10 2008-11-11 Cisco Technology, Inc. Method and apparatus for securely exchanging cryptographic identities through a mutually trusted intermediary
JP4209712B2 (ja) * 2003-04-15 2009-01-14 株式会社リコー 情報処理装置及びセッション管理方法
US7107293B2 (en) * 2003-04-30 2006-09-12 International Business Machines Corporation Nested recovery scope management for stateless recovery agents
JP4097584B2 (ja) * 2003-09-19 2008-06-11 株式会社リコー Wwwサーバ機能を有する組み込み機器、ウェブページ提供方法、および、ウェブページ提供制御プログラム
US7873353B2 (en) * 2003-09-30 2011-01-18 Ianywhere Solutions, Inc. Method and system for accessing applications and data, and for tracking of key indicators on mobile handheld devices
US7596782B2 (en) * 2003-10-24 2009-09-29 Microsoft Corporation Software build extensibility
WO2005060611A2 (en) * 2003-12-10 2005-07-07 Alex Mashinsky Exchange of centralized control data
US7346773B2 (en) * 2004-01-12 2008-03-18 Cisco Technology, Inc. Enabling stateless server-based pre-shared secrets
US7373502B2 (en) * 2004-01-12 2008-05-13 Cisco Technology, Inc. Avoiding server storage of client state
US7996631B1 (en) 2004-02-17 2011-08-09 Oracle America, Inc. System and method for accessing storage devices attached to a stateless client
US7536672B1 (en) * 2004-03-05 2009-05-19 Adobe Systems Incorporated Management of user interaction history with software applications
US7565538B2 (en) * 2004-04-05 2009-07-21 Microsoft Corporation Flow token
US7890604B2 (en) 2004-05-07 2011-02-15 Microsoft Corproation Client-side callbacks to server events
US9026578B2 (en) 2004-05-14 2015-05-05 Microsoft Corporation Systems and methods for persisting data between web pages
US8065600B2 (en) 2004-05-14 2011-11-22 Microsoft Corporation Systems and methods for defining web content navigation
US7464386B2 (en) 2004-05-17 2008-12-09 Microsoft Corporation Data controls architecture
US8156448B2 (en) 2004-05-28 2012-04-10 Microsoft Corporation Site navigation and site navigation data source
US7530058B2 (en) 2004-05-28 2009-05-05 Microsoft Corporation Non-compile pages
KR100636147B1 (ko) * 2004-06-24 2006-10-18 삼성전자주식회사 네트워크를 통한 컨텐츠의 제어 방법 및 장치, 컨텐츠제공 방법 및 장치
US8135803B2 (en) * 2004-08-23 2012-03-13 Ianywhere Solutions, Inc. Method, system, and computer program product for offline advertisement servicing and cycling
US9552599B1 (en) * 2004-09-10 2017-01-24 Deem, Inc. Platform for multi-service procurement
US20060064470A1 (en) * 2004-09-23 2006-03-23 Sargent Antony J Method, system, and computer program product for improved synchronization efficiency for mobile devices, including database hashing and caching of web access errors
US20060287966A1 (en) * 2004-12-21 2006-12-21 Oracle International Corporation Methods and systems for authoring customized contracts using contract templates that include user-configured rules and questions
US20060230046A1 (en) * 2005-03-30 2006-10-12 Brassil J M Component design by tables within tables
US7350227B2 (en) * 2005-04-26 2008-03-25 Cisco Technology, Inc. Cryptographic peer discovery, authentication, and authorization for on-path signaling
US7757239B2 (en) * 2005-08-29 2010-07-13 Sap Ag Systems and methods for suspending and resuming of a stateful web application
US8176408B2 (en) 2005-09-12 2012-05-08 Microsoft Corporation Modularized web provisioning
US20070106670A1 (en) * 2005-11-08 2007-05-10 Nortel Networks Limited Interactive communication session cookies
US8756326B1 (en) 2005-11-08 2014-06-17 Rockstar Consortium Us Lp Using interactive communication session cookies in web sessions
US8127304B2 (en) * 2006-05-31 2012-02-28 Rocket Software, Inc. Mapping and communicating data from a user interface to an application program
US8849719B2 (en) * 2006-08-02 2014-09-30 Christopher W. Baker Providing content to a portable playback device
US7606752B2 (en) 2006-09-07 2009-10-20 Yodlee Inc. Host exchange in bill paying services
US8639732B2 (en) 2006-09-12 2014-01-28 Sony Corporation Method for storing and reading-out data handled by application operating on HTTP client, data storage program, and data read-out program
US20080306784A1 (en) * 2007-06-05 2008-12-11 Vijay Rajkumar Computer-implemented methods and systems for analyzing clauses of contracts and other business documents
US8037004B2 (en) 2007-06-11 2011-10-11 Oracle International Corporation Computer-implemented methods and systems for identifying and reporting deviations from standards and policies for contracts, agreements and other business documents
EP2235881A2 (en) * 2007-12-07 2010-10-06 Gallup, Inc. Preserving state information client-server system networked via a stateless protocol
US8122482B2 (en) * 2008-01-24 2012-02-21 Cisco Technology, Inc. Cryptographic peer discovery, authentication, and authorization for on-path signaling
CN101527708B (zh) * 2008-03-04 2012-10-03 华为技术有限公司 恢复连接的方法和装置
US8261334B2 (en) 2008-04-25 2012-09-04 Yodlee Inc. System for performing web authentication of a user by proxy
JP4429363B2 (ja) * 2008-08-18 2010-03-10 株式会社エヌ・ティ・ティ・ドコモ 移動通信方法、交換局及び無線基地局
US8984165B2 (en) * 2008-10-08 2015-03-17 Red Hat, Inc. Data transformation
CN103179075B (zh) * 2008-11-20 2017-06-27 华为技术有限公司 协作多点传输中确定资源映射的方法、网络设备及系统
US8555359B2 (en) 2009-02-26 2013-10-08 Yodlee, Inc. System and methods for automatically accessing a web site on behalf of a client
US8238538B2 (en) 2009-05-28 2012-08-07 Comcast Cable Communications, Llc Stateful home phone service
US9015136B2 (en) * 2010-01-22 2015-04-21 Microsoft Technology Licensing, Llc Storing temporary state data in separate containers
US8788580B2 (en) 2010-12-29 2014-07-22 Oracle International Corporation Event broker for an improved application server platform for telecom-based applications
WO2013059199A1 (en) 2011-10-17 2013-04-25 Disintermediation Services, Inc. Two-way real time communication allowing asymmetric participation across multiple electronic platforms
US20130290830A1 (en) * 2012-04-30 2013-10-31 Salesforce.Com, Inc. System and method for managing a viewstate of a web application
US9449346B1 (en) 2014-05-21 2016-09-20 Plaid Technologies, Inc. System and method for programmatically accessing financial data
US9595023B1 (en) 2014-05-21 2017-03-14 Plaid Technologies, Inc. System and method for facilitating programmatic verification of transactions
US11574621B1 (en) * 2014-12-23 2023-02-07 Amazon Technologies, Inc. Stateless third party interactions
US10104059B2 (en) 2015-09-08 2018-10-16 Plaid Technologies, Inc. Secure permissioning of access to user accounts, including secure deauthorization of access to user accounts
US10223233B2 (en) 2015-10-21 2019-03-05 International Business Machines Corporation Application specific interaction based replays
US10726491B1 (en) 2015-12-28 2020-07-28 Plaid Inc. Parameter-based computer evaluation of user accounts based on user account data stored in one or more databases
US10984468B1 (en) 2016-01-06 2021-04-20 Plaid Inc. Systems and methods for estimating past and prospective attribute values associated with a user account
US11468085B2 (en) 2017-07-22 2022-10-11 Plaid Inc. Browser-based aggregation
US10878421B2 (en) 2017-07-22 2020-12-29 Plaid Inc. Data verified deposits
US10937011B1 (en) 2018-09-11 2021-03-02 Rodan & Fields, Llc System and method for monitoring and updating content for an e-commerce platform
US11316862B1 (en) 2018-09-14 2022-04-26 Plaid Inc. Secure authorization of access to user accounts by one or more authorization mechanisms
US11887069B2 (en) 2020-05-05 2024-01-30 Plaid Inc. Secure updating of allocations to user accounts
US11327960B1 (en) 2020-10-16 2022-05-10 Plaid Inc. Systems and methods for data parsing

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5218695A (en) * 1990-02-05 1993-06-08 Epoch Systems, Inc. File server system having high-speed write execution
EP0604010B1 (en) * 1992-12-21 1999-12-29 Sun Microsystems, Inc. Method and apparatus for subcontracts in distributed processing systems
CA2121612A1 (en) * 1993-05-21 1994-11-22 Chung-Hwa Herman Rao Methods and apparatus for making and using distributed applications
DE69521101T2 (de) * 1994-10-31 2001-10-18 Ibm Gemeinsam genutzte virtuelle Platten mit anwendungstransparenter Wiedergewinnung
US5623656A (en) * 1994-12-15 1997-04-22 Lucent Technologies Inc. Script-based data communication system and method utilizing state memory
US5708780A (en) * 1995-06-07 1998-01-13 Open Market, Inc. Internet server access control and monitoring systems
US5701451A (en) * 1995-06-07 1997-12-23 International Business Machines Corporation Method for fulfilling requests of a web browser
US5710918A (en) * 1995-06-07 1998-01-20 International Business Machines Corporation Method for distributed task fulfillment of web browser requests
US5774670A (en) * 1995-10-06 1998-06-30 Netscape Communications Corporation Persistent client state in a hypertext transfer protocol based client-server system
US5745681A (en) * 1996-01-11 1998-04-28 Sun Microsystems, Inc. Stateless shopping cart for the web
JP3216812B2 (ja) * 1996-02-28 2001-10-09 グローバルメディアオンライン株式会社 利用者の特性に応じた画像を提供する通信システム、並びに当該通信システムに用いる端末装置および情報提供装置
WO1997032258A1 (fr) * 1996-02-28 1997-09-04 Aim Corporation Systeme de communication de messages du type publicitaire a l'utilisateur d'un equipement terminal
JP3526688B2 (ja) * 1996-03-29 2004-05-17 富士通株式会社 コネクションレスな通信における従量制課金システムおよび方法
JPH09325906A (ja) * 1996-06-04 1997-12-16 Inter Sci Kk コンピュータシステム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101833952B (zh) * 2001-05-04 2013-02-13 微软公司 客户服务器系统中处理输入数据的方法
CN100456722C (zh) * 2005-07-19 2009-01-28 国际商业机器公司 用于提供Web服务的方法、装置以及程序产品

Also Published As

Publication number Publication date
JPH1097483A (ja) 1998-04-14
US5961601A (en) 1999-10-05
CA2206685A1 (en) 1997-12-07
KR100288490B1 (ko) 2001-05-02
JP3290377B2 (ja) 2002-06-10
EP0812088A2 (en) 1997-12-10
KR980004051A (ko) 1998-03-30
TW349305B (en) 1999-01-01
EP0812088A3 (en) 1998-06-10
CN1108682C (zh) 2003-05-14
CA2206685C (en) 2001-04-17

Similar Documents

Publication Publication Date Title
CN1108682C (zh) 在无状态网络协议情况下保留状态
CN1176432C (zh) 提供本国语言查询服务的方法和系统
CN1200378C (zh) 预取信息的方法,系统和服务器
CN1123836C (zh) 一种用于完成一环球网浏览器的请求的服务代理系统及其方法
US6480853B1 (en) Systems, methods and computer program products for performing internet searches utilizing bookmarks
CN1107270C (zh) 计算机网络
CN1108578C (zh) 为离线客户请求提供响应的方法及装置
CN1095568C (zh) 命名书签组
CN1142513C (zh) 动态提供内容的系统及其方法
CN1174330C (zh) 一种环球网浏览器系统
CN1199126C (zh) 用于在网络上提供内容的系统和方法
US7293012B1 (en) Friendly URLs
JP2000357176A (ja) コンテンツ索引付け検索システム及び検索結果提供方法
CN1200608A (zh) 协调服务器组之间的动作的方法
JP2005092881A (ja) 構造的に相互関係のある情報に基づいて文書をランク付けするための改善されたシステムおよび方法
KR20010111380A (ko) 인터넷 서비스 장치 및 서비스 방법
CN1717913A (zh) 中继服务器、中继服务器服务控制方法、服务提供系统和程序
CN1577327A (zh) 用于寄存和检索可以用来使缓存记录无效的数据库表格变化信息
CN1277701A (zh) 用户站与网络具体是因特网之间的通信过程及实施体系结构
CN101065729A (zh) 用于在分布式计算环境中确保服务质量的方法
KR20080038337A (ko) 네트워크 접속을 통한 장치 표시용으로 컨텐츠를포맷팅하는 방법 및 로봇
CN1606311A (zh) 用于在相互协作的不同协议环境之间提供信息的系统及其方法
JP2003006074A (ja) 反転プロキシメカニズム
US20040205651A1 (en) Transferring information over a network related to the content of user&#39;s focus
US20190266204A1 (en) Content selection widget for visitors of web pages

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C06 Publication
PB01 Publication
C14 Grant of patent or utility model
GR01 Patent grant
CX01 Expiry of patent term
CX01 Expiry of patent term

Granted publication date: 20030514