CN101341724A - 用于web服务通信的历史驱动优化的***和方法 - Google Patents

用于web服务通信的历史驱动优化的***和方法 Download PDF

Info

Publication number
CN101341724A
CN101341724A CNA2006800455301A CN200680045530A CN101341724A CN 101341724 A CN101341724 A CN 101341724A CN A2006800455301 A CNA2006800455301 A CN A2006800455301A CN 200680045530 A CN200680045530 A CN 200680045530A CN 101341724 A CN101341724 A CN 101341724A
Authority
CN
China
Prior art keywords
message
string
storage area
receiver device
place
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
CNA2006800455301A
Other languages
English (en)
Other versions
CN101341724B (zh
Inventor
C·纳拉亚纳斯瓦米
M·T·拉格胡纳斯
M·罗素
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=38110257&utm_source=***_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=CN101341724(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 CN101341724A publication Critical patent/CN101341724A/zh
Application granted granted Critical
Publication of CN101341724B publication Critical patent/CN101341724B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/04Protocols for data compression, e.g. ROHC
    • 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/04Protocols specially adapted for terminals or networks with limited capabilities; specially adapted for terminal portability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/142Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Debugging And Monitoring (AREA)
  • Preliminary Treatment Of Fibers (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

一种用于传送Web服务(WS)消息的***、方法和计算机程序产品。首先,在每个发送机设备和接收机设备处分配相同数量的高速缓存器历史存储区域,用于存储传送的WS消息串的历史。在发送机处,生成被构建的每个消息的中间数据表示,相应的消息串被存储在高速缓存器历史存储区域。消息按照构建的数据表示作为序列化的数据串被传送。对于要被传送的每个以后的消息,方法包括识别正被构建的当前消息的中间数据表示中的相同部分,和用参考指示符替换在消息串中的每个识别的部分,所述参考指示符是对于在高速缓存器存储区域中和与已被传送的以前的消息有关的相同字符串部分相对应的位置的指示符。在接收机设备处识别在接收的消息串中的参考,以及在消息中替换被本地存储在接收机设备处的一个或多个中间数据表示,以便完成接收消息的构建。

Description

用于WEB服务通信的历史驱动优化的***和方法
技术领域
本发明通常涉及诸如在互联网/3W(world-wide-web)网上的网络通信,更具体地,本发明涉及用于减小用于提供和消费基于Web的服务(WS)的实体的通信带宽和开销的***和方法。
背景技术
Web服务(WS)是编程模型,其包括一组被开发来提供到远端机器上的应用逻辑的编程接入的标准。这个应用逻辑对于在每个平台上以每种编程语言的客户端是可接入的。一个核心Web服务构建块是SOAP(简单对象访问协议),它是一种允许,但不限于,RPC(远程程序呼叫)消息作为XML文件被传送并调用Web服务的能力的标准框架。已经知道,WS不仅仅被广泛使用于互联网(或Web),而且也应用于企业网络,甚至在位于同一个地点甚至房间的机器之间。虽然WS初始被设计用于通过web的接入,但WS在内部网内,即在企业网络内,也很流行。
图1A显示典型的WS架构10,包括它的逻辑部件。如图1A所示,Web服务供应商18负责部署Web服务,并由负责服务登记和发现Web服务的Web服务代理方15公布Web服务。具体地,代理方列出各种服务类型、说明、和服务的位置,帮助服务请求方找到和预订需要的服务。Web服务请求方12通过使用服务代理方15定位Web服务而负责服务调用,调用所需要的服务,和通过服务供应商执行它。更具体地,正如在书“Developing JavaTM Web Services”(RameshNagappan等,Wiley Publishing,Inc.2003)中描述的,Web服务供应商18包括服务容器28,它用作为Web服务运行时环境和主管(host)服务供应商。服务容器28具体地规定意图用于客户端通信的环境以及帮助Web服务部署和管理,客户端通信使用被称为Web服务定义语言(WSDL)的、用于描述Web服务的基于标准XML方案的技术规范来实施描述网络服务的标准化方式。另外,它操控使用服务注册表30a,b注册服务说明。这样的注册表包括实施统一描述、发现和集成(UDDD标准30a的那些注册表(www.UDDI.org)或规定注册表服务、互动协议、和消息定义,并且还用作为用于共享信息的存储装置的ebXML注册表30b(www.ebXML.org)。Web服务请求方12包括服务传递部件22,它通过查看服务注册表找出所需的服务而用作为客户端运行时环境,然后使用SOAP消息25从服务供应商调用它们。正如已知的,SOAP协议包括以下单元:用作为用于SOAP消息的其它单元的容器的SOAP封装;用于下层传输协议的SOAP传输绑定;用于表示消息中的数据的SOAP编码法则组(映射应用专用数据类型的实例到XML消息);以及应用互动模式,最经常是RPC惯例,它规定对于RPC请求和响应的表示,以及被规定为序列化远程程序呼叫和响应为SOAP消息的方法。(Java和所有基于Java的商标和标志是SunMicrosystems,Inc.在美国或其它国家或二者的商标。)
图1B显示在传统的SOAP RPC实施方案中的示例性客户端-服务器互动。如图1B所示,客户端12使用SOAP/HTTP协议(即,使用HTTP传输绑定的SOAP消息协议)通过诸如互联网那样的网络99与服务供应商(或简称为“服务”)18互动。SOAP消息协议使得消息25能够在服务供应商端点18与服务请求方端点12之间以请求-应答对进行交换。这是SOAP结合HTTP(互联网)消息输送和/或RPC惯例使用的方法。虽然SOAP规定消息应当如何通过HTTP进行交换,但应当看到,任何通信协议(例如,SMTP、WebSphere
Figure A20068004553000091
MQ、Raw Sockets等等)或方法可以用HTTP替换。(WebSphere是IBM公司在美国和其它国家的注册商标。)在这个传统的实施方案中,客户端12通过对于每个呼叫发送一个消息而在服务供应商18上进行远程程序呼叫(RPC)。同样地,服务供应商18通过对于每个应答发回一个消息到客户端12而应答这些呼叫。在Web服务中的主要技术在发送之前是组合SOAP消息和在接收之后解密SOAP消息的各个处理。对于SOAP消息的这些处理通常通过在存储器中创建DOM(文件对象模型),或类似的树状对象而被执行。这样,处理可以通过使用SOAP消息的树表示被执行,而不用考虑消息的文本表示。
由于XML的ASCII特性,Web服务的实施方案合并重大的带宽要求和通信开销。另外,WS是自描述的,这样,客户端和服务器只需要识别请求和应答消息的格式和内容。WS消息格式的定义随消息而行进;不需要外部元数据储存器或代码生成工具。因此,当分析任何SOAP消息的内容时,开销是明显的。使用SOAP和XML不仅仅转换成非常大的消息,即在TCP/IP栈中重大的开销和增加的带宽使用,而且由于SOAP的庞大的结构,也转换成重大的解析开销。而且,作为WS的最通常使用的传输方式的HTTP加上了附加通信和解析开销。
在传统的台式/服务器平台上,这些开销的影响通过使用具有更快速的CPU和更多的存储器的千兆比特以太网,和通过消除在初始的SOAP实施方案,诸如在Apache Axis引擎中存在的性能瓶颈,而被大大地补偿。不幸地,受资源限制的移动平台,诸如蜂窝电话、PDA、或笔记本电脑,不能从这些解决方案中获益。面向硬件的方法典型地不被应用到这些受能量-和尺寸-限制的设备,因为更快速的网络或CPU或更多的存储器消耗更多的功率,并且它们不总是符合想要的形式因素。同样地,SOAP引擎实施方案需要附加的优化,以便减小它们的存储器占用(memory footprint)。
在典型的B2B Web服务部署情形中,例如,Web服务客户端可以发出几个呼叫到服务端点,以及这些呼叫可以具有几个参数,它们不随调用而改变。例如考虑几个购买者通过使用Web服务呼叫来发送购买订单到销售者而与销售员的Web服务端点进行互动。每个购买订单可以具有几个字段,这些字段中的许多可以描述购买者,所以对于每个调用这些字段对于具体的购买者是相同的。这种类型的参数重复主要由于Web服务的无国家特性。保持对于(服务端点、客户端)组合特定的状态,可以使得网络业务的压缩比比起用简单的无国家gzip式样压缩实行的压缩比更好。
实行WS服务,具体地,实行消息压缩的各种技术在技术上是已知的。这样的技术例如包括:
1)Hartmut Liefke和Dan Suciu,“XMill:an Efficient Compressorfor XML Data”(ACM SIGMOD 2000)描述用于压缩XML数据的工具,这达到以大约相同速度的gzip的压缩比的约两倍。XMill把结构与数据、组相关的数据项分开,并应用一系列专门化的压缩器。只能在WS消息生成后才被应用,这增加消息滞后时间。
2)WAP二进制XML(WBXML)(http://www.w3.org/TR/wbxml/)June 1999,描述把XML分割成被二进制编码的预定的标记,和被内嵌编码的休止符(rest)。标记表被保持在发送/接收端。初始地,仅仅用于WAP的标记表是可得到的;用于SyncML和DRMREL(数字权利管理权利表达语言)的附加表以后被定义。主要好处在于,知道WBXML的SAX解析器具有非常低的开销。主要缺点是它只能用于预定的XML方言,因为用于XML方言(dialect)的标记表必须存在于两端。
3)Marc Girardot和Neel Sundaresan,“Millau:an encodingformat for efficient representation and exchange of XML over theWeb”,(http://www9.org)May 2000,描述结构与用于压缩的文本的分开,和利用相关的方案。由于它压缩内嵌文本和懂得XML基本类型而扩展到WBXML。Millau具有与WBXML相同的缺点。
4)Christian Werner,Carsten Buschmann,Stefan Fischer,“Compressing SOAP Messages by using Differential Encoding”(IEEEInternational Conference on Web Services,July 2004),在本文的第一部分描述比较SOAP(.NET和Java)、RMI-IIOP、Corba、RMI、和gzip压缩的SOAP的带宽要求。第二部分描述差分SOAP压缩,它只发送在一个消息与前一个消息之间的差值。实际上,差分编码首先通过使用WSDL文件计算一系列梗概消息而工作;接着,它计算在消息与预测的梗概之间的差值,然后把它发送。在差分编码中,编码与译码开销可以是很大的。
5)M.Tian,T.Voigt,T.Naumowicz,H.Ritter,J.Schiller,“Performance Considerations for Mobile Web Services”(ElsevierComputer Communications Journal,Volume 27,Issue 11,1 July 2004,pp.1097-1105)描述压缩为何不总是有利的,特别是当它使得服务器过载时。
6)Kenneth Barr和Krste Asanovic,“Energy Aware Lossless DataCompression”(Mobisys 2003,May 2003)描述如何通过典型的压缩工具,它比起发送未压缩的数据,用更多的能量来压缩和发送数据。压缩工具的知道硬件的优化被显示为,它减小被使用于压缩的能量。这篇文章表明,压缩方案必须细心地选择。
7)Naresh Apte,Keith Deutsch,和Ravi Jain,“Wireless SOAP:Optimizations for Mobile Wireless Web Services”(Poster atwww2005.org,May 2005)提出两种优化技术:1)名称空间等价性(NPE),和2)知道WSDL的编码(WAE)。NPE允许恢复具有不同的但等价的形式的XML消息,WAE需要移动设备网关,它创建用于在WSDL文件中描述的操作的编码表。NPE看来不传递重大的压缩,而WAE需要网关。
8)Toshiro Takase,Hisashi Miyashita,Toyotaro Suzumura,和Michiaki Tatsubori,“An Adaptive,Fast,and safe XML Parser Baseon Byte Sequences Memorization”(www2005.org,May 2005)描述XML解析器(“Deltarser”),它使用历史来识别以前看到的句法结构和重用匹配结构的结果。Deltarser解析器减小在接收机节点处的解析开销,但它不减小带宽要求,也不减小在发送节点处生成消息的开销。
发明内容
优选地,提供一种提供用于在部署Web服务的环境下很大地减小SOAP消息处理开销的一种或多种优化的***和方法。
优选地,提供一种提供用于在部署Web服务的环境下很大地减小SOAP消息通信开销的一种或多种优化的***和方法。
优选地,提供一种提供WS/SOAP消息压缩优化方案的***和方法,所述WS/SOAP消息压缩优化方案以比起现有的WS/SOAP消息压缩方案低得多的能量和等待时间花费来提供相当大的压缩。
按照优选实施例,本发明涉及提供用于在部署Web服务的环境下很大地减小SOAP消息开销的一种或多种优化的***、方法、和计算机程序产品。
更具体地,按照优选实施例,本发明提供一种利用在两个端点之间的WS业务的重复特性来识别在两个设备的SOAP和HTTP引擎中在几个层上的一系列优化的解决方案。更具体地,两个设备优选地保持在每个方向上接收和发送的最新数目“N”个WS有关的字节的历史。历史的尺寸对于两个方向不必是相同的,但对于一个方向的发送和接收端必须使用完全相同的历史尺寸。WS的可靠的、按次序的传递保证两端对于共同的历史具有一致的观点。
通信开销优选地通过用以前的消息中的参考替换在SOAP消息中很好定义的单元而被减小。发送端和接收端在它们的历史缓存器中优选地用它们参考的字符串来替代参考:这使得在相同的方向上发送的以后的消息能够进行相同的或类似的压缩。
因此,按照本发明的一方面,提供了用于传送消息的***、方法、和计算机程序产品。用于传送消息的方法包括:在每个发送机设备和接收机设备处分配某一数量的第一高速缓存器存储区域,高速缓存器用于存储相应于在各个发送机和接收机设备处传送的和接收的消息串的字符串;以及构建代表要被传送的消息的中间数据结构,中间数据结构适于存储在发送机设备的第二高速缓存器存储区域;以及根据构建的中间数据结构,构建要被传送的消息串;以及,对于要被传送的每个以后的消息:对于当前的消息识别在构建的中间数据结构中的部分,当前的消息用等同于在与以前的通信消息串相对应的构建的中间数据结构中存在的同样部分的部分被构建;根据当前构建的中间数据结构,构建要被传送的消息串以及用参考指示符(reference indicator)替代在消息串中的每个识别的部分,其中参考指示符是对于在第一高速缓存器存储区域中相应于与已被传送的以前的消息有关的相同的字符串部分的位置的指示符;以及,在接收机设备处,识别在接收的消息串中的参考指示符,和替换以在接收机设备处第一高速缓存器存储区域中存储的一个或多个高速缓存的相同的字符串部分,以便构建接收的消息,由此在发送和接收设备处的消息通信基础架构资源被节省。
在本发明的一个实施例中,中间数据结构包括消息的结构化树表示,识别的串部分包括一个或多个子树或树分段。
在本发明的一个实施例中,在发送机设备和接收机设备处高速缓存器历史存储区域的分配包括:在设备之间实施初始握手协议,以便传送要分配的第一高速缓存器存储区域数量。对于这个实施例,在接收机设备处,所分配的第一高速缓存器存储区域的数量优选地至少与在发送机设备处分配的第一高速缓存尺寸一样多。
在本发明的一个实施例中,参考指示符涉及相应于在构建的中间数据结构中识别的子树或分段部分的序列化消息串部分的属性,其中所述子树或分段部分等同于在相应于以前传送的消息串的构建的中间数据结构中存在的相似子树或分段部分。
属性可包括一个或多个以下的项目:以前发送的消息的指示、标识以前传送的消息的树表示的消息ID、相应于标识的树的串的长度、和在以前传送的消息中的偏移长度。
而且,在本发明的一个实施方案中,在接收机设备处,相同的部分的识别包括:解析接收的消息串和构建结构化树表示,其存储在接收机设备处的第二高速缓存器存储区域。结构化树表示被存储,供以后在接收机处构建接收消息时使用。
有利地,用于替换的候选者优选地包括通信协议报头的单元(例如,HTTP报头)和WS消息(例如,SOAP封装)。然而,用于替代操作、名称和甚至参数或结果的更高级优化是可得到的。
按照另一方面,提供了一种用于在web环境下传送消息的设备,包括:在发送机设备处支持用于生成要被传送到接收机设备的WS消息串的Web服务(WS)栈实施方案的装置,所述被传送的消息串被存储在所述发送机设备的第一高速缓存器存储区域和被存储在所述接收机设备的第一高速缓存器存储区域中;在接收机设备处支持用于应答被传送到所述接收机设备的接收的WS消息请求串的WS栈实施方案的装置,在所述发送机和接收机设备处的每个所述WS栈实施方案构建和存储代表发送的和接收的WS消息串内容的中间数据结构和在各个发送机和接收机设备处本地存储构建的中间数据结构;在所述发送机设备的所述WS栈实施方案实施用于根据当前构建的中间数据结构构建要被传送的消息串和用参考指示符替换在消息串中的每个识别的部分的装置,其中参考指示符是对于在所述第一高速缓存器存储区域中相应于与已被传送的以前的消息有关的相同的字符串部分的位置的指示符;以及,在接收机设备处的所述WS栈实施方案识别在接收的消息串中的参考指示符和替换以在所述接收机设备处的所述第一高速缓存器存储区域中存储的一个或多个高速缓存的相同的字符串部分,以便构建接收的消息,由此在所述发送和接收设备处的WS消息通信基础架构资源被节省。
按照另一方面,提供了一种由机器可读的程序存储装置,其有形地体现机器可执行的指令的程序,该程序执行用于传送消息的方法步骤,所述程序存储装置执行用于执行以下方法步骤的指令:在每个发送机设备和接收机设备处分配某一数量的第一高速缓存器存储区域,所述高速缓存器用于存储相应于在各个发送机设备和接收机设备处传送的和接收的消息串的字符串;以及构建代表要被传送的消息的中间数据结构,所述中间数据结构适于存储在所述发送机设备的第二高速缓存器存储区域中;以及根据所述构建的中间数据结构,构建要被传送的消息串;以及,对于要被传送的每个以后的消息:对于当前的消息,识别在构建的中间数据结构中的部分,当前的消息用等同于在相应于以前传送的消息串的构建的中间数据结构中的相似部分的部分被构建;根据所述当前构建的中间数据结构,构建要被传送的消息串以及用参考指示符替换在消息串中的每个识别的部分,所述参考指示符是对于在所述第一高速缓存器存储区域中相应于与已被传送的以前的消息有关的相同的字符串的位置的指示符;以及,在所述接收机设备处,识别在接收的消息串中的参考指示符,和替换以在所述接收机设备处的所述第一高速缓存器存储区域中存储的一个或多个高速缓存的相同的字符串部分,以便构建接收的消息,由此在所述发送和接收设备处的消息通信基础架构资源被节省。
附图说明
现在参照以下的附图,仅仅作为例子,描述本发明的优选实施例:
图1A和1B提供其中按照优选实施例实施本发明的Web服务的架构10(图1A)和消息传送图25(图1B);
图2A和2B显示被使用来确定接收端和发送端是否实施本发明的优选实施例的优化和把在两个末端处的历史尺寸设置为相同的数值的握手协议;
图3是描述按照本发明的优选实施例的优化的发送机端SOAP/HTTP处理的流程图;
图4是描述按照本发明的优选实施例的优化的接收机端SOAP/HTTP处理的流程图;
图5A、5B例示了WS SOAP业务被显示为在两个方向上(图5A中从客户端到服务器和图5B中从服务器到客户端)传送,以便进行两个接连的WS调用;
图6显示按照本发明的优选实施例的、图5A所示的两个请求消息205,210的各个树表示255,260;以及
图7A、7B显示按照本发明的优选实施例的、在相应于图5A的请求消息调用205,210中的SOAP消息/HTML报头中的两个的各个串285,290之间的各个重叠。
具体实施方式
本发明提供按照优选实施例的、用于提供一个或多个优化,以便很大地减小在诸如图1A,B所示的那样的部署的Web服务环境下SOAP消息传送开销的***、方法和计算机程序产品。在本技术说明书中参考以下的以印刷形式或在线地提供的文献,这些文献在此引用以供参考:
1.Note,″Web Services Description Language(WSDL)1.1″,Mar.15,2001;
2.
Figure A20068004553000172
Recommendation,″Extensible Markup Language(XML)1.0(Second Edition)″,(Oct.6,2000)(http://www.w3.orq)
3.
Figure A20068004553000173
Recommendation,SOAP Version 1.2 Part 0:Primer(June 24,2003);
4.
Figure A20068004553000174
Recommendation,SOAP Version 1.2 Part 1:MessagingFramework(Recommendation);
5.Recommendation,SOAP Version 1.2 Part 2:Adjuncts(Recommendation);
6.Recommendation,SOAP Version 1.2 Specification Assertionsand Test Collection;
7.Recommendation,SOAP Message Transmission OptimizationMechanism(January 25,2005);
8.
Figure A20068004553000178
Recommendation,XML-binary Optimized Packaging;以及
9.
Figure A20068004553000179
Document Object Model(DOM)(http://www.w3.orq/DOM/)
按照SOAP消息传送协议的第一任选的扩展,在第一请求消息中提供新的HTTP选项,它提出对于例如发送的特定方向的历史尺寸。如果另一个方向(例如,接收)端点实施扩展,则它将用应答方向的历史尺寸进行应答,以及可能用对于相反方向的较小的历史尺寸的请求进行回答。这个初始握手远程地类似于TCP协议的SACK(选择性确认)扩展。协商历史尺寸的能力被加到这个握手协议。在任一个方向的历史尺寸的以后的调节通过提出新的历史尺寸字节数被执行。接受或拒绝在回答消息中被信号告知。
图2A和2B具体地显示被使用来确定WS接收端点(WS客户端)12和WS发送端点(WS服务器)18二者是否实施本发明的优选实施例的优化和把在两个末端处的历史尺寸设置为相同的数值的握手协议40。
如图2A所示,在第一握手消息45a中的Web服务客户端12建议历史尺寸的数值,它向服务器附加地表示,客户端实施所建议的优化。如果Web服务服务器18实施优化和它具有可得到的所需存储器,则它在握手回答消息45b中返回相同的历史尺寸或较小的数值。否则,如图2B所示,Web服务服务器18忽略所建议的历史尺寸。有多种实施这一点的方式。例如,基于WS的实施方案可以使用附加的选项,其具有被加到实施优化的所有端点的预定的名称和签名。因此,例如,如果它没有理解请求,即,它没有实施所建议的优化(图2B),则来自客户端12的第一呼叫将是这个操作的WS调用,以及服务器18返回历史尺寸的数值(图2A)或SOAP故障。这个实施方案具有需要附加的WS调用的缺点。替换实施方案在上述的用于协商的开端中,使用新的HTTP报头字段或XML注释。以后的实施方案不需要附加的WS调用,因为握手协议40在第一应用调用上捎带选(piggyback)。握手协议40可以被附加地使用于修改历史尺寸或以后在互动期间结束所建议的优化的使用。在那些情形下,如果使用一个以后的实施方案,则可以由WS服务器发起重新协商。
应当看到,在握手消息45a中协商的高速缓存器的历史尺寸是‘管理的’存储器,即,仅仅被分配用于存储SOAP消息串历史的高速缓存器。被使用于高速缓存(子)树的存储器(例如,树高速缓存器)-其内容由被保存在串高速缓存器中的串确定-不按照这个握手协议被协商,以及这个存储器在客户端(发送机)和接收机端不必是相同的。只有被分配用于存储SOAP消息串历史的高速缓存器才必须在两端具有相同的尺寸。
图3是描述按照本发明的优选实施例的优化的发送机侧SOAP/HTTP处理的流程图。
在图3上,在发送端点处生成WS栈时,执行按照一个实施例的压缩,即,在SOAP消息被构建的同时识别SOAP消息单元的替代。这与通过比较新的消息与可得到的历史而起作用的典型的串压缩方案不同。更具体地,在发送端点处SOAP引擎的各个部件必须保持在本地历史中仍旧可得到的SOAP部件的短的历史。压缩与SOAP外出路径深度地集成,所以,充分利用SOAP协议的语义。预期这个特性比起现有的方案以低得多的能量和等待时间花费提供很大的压缩,并具有传送的越多,学习的越多,即,如果保持足够的历史则可以压缩得越多的附加优点。结果,还有可能通过使用自适应算法调节历史尺寸,即,客户端侧和发送机侧可以重新协商每侧要保持的高速缓存器的历史尺寸的量。然而,应当看到,两端保持相同量的消息串高速缓存器。为了这个算法能行得通,接收机必须保持至少与发送机一样多的、或更大量的高速缓存。
在一个实施例中,在发送侧,其中生成SOAP消息,如图3所示,在客户端设备处实施的方法100包括调用发送存根的典型的步骤。在步骤102,建立执行的代码(子程序)和在其上运行存根并已按照本发明的一个实施例修改的WS栈基础架构,这使得能够把事务(例如,方法调用)路由到服务器上的WS对象和/或使得能够与服务器对象互动,以调用Web服务。然后,在步骤105,假设高速缓存历史以前已按照现有的握手协议协商(用于在发送机和接收机存储DOM(类似的)树数据结构内容),作出关于树高速缓存器是否为空的决定。当还没有构建历史时,这个高速缓存器在要发送第一消息时或之前可以是空的。如果树高速缓存器在步骤105被确定为空的,则下一个步骤牵涉到在步骤108构建分级结构的文件对象模型DOM(类似的)树结构,这使能动态接入和更新文件,并把构建的树存储在树高速缓存器中。然后,在下一个步骤113,例如,通过实施用于把所存储的树数据结构变换成字符流的子程序,把树序列化,这些字符流可以在发送机处重新汇编回原始的消息数据结构的相同拷贝。最后,在步骤115,被序列化的字节流被附着(被包装)以HTTP报头,并把请求发送到服务器。
回头参考图3,在步骤105,按照本发明的优选实施例的优化修改方案,如果确定树高速缓存器不是空的,即,它包括历史,该历史包括来自第一和/或以前的消息的以前构建的DOM(类似的)树数据结构或子树或树分段(例如,分支),则下一个步骤牵涉到从在高速缓存器中的现有的树结构构建扩展的树结构,如步骤120所示。应当指出,可用于保存扩展的树结构的串表示的高速缓存器尺寸的量是不可得到的,则它的较老的构建的树或部分(子树或树分段)可以在步骤120被削去。替换地,扩展的树结构被保存,如步骤123所示。在这种优化中,现有的高速缓存的树结构在使用以前的树(子树或树分段)的单元时被构建,因此,避免通过积攒(scratch)和保留处理资源来构建树的需要。在步骤126继续进行分析消息和构建它的串表示,扩展的树结构被序列化,被变换成适于传输的数据字节。然而,对于优选实施例的优化,不是所有构建的树都需要被序列化。也就是,施加压缩,由此在以前的消息中已发送的串(例如,相应于子树或树分段)例如用表示该消息部分在该串高速缓存历史的什么地方被发送的反向参考指针替换。这样的反向参考指针或类似的指示符被提供来代替串,以及具有指向在高速缓存历史中存在树分段的地方的属性,例如,在该串高速缓存历史中追溯到多少字节,以便检索与以前使用的子树或树分段数据结构有关的构建的串,以及对于该子树或树分段生成的字符量的指示。这样,执行压缩,原因在于不必发送树内容,而只需发送替换的反向参考指针,其使得接收机WS栈处理能够检索被存储在它的高速缓存历史中的精确的内容和构建相关的消息。然后,在步骤128,执行压缩负责传送SW消息的网络协议报头,例如HTTP报头的步骤。因此,最后,压缩的HTT报头被附着到序列化的字节流,并且压缩的请求在步骤129被发送。
在一个实施例中,有利地执行HTTP报头的压缩,因为HTTP报头可以潜在地代表SOAP消息的重要部分。这对于当前规定的或设想的所有的HTTP绑定,对于HTTP请求和应答消息是正确的。对于被设计用于嵌入***的SOAP栈和对于相对较简单的调用,这个部分可以特别大,例如,如在图5A和5B所示的示例性WS调用200中示例性HTTP报头消息内容202,203中表示的。在发送机侧,HTTP报头通过使用非常类似于串压缩,但具有低得多的开销的方法被压缩。例如,HTTP压缩可以通过实施修改的LZW(Lempel Ziv Welch)算法而被执行,‘修改方案’包含仅仅对于先前发送的HTTP报头,而不对于整个串高速缓存器施加LZW。这是因为执行压缩的栈部件知道,只有几个子串是新的报头可以与其成功地比较的:以前发送的消息的报头。在接收机侧,压缩的报头被它所涉及的子串,即以前接收的消息的报头替换,并连同在它的处理期间这个层附加到子串的无论什么信息一起被传送到web容器,即,HTTP处理层。这个附加信息,其包含大多数(属性,数值)对,被保存来帮助子串的以后的处理;使用附属信息降低在接收机侧HTTP处理的开销。因此,图3中的步骤129打算执行附加压缩的HTTP报头的步骤。
正如已知的那样,DOM解析器从输入文件创建在存储器中的树结构。DOM是平台和语言中立的接口,它允许程序和脚本动态地接入和更新内容,文件的结构和式样。它附加地提供用于将XML文件表示为节点对象的分级结构的技术说明书,所述节点对象也实施其它的、更专门的接口(见http://www.w3.org/DOM/#specs)。某些类型的节点可以具有各种类型的子节点,以及其它的节点是叶节点,它们在文件结构中不会具有低于它们自己的任何节点。WS栈实施方案使用DOM接口/解析器来处理SOAP消息;然而,也可以使用其它类型的结构化语言解析器,例如,SAX解析器,而不背离本发明的精神和范围。因此,DOM方法可以通过使用SAX解析器(用于XML的简单的API,当前的版本是SAX 2.0.1)而被替换,以便构建到来的SOAP消息的树表示。
因此,对图3进行更详细地论述,已经知道,基于树的API是以树结构为中心,所以,它提供在树的部件上的接口,诸如文件接口,节点接口,节点列表接口,单元接口,属性接口等等,用于所谓的DOM文件。支持优选实施例的优化的WS栈实施方案使用类似的方法。然而,使用了至少三种附加节点属性:1)相应于其根部在该节点的树的XML串的长度;2)树表示的、用来识别消息的消息ID:以及3)消息中的偏移。这些属性被使用来生成反向指针,其被添加来代替序列化的子树部分或树分段数据表示。
详细说明在步骤105评估的树高速缓存器结构,树高速缓存器是相应于被发送或接收的最后几个消息或这些消息的分段的树/子树的集合;当新的消息被发送或接收时,最老的消息被丢弃。有最大数目的、可以由发送机使用的树/消息;同样地,有最大数目的、应当由接收机保持的树/消息。这两个数目被确定为其积累长度大于协商的历史尺寸的最短的消息历史。因此,详细说明图3的步骤126,树高速缓存器实施方案避免存储相同的子树的多个拷贝,以及从现有的树结构实行新树的构造(重用)。
因此,详细说明当组建新的消息时构建树(步骤123-126)的发送侧功能,修改的WS栈试图根据树高速缓存内容重用尽可能多的子树。在SOAP消息中,重用的子树转换成对在以前发送的消息中的XML子串的参考。仅仅相应于保证是在接收机高速缓存器中的消息的子树被使用来创建在SOAP/XML消息中的反向参考。
图4是描述根据按照本发明的优选实施例的优化的接收机侧SOAP/HTTP处理的流程图。在接收侧,其中接收SOAP消息,如图4所示,在服务器处实施的方法130包括:接收客户端SOAP消息(请求)和剥离HTTP报头(步骤132)。然后,在步骤135,作出关于HTTP报头是否被压缩的决定。如果在步骤135确定HTTP报头已被压缩,则在步骤138,把HTTP报头解压缩,以及处理过程前进到步骤140,其表示当消息被接收时对HTTP报头执行的正式处理。否则,如果在步骤135确定HTTP报头没有被压缩,则处理过程前进到步骤140,其表示当消息被接收时对HTTP报头执行的正式处理。在处理步骤140后,在步骤142作出关于高速缓存器(用于存储DOM(类似的)树数据结构内容)是否为空的决定。这个服务器(接收侧)高速缓存器在来自这个特定的发送机的第一消息被接收时可以是空的,因为在接收机处还没有构建历史。如果在步骤142树高速缓存器被确定为空的,则执行包括以下步骤的接收侧处理,诸如:解析请求串和构建DOM(类似的)树(步骤145);把新树保存到树高速缓存器(步骤146);以及识别在请求中的操作/参数和调用WS接收机侧存根(stub)(步骤148)。应当看到,客户端也处理到来的消息,它们构成来自服务器的应答。
在接收侧,其中接收SOAP/HTTP消息,如果在步骤142确定树高速缓存器(用于存储DOM(类似的)树数据结构内容)不是空的,则下一个步骤牵涉到在步骤150解析请求串和构建DOM(类似的)扩展树。然而,在本实施例中,所构建的树利用以前被存储在来自先前的消息(调用)的本地串高速缓存历史中的先前高速缓存的(涉及的)子树或树分段数据表示。按照优选实施例,当构建相应于接收消息的树时,接收机使用如由到来的SOAP/XML消息中的反向参考指针指令的、高速缓存的子树,如果有的话。也就是,当明显的XML内容被接收时,新的子树被构建和被***到代表消息的树中。新树可以重用在接收机高速缓存器中现有的树的大部分,如由到来的消息中的反向参考表示的那样。然后,新的DOM(类似的)扩展的树结构被保存在高速缓存器中,如在步骤153表示的那样。最后,在步骤156,操作/参数被识别,以及为了通过调用WS功能来应答接收的消息而调用ws接收存根,如在步骤156表示的那样。
因此,在其中执行解压缩的接收端点处,按照本发明的优选实施例,提供以下的优化。具体地,任何反向参考指针用在本地串高速缓存历史中的串替代并被合并到接收的消息流中。优选地,参考总是用以前通过本地SOAP引擎的到来路径进行解析的串替代。一旦被解析,串就用它们的HTTP/SOAP级标签,诸如URL、EncodingStyleToken(编码类型令牌)等等来进行注解。所以,本发明优选地提出对于到来路径的修改方案以允许把预解析的串直接合并到解析接收的WS消息中。这将导致解析每个压缩的串分段仅仅一次。
在按照优选实施例执行的压缩操作的非常简单的例子中,现在参考附图5A,5B,图上具体地显示了说明在WS调用和应答200中重复的类型的示例性消息轨迹。这些轨迹是通过作为SOAP技术规范的开放源实施方案的、被称为TCPMonitor的工具(Axis的一部分)获取的,它是从Apache网址(www.apache.org)可得到的。在图5A,5B上显示对于两个接连的WS调用的、在两个方向上(在图5A上客户端到服务器,和在图5B上服务器到客户端)传送的示例性WS SOAP业务。如图5A所示,第一请求(从客户端到服务器)包括HTTP报头202,后面是对于“相加”调用205的SOAP消息。在对于运算‘相加’的例子中,两个示例的参数是‘7’和‘5’。在第二请求(从客户端到服务器)中,HTTP报头203后面是用于第二调用210的SOAP消息,具有示例的参数‘3’和‘11’的‘相乘(mul)’运算。图5B分别显示对于第一‘相加’和第二相乘调用205,210的应答的各个应答消息(从服务器传送到客户端的消息)215,220。
图6显示图5A所示的两个请求消息205,210的各个树表示255,260。显示了在两个调用(重叠)的每个调用中公共的消息分段275。应当指出,仅仅消息的SOAP部分被表示为树,即,HTTP报头没有表示为树。属性被表示为方形节点265,280,被附着到单元节点(圆形)。
图7A显示在与图5A的两个SOAP请求消息205,210相对应的各个串285,290之间的重叠277。修改的WS栈通过使用紧凑的编码用反向参考指针替代加亮的区域。图7B显示在同样的两个请求消息之间,但在它们的HTTP报头中的重叠297。这个优化需要在支持SOAP引擎的HTTP引擎中加以改变,所述改变都是WS栈的一部分。
有利地,按照优选实施例,本发明的机构需要对于到来路径作出修改,预期在CPU时间和存储器消耗方面造成很大的节省,这将转换成在WS消息处理期间很大的能量节省。
应当指出,所提出的优化不必是对称的。当两个设备具有非常不同的资源特征,诸如台式机/蜂窝电话对时,或当在一个方向上的消息由伪随机分量占优势,诸如非常大的加密结果时,可以仅仅使能在一个方向上的优化。为了禁止在给定的方向上的优化,把历史尺寸设置为零。
本发明是参照按照本发明的实施例的方法、设备(***)和计算机程序产品的图描述的。将会看到,每个图可以由计算机程序指令实施。这些计算机程序指令可被提供到通用计算机的处理器、专用计算机、嵌入式处理器或其它可编程数据处理设备,以产生一个机器,以使得经由计算机的处理器或其它可编程数据处理设备被执行的指令创建用于实施这里规定的功能的装置。
这些计算机程序指令也可以被存储在计算机可读的存储器中,它可以引导计算机或其它可编程数据处理设备以特定的方式起作用,这样,被存储在计算机可读的存储器中的指令产生制造的物品,它包括实施这里规定的功能的指令装置。
计算机程序指令也可以被装载到计算机可读的或其它可编程数据处理设备,以使得在计算机或其它可编程设备上执行的一系列工作步骤,产生计算机实施的处理过程,这样,在计算机或其它可编程设备上执行的指令提供用于实施这里规定的功能的步骤。
虽然本发明具体地是参照本发明的说明的和执行的实施例被显示和描述的,但本领域技术人员将会看到,可以在形式和细节上作出上述的和其它改变,而不背离本发明的精神和范围,本发明应当仅仅由所附权利要求的范围限制。

Claims (33)

1.一种用于传送消息的方法,包括:
在发送机设备和接收机设备的每一个处分配一定量的第一高速缓存器存储区域,所述高速缓存器用于存储与分别在发送机设备和接收机设备处传送和接收的消息串相对应的字符串;以及
构建代表要被传送的消息的中间数据结构,所述中间数据结构适于存储在所述发送机设备处的第二高速缓存器存储区域中;以及
根据所述构建的中间数据结构,构建要被传送的消息串;以及,对于要被传送的每个以后的消息:
对于当前的消息,识别在构建的中间数据结构中的部分,所述当前的消息正在用等同于在与以前传送的消息串相对应的构建的中间数据结构中存在的相似部分的部分构建;
根据所述当前构建的中间数据结构来构建要被传送的消息串,以及用参考指示符替换在消息串中的每个识别的部分,所述参考指示符是对于在所述第一高速缓存器存储区域中和与已被传送的以前的消息有关的相同字符串部分相对应的位置的指示符;以及
在所述接收机设备处,识别在接收的消息串中的参考指示符,并替换以在所述接收机设备处的所述第一高速缓存器存储区域中存储的一个或多个高速缓存的相同字符串部分,以便构建接收的消息,
由此节省了在所述发送设备和接收设备处的消息通信基础架构资源。
2.如在权利要求1中要求的方法,其中所述构建要被传送的消息串的步骤包括:序列化所述构建的中间数据结构以形成消息串。
3.如在权利要求2中要求的方法,其中所述中间数据结构包括:消息的结构化树表示,所述识别的串部分包括一个或多个子树或树分段。
4.如在任一前述权利要求中要求的方法,其中所述在所述发送机设备和接收机设备处分配所述高速缓存器历史存储区域包括:在所述设备之间实施初始握手协议,以便传送要被分配的所述第一高速缓存器存储区域的量。
5.如在权利要求4中要求的方法,其中在所述接收机设备处的所述第一高速缓存器存储区域的所述分配的量至少与在所述发送机设备处分配的第一高速缓存器大小一样。
6.如在权利要求3中要求的方法,其中所述参考指示符涉及到与在构建的中间数据结构中识别的子树或分段部分相对应的序列化消息串部分的属性,所述子树或分段部分等同于在相应于以前传送的消息串的构建的中间数据结构中存在的相似子树或分段部分。
7.如在权利要求6中要求的方法,其中属性包括以前发送的消息的指示。
8.如在权利要求6或7中要求的方法,其中属性包括标识以前传送的消息的树表示的消息ID。
9.如在权利要求6,7或8中要求的方法,其中属性包括与标识的树相对应的串的长度。
10.如在权利要求6,7,8或9中要求的方法,其中属性包括在以前传送的消息中的偏移的长度。
11.如在权利要求3中要求的方法,其中在所述接收机设备处,所述识别部分包括:解析所述接收的消息串和构建存储在所述接收机设备处的第二高速缓存器存储区域中的结构化树表示,所述结构化树表示被存储以供以后在所述接收机处构建接收的消息时使用。
12.如在权利要求11中要求的方法,还包括:在分别发送和接收新消息时,不断地更新在所述发送机设备和接收机设备处的所述第二高速缓存器存储区域中的所述相同部分的所述树表示。
13.如在权利要求11或12中要求的方法,其中所述消息包括:按照简单对象接入协议(SOAP)生成的Web服务消息,所述替换的消息串部分包括SOAP消息的相同节点。
14.如在权利要求13中要求的方法,其中所述SOAP消息按照通信协议被发送,所述替换的消息部分包括通信分组报头的相同部分。
15.如在权利要求14中要求的方法,其中所述SOAP消息按照HTTP通信协议被发送,其中所述替换的消息部分包括HTTP报头和SOAP消息的单元。
16.如在权利要求4中要求的方法,其中在每个客户端发送机设备和接收机设备处分配的所述第一高速缓存器历史存储区域的量是固定的,由此,在发送或接收新消息时,由于相应的串消息在所述第一高速缓存器存储区域中被删除,更老的一个或多个子树或树分段被丢弃。
17.如在权利要求14中要求的方法,其中在每个客户端发送机设备和接收机设备处分配的第一高速缓存器存储区域的量适于扩展或收缩,只要在所述接收机处的每个高速缓存器历史存储区域的量等于或大于在每个客户端发送机设备处的量。
18.一种用于在web环境下传送消息的设备,包括:
在发送机设备处的、支持用于生成要被传送到接收机设备的WS消息串的web服务(WS)栈实施方案的装置,所述被传送的消息串被存储在所述发送机设备处的第一高速缓存器存储区域中,并且被存储在所述接收机设备处的第一高速缓存器存储区域中;
在接收机设备处的、支持用于应答被传送到所述接收机设备的接收的WS消息请求串的WS栈实施方案的装置,在所述发送机设备和接收机设备处的每个所述WS栈实施方案构建和存储代表发送和接收的WS消息串内容的中间数据结构,并在发送机设备和接收机设备处分别本地存储构建的中间数据结构;
在所述发送机设备处的所述WS栈实施方案实现用于根据当前构建的中间数据结构构建要被传送的消息串和用参考指示符替换在消息串中的每个识别的部分的装置,其中所述参考指示符是对于在所述第一高速缓存器存储区域中和与已被传送的以前的消息有关的相同字符串部分相对应的位置的指示符;以及
在所述接收机设备处的所述WS栈实施方案识别在接收的消息串中的参考指示符,并替换以在所述接收机设备处的所述第一高速缓存器存储区域中存储的一个或多个高速缓存的相同字符串部分,以便构建接收的消息,
由此节省了在所述发送和接收设备处的WS消息通信基础架构资源。
19.如在权利要求18中要求的设备,其中所述在发送机设备处的支持web服务(WS)栈实施方案的装置包括:用于生成所述WS SOAP消息请求的WS(简单对象接入协议)SOAP引擎。
20.如在权利要求18或19中要求的设备,还包括:用于在所述发送机设备和接收机设备之间实施初始握手协议以便协商在各个发送机设备和接收机设备处用于本地存储消息串历史的第一高速缓存器存储区域存储器的量的装置,其中所述接收机设备的第一高速缓存器存储区域的量总是等于或大于所述发送机第一高速缓存器存储区域。
21.如在权利要求18、19或20中要求的设备,其中所述构建的中间数据结构包括消息的结构化树表示,所述识别的串部分包括一个或多个子树或树分段。
22.如在权利要求21中要求的设备,其中所述参考指示符涉及到与在构建的中间数据结构中识别的子树或分段部分相对应的序列化消息串部分的属性,所述子树或分段部分等同于在相应于以前传送的消息串的构建的中间数据结构中存在的相似子树或分段部分。
23.如在权利要求22中要求的设备,其中属性包括以前发送的消息的指示。
24.如在权利要求22或23中要求的设备,其中属性包括标识以前传送的消息的树表示的消息ID。
25.如在权利要求22、23或24中要求的设备,其中属性包括与标识的树相对应的串的长度。
26.如在权利要求22、23、24或25中要求的设备,其中属性包括在以前传送的消息中的偏移的长度。
27.如在权利要求22、23、24、25或26中要求的设备,其中所述WS SOAP消息按照HTTP通信协议被发送,其中所述替换的消息部分包括HTTP报头和SOAP消息的单元。
28.如在权利要求21到27的任一项中要求的设备,其中在每个客户端发送机设备和接收机设备处分配的所述第一高速缓存器历史存储区域的量是固定的,由此,在发送或接收新消息时,由于相应的串消息在所述第一高速缓存器存储区域中被删除,更老的一个或多个子树或树分段被丢弃。
29.如在权利要求21到27的任一项中要求的设备,其中在每个客户端发送机设备和接收机设备处分配的第一高速缓存器存储区域的量适于扩展,只要在所述接收机处的每个高速缓存器历史存储区域的量等于或大于在每个客户端所述发送机设备处的量。
30.如在权利要求21到29的任一项中要求的设备,还包括:用于在发送和接收新消息时不断地更新在所述发送机设备和接收机设备处的所述第一高速缓存器历史存储区域中的所述相同部分的所述构建的中间数据表示的装置。
31.一种机器可读的程序存储装置,所述程序存储装置有形地体现机器可执行的指令的程序,该程序执行用于传送消息的方法步骤,所述程序存储装置执行用于执行以下方法步骤的指令:
在发送机设备和接收机设备的每一个处分配一定量的第一高速缓存器存储区域,所述高速缓存器用于存储与分别在发送机设备和接收机设备处传送和接收的消息串相对应的字符串;以及
构建代表要被传送的消息的中间数据结构,所述中间数据结构适于存储在所述发送机设备处的第二高速缓存器存储区域中;以及
根据所述构建的中间数据结构,构建要被传送的消息串;以及,对于要被传送的每个以后的消息:
对于当前的消息,识别在构建的中间数据结构中的部分,所述当前的消息用等同于在与以前传送的消息串相对应的构建的中间数据结构中的相似部分的部分构建;
根据所述当前构建的中间数据结构来构建要被传送的消息串,以及用参考指示符替换在消息串中的每个识别的部分,所述参考指示符是对于在所述第一高速缓存器存储区域中和与已被传送的以前的消息有关的相同字符串部分相对应的位置的指示符;以及
在所述接收机设备处,识别在接收的消息串中的参考指示符,并替换以在所述接收机设备处的所述第一高速缓存器存储区域中存储的一个或多个高速缓存的相同字符串部分,以便构建接收的消息,
由此节省了在所述发送设备和接收设备处的消息通信基础架构资源。
32.一种包括用来执行权利要求1到17的任一项的方法的装置的设备。
33.一种包括适于当所述程序在计算机上运行时执行权利要求1到17的任一项的方法的程序代码装置的计算机程序。
CN2006800455301A 2005-12-05 2006-11-30 用于传送消息的***和方法 Active CN101341724B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/293,909 US7808975B2 (en) 2005-12-05 2005-12-05 System and method for history driven optimization of web services communication
US11/293,909 2005-12-05
PCT/EP2006/069171 WO2007065850A2 (en) 2005-12-05 2006-11-30 System and method for history driven optimization of web services communication

Publications (2)

Publication Number Publication Date
CN101341724A true CN101341724A (zh) 2009-01-07
CN101341724B CN101341724B (zh) 2012-07-04

Family

ID=38110257

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006800455301A Active CN101341724B (zh) 2005-12-05 2006-11-30 用于传送消息的***和方法

Country Status (11)

Country Link
US (2) US7808975B2 (zh)
EP (1) EP1969814B1 (zh)
JP (1) JP5052522B2 (zh)
KR (1) KR101027299B1 (zh)
CN (1) CN101341724B (zh)
AT (1) ATE426992T1 (zh)
BR (1) BRPI0619763B1 (zh)
CA (1) CA2640838A1 (zh)
DE (1) DE602006005963D1 (zh)
TW (1) TWI377819B (zh)
WO (1) WO2007065850A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105938489A (zh) * 2016-04-14 2016-09-14 北京思特奇信息技术股份有限公司 一种压缩详单的存储和展示方法及***

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7808975B2 (en) * 2005-12-05 2010-10-05 International Business Machines Corporation System and method for history driven optimization of web services communication
US7836396B2 (en) * 2007-01-05 2010-11-16 International Business Machines Corporation Automatically collecting and compressing style attributes within a web document
US8125986B2 (en) * 2007-01-19 2012-02-28 International Business Machines Corporation Method for enabling secure usage of computers using a mechanism lockdown
US20080222273A1 (en) * 2007-03-07 2008-09-11 Microsoft Corporation Adaptive rendering of web pages on mobile devices using imaging technology
US20100043065A1 (en) * 2008-08-12 2010-02-18 International Business Machines Corporation Single sign-on for web applications
CN101557297B (zh) * 2009-05-14 2011-06-22 中兴通讯股份有限公司 一种基于互联网的开放式电信业务生成***及方法
US8161109B2 (en) * 2009-07-15 2012-04-17 Red Hat, Inc. Client side culling of dynamic resources
US10971032B2 (en) * 2010-01-07 2021-04-06 John Allan Baker Systems and methods for providing extensible electronic learning systems
US8621016B2 (en) 2010-11-09 2013-12-31 International Business Machines Corporation Adaptive differential propagation of soap messages
EP2557752B1 (de) * 2011-08-11 2017-09-27 Siemens Aktiengesellschaft Verfahren und vorrichtung zum herstellen einer end-zu-end-kommunikation zwischen zwei netzwerken
US9276998B2 (en) * 2011-10-06 2016-03-01 International Business Machines Corporation Transfer of files with arrays of strings in soap messages
US9232022B2 (en) * 2013-06-27 2016-01-05 Aol Inc. Systems and methods for reduced bandwidth data transmission between network connected devices
JP2015052821A (ja) * 2013-09-05 2015-03-19 株式会社東芝 通信装置および通信方法
CN105593831A (zh) 2013-10-08 2016-05-18 索尼公司 服务器装置、客户端装置、信息处理方法和记录介质
JP6386074B2 (ja) * 2014-03-21 2018-09-05 ピーティーシー インコーポレイテッド バイナリ動的restメッセージを使用したシステム及び方法
US10270883B2 (en) * 2014-03-27 2019-04-23 Hewlett Packard Enterprise Development Lp Scheduling downloads
US20160248823A1 (en) * 2015-02-24 2016-08-25 Investcloud Inc Messaging protocol
US11032379B2 (en) * 2015-04-24 2021-06-08 Citrix Systems, Inc. Secure in-band service detection
US10601894B1 (en) 2015-09-28 2020-03-24 Amazon Technologies, Inc. Vector-based encoding for content rendering
US10616109B1 (en) * 2016-04-14 2020-04-07 United Services Automobile Association (Usaa) System and method for web service atomic transaction (WS-AT) affinity routing
CN109213694B (zh) 2017-06-30 2023-04-25 伊姆西Ip控股有限责任公司 用于缓存管理的方法和设备
US11165730B2 (en) 2019-08-05 2021-11-02 ManyCore Corporation Message deliverability monitoring

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3368883B2 (ja) * 2000-02-04 2003-01-20 インターナショナル・ビジネス・マシーンズ・コーポレーション データ圧縮装置、データベースシステム、データ通信システム、データ圧縮方法、記憶媒体及びプログラム伝送装置
US6820133B1 (en) * 2000-02-07 2004-11-16 Netli, Inc. System and method for high-performance delivery of web content using high-performance communications protocol between the first and second specialized intermediate nodes to optimize a measure of communications performance between the source and the destination
JP3990115B2 (ja) * 2001-03-12 2007-10-10 株式会社東芝 サーバ側プロキシ装置及びプログラム
FR2825222A1 (fr) * 2001-05-23 2002-11-29 Thomson Licensing Sa Dispositif et procedes de transmission et de mise en oeuvre d'instructions de controle pour acces a des fonctionnalites d'execution
US20050060431A1 (en) * 2003-09-12 2005-03-17 Lewontin Stephen Paul System, apparatus, and method for using reduced web service messages
US20050144137A1 (en) * 2003-12-24 2005-06-30 Kumar B. V. Protocol processing device and method
JP4433807B2 (ja) * 2004-01-27 2010-03-17 パナソニック電工株式会社 信号合成処理装置及び調光制御システム
US7509387B2 (en) * 2004-04-07 2009-03-24 Nokia Corporation System, apparatus, and method for using reduced Web service messages
US8296354B2 (en) * 2004-12-03 2012-10-23 Microsoft Corporation Flexibly transferring typed application data
US8156505B2 (en) * 2005-01-27 2012-04-10 Infosys Limited Protocol processing including converting messages between SOAP and application specific formats
US7808975B2 (en) * 2005-12-05 2010-10-05 International Business Machines Corporation System and method for history driven optimization of web services communication
US7533111B2 (en) * 2005-12-30 2009-05-12 Microsoft Corporation Using soap messages for inverse query expressions

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105938489A (zh) * 2016-04-14 2016-09-14 北京思特奇信息技术股份有限公司 一种压缩详单的存储和展示方法及***

Also Published As

Publication number Publication date
JP5052522B2 (ja) 2012-10-17
EP1969814B1 (en) 2009-03-25
BRPI0619763B1 (pt) 2019-09-03
US7808975B2 (en) 2010-10-05
DE602006005963D1 (de) 2009-05-07
ATE426992T1 (de) 2009-04-15
JP2009519508A (ja) 2009-05-14
KR20080084974A (ko) 2008-09-22
BRPI0619763A2 (pt) 2016-08-16
TW200737855A (en) 2007-10-01
EP1969814A2 (en) 2008-09-17
KR101027299B1 (ko) 2011-04-06
US8107463B2 (en) 2012-01-31
CN101341724B (zh) 2012-07-04
WO2007065850A3 (en) 2007-08-09
US20070127440A1 (en) 2007-06-07
US20080256171A1 (en) 2008-10-16
TWI377819B (en) 2012-11-21
CA2640838A1 (en) 2007-06-14
WO2007065850A2 (en) 2007-06-14

Similar Documents

Publication Publication Date Title
CN101341724A (zh) 用于web服务通信的历史驱动优化的***和方法
CN100578942C (zh) 用于压缩以结构化定义语言表达的无线应用程序的***和方法
KR100810170B1 (ko) 메시징 프록시 시스템
US7894431B2 (en) System and method for communicating asynchronously with web services using message set definitions
CN100433733C (zh) 在服务器和用户之间形成数据流的方法
US8069451B2 (en) System and method of compact messaging in network communications by removing tags and utilizing predefined message definitions
CN102185901B (zh) 一种客户端报文转换方法
US7539734B2 (en) Systems for dynamic inter-operability of nodes in service grids
Sillitti et al. Service oriented programming: a new paradigm of software reuse
US20060234730A1 (en) System and method for accessing multiple data sources by mobile applications
KR20040053165A (ko) 발행/구독 시스템을 이용한 무선 메시징 서비스 방법 및시스템
US20050228865A1 (en) System, apparatus, and method for using reduced Web service messages
WO2007097843A1 (en) Scalable transformation and configuration of edi interchanges
US20080319994A1 (en) Method for registering a template message, generating an update message, regenerating and providing an application request, computer arrangement, computer program and computer program product
JP2003141002A (ja) Url長変換システム及びそのプログラム
US20120254895A1 (en) Information processing system, control method, and non-transitory computer readable medium storing program
CN112866294B (zh) 一种多协议适配方法、装置及可读存储介质
US7490157B2 (en) System and method for defining interface of manufacture execution system
CN102301652A (zh) 消息转换
KR20040045149A (ko) ebXML 레지스트리에 기반을 둔 UDDI 웹서비스레지스트리 시스템과 그 관리 방법
JP2010055141A (ja) ウェブサービスシステム及びウェブサービス提供方法
CN116962319A (zh) 一种调用方法、装置、网络设备及可读存储介质
JP2002342215A (ja) コンテンツ提供方法
CN101263470B (zh) 在客户机与服务器之间类型信息的保存
CN116108467A (zh) 一种组件渲染方法、装置、存储介质及电子设备

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