CN1493139B - 具有基于内容的消息转向器用于可伸缩性的级联网络装置和方法 - Google Patents
具有基于内容的消息转向器用于可伸缩性的级联网络装置和方法 Download PDFInfo
- Publication number
- CN1493139B CN1493139B CN01822826.7A CN01822826A CN1493139B CN 1493139 B CN1493139 B CN 1493139B CN 01822826 A CN01822826 A CN 01822826A CN 1493139 B CN1493139 B CN 1493139B
- Authority
- CN
- China
- Prior art keywords
- equipment
- message
- packet
- xml
- server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/04—Protocols specially adapted for terminals or networks with limited capabilities; specially adapted for terminal portability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1014—Server selection for load balancing based on the content of a request
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1017—Server selection for load balancing based on a round robin mechanism
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1034—Reaction to server failures by a load balancer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/563—Data redirection of data network streams
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/565—Conversion or adaptation of application format or content
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/63—Routing a service request depending on the request content or context
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer 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)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Stereophonic System (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
这里描述用于级联网络装置的不同的实施例,用于基于内容的切换,例如验证器、转换器和交换机或者它们的组合作为范例。
Description
相关申请的相互参照
该申请是美国申请序号09/566,800,题为″SCALABLE NETWORKAPPARATUS FOR CONTENT BASED SWITCHING OR VALIDATIONACCELERATION″的部分继续申请,它是美国申请序号09/549,041,题为″A NETWORK APPARATUS FOR SWITCHING BASED ON CONTENT OFAPPLICATION DATA″和美国申请序号09/562,104,题为″A NETWORKAPPARATUS FOR VALIDATING DOCUMENTS″的部分继续申请,所有的文件合并在此处用于参考。
技术领域
本发明总体上涉及计算机和计算机网络,特别地涉及用于级联网络的一种技术。
背景技术
当计算机网络(例如互联网)在作为存储和转发数据的系统方面更加成功时,计算机网络作为基于事务处理的、任务关键的商业应用和网站所有者正在经历巨大的增长,并且,商业服务器被爆炸性的业务量增长所淹没。
XML或者可扩展的标示语言v.1.0由万维网协会(W3C)在1998年2月10日采纳。XML为数据交换提供一种结构化的句法。XML是一种标示语言,类似超文本标示语言(HTML)。类似HTML的大部分的标示语言是固定的标示语言。也就是说,例如HTML的固定标示语言包括一组用于制作文件的固定标记。另一方面,XML没有定义一组固定标记,而是仅仅定义了用户可通过它来定义自己的XML标记组的一种句法或者结构化格式。目前有许多基于XML的语言,它们使用XML句法来定义它们自己的标记组。XML具有更进一步的优点,因为实际数据与数据的表示是分离的,这与组合这两项的HTML形成对比。作为结果,XML有可能变成这样一种标准,使大部分的计算机、服务器和应用程序可通过该标准来交换或者传递数据。
作为结果,需要提供这样的一种网络装置,该网络装置可以进行伸缩以适应互联网络业务量的这种爆炸性增长。还希望允许这种网络装置以各种格式(例如XML)处理或者操作信息。
发明内容
按照本发明的第一方面,提供了一种用于级联网络的装置,该装置包括:耦合在客户和服务器之间的一设备,该设备具有一配置,该设备包括:用于通过一个或多个接收的数据分组来接收一消息的装置;用于将所接收的数据分组同该设备的配置进行比较的装置;只有当接收的数据分组具有一个或多个与该设备的配置相匹配的字段时才处理所述消息的装置;用于将所接收的数据分组中的匹配字段变换为不再与该设备的配置匹配的装置;以及通过具有一个或多个已被变换的字段的一个或多个数据分组来转发一被处理的消息的装置。
按照本发明的第二方面,提供了一种用于级联网络的装置,该装置包括:耦合在客户和服务器之间的多个设备,这些设备具有同样的配置,这些设备包括:用于通过一个或多个接收的数据分组来接收消息的装置;用于将所接收的数据分组同这些设备的配置进行比较的装置;只有当接收的数据分组具有一个或多个与这些设备的配置相匹配的字段时才用于处理所述消息的装置;如果接收的数据分组的一个或多个字段与这些设备的配置不相配,则用于通过所接收的数据分组不加改变地转发所述消息的装置;用于将所接收的数据分组中的匹配字段变换为不再与这些设备的配置相配的装置;以及用于通过具有一个或多个已被变换的字段的一个或多个数据分组来转发所处理的消息的装置。
按照本发明的第三方面,提供了一种用于级联网络的装置,该装置包括:一具有第一配置的第一设备;一耦合到第一设备的第二设备,第二设备具有一第二配置;第一设备包括:用于通过一个或多个接收的数据分组来接收消息的装置;用于将所接收的数据分组同所述第一设备的配置进行比较的装置;只有当接收的数据分组具有一个或者多个与所述第一设备的配置相配的字段时才用于处理所述消息的装置;如果接收的数据分组的一个或多个字段与第一配置不相配,则用于通过所接收的数据分组不加改变地转发所述消息到第二设备的装置;以及用于将所接收的数据分组中的匹配字段变换为不再与第一设备的配置相匹配的装置。
按照本发明的第四方面,提供了一种用于级联网络的方法,该方法包括:配置一设备;通过一个或多个数据分组在该设备上接收消息;将所接收的数据分组同该设备的配置进行比较;只有当接收的数据分组具有一个或者多个与该设备的配置相匹配的字段时才处理所述消息;将所接收的数据分组中的匹配字段变换为不再与该设备的配置相匹配;以及通过具有一个或多个被变换的字段的一个或多个数据分组转发所处理的消息。
附图说明
当结合附图一起阅读时,根据下列示范性实施例和权利要求书的详细说明,(所有的这些组成了本发明公开的一部分)可以使本发明的上面和更好的理解将变得更清楚。虽然上面和后面写下的和解释的公开集中在本发明的实施例公开上,但是应该清楚地理解到:这只是用作解释和举例,而不用作对其的限制。本发明的精神和范围仅由后附权利要求的条款限制。
下面表示附图的简要说明,其中:
图1是按照一种范例实施例的网络系统的方框图。
图2是解释按照一种范例实施例的基于内容的消息导向器的操作的一个流程图。
图3是解释按照一种范例实施例的包括一个验证加速器的网络系统的方框图。
图4是解释按照一种范例实施例的一种样本消息的框图。
图5是解释按照一种范例实施例的用于基于内容的消息导向器的另一个范例操作环境的方框图。
图6是解释按照一种范例实施例的一种转换交换机的方框图。
图7是解释按照另一个范例实施例的一种转换交换机的方框图。
图8是解释按照一种范例实施例的一种系统的方框图。
图9是解释按照一种范例实施例的两个设备级联的方框图。
图10是解释一个XML设备处理不匹配XML设备配置的事务处理或者消息的操作的图。
图11是解释一个XML设备处理匹配于XML设备配置的事务处理或者消息的操作的图。
图12是解释按照一种范例实施例的多个设备级联的图。
图13是解释按照一种范例实施例的多个验证器级联的图。
图14是解释按照一种范例实施例的多个变换器级联的图。
图15是解释按照一种范例实施例的多个基于内容的交换机的级联图。
具体实施方式
1、基于内容的切换
参考附图(其中相同数字指示相同组成部分),图1是按照一种范例实施例的网络系统的方框图。如图1中所示,各种客户可以通过例如互联网130的网络耦合或者连接到数据中心135。例如,客户可以包括其中包含应用程序112的服务器110、其中包含网页浏览器122的计算机120(例如个人电脑或者便携式电脑)和无线设备132,所述无线设备132例如是个人数字助理(PDA)或者无线(或者蜂窝)电话。无线设备132可以分别通过通信链路134和136耦合到互联网130或者数据中心135。链路134和136的每一个可以包括一个或多个无线链路(例如蜂窝链路或其它链路)或者有线链路。包括服务器110、计算机120和设备132的每一个客户可以通过互联网130发送和接收消息,并且可以使用各种不同的协议或者传送器。
提供数据中心135用于发送、接收并处理多种类的消息、请求、商业事务处理、采购定单、股票报价或股票交易及其它信息。数据中心135包括几个处理节点,例如服务器,所述服务器包括用于处理各种定单、商业事务处理及其它请求的服务器150、服务器160和服务器170。数据中心135中的不同服务器可被进行分配以提供不同服务乃至不同的服务水平。按照一种范例实施例,客户和数据中心135通过发送和接收包含提供于XML或者基于XML的语言中的数据的XML消息,或基于用于数据交换的另一种结构化的句法的消息,来互换商业事务处理信息或者其它信息。
各种服务器(例如服务器150、160和170)通过一个交换机165耦合到业务量管理器140。业务量管理器140可以执行与业务量管理有关的各种功能,包括负载平衡,例如按照某些策略(例如循环法、最小连接数目或者其它负载平衡技术)来使可用服务器上的输入消息或请求的负载平衡。
再次参考图1中的客户,应用程序112可以是一个商业程序或者一个用于管理库存、定单或者其它商务事务处理的程序。例如,应用程序112可以自动地并且电子地检测库存已经减少到一个阈值以下,然后自动地产生并发送一个采购定单给数据中心135上的供应者服务器以请求运输额外的供应或者库存。由此,服务器110可以通过发送电子定单到位于数据中心135的供应者远程服务器来开始例如一个商业对商业(B2B)的事务处理。
作为另一个范例,网页浏览器122可以向一个例如位于数据中心135的远程服务器请求网页、商业信息或者其它信息。网页浏览器122还可发送或者邮寄采购定单、商业事务处理或者其它商业信息到可能位于数据中心135上的远程服务器。无线设备132可以从诸如位于数据中心135上的一个或多个远程服务器接收与采购定单、商业事务处理、网页、股票报价、比赛得分等相关的信息或者数据。
按照一种实施例,服务器110、计算机120和无线设备132的每一个可以通过发送并接收XML数据来与一个或多个远程服务器(例如服务器150、160和170)传递或者互换数据,XML数据可以是按照XML标准或者按照一个或多个以XML为基础的语言而编码或者格式化的应用数据。
按照一种范例实施例,业务量管理器140包括基于内容的消息导向器145来基于应用数据(例如商业事务处理信息,作为一个例子,该商业事务处理信息可以作为XML数据提供)的内容而将消息引导或者切换到所选择的服务器。业务量管理器140和/或消息导向器145可以是软件、硬件或者两者的组合,并且甚至可以是提供在网络处理机上或者作为网络处理机的一部分。应该注意到:导向器145可能独立工作,或者作为较大的网络装置的一部分工作,例如作为业务量管理器140的一部分工作。
按照一种范例实施例,由于XML的优点,应用数据可以通过发送并且接收包括按照XML标准编码或者格式化的应用数据的消息来有利地在数据中心135的服务器和一个或多个客户或者计算节点之间交换。因此,按照一种实施例,导向器145可以是一个XML导向器,因为它根据消息中的XML数据来引导或者切换输入消息到一个特定的服务器。XML数据最好遵照XML标准所需的格式或者句法。使用标记格式(例如开始标记和结束标记)及其它遵照XML标准的句法或者标示数据的文档被认为是一个″合式的″XML文档。
因此,在一个示范性的实施例里,基于内容的消息导向器145是一个XML导向器。然而可以理解:导向器145可以引导或者切换基本上具有任何类型结构化句法的消息,包括任何类型的标示语言。
图1中所示的业务量管理器140和导向器145的实施例的一个有益方面是:该业务量管理器140和该导向器145位于一个或多个应用服务器或者处理节点的前面。通过将业务量管理器140和导向器145定位在处理节点或服务器(如图1中所示)的前面的计算机、服务器或者计算系统中,例如耦合在网络130和服务器之间,就可以把业务量管理功能和导向器145的功能从应用服务器卸载到一个单独的和/或专用的网络装置或者网络系统上。这可以有利地减轻处理节点或者应用服务器的这个附加处理开销。
作为替换,导向器145可以包括一个具有多个输出端口(物理端口)的内建交换机,同时一个服务器耦合到每一个物理输出端口。在此情况下,一组服务器可以具有相同的IP地址或者媒体存取控制(MAC)地址,或者可以具有不同的地址。导向器145然后通过物理输出端口之一简单地输出或者切换或者转发包含具有XML商业事务处理信息的消息的数据分组到一个特定的服务器。不管导向器145是否包括一个内建的交换机或者使用交换机165来向服务器切换消息,导向器145都要切换或者引导信息到不同的服务器。交换机165和导向器145还可根据数据分组中的其它信息(例如一个源地址或者目的地地址)来切换数据分组。
图2是解释按照一个范例实施例的基于内容的消息导向器操作的流程图。在块210,导向器145接收一个消息。该消息可以通过任何传送器或者协议发送,所述协议例如是传输控制协议(TCP)、文件传送协议(FTP)、简单邮件传送协议(SMTP)、无线应用协议(WAP,可以使用无线设备发送和接收信息)和超文本传输协议(HTTP)等等。本发明总体的教导和工作不依赖于任何特定的传送器或者协议,而是独立于传送器的。
HTTP邮件(POST)是消息的一个范例。用于HTTP邮件消息(或者HTTP请求)的格式可以表示为:
请求线路(URL);标识一个用于处理消息的程序
报头(0或更多)
<空行>
主体(应用数据或者XML数据;仅用于邮件)
这里是一个范例:
POST www;acme.com/purchas ing/order.cgi HTTP/1.1
Content-Type:text/xml
Content-Length:1230
User-Agent:Cern-Line Mode/2.15
Date:3/27/00
<XML>
<From>intel.com</From>
<To>bookstore.com</To>
<Purchas eBook>
<ISBN>02013798233</ISBN>
<PurchaseAmount>98</PurchaseAmount>
</PurchaseBook>
</XML>
在这个范例里,在请求线路里提供URL(或者请求线路)来标识一个程序或者应用来处理该消息。几个报头行(内容类型、内容长度、日期等等)组成一个HTTP报头。在HTTP报头之后提供应用数据,在这个范例里提供作为XML数据。开始标记<XML>和</XML>(结束标记)分别标识应用数据(或者XML数据)的开始和结束。XML应用数据也被称作XML文档。XML文档包括描述数据的标示字符(或者标记)和数据字符。举例来说,上述XML文档的″To″元素写成:<To>bookstore.com</To>.其中<To>是一个开始标记并且</To>是一个结束标记,因为它们描述XML数据字符(bookstore.com),所以是标示字符。商业事务处理信息(到何处、从哪里来、购买的项目、购买数量、数目等等)描述商业事务处理,而且不包括在URL、HTTP报头或者任何其它报头内,例如用于发送该消息的包络的IP报头、TCP报头。这仅仅是消息中的商业事务处理信息的类型的范例,根据该消息,导向器145可以分析并且路由选择或者切换用于该消息的决定。
在图2的块215上,导向器145(图1)分析应用数据(这范例中的XML数据)的部分或者全部并且检查以保证XML文档或者应用数据被良好地形成。例如,导向器145可以检查以保证XML文档的至少一部分符合被称作良好形成的限制或者XML规范或标准中的要求。分析泛指将组成XML文档的字符或XML数据分类为标示(例如<To>)或字符数据(例如bookstore.com)的处理。
在图2的块220上,包括标示字符和/或字符数据的应用数据或XML数据与一个或多个可能被保存在导向器145中的配置模型或者查询相比,以确定是否存在匹配。按照一个实施例,配置模型可以通过用户或者程序或者应用程序动态地改变或者更新。例如,一个程序可以检测一个或多个服务器的故障和/或检测服务器的响应时间,然后更新该配置模型以便在网络中解释计及这些变化,例如,将特定消息从繁忙的服务器转向至不太忙的服务器,或从有故障的服务器转向至可用的服务器。
在块225上,如果消息的应用数据的内容和配置模型或者查询之间存在一个匹配,(其中该消息可包括作为XML数据提供的商业事务处理信息)那么导向器145引导或者切换该消息到相应的服务器或者数据中心里的处理节点,例如其中该消息导向由配置模型表明的指定服务器。如果存在许多匹配,则导向器145可以仅根据第一匹配引导消息,或者可使用负载平衡策略来在一组服务器中平衡消息。如果没有匹配,则该消息可以导向一个默认服务器或者可以被阻断。作为替换,该配置模型还可以标识用于阻断转发消息的某一模型。在这方面,导向器145还可作为一个过滤器,以便基于该应用数据有选择地穿过或者转发某些消息而阻断其它的消息。
例如,可以配置导向器145以便基于下列配置模型或者查询来引导或者切换消息:
服务器 IP地址 端口 XML模型
----- ------ --- -------
S1(例如150) 10.1.1.1 80 To=bookstore.com
S2(例如160) 10.1.1.2 80 To=stockquote.com
S3(例如170) 10.1.1.3 80 To=computerstore.com
基于上述的配置模型,如果用于商业事务处理信息的To元素的数据是bookstore.com,则导向器145将引导一个消息到服务器S1(具有IP地址10.1.1.1和端口80)。如果用于商业事务处理信息的To元素的数据是stockquote.com,则该消息将被引导到服务器S2(具有IP地址10.1.1.2和端口80)。并且,如果用于商业事务处理信息的To元素的数据是computerstore.com,则导向器145将引导任何消息到服务器S3。必要时,导向器145将翻译数据分组的目的地地址和端口号为恰当的目的地地址和端口号(也就是,成为目的地服务器的地址)。
这有利地允许了根据消息中的应用数据的内容(例如商业事务处理信息)为消息提供不同类型的服务(或者不同水平的服务)。在该范例里,服务器S1可被分配以便处理对于发送给bookstore.com的书的采购定单。服务器S2可被分配以便处理对于实时股票报价的请求,而服务器S3可被分配以便处理对于发送给computerstore.com的计算机的采购定单。
存在许多范例,其中以应用数据的内容或者商业事务处理信息为基础的基于内容的切换可被用于提供不同的或者区别的服务,甚至提供不同的或者区别水平的服务。作为另一个范例,导向器145可被配置以便根据下列配置模型或者查询来引导或者切换消息:
服务器 IP地址 端口 XML模型
------ ------ --- -------
S1(例如150) 10.1.1.1 80 购买数量<$100
S2(例如160) 10.1.1.2 80 $100<购买数量<$1000
S3(例如170) 10.1.1.3 80 $1000<购买数量
S4(未显示) 10.1.1.4 80 $1000<购买数量
在该范例里,如果购买数量小于$100,则用于采购定单的消息被发给服务器S1;如果购买数量小于$1000而多于$100,则用于采购定单的消息被发给S2;并且对于高额美元购买,用于购买大于$1000的采购定单的消息被发给两个服务器中任何一个。用这种方式,导向器145(图1)可以根据该消息中的应用数据或者商业事务处理信息来引导或者路由接收的消息。这允许网站或者电子商务根据应用数据的内容或者事务处理信息来提供不同的或者区别水平的服务。
在特定的范例里,已经分配了两个服务器(S3和S4)来处理最高美元采购定单。因此,对于与低额购买相比,通过为高额数量购买特殊分配更大的资源(例如,同仅仅一个服务器相比的两个或更多服务器),工作在数据中心135上的电子商务可以为具有高额购买数量的采购定单消信息提供一个更高水平的服务。用这样的方式,导向器145可以根据多种类的商业事务处理信息或者应用数据来切换或者引导消息到另一个网络装置或者一个指定的服务器。
II.验证加速
图3是解释按照一个范例实施例的包括验证加速器142的网络的方框图。按照一个有利实施例,数据中心135还包括一个验证加速器142,以便在消息被发给应用服务器或者处理节点之一以前对接收的消息进行预先验证。按照一个范例实施例,验证加速器142作为一个网络装置被提供。换句话说,按照一个范例实施例,验证加速器142可以耦合在网络130和多个处理节点或者应用服务器(例如服务器150、160和170)之间。提供验证加速器142作为一个与应用服务器相分离的网络装置,这样的提供就允许将文档验证在计算上的繁重任务从应用服务器卸载到验证加速器142。作为替换,可以提供多个验证加速器142,一个验证加速器142被提供用于一个或多个应用服务器或者其它处理节点。
如上所述,必须检查XML文档以保证它满足XML的基本句法和格式,例如,以便确定该文档是否是″良好地形成的″。另外,XML标准也选择性地允许验证一个文档,这是一种更严格的检查以便确定XML文档的结构或者语法是否遵照特定的基于XML的语言所需的结构或者语法。XML允许对比验证模板来验证文档。验证模板定义XML文档的语法和结构,包括需要的元素或者标记等等。
可能有许多类型的验证模板,作为范例,例如XML或者模式中的文档类型定义(DTD)。这两个验证模板被用作范例来解释按照范例实施例的某些特征。许多其它类型的验证模板也是可能的。一种模式类似于DTD,因为它定义文档必须符合以有效的语法和结构。然而,模式比DTD更具体,因为它还包括定义数据类型(例如字符、数字、整数、浮点或者习惯数据类型等等)的能力。另外,不同于DTD(在当前标准下),可能要求模式是良好地形成的。因此,应用数据和模式都可被分析和检查基本的句法或者良好形成。因此,至少对于某些应用程序,可以预期将来模式可能变得比DTD更通用。
如上所述,按照XML标准,对比验证模板来验证一个接收文档是可选择的。如果文档是对比一个特定的验证模板来验证的,则XML文档将在文档开始处包括验证指令(或者验证码)。验证指令的一个范例可以是一个文档类型的说明,如在XML中众所周知的。另一个范例是一个模式或者对于外部模式的一个参照。按照当前的XML,验证指令(例如文档类型说明或者模式等)是该文档的可选择的区域,它说明验证模板的结构、元素类型、属性等等。例如,如果验证指令被包括在该文档里,则为了成为一个有效文档,该文档中的应用数据的结构和语法必须与由该验证模板定义的结构和语法相匹配。验证模板可提供到该文档内部(或者在内部提供)和/或提供到该文档外部。
图4是解释按照一个范例实施例的范例消息的框图。图4中所示的范例消息包括一个XML文档410。XML文档410包括XML应用数据420和验证指令415,该XML应用数据420例如包括商业事务处理信息。
应用数据420是那些将要由应用服务器处理的应用数据。应用数据420可以包括例如商业事务处理信息,例如要购买的列表商品、价格、量或者事务处理或信息请求的其它特定细节,例如一个对股票报价、事务处理详情等等的请求。
按照一个实施例,一个或多个验证指令415的存在指示:可在处理应用数据420之前,根据提供于内部和/或由验证指令415标识的验证模板来验证该文档。换句话说,按照一个实施例,验证指令的存在可能指示:在将该数据传送给一个应用服务器进行进一步处理之前,应用数据应该在网络装置(例如验证加速器142,也称作验证器)上预先验证。为了指示应用服务器文档或应用数据已被验证了,验证指令可以从该文档被去掉,和/或可给出一个指示(例如设置在该消息中的数据或字段中的注解或指令)来表明应用数据或消息已经被验证了(也就是,预先验证)。按照当前XML,即使在验证指令415存在时,文档验证也是例如由应用服务器可选择的。然而,将来有可能需要XML或其它语言中的验证。
如果该文档应该与用于文档验证的验证模板(例如一个文档类型定义、模式等)相联系,那么该文档可以典型地包括一个或多个验证指令415。验证指令415提供或标识验证模板或文档类型定义,该验证模板或文档类型定义定义文档410的应用数据420必须符合的文档结构和语法,例如元素、属性等。验证模板可以包括一个内部组成部分和/或一个外部组成部分。
在显示的范例里,验证指令415或验证模板作为一个文档类型说明提供。验证指令415以DOCTYPE语句″<DOCTYPE hogsforsale...″开始,该语句指示存在一个可被提供在该文档内的验证模板,例如,作为内部组成部分419,或提供在该文档外部,例如此该范例中标识为″hogs.dtd″417的外部组成部分。因此,在该范例里,验证指令415提供验证模板的内部组成部分419和一个标识外部组成部分的外部组成部分标识符417。内部组成部分419和外部组成部分(没有显示)共同形成用于该文档的验证模板,以便验证用于文档410的应用数据420。按照一个实施例,如果验证正在执行,那么DOCTYPE语句或其它验证指令的存在典型地将使应用程序或应用服务器对照验证模板来验证该消息中的应用数据420。
验证模板的内部组成部分419定义一个有效的hosgsforsale文档必须包括下列元素:类型、平均重量、量和价格/hog等等。这只是一个范例。
在这范例里,标识符″hogs.dtd″标识一个外部实体或者是验证模板外部组成部分的文件。根据外部组成部分标识符417,外部组成部分可以位于远程服务器或者其它位置上。验证模板的外部组成部分(标识为″hogs.dtd″)可以包括关于文档410的应用数据420的结构或者语法的额外要求。外部组成部分标识符417可以作为完整地址提供,或者作为一个相对地址或者指示器提供,例如,相对于该消息的源节点或发起节点的地址或位置。例如,列在验证指令415上的″hogs.dtd″标识符实际上可以参照″hogs.dtd″外部组成部分417,它可以在例如下面的地址处发现:oasis.xml.org/farming/luivestock/hogs.dtd。如上所述,验证模板的范例包括一个用于XML、模式等等的文档类型定义。
除删去该验证指令之外(或者不删去该验证指令),可以向该消息添加一个指示,向应用服务器指示应用数据或者消息已经被验证(也就是,预先验证)。例如,预先验证指示可被提供作为该消息中的一个字段,作为应用数据本身里的一个指令或者注解,或者使用另一种技术。例如,在XML技术规范里,除了元素标记,和数据,存在被称为处理指令标记的某些东西,它允许对于应用程序特定的信息被嵌入XML文档。处理指令不认为是XML文档字符数据内容的一部分,但是它们始终通过解析程序传递到XML应用程序上。对于处理指令标记,格式是<?......?>。因此,按照一个实施例,在删去验证指令(或者DTD或者模式或者对其的参照)之后,可以在该文档的开头处(或者其它位置)添加下列注解或者指令标记:<?由intel验证?>。
作为替换,不同的目的地地址或者端口号可被用于分组报头以便指示该数据分组中的XML消息已经预先验证了。例如,不是端口80而是端口87能被作为目的地端口使用以便为XML文档指示一个预先验证的消息。这里有一些范例技术,它们可用于向服务器指示该XML文档已经被验证了,或者不必再验证。
通过预先验证该文档然后从该文档删去该验证指令,和/或添加一个预先验证指示给该文档或者消息,验证的繁琐步骤从应用服务器卸载到一个网络装置、网络设备或可被称为例如验证加速器142的其它系统。
III.转换
图5是解释按照一个范例实施例的另一个对于基于内容的消息导向器145的操作环境的方框图。消息导向器145和交换机165在一起可被认为是一个基于内容的交换机146。
按照本发明一个有利方面,交换机146可以接收一个XML消息,将应用数据或者商业事务处理信息与一个指定的配置模型比较,然后切换该消息到一个恰当的处理节点或者服务器而不管由该消息使用的基于XML语言的类型。一旦配置交换机146的消息导向器145来检测或者识别一个或多个指定的标记和相应的数据(例如,购买数量>$100),则基于内容的交换机146可以引导或者路由或者切换基于应用数据内容的消息,例如,作为XML数据提供的基于商业事务处理信息,不管由该消息使用的基于XML的语言类型。
如图5中所示,存在三组耦合到该交换机165的服务器,包括:一组BizTalk服务器610(包括服务器1和2),它使用称为BizTalk的基于XML的语言传递数据;一组Ariba服务器615(包括服务器3和4),它使用被称为CXML的基于XML的语言传递数据;以及一组无线服务器620(包括服务器5和6),它仅仅使用被称为无线标示语言或者WML的基于XML的语言传递数据。提供这些仅仅作为范例。
消息可以以许多不同的数据格式到达交换机146,这些数据格式包括电子数据互换(EDI)、平(flat)字母数字文件格式、一个或多个XML语言或者格式(例如WML、CXML、BizTalk、eBXML等)、HTML等等。某些特定的客户计算机能使用一种数据格式(或者很少种类的格式)传递,而应用服务器(例如服务器610、615、620)的每一个可以使用一种不同类型数据格式传递。
图6是解释按照一个范例实施例的转换交换机。转换交换机710包括一个转换器715以便转换或者翻译至少一部分消息从第一数据格式到第二数据格式,或者到从多个第二格式中选择的一个格式。消息导向器145(在某些实施例里是可选择的)被耦合到转换器715的输出端。消息导向器145基于应用数据内容(例如商业事务处理信息,这些信息可以作为XML数据或者另一格式数据提供)来引导或者切换消息到一个选择的服务器。如上面所述,按照一个范例实施例,消息导向器145可以基于如与一种模型(或者一个或多个模型)相比的消息的商业事务处理信息而输出一个切换判定给交换机165。交换机165然后基于来自消息导向器145的判定或者指令而切换该转换的消息给多个输出端口之一,或者给多个服务器(例如服务器150、160以及170)之一。因为基于内容的消息导向器145在有些情况下是可选择的,所以交换机165可以使用基于地址的路由或切换技术来切换转换的消息,例如以该消息中所提供的或者携带该消息的数据分组报头中所提供的源和/或目的地地址和端口号为基础,切换到交换机165的一个特定输出端口。
转换器715可以按照需要在许多不同种数据格式之间转换消息。一个范例通信可能包括后面跟随一个响应的请求,但本发明不局限于这个方面。例如,第一节点可以通过网络或者互联网130发出一个由第二节点接收的请求。第二节点可以发送一个响应回到第一节点。请求和响应典型地都可以通过互联网或者网络130以及转换交换机710来路由。请求和响应都可以包括那些需要被转换的数据。转换交换机接收一个或多个数据分组中提供的该消息,确定该数据分组(多个数据分组)内的数据是否需要转换,执行任何需要的转换,然后通过一个或多个数据分组转发该消息。
存在四个涉及转换的常规情况:转换可以仅仅在该请求里的数据上执行,仅仅在该响应里的数据上执行,在该请求和该响应里的数据上执行,和不在这两者中的数据上执行。最后一种情况包括具有这样一种数据的信息,如果有的话,该数据已经是和接收节点相适合的格式了,因此,不一定必须要转换。
例如,计算机120的网页浏览器122可以使用HTTP″Get″消息发出一个对股票报价的请求,并且能够处理仅仅是格式A的数据。该请求可通过网络130和交换机710发送给服务器150而不变换,例如,因为服务器150和浏览器122都与HTTP消息兼容。服务器150然后发出具有格式D的数据(股票报价)的响应。格式D中的数据可以被放入另一HTTP消息中。虽然浏览器122和服务器150都是HTTP兼容的,服务器150处理格式D中的数据而浏览器122处理格式A中的数据。因此,交换机710内的转换器715将作为响应从格式D到数据格式A转换该数据,然后通过网络130转发该响应回到网页浏览器122。
在另一范例里,在商业到商业(B2B)事务处理中,服务器150通过互联网或者网络130和交换机710从服务器110获得一个空白发货单。服务器150上的软件程序填写或者完成该接收的发货单并且返回该完成的发货单。交换机710以一个或多个数据分组从服务器110接收格式A的发货单,从格式A到格式D转换该发货单,然后例如通过一个或多个在互联网或者网络130上发送的数据分组以格式D输出完成的发货单到服务器150。
按照一个范例实施例,交换机710可以建立与一个第一节点的连接,然后在第一连接上通过一个或多个数据分组从第一节点接收一个包括应用数据等等的消息。交换机710然后在该消息上执行任何需要的转换,如果有的话,然后在交换机710和第二节点之间建立一个第二连接。转换的消息然后作为一个或多个数据分组在第二连接上切换或者输出到第二节点。因此,转换交换机710可以作为一个网络装置操作以便接收或者截取消息,如果需要则在该信息一部分上执行任何格式转换,然后通过一个或多个数据分组切换或者转发该消息到一个目的地处理节点。在很多情况中,转换交换机的存在和数据或者消息可以单向或者双向转换的事实对于一个或者两个处理节点是显然的。
图7是解释按照另一范例实施例的一个转换交换机的方框图。转换交换机710A类似于图6中所示的转换交换机710,因为它包括一个转换器715、一个消息导向器145和一个交换机165。转换交换机710A可以更进一步包括两个附加元件,包括一个安全加速器815和/或一个验证加速器142。
如上所述,验证加速器142通过将应用数据420的结构和语法与验证模板定义的或者需要的结构和语法进行比较,验证至少一部分消息(例如,验证应用数据420,图4)。如果文档或者消息有效,则验证加速器142之后选择性地删去该验证指令,包括可以使文档被验证的任何语句(例如,DOCTYPE语句),验证模板的任何内部组成部分(多个内部组成部分)和对于验证模板外部组成部分的任何参照或者标识符。另外,验证加速器142可以给该消息添加用于指示应用数据或者消息已经被验证(也就是预先验证)的指示。如果验证指令(例如对于外部验证模板的验证模板或者参照)被从该文档删去,则验证加速器142应该传送验证指令给转换机715,例如,以便用于标识正确的转换模板。与其剥除或者删去验证指令,不如将验证指令留在该消息里,以便执行变换,或者确定转换是否是需要的,并标识那些应该执行的转换的类型。交换机710同时可以给该消息添加该消息已经被转换的指示,或者该消息已经转换并且验证的指示,以便通知接收消息的处理节点这些功能、变换和验证已经执行了,并且不必重复。
因此,如图7范例实施例中所示,验证加速器142在该消息或者文档被转换之前验证它们。这保证在转换该消息以前,该消息具有正确的格式和语法。除此之外(或者作为替代),验证加速器142可以在该消息已经转换到新数据格式之后验证该消息,(例如,验证加速器142可以从信息导向器145接收转换的消息的一份副本,验证它,然后在导向器145输出该消息到交换机165用于切换以前通知导向器145它的有效性)。在转换之后进行的消息验证保证在变换期间没有发生错误。第二验证不是必须的。验证可以在变换以前执行、变换之后执行,既在之前又在之后执行,或者根本不执行。
安全加速器815加密发出的消息和/或解码从网络130接收的输入信息。按照一个实施例,安全加速器815可以是一个安全套接字协议层(SSL)加速器。安全加速器815允许与安全有关的任务(例如加密和/或解密)从应用服务器卸载到加速器815。安全加速器815是可选择的。
IV级联网络装置
图8是解释按照一个范例实施例的一个系统的方框图。XML装置810耦合在客户805和服务器820之间。客户805可以例如是一个请求访问服务器820上所提供的资源的处理节点。客户805典型地发起一个连接请求,而服务器820典型地是用于连接请求的目标或者目的地。例如,装置810可以是一个执行验证的验证加速器(或者验证器)142、转换该数据或者消息从第一数据格式到第二数据格式的转换器715或者如果商业事务处理信息或者在该消息或者数据里的其它字段与一个预定的模型或者数值匹配则切换该数据或者信息到一个特定的输出端口或者处理节点的交换机146。装置810还可以是这些功能或装置的一个组合或者多种这些功能或装置。例如,装置810可以包括一个验证器、一个转换器和一个交换机。
装置810与现存的服务器820成行放置,使得从客户805导向至服务器820和从服务器820导向至客户805的数据分组或者业务量典型地在到达目的地以前应该先穿过装置810。按照一个范例实施例,当正确地配置时,装置810典型地不对数据进行任何变换地从客户805向与之成行排列的服务器820传送除了匹配于装置810的结构的装置810的数据或者消息之外的业务量。例如,用于装置810的配置参数可以包括一个互联网协议(IP)地址和一个端口号,该装置810可以为互联网协议(IP)地址和端口号检测连接请求,然后创建连接。
当流过装置810的数据匹配于它的配置参数时,装置810典型地在本地存储信息,而不是传送它到服务器820,然后在其上执行一个操作,典型地是一个与XML相关的操作。如上所述,例如,与XML相关的操作可以是XML验证、转换或者基于内容的切换(例如基于XML的切换)。在XML操作执行之后,该数据将被转发到原始服务器上(在XML验证或者转换情况下),或者到另一选择的服务器,该服务器在XML切换情况下匹配一个预先决定的模型。被转发的处理数据看来似乎来自原始的客户805,虽然数据或者消息的内容可以从原始的消息根据装置的结构和执行的XML操作而变换。
通过将XML装置810放置在网络上,物理地位于客户805和服务器820之间,可使从客户805到服务器820的连接通过XML装置810传递。XML装置810使物理地址或者MAC(媒体存取控制)地址迷失方向,并且典型地没有它自己的IP地址,因此可能在层2及以上是透明的。XML装置810包括一个配置,例如一个指定的IP地址和端口号。XML装置并不典型地拥有它自己的IP地址。相反,每个XML装置810映射到一个IP地址和端口号,其中该装置将接受连接请求以便接收消息或者数据。XML装置810已经映射到的IP地址和端口号被称作该装置的配置。装置的配置作为替换地可以由其它数值或者字段定义。有时,XML装置810可被配置成接受送往一个或多个服务器或者它后面的处理节点的消息。
装置的MAC地址的迷失将被简要地解释。客户805发出一个地址解析协议(ARP)消息,该消息请求一个相应于服务器IP地址(IP1.2.3.4)的MAC地址,图8中的箭头1。装置810然后转发该ARP消息给服务器820,箭头2。服务器820对它的MAC地址(MAC 05:06:07:08)作出反应,箭头3。XML装置810然后转发该答复给客户805,提供服务器820的MAC地址,图8中的箭头4。执行一个对于服务器的MAC地址的ARP经常得不到响应,因为服务器820和客户不是位于相同的网络段或者链接上。然而,XML装置810用服务器的MAC地址响应客户的ARP,因此向客户805显示为是服务器820。同样地,当服务器820对于该客户执行一个ARP时,XML装置810对客户的MAC地址作出反应。XML装置810因此可以对于网络上的其它装置是不可见的。
按照图8中所示的范例实施例,XML装置810接收客户805和服务器820之间传送的全部网络业务量,并且相对于它的配置比较目的地IP地址和新连接尝试(又名同步或者SYN数据分组)的目的地端口号。如果数据分组不是一个新的连接尝试,或者与XML装置的配置不匹配它可以被转发到服务器820上,典型地没有(即使有的话也是很小)改变(包括MAC改变)。如果数据分组是一个新的连接尝试,并且匹配XML装置的配置(例如IP地址和端口号),则XML装置本身将接受来自客户的信息(而不是转发该数据分组到该服务器上)。装置的配置可能包括很多种的字段或者参数,例如IP地址、端口号,或者提供于数据分组另一字段的特殊值,例如IP选项或者其它提供于报头或者数据分组中的字段。IP地址和端口号仅仅是范例,但是该装置配置不限制于此。
当客户805已经完成发送它的请求给XML装置(它认为是服务器820的XML装置)时,XML装置810将在该数据上执行一个操作。该操作可以是XML验证或者XML转换,或者XML切换。如果不执行XML操作,那么从客户805接受的数据将要发送到服务器820上而不处理。操作不执行可能有几个理由,例如:数据分组或者消息与装置的配置不相配,该装置没有可用资源来执行该操作,一个转换模板不能用来执行该转换,该消息或者数据不是有效的(或者不能被验证),或者该消息或者数据与用于切换的预定模型不相配。
如果执行XML操作,则XML装置810将发送(可能改进的)XML内容到服务器820上。接收这个XML内容的服务器可以是与原始目标服务器820相同的服务器,具有不同的端口号的相同(例如,具有相同的IP地址)的服务器,或者一个完全不同的服务器。
图9是解释按照一个范例实施例的两个装置级联的方框图。目的地IP地址或者消息或者数据分组中的目的地端口号的可能变换允许许多XML装置级联或者串联耦合在一起。按照一个实施例,XML装置都可以具有相同的配置。在此情况下,第一XML装置(装置#1)可以在该消息或者数据上执行一个事务处理,改变用于消息或者数据的目的地IP地址或者端口号,然后将该经过操作的消息转发至第二XML装置(装置#2)。因为目的地端口或者IP地址已经由第一XML装置改变了,然而,它不再与第二XML装置的配置匹配,在这范例里,第二XML装置的配置和第一个一样。因为只有当它匹配XML装置的配置时一个装置才可以在该消息(或者一组数据分组)上操作,第二装置将在不对其进行操作的情况下将消息或者数据分组转发到服务器820。因此,该数据透明地通过2号XML装置转发到服务器820上。这种机制允许任意数的XML装置级联或者串联。
这允许在网络里处理的XML的可伸缩性。例如,许多验证器可以串联耦合,每个具有相同的配置。这允许验证的负担被分散在多个器件上。同样地,多个转换器或者多个基于内容的交换机也可串联耦合以便提供处理数量增加的消息或者事务处理的能力。
例如,如果一个装置接收一个信息,但是正处于繁忙阶段或者没有足够的资源来处理或者操作该消息,或者如果该装置出现故障,该装置可能之后在不对其进行处理的情况下转发该消息到串联的装置或者一连串装置中的下一个装置上。如果发生故障,则失效的XML装置可以典型地发送接收的数据分组或者消息给下一个装置而不处理这些消息。例如,如果一连串中的第一XML装置失效,它可以利用一个内部中继在物理上变成一段以太网电缆等等,并且数据分组将透明地穿过它到第二XML装置上。这允许到XML处理的容错。XML处理能力可以仅仅通过加入额外的XML装置而得以伸缩。任何XML装置的故障不具有对XML处理能力的严重影响,因为额外的级联XML装置将处理这些事务处理。
以下是按照一个范例实施例描述XML装置操作的伪代码。
If((Packet==SYN packet)&&(Destination IP and Port==
Configured Destination and Port)&&(Resources>Minimum
Required))
{
Do XMLProcessing ()
}
else if(Packet==ARP Request)
{
Forward packet onto Server and remember response(MAC/IP
correspondence for server)
}
else
{
Forward packet onto Server
}
XML处理根据下面的处理进行:
Do XML Processing
{
Collect XML Data from Client(for example,receive all
packets for message)
Perform XML Operation
if(XML Operation Successful)
{
Send resultant XML Data to Server with new IP Address
and/or Port using Client MAC Address
}
else(XML operation is not successful)
{
Send original XML Data to Server with original IP Address
and Port using Client MAC Address
}
}
图10是阐明一种XML装置处理那些没有匹配XML装置配置的事务处理或者消息的操作的图。以下的号码1-14与图10中所示的图中的每个箭头上的标号对应。
1.客户通过发送一个SYN数据分组(一个请求在客户和服务器之间的连接的同步请求分组)开始到服务器的连接/插入。
源IP/MAC:9.8.7.6/00:01:02:03
目的地IP/MAC:1.2.3.4/05:06:07:08
目的地端口:1380
2.XML装置接收SYN数据分组,并且比较字段(目的地IP地址和端口号)与XML装置的配置。XML装置决定SYN数据分组目的地端口没有匹配该装置的配置,因此它转发该数据分组给服务器而不改变该数据分组。
源IP/MAC:9.8.7.6/00:01:02:03
目的地IP/MAC:1.2.3.4/05:06:07:08
目的地端口:1380
3.服务器发送SYN-ACK(Syn数据分组的确认)回到该客户。
源IP/MAC:1.2.3.4/05:06:07:08
目的地IP/MAC:9.8.7.6/00:01:02:03
4.XML装置不是正在处理该连接,因此它转发数据分组回到该客户。
源IP/MAC:1.2.3.4/05:06:07:08
目的地IP/MAC:9.8.7.6/00:01:02:03
5.客户发送ACK数据分组以便完成插入的开口。
源IP/MAC:9.8.7.6/00:01:02:03
目的地IP/MAC:1.2.3.4/05:06:07:08
目的地端口:1380
6.XML装置注意到数据分组不是同步的数据分组,并且转发数据分组到服务器。
源IP/MAC 9.8.7.6/00:01:02:03
目的地IP/MAC:1.2.3.4/05:06:07:08
目的地端口:1380
图10中的箭头7到14遵循类似的操作。因为没有随后的数据分组是连接请求数据分组(例如SYN数据分组),XML装置仅仅在客户和服务器之间转发数据分组。箭头7-10指的是从客户通过装置810发送数据给服务器,同时箭头11-12阐明通过装置810从服务器到客户发送数据。箭头13和14指的是关闭该连接。
图11是阐明一种XML装置处理那些匹配XML装置配置的事务处理或者消息的操作的框图。
1.客户通过发送一个同步的数据分组开始到服务器的连接。
源IP/MAC:9.8.7.6/00:01:02:03
目的地IP/MAC:1.2.3.4/05:06:07:08
目的地端口:1381
2.XML装置确定同步数据分组的目的地IP地址和端口号与该装置的配置匹配,并且发送SYN-ACK回到客户。
源IP/MAC:1.2.3.4/05:06:07:08
目的地IP/MAC:9.8.7.6/00:01:02:03
3.客户发送ACK(确认)数据分组,以便完成连接/插入的开口。
源IP/MAC:9.8.7.6/00:01:02:03
目的地IP/MAC:1.2.3.4/05:06:07:08
目的地端口:1381
4.客户开始发送XML数据给形成作为服务器的XML装置。
源IP/MAC:9.8.7.6/00:01:02:03
目的地IP/MAC:1.2.3.4/05:06:07:08
目的地端口:1381
5.客户发送剩余XML数据给形成作为服务器的XML装置。
源IP/MAC:9.8.7.6/00:01:02:03
目的地IP/MAC:1.2.3.4/05:06:07:08
目的地端口:1381
6.XML装置执行XML操作(例如,XML验证或者XML转换),然后在新的目的端口号上发送SYN数据分组给服务器,形成作为客户,在XML装置和服务器之间请求一个(新的)连接。
源IP/MAC:9.8.7.6/00:01:02:03
目的地IP/MAC:1.2.3.4/05:06:07:08
目的地端口:1380
7.服务器发送SYN-ACK(确认)回到形成作为客户的XML装置。
源IP/MAC:1.2.3.4/05:06:07:08
目的地IP/MAC:9.8.7.6/00:01:02:03
8.XML装置发送ACK数据分组,以便完成连接/插入的开口。
源IP/MAC:9.8.7.6/00:01:02:03
目的地IP/MAC:1.2.3.4/05:06:07:08
目的地端口:1380
9.XML装置开始发送XML数据给形成作为客户的服务器。
源IP/MAC:9.8.7.6/00:01:02:03
目的地IP/MAC:1.2.3.4/05:06:07:08
目的地端口:1380
10.XML装置发送剩余XML数据给形成作为客户的服务器。
源IP/MAC:9.8.7.6/00:01:02:03
目的地IP/MAC:1.2.3.4/05:06:07:08
目的地端口:1380
11.服务器发送响应给输入XML装置的XML数据。
源IP/MAC:1.2.3.4/05:06:07:08
目的地IP/MAC:9.8.7.6/00:01:02:03
12.XML装置使用由服务器发送的数据来发送响应给客户(XML装置可以在响应数据上执行另一操作,例如验证、转换或还有响应数据的XML切换)。
源IP/MAC:9.8.7.6/00:01:02:03
目的地IP/MAC:1.2.3.4/05:06:07:08
数据分组13和14遵循与11和12一样的相同模型,但用于关闭TCP连接。
如果额外的XML装置放置在XML装置和服务器之间,那么由第一XML装置处理的数据将穿过随后的XML装置,如上所述。
对于某些操作,例如基于内容的切换,装置不必接收用于将执行的操作的全部信息。XML装置可以排列一部分消息,足够进行一个切换决定,然后通过改变它们的IP地址和/或端口号,可使剩余数据分组转发并且切换到恰当的处理节点。
图12是解释按照一个范例实施例的多个装置级联的一个图。在图12中所示的范例实施例里,验证器1220(例如一个验证加速器)、一个转换器1230(例如转换器715)和一个交换机1240(例如基于内容的交换机146)级联在一起(串行耦合)。客户(或者其它处理节点)耦合到该验证器1220,同时服务器(或者其它处理节点)耦合到交换机1240。验证器1220配置有IP地址1.2.3.4,并且同意或者接受在端口号84上接收的输入连接请求。转换器1230配置有IP地址1.2.3.4并且同意或者接受在端口号81上接收的输入连接请求。交换机配置有IP地址1.2.3.4并且同意或者接受在端口号82上接收的输入连接请求。
在图12系统的操作中,SYN数据分组由验证器1220从客户收到(请求一个连接),具有一个目的地IP地址1.2.3.4和一个目的地端口号84。因此,数据分组或者消息包括与验证器1220的配置匹配的参数或者字段。因此,验证器1220建立请求的连接并且接收该数据或者消息。验证器1220可以之后检索一个验证模板,或者验证模板可以提供在该消息内。该消息然后被验证。
验证器1220然后发送一个SYN数据分组给转换器1230,指定一个1.2.3.4的目的地IP地址,和一个号码为81的目的地端口,它们和转换器1230的配置匹配。号码为81的目的地端口用来指示该验证功能已经执行了。因为SYN数据分组匹配转换器1230的配置,转换器1230接受或者建立请求的连接以便接收该验证的消息。转换器1230然后可以检索一个转换模板,该模板规定该消息如何从第一格式转换到第二格式。转换器1230然后从第一格式到第二格式转换验证的消息。
转换器1230然后发送一个SYN数据分组给交换机1240。SYN数据分组包括和交换机1240配置相匹配的一个目的地IP地址1.2.3.4和一个号码为82的目的地端口。号码为82的目的地端口由转换器1230使用以便指示在该信息上已经执行转换操作。因为数据分组或者消息与交换机1240的配置匹配,所以交换机1240接受或者建立请求的连接以便接收验证的和转换的消息。交换机1240然后在接收的消息上执行基于内容的切换。例如,如果一部分消息匹配预定的模型或者数值(例如,如果″价格″大于$1000),则交换机1240可以切换或者输出该消息给一个物理输出端口或者给一个处理节点或者服务器。如果在消息和一个或多个预定的模型或者数值之间没有找到匹配,则该消息被转发到它原先规定的服务器或者处理节点,如上面对于基于内容的切换所述的。交换机1240通过使用目的地端口83输出该消息,这可以指示该消息已经被切换了。
图13是解释按照一个范例实施例的许多验证器级联的图。参考图13,三个验证器在客户和服务器之间级联在一起(或者串行耦合),三个验证器包括验证器1305、1310和1315。全部三个验证器1305、1310和1315具有相同的配置(目的地IP地址1.2.3.4和目的端口号84)。
如图13中所示,接收一个规定目的地IP地址1.2.3.4和目的地端口号84的连接请求。因为连接请求与验证器1305的配置匹配,所以验证器1305接受连接请求。该消息或者文档通过一个或多个数据分组接收,并且通过验证器1305验证。因为该消息已经被验证,所以验证器1305将用于数据分组(用于转发该消息)的目的地端口号从84改为81。验证器1305然后通过发送一个连接请求到验证器1310,规定目的地IP地址1.2.3.4和目的地端口81,来转发验证的消息到下一个节点上。连接的端口号81与验证器1310的配置不匹配。因此,验证器1310不接受或者建立请求的连接。相反,验证器1310仅仅转发连接请求到下一个节点上,该节点是验证器1315。因为数据分组与验证器1315的配置不匹配,所以验证器1315重复与验证器1310相同的处理。验证器1315然后转发连接请求数据分组给该服务器。服务器然后接受或者建立与验证器1305的请求的连接,并且接收该验证的消息。用这样的方式,许多验证器可以透明地级联在一起,以便提供可伸缩性和容错。
图14是解释按照一个范例实施例的多个转换器级联的一个图。转换器1405、1410和1415级联(或者串行耦合)在客户和服务器之间。每个转换器1405、1410和1415配置有IP地址1.2.3.4并且在端口81上接受连接。转换器1405从客户接收一个连接请求数据分组(或者SYN数据分组),该数据分组规定目的地IP地址1.2.3.4和目的地端口号81。然而,转换器1405没有足够的资源来处理(或者转换)该消息,例如,因为它忙着处理其它消息。因此,转换器1405转发连接请求数据分组给转换器1410。然而,转换器1410已经失效或者不起作用了,因此也转发该连接请求给转换器1415。转换器1415是起作用的并且具有可用的资源以一种及时的方式处理或者转换该消息。因此,转换器1415将连接请求数据分组的参数或者字段与它的配置相比较。因为请求数据分组的目的地IP地址(1.2.3.4)和端口号(81)与转换器1415的配置相匹配,所以转换器1415接受连接请求以便建立与客户的连接并且通过一个或多个数据分组接收消息或者数据。转换器1415然后从第一数据格式到第二数据格式转换消息或者数据,然后通过一个或多个数据分组使用新的连接来转发转换的消息到服务器。用于转发转换的消息到服务器的数据分组包括一个目的地端口号82以便指示该消息已经被转换了。如果转换器1415不能处理或者转换该消息,那么连接请求和消息将仅仅无改变地转发到可能处理所述连接请求和消息的服务器。
图15是解释按照一个范例实施例的多个基于内容的交换机的级联图。三个基于内容的交换机1505、1510和1515在客户和服务器之间级联在一起。按照图15中所示的实施例,基于内容的交换机的每一个配置有IP地址1.2.3.4并且在端口号82上接受连接请求。交换机1505从客户接收一个连接请求,该连接请求规定目的地IP地址1.2.3.4和目的地端口号82。虽然数据分组或者连接请求与交换机1505的配置匹配,但交换机1505不能处理该消息,于是,转发该数据分组到交换机1510,这些数据分组包括该连接请求和发送将被处理的数据或者消息的后续数据分组。交换机1510具有足够的资源来处理或者切换该消息,因此接受该连接请求,并通过一个或多个额外的数据分组从客户接收该消息。
基于内容的交换机1510然后通过将该消息或者XML数据与一个或多个预定模型或者数值相比较来在该消息上执行基于内容的切换。例如,提供在XML数据或者消息内的模型″To=Bookstore.com″可以指示该消息应该引导到或者切换到服务器S1,该服务器S 1具有一个IP地址10.1.1.1(图15中所示的),并且检测或者监听端口号80上的连接,端口号80是一个对于HTTP公知的端口。
服务器 IP地址 端口 XML模型
------ ------ ---- -------
S1 10.1.1.1 80 To=bookstore.com
因为接收的消息与模型″To=Bookstore.com″匹配,所以该交换机然后将目的地IP地址和端口号分别改为数据分组中的10.1.1.1和80,并且转发一个或多个数据分组中的消息到交换机1515。另外地,交换机可以通过一个或多个数据分组输出消息到一个直接到该服务器S1的不同的物理端口。
交换机1515接收包括目的地IP地址10.1.1.1和端口号80的连接请求数据分组,连接请求分组与它的配置不匹配。因此,交换机1515转发该连接请求和其他发送该信息到服务器上的消息。另外,该消息可以穿过可以基于IP地址和端口号引导该消息到恰当的服务器的另一交换机。最后,该消息将到达希望的服务器S1。用这样的方式,多个基于内容的交换机可以级联在一起以便处理大量消息或者事务处理的切换,这也提供了容错。
在这里特别地阐明和/或描述本发明的几个实施例。然而,可以理解本发明的修正和改变通过上述教导涵盖,并且在附加权利请求的权限之内,并且没有背离本发明的精神和预定的范围。
Claims (25)
1.一种用于级联网络的装置,该装置包括:
耦合在客户和服务器之间的一设备,该设备具有一配置,该设备包括:
用于通过一个或多个接收的数据分组来接收一消息的装置;
用于将所接收的数据分组同该设备的配置进行比较的装置;
只有当接收的数据分组具有一个或多个与该设备的配置相匹配的字段时才处理所述消息的装置;
用于将所接收的数据分组中的匹配字段变换为不再与该设备的配置匹配的装置;以及
通过具有一个或多个已被变换的字段的一个或多个数据分组来转发一被处理的消息的装置。
2.根据权利要求1所述装置,其中该设备包括:
如果接收的数据分组的一个或多个字段与该设备配置不相配则通过所接收的数据分组不加改变地转发该消息的装置。
3.根据权利要求1所述的装置,其中该设备包括一个或多个验证器、转换器和基于内容的交换机。
4.根据权利要求1所述的装置,其中与该设备的配置匹配的一个或多个字段包括一目的地IP地址和目的地端口号。
5.一种用于级联网络的装置,该装置包括:
耦合在客户和服务器之间的多个设备,这些设备具有同样的配置,这些设备包括:
用于通过一个或多个接收的数据分组来接收消息的装置;
用于将所接收的数据分组同这些设备的配置进行比较的装置;
只有当接收的数据分组具有一个或多个与这些设备的配置相匹配的字段时才用于处理所述消息的装置;
如果接收的数据分组的一个或多个字段与这些设备的配置不相配,则用于通过所接收的数据分组不加改变地转发所述消息的装置;
用于将所接收的数据分组中的匹配字段变换为不再与这些设备的配置相配的装置;以及
用于通过具有一个或多个已被变换的字段的一个或多个数据分组来转发所处理的消息的装置。
6.根据权利要求5所述的装置,其中多个设备为多个验证器。
7.根据权利要求6所述的装置,其中至少一个验证器包括一验证加速器以便验证消息。
8.根据权利要求7所述的装置,其中所述消息是XML文档。
9.根据权利要求5所述的装置,其中多个设备为多个转换器。
10.根据权利要求9所述的装置,其中转换器中的至少一个包括一用于将所述消息从第一格式转换到第二格式的转换器。
11.根据权利要求5所述的装置,其中多个设备为多个交换机。
12.根据权利要求11所述的装置,其中交换机中的至少一个包括如果所述消息的内容与一个或多个预定模式或者数值匹配则切换所述消息到一选择的处理节点的基于内容的交换机。
13.根据权利要求12所述的装置,其中基于内容的交换机包括如果当所述消息中的商业事务处理信息与预定模式或者数值匹配则切换所述消息到一选择的处理节点的一基于内容的交换机。
14.根据权利要求13所述的装置,其中所述选择的处理节点为服务器。
15.根据权利要求5所述的装置,其中与该设备配置匹配的一个或多个字段包括一地址。
16.根据权利要求5所述的装置,其中与该设备配置匹配的一个或多个字段包括一目的地地址。
17.根据权利要求5所述的装置,其中与该设备配置匹配的一个或多个字段包括一目的地地址和目的地端口号。
18.根据权利要求5所述的装置,其中与该设备配置匹配的一个或多个字段包括一目的地IP地址和目的地端口号。
19.根据权利要求5所述的装置,其中与该设备配置匹配的一个或多个字段包括一目的地IP地址和目的地端口号,这些设备在该目的地IP地址和目的地端口号上接受连接请求。
20.一种用于级联网络的装置,该装置包括:
一具有第一配置的第一设备;
一耦合到第一设备的第二设备,第二设备具有一第二配置;
第一设备包括:
用于通过一个或多个接收的数据分组来接收消息的装置;
用于将所接收的数据分组同所述第一设备的配置进行比较的装置;
只有当接收的数据分组具有一个或者多个与所述第一设备的配置相配的字段时才用于处理所述消息的装置;
如果接收的数据分组的一个或多个字段与第一配置不相配,则用于通过所接收的数据分组不加改变地转发所述消息到第二设备的装置;以及
用于将所接收的数据分组中的匹配字段变换为不再与第一设备的配置相匹配的装置。
21.根据权利要求20所述的装置,其中第一设备包括:
通过具有与第二配置匹配的一个或多个被变换的字段的一个或多个数据分组转发处理的消息到第二设备的装置。
22.根据权利要求20所述的装置,其中第一和第二设备中的每一个包括一个或多个验证器、转换器以及交换机。
23.一种用于级联网络的方法,该方法包括:
配置一设备;
通过一个或多个数据分组在该设备上接收消息;
将所接收的数据分组同该设备的配置进行比较;
只有当接收的数据分组具有一个或者多个与该设备的配置相匹配的字段时才处理所述消息;
将所接收的数据分组中的匹配字段变换为不再与该设备的配置相匹配;以及
通过具有一个或多个被变换的字段的一个或多个数据分组转发所处理的消息。
24.根据权利要求23所述的方法,进一步地包括:如果接收的数据分组的一个或多个字段与该设备的配置不相配,则通过所接收的数据分组不加改变地转发所述消息。
25.根据权利要求23所述的方法,进一步地包括:
产生一响应消息;
通过一个或多个数据分组在该设备上接收响应消息;
如果数据分组的一个或多个字段与该设备配置匹配,则处理该响应消息。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/741,805 | 2000-12-22 | ||
US09/741,805 US7162542B2 (en) | 2000-04-13 | 2000-12-22 | Cascading network apparatus for scalability |
PCT/US2001/044638 WO2002052814A1 (en) | 2000-12-22 | 2001-11-27 | Cascading network apparatus with content based message redirector for scalability |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1493139A CN1493139A (zh) | 2004-04-28 |
CN1493139B true CN1493139B (zh) | 2010-05-26 |
Family
ID=24982281
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN01822826.7A Expired - Fee Related CN1493139B (zh) | 2000-12-22 | 2001-11-27 | 具有基于内容的消息转向器用于可伸缩性的级联网络装置和方法 |
Country Status (7)
Country | Link |
---|---|
US (2) | US7162542B2 (zh) |
EP (1) | EP1344371B1 (zh) |
CN (1) | CN1493139B (zh) |
AT (1) | ATE400126T1 (zh) |
DE (1) | DE60134664D1 (zh) |
HK (1) | HK1058115A1 (zh) |
WO (1) | WO2002052814A1 (zh) |
Families Citing this family (67)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7162542B2 (en) * | 2000-04-13 | 2007-01-09 | Intel Corporation | Cascading network apparatus for scalability |
US7564957B1 (en) * | 2000-10-20 | 2009-07-21 | Verizon Corporate Services Group Inc. | Method and system for call center screening |
US20020152307A1 (en) * | 2001-04-12 | 2002-10-17 | Doyle Ronald Patrick | Methods, systems and computer program products for distribution of requests based on application layer information |
US7305615B2 (en) * | 2001-07-30 | 2007-12-04 | Gigalogix, Inc. | Methods and apparatus for accelerating data parsing |
ATE368900T1 (de) * | 2001-09-21 | 2007-08-15 | Koninkl Kpn Nv | Computersystem, datenübertragungsnetz, computerprogramm und datenträger, alle zur filterung von einen inhalt gemäss einer markierungssprache einschliessenden nachrichten |
US7454195B2 (en) | 2001-11-16 | 2008-11-18 | At&T Mobility Ii, Llc | System for the centralized storage of wireless customer information |
US7657253B2 (en) | 2001-11-16 | 2010-02-02 | At&T Mobility Ii Llc | System and method for providing message notification |
US7487262B2 (en) * | 2001-11-16 | 2009-02-03 | At & T Mobility Ii, Llc | Methods and systems for routing messages through a communications network based on message content |
US8660537B2 (en) | 2001-11-16 | 2014-02-25 | At&T Mobility Ii Llc | System for the storage and retrieval of messages |
US20030095555A1 (en) * | 2001-11-16 | 2003-05-22 | Mcnamara Justin | System for the validation and routing of messages |
US7793334B2 (en) | 2001-11-16 | 2010-09-07 | At&T Mobility Ii Llc | System and method for password protecting a distribution list |
US7685314B2 (en) * | 2002-06-27 | 2010-03-23 | Siebel Systems, Inc. | System integration system and method |
US7639654B2 (en) * | 2002-08-29 | 2009-12-29 | Alcatel-Lucent Usa Inc. | Method and apparatus for mobile broadband wireless communications |
US7529842B2 (en) * | 2002-12-17 | 2009-05-05 | International Business Machines Corporation | Method, system and program product for detecting an operational risk of a node |
US7809698B1 (en) * | 2002-12-24 | 2010-10-05 | International Business Machines Corporation | System and method remapping identifiers to secure files |
US7774831B2 (en) * | 2002-12-24 | 2010-08-10 | International Business Machines Corporation | Methods and apparatus for processing markup language messages in a network |
US7627780B2 (en) * | 2003-04-23 | 2009-12-01 | Dot Hill Systems Corporation | Apparatus and method for deterministically performing active-active failover of redundant servers in a network storage appliance |
US7401254B2 (en) * | 2003-04-23 | 2008-07-15 | Dot Hill Systems Corporation | Apparatus and method for a server deterministically killing a redundant server integrated within the same network storage appliance chassis |
US7565566B2 (en) * | 2003-04-23 | 2009-07-21 | Dot Hill Systems Corporation | Network storage appliance with an integrated switch |
US7661014B2 (en) | 2003-04-23 | 2010-02-09 | Dot Hill Systems Corporation | Network storage appliance with integrated server and redundant storage controllers |
US20050010668A1 (en) * | 2003-07-07 | 2005-01-13 | Shiwen Chen | Traversable network address translation with hierarchical internet addressing architecture |
US8145793B1 (en) * | 2003-11-04 | 2012-03-27 | At&T Intellectual Property Ii, L.P. | System and method for distributed content transformation |
US7831491B2 (en) | 2003-11-05 | 2010-11-09 | Chicago Mercantile Exchange Inc. | Market data message format |
US20050096999A1 (en) * | 2003-11-05 | 2005-05-05 | Chicago Mercantile Exchange | Trade engine processing of mass quote messages and resulting production of market data |
US20050108316A1 (en) * | 2003-11-18 | 2005-05-19 | Sbc Knowledge Ventures, L.P. | Methods and systems for organizing related communications |
US20050192880A1 (en) * | 2003-12-08 | 2005-09-01 | Tomihiro Yamamoto | Data transmission system and method |
US20050235715A1 (en) * | 2004-04-23 | 2005-10-27 | Devine Alice A | Cattle waste composting |
US8600020B2 (en) * | 2004-06-30 | 2013-12-03 | ITXC IP Holdings S.à r.l. | System and method for facilitating a telephony carrier to make transactions |
US9264384B1 (en) * | 2004-07-22 | 2016-02-16 | Oracle International Corporation | Resource virtualization mechanism including virtual host bus adapters |
US8170019B2 (en) * | 2004-11-30 | 2012-05-01 | Broadcom Corporation | CPU transmission of unmodified packets |
US9021456B2 (en) * | 2004-12-22 | 2015-04-28 | International Business Machines Corporation | Using collaborative annotations to specify real-time process flows and system constraints |
US7496891B2 (en) * | 2004-12-22 | 2009-02-24 | International Business Machines Corporation | Real-time dynamic modification of service-oriented systems using annotations to specify real-time system constraints |
US8135814B2 (en) * | 2005-06-29 | 2012-03-13 | At&T Intellectual Property I, L.P. | Network capacity management system |
US9813283B2 (en) | 2005-08-09 | 2017-11-07 | Oracle International Corporation | Efficient data transfer between servers and remote peripherals |
US8701119B1 (en) * | 2007-08-28 | 2014-04-15 | Richard A. Ross | Parsing XML in software on CPU with multiple execution units |
US8266630B2 (en) * | 2007-09-03 | 2012-09-11 | International Business Machines Corporation | High-performance XML processing in a common event infrastructure |
US8539098B2 (en) | 2007-10-17 | 2013-09-17 | Dispersive Networks, Inc. | Multiplexed client server (MCS) communications and systems |
US8560634B2 (en) * | 2007-10-17 | 2013-10-15 | Dispersive Networks, Inc. | Apparatus, systems and methods utilizing dispersive networking |
US7849055B2 (en) * | 2007-10-18 | 2010-12-07 | International Business Machines Corporation | Method and system for limiting instances of a client-server program within a restricted distributed network |
US8515946B2 (en) * | 2008-02-28 | 2013-08-20 | Microsoft Corporation | Location description for federation and discoverability |
EP2347545A1 (en) * | 2009-04-27 | 2011-07-27 | International Business Machines Corporation | Message switching |
US9973446B2 (en) | 2009-08-20 | 2018-05-15 | Oracle International Corporation | Remote shared server peripherals over an Ethernet network for resource virtualization |
US8478965B2 (en) * | 2009-10-30 | 2013-07-02 | International Business Machines Corporation | Cascaded accelerator functions |
US8301028B2 (en) | 2009-12-21 | 2012-10-30 | The Invention Science Fund I, Llc | Data center with free-space optical communications |
US8401393B2 (en) * | 2009-12-21 | 2013-03-19 | The Invention Science Fund I, Llc | Data center with free-space optical communications |
US8369708B2 (en) * | 2009-12-21 | 2013-02-05 | The Invention Science Fund I, Llc | Data center with free-space optical communications |
US8655187B2 (en) * | 2009-12-21 | 2014-02-18 | Invention Science Fund I | Data center with free-space optical communications |
US8452182B2 (en) * | 2009-12-21 | 2013-05-28 | The Invention Science Fund I, Llc | Data center with free-space optical communications |
US8483568B2 (en) | 2009-12-21 | 2013-07-09 | The Invention Science Fund I, Llc | Data center with free-space optical communications |
US8483569B2 (en) | 2009-12-21 | 2013-07-09 | The Invention Science Fund I, Llc | Data center with free-space optical communications |
US8588618B2 (en) * | 2009-12-21 | 2013-11-19 | The Invention Science Fund I, Llc | Data center with free-space optical communications |
US8818196B2 (en) | 2009-12-21 | 2014-08-26 | The Invention Science Fund I, Llc | Data center with free-space optical communications |
US8712250B2 (en) * | 2009-12-21 | 2014-04-29 | The Invention Science Fund I, Llc | Data center with free-space optical communications |
US20110164880A1 (en) * | 2010-01-06 | 2011-07-07 | Searete Llc, A Limited Liability Corporation Of The State Of Delaware | Data center with free-space optical communications |
US8516362B2 (en) * | 2010-09-14 | 2013-08-20 | Usablenet Inc. | Methods for extending a document transformation server to process multiple documents from multiple sites and devices thereof |
US9331963B2 (en) | 2010-09-24 | 2016-05-03 | Oracle International Corporation | Wireless host I/O using virtualized I/O controllers |
US8955110B1 (en) | 2011-01-14 | 2015-02-10 | Robert W. Twitchell, Jr. | IP jamming systems utilizing virtual dispersive networking |
US8941659B1 (en) | 2011-01-28 | 2015-01-27 | Rescon Ltd | Medical symptoms tracking apparatus, methods and systems |
CN102253646A (zh) * | 2011-04-08 | 2011-11-23 | 江苏达胜加速器制造有限公司 | 一种加速器控制系统 |
CN103064854A (zh) * | 2011-10-21 | 2013-04-24 | 镇江雅迅软件有限责任公司 | 一种基于xml技术的自动检测库存系统 |
US9129124B2 (en) * | 2012-04-12 | 2015-09-08 | Hewlett-Packard Development Company, L.P. | Dynamic provisioning of virtual systems |
US9083550B2 (en) | 2012-10-29 | 2015-07-14 | Oracle International Corporation | Network virtualization over infiniband |
US9716657B1 (en) * | 2013-09-27 | 2017-07-25 | Google Inc. | TCP connection resiliency in multipath networks |
US10270724B2 (en) | 2015-03-02 | 2019-04-23 | Pismo Labs Technology Limited | Methods and systems for processing messages at a multi-SIM network node |
GB2537949B (en) * | 2014-12-10 | 2021-02-24 | Pismo Labs Technology Ltd | Methods and systems for processing messages at a network node |
KR102421791B1 (ko) * | 2016-05-26 | 2022-07-15 | 삼성전자주식회사 | Mmt 네트워크 시스템에서 미디어 시간 정보를 전송 하는 방법 및 장치 |
US12033195B1 (en) * | 2021-03-29 | 2024-07-09 | Amazon Technologies, Inc. | E-commerce document framework with cross-source and cross-document validation |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6006264A (en) * | 1997-08-01 | 1999-12-21 | Arrowpoint Communications, Inc. | Method and system for directing a flow between a client and a server |
EP1003100A2 (en) * | 1998-11-20 | 2000-05-24 | International Business Machines Corporation | Processing object requests in data processing system |
WO2000056033A1 (en) * | 1999-03-17 | 2000-09-21 | Oracle Corporation | Providing clients with services that retrieve data from data sources that do not necessarily support the format required by the clients |
Family Cites Families (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5742762A (en) * | 1995-05-19 | 1998-04-21 | Telogy Networks, Inc. | Network management gateway |
GB2305270A (en) * | 1995-09-15 | 1997-04-02 | Ibm | Bridge for a client-server environment |
US5867153A (en) * | 1996-10-30 | 1999-02-02 | Transaction Technology, Inc. | Method and system for automatically harmonizing access to a software application program via different access devices |
US6144990A (en) * | 1996-12-23 | 2000-11-07 | International Business Machines Corporation | Computer apparatus and method for communicating between software applications and computers on the world-wide web using universal variable handling |
US6470389B1 (en) * | 1997-03-14 | 2002-10-22 | Lucent Technologies Inc. | Hosting a network service on a cluster of servers using a single-address image |
IL121071A0 (en) * | 1997-03-27 | 1997-11-20 | El Mar Software Ltd | Automatic conversion server |
US6192406B1 (en) * | 1997-06-13 | 2001-02-20 | At&T Corp. | Startup management system and method for networks |
US6553000B1 (en) * | 1998-01-27 | 2003-04-22 | Alcatel Internetworking (Pe), Inc. | Method and apparatus for forwarding network traffic |
GB9806918D0 (en) * | 1998-03-31 | 1998-05-27 | British Telecomm | Software access |
DE69926368T2 (de) * | 1998-05-07 | 2006-01-12 | Samsung Electronics Co., Ltd., Suwon | Verfahren und vorrichtung für universellen zugriffsbefehl und kontrollinformation in einem netzwerk |
US6397259B1 (en) * | 1998-05-29 | 2002-05-28 | Palm, Inc. | Method, system and apparatus for packet minimized communications |
US6167448A (en) * | 1998-06-11 | 2000-12-26 | Compaq Computer Corporation | Management event notification system using event notification messages written using a markup language |
US6226675B1 (en) * | 1998-10-16 | 2001-05-01 | Commerce One, Inc. | Participant server which process documents for commerce in trading partner networks |
US6442589B1 (en) * | 1999-01-14 | 2002-08-27 | Fujitsu Limited | Method and system for sorting and forwarding electronic messages and other data |
US6480860B1 (en) * | 1999-02-11 | 2002-11-12 | International Business Machines Corporation | Tagged markup language interface with document type definition to access data in object oriented database |
US6507857B1 (en) * | 1999-03-12 | 2003-01-14 | Sun Microsystems, Inc. | Extending the capabilities of an XSL style sheet to include components for content transformation |
US6195689B1 (en) * | 1999-05-05 | 2001-02-27 | Mediaone Group, Inc. | Headend provisioning agent |
US7020681B1 (en) * | 1999-06-14 | 2006-03-28 | Sun Microsystems, Inc. | Method for caching XML documents viewable on devices with different displays |
US6742045B1 (en) * | 1999-07-02 | 2004-05-25 | Cisco Technology, Inc. | Handling packet fragments in a distributed network service environment |
US6735169B1 (en) * | 1999-07-02 | 2004-05-11 | Cisco Technology, Inc. | Cascading multiple services on a forwarding agent |
US6650641B1 (en) * | 1999-07-02 | 2003-11-18 | Cisco Technology, Inc. | Network address translation using a forwarding agent |
US6760324B1 (en) * | 1999-09-10 | 2004-07-06 | Array Telecom Corporation | Method, system, and computer program product for providing voice over the internet communication |
US6430624B1 (en) * | 1999-10-21 | 2002-08-06 | Air2Web, Inc. | Intelligent harvesting and navigation system and method |
US6854120B1 (en) * | 2000-01-14 | 2005-02-08 | International Business Machines Corporation | Accessing a ERP application over the internet using strongly typed declarative language files |
US6810429B1 (en) * | 2000-02-03 | 2004-10-26 | Mitsubishi Electric Research Laboratories, Inc. | Enterprise integration system |
US7162542B2 (en) * | 2000-04-13 | 2007-01-09 | Intel Corporation | Cascading network apparatus for scalability |
US6772216B1 (en) * | 2000-05-19 | 2004-08-03 | Sun Microsystems, Inc. | Interaction protocol for managing cross company processes among network-distributed applications |
US7149969B1 (en) * | 2000-10-18 | 2006-12-12 | Nokia Corporation | Method and apparatus for content transformation for rendering data into a presentation format |
US7134075B2 (en) * | 2001-04-26 | 2006-11-07 | International Business Machines Corporation | Conversion of documents between XML and processor efficient MXML in content based routing networks |
US7171457B1 (en) * | 2001-09-25 | 2007-01-30 | Juniper Networks, Inc. | Processing numeric addresses in a network router |
US7418508B2 (en) * | 2004-01-26 | 2008-08-26 | International Machines Corporation | System and method to facilitate XML enabled IMS transactions between a remote client and an IMS application program |
-
2000
- 2000-12-22 US US09/741,805 patent/US7162542B2/en not_active Expired - Fee Related
-
2001
- 2001-11-27 DE DE60134664T patent/DE60134664D1/de not_active Expired - Lifetime
- 2001-11-27 EP EP01272463A patent/EP1344371B1/en not_active Expired - Lifetime
- 2001-11-27 CN CN01822826.7A patent/CN1493139B/zh not_active Expired - Fee Related
- 2001-11-27 WO PCT/US2001/044638 patent/WO2002052814A1/en not_active Application Discontinuation
- 2001-11-27 AT AT01272463T patent/ATE400126T1/de not_active IP Right Cessation
-
2004
- 2004-02-10 HK HK04100883A patent/HK1058115A1/xx not_active IP Right Cessation
-
2007
- 2007-01-08 US US11/621,037 patent/US7631103B2/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6006264A (en) * | 1997-08-01 | 1999-12-21 | Arrowpoint Communications, Inc. | Method and system for directing a flow between a client and a server |
EP1003100A2 (en) * | 1998-11-20 | 2000-05-24 | International Business Machines Corporation | Processing object requests in data processing system |
WO2000056033A1 (en) * | 1999-03-17 | 2000-09-21 | Oracle Corporation | Providing clients with services that retrieve data from data sources that do not necessarily support the format required by the clients |
Non-Patent Citations (5)
Title |
---|
作者:.标题:.卷号: 期号:.同上. |
作者:.标题:.卷号: 期号:.同上. * |
作者:apostolopoulos g.标题:design,implementation and performance of a content-basedswitch.infocom 2000.nineteenth annual joint conference of the IEEE computer and communications societies.pr卷号: 期号:.2000,1117-1126. |
作者:apostolopoulos g.标题:design,implementation and performance of a content-basedswitch.infocom 2000.nineteenth annual joint conference of the IEEE computer and communications societies.pr卷号: 期号:.2000,1117-1126. * |
同上. |
Also Published As
Publication number | Publication date |
---|---|
US7631103B2 (en) | 2009-12-08 |
US7162542B2 (en) | 2007-01-09 |
US20040230660A1 (en) | 2004-11-18 |
ATE400126T1 (de) | 2008-07-15 |
EP1344371A1 (en) | 2003-09-17 |
HK1058115A1 (en) | 2004-04-30 |
WO2002052814A1 (en) | 2002-07-04 |
DE60134664D1 (de) | 2008-08-14 |
US20070220170A1 (en) | 2007-09-20 |
CN1493139A (zh) | 2004-04-28 |
EP1344371B1 (en) | 2008-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1493139B (zh) | 具有基于内容的消息转向器用于可伸缩性的级联网络装置和方法 | |
CN103795789B (zh) | 用于基于内容交换的网络设备 | |
US7111076B2 (en) | System using transform template and XML document type definition for transforming message and its reply | |
CN100407194C (zh) | 一种用于验证文档的网络装置 | |
US7574500B2 (en) | Establishing a cache expiration time to be associated with newly generated output by determining module- specific cache expiration times for a plurality of processing modules | |
US8364821B2 (en) | Method and system for deploying content to wireless devices | |
US7490272B2 (en) | Method for validating the proper operation of a transactional management system | |
JP2009500732A (ja) | マルチフォーマットのメッセージをパースする動的パース/ビルド・エンジン | |
US20020010764A1 (en) | Method, apparatus, and system for centrally defining and distributing connection definitions over a network | |
CN101535975A (zh) | 用于使用基于上下文的规则在不可靠网络上对交易和数据进行交换的自适应网关 | |
JP2004348398A (ja) | 電子決済方法及び電子決済システム並びにアクセス端末装置 | |
JP4939693B2 (ja) | データ通信装置、サーバ、クライアントマシン、および、データ通信プログラム | |
Ferreira et al. | Inter-Organizational Processes | |
Conlan et al. | Networking Part II |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100526 Termination date: 20171127 |
|
CF01 | Termination of patent right due to non-payment of annual fee |