CN1816020A - 互换格式消息的有效变换 - Google Patents
互换格式消息的有效变换 Download PDFInfo
- Publication number
- CN1816020A CN1816020A CNA2005100035675A CN200510003567A CN1816020A CN 1816020 A CN1816020 A CN 1816020A CN A2005100035675 A CNA2005100035675 A CN A2005100035675A CN 200510003567 A CN200510003567 A CN 200510003567A CN 1816020 A CN1816020 A CN 1816020A
- Authority
- CN
- China
- Prior art keywords
- message
- conversion
- unit
- computer system
- interchange format
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/80—Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
- G06F16/84—Mapping; Conversion
- G06F16/88—Mark-up to mark-up conversion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
Abstract
在计算机化系统中,发送计算机系统和接收计算机系统以资源有效的方式交换互换格式消息。例如,发送计算机系统处的变换写程序一次仅选取和变换消息的多个单元中的一个或少量。然后根据相关的变换标准,诸如XML消息情况下的规范化标准,将经变换的消息流传送至接收计算机系统。接收计算机系统处的变换读程序使用对所接收的消息单元而言足够大的缓冲区来变换消息,并将经变换的单元传递至文件。这样,变换写程序用作流写程序来传递消息,而变换读程序用作接收计算机系统处的流读程序。
Description
技术领域
本发明涉及用于以有效的方式在发送方与接收方之间变换诸如XML消息等互换文件格式消息的系统、方法和计算机程序产品。
背景技术
诸如XML等互换文件格式部分地由于它们为跨各种计算平台的数据查看或呈现提供的选项而变得越来越受欢迎。存在若干不同类型的互换格式文件,其中的某些针对图片数据,其它的用于声音,而剩下的用于一般文本。在任何情况下,互换数据格式普遍地用于广泛的数据交换,其范围从低复杂性的即时消息通信交换到高复杂性的安全电子会议交换。
一般而言,互换数据格式包含一连串的元素和代码,诸如XML中的名字空间代码,它们可以实际上由带有合适读程序的任何计算平台读取。例如,以互换格式表示的文件可以包括指示该文件是互换格式文件的一个或多个元素,以及指示该消息是何种文件类型(即,文本、音频、视频等)的标识符。互换格式的类型也可以指定文件中指示与该给定消息相关联的多个可见和隐藏的属性的某些代码。例如,与文档相关联的可见属性可以包括关于应该如何查看某些类型的文本的信息,诸如可能涉及颜色、字体大小、排列等。另一方面,隐藏属性可以指示创建该文档的实体、想要查看该文档的实体、安全性信息等。
对打算要在发送方和接收方之间发送、接收和查看的文档,发送方通常将整条消息变换为适于相关的互换格式。在接收端,接收方在接收后然后读取文件,假定接收器能够读取该特定互换格式。通常对诸如XML等互换格式使用的一种类型的变换方法被称为“规范化”,变换消息或消息单元以使其成为标准形式,以便消除或最小化不重要的差异。例如,在XML消息单元的情况下,规范化规则包括用于呈现、换行归一化、字符变换、内部命令的范围等名字空间选择上的具体规则。
不幸的是,某些通信模式相比其它,对无意的中间改变更为敏感,且可能导致预期的接收方不能适当地查看消息,或在首先接收消息。例如,在高度安全的实现中,在一端以少量变化或失配变换的数据可能不能由预期的接收方适当地查看或接收,或甚至首先变换。类似地,可以在发送端适当变换的高度安全的数据仍旧可能由于在转变中更改了数据而不能在接收端适当地接收,这可能以容许的方式发生。
从而,对互换格式数据传送,尤其在诸如安全通信等敏感区中,准确且一致的变换方法是愈发重要的。不幸的是,至少部分由于需要小心地来适当地变换消息,变换方法可以构成计算机化系统处理的开销昂贵的方面。
例如,当打算在发送消息之前对其变换时,创建大小上与整条消息的大小成比例的缓冲区。然后将整条消息的表示加载至缓冲区中,并为该消息表示创建读程序和写程序。在XML消息的情况下,也可以将消息的表示加载至文档对象模型(“DOM”)组件中,它将消息的每一元素读入缓冲区,并随后将消息作为单个经变换的输出写出。在任何情况下,然后向接收方发送经变换的输出。
该方法的至少一个问题是,需要创建足够大的缓冲区来读取整条消息,以及创建足够大的缓冲区来接收整条经变换的消息。在某些情况下,在向接收方发送消息之前,或当接收之后在接收方计算机系统处,也为消息的整个经变换和未经变换的版本均分配一个或多个缓冲区。尤其对于可能成千兆字节大小的较大的消息,这样的缓冲区分配可能对处理大量请求的计算机化系统的处理和存储器资源是很重的负担。在某些情况下,这些和其它类似的问题加剧,因为发送计算机系统将同时实现发送进程的读和写功能两者,即使发送计算机系统一般以比写速率慢得多的速率来读。
在接收端发生含有类似复杂因素的逆进程。具体地,接收计算机系统一般需要为整条消息分配足够大的缓冲区,即使该接收计算机系统一次从发送方仅接收小块消息。在某些情况下,接收计算机系统也可以分配双倍的缓冲区空间,使得存在用于整条已接收的消息的经变换和未经变换的版本的缓冲区。而且,接收计算机系统必须花费额外的资源来将经变换的消息加载至缓冲区中,以及读取和写出消息的元素。与发送计算机系统相比,接收计算机系统含有类似但是反向的问题,它一般写比读慢得多。这样,为发送和接收计算机系统两者分配若干大缓冲区,以及创建读和写进程功能是对处理和存储器资源的相当重的负担。
从而,使用提供在发送和接收端两处的互换格式数据的有效变换的系统、方法和计算机程序产品,可以实现本领域中的优势。具体地,无需将整条消息加载至存储器中而变换数据的方法将成为本领域中的优点。而且,利用发送计算机系统或接收计算机系统的相对长处的变换数据方法将成为本领域中的优点。
发明内容
本发明使用被配置成用于有效变换互换格式消息的系统、方法和计算机程序产品来解决现有技术中前述问题中的一个或多个。具体地,本发明的实现在一个方面涉及将互换消息单元(例如,规范化的消息单元)变换为数据流的离散分量,而不是在变换和发送整条消息前将整条消息加载至已分配的缓冲区中。
例如,根据本发明的一种实现,从发送计算机观点来看,用于变换消息的方法包括访问包括多个不同消息单元的互换格式消息。在一种实现中,发送计算机系统处的变换写程序从消息中选取一个或多个消息单元的初始集,并基于变换标准来变换该初始集。变换写程序然后选取该消息的一个或多个单元的不同的后继集,并基于该标准变换后继集。由于选取和处理了单元,经变换的消息单元(及相应的摘要,如果适当)也将经变换的单元集传递给输出。这样,互换消息一次仅变换一个或少量单元,这导致至少对缓冲区分配和其它系统资源的显著节省。而且,发送计算机系统被配置成主要用于写互换格式数据,这迎合了发送计算机系统的功能优势。
从接收计算机观点来看,用于变换所接收的、经变换的消息单元的方法包括接收消息的一个或多个经变换的单元的初始集至存储器。单元的初始集表示少于消息中的所有单元,因此已分配的存储器仅需足够大来接收单元的初始集,而不是整条消息,或如果适当,整条消息及伴随的摘要。接收计算机系统然后基于适用的变换标准,变换所接收的经变换的单元初始集,并将互换格式消息的相应初始部分传递给一文件。接收计算机系统然后接收互换格式消息的一个或多个经变换单元的后继集至存储器中,变换该后继集,并将其传递至该文件。从而,接收计算机系统被配置成主要用于读互换格式数据,这迎合了接收计算机系统的功能优势。
本发明的示例性实现的另外的特征和优点将在随后的描述中描绘,且其中部分通过阅读该描述将是明显的,或者可以通过实践这样的示例性实现来领会。这样的实现的特征和优点可以通过所附权利要求书中特别指出的设备及其组合来实现并获取。通过阅读以下描述和所附权利要求书,这些和其它特征将是完全明显的,或者也可以通过实践如之后所述这样的示例性实现来领会。
附图说明
为了描述可以获取本发明的上述和其它优点和特征的方式,将参考附图中示出的其具体实施例来呈现以上简要描述的本发明的更具体描述。可以理解,这些附图仅示出本发明的典型实施例,从而不被认为是对其范围的限制,将通过使用附图,根据附加的特性和细节来描述和说明本发明,附图中:
图1示出了根据本发明的一个实现,发送和接收经变换的互换格式消息的概观框图;
图2示出了根据本发明的一个实现,发送经变换的互换格式消息的方法;
图3示出了根据本发明的一个实现,接收经变换的互换格式消息的方法;以及
图4示出了根据本发明,适于使用的示例性计算环境的框图。
具体实施方式
本发明延及被配置成有效地变换互换格式消息的系统、方法和计算机程序产品。具体地,本发明的实现在一个方面涉及将互换消息单元(例如,规范化的消息单元)变换为数据流的离散分量,而不是将整条消息加载至已分配的缓冲区。
通过本发明说明书和权利要求书可以理解,本发明的一个方面包括一次将消息的仅几个比特变换成流,诸如将消息的一个或多个单元变换为相应的流。一般而言,变换写程序可仅需为各种变换组件分配相对较小的缓冲区,该缓冲区在制作摘要与变换进程结合时独立于整条消息的大小,且从而可以为消息的每一选中单元重复使用。然后仅变换每一消息单元,并将其直接传递给输出,诸如流累加器。
在本发明的另一方面中,一旦变换了消息单元,就将其发送至接收方,在某些情况下,单元一旦经变换、制作摘要和签署之后就被发送。在本发明的另外其它方面中,如果接收方没有被配置成接收流化的消息单元,仍旧可以在被发送至接收方之前,将经变换的单元累加至另一个缓冲区。从而,存在可以选择、变换消息并将其发送至接收方而不必为大消息创建大缓冲区的各种方式。
在接收端,接收计算机系统接收作为流接收的经变换的单元,并相应地处理该经变换的单元。在本发明的一个方面中,接收计算机系统可以为每一单独的单元使用一个缓冲区,它可以是同一个或不同的缓冲区,但是仍旧小于保持消息中的所有单元所需的大小。在本发明的另一方面中,接收计算机系统将经变换的单元直接读入归一化组件中,然后将它们传递给应用程序或文件,诸如存储中的文件。在本发明又一方面中,接收计算机系统对曾在发送计算机系统处制作摘要的经变换的单元制作摘要,并比较各自的摘要。
例如,图1示出了一个概观框图,其中含有一个或多个单元110、115和120的互换格式消息105被变换,并从发送计算机系统100发送至接收计算机系统155。一般而言,消息105可以是任何互换格式,诸如XML、HTML、GIF、WAV或其它类型的互换格式,尽管此处通常参考XML消息。在至少一个实现中,一般将消息105的单元(110、115、120)理解为指的是嵌套的元素,诸如XML或HTML文档中的嵌套元素。诸如这样的单元各自也可以包括一个或多个名字空间,例如在XML中,它指的是由URI引用标识的名字的集合,作为元素类型和属性名称。尽管如此,相比其它互换格式,XML中的“名字空间”有时可以具有独特的含义。同样,可以理解,可以如此处所描述的类似地对待其它文件格式中的类似数据结构。
当根据本发明,发送方100向接收方155发送消息105时,发送方100一侧的变换写程序125一次仅选择一个或少量消息单元(即,初始或后继单元集)。一般而言,变换写程序125可以被理解为一组计算机可执行指令,诸如与应用程序相关联的程序类。例如,如图1所示,变换写程序125访问消息105,并以连续的时间间隔选取消息单元110,接着是消息单元115,然后消息单元120等。
在至少一个实现中,变换写程序125分配相比整条消息105大小的独立大小的存储器缓冲区,但是它对预定的消息选择量而言仍旧足够大小。例如,如果变换写程序125决定一次选取被访问消息的100字节是合适的,那么缓冲区仅需大约100字节,或稍微大一点。可以为每一选中的消息单元重复使用已分配的缓冲区,每一选中的消息单元将大致为100字节或至少在已分配的缓冲区参数大小之内,从而适合该已分配的缓冲区。反过来,所选取的大小可以是基于任何数量的因素的,诸如可用于处理的资源、连接带宽等。从而,变换写程序125能有效地使用在任何给定的时刻合适的存储器和处理资源,而不必为需要变换和发送的每一消息调整处理和存储器资源。
当选取了给定单元之后,例如单元110,变换写程序125与标识并管理消息中的XML属性的属性管理器123交互。变换写程序125也可与跟踪引擎130交互,引擎130为在XML消息的情况下每一给定单元管理名字空间(未示出),而无需使用文档对象模型(“DOM”)。一般而言,每一单元110、115、120含有最终在流累加器150中表示的一个或多个名字空间。然而,并非来自给定单元的所有名字空间都是立即需要的,也不必呈现给定单元的所有名字空间,因为可能已经呈现来自之前单元的完全相同的名字空间。从而,跟踪引擎130被配置成标识需要被呈现的名字空间,和/或根据合适的变换协议,标识将不呈现但是可用的名字空间。
作为说明,是否呈现名字空间取决于变换协议。例如,XML规范化一般包括两个版本:“排除的”和“包含的”。使用“排除的规范化”,仅当立即使用名字空间且在可见的祖先上下文中没有呈现该名字空间时,呈现该名字空间。这可以使用“包含的前缀列表”来进一步细化,“包含的前缀列表”表明即使不立即使用名字空间,只要没有呈现该名字空间,就应呈现它。
在任何情况下,然后向归一化组件135传递被选中的单元(例如,单元110),归一化组件135基于变换标准变换单元。例如,当使用规范化作为变换标准时,归一化组件135可以根据c14n规范化标准来变换单元110。一般而言,变换标准指示如何以可按能由打算读取该特定互换格式的任何操作系统读取的通用可读的格式发送诸如文本文件中的串和字符等数据。例如,规范化标准可以规定,诸如“foo”等串可以按原样传递,而诸如“<”等字符在输出中可以被表示为“<;”。
使用安全互换消息,变换写程序125可以随选取一个或多个单元和变换该一个或多个单元来执行额外的步骤,以确保每一选中的单元如预期地被发送和接收,并且被有效地完成。例如,如果消息105是安全消息,那么它将在消息中诸如消息头部等一个或多个位置或单元中含有标识符,但是不必在每一其它剩余的单元中也含有标识符。通常,仅在消息105的小部分含有标识符对使用常规变换协议是足够的。
尽管如此,因为现有的实现涉及将每一单元单独地传递给接收方,因此变换写程序125可能需要确保安全消息的所有单元需要被数字签署,因此每一单元应该含有与其相关联的标识符。从而,变换写程序125也可以扫描安全消息的单独单元,诸如表示消息头部的单元,以找出该单元是否含有标识符。如果单元是安全消息的一部分,但是不包含相关联的标识符,那么变换写程序125可以向该单元插入标识符。在至少一个实现中,变换写程序125执行扫描标识符、插入标识符以及在单元的单遍中变换单元的步骤。
经变换的消息单元然后被直接发送至流累加器150,诸如直接给使用与接收计算机系统155的连接启动的流式报路。在其它情况中,尤其对于安全消息,经变换的单元被传递给散列累加器145,它为出错检验而为每一单元创建相应的摘要157,且然后传递输出作为成对的原始八位位组153以及相应的摘要157。在其它情况下,诸如如果接收方155没有被配置成接收单独消息单元流,那么也可以在“累积消息”组件140中缓冲消息。
在这样的情景中,本实现仍旧可以实现效率增益,因为当变换写程序125最初选取消息105时,不必首先创建类似大小的缓冲区。该累积的消息然后可以被直接传递给流累加器150,或者传递给散列累加器145,然后再与摘要成对地传递给流累加器150。无论如何发送给输出,结果得到的原始八位位组153然后被流传送至接收计算机系统155处的输入160。在一种实现中,数据流包含连续的20字节的数据块。
现在参考接收计算机系统155,当通过变换读程序165将数据流读入相应的消息105的表示时,执行逆序的功能。变换读程序165如同变换写程序125一样,是一组计算机可执行指令,诸如与应用程序相关联的程序类。当接收计算机系统155接收经变换的单元或单元集(例如,经变换的单元110)时,接收计算机系统处的变换读程序165分配缓冲区(未示出),该缓冲区对于接收的每一经变换的单元通常是足够大小的,但是对整条消息105不是足够大。这样,接收计算机系统155可以仅重复使用已分配的缓冲区,从而不必为每一另外输入的消息单元创建新的缓冲区。在一种实现中,尤其对大消息,这可以显著地节省存储器空间和处理。
接收计算机系统155处的变换读程序165也通过一个或多个合适的组件或模块来传递所接收的、经变换的单元用于处理。例如,如果接收计算机系统155接收普通变换的单元,诸如不与摘要相关联的那些,那么变换读程序165将按照从输入160所接收的原样将经变换的单元传递给归一化组件135。或者,诸如在XML消息的情况中,如果在所接收的、经变换的单元中包含摘要,那么在接收计算机系统155处的归一化组件135将所接收的数据传递给接收计算机系统155处的散列累加器145,它在该经变换的单元上计算另一摘要170。然后将从发送计算机系统100处接收的摘要157与该计算出的摘要170进行比较。如果两个摘要匹配,那么接收计算机系统155的归一化组件135基于规范化标准变换该经变换的单元,且将该单元传递给相应的文件。
在XML消息的情况下,变换读程序165也可以通过属性管理器123管理输入消息单元的属性。变换读程序165还可以使用接收计算机系统处的跟踪引擎130执行类似的名字空间跟踪功能,并比较每一单元的名字空间来查看该名字空间是要呈现,还是不呈现,但是可用。然后单独地读取并传递该单元至最终表示消息105的相应的累加文件。在一个实例中,接收计算机系统155在系统存储器中创建累加文件,该文件是当接收多个单元(例如,单元110、115和120等)并将其变换为其原始表示之后足够大来累加它们的存储器缓冲区。然而在其它情况下,累加文件位于硬件驱动器存储中,使得当接收输入的消息并变换它们时,甚至不需要为其创建额外的系统存储器缓冲区。
图2示出了从发送计算机系统观点来看以资源有效的方式变换消息的方法中的一连串动作。将在以下参考图1来讨论图2的动作。例如,图2示出了根据本发明的实现的方法,包括选取互换格式消息的动作200。动作200包括选取互换格式消息,该互换格式消息包含多个不同的消息单元。例如,XML消息105可以包含多个单元110、115和120。
该方法还包括从消息中选取一个或多个单元的初始集的动作210。动作210包括从消息中选取一个或多个单元的初始集至存储器,使得选取少于该多个不同消息单元中的所有单元。例如,变换写程序125可以选取单元110和/或单元115等,但不是该消息中可用的所有单元,并将这些单元放入大小独立于消息105的大小的已分配的存储器部分中。在其它实现中,诸如对于安全实现,变换写程序125也可以对单元110扫描标识符,并如果需要,将标识符插入单元110中。从而,变换写程序125可以通过当提取消息时,尤其当需要变换将要发送至接收计算机系统的非常大的消息时,利用远小于使用其它方法所需的存储器空间来减少对该计算机化系统的要求。
另外,图2的方法包括变换该初始集的动作220。动作220包括基于一标准将一个或多个初始集中的单元变换为一个或多个经变换的单元的经变换的初始集。例如,在XML消息105的情况下,该集中每一单元正被呈现或之前被呈现的名字空间被传递给归一化组件135,它将该初始集的每一单元规范化为可以被传递给流累加器150的规范化单元。如接收方所需,在被传递给流累加器150之前,也可以将该规范化的单元传递给散列累加器145,也可以在被传递给散列累加器145或直接传递给流累加器150之前传递给累加消息140组件。
此外,图2的方法包括选取一个或多个单元的不同的后继集的动作230。动作230包括从消息中选取一个或多个单元的不同的后继集至存储器中,使得选取少于所有该多个不同消息单元。例如,当选取(或选取并变换)单元110和/或单元115之后,变换写程序125可以选取不同的后继消息单元120,这当然少于消息105中的所有多个单元(即,110、115、120等)。
然后通过类似的一组动作传递不同的后继消息单元120。具体地,图2的方法也包含变换该不同的后继集的动作240。动作240包括将该不同的后继集中的一个或多个单元变换为一个或多个经变换的单元的经变换的后继集。例如,在XML消息105的情况中,后继集中的单元120被呈现或之前呈现的名字空间被传递给归一化组件135,归一化组件135基于规范化标准对后继集的单元120的一个或多个名字空间规范化。然后将单元的经变换的后继集直接传递给流累加器150,或者传递给散列累加器145然后再传递给流累加器150,或者传递给累加消息140组件,然后传递至散列累加器145和/或流累加器150。在某些情况下,这也涉及处理单元的后继集并将其传递给所选中的一个或多个单元的初始集所用的之前分配的存储器。从而,图2示出了发送计算机系统100的诸如变换写程序125等组件主要用作流写程序,且不必花费资源来也读取给定消息105的每一元素。
图3示出了包含图2的方法的接收方的一连串动作的方法。以下参考图1的组件和模块讨论图3的动作。具体地,以资源有效的方式变换所接收到的互换格式消息的方法包括接收经变换的初始单元的动作300。动作300包括接收互换格式消息的至少一个经变换的初始单元至存储器,该至少一个经变换的初始单元表示少于消息中的多个经变换单元的所有单元。
例如,接收计算机系统155可以接收消息105的一个或多个经变换的单元110、115,仍然表示少于整条消息105的所有多个经变换的单元(例如,110、115、120等)。从而,变换读程序165将分配仅对所接收的单元的初始集大小,而不是该多个单元的所有单元而言足够的存储器。例如,如果该经变换的初始单元大小大约为20字节,那么变换读程序165将分配大约20字节或更多的存储器来容纳该经变换的初始单元。
图3的方法也包括变换初始单元的动作310。动作310包括基于一标准将经变换的初始单元变换为互换格式消息的相应的初始部分。例如,在XML消息的情况下,在输入组件160作为八位位组接收的经变换的单元110可以被传递给归一化组件135,然后至散列累加器145,或者在没有伴随的摘要157的情况下仅传递给归一化组件135。当伴随原始八位位组153接收到摘要157时,散列累加器145可以用来生成用于出错检验目的的所接收单元的计算出的摘要170,出错检验诸如通过将计算出的摘要170与所接收的摘要157进行比较。归一化组件135然后可以基于c14n规范化标准将规范化单元110变换为XML消息105的一部分。例如,给定元素的串“foo”可以按原样传递,而字符“<;”可以被变换为字符“<”。
图3的方法也包括将相应的初始部分传递至文件的动作320。动作320包括将互换格式消息的相应初始部分传递给文件。例如,当通过归一化组件135传递单元110之后,变换读程序165读取单元110并将其传递至文件或应用程序。为了保存系统存储器资源,文件可以是分配在存储中而不是系统存储器中的缓冲区。在该点上,从发送计算机系统100仅接收到消息105的多个经变换的单元中的一个(或少于所有)单元,变换读程序165向其发送单元110的文件(例如,在接收计算机系统155处的消息105)是不完整的。
从而,图3的方法也包括接收经变换的后继单元的动作330。动作330包括接收互换格式消息的至少一个经变换的后继单元至存储器中,该至少一个经变换的后继单元表示少于消息中的多个经变换的单元的所有单元。例如,当在输入160处接收到单元110作为初始八位位组之后,接收计算机系统155还可以接收后继八位位组,包括经变换的单元115和/或120等。因为后继八位位组表示少于发送计算机系统处原始消息105中所存在的所有单元,接收计算机系统155可以将后继八位位组放至相对较小的存储器部分中。最后,当该文件包含来自发送方100的所有原始单元时,该文件将等于接收计算机系统155处的消息105,它基本上表示了发送计算机系统100处的消息105。
可以理解,可以用与本发明的各原理一致的任何数量的方式更改前述附图和方法。例如,互换消息105可以是XML、HTML等之外的任何数量的互换格式,而用于变换相关文件的标准可以是除规范化之外的那些。而且,前述方法和附图可以被进一步修改来适应当可能涉及安全消息等时消息中的简单到复杂的不同程度,只要变换写程序125主要用作流写程序,而变换读程序165主要用作流读程序。
因此,发送计算机系统和接收计算机系统可以通过显著减少存储器分配请求、利用相对写或读速率长处以及在单个例程中完成多个常规变换方法来获取显著的效率增益。从而,本发明的说明书和权利要求书提供用于将诸如XML、HTML等互换格式消息从发送系统传递至接收系统,而不超载计算资源的新颖的方法、系统和设备。
图4及以下讨论旨在提供可在其中实现本发明的合适的计算环境的简要概括描述。尽管不是必需的,但本发明将在诸如由网络环境中的计算机执行的程序模块等计算机可执行指令的通用语境中描述。一般而言,过程包括程序模块、例程、函数、程序、对象、组件、数据结构等,它们执行特定任务或实现特定抽象数据类型。与数据结构相关联的计算机可执行指令以及程序模块表示用于执行此处所揭示的方法的步骤的程序代码装置的示例。这样的可执行代码的特定序列或相关联的数据结构表示用于按照这样的步骤实现所述的功能的对应动作的示例。
本领域的技术人员可以理解,本发明可以在使用多种类型的计算机系统配置的网络计算环境中实现,包括个人计算机、手持式设备、多处理器系统、基于微处理器或可编程消费者电子产品、网络PC、小型机、大型机等。本发明也可以在分布式计算环境中实现,其中本地和远程处理设备执行任务并通过通信网络连接(或者由硬连线、无线电线路或者由硬连线或无线电线路的组合)。在分布式计算环境中,程序模块可以位于本地和远程计算机存储介质中。
参考图4,用于实现本发明的示例性系统包括常规计算机420形式的通用计算设备,包括处理单元421、系统存储器422和将包括系统存储器422在内的各种系统组件耦合至处理单元421的系统总线423。系统总线423可以是若干类型的总线结构中的任一种,包括存储器总线或存储器控制器、外围总线和使用各种总线体系结构中的任一种的局部总线。系统存储器包括只读存储器(ROM)424和随机存取存储器(RAM)425。基本输入/输出系统(BIOS)426包含有助于诸如启动时在计算机420中元件之间传递信息的基本例程,它通常存储在ROM 424中。
计算机420还可以包括从磁硬盘439中读取或向其写入的磁硬盘驱动器427,从可移动磁盘429中读取或向其写入的磁盘驱动器428,以及从诸如CD ROM或其它光学介质等可移动光盘431中读取或向其写入的光盘驱动器430。磁硬盘驱动器427、磁盘驱动器428和光盘驱动器430分别由硬盘驱动器接口432、磁盘驱动器接口433和光盘驱动器接口434连接至系统总线423。驱动器及其相关联的计算机存储介质为计算机420提供了对计算机可读指令、数据结构、程序模块和其它数据的非易失性存储。尽管此处所示的示例性环境使用磁硬盘439、可移动磁盘429和可移动光盘431,也可以使用用于存储可使用的数据的其它类型的计算机可读介质,包括盒式磁带、闪存卡、数字多功能盘、贝努利盒式磁盘、RAM、ROM等。
可以在硬盘439、磁盘429、光盘431、ROM 424或RAM 425上存储包含一个或多个程序模块的程序代码装置,包括操作系统435、一个或多个应用程序模块436、其它程序模块437和程序数据438。用户可以通过诸如键盘440和定点设备442,或诸如麦克风、操纵杆、游戏垫、圆盘式卫星天线、扫描仪等其它输入设备(未示出)向计算机420输入命令和信息。这些和其它输入设备通常由耦合至系统总线423的串行端口接口446连接至处理单元421。或者,输入设备可以由诸如并行端口、游戏端口或通用串行总线(USB)等其它接口连接。监视器447或另一显示设备也经由诸如视频适配器448等接口连接至系统总线423。除监视器之外,个人计算机一般包括其它外围输出设备(未示出),诸如扬声器和打印机。
计算机420可使用至一个或多个远程计算机,诸如远程计算机449a和449b的逻辑连接在网络化环境中操作。远程计算机449a和449b可以各自是另一台个人计算机、服务器、路由器、网络PC、对等设备或其它常见网络节点,且通常包括上文相对于计算机420描述的许多或所有元件,尽管在图4中只示出存储器存储设备450a和450b以及其相关联的应用程序436a和436b。图4中所示逻辑连接包括此处示出作为示例而非限制的局域网(LAN)451和广域网(WAN)452。这样的网络环境在办公室、企业范围计算机网络、内联网和因特网中是常见的。
当在LAN网络环境中使用时,计算机420通过网络接口或适配器453连接至局域网451。当在WAN网络环境中使用时,计算机420通常包括调制解调器454、无线链路或用于通过诸如因特网等广域网452建立通信的其它装置。调制解调器454可以是内置或外置的,它通过串行端口接口446连接至系统总线423。在网络化环境中,相对于计算机4420所描述的程序模块或其部分可以存储在远程存储器存储设备中。可以理解,所示的网络连接是示例性的,且可以使用通过广域网452建立通信链路的其它手段。
本发明可以被具体化为其它具体形式,而不背离其精神或基本特征。所述的实施例在所有方面都被认为仅是说明性的而非限制性的。从而,本发明的范围由所附权利要求书而非前述描述来指示。本发明中包含落入权利要求的等效技术方案的含义和范围内的所有更改。
Claims (20)
1.在计算机化环境中的发送计算机系统处的一种以资源有效的方式变换互换格式消息的方法,其中在计算机化环境中,发送计算机系统和接收计算机系统可以以互换格式交换一条或多条消息,所述方法包括以下动作:
访问互换格式消息,所述互换格式消息包括多个不同的消息单元;
从所述消息中选取一个或多个消息单元的初始集,使得选取出少于所有所述多个不同的消息单元;
基于一标准将所述初始集的一个或多个选取的消息单元变换成一个或多个经变换单元的经变换的初始集;
从所述消息中选取一个或多个单元的不同的后继集至存储器中,使得选取出少于所有所述多个不同的消息单元;以及
将所述不同的后继集的一个或多个单元变换成一个或多个经变换单元的经变换的后继集。
2.如权利要求1所述的方法,其特征在于,所述一个或多个选中消息单元的初始和后继集是使用与每一选中的一个或多个初始或后继单元相关联的变换写程序来变换的,使得不导致额外的缓冲或解析开销。
3.如权利要求1所述的方法,其特征在于,还包括将所述一个或多个消息单元的经变换的初始集发送至接收方。
4.如权利要求1所述的方法,其特征在于,所述互换格式消息是XML消息。
5.如权利要求4所述的方法,其特征在于,所述标准是排除或包含的规范化标准中的一种,且其中,变换所述初始或后继集的所述一个或多个消息单元包括规范化所述初始或后继集的一个或多个消息单元。
6.如权利要求1所述的方法,其特征在于,还包括分配足够至少接收所述消息中的一个或多个单元的初始集,但不是所述消息中所有多个单元的系统存储器部分。
7.如权利要求6所述的方法,其特征在于,选取所述一个或多个单元的后继集至存储器的动作包括:
当变换所述一个或多个消息单元的初始集之后,释放所分配的存储器部分;以及
使用所述一个或多个单元的后继集来重写由所述一个或多个消息单元的初始集占用的所分配的存储器部分。
8.如权利要求6所述的方法,其特征在于,所选中的一个或多个单元的大小是基于当前可用的处理资源、系统存储器资源或连接带宽。
9.如权利要求1所述的方法,其特征在于,所述被访问的消息是安全消息,所述方法还包括以下动作:
对所述初始集的一个或多个单元扫描标识符;以及
如果所述初始集的一个或多个单元的任一个需要标识符而没有找到标识符,那么对所述单元插入标识符;以及
并发地变换所述一个或多个消息单元中的每一个,使得在单遍中完成标识符扫描、标识符插入以及变换。
10.如权利要求9所述的方法,其特征在于,所述初始集的一个或多个单元中至少有一个是XML消息的消息头部。
11.如权利要求9所述的方法,其特征在于,还包括以下动作:
对所述初始集的一个或多个单元制作摘要;以及
数字签署所述初始集的一个或多个单元。
12.如权利要求1所述的方法,其特征在于,还包括以下动作:
标识所述被访问消息的预期接收方需要整个消息流;
当所述消息的多个单元中的每一个经变换后,累加它们;以及
流传送所述消息的累加的、经变换的单元。
13.如权利要求1所述的方法,其特征在于,选取一个或多个消息单元的初始集和变换所述一个或多个单元的初始集的动作是由变换写程序执行的,其中,所述变换写程序是与应用程序相关联的程序类。
14.在计算机化环境中的接收计算机系统处的一种以资源有效的方式变换所接收的互换格式消息的方法,其中在计算机化环境中,接收计算机系统和发送计算机系统可以以互换格式交换一条或多条消息,所述方法包括以下动作:
接收互换格式消息的一个或多个经变换单元的初始集至存储器,所述初始集表示少于所述消息中的所有多个经变换单元;
基于一标准将所接收到的单元的经变换的初始集变换成所述互换格式消息的相应的初始部分;
将所述互换格式消息的相应的初始部分传递至一文件;以及
接收所述互换格式消息的一个或多个经变换的单元的后继集至存储器,所述后继集单元表示少于所述消息中所有多个经变换单元。
15.如权利要求14所述的方法,其特征在于,还包括分配足够接收所述初始或后继集的存储器部分。
16.如权利要求14所述的方法,其特征在于,还包括计算所述初始集的摘要,并将所述接收计算机系统处的计算出的摘要与由所述发送计算机系统伴随所述一个或多个经变换的单元的初始集发送的摘要进行比较。
17.如权利要求14所述的方法,其特征在于,当接收消息的所有多个经变换的单元之后,所述文件是所述互换格式消息实质表示。
18.如权利要求14所述的方法,其特征在于,所述互换格式消息是XML消息,且所述标准是规范化标准。
19.如权利要求14所述的方法,其特征在于,变换一个或多个经变换的单元的初始集和传递所述一个或多个经变换单元的初始集的动作是由变换读程序执行的,其中,所述变换读程序是与应用程序相关联的程序类。
20.一种在计算机化环境的发送计算机系统处使用的计算机程序产品,其中在计算机化环境中,发送计算机系统和接收计算机系统可以以互换格式交换一条或多条消息,所述计算机程序产品用于实现一种以资源有效的方式变换互换格式消息的方法,所述计算机程序产品包含其上存储计算机可执行指令的一个或多个计算机可读介质,当由处理器执行所述计算机可执行指令时,使得所述发送计算机系统执行以下动作:
访问互换格式消息,所述互换格式消息包括多个不同的消息单元;
从所述消息中选取一个或多个消息单元的初始集,使得选取出少于所有所述多个不同的消息单元;
基于一标准将所述初始集的一个或多个选取的消息单元变换成一个或多个经变换单元的经变换的初始集;
从所述消息中选取一个或多个单元的不同的后继集至存储器中,使得选取出少于所有所述多个不同的消息单元;以及
将所述不同的后继集的一个或多个单元变换成一个或多个经变换单元的经变换的后继集。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/049,157 US7860989B2 (en) | 2005-02-02 | 2005-02-02 | Efficient transformation of interchange format messages |
US11/049,157 | 2005-02-02 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1816020A true CN1816020A (zh) | 2006-08-09 |
Family
ID=36237290
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2005100035675A Pending CN1816020A (zh) | 2005-02-02 | 2005-12-30 | 互换格式消息的有效变换 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7860989B2 (zh) |
EP (1) | EP1689146A3 (zh) |
JP (1) | JP2006216024A (zh) |
KR (1) | KR20060088816A (zh) |
CN (1) | CN1816020A (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060272006A1 (en) * | 2005-05-27 | 2006-11-30 | Shaohong Wei | Systems and methods for processing electronic data |
US8473455B2 (en) * | 2008-09-03 | 2013-06-25 | Microsoft Corporation | Query-oriented message characterization |
US20160344677A1 (en) | 2015-05-22 | 2016-11-24 | Microsoft Technology Licensing, Llc | Unified messaging platform for providing interactive semantic objects |
US10216709B2 (en) | 2015-05-22 | 2019-02-26 | Microsoft Technology Licensing, Llc | Unified messaging platform and interface for providing inline replies |
US10608951B2 (en) * | 2017-09-30 | 2020-03-31 | Oracle International Corporation | Live resegmenting of partitions in distributed stream-processing platforms |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10026478A1 (de) * | 2000-05-27 | 2001-12-20 | Abb Patent Gmbh | Verfahren zur Generierung anwendungsspezifischer Eingabedateien |
US20020111963A1 (en) * | 2001-02-14 | 2002-08-15 | International Business Machines Corporation | Method, system, and program for preprocessing a document to render on an output device |
US6542911B2 (en) | 2001-03-01 | 2003-04-01 | Sun Microsystems, Inc. | Method and apparatus for freeing memory from an extensible markup language document object model tree active in an application cache |
US20040168124A1 (en) | 2001-06-07 | 2004-08-26 | Michael Beisiegel | System and method of mapping between software objects & structured language element-based documents |
US7200548B2 (en) | 2001-08-29 | 2007-04-03 | Intelliden | System and method for modeling a network device's configuration |
US20040205520A1 (en) * | 2001-12-20 | 2004-10-14 | Ec Outlook, Inc. | System and method for introducing programming constructs into computer intelligible electronic data |
JP4084049B2 (ja) * | 2002-01-29 | 2008-04-30 | 株式会社富士通ソーシアルサイエンスラボラトリ | コンテンツデータ抽出・構造変換処理プログラム、コンテンツデータ抽出・構造変換処理プログラム記録媒体、およびコンテンツ再構築処理システム |
US20040131082A1 (en) * | 2002-02-08 | 2004-07-08 | Evans James C. | Construction of middleware adapters |
US7721202B2 (en) * | 2002-08-16 | 2010-05-18 | Open Invention Network, Llc | XML streaming transformer |
JP4397373B2 (ja) * | 2002-10-15 | 2010-01-13 | サムスン エレクトロニクス カンパニー リミテッド | メタデータの管理方法 |
US7337239B2 (en) * | 2002-11-19 | 2008-02-26 | Microsoft Corporation | Atomic message division |
GB0306610D0 (en) * | 2003-03-21 | 2003-04-30 | British Telecomm | Conversion of structured information |
JP2005025295A (ja) * | 2003-06-30 | 2005-01-27 | Fujitsu Ltd | コンテンツ変換プログラム、コンテンツ変換方法、およびコンテンツ変換装置 |
JP4061288B2 (ja) * | 2004-04-08 | 2008-03-12 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Webサービス・システム、リクエスタ、soapメッセージ用中間処理装置、リクエスタのリクエスト用soapメッセージ処理方法、リクエスタのレスポンス用soapメッセージ処理方法、soapメッセージ用中間処理装置のリクエスト用soapメッセージ処理方法、soapメッセージ用中間処理装置のレスポンス用soapメッセージ処理方法、及びプログラム |
JP2006018376A (ja) * | 2004-06-30 | 2006-01-19 | Canon Inc | ネットワーク通信方式 |
US9286275B2 (en) * | 2004-08-23 | 2016-03-15 | Oracle America, Inc. | System and method for automatically generating XML schema for validating XML input documents |
-
2005
- 2005-02-02 US US11/049,157 patent/US7860989B2/en not_active Expired - Fee Related
- 2005-12-14 KR KR1020050123270A patent/KR20060088816A/ko not_active Application Discontinuation
- 2005-12-30 CN CNA2005100035675A patent/CN1816020A/zh active Pending
-
2006
- 2006-01-04 EP EP06100062A patent/EP1689146A3/en not_active Withdrawn
- 2006-01-12 JP JP2006005191A patent/JP2006216024A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
EP1689146A2 (en) | 2006-08-09 |
JP2006216024A (ja) | 2006-08-17 |
US20060173899A1 (en) | 2006-08-03 |
US7860989B2 (en) | 2010-12-28 |
EP1689146A3 (en) | 2006-08-23 |
KR20060088816A (ko) | 2006-08-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1114869C (zh) | 维持复制一致性的计算机、数据共享系统和方法 | |
US7315866B2 (en) | Method for incremental authentication of documents | |
CN1750471A (zh) | 通过公共非安全基础结构安全地发行用户概况信息 | |
CN1574795A (zh) | 为改进客户机服务器通信使用分组压缩缓冲器的系统和方法 | |
CN1870643A (zh) | 利用顺序号的数据通信协调 | |
CN1151449C (zh) | 允许服务器远程访问未通电的客户计算机系统资产信息的数据处理系统和方法 | |
US20120293826A1 (en) | Systems and methods for providing multiple images | |
MX2008012378A (es) | Estructura de agregacion de mensaje basado en politica. | |
CN1705946A (zh) | 用于同步身份信息的方法和系统 | |
CN1842075A (zh) | 使用子队列来增强本地消息处理 | |
CN1801825A (zh) | 使用单个http请求批量传输消息 | |
CN1783882A (zh) | 灵活地传输类型化的应用程序数据 | |
CN1625179A (zh) | 按可定制的、基于标签协议中的引用发送 | |
US7395311B2 (en) | Performing generic challenges in a distributed system | |
CN1816020A (zh) | 互换格式消息的有效变换 | |
EP1608131B1 (en) | Content retrieval using exchange of context information | |
CN113342838A (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
CN1909461A (zh) | 透明计算系统中端设备间数据的传送方法 | |
CN1655509A (zh) | 信息处理装置以及信息处理方法 | |
US8725776B2 (en) | Digests to identify elements in a signature process | |
JP2010198636A (ja) | 不要メッセージおよび受信者側が送信を要求していないメッセージの低減 | |
CN1585408A (zh) | 请求者和验证者相互通信机制 | |
EP1370965A1 (en) | Service-to-service communication for network services | |
CN1758801A (zh) | 移动通信终端中的消息发送设备和方法 | |
US8230224B2 (en) | Transmitting security data in multipart communications over a network |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20060809 |