CN1117333C - 在一个计算机网络中提供通信链路的数据通信系统和方法 - Google Patents

在一个计算机网络中提供通信链路的数据通信系统和方法 Download PDF

Info

Publication number
CN1117333C
CN1117333C CN97194785A CN97194785A CN1117333C CN 1117333 C CN1117333 C CN 1117333C CN 97194785 A CN97194785 A CN 97194785A CN 97194785 A CN97194785 A CN 97194785A CN 1117333 C CN1117333 C CN 1117333C
Authority
CN
China
Prior art keywords
program
replying
request
client machine
server
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.)
Expired - Lifetime
Application number
CN97194785A
Other languages
English (en)
Other versions
CN1219257A (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
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1219257A publication Critical patent/CN1219257A/zh
Application granted granted Critical
Publication of CN1117333C publication Critical patent/CN1117333C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime 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
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • 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
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • 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
    • G06F9/546Message passing systems or structures, e.g. queues
    • 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
    • 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
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/08Protocols for interworking; Protocol conversion
    • 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/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

提供一个网关用于链接不同的通信模型。该网关可能是安装在一个服务器系统上的一个计算机程序,它便利了要求同步的通信对话的计算机程序和基于通信的一个异步模型的计算机程序之间的互操作。本发明使得一个同步连接的客户机能够再次访问与一个服务器和异步通信的程序的交互,交叉与多个应用的交互,并且将一个长期运行的应用的请求-响应对关联在一起。实际上,本发明提供了能够链接因特网WWW服务和一个通用的消息发送系统的设备和方法。

Description

在一个计算机网络中提供通信链路的数据通信系统和方法
本发明关于在一个网络中将数据通信和/或数据处理资源链接在一起,特别是关于提供不同的通信环境之间的链接。
一个计算机的‘网络’可以是任何数量的计算机,计算机彼此之间可以交换信息。可以将计算机排列为任何的配置,可以是在同一间屋子里也可以是在不同的国家,只要是存在某种方式将它们连接在一起(例如,通过电话线路或其它的通信系统),这样它们之间能够交换信息。正像可以将计算机连接在一起组成一个网络一样,通过工具,已知的网桥和网关,也可以将网络连接在一起。这些工具允许某个网络中的一个计算机与在另一个网络中的一个计算机交换信息。因特网就是不具有单一的所有者或控制者,包括大型和小型,公用和专用网络的一个网络,并且其中所连接的任何一个运行网间协议软件的计算机都要接受安全控制,都能够和任何其它的与因特网相连的计算机交换信息。这一个同意彼此连接的网络的复合集合并不依赖于单一的传输介质(例如,可能通过卫星线路,光纤中继线,电话线路,有线电视线路,和当地的无线电通信线路来进行双向通信)。
万维网(WWW)因特网服务是一个广域的信息检索工具,它能够提供对大量网络接入信息的访问,并且能够提供因特网连接的计算机之间的低费用通信。有关万维网的信息可以在Andrew Ford的“旋转Web”(International Thomson出版,London 1995)和John December与NeilRandall的“释放的万维网”(SAMS出版,Indianapolis 1994)中找到。WWW的使用正在以一个爆炸性的速率在增长着,这是因为它的适应性,可移植性和容易使用性质的结合,和它的交互式的多媒体显现能力。WWW还允许任何连接到因特网并具有适当的软件和硬件配置的计算机检索在因特网上任何位置上可以得到的任何文件。在WWW上可以检索的文件包括‘超媒体’文件—即文件可以是文本文件也可以是其它形式的媒体例如声音和图象,并且具有到其它文件的链(‘超级链’)。WWW上文本文件的格式是HTML(超文本标记语言)的标准格式,这样在另外一个平台上具有一个Web浏览器的用户可以读取在某一操作系统和硬件平台上所生成的一个文件(参看下面)。也可以将图像存储在分离的图形文件中,例如标准的GIF或JPEG格式,或在HTML文本中引用该图像,例如提示用户检索特定的图像文件和HTML文本。
用户访问这个信息是通过使用一个‘Web浏览器’或‘Web客户机’,它是安装在用户的计算机上的软件,并具有用于通过因特网从一个Web服务器中服务或检索文件的工具。目前可获得的Web浏览器包括IBM公司的WebExplorer和NCSA的Mosaic。这样的浏览器包括索引和搜索工具,并理解HTML和其它的WWW标准格式并能够以这些格式正确地显示或输出文件。这些Web浏览器的用户接口是一个图形的‘对准-并-点击’接口(即通过在一个图形显示器上移动一个光标来选择项目,然后按下鼠标的一个按钮)。WWW是以页或文件来构造的,每一个页或文件都具有一个特定的统一资源定位器(或URL)。URL标明服务器机器和机器上的特定的文件或页。用户能够指定一个特定的URL,或通过‘超链接’的方式从一个URL跳到另一个相关的URL-也就是一页上的一个字或标记可以与另一个可选的URL相关联,例如通过在相关的位置按下鼠标,使浏览器检索并显示相关的页。在一个服务器上可能有许多页,并且相关的超级链也可能位于不同的服务器上。如果一个URL是以“http:”开始,那么就表示该文件包括超级链。
当一个用户使用他的Web浏览器为一个Web服务器系统上的一页选择一个URL时,将一个单发请求发送到执行该页特定的动作的一个相关服务器。在许多情况下,服务器响应该请求是通过从存储页的一个数据库中检索所要求的页,并通过因特网将HTML页发送回WWW客户机以将其显示给用户。这是在一个单独的端对端的同步通信对话的范围内执行的。也就是,浏览器发送它的请求,然后在继续任何处理或初始化其它的请求之前,等待一个响应。浏览器在等待对于请求的响应的期间被称为‘锁定’或‘挂起’。在一些情况下,浏览器的请求将会导致服务器开始一个应用以生成HTML,但是,来自浏览器的单发请求将会再次要求本同步通信对话的范围内的一个响应,这是由于浏览器不能提供并发的通信对话,而且在请求之间不能获得应用状态信息。可以将浏览器请求访问一页失败的信号通过在用户的终端上显示错误信息的方式来发还给用户,但是如果服务器仅仅是响应的慢,那么在一个不能确定的时间段中浏览器都将保持挂起。实际上,如果延迟对用户来说是不能接受的,那么用户将会放弃通信的企图。在Web浏览器之中没有用于自动重试一个请求的工具。
现代的企业要求在企业内部的不同部门之间和相关的企业之间,例如顾客或供应商,它们可能不在一个国家之中,进行通信的工具。WWW因特网服务可能为这样的要求提供了一个部分的回答,它为公司内部的通信提供了性能价格比高的通信介质,但是如果在可接受的时限内不能获得所要求的信息,那么WWW因特网服务的单发请求-响应通信模型和缺乏对来自一个浏览器的并行请求的提供可能会体现出严重的局限性。对于将一个发送方系统无限期的挂起经常是不能接受的,并且由于商业上的关键应用的成功依赖于是否服务器应用能够及时响应一个请求,所以这也是不能接受的。WWW的因特网服务没有提供用于确保消息传送的工具,而这正是许多关键的商业应用的一个要求(也就是应用需要知道已经发送的一个消息不会在到目的地的路上丢失,并且只需要发送一次)。同样,商业应用可能涉及到在占据多个请求-响应对的会话和在Web浏览器请求之间所携带的任何前后信息的缺乏,这意味着没有工具将作为同一商业应用的一部分的请求关联在一起。
和同步模型,即与时间相关的‘请求和等待响应’的模型相对应的一种可选的通信模式是异步消息发送。不需要将向一个接收方的程序发送一个消息的程序锁定起来以等待来自接收方的应答,所以能够继续执行,并且不需要将发送方和接收方同步(串行)。异步的程序间消息发送通常使用消息队列作为中间存储工具,当从第一个程序发送时将消息放置于其中,并且当准备好时一个接收方程序可以从队列进行检索。在程序之间没有专用的逻辑连接。在将一个消息放置于一个队列中之后,发送方程序能够继续执行其它的任务,这些任务也可能涉及到向网络中的其它程序发送消息。已知在本技术中提供了异步消息发送系统,它支持在异构型网络中程序间的通信,并且该系统使应用程序(对于一个特定的操作系统环境都要写一个应用程序)避开了网络的复杂性和维护和定位消息队列的工作。对于许多商业企业来说,这样的消息发送系统是重要的,它们需要在它们的各种各样的商业应用程序之间获得高效的互操作,但是它们的数据处理资源却包括一系列完全不同的操作系统和硬件环境。
在“使用MQI进行消息发送和排队”S.Blakeley,H.Harris & R.Lewis,McGraw-Hill,1994中,从IBM公司可以得到的出版物:“消息发送和排队的介绍”(IBM文件编号SC33-0805-00)和“MQSeries-消息队列接口技术参考书”(IBM文件编号SC33-0850-01)中都对消息排队和商业上可以得到的消息排队产品进行了描述。IBM和MQSeries是IBM公司的商标。IBM的MQSeries消息发送软件产品提供了对于事物处理的消息发送的支持,依据一个消息发送协议在所工作的逻辑单元内同步消息,其中的消息发送协议确保一次并且仅仅一次传递消息,即使是在系统或通信故障的情况下。MQSeries产品并不是通过直到接收方系统确认了安全的存储后才将消息从发送方系统的存储器中最终删除,而是通过使用复杂的恢复工具来确保传递。在消息的传送提交之前,一旦确认了成功的存储,在发送方系统从存储器中删除消息和在接收方系统将消息插入到存储器之中都保持‘不确定’并且在故障的情况下能够自动逆序恢复。在国际专利申请WO95/10805和美国专利5456328中,都描述了这种消息传输协议和相关的事物处理的概念和恢复工具。
希望能够将异步(脱机)处理的优点带到适合于同步通信的计算资源中,例如WWW因特网服务的客户机系统,并且通常能够在基于一个通信的异步模型的资源和基于同步模型的资源之间进行互操作,并且最好不需要对已存在的同步资源进行大的改变。也希望能够方便的对来自同步连接的客户机系统的异步消息的处理进行跟踪。
除了将他们的计算资源链接进因特网之外,公司也发现在‘企业网’中执行因特网标准(网间协议,使用HTML等等)也是有利的,也就是在特定企业的一个计算机网络之中遵守因特网标准。在企业网之中现在也可以使用浏览器软件。
上面的要求代表了数据处理资源的许多用户对于在不同的资源之间互操作的要求,而不管这些资源是否适合于不同的环境或基于不同的通信模型或体系结构。为不同的操作系统所写的或是基于不同的通信模型的应用程序或范例,和使用不同的通信协议的计算机和其它的通信系统,数据格式,语言,或通信模式都越来越要求进行无缝的互操作并且终端用户不需要具有有关交互的复杂的知识。本发明服务于解决互操作所需要的资源之间固有的非兼容性,提供在不同的资源之间的链接。
依据本发明的第一个方面,提供了通信网络的一个数据通信服务器系统,其中服务器系统具有支持与在网络的服务器系统和一个客户机系统之间进行同步通信的工具,并且其中服务器系统也具有支持与服务器系统或在网络中的其它系统上的程序(例如应用程序)的异步通信的工具,所述的服务器系统包括:
用于响应于来自所述的客户机系统的在客户机系统和服务器系统之间的同步通信对话之中的一个请求,向服务器系统或网络的另一个系统上的一个程序发送一个请求(它与客户机请求相关),作为一个异步通信的装置;
用于响应于对所述异步通信的应答的接收,将所述的应答与所述的来自客户机系统的请求相关联,以使得将一个应答发送到客户机系统的装置;
用于在接收对所述异步通信的应答之前生成一个预先的应答的装置;和
用于在所述的同步通信对话之中向所述的客户机系统发送至少一个预先应答的装置。
这样,依据本发明的一个系统具有这样一个装置,用于在同步通信对话中向客户机发送至少一个预先的应答,即使并没有接收到对异步请求的应答。
本发明的第二个方面提供一种方法,该方法使用上述的服务器系统的工具,在一个客户机程序和服务器系统或网络中的其它系统上的一个程序之间进行程序间的通信。
本发明使得客户机系统的一个处理能够与异步通信的程序相通信,即使是客户机处理要求一个专用的同步通信对话用于程序间通信。服务器系统或网络中其它系统上的程序可能是适合于接收和发送异步消息而无须专用的通信对话的一个应用程序。同样在初始的同步对话中发送到客户机系统的预先应答提供了一种用于确认服务器系统已经接收到该请求的方法。如果服务器系统是提供服务器之间确认的消息传输的服务器的网络的一部分,但是同步连接的客户机系统不为客户机和相连接的服务器之间的通信中继段提供确认的传输支持,那么提供跟踪是否一个请求已经成功的到达了服务器也是非常理想的-也就是跟踪经过通信路由的非确认链接的通信。
最好在预置的时限(例如系统管理员所定义的一个时限)不能得到‘全应答’用于向客户机系统发送的时候只发送‘预先的应答’。也就是,到了预置的时限的时候,如果还没有从一个异步通信应用程序中接收到一个应答,这样服务器也就不能提供所要求的全应答,那么触发服务器的一个处理来向客户机系统发送一个预先的应答。预先应答最好包括由服务器系统所分配并且在服务器系统中是唯一的一个对话识别符。
在对客户机系统的预先应答中包含对话识别符使得客户机系统(或工作在客户机系统的终端用户)能够在以后使用该对话识别符再次与该服务器相联系,以确定是否还能够获得与这个对话识别符相关联的一个响应,其中的客户机系统不能在超时之前从一个应用程序或其它的异步通信程序之中接收到一个所希望的全应答。已经接收到一个预先应答的客户机然后能够继续其它的处理任务,并且在以后的某时间使用对话识别符,再次访问与服务器的交互。这就避免否则会引起的同步连接的客户机处理或者必须保持锁定(不能确定的时间段)以等待一个响应或者如果不能足够快的获得一个响应就必须放弃该应用的问题。
依据本发明的优选实施方式,发送到客户机系统的一个响应于定时器终止的一个通信便利了由客户机的一个处理或用户作出决定是否应该挂起客户机系统的一个同步连接的处理(即保持当前的对话)或是应该放弃该对话。如果放弃了该对话,客户机处理可能会通过对话识别符再次访问前面的交互;发送到客户机系统的识别符可能被包含在后续的发送到服务器系统的一个请求之中,这样服务器能够识别任何可得到的对于前面的具有同样的对话识别符的请求的响应。这样,在一个超时后,要求专用的通信对话的一个客户机就能够确定是否保持它与服务器的同步连接或是使用相关的同步对话变换到与服务器的有效的异步通信,或简单的一劳永逸的放弃该通信。这样就向客户机提供了除保持无限期的挂起或放弃应用以外的选择。
和使一个客户机能够再次访问前面的交互一样,对于一个特定的交互,为一个客户机提供一个对话识别符便利了客户机将一次会话的大量请求-应答对关联在一起,即使客户机系统的通信处理是基于单发的请求-应答模型的。它也可以帮助解决在客户机等待一个应答时客户机和服务器之间可能出现的链接故障的问题。它也允许一个客户机处理或用户交叉与几个不同的应用的交互,这是通过提供一种能够区别不同的应用的手段来实现的,并且能够使多个用户同时访问同一个应用。一旦接收到一个预先应答,客户机系统可能自动存储对话识别符,用于如上所述的后续使用。
上述所使用的术语‘客户机’和‘服务器’主要是为了区别它们在一次特定的交互中所完成的作用-即客户机发布一个请求,服务器采取行动响应这个请求。任何执行其它的计算机的请求任务的计算机都是一个服务器。术语‘客户机-服务器’经常被用在数据处理领域来指某一环境,其中一个客户机(例如一个工作站)仅仅为终端用户的交互提供功能而一个服务器(例如主计算机)提供数据存储和访问并且执行复杂的处理。本发明适用于这样的‘客户机-服务器’环境并且也适用于‘对等’环境,在对等环境中通信系统所提供的功能之间没有这样的区别。本发明在这样的情况下是特别有价值的,其中在第一个系统上的计算机程序特别适合于同步通信,并且它希望程序能与运行在不同系统上的适合于异步的程序间通信的一个应用程序相通信,例如一个Web浏览器希望通过一个消息排队系统与一个异步的应用程序进行互操作。
依据本发明的一种优选实施方式,如果服务器在预置的时限终止之前接收到一个对它的异步请求的应答,那么它将来自所接收到的应答的信息包括在它的对客户机系统的应答之中,其中服务器是在同步对话中发送该应答的。如果足够快的获得来自应用程序的应答,并且然后客户机在同步对话中发送一个全应答,那么与应用程序的通信的异步特性将是不可见的。
本发明的一种实施方式通过向客户机系统返回对客户机请求的接收的一个预先确认,而无须等待一个定时器终止,而避免了锁定一个客户机处理。接收的确认包括由服务器系统的一个处理所分配的一个对话识别符(例如一个唯一的参考号码)。在这种情况下,客户机一接收到它的确认就可以继续其它的任务,而无须被挂起等待一个全应答或是定时器的终止。当随后从应用程序接收到一个应答时,将它放置在服务器的存储器中,并保持直到客户机又发送一个通信到服务器时为止,服务器引用所分配的对话识别符。服务器将所存储的应答的对话识别符与新的请求相匹配,然后向客户机发送所存储的应答。
依据请求的特性确定对于客户机请求的应答的类型也在本发明的范围之内。一些请求,例如商品订购,可能要求对接收到所分配的订购号码的立即确认,这将最小化客户机处理所挂起的时间。其它的请求。例如一个银行的余额查询,在提供所要求的信息之前,可能不要求对请求的接收的确认,照这样,经常仅仅是如果可以快速地获得信息才会要求这样的信息;在这样的一个例子中,对于客户机,为一个全应答等待一个确定的时间段是合适的。是否发送一个立即确认的决定最好是通过向终端用户提供一种方法表示希望得到确认来实现的,例如在请求的格式中提供一个任选的字段或参数,并且提供响应这个字段中的入口的方法。
最好由服务器系统的一个处理将对话识别符与来自一个客户机系统的的请求相关联,服务器系统将对话识别符嵌入到相关的异步请求中,并将该异步请求发送到一个应用程序。这样,异步的服务器请求包括来自初始的客户机请求的信息和所分配的识别符。当该服务器系统接下来从应用程序中接收到一个应答(该应答包括这个对话识别符)时,服务器将这个应答与来自客户机系统的请求相关联,并向客户机系统发送一个包括有对话识别符的应答。注意在这里服务器可能分配一个对话识别符给与客户机处理的一个交互,该客户机处理本身并不支持多重的并发对话。一个对话识别符的交换,和客户机系统的存储器的使用便利了存储对话识别符,将该识别符返回给该客户机系统,使得客户机系统能够使用这些识别符来区别并发的对话。该客户机也能够交叉与多个不同的应用之间的交互,因为它具有区别它们的方法,并且服务器也可以容易地将对异步消息的应答与各自的请求相关联。为应用的并发或并行处理的这样提供能够显著地提高商务效率。
本发明使得为单发同步通信所设计的通信资源能够与利用异步通信的资源进行互操作。
对于依据本发明的一个系统和方法,最好是支持在一个客户机系统和一个应用程序之间的交互的串行化。这可能是通过对话状态信息的方式来实现的(例如识别并发对话中的交互的位置的一个顺序号),将该信息包括在来自应用程序并被传递回客户机的消息之中。一个应用将通过在它的应答中的对话状态信息来表示要求客户机系统进行进一步的输入,这个信息对于服务器和客户机系统中两者中的一个或两个都是可识别的。通过对话识别符和对话状态信息,有可能识别出一个特定应用的相关联的请求-响应对,该应用可能涉及到几个连续的用户交互,并且有可能保证在一个对话中通信的正确的顺序排序。
最好是将对话识别符包括在在一个定时器终止之后发送给一个客户机的通信之中和从一个希望与客户机进一步的交互的应用发送给一个客户机的应答之中。依据一种实施方式,在服务器系统确定是否在应答中包括对话识别信息,该确定处理最好是响应于一个通信应用程序所发送的对话状态信息,并且响应于定时器的终止。如果不希望从客户机(即从客户机系统的一个终端用户或处理)得到更多的输入,那么服务器系统在传递一个应答给客户机的时候释放任何的特定对话的资源,并且不要求对话识别符。
考虑到可能出现的将对话保持比所必要的更长的一个时间段相关联的问题,这个确定处理是有意义的。首先,保持对话使用的是服务器系统资源。第二,在一系列请求-应答交互的最后一个中返回识别符信息能够将识别符信息无限期地保持在客户机系统的存储器中。这可能与使用客户机资源一样是一个秘密的公开。如果总是将识别符信息返回到客户机系统(即没有实现上面所提到的确定处理),那么上面所提到的问题是通过在一个适当的时限后删除来自客户机系统的状态信息来解决的。
本发明的一种优选实施方式提供了一种数据通信系统,其中服务器系统具有因特网万维网(WWW)服务器软件安装在上面,并且客户机系统具有WWW浏览器软件安装在上面,用于向因特网连接的服务器系统提交请求。服务器系统也具有支持在不同的应用程序之间异步消息通信的工具。当服务器系统从所述的WWW客户机终端接收到HTML请求时(在一个同步通信对话中)时,这些请求要求与一个为异步通信所设计的应用程序进行交互,服务器系统的一个处理将该请求作为发送到应用程序的输入队列的一个消息前向发送到应用程序。如果应用程序不能解释HTML,那么服务器的处理将所接收到的HTML请求转换为一个应用程序可以识别的消息格式,然后前向发送转换后的消息。响应于在一个预置的时限之前从应用程序接收到一个应答消息,服务器系统的处理将应答消息转换回HTML(如果有必要),并且将所生成的HTML页作为一个应答发送给客户机终端。从WWW客户机的角度来看,如果在一个超时时间段终止之前获得应答,那么该应答是在初始的同步通信对话之中。
服务器系统中包括用于将对话识别符信息嵌入到HTML页之中的装置,HTML页被包括在发送到所述的客户机系统的应答之中。服务器系统最好也包括,响应于包括在应用程序对异步请求的应答中的对话状态信息,用于在HTML页中包括一个或多个由一个终端用户所完成的HTML格式的装置,这些格式都有对话识别符嵌入在其中。对话状态信息也可能嵌入在HTML页中。
服务器通过向WWW客户机终端发送一个通信(即一页HTML),在从应用程序接收一个应答消息之前,响应于时限的终止。这个通信包括一个对话识别符并且最好包括一个对话状态的识别符。发送回客户机的通信结束了它的同步HTTP对话,并且WWW客户机不再被挂起,但是客户机与网关的更长时间运行的通信‘对话’在逻辑上仍然存在的,这是由于仍保留着信息,这使得能够再次访问WWW客户机和网关程序之间的交互。一个终端用户能够确定是否再进入挂起的状态一个附加的时间段并开始一个新的同步对话。将对话识别符和状态信息存储在WWW客户机系统的高速缓存中,使用WWW客户机的工具来高速缓存WWW页。WWW客户机能够使用这个被高速缓存的信息来再次访问以前的交互-以在后面的某一时间检查是否可以在服务器从应用程序获得一个应答消息。通过将对话识别符和对话状态信息包括在后续的对服务器的请求之中,其中请求与初始的对话相关联,客户机使得服务器能够区别不同的对话和不同的请求,而它们是同一个应用的一部分。
依据已知的技术,上述的本发明的实施方式提供从HTML向非HTML消息格式的转换。在所调用的应用就能够解释HTML的地方,显然不要求这样的转换。
这样,采用一种优选的实施方式的本发明,提供了WWW的同步环境和消息发送系统的异步环境之间的链接。本发明也适用于使用浏览器软件,通过一个企业网的服务器系统与应用程序进行通信。
现在将参考附图,通过例子更加详细的描述本发明。
图1是通过因特网在客户机和服务器系统之间的通信的图解表示。
图2是使用异步消息发送和排队的程序间通信的图解表示。
图3是依据本发明的一种优选实施方式,表示了安装在服务器系统上的一个网关程序,用于在一个同步连接的Web浏览器和一个适合于异步通信的应用程序之间进行交互。
图4依据本发明的第二种实施方式表示了一个网关,浏览器和应用程序之间的互操作;和
图5依据本发明的一种实施方式,表示了当从一个Web浏览器程序发出一个请求时,主要由服务器系统的一个网关程序所执行的操作的流程图。
本发明可以在许多不同的数据处理系统和通信系统中实现,在这些系统中要求在不同的环境之间的链接。本发明并不限定于特定的计算机硬件或操作系统或特定类型的通信链接,并且可能是以硬件或软件或是硬件和软件部分的联合来实现本发明。
本发明的一种优选实施方式包括服务器系统的一个软件实现部分,它提供在一个异步消息发送和排队环境和万维网的同步环境之间的一个链接。
如图1所示和上面所述,因特网的终端用户装备有计算机10,该计算机具有因特网访问能力并具有Web浏览器软件20安装在其上面。一个Web服务器系统30包括一个计算机系统(这些系统可能例如是运行WindowsNT操作系统软件或UNIX操作系统软件,或者可能是一个运行OS/2操作系统软件的IBM PS/2型80计算机,或是支持IBM的MVS操作系统的一个大型机系统)与因特网连接并且运行Web服务器软件40(例如IBM的因特网连接服务器)。OS/2,MVS和PS/2都是IBM公司的商标。Web服务器软件服务于来自Web浏览器的HTTP(超文本传输协议)请求,将它们分解为或是对静态HTML页或是对可执行程序的一个请求,或通过发送一个有效的HTML页(例如保持在磁盘存储器中)到Web浏览器或通过调用一个程序50在Web服务器系统上或在一个不同的系统上运行以生成HTML来进行响应。由一个Web服务器通过公用的网关接口,CGI60,或者由Web服务器实现的另一个接口(大多数Web服务器支持两种接口,其中一个是CGI)来调用程序。
图2是简化了的在队列管理器程序例如IBM的MQSeries程序的网络控制下,使用异步消息发送和排队进行程序间通信的图解表示。一个队列管理器是系统服务,它提供了应用所使用的消息排队工具。如图2所示,系统110上的一个第一个应用程序100发布了一条指令以在一个本地队列管理器120和运行在一个远程系统160上的一个通信队列管理器130的控制下将一个消息放置到一个队列140上。一个服务应用程序150接下来在它准备处理消息时将该消息从队列140中取出。商业应用可能是例如一个银行资金转移或一个航空座位预订应用。信息队列是命名的对象,在其中积累消息,并且以后从中移去消息。
对一个特定队列的维护是某一个特定的队列管理器的职责。一个消息队列不仅仅是一个堆栈:当将消息加入到一个队列时将它们加入到末尾,当从一个队列中取出消息时正常的是从前面取出。消息队列的物理表示依赖于环境,但是可能是主存储器中的一个或多个存储器,磁盘或其它的永久性存储装置上的一个或多个文件,或这两种都包括。消息队列的物理管理完全是一个队列管理器程序的职责,并且这样的细节对于应用程序并不明显。应用可以将一个消息队列简单的看成一个积累消息的‘黑盒子’。应用通过使用消息排队API调用来访问消息队列,以与队列管理器相通信,该管理器与应用安装在同一系统上(即本地队列管理器)。
应用程序通过同意使用特定的命名消息队列,发送消息到特定的应用程序已经同意从其中进行读取的目标队列来进行通信。对于发送消息的应用,这些队列的位置不需要可见;每一个应用仅仅与它的本地队列管理器相交互,并且是互连的队列管理器的网络负责将消息移动到预定的队列。每一个队列管理器维护本地的路由选择表,用于定位网络中的其它队列管理器。这样,支持应用的消息排队软件大大的简化了复杂性的级别,这正是应用程序所要求的,从应用程序中删除了它们实现自己的复杂通信控制的需要。
本发明为在本地系统上没有安装队列管理器程序的用户提供了对这样一个互连的队列管理器的网络的访问。本发明也提供了开发复杂的可靠的WWW应用的一个环境,其中WWW应用能够从已存在的应用使能的中间软件程序的服务中获益,例如IBM的MQSeries产品。
提供在以软件实现的链接部分安装在一个WWW服务器上,以为同步连接的终端用户发布和接收消息。这个链接部分,以后称为网关程序,如前面所描述是由来自Web浏览器的请求所调用的。与WWW服务器的网关程序接口例如是通过标准的CGI(通用的网关接口)。网关程序使得能够管理多个并行用户和他们的状态,如下面所述,并且管理同步HTTP和异步消息之间的差异,向同步连接的Web浏览器提供有关异步消息的进展的信息。网关程序也管理在确定的传递消息发送系统和非确定的HTTP通信之间的链接。尽管由于不同的体系结构和硬件平台具有不同的数据表示和参数,可能要求进行数据转换(例如ASCll向EBCDIC的转换),在本技术中这种转换是已知的,并且不要求由网关程序来实现转换,是由已知的消息发送软件产品来处理转换。也不要求网关程序提供全面的安全性工具,这是因为在已知的消息发送软件和WWW服务器(例如IBM的安全因特网服务器)中实现了这样的工具。
图3表示的是在安装在一个计算机系统230上的一个消息队列管理器程序210和一个Web服务器程序220之间的一个网关程序200接口。如这个例子中所述,可能使用网关程序在Web服务器和一个消息排队应用程序240之间进行接口,应用程序240可能是运行在除服务器系统230以外的一台机器上。在这种情况下,在服务器系统上可能不要求应用软件。消息排队应用所运行的系统可能通过因特网或其它的通信网络与服务器系统相连接。这个例子中的应用程序能够解释来自Web浏览器250的HTML格式的数据,并生成HTML页作为应答。
与安装在Web服务器系统上的格式转换应用部分260相关的网关程序的一个类似的使用如图4所示。转换部分服务于在Web浏览器的HTML请求和应答与不能够解释HTML的应用程序270的内部消息结构之间的转换。这个转换部分260能够将依据本发明的一个网关程序200与已现存的消息排队应用一起使用。一个服务器部分还能够在工作的一个单元中协同对多个目标应用的请求,和对于Web浏览器的一个应答。HTML转换在本技术中是众所周知的,这里不再进一步描述。
现在将参考图5描述网关程序和Web浏览器和一个异步应用程序之间的通信流程。为与网关程序相关联的每一个消息排队应用软件定义一个或多个应用输入队列。这个应用和它的输入队列可能位于Web服务器机器或任何相连的使用消息排队中间件的支持与服务器进行通信的机器上。网关具有一个位于在服务器上的应答队列,并且是由一个本地队列管理器程序所管理的,用于从应用程序发送消息。
一个用户通过一个HTML插入式的GET或POST请求300来与网关程序进行交互,请求300表示的是用户所希望使用的消息排队应用和服务的名称。在本发明的优选实施方式中,该名称包括应用队列名称,但是在一种可选的实施方式中,这个是从网关程序中从应用名称获得的。
下面是一个用户调用的一个应用的一个实例指令:
<form method=“post”action=“/mig-bin/migcgi/MAQApp”>
指定一个消息排队系统:
<input type=“input”;name=“QMName”;size=“48”;maxlength=“48”>
和一个应用:
<input type=“input”;name=“QName”;size=“48”;max length=“48”>
<input type=“submit”;value=“Click here to start the application”>
</form>
要求QName来为所生成的异步消息指定目的地,并且通常是用应用本身来识别。QMName是任选的。如果指定,将QMName与QName一起使用来为消息指定目的地。如果没有指定,那么使用一个空白名称。可以应用标准的消息发送系统名称分解规则。也可以将包括有特定应用字符格式数据的附加字段包括在格式请求中。将这些字段在由网关所提交的消息中传递给应用。
用户与一个应用程序(应用‘入口点’)的第一个交互典型的情况是来自于一个静态HTML Web页。用户将一个特定的URL去关联或提交300与网关程序相交互的一个HTML格式。浏览器的初始HTML请求不包括嵌入的对话识别符。当一个用户第一次通过这样的一个入口点(即发送一个HTML请求,该请求不属于一个已存在的对话)并初始化一个应用时,网关程序构造一个对话340,由一个对话识别符来识别该对话,在网关中该对话识别符是唯一的,以表示用户请求的应用和请求的实例之间的结合。以充足的自由度或使用唯一的服务器识别来生成对话识别符,以确保对于整个网络每一个对话识别符都是唯一的,但是这并不是主要的。已存在的消息队列管理器程序(例如IBM的MQSeries程序)具有工具来生成唯一的识别符,并且本优选实施方式中的网关程序利用了这一工具。
网关将对话识别符信息与客户机系统或用户识别信息一起加到350一个对话表中(作为一个消息队列的入口来实现的,该队列例如是保持在运行OS/2或AIX操作系统程序的一个服务器系统的交叉处理的共享存储器中,或写到磁盘存储器中)。OS/2和AIX都是IBM公司的商标。接下来使用这个表将对话识别符与用户请求和应用程序响应相关联,如下所述。除了以这种方式通过一个应用入口点以外,这里没有提供其它的方式开始一个应用。一个用户交互只能够属于一个对话。
已经分配了一个对话识别符给用户的交互,网关程序然后将一个消息放置360到应用程序定义的输入队列上,启动370一个定时器并初始化370一个处理以从应用程序接收一个应答消息。下面将描述对应答的接收。消息包括以识别在发出请求的客户机处理和应用程序之间的整个通信中的这个交互的位置的一个顺序号码的形式的状态信息,并且包括一个用户或客户机系统的识别和Web浏览器提交的输入数据。将这个数据以适当的字符集和代码页的形式呈现给应用(由服务器系统上与网关程序本身相分离的一个处理所执行的转换)。一个消息的目标可能是一个长期运行的消息排队应用,或者它的到达可能被用于触发一个消息排队应用以将其启动。如上所述,可能实现本发明,‘Web意识的’应用(也就是能够理解并生成HTML页)和要求HTML转换的应用一起使用。下面的对于本发明的一种实施方式的描述和与一个Web意识的应用的交互的例子相关。
消息排队应用应该通过发送一个HTML页到网关程序的应答队列来响应所接收到的消息。如上所述,网关程序已经调用一个处理用于在接收时从它的队列中取出这些应答。这是使用一个已知的互操作消息排队程序来实现的,其中可选择地从一个队列中取消息的一条指令包括一条指令,如果在第一次试用Get操作时不能立即获得应答,等待一个特定的时间段。在IBM的MQSeries队列管理器产品中,这个工具是作为Get Message API指令的一个选项来被调用的,“MQGET-Wait”,正如前面所提到的出版物“MQSeries-消息队列接口技术参考书”(IBM文件编号SC33-0805-01)中所描述的那样。网关程序发送一个消息并发布370一条命令以检索应答消息,留下队列管理器程序控制实际的Get Message操作,该操作从应答队列检索420 HTML页并将它传递到网关。网关程序然后向浏览器发送420 HTML页,在该HTML页中包括有当前的对话识别符作为HTML中的一个隐藏字段。
如果在网关程序已经获得应答消息之前Get Message操作的Wait间隔就终止了的话,那么Get Message返回并且网关程序通过发送390,400一个预先的应答消息到浏览器以进行反应。这个预先的响应完成了同步对话,但是由于它包括有一个对话识别符,该对话可能在以后‘重新开始’(严格的说是开始一个新的对话,但是这是同一浏览器和网关程序之间的交互并且引用的是同一对话识别符,所以我们可以将它看作初始对话的重新开始)。如果在接收到应答之前就放弃了WWW浏览器和网关-连接的WWW服务器程序之间的同步对话,那么网关取消任何来确定的GetMessage操作。任何在一个超时或其它的放弃对话之后放置到网关程序的应答队列之上的应答消息都将会保持在队列中,直到例如WWW浏览器为寻找相关的应答消息与网关再次相交互时为止。当接收到这样一个后续的WWW浏览器请求时,网关程序将再次调用Get Message操作(与等待间隔)。
并不是在对话中发送到一个客户机的所有通信都包括对话识别符,但是在任何希望得到与客户机的进一步交互的时候都要包括识别符。这通常是在当在一个超时之后并且在获得应用的应答之前发送400一个通信的时候,或者是在接收到一个应用应答并且所包括的对话状态信息确定了希望与客户机的进一步的交互的时候。网关程序通常在从一个应用程序接收一个应答时用相关的对话的对话状态信息来更新420它的对话表。但是,如果应用不要求与用户或客户机系统处理的更多的交互(由对话状态信息进行识别,或在来自应用程序的应答中缺少),那么网关程序在将页传递到浏览器时释放420任何的特定对话的资源。
在当前的应用程序‘希望’或要求与客户机进一步交互的时候(即希望在整个的应用结束之前客户机与当前的应用程序或另一个应用程序进行交互),是通过在对服务器的应答中的一个标记进行表示的。它也在发送到客户机的HTML页中包括HTML格式,并将对话识别符嵌入到每一个动态生成的HTML格式中。
Web浏览器具有用于高速缓存410页的工具并且这样能够存储嵌入的对话识别符,并且这使得对于一个单一的用户能够具有不止一个打开的对话。这些对话可能被嵌套或可能彼此重叠。当接下来在浏览器填充300一个包括有一个对话识别符的格式的时候,对话识别符将返回到服务器的网关程序这样网关程序能够将接下来接收到的格式与正确的对话相关联起来320,330。对话识别符用于将该请求与来自其它用户的其它的请求,和来自同一用户但属于不同的应用的其它请求区别开来。作为网关程序的一部分的一个处理扫描320对话表,以将一个表的入口和对话识别符和一个接收的请求的对话状态信息进行匹配。如果对话和状态信息不与已存在与一个应用的交互相对应的话,那么网关程序将状态信息和输入数据作为一个消息放置360到应用输入队列,如上所述。然而,如果将一个接收到的请求的对话和状态信息与对话表中的入口相比较发现了一个匹配的时候,那么这一定是以前的一个请求的重试,并且可能已经获得了一个应答。那么就不应该发送一个新的消息到应用,这是由于是依赖相关的一个或多个队列管理器来提供先前发送的消息的确定的仅仅一次的传递;网关程序调用370 Get with Wait操作检查它的应答队列以得到所希望的应答消息。
为一个用户交互分配一个对话识别符,然后将识别符返回到浏览器并存储在那里,这解决了大量的技术问题。首先,它使得多个用户能够在同一时间访问同一应用或服务,网关能够区别出它所接收到的应答。第二,它确保了在连续的请求之间传送充足的前后信息,其中连续的请求是由每一个用户发布到每一个服务器应用的,这样以将一个应用的连续运行的多个请求-应答对关联在一起。第三,通过提供一种在区别应用的机制,它使得用户能够交叉与多个不同的应用的交互。第四,它提供了用户在任何阶段放弃一个应用的可能性,可能不需要向服务器或网关程序给出任何标志信息,并且报告用户和服务器之间链接的故障率。
和包括对话识别符一样,动态生成的HTML将包括一个顺序号,用于识别在当前的对话的交互的位置。通过下一个的浏览器请求,将这个位置返回到网关程序,网关程序将对照着所希望的值检查它320。这个机制,使用制表的对话识别符和顺序号来维护数据和执行状态前后关系,使得能够执行彼此相关的客户机请求序列-服务应用以区别出在同一对话中的多个消息。
可能以下面的一种方式结束一次对话:
°一个服务器应用在它的应答消息上表示不再要求更多的用户输入,并且网关通过释放420特定对话的资源来进行响应。
°将包括一个格式的一个HTML页发送到用户,但是没有填充该页并且在管理员所定义的时限内返回。网关发送一个终止消息到服务应用,该服务应用希望从用户得到一个应答(避免对未完成的服务应用进行不必要的维护)。
°当服务应用在一个接受的时间内没有响应消息时,用户通过与网关程序进行一个对话来选择放弃应用。网关程序企图在检索它所发送的消息。如果不能,它向服务应用程序发送一个取消消息。
对话终止允许网关程序和服务程序释放它们所分配的任何特定对话的资源。在对话已经被终止之后,如果再从用户或服务应用发送一个对话识别符到网关程序,将会被拒绝(即除了一个拒绝标志信息之外将不会再触发通信)。注意由服务器所控制的超时时间段的终止决定了客户机处理应该保持挂起的时间段,但是不自动终止对话。然而,在这样一个超时之后,网关程序仍然保持对话识别和状态信息。
消息队列管理器程序是已知的,它具有工具用于确保将网关程序的消息传递到应用输入队列并将响应返回到网关程序(见下面)。然而,消息队列管理器程序不能保证一个特定的时间通信链接在起作用或者应用本身将运行以处理来自浏览器的一个请求。队列管理器程序也不能提供向Web浏览器的确定传递,该浏览器连接到队列管理器的一个网络。如所述的,网关程序通过将一个消息放置到一个服务器应用的输入队列来对进入的Web浏览器请求进行反应。当第一次将消息放置到队列时,网关程序开始370一个倒计时定时器并等待来自服务器应用的一个应答。如果在从应用程序没有接收到任何应答之前定时器就终止了,网关程序生成390一个HTML页以通知400用户该终止。
这样,如果在系统管理员定义的时限终止之前,网关程序没有从应用接收到一个应答的话,将该网关程序配置为向浏览器发送一个它自己的应答。依据相关的应用来设定客户机挂起的最大时限(10秒或1秒可能是合适的)。这个应答的主要的目的是向用户或客户机系统的通信处理提供信息使得能够决定是否保持当前的通信对话以等待一个响应,或是撤消对话(但是保持与对话相关的信息)并继续其它的工作项。这个向客户机的应答可能是简单的向终端用户的一个提示(例如触发与定时器终止相关的一个屏幕信息),但是依据本发明的优选实施方式,定时器触发的对于浏览器的应答也表明是否目标机已经接收到请求并且是否应用已经读取了该请求。消息队列管理器程序是已知的,它提供了Confirm On Arrival和Confirm On Delivery报告。依据本发明的优选实施方式,网关程序适合于使用可获得的报表工具来构造它的定时器-终止标志信息,这样标志信息能够包括所有有关对话的通信处理的可获得的信息。
实现预先的响应作为网关接收客户机系统的请求的一个立即的确认,这也是在本发明的范围之内。这个确认将终止本次同步对话,但是包括对话识别符并且这样使得客户机能够在稍后的时间再次访问该交互。尽管在这种情况下,不会挂起客户机处理等待来自一个异步请求的程序的一个响应,但是由于通信连接或通信系统本身的问题,仍然存在着请求和接收确认之间的延迟的可能性。如果没有接收到确认,当应该放弃客户机请求的时候,这里可能使用一个客户机超时时间段来自动化,但是对于某一应用,可能将决定什么时候放弃一个客户机请求留给终端用户来决定,对于已存在的Web浏览器软件的用户来说这是熟悉的。
这也在本发明的范围之内,在网关程序之中提供一个处理,它响应于从客户机系统接收到的一个请求的‘类型’以确定是否要求一个立即的预
先响应或是应该使用设备挂起或是超时时间段,目的是如果可能在这个时间段中提供一个完全的响应。依据本发明的一种特定的实施方式,网关程序具有缺省使用的一个配置的超时值。这个值保存在安装有网关的服务器系统上的一个配置文件中,当安装网关程序时可能设定了这个值并且可能接下来由系统管理员来修改这个值。在HTML格式的请求中可能还包括有一个任选的参数(类似于QName和QMName参数),该参数替代了这个缺省值。使用先前所提到的例子,如果设计一个HTML格式来提交一个商品订购,它要求对于请求的一个快速的应答确认接收,那么在请求的格式中编码有一个小的超时值;如果是关于银行结余的请求信息,它不要求这样的快速的确认,那么可能编码一个较高的值(可能是对应于用户所希望忍受的最长的等待时间的一个值)。
在国际专利申请WO 95/10805和UK专利申请公开号GB2311443中描述了用于提供确定的消息传递的消息传输协议,这里将它们作为参考收入进来。尽管基本的网络支持通常确保了机器之间可靠包传递,但是在一个不可靠的通信介质上,通常不能确保传递。为了确保数据发送一次并只发送一次,并且在主要的机器或网络发生故障以后,能够重新开始并正确地恢复通信,要求包的传递具有多个基础网络支持。特别是,在一个确定的传递系统中双方都必须记住已经成功的发送了哪个数据并已经‘加硬’。加硬是指将数据写入到一个存储介质中的处理,例如一个磁盘,以确保如果发生一个硬件故障时可以恢复。在“使用MQI进行消息发送和排队”B.Blakeley,H.Harris& R.Lewis,McGraw-Hill,1994一书中的209到217页之间详细的描述了在消息排队系统中的资源恢复的规定。
一个商业应用可能会涉及到几个服务应用,需要通过交易处理方式来协调他们的行动。这个问题是由服务器系统中的消息队列管理器程序来解决的。网关程序发送一个消息到单独控制的消息排队应用程序,如果需要该程序然后将该消息分解为对各个服务应用的单独请求。可能发送这些消息,并且由消息队列管理器程序在交易处理控制下将它们复合起来。在本技术中,具有提供这种交易处理控制工具的消息发送程序是已知的(例如IBM的MQSeries消息发送程序)。
网关程序的设计允许增加额外的服务应用以处理增长的需求-即依据本发明的优选实施方式的解决方案是可调解的。这个是通过由网关程序在每一个异步消息的消息描述信息部分包括对话识别符来实现的。(消息描述信息包括定义消息的属性的信息,并且消息排队服务使用它以决定应该怎样处理消息。消息本身包括两个不同的部分-一个应用数据部分和一个消息头部分,消息头部分包括对应用数据起辅助作用的消息描述信息。)这就允许几个服务应用程序对照着一个单一工作队列并行的运行。如果应用需要保持它自己的在连续的交互之间的前后信息,它可以检索与它的对话识别符相匹配的消息。如果不需要保持前后信息,那么服务应用的实例可以检索并处理它们所发现的第一条消息。
依据优选的实施方式,本发明便利了在因特网WWW服务和通用的消息发送系统的链接,不需要对已存在的Web浏览器做修改,但是本发明并不限定于这种实施。也可以实施本发明来提供任何两个数据处理系统之间的链接,其中安装在一个系统上的计算机程序要求同步通信而另外的系统上的程序要求一个异步形式的通信。依据优选实施方式,与消息发送软件例如IBM的MQSeries一起,本发明也提供对于不支持网间协议(IP)的网络的网桥,这是由于MQSeries支持TCP/IP,APPC和NetBIOS通信协议。这样本发明方便了IP和非IP网络的应用之间的通信。
上述的优选实施方式包括一个单独安装的与一个消息发送系统相关联的网关程序。一种可选的实施方式将网关作为一队列管理器程序的一个内部组件来实现的。较为理想的是将对话识别符和对话状态表作为在队列管理器控制之下的一个消息队列来实现。当扫描队列时,可能要使用MQSeries队列管理器内实现的MessageID和CorelID识别符作为适当的搜索信息。然而应该注意的是更新队列管理器所控制的队列中所保持的入口要求下面的步骤,从队列中删去入口,修改然后在队列上代替,这是由于在维护一个队列管理器控制的队列的同时,没有提供对于入口的修改。更新保存在一个共享存储器中的表中一个入口可能只需要简单的重写先前的入口。利用消息队列管理器程序的工具‘等待事件(即应答)或超时’操作具有益处,这个功能是由多线程操作系统所提供的,并且一个消息队列管理器程序可能实际上是在使用底层的操作系统的功能。可选的实施方式能够在任何将在一个新的应答消息第一次放到应答队列上的时候都使用触发网关程序。但是这并不是优选的实施方式,因为在客户机系统没有当前的激活的对话的时候触发并不是理想的。此外本发明的可选实施方式可能实现对应答队列进行定期的扫描而代替调用‘Get with Wait’操作。
在上述的优选实施方式中,自动将对话识别符存储在Web浏览器的高速缓存中(作为HTML页中的嵌入字段)。但是也可以选择将对话识别符在显示器上显示给终端用户,当接下来进行一个相关的请求的时候可能要求用户键入对话识别符。在一个超时后仅仅将对一个客户机系统的预先响应显示给用户,而在不自动地存储或包括在将来的请求中的实施方式中,是终端用户决定是否应该保存当前的对话或应该结束对话但是保存识别符以用于后续对一个请求的再试。上述的例子的实施方式具有特征:仅仅将对话识别符和对话状态信息包括在发送回浏览器的某一通信之中,但是一种显然的是在本发明范围内的可选的实施方式涉及在所有的响应中至少包括对话识别符信息。
上述的优选的实施方式的一个特征是由网关程序维护状态数据;本发明的一种可选的实施方式是将所有的排序问题都留给应用程序来处理,这样网关程序不涉及维护对话状态信息。

Claims (13)

1.一种用于一个通信网络中的数据通信系统,其中该系统具有支持在网络的服务器系统和客户机系统之间进行同步通信的设备,并且其中服务器还具有支持与服务器系统上或是网络的其它系统上的程序进行异步通信的设备,所述的服务器系统包括:
用于响应来自于所述的客户机系统的在客户机系统和服务器系统之间的一个同步通信对话的一个请求,向服务器系统或网络中的其它系统上的一个程序发送一个异步通信形式的请求的装置;
用于启动一个定时器以响应来自该客户机系统的所述请求的装置;
响应于对所述的异步通信的一个应答的接收,将所述的应答与来自客户机系统的所述请求相关联,以使得能够将一个应答发送到客户机系统的装置;
用于在接收对所述的异步通信的一个应答之前生成一个预先的应答的装置,所述的预先应答包括一个由该服务器系统分配的对话识别符;和
用于在接收到一个对所述的异步请求的应答之前,如果预置的时限就终止了的话,在所述的同步通信对话之中向所述的客户机系统发送一个预先的应答的装置。
2.依据权利要求1的数据通信系统,包括用于在所述的同步对话中向客户机系统发送一个应答的装置,其中用于发送一个应答的装置,在一个预置的时限终止之前,响应于对所述的异步请求的一个应答的接收,以在对所述的客户机系统的所述的应答之中包括来自所述的接收到的应答中的信息,其中对所述的客户机系统的所述应答是在所述的同步对话之中发送的。
3.依据权利要求1的数据通信系统,其中在服务器系统包括一个处理,用于将一个对话识别符分配给来自客户机系统的请求,并且在发送到所述程序的异步请求中包括该对话识别符,所述的服务器系统还包括一个装置,用于响应于从所述程序接收一个包含所述对话识别符的对所述的异步请求的应答,使用所述的对话识别符将来自所述程序的应答与来自客户机系统的请求相关联,并且在被发送到所述的客户机系统中的一个应答中包括所述的对话识别符。
4.依据权利要求3的数据通信系统,包括响应于在所述程序对所述的异步请求的应答之中的对话状态信息,在被发送到该客户机系统中的所述应答之中包括对话状态信息的装置。
5.依据权利要求3的数据通信系统,其中所述服务器系统具有安装在其上的因特网WWW服务器软件,用于响应来自安装在一个客户机系统上的WWW浏览器软件的请求,所述的服务器系统包括用于在HTML页中嵌入对话识别符信息的装置,该HTML页被包括在发送到一个客户机系统的应答之中。
6.依据权利要求5的数据通信系统,其中所述的服务器系统包括,响应于在所述的程序对于所述的异步请求的响应中的对话状态信息,在所述的HTML页中包括一个或多个由一个终端用户所完成的一个或多个HTML形式的装置,所述的形式有嵌入在其中的所述的对话识别符。
7.依据权利要求5或6的数据通信系统,其中所述的服务器系统包括响应于在所述的程序对所述的异步请求的应答中的对话状态信息,在发送到该客户机系统的所述HTML页中嵌入对话状态信息的装置。
8.依据权利要求5或6中的数据通信系统,包括用于将一个客户机请求的HTML数据转换为所述的程序可以解释的一种格式,并且将来自于所述的程序中的一个应答中所包括的信息转换为HTML,以包括在所述的对客户机系统中的应答中的装置。
9.依据权利要求1的数据通信系统,其中所述的服务器系统实现对于到达确认和/或对于传递报告确认,并且在所述的预置的时限终止之前响应于一个到达确认或传递报告确认报告的接收,在一旦所述的预置时限终止就将所述的到达确认和传递报告确认报告包括在所述的发送到所述的客户机系统的通信之中。
10.依据权利要求1的数据通信系统,其中所述的服务器系统包括,响应于在所述的程序的对于所述的异步请求的应答中的对话状态的一个识别,确定是否在所述的对于客户机系统的应答之中包括对话识别信息的装置。
11.依据权利要求4的数据通信系统,其中所述的用于在对客户机系统的一个应答中包括对话状态信息的装置包括用于依据对话状态确定是否包括所述的对话状态信息的装置。
12.依据权利要求1的数据通信系统,包括响应于来自所述的客户机系统的一个请求,确定是否将一个接收确认信息发送到客户机作为一个预先应答或者是否启动所述的定时器的装置。
13.一种在通信网络的第一个系统的第一个计算机程序和通过该网络的第二个系统的第二个计算机程序可访问的第三个计算机程序之间进行数据通信的方法,包括步骤:
在一个同步通信对话之中由第一个程序向第二个程序发送一个第一请求;
响应于由所述的第二个系统从所述的第一个程序接收到同步请求,向第三个程序发送一个异步通信形式的第二请求,所述的第二请求包括所述第二个系统的第二个程序所分配的对话识别符;
由所述的第二个系统接收到一个对所述的异步通信的应答后,使用所述的对话识别符将所述的应答与来自所述第一个程序的所述第一请求相关联,以使得能够将一个应答发送到第一个程序;和
在所述的同步通信对话中向所述的第一个程序发送一个应答,其中如果在一个预置的时限终止之前没有接收到一个对所述的异步通信的应答,所述的发送到所述的第一个程序的应答包括一个含有所述的对话识别符的预先的应答。
CN97194785A 1996-05-24 1997-05-19 在一个计算机网络中提供通信链路的数据通信系统和方法 Expired - Lifetime CN1117333C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB9610898A GB2313524A (en) 1996-05-24 1996-05-24 Providing communications links in a computer network
GB9610898.0 1996-05-24

Publications (2)

Publication Number Publication Date
CN1219257A CN1219257A (zh) 1999-06-09
CN1117333C true CN1117333C (zh) 2003-08-06

Family

ID=10794249

Family Applications (1)

Application Number Title Priority Date Filing Date
CN97194785A Expired - Lifetime CN1117333C (zh) 1996-05-24 1997-05-19 在一个计算机网络中提供通信链路的数据通信系统和方法

Country Status (13)

Country Link
US (1) US6336135B1 (zh)
EP (1) EP0978056B1 (zh)
JP (1) JP3578221B2 (zh)
KR (1) KR100275403B1 (zh)
CN (1) CN1117333C (zh)
CZ (1) CZ381198A3 (zh)
DE (1) DE69731318T2 (zh)
ES (1) ES2227692T3 (zh)
GB (1) GB2313524A (zh)
HU (1) HUP9902190A3 (zh)
MY (1) MY123071A (zh)
PL (1) PL329935A1 (zh)
WO (1) WO1997045798A1 (zh)

Families Citing this family (200)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8073695B1 (en) 1992-12-09 2011-12-06 Adrea, LLC Electronic book with voice emulation features
US9053640B1 (en) 1993-12-02 2015-06-09 Adrea, LLC Interactive electronic book
US20040264402A9 (en) * 1995-06-01 2004-12-30 Padcom. Inc. Port routing functionality
US6418324B1 (en) * 1995-06-01 2002-07-09 Padcom, Incorporated Apparatus and method for transparent wireless communication between a remote device and host system
GB2313524A (en) 1996-05-24 1997-11-26 Ibm Providing communications links in a computer network
US6636733B1 (en) 1997-09-19 2003-10-21 Thompson Trust Wireless messaging method
US6253061B1 (en) * 1997-09-19 2001-06-26 Richard J. Helferich Systems and methods for delivering information to a transmitting and receiving device
US7346689B1 (en) * 1998-04-20 2008-03-18 Sun Microsystems, Inc. Computer architecture having a stateless human interface device and methods of use
JP2000036822A (ja) * 1998-07-16 2000-02-02 Nec Corp コンピュータネットワーク及びサーバ
US7136645B2 (en) * 1998-10-09 2006-11-14 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US8060656B2 (en) * 1998-10-09 2011-11-15 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US7778260B2 (en) * 1998-10-09 2010-08-17 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US6546425B1 (en) * 1998-10-09 2003-04-08 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US8078727B2 (en) 1998-10-09 2011-12-13 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US7293107B1 (en) * 1998-10-09 2007-11-06 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US6826748B1 (en) 1999-01-28 2004-11-30 Ati International Srl Profiling program execution into registers of a computer
US6954923B1 (en) 1999-01-28 2005-10-11 Ati International Srl Recording classification of instructions executed by a computer
US7111290B1 (en) 1999-01-28 2006-09-19 Ati International Srl Profiling program execution to identify frequently-executed portions and to assist binary translation
US8127121B2 (en) 1999-01-28 2012-02-28 Ati Technologies Ulc Apparatus for executing programs for a first computer architechture on a computer of a second architechture
US7941647B2 (en) 1999-01-28 2011-05-10 Ati Technologies Ulc Computer for executing two instruction sets and adds a macroinstruction end marker for performing iterations after loop termination
US8065504B2 (en) 1999-01-28 2011-11-22 Ati International Srl Using on-chip and off-chip look-up tables indexed by instruction address to control instruction execution in a processor
US8074055B1 (en) 1999-01-28 2011-12-06 Ati Technologies Ulc Altering data storage conventions of a processor when execution flows from first architecture code to second architecture code
US6434605B1 (en) * 1999-04-05 2002-08-13 Worldcom, Inc. Automatic detection and recovery for problems arising with interconnected queue managers
US6779107B1 (en) * 1999-05-28 2004-08-17 Ati International Srl Computer execution by opportunistic adaptation
US7882247B2 (en) 1999-06-11 2011-02-01 Netmotion Wireless, Inc. Method and apparatus for providing secure connectivity in mobile and other intermittent computing environments
US6976077B1 (en) * 1999-07-06 2005-12-13 Microsoft Corporation Automatic and transparent synchronization of server-side state information with a client application
US6895584B1 (en) 1999-09-24 2005-05-17 Sun Microsystems, Inc. Mechanism for evaluating requests prior to disposition in a multi-threaded environment
US6766349B1 (en) 1999-09-24 2004-07-20 Sun Microsystems, Inc. Mechanism for obtaining a thread from, and returning a thread to, a thread pool without attaching and detaching
US6701367B1 (en) * 1999-09-24 2004-03-02 Sun Microsystems, Inc. Mechanism for enabling customized session managers to interact with a network server
WO2001022273A1 (en) * 1999-09-24 2001-03-29 Sun Microsystems, Inc. Mechanism for enabling session information to be shared across multiple processes
US6587827B1 (en) * 1999-10-22 2003-07-01 Hewlett-Packard Development Company, L.P. Order fulfillment processing system
US6871203B1 (en) * 1999-10-29 2005-03-22 International Business Machines Corporation Data processing system
US7107325B1 (en) 1999-11-15 2006-09-12 Insweb Corporation System and method for optimizing and processing electronic pages in multiple languages
US20060235945A1 (en) * 2000-01-14 2006-10-19 Frietas Nathaniel X Software architecture for wireless data and method of operation thereof
US20010034782A1 (en) * 2000-01-14 2001-10-25 Ian Kinkade Efficient web based proxy message method and apparatus for message queuing middleware resident on a server computer
US7454457B1 (en) 2000-02-07 2008-11-18 Parallel Networks, Llc Method and apparatus for dynamic data flow control using prioritization of data requests
JP2001216262A (ja) * 2000-02-07 2001-08-10 Fujitsu Ltd サーバ
US8756342B1 (en) 2000-02-07 2014-06-17 Parallel Networks, Llc Method and apparatus for content synchronization
US20030070074A1 (en) * 2000-03-17 2003-04-10 Avner Geller Method and system for authentication
IL135150A0 (en) * 2000-03-17 2001-05-20 Avner Geller A method and a system for secured identification of user's identity
US20040105122A1 (en) * 2000-03-20 2004-06-03 Schaeffer Richard J. Printer control and document management system
KR100397495B1 (ko) * 2000-06-24 2003-09-13 엘지전자 주식회사 실시간처리 운영체제의 주제어부와 부제어부간의접속해제를 안정화하기 위한 제어방법
US7117239B1 (en) 2000-07-28 2006-10-03 Axeda Corporation Reporting the state of an apparatus to a remote computer
AU2001283464A1 (en) * 2000-08-31 2002-03-13 Padcom, Inc. Method and apparatus for routing data over multiple wireless networks
US8108543B2 (en) 2000-09-22 2012-01-31 Axeda Corporation Retrieving data from a server
US6810430B1 (en) * 2000-09-29 2004-10-26 Abb Automation Inc. Network communications coupler
US7830399B2 (en) * 2000-10-04 2010-11-09 Shutterfly, Inc. System and method for manipulating digital images
US7177899B2 (en) * 2000-12-28 2007-02-13 Future System Consulting Corp. Framework system
US6862628B2 (en) * 2001-01-05 2005-03-01 Microsoft Corporation Enhancing application performance in dynamic networks
US7788399B2 (en) 2001-03-26 2010-08-31 Salesforce.Com, Inc. System and method for mapping of services
US7689711B2 (en) 2001-03-26 2010-03-30 Salesforce.Com, Inc. System and method for routing messages between applications
US7516191B2 (en) * 2001-03-26 2009-04-07 Salesforce.Com, Inc. System and method for invocation of services
US9948644B2 (en) 2001-03-26 2018-04-17 Salesforce.Com, Inc. Routing messages between applications
US7249195B2 (en) * 2001-03-30 2007-07-24 Minor Ventures, Llc Apparatus and methods for correlating messages sent between services
US7447802B2 (en) * 2001-03-30 2008-11-04 Oracle International Corporation Method and system for maintaining a configuration state
US20020188666A1 (en) * 2001-05-23 2002-12-12 Lemon Michael J. Lightweight dynamic service conversation controller
US7562146B2 (en) * 2003-10-10 2009-07-14 Citrix Systems, Inc. Encapsulating protocol for session persistence and reliability
US20050198379A1 (en) * 2001-06-13 2005-09-08 Citrix Systems, Inc. Automatically reconnecting a client across reliable and persistent communication sessions
US7801941B2 (en) * 2001-07-09 2010-09-21 Palm, Inc. Apparatus and method for exchanging data between two devices
US7668535B2 (en) * 2001-07-09 2010-02-23 Palm, Inc. Notification infrastructure for sending device-specific wireless notifications
US20030037102A1 (en) * 2001-08-14 2003-02-20 Philippe Eckert Message broker
US7644171B2 (en) * 2001-09-12 2010-01-05 Netmotion Wireless, Inc. Mobile networking system and method using IPv4 and IPv6
US6907451B1 (en) * 2001-09-29 2005-06-14 Siebel Systems, Inc. Method, apparatus, and system for immediate posting of changes in a client server environment
US7461119B2 (en) * 2001-09-29 2008-12-02 Siebel Systems, Inc. Method, apparatus, and system for managing status of requests in a client server environment
US7203948B2 (en) * 2001-09-29 2007-04-10 Siebel Systems, Inc. Method, apparatus, and system for implementing caching of view custom options in a framework to support web-based applications
US7146617B2 (en) 2001-09-29 2006-12-05 Siebel Systems, Inc. Method, apparatus, and system for implementing view caching in a framework to support web-based applications
US7885996B2 (en) * 2001-09-29 2011-02-08 Siebel Systems, Inc. Method, apparatus, and system for implementing notifications in a framework to support web-based applications
US8359335B2 (en) 2001-09-29 2013-01-22 Siebel Systems, Inc. Computing system and method to implicitly commit unsaved data for a world wide web application
US7870492B2 (en) 2001-10-02 2011-01-11 Siebel Systems, Inc. Method, apparatus, and system for managing commands in a client server environment
US7003570B2 (en) * 2001-10-05 2006-02-21 Bea Systems, Inc. System for integrating java servlets with asynchronous messages
US20030101291A1 (en) * 2001-11-23 2003-05-29 Mussack Christopher Joseph Application programming interface for provision of DICOM services
DE10162986B4 (de) * 2001-12-20 2004-01-15 Siemens Ag Anbindung von Netzwerken mit unterschiedlichen Protokollen
US20030126109A1 (en) * 2002-01-02 2003-07-03 Tanya Couch Method and system for converting message data into relational table format
US6950959B2 (en) * 2002-02-12 2005-09-27 Fulcrum Microystems Inc. Techniques for facilitating conversion between asynchronous and synchronous domains
US7444410B1 (en) * 2002-02-15 2008-10-28 Oracle International Corporation Application platform execution environment
US7984157B2 (en) * 2002-02-26 2011-07-19 Citrix Systems, Inc. Persistent and reliable session securely traversing network components using an encapsulating protocol
US7661129B2 (en) * 2002-02-26 2010-02-09 Citrix Systems, Inc. Secure traversal of network components
US7558196B2 (en) * 2002-04-08 2009-07-07 Alcatel-Lucent Usa Inc. Method and apparatus for system resource management in a communications system
US7404011B2 (en) * 2002-05-31 2008-07-22 International Business Machines Corporation System and method for accessing different types of back end data stores
JP4225743B2 (ja) * 2002-07-04 2009-02-18 株式会社東芝 無線端末及び通信制御方法
CN100426812C (zh) * 2002-08-15 2008-10-15 中兴通讯股份有限公司 一种基于分组数据业务流程的仿真系统
US8165993B2 (en) * 2002-09-06 2012-04-24 Oracle International Corporation Business intelligence system with interface that provides for immediate user action
US7454423B2 (en) 2002-09-06 2008-11-18 Oracle International Corporation Enterprise link for a software database
US7912899B2 (en) * 2002-09-06 2011-03-22 Oracle International Corporation Method for selectively sending a notification to an instant messaging device
US7412481B2 (en) 2002-09-16 2008-08-12 Oracle International Corporation Method and apparatus for distributed rule evaluation in a near real-time business intelligence system
US7243124B1 (en) 2002-09-06 2007-07-10 Oracle International Corporation Architecture for general purpose near real-time business intelligence system with client devices and methods therefor
US8255454B2 (en) * 2002-09-06 2012-08-28 Oracle International Corporation Method and apparatus for a multiplexed active data window in a near real-time business intelligence system
US7941542B2 (en) * 2002-09-06 2011-05-10 Oracle International Corporation Methods and apparatus for maintaining application execution over an intermittent network connection
US7945846B2 (en) 2002-09-06 2011-05-17 Oracle International Corporation Application-specific personalization for data display
US7899879B2 (en) 2002-09-06 2011-03-01 Oracle International Corporation Method and apparatus for a report cache in a near real-time business intelligence system
US7272660B1 (en) 2002-09-06 2007-09-18 Oracle International Corporation Architecture for general purpose near real-time business intelligence system and methods therefor
US7401158B2 (en) * 2002-09-16 2008-07-15 Oracle International Corporation Apparatus and method for instant messaging collaboration
US7426059B2 (en) 2002-09-16 2008-09-16 Oracle International Corporation Data presentation methods and apparatus to facilitate printing and reviewing
US7668917B2 (en) * 2002-09-16 2010-02-23 Oracle International Corporation Method and apparatus for ensuring accountability in the examination of a set of data elements by a user
JP3880513B2 (ja) 2002-12-16 2007-02-14 インターナショナル・ビジネス・マシーンズ・コーポレーション 中継処理装置、制御方法、プログラム、記録媒体、及び端末制御サーバ
US7305554B2 (en) * 2002-12-16 2007-12-04 Alcatel Canada Inc. Dynamic acquisition of state during security system reconfiguration
US7480657B1 (en) * 2003-01-06 2009-01-20 Cisco Technology, Inc. Caching information for multiple service applications
US7769881B2 (en) * 2003-01-24 2010-08-03 Hitachi, Ltd. Method and apparatus for peer-to peer access
US8359393B2 (en) * 2003-02-13 2013-01-22 Transunion Interactive, Inc. Methods, apparatuses and systems facilitating seamless, virtual integration of online membership models and services
CA2515957C (en) * 2003-02-13 2016-07-12 Truelink, Inc. Methods, apparatuses and systems facilitating seamless, virtual integration of online membership models and services
US7966418B2 (en) * 2003-02-21 2011-06-21 Axeda Corporation Establishing a virtual tunnel between two computer programs
US20040170181A1 (en) * 2003-02-27 2004-09-02 Padcom, Inc. Prioritized alternate port routing
JP4305004B2 (ja) * 2003-02-28 2009-07-29 ソニー株式会社 情報処理装置、およびコンテンツ情報処理方法、並びにコンピュータ・プログラム
KR100925198B1 (ko) * 2003-03-17 2009-11-06 엘지전자 주식회사 대화형 디스크 플레이어간의 사용자 메시지 교환방법
US7904823B2 (en) * 2003-03-17 2011-03-08 Oracle International Corporation Transparent windows methods and apparatus therefor
JP2004295262A (ja) * 2003-03-25 2004-10-21 Toudai Tlo Ltd スクリプトの実行方法およびサーバ・クライアントシステム
US7676580B2 (en) * 2003-03-27 2010-03-09 Microsoft Corporation Message delivery with configurable assurances and features between two endpoints
US7113964B1 (en) 2003-06-05 2006-09-26 Iteration Software, Inc. Method and apparatus for archiving data in a relational database system
US7548989B2 (en) * 2003-07-01 2009-06-16 International Business Machines Corporation Method and system for maintaining consistency during multi-threaded processing of LDIF data
US8429249B2 (en) * 2003-07-11 2013-04-23 Ca, Inc. System and method for configuring servlet-based components as dynamic content components
US7349968B2 (en) 2003-07-31 2008-03-25 International Business Machines Corporation Method, system and program product for asynchronously processing requests
US7380009B2 (en) * 2003-08-07 2008-05-27 Interantional Business Machines, Incorporated Method, system and program product for delayed disconnection of a client from a server
US7478122B2 (en) * 2003-08-18 2009-01-13 Hostopia.Com Inc. Web server system and method
GB2405228B8 (en) * 2003-08-19 2007-09-13 Ibm A method, apparatus and computer program for verifying the order of a queue of work items
US6925928B2 (en) * 2003-09-18 2005-08-09 Anthony Fox Trash compactor for fast food restaurant waste
US20050080903A1 (en) * 2003-09-30 2005-04-14 Moshe Valenci Method, system, and program for maintaining a link between two network entities
US20050080759A1 (en) * 2003-10-08 2005-04-14 International Business Machines Corporation Transparent interface to a messaging system from a database engine
US8453196B2 (en) * 2003-10-14 2013-05-28 Salesforce.Com, Inc. Policy management in an interoperability network
US7904882B2 (en) 2003-10-16 2011-03-08 Salesforce.Com, Inc. Managing virtual business instances within a computer network
US8229996B2 (en) * 2003-11-26 2012-07-24 Microsoft Corporation Asynchronous processing of task components in connection with rights management system and the like
US8775654B2 (en) * 2003-12-19 2014-07-08 Salesforce.Com, Inc. Apparatus and methods for mediating messages
US7650380B2 (en) * 2004-02-12 2010-01-19 International Business Machines Corporation System and method for messaging and collaborating in an intranet environment
EP1735947B1 (en) 2004-02-27 2008-06-18 Research In Motion Limited System and method for communicating asynchronously with synchronous web services using a mediator service
US7496500B2 (en) * 2004-03-01 2009-02-24 Microsoft Corporation Systems and methods that determine intent of data and respond to the data based on the intent
US7739351B2 (en) 2004-03-23 2010-06-15 Salesforce.Com, Inc. Synchronous interface to asynchronous processes
US7590685B2 (en) * 2004-04-07 2009-09-15 Salesforce.Com Inc. Techniques for providing interoperability as a service
US7437169B2 (en) * 2004-06-07 2008-10-14 Microsoft Corporation System and method for optimizing network communication in response to network conditions
US8280948B1 (en) * 2004-06-08 2012-10-02 Persony Inc. System and method for enabling online collaboration amongst a plurality of terminals using a web server
US20060015622A1 (en) * 2004-07-14 2006-01-19 International Business Machines Corporation Enabling asynchronous transaction interactions on Web browsers
US20060026214A1 (en) * 2004-07-29 2006-02-02 International Business Machines Corporation Switching from synchronous to asynchronous processing
US7725605B2 (en) 2004-08-06 2010-05-25 Salesforce.Com, Inc. Providing on-demand access to services in a wide area network
US9645712B2 (en) 2004-10-01 2017-05-09 Grand Central Communications, Inc. Multiple stakeholders for a single business process
US7752671B2 (en) * 2004-10-04 2010-07-06 Promisec Ltd. Method and device for questioning a plurality of computerized devices
US7657618B1 (en) * 2004-10-15 2010-02-02 F5 Networks, Inc. Management of multiple client requests
US20060093125A1 (en) * 2004-11-02 2006-05-04 Dezonno Anthony J Messaging presence for non-messaging devices
US20060106840A1 (en) * 2004-11-04 2006-05-18 International Business Machines Corporation System and method for tracking notifications in a publish subscribe system
US7681074B2 (en) * 2005-04-29 2010-03-16 Microsoft Corporation Transport high availability
US7882176B2 (en) * 2005-05-27 2011-02-01 Microsoft Corporation Establishing a multiparty session by sending invitations in parallel
US7660850B2 (en) * 2005-05-27 2010-02-09 Microsoft Corporation Supporting a serial and a parallel invitation protocol
US7693071B2 (en) * 2005-05-27 2010-04-06 Microsoft Corporation System and method for routing messages within a messaging system
JP4725955B2 (ja) * 2005-06-30 2011-07-13 株式会社リコー 情報処理装置、メッセージ管理方法、プログラムおよび記憶媒体
EP1775911B1 (en) * 2005-10-13 2018-02-28 BlackBerry Limited System and method for providing asynchronous notifications using synchronous data
US8095599B2 (en) * 2005-10-20 2012-01-10 International Business Machines Corporation Mail-based web application and document delivery
US20070094336A1 (en) * 2005-10-24 2007-04-26 Microsoft Corporation Asynchronous server synchronously storing persistent data batches
US8077699B2 (en) * 2005-11-07 2011-12-13 Microsoft Corporation Independent message stores and message transport agents
US8223777B2 (en) * 2005-11-15 2012-07-17 Oracle International Corporation Gateway for achieving low latency and high availability in a real time event processing system
US7921165B2 (en) * 2005-11-30 2011-04-05 Microsoft Corporation Retaining mail for availability after relay
US8745489B2 (en) 2006-02-16 2014-06-03 Microsoft Corporation Shell input/output segregation
US7933964B2 (en) * 2006-02-16 2011-04-26 Microsoft Corporation Shell sessions
US8751579B1 (en) * 2006-03-02 2014-06-10 Salesforce.Com, Inc. Method and system of maintaining a browser in a design application workflow
CN101395597B (zh) * 2006-03-06 2011-12-28 Lg电子株式会社 继承设备注册方法、数据传送方法和继承设备认证方法
US20090133129A1 (en) * 2006-03-06 2009-05-21 Lg Electronics Inc. Data transferring method
WO2007130312A2 (en) * 2006-04-29 2007-11-15 724 Solutions Software Inc. Channel selection/translation based on user-preference
US7805532B2 (en) * 2006-04-29 2010-09-28 724 Software Solutions, Inc. Platform for interoperability
US8327024B2 (en) * 2006-04-29 2012-12-04 724 Solutions Software, Inc. System and method for SMS/IP interoperability
US9112808B2 (en) * 2007-02-06 2015-08-18 At&T Intellectual Property Ii, L.P. Devices, systems, and methods for providing data
KR100862354B1 (ko) * 2007-04-10 2008-10-13 전자부품연구원 비동기 검색 환경을 지원하는 멀티미디어 검색 방법
US8626951B2 (en) * 2007-04-23 2014-01-07 4Dk Technologies, Inc. Interoperability of network applications in a communications environment
US8635069B2 (en) 2007-08-16 2014-01-21 Crimson Corporation Scripting support for data identifiers, voice recognition and speech in a telnet session
US8478880B2 (en) * 2007-08-31 2013-07-02 Palm, Inc. Device profile-based media management
US8560669B2 (en) * 2007-09-26 2013-10-15 Quantcast Corporation Tracking identifier synchronization
US20090094229A1 (en) * 2007-10-03 2009-04-09 Mark Warne Ferrel Method and apparatus for exploiting 'trace' function to support database integration
US8515903B2 (en) 2007-10-03 2013-08-20 Database Logic Inc. Collaboration of plural databases by interaction through universal index
US8214847B2 (en) * 2007-11-16 2012-07-03 Microsoft Corporation Distributed messaging system with configurable assurances
US8200836B2 (en) * 2007-11-16 2012-06-12 Microsoft Corporation Durable exactly once message delivery at scale
US7792997B2 (en) 2007-12-31 2010-09-07 Accenture Global Services Gmbh Freight backbone messaging architecture
US20090210822A1 (en) * 2008-02-18 2009-08-20 Microsoft Corporation Locating meeting users
US9143540B2 (en) * 2008-04-24 2015-09-22 Oracle International Corporation System and method for providing service correlation in a service access gateway environment
US7970814B2 (en) 2008-05-20 2011-06-28 Raytheon Company Method and apparatus for providing a synchronous interface for an asynchronous service
US8200751B2 (en) 2008-05-20 2012-06-12 Raytheon Company System and method for maintaining stateful information
WO2009143107A2 (en) 2008-05-20 2009-11-26 Raytheon Company System and method for collaborative messaging and data distribution
EP2301209B1 (en) 2008-05-20 2016-03-30 Raytheon Company System and method for message filtering
US7752261B1 (en) 2008-06-27 2010-07-06 Quant cast Corporation System and method for multibeaconing
US8949344B2 (en) * 2008-09-15 2015-02-03 Microsoft Corporation Asynchronous queued messaging for web applications
US8156203B2 (en) 2008-09-15 2012-04-10 Microsoft Corporation Dye injected request generation
CN101686245B (zh) * 2008-09-28 2014-06-11 国际商业机器公司 用于隔离超文本传输协议会话的方法和系统
US8005923B2 (en) * 2009-02-23 2011-08-23 International Business Machines Corporation System and method of obfuscating queue management
US9536222B2 (en) * 2009-12-28 2017-01-03 Sap Se Progress information in a service-oriented architecture
US8739166B2 (en) * 2009-12-28 2014-05-27 Sap Ag Progress-driven progress information in a service-oriented architecture
US9015136B2 (en) * 2010-01-22 2015-04-21 Microsoft Technology Licensing, Llc Storing temporary state data in separate containers
WO2012008016A1 (ja) * 2010-07-13 2012-01-19 富士通株式会社 マルチスレッド処理装置,マルチスレッド処理システム,マルチスレッド処理プログラム,及びマルチスレッド処理方法
US8453127B2 (en) * 2010-09-20 2013-05-28 Sap Ag Systems and methods providing a token synchronization gateway for a graph-based business process model
CN102158518B (zh) * 2010-12-03 2014-04-30 华为技术有限公司 一种cdn网络中的数据传输方法、网络节点及系统
US9602287B2 (en) * 2011-06-02 2017-03-21 Sap Se Method and system for signed stateless data transfer
US8694998B2 (en) 2011-08-29 2014-04-08 Microsoft Corporation Cancellable command application programming interface (API) framework
US20130191500A1 (en) * 2012-01-19 2013-07-25 Ebay Inc. Methods and systems for providing a synchronous interface over an asynchronous message bus
US9253011B2 (en) * 2012-09-27 2016-02-02 Intuit Inc. Session-server affinity for clients that lack session identifiers
CN104184635B (zh) * 2014-08-19 2018-02-13 烽火通信科技股份有限公司 家庭网关基于Android RIL实现一对多数据通讯的方法及装置
US10033797B1 (en) 2014-08-20 2018-07-24 Ivanti, Inc. Terminal emulation over HTML
JP6447224B2 (ja) 2015-02-20 2019-01-09 日本電気株式会社 通信装置、中継装置、通信方法及び通信プログラム
US9961112B2 (en) * 2015-04-20 2018-05-01 Bomgar Corporation Method and apparatus for enforcing realtime access controls for endpoints
US10320906B2 (en) 2016-04-29 2019-06-11 Netapp, Inc. Self-organizing storage system for asynchronous storage service
US11100278B2 (en) 2016-07-28 2021-08-24 Ivanti, Inc. Systems and methods for presentation of a terminal application screen
US10397185B1 (en) * 2016-12-23 2019-08-27 EMC IP Holding Company LLC Scalable cloud hosted metadata service
US10574521B2 (en) * 2017-06-19 2020-02-25 Cisco Technology, Inc. Method and apparatus to predict configuration viability and dynamically manage multi-dimensional system scale in MSDC switches
US11516154B2 (en) 2017-07-13 2022-11-29 Apple Inc. Systems for managing messaging conversations
CN111143745A (zh) * 2019-12-27 2020-05-12 中冶建筑研究总院有限公司 基于html的数据同步和交互的方法和系统
US11271968B2 (en) 2020-03-04 2022-03-08 International Business Machines Corporation Zero round trip time transmission for anticipatory request messages
CN112487218B (zh) * 2020-11-27 2023-07-14 北京百度网讯科技有限公司 内容处理方法、系统、装置、计算设备和存储介质
CN112395359B (zh) * 2020-11-30 2023-03-31 武汉烽火众智数字技术有限责任公司 一种基于数据库数据同步来实现http代理的方法和系统

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5530848A (en) * 1992-10-15 1996-06-25 The Dow Chemical Company System and method for implementing an interface between an external process and transaction processing system
US5329619A (en) * 1992-10-30 1994-07-12 Software Ag Cooperative processing interface and communication broker for heterogeneous computing environments
GB2276737A (en) * 1993-03-30 1994-10-05 Ibm Fault-tolerant transaction-oriented data processing
AU7185494A (en) * 1993-06-28 1995-01-17 Dow Benelux N.V. Advanced program-to-program communication server
EP0673523B1 (en) * 1993-10-08 1999-02-10 International Business Machines Corporation Message transmission across a network
GB9406477D0 (en) * 1994-03-31 1994-05-25 D2B Systems Co Ltd Interconnection of local communication bus systems
GB2288477A (en) * 1994-04-05 1995-10-18 Ibm Communications system for exchanging data between computers in a network.
JP2507235B2 (ja) * 1994-06-24 1996-06-12 インターナショナル・ビジネス・マシーンズ・コーポレイション クライアント・サ―バ・コンピュ―タ・システム、及びそのクライアント・コンピュ―タ、サ―バ・コンピュ―タ、並びにオブジェクト更新方法
JPH08286962A (ja) * 1994-12-16 1996-11-01 Internatl Business Mach Corp <Ibm> 処理システム及びオブジェクト活動化をスケジュールする方法
US5889957A (en) * 1995-06-07 1999-03-30 Tandem Computers Incorporated Method and apparatus for context sensitive pathsend
US5774670A (en) * 1995-10-06 1998-06-30 Netscape Communications Corporation Persistent client state in a hypertext transfer protocol based client-server system
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
US5754772A (en) * 1996-03-26 1998-05-19 Unisys Corporation Transaction service independent HTTP server-to-transaction gateway
GB2313524A (en) 1996-05-24 1997-11-26 Ibm Providing communications links in a computer network
US5961601A (en) * 1996-06-07 1999-10-05 International Business Machines Corporation Preserving state information in a continuing conversation between a client and server networked via a stateless protocol
JP3672208B2 (ja) * 1996-07-02 2005-07-20 インターナショナル・ビジネス・マシーンズ・コーポレーション 階層化トランザクション処理方法
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
US6108689A (en) * 1996-10-11 2000-08-22 International Business Machines Corporation Method and system for processing messages in a distributed computing environment
GB2320112B (en) * 1996-12-07 2001-07-25 Ibm High-availability computer server system
US6088728A (en) * 1997-06-11 2000-07-11 Oracle Corporation System using session data stored in session data storage for associating and disassociating user identifiers for switching client sessions in a server
US6068661A (en) * 1997-10-01 2000-05-30 Micron Electronics, Inc. Method of emulating synchronous communication
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
US6055564A (en) * 1998-03-11 2000-04-25 Hewlett Packard Company Admission control where priority indicator is used to discriminate between messages

Also Published As

Publication number Publication date
MY123071A (en) 2006-05-31
JP3578221B2 (ja) 2004-10-20
KR100275403B1 (ko) 2000-12-15
ES2227692T3 (es) 2005-04-01
HUP9902190A3 (en) 2000-03-28
GB9610898D0 (en) 1996-07-31
EP0978056B1 (en) 2004-10-20
DE69731318T2 (de) 2006-03-09
CN1219257A (zh) 1999-06-09
KR20000010691A (ko) 2000-02-25
WO1997045798A1 (en) 1997-12-04
PL329935A1 (en) 1999-04-26
CZ381198A3 (cs) 1999-10-13
US6336135B1 (en) 2002-01-01
HUP9902190A2 (hu) 1999-11-29
GB2313524A (en) 1997-11-26
EP0978056A1 (en) 2000-02-09
DE69731318D1 (de) 2004-11-25
JPH11510632A (ja) 1999-09-14

Similar Documents

Publication Publication Date Title
CN1117333C (zh) 在一个计算机网络中提供通信链路的数据通信系统和方法
CN1095264C (zh) 高效计算机服务器系统
CN101299754B (zh) 具有动态用户界面的终端用户控制配置系统
US6701352B1 (en) Method and apparatus for importing information from a network resource
US7340714B2 (en) System and method for using web services with an enterprise system
US6199104B1 (en) Server-based host monitor
CN1119752C (zh) 控制互连在通信网络上的多个装置的控制系统和控制方法
CN1210656C (zh) 用于客户和自适应同步和转换服务器的方法、装置
EP0786723B1 (en) Document management systems using object- and agent-oriented methods
JP3274131B2 (ja) オブジェクト指向地点間通信方法およびその方法を行う通信装置
CN100458789C (zh) 用于交换门户组件配置数据的方法和系统
US7428597B2 (en) Content-based routing system and method
US20030163552A1 (en) Document distribution and storagre system
US20100180047A1 (en) Native Format Tunneling
JP2001273309A (ja) 居場所情報を管理する電子ビジネス・カードのアクセス方法
WO2001025919A2 (en) Architectures for netcentric computing systems
JP2001273318A (ja) エクスポート機能を有する電子ビジネス・カードのアクセス方法
JP2001306472A (ja) ハイパーリンクによる電子ビジネス・カードのアクセス方法
CN1639703A (zh) 用于使爪哇小服务程序与异步消息结合的系统
CN1453696A (zh) 在工作站上的打印机实例的远程创建
US7373424B2 (en) Exactly once protocol for message-based collaboration
JP5444652B2 (ja) ネットワーク装置、処理方法及びコンピュータプログラム
US20040163037A1 (en) System and method for invoking WebDAV methods via non-WebDAV protocols
CN1842814A (zh) 特定文化在线贸易
US6915341B2 (en) System for sending messages to all users in a web hosting environment

Legal Events

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

Granted publication date: 20030806