CN1783881B - 绑定结构化数据协议至提供字节流协议的机制 - Google Patents

绑定结构化数据协议至提供字节流协议的机制 Download PDF

Info

Publication number
CN1783881B
CN1783881B CN2005101188714A CN200510118871A CN1783881B CN 1783881 B CN1783881 B CN 1783881B CN 2005101188714 A CN2005101188714 A CN 2005101188714A CN 200510118871 A CN200510118871 A CN 200510118871A CN 1783881 B CN1783881 B CN 1783881B
Authority
CN
China
Prior art keywords
byte stream
computing system
communication module
communication
structural data
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 - Fee Related
Application number
CN2005101188714A
Other languages
English (en)
Other versions
CN1783881A (zh
Inventor
C·G·卡拉
E·L·威恩谷尔德
E·B·科李斯坦森
J·C·斯科里玛
K·D·沃尔夫
M·J·古德金
M·S·瓦纳尔
S·普锐
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of CN1783881A publication Critical patent/CN1783881A/zh
Application granted granted Critical
Publication of CN1783881B publication Critical patent/CN1783881B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/149Adaptation of the text data for streaming purposes, e.g. Efficient XML Interchange [EXI] format
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • 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/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Multimedia (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Communication Control (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种使用相应的字节流来发送结构化数据的机制。当访问诸如简单对象访问协议(SOAP)包封的结构化数据时,就生成字节流。所述字节流包括代表了所述结构化数据的字节以及代表此字节流诸如例如通信模式的属性的字节集合。随后可将所述字节流传送给能够接收和发送所述字节流的通信模块(诸如TCP或命名管道模块)。

Description

绑定结构化数据协议至提供字节流协议的机制
技术领域
本发明涉及网络技术;尤其涉及用于绑定结构化数据传送至提供数据流的协议的机制,从而在不要求单向通信的消息和与其反向通信的消息相关的情况下,就能够使用双向通信实现对结构化数据的通信。
背景技术
计算技术已经改变了我们生活和娱乐的模式。现今的计算系统具有广泛的形式,包括台式计算机、膝上型计算机、输入板PC、个人数字助理(PDA)、家用设备等等。在它最基础的形式下,一个计算系统包括系统存储器以及一个或更多处理器。处理器可执行系统存储器内的软件以指导计算系统的其他硬件执行期望的功能。
网络技术能够实现计算系统的远距离通信,从而扩展了计算机的功能。例如网络技术使得诸如电子邮件、网络浏览、文件传送、即时消息、电子白板、网络协作之类的应用得以实现。因此,计算机网络能够实现通信的广泛传播和信息的访问。
计算系统间的数据通信通常采用结构化的形式,其中所述数据的至少部分意义是由该数据在所述结构中的位置表示的。通过遵循由结构化数据协议阐明的规则,软件组件可以生成或解释数据结构的至少部分。在本说明和权利要求中,“结构化数据协议”被广泛地定义成规定了数据结构是如何形成的含有一条或更多规则的规则集。还能够由多种结构化数据协议管理数据结构不同部分。
结构化数据协议的一个实例包括了可扩展标记语言(XML)的各种版本。XML允许以分层组织节点树的形式将数据结构化。根节点形成树的最先辈节点。所述根节点可以具有零个或更多子节点,而每个子节点还可具有零个或更多子节点等等。每个节点具有属性和/或其他文本内容。XML本身不指定节点的标识,也不指定分层树的形式。因此,XML足以灵活地结构上地代表众多数据类型。
某些结构化数据协议在基础的XML上添加了另外的结构规则。例如,这些结构化数据协议包括简单对象访问协议(SOAP)的各种版本。SOAP以SOAP包封的形式定义了代表与一次传送相结合信息的XML单元。所述SOAP包封包括了含有首部单元及主体单元的XML子单元。所述首部单元可包括一些定义了版本、路径选择、地址信息、信息标识符等强制的和可选的XML子单元。所述主体单元包括遵守一个或更多其他结构化数据协议的其他XML结构。
设计SOAP成为相对传送不可知。然而SOAP定义了与超文本传输协议(HTTP)的缺省绑定作为传送机制(通常称作“SOAP-over-HTTP”)。因此,SOAP-over-HTTP得以广泛实现。所述SOAP-over-HTTP绑定(以及基础的HTTP协议)存在降低其在客户机和企业情况下效用的多个限制。
首先,因为HTTP是一种固有的请求-应答协议,所以HTTP限于在所支持的消息交换模式内。特别地,HTTP交互的发起方发送对服务器单个请求,随后就等待基础传输控制协议的连接响应。可忽略该响应用以模拟由所述请求代表的单向通信。然而由于该响应包括了无用信息,所以该模拟浪费了宝贵的网络带宽。因此,HTTP仅有效地支持基本的单请求-单响应消息交换模式。这就导致了诸多限制。例如服务器无法发送非请求响应给客户机(即单向消息)。而且客户机在给定TCP连接的同时最多可具有一个未决的请求。直到接收了第一响应才能启动第二请求。此外,服务器对给定请求仅响应一次。最后,因为在处理请求时服务器要保持网络连接的开启,使得服务器处理消息的时间通常是有限的,因此就阻止了长时间运行交互。
第二,配置的HTTP基础结构通常不支持流HTTP传送请求消息。所述请求消息流被称为“多级组块(chunking)”。这就很难在流传送像是在请求消息内多兆字节商务文档的大量消息。考虑到计算机资源,缓冲大量消息通常太过昂贵而不可行。
第三,为了激活HTTP的安全措施,交互必须协商从HTTP到HTTP安全(HTTPS)协议。因为HTTPS是不同的协议(具有不同的TCP端口和不同的统一资源标识符(URI)方案),所以通信基础结构通常需要从HTTP到HTTPS的特别情况协商。例如,可以在路径选择表格中有两个重复入口;一个支持HTTP,另一个支持HTTPS。但是考虑到计算机资源,这同样是低效率的。
因此有利的情况是:在允许灵活消息交换规范的模式下,绑定诸如XML和/或SOAP的结构化数据协议到基础的传送,从而许可数据流传送并且便于安全措施的激活。
发明内容
以上在本领域现有技术中存在的问题可由本发明的原理克服,该原理直接涉及使用相应的字节流把结构化数据发送给第二计算系统的机制。因为结构化数据被转换成字节流用于通信,所以使用任何能够传送字节流的通信模块或协议可用于通信而不是仅限于使用超文本传输协议(HTTP)。
当访问诸如简单对象访问协议(SOAP)包封的结构化数据时,就生成字节流。所述字节流包括代表可结构化数据的字节以及代表字节流相关属性的字节集。随后将该字节流送给能够接收并发送所述字节流的通信模块(例如,TCP或者命名管道模块)。在随后的详尽描述中可以显见这些属性的宽范围。
在随后的说明中将阐述本发明另外的特征和优点,并且它们的部分可从说明书中显见或者可以通过对本发明的实践而得知。通过在所附的权利要求中特别指明的手段和组合,能够认识并且获取本发明的特征和优点。本发明的这些和其他的特征将在随后的说明和所附权利要求中变得更加显而易见,或者可从以下阐述的发明实践中探得。
附图说明
为了以可获取的模式对本发明上述的和其他的优点和特征进行描述,以上被简述的本发明的详尽说明将参考附图中示出的特定实施例进行阐述。应该理解这些附图仅描述本发明的典型实施例因此不认为对其范围的限制,将通过使用附图来描述和说明本发明另外的特性和细节,这些附图包括:
图1示出了能够实现本发明特征的合适计算系统;
图2示出了能够使用本发明原理的网络环境;
图3示出了通过首先把结构化数据转换成字节流以发送结构化数据的方法,上述字节流包括结构化数据的表示以及代表了相关的结构化数据属性信息的表示;
图4示出了通过首先接收代表了结构化数据以及该字节流属性的字节流来接收结构化数据的方法;
图5示出了代表结构化数据以及所述字节流属性的字节流的数据结构;
图6A示出了使用单连接对在单接收计算系统上运行不同进程进行的多个外出通信进行通信的通信模式;
图6B示出了使用单连接进行单向可靠通信的通信模式;以及
图6C示出了使用单连接进行双向可靠通信的通信模式。
具体实施模式
本发明的原理涉及使用相应的字节流发送结构化数据的机制。当访问诸如简单对象访问协议(SOAP)包封的结构化数据时,就生成字节流。所述字节流包括代表结构化数据的字节,以及代表诸如像是通信模式的字节流相关属性的字节集。随后将该字节流送给能够接收并发送该字节流的通信模块(例如,TCP或者命名管道模块)。在接收侧能够以相反的模式恢复该结构化数据。因为该结构化数据被转换成字节流,所以使用任何通信模块(例如,TCP或者命名管道模块)发送该结构化数据而不是仅仅依靠HTTP。
现在转到附图,其中相同的编号指示相同的单元,将示出在合适的计算环境中实现的本发明原理。随后的描述基于本发明示意性的实施例,并且考虑到未在这里详尽描述的可选实施例,这里的描述就不应该作为对本发明的限制。
在如下的描述中除非另加指示,将参考由一个或更多计算机执行的操作的动作和符号表示来描述本发明的实施例。这样就可以理解,这些有时被称为计算机执行的动作和操作包括由计算机处理单元对以结构化形式表示数据的电信号的处理。以本领域技术人员熟知的方式重新构造或者以另外方式改变计算机操作的该处理,变换所述数据或者在计算机存储器系统的存储单元处保持这些数据。其中保持有数据的数据结构是具有由该数据格式定义的特定属性的存储器物理存储单元。虽然将在下文中描述本发明原理,但这并不意味着限制本领域技术人员能够意识到此后描述的动作和操作也可在硬件内实现。
图1示出了这些设备可使用的计算机结构实例示意图。出于描述性的目的,所描绘的结构仅仅是适当环境的一个实例,而不是想要对本发明使用和功能范围提出任何限制。同样也不应该认为所述计算系统需要依赖或要求图1中示出组件的任何一个或其组合来进行说明。
本发明的原理也可以在众多其他的通用或专用计算或通信的环境或结构中运用。适于使用本发明的已知计算系统、环境和结构包括但不限于:移动电话、便携计算机、个人计算机、服务器、微处理器系统、基于微处理器的系统、小型计算机、大型计算机和包括上述任何系统或设备的分布式计算环境。
在它最基本的结构中,计算系统100通常包括至少一个处理单元102和存储器104。存储器104可以是易失性的(诸如RAM)、非易失性的(诸如ROM、闪存等等)或者两者的某种组合。这种最基本的结构由图1中的虚线框106示出。
存储媒介还可具有附加特征和功能。例如,它们可以包括附加存储装置(可移动或不可移动),这些装置包括但不限于PCMCIA卡、磁盘或光盘和磁带。这些附加存储装置由图1中可移动存储装置108和不可移动存储装置110示出。计算机存储媒介可以是以任何信息存储方法和技术实现的易失性的和不易失性的、可移动和不可移动的媒介,诸如计算机可读指令、数据结构、程序模块或者其他数据。系统存储器104、可移动存储装置108以及不可移动存储装置110都是计算机存储媒介的实例。计算机存储媒介包括但不限于RAM、ROM、EEPROM、闪存或其他存储技术、CD-ROM、数字通用盘(DVD)或者其他光学存储器、磁盒、磁带、磁盘存储器或者其他磁性存储设备或者能够存储期望信息并可由计算设备100访问的任何其他介质。
作为在此使用的术语“模块”或“组件”可认为是在计算系统上执行的软件对象或例程。在此描述的不同的组件、模块、引擎或服务可以作为在计算系统上执行的对象或进程(例如作为分离的线程)得以实现。虽然在此描述的系统和方法更适合以软件实现,但是以软件和硬件的实现或者以硬件实现也是可行的并且是可预期的。
计算系统100还可以包括允许主机经由例如网络120与其他系统或设备进行通信的通信信道112。虽然网络120可以包括任何网络类型(无论是现存的还是将来研发的),这里的实例包括令牌环网、以太网、蓝牙、802.11、USB、1394、SMS、SOAP over IP等等。通信信道112是通信媒介的实例。通信媒介通常具体体现为计算机可读指令、数据结构、程序模块或者在诸如载波或其他传送机制的已调制数据信号中的其他数据,并且所述通信媒介还包括任何信息传输媒介。作为例子而非限制,通信媒介包括诸如有线网络或者直接线连接的有线媒介,以及诸如声学、RF、红外线或其他无线媒介的无线媒介。这里使用的术语计算机可读媒介包括存储媒介和通信媒介两者。
计算设备100可以具有诸如键盘、鼠标、笔、语音输入设备、触摸输入设备等等的输入组件114。输出组件116包括显示器、扬声器、打印机等等,以及驱动它们的呈现组件(通常称为“适配器”)。计算系统100具有电源118。所有这些设备都在本领域内为人周知,因此无需在此详细讨论。
图2示出了可在其中运用本发明原理的环境200。网络环境可包括任意数量的计算系统。但是为了阐述的清楚,示出了第一计算系统210和第二计算系统220。所述第一计算系统210和第二计算系统是互相通信地可耦合的。当两个计算系统具有相互通信地耦合的能力时,它们就是“通信可耦合的”。在本说明书和权利要求中,如果两个计算系统中的一个与另一个进行通信,那么它们就是“通信可耦合的”。两个计算系统210和220甚至可以集成在相同的计算系统或设备内,但仍使用本发明原理进行通信。例如,一个计算系统可代表一种存储机制,而另一个则使用本发明原理发送和接收来自存储机制的信息。
根据本发明的原理,绑定模块212访问结构化数据211并且用于将管理结构化数据211的结构的结构化数据协议与提供字节流的字节流协议绑定。字节流通信模块214由术语“字节流”修饰以强调该通信模块依据字节流协议提供字节流用于和其他计算系统地通信。在本说明书和权利要求中,“字节流”被定义为字段序列。在某些情况下,将无法得知先验(priori)字节流长度。在其他情况下,该长度可以得知和/或是固定大小。所有这些情况都落入在此使用的“字节流”定义之内。
在一个实施例中,结构化数据211可以是分层结构化文档,诸如像是可扩展标记语言(XML)文档。在一个特定的实施例中,所述XML文档可以是简单对象访问协议(SOAP)文档。适当字节流协议的实例包括例如,传输控制协议和命名管道。绑定模块212通过把结构化数据211转换成字节流213完成与字节流协议的绑定,并且随后把所述字节流213提供给字节流通信模块214。然后字节流通信模块214将由箭头215代表的数据发送给第二计算系统220。在第二计算系统220内的类似字节流通信模块224接收所述数据,并将该数据作为字节流223提供给绑定模块222。该绑定模块222接收结构化数据221。
现已广泛描述了本发明原理,随后将参考图3和图4更详细地讨论特定实施例的操作。图3示出了用于发送结构化数据的方法300的流程图,该方法首先把结构化数据转换成包括了结构化数据表示以及代表了关于该结构化数据的属性信息的表示的字节流。当发送结构化数据211至第二计算系统220时,可由绑定模块212执行所述方法300。
绑定模块212访问结构化数据用于将其发送至第二计算系统(动作301)。通过例如接收来自其他组件或计算系统的结构化数据一些或全部和/或通过生成结构化数据的一些或全部,绑定模块212可以访问该结构化数据。如前所述,结构化文档的实例包括XML文档和SOAP包封。随后列举一个期望发送至第二计算系统220的SOAP包封的实例(使用SOAP版本1.2表述,但本发明原理不限于此版本)。
<S:Envelope xmlns:S=’http://www.w3.org/2003/05/soap-envelope’>
  <S:Body/>
</S:Envelope>
这三行SOAP包封只是一个简单的实例并将作为贯穿本说明书的实例用于进一步阐明本发明实施例操作的目的。
在访问结构化数据211(动作301)之后,绑定模块212把结构化数据211转换成包括了集体代表一个或更多字节流属性的第一多字节以及集体代表所述结构化数据的第二多字节。图5示意性地示出了代表字节流213实例的适当字节流500。
参见图5,字节流500包括可能在由水平省略符代表的其他结构化数据成分520B其中的结构化数据成分520A。指定图5中的字节流500内的起始信息为最右边的字段,左边则跟随着连续的信息。每个结构化数据成分520A和520B都包括相应的结构化数据。例如,结构化数据成分520A包括相应的结构化数据522A的字节流表示。如上所述,结构化数据522A可以是,例如SOAP包封。每个结构化数据成分520A和520B也可任选地包括标识结构化数据字节流表示的长度的长度分量。例如,长度成分521A标识结构化数据522A的字节流表示长度。如果字节流长度已知(例如是接收方已知的固定大小),那么长度字段成为可任选字段。也可使用一些其他的机制来协商该长度。此外,每个结构化数据成分520A和520B也可任选地包括其他信息。例如,结构化数据成分520A包括其他字段523A。
字节流内具有长度字段512A带来了诸多优点。首先,可简单跳过畸变的结构化数据成分,而不是关闭连接。关闭连接耗费代价是因为连接的重开会占用时间、处理资源和存储器资源。此外,在连接关闭期间本应接收的某些消息就可能丢失。第二,在调用处理消息的应用编码之前就可将全部的结构化数据读入存储器。这就允许该应用无需等待消息的其余部分成为可用,就可完全访问该消息并且进行完整处理。
字节流500还包括在总体上定义了字节流500属性的流属性510。也可认为这些属性是字节流500的属性记录。已示出这些属性记录的实例。虽然未示出,但是结构化数据可以在每个属性字段间交织以重置流属性。
首先示出的是定义了字节流500的成帧版本的版本记录511。随后接收计算系统将此版本与管理如何解释后续属性记录和/或如何恢复结构化数据的一组规则相关联。例如,所述版本信息可以把一列可接受属性记录列表与它们对应的意义相关。
接下来示出的是定义了通信模式的通信模式记录512。以下将结合图6A至图6C详细描述相关通信模式。简言之,通信模式允许在指定消息交换模式下的灵活性和可靠性。具有模式记录512就可允许单网络地址(例如,单TCP端口号)以不同的模式接收消息。因为TCP端口对于给定机器而言是有限资源,使用这些端口号多少有些浪费。
通路记录513定义了数据流500的目标目的地。绑定模块可驻留在通信协议堆栈内,位于所述协议堆栈的上层内的该绑定模块将结构化数据211(或在结构化数据211内代表的信息)发送至另一个目的地。这样做就使得该信息的最终目的地与用在通路记录513中的由地址所表示的计算系统相比与通信路径更为一致。尽管如此,通路记录512代表了下一个绑定模块级的目的地地址。在无需花费完全解析字节流500所需的和访问结构化数据522A所需的处理资源的情况下,通路记录513通过接收系统允许某些级别的调度。通路记录513的值可以缺省预置成前一通路的值,从而减小了字节流的大小。
编码字段514可以为任何包含的结构化数据成分522定义一编码格式。这就允许系统在一个连接上支持多于一种的编码,这就减小了所需的连接数。还允许使用单地址(例如,单TCP端口号)用于不同的编码。如上所述,使用TCP端口号是昂贵的。对内容类型的已知的和可扩展的值同时支持就使得在不牺牲普通值的线尺寸下允许可扩展性。例如,可以用单字节编码已知的内容类型,但是通过指示对应于MIME媒介类型的串值,但附加的内容类型是可能的(但更为冗长)。
更新字段515指示是否要求安全更新或者该安全更新是否被响应。一旦两个计算系统完成了安全更新请求并跟随着返回肯定响应,那么这两个计算系统可以使用安全组件(例如安全套件层)用于进一步协商安全。所述更新字段515无需用于进一步的协商,但是至少需用于请求安全更新并且确认该安全更新是可能的,使得后续协商能够完善所述安全更新。当使用更新字段515时,就无需任何结构化数据成分520。由于为通信安全而不要求分开的连接,所以该更新机制是有效的。此外,更新字段515可以也用于其他的诸如像协商压缩和/或加密的完整流变换。
在例如前一数据流没有良好形成或者在其他不能被响应的情况下,故障字段516允许用于任何故障信息的通信。也是在此情况下,在使用故障字段515时,不需要任何结构化数据成分520。
其他字段517代表了可能的属性记录的列表是可扩展的。例如,其他字段517可以包括要协商关于流的诸如像是压缩或加密等等的其他信息。
随后将示出将三行SOAP包封实例转换为相应字节流的指定实例。在该指定实例中,附加的文本被添加到每一行用来辅助读者理解每行中阐述的相应字节流成分。每行的最左边是两个在圆括号内的数字,这两个数字代表行号。在该实例中行号是从01到24。紧接在行号的结束圆括号之后的是一个或更多的两位十六进制数的簇,其中每一位代表一个字节。每行的结束是由双正斜杠“//”作为开始的可人工读取的注释。当然所述字节流是一组字节串,并非组织成行的形式。下述示例使用逻辑分界人为地安排成行以便于读者阅读。
(01)00                        //版本记录
(02)01                        //主版本是1
(03)01                        //次版本是1
(04)01                        //模式记录
(05)03                        //模式是3(单向)
(06)02                        //通路记录
(07)0f                        //长度信息(记录是23字节)
(08)68 74 74 70 3a 2f 2f 65   //UTF-8用于“http://e”
(09)78 61 6d 70 6c 65 2e 6f   //UTF-8用于“xample.o”
(10)72 67 2f 64 65 73 74      //UTF-8用于“rg/dest”
(11)03                        //已知编码记录
(12)03                        //SOAP 1.2,U TF-8
(13)06                        //确定尺寸的包封记录
(14)54                        //长度信息(记录是84字节)
(15)3c 53 3a 45 6e 76 65 6c   //UTF-8用于“<S:Envel”
(16)6f 70 65 20 78 6d 6c 6e   //UTF-8用于“ope xmln
(17)73 3a 53 3d 27 68 74 74   //UTF-8用于“s:S=′htt
(18)70 3a 2f 2f 77 77 77 2e   //UTF-8用于“p://www.
(19)77 33 2e 6f 72 67 2f 32   //UTF-8用于“w3.org/2
(20)30 30 33 2f 30 35 2f 73   //UTF-8用于“003/05/s
(21)6f 61 70 2d 65 6e 76 65   //UTF-8用于“oap-enve
(22)6c 6f 70 65 27 3e 3c 53   //UTF-8用于“lope′><S
(23)3a 42 6f 64 79 2f 3e 3c   //UTF-8用于“:Body/><
(24)2f 53 3a 45 6e 76 65 6c   //UTF-8用于“/S:Envel
(24)6f 70 65 3e               //UTF-8用于“ope>
第一行(即行01)含有字节00。每个记录包含的字节可以多于一个。在此实例中,每个记录的第一字节标识记录的类型。在此情况下的00指示该记录是版本记录。第二和第三行都包括一个字节,其中第二行标识主版本而第三行标识次版本。行01到03共同代表了图5中版本记录511的实例。
行04包括一个代表了用于下一个记录的记录类型标识符的字节。在此字节01代表了通信模式记录。行05包括表示值为3的一个字节,其中3代表运行模式是单向。通信模式的其他实例包括多向、双向或单路(singleton)。这些通信模式中的每种模式的意义都将参考图6A到6C进行讨论。可以通过添加更多的成帧版本以及通过恰当标识版本记录中的版本来扩展通信模式的数目。行04和05共同代表了图5中模式记录512的实例。
行06包括了指示通路记录开始的记录类型标识符字节02。行07标识通路记录的长度,在此例中为23字节。行08到行10包括了代表23个UTF-8字符的23个字节,它们定义了目的地地址“http://example.org/dest”。行06至行10共同代表了图5的通路记录513的实例。
行11包括了指示编码记录开始的记录类型标识符字节03。行12包括表示值为3的一个字节,其中3对应于此实例中的UTF-8和SOAP版本1.2。行11至行12共同代表了图5的编码记录514的实例。
行13包括了指示确定尺寸包封记录的记录类型标识符字节03。确定尺寸包封记录包括所述SOAP包封的尺寸标识以及所述SOAP包封本身。特别地,行14标识所述SOAP包封的长度为75字节(或者也可以是75个字符,因为使用一个字节代表UTF-8中的每个字节。行15至行24代表了在前述实例中示出的用于三行SOAP包封的UTF-8。因此,行15到行24一起代表了图5的结构化数据522A的字节流表示。行14代表了的图5的长度字段521A。这样,行13到行24一起代表了图5的结构化数据520A。
可以使用其他属性记录来表达安全更新请求或响应,表达故障或其他信息。
因为字节流500现在是字节流,所以它可被提供给任何需要字节流供应的通信模块,诸如用户数据报协议(UDP),微软消息队列(MSMQ)、TCP或命名管道。因此参见图3,在生成字节流之后,所述绑定模块随后将字节流213传输至接收字节流来与其他计算系统通信的字节流通信模块214(动作303)。
可以使用其他属性记录来表达安全更新请求或响应,表达故障或其他信息。
图4示出了使用首先接收代表了结构化数据以及该字节流属性的字节流以接收结构化数据的方法400的流程图。方法400可在第二计算系统220处由绑定模块222执行,或者另外可以在接收消息时在第一计算系统210处由绑定模块212执行。在任一情况下,一接收到消息,字节流通信模块224(或214)就提供字节流给相应的绑定模块222(或212)。
随后绑定模块接收字节流(动作401)、绑定模块可使用属性记录标识版本信息、通信模式等等。接收绑定模块使用与用于构造字节流的发送绑定模块使用相同的成帧规则解释字节流。因此,接收绑定模块随后可从字节流中恢复结构化数据(动作402)。所述发送和接收过程可以频繁重复。
因此,本发明的原理描述了使用提供字节流的通信模块(诸如TCP)用于通信结构信息(诸如SOAP包封)的灵活机制。与这些通信模块接口的能力意味着可以利用这些通信模块的灵活性为消息交换模式和可靠性带来更宽的选择范围。TCP不限于单请求-单响应消息模式。也可以使用更多的消息模式来克服像SOAP-over-HTTP最严重的固有弱点之一。此外,该机制允许与成帧协议集成的便捷安全更新。
通信模式也可改变。在一个实施例中,通过将通信模块信息包含在如图5所示的字节流500的流属性510的模式字段512中来执行这种改变。图6A至图6C示出了由通信模式记录设置的各种通信模式的若干实例。在每幅图中,组件610代表在第一计算系统上的单连接(例如TCP或者命名管道连接),而组件620代表在第二计算系统上的单连接(例如TCP或者命名管道连接)。
图6A示出了多向模式。在此模式下,单连接610A发送数据给单连接620A。在相应于绑定模块的绑定层处,即使使用单连接接收各种消息,各种这些消息也可被路由至不同的端点。例如在一个实例中假定与一个统一资源标识符(URI)和TCP端口(例如与连接610A相关联的)相关联的用户想要与由另一个URI和TCP端口代表的在线书店相接口。那个单TCP端口可以提供多种不同的服务。例如,可能一项服务是提供书店的目录信息,而另一项服务是提供图书购买。并不需要为每项请求使用不同的连接。而是发送恰当请求611A给连接620A用于对目录服务的恰当路由选择612A至614A,并且同样的连接还会在随后的图书购买中使用。在图5的实施例中,可以使用在通路记录513内的信息完成该路由选择。
图6B示出了单向模式,其中第一计算系统使用单连接610B可靠发送消息611B给位于第二计算系统处的单连接620B。也可在图5的实施例的模式记录512中标识该单向模式。为确保可靠性,会返回由箭头612B代表的确认消息或信息包。连接620B把字节流613提供给协议堆栈的其他层。在此模式下,在TCP和命名管道的情况下在连接之间不存在中间绑定级模块。尽管如此,还要进一步确保可靠性。提供该可靠性的确认消息可以位于例如,结构数据本身(例如图5的结构化数据522A)或者通过某些其他的机制。
图6C示出了双向模式,其中第一计算系统使用单连接610C以可靠发送消息611C给位于第二计算系统处的单连接620C。也可在图5的实施例的模式记录512中标识该双向模式。可用相关的确认消息612C以提高可靠性,并且连接620C提供613C相应的字节流给协议堆栈内的其他层。同样在相反方向上,第二计算系统使用单连接620C可靠发送消息621C给位于第一计算系统上相同的连接610C。可用相关联的确认消息622C提高可靠性,并且连接610C提供623C相应的字节流的给协议堆栈内的其他层。
虽未示出,但是还可使用图5实施例的模式字段512来选择“单向”。该单向使用单连接用于发送不限大小的字节流给第二计算系统。
在不背离本发明精神或本质特征的情况下,本发明还可以具体表达为其他的特定形式。应认为所述实施例是示意性而非限制性地。因此本发明的范围不是由前述说明书而是由所附权利要求所指示的。在与权利要求等效意义和范围内的所有改变都被认为在本发明的范围之内。

Claims (19)

1.在包括可通信地耦合至第二计算系统的第一计算系统的网络环境中,一种由所述第一计算系统使用相应的字节流将结构化数据发送给第二计算系统的方法,该方法包括:
访问用于发送给第二计算系统的结构化数据的动作;
生成包括集中代表了一个或更多字节流属性的第一多字节和集中代表了所述结构化数据的第二多字节的字节流的动作,所述第一多字节整体上定义了所述字节流的属性,所述第一多字节包括:
字节流中的一个或多个字节,用于定义一版本记录,其中所述版本记录定义了字节流的成帧版本;
字节流中的一个或多个字节,用于定义一通信模式记录,该通信模式记录定义了字节流的通信模式,其中所述通信模式记录允许单个网络地址在不同模式下接收消息;以及
一个或多个字节,用于定义编码字段,其中所述编码字段定义用于结构化数据组件的编码格式,并允许单个地址被用于不同的编码;以及
把所述字节流送至接收该字节流用于与其他计算系统通信的字节流通信模块的动作。
2.如权利要求1所述的方法,其特征在于,所述访问结构化数据的动作还包括:
由所述第一计算系统本身生成结构化数据的动作。
3.如权利要求1所述的方法,其特征在于,所述访问结构化数据的动作还包括:
所述第一计算系统接收来自其他计算系统的结构化数据的动作。
4.如权利要求1所述的方法,其特征在于,所述结构化数据包括XML。
5.如权利要求1所述的方法,其特征在于,所述结构化数据是SOAP包封。
6.如权利要求5所述的方法,其特征在于,所述字节流通信模块是命名管道通信模块。
7.如权利要求5所述的方法,其特征在于,所述字节流通信模块是传输控制协议(TCP)通信模块。
8.如权利要求5所述的方法,其特征在于,所述字节流通信模块是用户数据报协议(UDP)通信模块。
9.如权利要求1所述的方法,其特征在于,所述字节流通信模块是命名管道通信模块。
10.如权利要求1所述的方法,其特征在于,所述字节流通信模块是传输控制协议(TCP)通信模块。
11.如权利要求1所述的方法,其特征在于,所述字节流通信模块是用户数据报协议(UDP)通信模块。
12.如权利要求1所述的方法,其特征在于,所述字节流通信模块是微软消息队列(MSMQ)通信模块。
13.如权利要求1所述的方法,其特征在于,所述字节流的通信模式包括可由第一计算系统使用的单连接将多个字节流发送给第二计算系统上不同过程的模式。
14.如权利要求1所述的方法,其特征在于,所述字节流的通信模式包括可由第一计算系统使用的单连接将字节流可靠发送给第二计算系统的模式。
15.如权利要求14所述的方法,其特征在于,所述字节流的通信模式还可包括由第一计算系统使用的单连接可靠接收来自第二计算系统的字节流的模式。
16.如权利要求1所述的方法,其特征在于,所述字节流的通信模式包括使用单连接发送不限大小的字节流给第二计算系统的模式。
17.如权利要求1所述的方法,其特征在于,所述一个或更多的字节流属性包括第一多字节的编码格式。
18.如权利要求1所述的方法,其特征在于,所述一个或更多的字节流属性包括目标目的地的统一资源标识符(URI)。
19.如权利要求1所述的方法,其特征在于,所述字节流是第一字节流并且所述结构化数据是第一结构化数据,该方法还包括:
接收来自字节流通信模块的第二字节流,所述第二字节流包括集体表示了一个或多个第二字节流属性的第三多字节和集体表示了第二结构化数据的第四多字节的动作;以及
从第二字节流中恢复第二结构化数据的动作。
CN2005101188714A 2004-12-03 2005-11-03 绑定结构化数据协议至提供字节流协议的机制 Expired - Fee Related CN1783881B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/003,847 2004-12-03
US11/003,847 US8533357B2 (en) 2004-12-03 2004-12-03 Mechanism for binding a structured data protocol to a protocol offering up byte streams

Publications (2)

Publication Number Publication Date
CN1783881A CN1783881A (zh) 2006-06-07
CN1783881B true CN1783881B (zh) 2010-06-16

Family

ID=35747202

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2005101188714A Expired - Fee Related CN1783881B (zh) 2004-12-03 2005-11-03 绑定结构化数据协议至提供字节流协议的机制

Country Status (7)

Country Link
US (1) US8533357B2 (zh)
EP (1) EP1667404B1 (zh)
JP (1) JP2006190263A (zh)
KR (1) KR101137098B1 (zh)
CN (1) CN1783881B (zh)
AT (1) ATE433252T1 (zh)
DE (1) DE602005014724D1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8533357B2 (en) 2004-12-03 2013-09-10 Microsoft Corporation Mechanism for binding a structured data protocol to a protocol offering up byte streams
EP1909191B1 (en) 2006-10-02 2011-09-14 Sun Microsystems France S.A. Method and system for transmitting data over a network
CN101771700B (zh) * 2010-01-06 2012-07-25 哈尔滨工业大学 基于FPGA的Modbus协议通信节点
FR2965371A1 (fr) * 2010-09-28 2012-03-30 France Telecom Procedes et dispositifs d'envoi et/ou de reception de donnees par un tube nomme
WO2015081218A1 (en) * 2013-11-27 2015-06-04 Interdigital Patent Holdings, Inc. Media presentation description
US9781062B2 (en) * 2014-01-08 2017-10-03 Oracle International Corporation Using annotations to extract parameters from messages
CN106254313B (zh) * 2016-07-15 2019-06-21 国云科技股份有限公司 一种通用的大数据采集字节流解析系统及其实现方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1525714A (zh) * 2003-02-25 2004-09-01 华为技术有限公司 一种asn.1协议处理器

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1994022253A1 (en) * 1993-03-20 1994-09-29 International Business Machines Corporation Method and apparatus for extracting connection information from protocol headers
JPH0879252A (ja) 1994-08-30 1996-03-22 Toshiba Corp 通信システム及び受信装置
US5553070A (en) * 1994-09-13 1996-09-03 Riley; Robert E. Data link module for time division multiplexing control systems
JP3351161B2 (ja) 1995-03-27 2002-11-25 三菱電機株式会社 静止画伝送装置および通信方法
JPH10107920A (ja) 1996-09-27 1998-04-24 Murata Mach Ltd 通信端末装置
US5983022A (en) * 1997-04-10 1999-11-09 Lsi Logic Corporation System and method for using profiles to manage data streams for device verification
DE19738340C2 (de) * 1997-09-02 2001-03-15 Siemens Ag Roaming von Mobilteilen in zumindest teilweise asynchronen drahtlosen Telekommunikationsnetzen, insbesondere DECT-Netzen
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
US6611872B1 (en) * 1999-01-11 2003-08-26 Fastforward Networks, Inc. Performing multicast communication in computer networks by using overlay routing
US6792198B1 (en) * 2000-06-06 2004-09-14 Lg Electronics Inc. Method and apparatus for recording digital data streams and management information
US7289964B1 (en) * 1999-08-31 2007-10-30 Accenture Llp System and method for transaction services patterns in a netcentric environment
US7120692B2 (en) * 1999-12-02 2006-10-10 Senvid, Inc. Access and control system for network-enabled devices
JP2002022808A (ja) * 2000-07-12 2002-01-23 Mitsubishi Electric Corp Lsi試験装置及び試験方法
AUPR063400A0 (en) 2000-10-06 2000-11-02 Canon Kabushiki Kaisha Xml encoding scheme
US6934756B2 (en) * 2000-11-01 2005-08-23 International Business Machines Corporation Conversational networking via transport, coding and control conversational protocols
US20030051026A1 (en) * 2001-01-19 2003-03-13 Carter Ernst B. Network surveillance and security system
US7500017B2 (en) 2001-04-19 2009-03-03 Microsoft Corporation Method and system for providing an XML binary format
US7505936B2 (en) * 2001-05-11 2009-03-17 Accenture Global Services Gmbh Digital content subscription conditioning system
US7124299B2 (en) 2001-05-18 2006-10-17 Claymore Systems, Inc. System, method and computer program product for auditing XML messages in a network-based message stream
US20030084443A1 (en) * 2001-11-01 2003-05-01 Commerce Tv Corporation, Inc. System and method for creating program enhancements for use in an interactive broadcast network
US8856236B2 (en) * 2002-04-02 2014-10-07 Verizon Patent And Licensing Inc. Messaging response system
ATE423354T1 (de) * 2002-04-02 2009-03-15 Verizon Business Global Llc Nachrichtenantwortsystem
US7020729B2 (en) * 2002-05-16 2006-03-28 Intel Corporation Protocol independent data transmission interface
US8069225B2 (en) * 2003-04-14 2011-11-29 Riverbed Technology, Inc. Transparent client-server transaction accelerator
US20040210663A1 (en) * 2003-04-15 2004-10-21 Paul Phillips Object-aware transport-layer network processing engine
EA015549B1 (ru) * 2003-06-05 2011-08-30 Интертраст Текнолоджис Корпорейшн Переносимая система и способ для приложений одноранговой компоновки услуг
US7467202B2 (en) * 2003-09-10 2008-12-16 Fidelis Security Systems High-performance network content analysis platform
US8533357B2 (en) 2004-12-03 2013-09-10 Microsoft Corporation Mechanism for binding a structured data protocol to a protocol offering up byte streams
KR100735233B1 (ko) * 2005-02-25 2007-07-03 삼성전자주식회사 개인방송 서비스 제공 시스템

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1525714A (zh) * 2003-02-25 2004-09-01 华为技术有限公司 一种asn.1协议处理器

Also Published As

Publication number Publication date
CN1783881A (zh) 2006-06-07
ATE433252T1 (de) 2009-06-15
KR20060063658A (ko) 2006-06-12
EP1667404A1 (en) 2006-06-07
US20060133427A1 (en) 2006-06-22
EP1667404B1 (en) 2009-06-03
US8533357B2 (en) 2013-09-10
DE602005014724D1 (de) 2009-07-16
JP2006190263A (ja) 2006-07-20
KR101137098B1 (ko) 2012-04-19

Similar Documents

Publication Publication Date Title
CN1783881B (zh) 绑定结构化数据协议至提供字节流协议的机制
Neira‐Ayuso et al. Communicating between the kernel and user‐space in Linux using Netlink sockets
EP1593204B1 (en) System and method for compression structured definition language
US20030067624A1 (en) System and method for mobile printing
JP5242887B2 (ja) 型付きアプリケーションデータのフレキシブルな転送
KR101159364B1 (ko) 분산형 애플리케이션의 객체 지향 표현과 서비스 지향 표현 간의 매핑
CN108512748A (zh) 一种微服务网关的实现方法
US7703099B2 (en) Scalable transformation and configuration of EDI interchanges
KR101137132B1 (ko) 맞춤형 태그기반 프로토콜에서의 참조에 의한 전송
JP2006216035A (ja) 通信バインディングオブジェクトを構築し、使用するシステムおよび方法
CN105871819B (zh) 传输控制方法及设备
US8799350B2 (en) Method and device for establishing network communication compatibility of terminals
CN107181794A (zh) 基于dimse消息发送与接收的dicom网络传输系统
CN101087265B (zh) 用于通过电子邮件处理系统实现与移动终端通信的方法和系统
US7779139B2 (en) Normalization of binary data
CN1585408B (zh) 请求者和验证者相互通信机制
CN104993906B (zh) 一种消息传输的方法及系统
Fox et al. Integration of Hand-Held Devices into Collaborative Environments.
US7430596B2 (en) Integrating electronic messaging diagnostics into a messaging pipeline
CN107231420A (zh) 结构化数据的传输方法、存储介质及系统
JPH0863411A (ja) データ通信方法及びデータ通信システム
CN109561079A (zh) 一种语义通信协议、通信方法和系统
JP2005258766A (ja) 帳票作成システム及び帳票作成方法及び帳票作成用プログラム
Chen et al. DocumentLayer Service
Hopkins et al. Creating a Bluetooth Print Server with JPS API

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
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150518

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150518

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100616

Termination date: 20191103