在一个计算机网络中提供通信链路的制作方法

文档序号:6412975阅读:287来源:国知局
专利名称:在一个计算机网络中提供通信链路的制作方法
技术领域
本发明关于在一个网络中将数据通信和/或数据处理资源链接在一起,特别是关于提供不同的通信环境之间的链接。
一个计算机的‘网络’可以是任何数量的计算机,计算机彼此之间可以交换信息。可以将计算机排列为任何的配置,可以是在同一间屋子里也可以是在不同的国家,只要是存在某种方式将它们连接在一起(例如,通过电话线路或其它的通信系统),这样它们之间能够交换信息。正像可以将计算机连接在一起组成一个网络一样,通过工具,已知的网桥和网关,也可以将网络连接在一起。这些工具允许某个网络中的一个计算机与在另一个网络中的一个计算机交换信息。因特网就是不具有单一的所有者或控制者,包括大型和小型,公用和专用网络的一个网络,并且其中所连接的任何一个运行网间协议软件的计算机都要接受安全控制,都能够和任何其它的与因特网相连的计算机交换信息。这一个同意彼此连接的网络的复合集合并不依赖于单一的传输介质(例如,可能通过卫星线路,光纤中继线,电话线路,有线电视线路,和当地的无线电通信线路来进行双向通信)。
万维网(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通信之间的链接。尽管由于不同的体系结构和硬件平台具有不同的数据表示和参数,可能要求进行数据转换(例如ASCII向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专利申请9606183.3中描述了用于提供确定的消息传递的消息传输协议,这里将它们作为参考收入进来。尽管基本的网络支持通常确保了机器之间可靠包传递,但是在一个不可靠的通信介质上,通常不能确保传递。为了确保数据发送一次并只发送一次,并且在主要的机器或网络发生故障以后,能够重新开始并正确地恢复通信,要求包的传递具有多个基础网络支持。特别是,在一个确定的传递系统中双方都必须记住已经成功的发送了哪个数据并已经‘加硬’。加硬是指将数据写入到一个存储介质中的处理,例如一个磁盘,以确保如果发生一个硬件故障时可以恢复。在“使用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页中的嵌入字段)。但是也可以选择将对话识别符在显示器上显示给终端用户,当接下来进行一个相关的请求的时候可能要求用户键入对话识别符。在一个超时后仅仅将对一个客户机系统的预先响应显示给用户,而在不自动地存储或包括在将来的请求中的实施方式中,是终端用户决定是否应该保存当前的对话或应该结束对话但是保存识别符以用于后续对一个请求的再试。上述的例子的实施方式具有特征仅仅将对话识别符和对话状态信息包括在发送回浏览器的某一通信之中,但是一种显然的是在本发明范围内的可选的实施方式涉及在所有的响应中至少包括对话识别符信息。
上述的优选的实施方式的一个特征是由网关程序维护状态数据;本发明的一种可选的实施方式是将所有的排序问题都留给应用程序来处理,这样网关程序不涉及维护对话状态信息。
权利要求
1.一种用于一个通信网络中的数据通信服务器系统,其中服务器系统具有工具支持在网络的服务器系统和客户机系统之间的同步通信,并且其中服务器系统也具有工具支持与服务器系统上或是网络的其它系统上的程序的异步通信,所述的服务器系统包括用于响应于来自于所述的客户机系统的在客户机系统和服务器系统之间的一个同步通信对话中的一个请求,向服务器系统或网络中的其它系统上的一个程序发送一个请求,作为一个异步通信的装置;用于响应于对所述的异步通信的一个应答的接收,将所述的应答与来自客户机系统的所述请求相关联,以使得能够将一个应答发送到客户机系统的装置;用于在接收到对所述的异步通信的一个应答之前生成一个预先的应答的装置;和用于在所述的同步通信对话之中向所述客户机系统发送至少一个预先的应答的装置。
2.依据权利要求1的数据通信系统,其中的一个预先的应答包括由服务器系统所分配的一个对话识别符;
3.依据权利要求2的数据通信系统,包括用于启动一个定时器以响应来自客户机系统的所述请求的装置,并且在接收到一个对所述的异步请求的应答之前预置的时限就已终止时,触发所述的用于向客户机系统发送一个应答的装置发送一个预先应答到客户机系统。
4.依据权利要求1到3中的任何一个的数据通信系统,其中所述的用于向客户机系统发送一个应答的装置,在一个预置的时限终止之前,响应于对所述的异步请求的一个应答的接收,以在对所述的客户机系统的所述的应答之中包括来自所述的接收到的应答中的信息,其中对所述的客户机系统的所述应答是在所述的同步对话之中发送的。
5.依据权利要求1的数据通信系统,在服务器系统包括一个处理用于将一个对话识别符分配给来自客户机系统的请求,并且在发送到一个程序的异步请求中包括对话识别符,所述的服务器系统包括响应于从所述程序接收一个对所述的异步请求的应答,其中的应答包括所述的对话识别符,使用所述的对话识别符将来自所述程序的应答与来自客户机系统的请求相关联并且在被发送到所述的客户机系统中的一个应答中包括所述的对话识别符的装置。
6.依据权利要求5的数据通信系统,包括响应于在对所述的异步请求的所述程序应答之中的对话状态信息,在被发送到客户机系统中的所述应答之中包括对话状态信息的装置。
7.依据权利要求5或6的数据通信系统,其中所述服务器系统具有因特网万维网(WWW)服务器软件安装在其上,用于响应来自安装在一个客户机系统上的WWW浏览器软件的请求,所述的服务器系统包括用于在HTML页中嵌入对话识别符信息的装置,该HTML页被包括在发送到一个客户机系统的应答之中。
8.依据权利要求7的数据通信系统,其中所述的服务器系统包括,响应于在所述的程序对于所述的异步请求的响应中的对话状态信息,在所述的HTML页中包括一个或多个由一个终端用户所完成的一个或多个HTML格式的装置,所述的格式有所述的对话识别符嵌入在其中。
9.依据权利要求7或8的数据通信系统,其中所述的服务器系统包括响应于在所述的程序对所述的异步请求的应答中的对话状态信息,在发送到客户机系统的所述HTML页中嵌入对话状态信息的装置。
10.依据权利要求7到9中的任何一个的数据通信系统,包括用于将一个客户机请求的HTML数据转换为所述的程序可以解释的一种格式,并且将来自于所述的程序中的一个应答中所包括的信息转换为HTML,以包括在所述的对客户机系统中的应答中的装置。
11.依据权利要求3的数据通信系统,其中所述的服务器系统实现对于到达确认(COA)和/或对于传递报告的确认(COD),并且在所述的预置的时限终止之前响应于一个COA或COD报告的接收,在一旦所述的预置时限终止就将所述的COA和COD报告包括在所述的发送到所述的客户机系统的通信之中。
12.依据前面的权利要求中的任何一个的数据通信系统,其中所述的服务器系统包括响应于在所述的程序的对于所述的异步请求的应答中的对话状态的一个识别,确定是否在所述的对于客户机系统的应答之中包括对话识别信息的装置。
13.依据权利要求6的数据通信系统,其中所述的用于在对客户机系统的一个应答中包括对话状态信息的装置包括用于依据对话状态确定是否包括所述的对话状态信息的装置。
14.依据权利要求3的数据通信系统,包括响应于来自所述的客户机系统的一个请求,确定是否将接收到的一个确认发送到客户机作为一个预先应答或者是否启动所述的定时器的装置。
15.一种用于通信网络中的数据通信客户机系统,该客户机系统包括用于在一个特定的同步通信对话中向网络的一个服务器系统发送一个请求的装置;用于从所述的服务器系统接收一个应答的装置;响应于一个接收到的应答,存储由所述的服务器系统的一个处理所分配并包括在所述的应答中的对话识别符信息的装置;和用于检索所述的存储的信息,以在接下来的与所述的服务器系统的交互中使用的装置。
16.依据权利要求15的系统,其中所述的用于检索的装置包括用于在发送所述的客户机请求之前将一个客户机请求的输入信息与所存储的接收到的应答的信息相比较的装置;和响应于确定输入信息和所存储的信息之间的匹配,检索所述的存储信息并且在客户机请求之中包括所述的存储的对话识别符信息的装置。
17.依据权利要求15或权利要求16的系统,包括依据于在一个来自服务器系统的响应中包括的对话状态信息,确定何时在客户机系统存储所述的对话识别符信息的装置。
18.依据权利要求15到17的任何一个的系统,包括用于在将所述的对话状态信息存储在客户机系统的时候启动一个定时器的装置,和用于在所述的定时器终止时删除所述的对话状态信息的装置。
19.在通信网络的第一个系统的第一个计算机程序和通过网络的第二个系统可访问的第三个计算机程序之间数据通信的一种方法,包括步骤响应于由所述的第二个系统从所述的第一个程序在一个同步通信对话之中接收到一个请求,向第三个程序发送一个请求作为一个异步通信,所述的异步请求包括由第二个系统的所述第二个程序分配的对话识别符;一旦,由所述的第二个系统接收到一个对所述的异步通信的应答,使用所述的对话识别符将所述的应答与来自第一个程序的所述请求相关联,以使得能够将一个应答发送到第一个程序。
20.在通信网络的第一个系统的第一个计算机程序和通过网络的第二个系统的第二个计算机程序访问的第三个计算机程序之间数据通信的一种方法,包括步骤从第一个程序在一个同步通信对话之中发送一个第一个请求到第二个程序;响应于由所述的第二个系统从所述的第一个程序接收同步请求,向第三个程序发送一个请求作为一个异步通信,所述的异步请求包括由第二个系统所述的第二个程序所分配的对话识别符;一旦,由所述的第二个系统接收到一个对所述的异步通信的应答,使用所述的对话识别符将所述的应答与来自第一个程序的所述请求相关联,以使得能够将一个应答发送到第一个程序;和在所述的同步通信对话中发送一个应答到所述的第一个处理,如果在接收到一个对所述异步通信的应答之前进行发送,所述的对第一个处理的应答包括一个含有所述的对话识别符的预先的应答。
21.依据权利要求20的一种方法,其中如果在一个当前的时限终止之前没有接收到对所述的异步通信的应答,将一个预先的应答发送到所述的第一个处理。
全文摘要
提供一个网关用于链接不同的通信模型。该网关可能是安装在一个服务器系统上的一个计算机程序,它便利了要求同步的通信对话的计算机程序和基于通信的一个异步模型的计算机程序之间的互操作。本发明使得一个同步连接的客户机能够再次访问与一个服务器和异步通信的程序的交互,交叉与多个应用的交互,并且将一个长期运行的应用的请求-响应对关联在一起。实际上,本发明提供了能够链接因特网WWW服务和一个通用的消息发送系统的设备和方法。
文档编号G06F17/30GK1219257SQ9719478
公开日1999年6月9日 申请日期1997年5月19日 优先权日1996年5月24日
发明者皮特·戴卫·尼布里特, 卡林·露易斯·兰德尔 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1