CN101616050A - 总线系统 - Google Patents
总线系统 Download PDFInfo
- Publication number
- CN101616050A CN101616050A CN200910133398.5A CN200910133398A CN101616050A CN 101616050 A CN101616050 A CN 101616050A CN 200910133398 A CN200910133398 A CN 200910133398A CN 101616050 A CN101616050 A CN 101616050A
- Authority
- CN
- China
- Prior art keywords
- server
- user
- agent
- service
- uri
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
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/1029—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers 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/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
-
- 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/1012—Server selection for load balancing based on compliance of requirements or conditions with available server resources
-
- 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/50—Network services
- H04L67/55—Push-based network services
-
- 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
-
- 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/1031—Controlling of the operation of servers by a load balancer, e.g. adding or removing servers that serve requests
-
- 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/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- 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/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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种总线系统,其包括与服务器应用一一对应的多个服务器代理、以及与用户应用一一对应的多个用户代理。每个服务器代理包括:第一服务器代理通信单元,用于与对应的服务器应用进行通信;服务器代理确定单元,用于将从用户代理和其他服务器代理中选择的一个或更多个代理确定为通信目标;以及第二服务器代理通信单元,用于与服务器代理确定单元所确定的通信目标进行通信。每个用户代理包括:第一用户代理通信单元,用于与对应的用户应用进行通信;用户代理确定单元,用于将从服务器代理和其他用户代理中选择的一个或更多个代理确定为通信目标;以及第二用户代理通信单元,用于与用户代理确定单元所确定的通信目标进行通信。
Description
技术领域
本发明涉及构建在网络上的总线系统,比如ESB(企业服务总线)。
背景技术
图1示出在因特网上使用的基于Web的常规网络系统的配置示例。在图1中,拉式通信的建立过程为:从Web浏览器组(客户端组)3向使用数据库(数据库服务器)1的业务应用组(应用服务器组)2发出请求,然后响应被发送到Web浏览器组3。注意,在该基于Web的网络系统中,Web浏览器组3发出的请求为通信触发器,因此由服务器侧的业务应用组2向Web浏览器组3发起推式通信是不可行的。
为了处理服务器对推式通信的需求,使用例如总线系统。
ESB是公知的总线概念的一个示例,人们已经对其展开了各种各样的研究(请参阅例如:www.atmarkit.co.jp/aig/04biz/esb.html)。ESB是指对基于具有“总线”概念的SOA(面向服务架构)的应用进行集成的一种架构配置,或者是指用于提供此类架构配置的基础的软件产品。ESB概念是一种构建SOA系统的软件设计理念,其基于逻辑软件总线来对服务(应用和组件)进行访问并允许在多个服务之间实现协调与合作。因此,虽然ESB的特定功能和实施在各个产品和系统中有所不同,但是它通常指具有标准SOA接口的EAI(企业应用集成)产品、支持多种协议的复杂消息总线、或者具有此类消息总线的集成中间件技术和中间件产品。也就是说,ESB充当集成中介,实现开发为与开放标准规范比如Web服务和JCA(J2EE连接器架构)等兼容的各种服务之间的相互合作。核心消息总线支持各种标准协议,比如HTTP(超文本传输协议)、SOAP(简单对象访问协议)以及JMS(Java[注册商标]消息服务)等,提供包括“发布和订阅”、“存储-转发消息”以及“路由”的功能,并且同步或异步地结合服务。在完整的SOA环境中,ESB可以利用分布式处理架构。然而,许多实际ESB产品也具有遗留连接和数据转换特征,因此从广义上说也可用作EAI。此外,一些ESB产品还提供安全性、负荷分散、进程建模等功能。
图2示出常规总线系统的配置示例。在应用AP1-AP6...之间插入总线系统BS,以协调各应用之间的所有通信,从而使拉式通信和推式通信均能自由执行。注意,总线系统BS和每个应用AP1-AP6...之间的通信是通过各种方式实现的,比如HTTP、SOAP、JMS等。
此类常规网络总线系统通过一次一个地与连接到总线系统的服务器应用和用户应用进行通信来处理它们。因此,随着连接到总线系统的服务器应用和用户应用的数量增加,总线系统需要适应并能够处理增加的工作负荷。
实施负荷分散的一个示例是构建具有多个进程的总线系统并启用进程间通信,从而分散工作负荷。此类负荷分散的具体示例包括“ESB Mule模型”、“端点ESB”、“Artix”和“Celtix”。“ESB Mule模型”是轻量级消息传递框架,具有用于管理应用间通信的分布式对象中介。(www.mulesource.org/display/JPNDOC/Architecture+Overview)。“端点ESB”基于将所有事情聚合到端点的理念,并通过组合端点来形成ESB(www.mulesource.org/display/JPNDOC/Mule+Endpoints;以及www.blogs.iona.com/essence/2006/11/esb_l.html)。端点ESB的一个实施示例为“Artix”,它是遵循CORBA(公共对象请求代理体系结构)标准的一种ESB。“Celtix”是一种开源ESB(www.celtix.objectweb.org/)。
图3示出利用多个进程实现负荷分散的常规总线系统的配置示例。在图3中,由应用AP1-AP5访问的总线系统BS包括进程P1-P5。利用各个进程P1-P5之间的进程间通信来控制通信,从而实现负荷分散。因此,即使应用的数量增加,也可以实现总线系统的规模扩展(即,通过增加进程数量来改善整个总线系统BS的性能)。
专利文献1:日本专利申请公布号H09-307583
近年来,人们对通过组合现有电话服务和基于数据的服务(比如电子邮件服务)来开发和实现新的通信服务的基础结构进行了研究。预期新的基础结构不仅可以在基于SIP(基于会话初始化协议)的分组网络中提供现有线路切换服务,还能够增加新的功能。此类基础结构的一个示例为在NGN(下一代网络)中实现的SDP(服务交付平台)。
在NGN环境中,大量用户可能通过总线系统访问服务器应用。特别是,如果特定服务广受欢迎,则往往会有大量用户同时访问该服务。在这种情况下,上述现有总线系统技术的使用或此类总线系统的实现存在规模扩展限制。也就是说,如果用户的数量大幅增加并且访问集中在特定应用上,则此类规模扩展能力不足以处理该情况。
图4示出集中在特定服务器应用和进程上的负荷。在图4中,总线系统BS包括多个进程P1-P5,总线系统的上方示出服务器应用组(服务器应用A1、A2、B1、C1...),总线系统的下方示出用户应用组(用户应用U1-U4...)。每个应用都连接到形成总线系统BS的进程P1-P5之一。在P1-P5之间提供进程间路由,从而实现负荷分散。注意,服务器应用A1和A2提供相同的服务(应用A)。
这里假设应用A广受欢迎。来自用户应用组(用户应用U1-U4...)的访问同时集中在广受欢迎的应用A(服务器应用A1和A2)上,并且通信流量变得很高。此外,用户应用组中的用户应用的数量随着应用A广受欢迎的传闻或者趋势而增长。用户应用的数量可达数十万到数百万。如此众多的用户应用U1-U4...全部开始访问服务器应用A1和A2。
通信流量由多个进程P1-P5处理;但是,在进程P1-P5之间产生了工作负荷失衡。工作负荷尤其集中在与服务器应用A1和A2进行直接通信的终端进程P1上。总线系统BS无法阻止负荷集中,因此,总线系统BS的规模扩展变得很困难。
这样,当发生工作负荷集中情况时,常规总线系统在其规模扩展能力方面就存在限制,相应地,总线系统的规模扩展也就无法实现。
专利文献1公开了用于在具有数据库的每个服务器的共享存储器之间传送和接收数据的超级代理。然而,在该技术中,工作负荷仍然集中在路由器间通信以及超级代理自身上,因此很难实现规模扩展。
除了上述负荷集中外,还有另外一个问题,即除非确定了将作为通信目标的应用,否则每个应用都不能执行通信。例如,用户通常需要的是服务器应用提供的服务,但他们并不总能识别出提供用户所需服务的服务器应用。特别是,在提供相似服务的服务器应用(例如搜寻服务)是新创建的并且经常被除去的情况下,希望用户能够识别其目标服务器应用是不合理的。
发明内容
考虑到上述现有问题,本发明目的在于提供一种总线系统,该总线系统允许容易地进行规模扩展,并且即使在未确定目标应用的情况下也能够执行通信。
本发明的一方面为一种总线系统,所述总线系统包括与服务器应用一一对应的多个服务器代理以及与用户应用一一对应的多个用户代理。每个服务器代理包括:第一服务器代理通信单元,配置为与对应的服务器应用进行通信;服务器代理确定单元,配置为将从用户代理和其他服务器代理中选择的一个或更多个代理确定为通信目标;以及第二服务器代理通信单元,配置为与服务器代理确定单元所确定的通信目标进行通信。每个用户代理包括:第一用户代理通信单元,配置为与对应的用户应用进行通信;用户代理确定单元,配置为将从服务器代理和其他用户代理中选择的一个或更多个代理确定为通信目标;以及第二用户代理通信单元,配置为与用户代理确定单元所确定的通信目标进行通信。
本发明的另一方面为一种总线系统控制方法,所述总线系统控制方法应用于包括与服务器应用一一对应的多个服务器代理以及与用户应用一一对应的多个用户代理的总线系统。所述总线系统控制方法包括:允许至少一个用户代理与对应的用户应用进行通信;将从服务器代理和其他用户代理中选择的一个或更多个用户代理确定为用户代理之一的通信目标;使所述用户代理之一与所述通信目标进行通信;以及使至少一个服务器代理与对应的服务器应用进行通信。
本发明的又一方面为一种总线系统控制方法,所述总线系统控制方法应用于包括与服务器应用一一对应的多个服务器代理以及与用户应用一一对应的多个用户代理的总线系统。所述总线系统控制方法包括:使至少一个服务器代理与对应的服务器应用通信;将从用户代理和其他服务器代理中选择的一个或更多个服务器代理确定为服务器代理之一的通信目标;使所述服务器代理之一与所述通信目标进行通信;以及使至少一个用户代理与对应的用户应用进行通信。
本发明的目的和优势将通过在权利要求书中特别指出的元素和组合来实现和获得。
应理解,前述概括说明和以下详细说明均为示例性和说明性的,而不是要限制所要求保护的本发明。
附图说明
图1示出基于Web的常规网络系统的配置示例;
图2示出常规总线系统的配置示例;
图3示出常规总线系统的另一个配置示例;
图4示出常规总线系统的又一个配置示例;
图5示出根据本发明的一个实施例的总线系统的配置示例;
图6示出代理的配置示例;
图7A和图7B示出保存数据的示例;
图8示出应用于拉式通信的NS词典的示例;
图9示出拉式通信中的操作示例;
图10为拉式通信操作的序列图;
图11为示出代理组件所执行的操作步骤的细节的序列图;
图12示出应用于推式通信的NS词典的示例;
图13示出推式通信中的操作示例;
图14为推式通信操作的序列图;
图15示出对应于场景(scenario)的操作示例;以及
图16示出场景解释单元中保存的对应关系表的示例。
具体实施方式
接下来对描述用于实施本发明的最佳方式的实施例进行说明。
<基本配置>
图5示出根据本发明的一个实施例的总线系统的配置示例。
在图5中,在总线系统100的上方和下方分别示出服务器应用组(服务器应用A1-A3、B1...)以及用户应用组(用户应用U1-U4...)。服务器应用A1-A3提供相同的服务器应用A。
总线系统100包括与服务器应用A1-A3、B1...一一对应的服务器代理a1-a3、b1...以及与用户应用U1-U4....一一对应的用户代理u1-u4...。每个代理(服务器代理a1-a3、b1...以及用户代理u1-u4...)均由在单个服务器或多个分布式服务器上执行的计算机程序来实现。
总线系统100还包括:代理管理单元110,用于管理每个代理的增加、删除等;NS(网络服务)词典120,用于管理代理的通信目的地等;以及场景解释单元130,用于解释场景(指示服务的关键字等)并确定代理的通信目标。注意,通过将同一内容分布到每个代理以保存该内容,可以省略NS词典120。
图6示出每个代理(服务器代理a1-a3、b1...以及用户代理u1-u4...)的配置示例。在图6中,代理包括应用通信单元11、代理通信单元12、NS词典查询单元13、URI转换单元14以及保存数据15。
应用通信单元11具有与服务器应用和用户应用进行通信的功能。代理通信单元12具有与其他代理进行通信的功能。NS词典查询单元13具有响应于接收到来自用户应用或服务器应用的URI(统一资源标识符)、向NS词典120查询对应代理名称的功能。URI转换单元14具有利用从NS词典查询单元13获得的代理名称将所述URI替换为不同URI的功能。
保存数据15包括:“代理名称”,其保存用于标识该代理自身的名称;“词典名称”,其保存用于标识进行查询的NS词典120的名称;“对应代理标识符”,其保存作为对NS词典120的查询的结果所获得的代理标识符;以及“对应应用标识符”,其保存对应应用的标识符。图7A和7B示出保存数据15的示例。图7A是包括在服务器代理中的保存数据15的示例,图7B是包括在用户代理中的保存数据15的示例。
参照图5,服务器代理a1-a3、b1...分别与对应的服务器应用A1-A3、B1...进行通信。作为服务器代理及其对应的服务器应用之间的通信接口,使用了多功能接口,而无需改变现有总线系统。
用户代理u1-u4...分别与对应的用户应用U1-U4...进行通信。作为用户代理及其对应的用户应用之间的通信接口,使用了多功能接口,而无需改变现有总线系统。
当每个代理与其他代理进行通信并确定了通信路径时,实现了负荷分散。以此方式,防止了负荷集中在特定服务器应用及其对应的服务器代理上。通过确定当对NS词典120进行查询时被识别为通信目标的其它代理,来确定通信路径。或者,通过彼此直接进行通信的各个代理来确定通信路径。
由于具备此类基本功能,本实施例的总线系统100能够灵活处理拉式通信和推式通信,并且还能够实现负荷分散。
此外,如果在来自用户应用U1-U4...的通信中写有场景,则可由场景解释单元130确定通信路径。因此,即使未指定目标应用,也可以执行通信。
<拉式通信>
图8示出应用于拉式通信的NS词典120的示例。参照图8,NS词典120包括“服务URI”字段,该字段的每个内容指示提供用户应用所指定的服务的URI;“服务器代理名称”字段,该字段的每个内容标识与服务URI相对应的服务器代理;“状况”字段,该字段的每个内容指示服务器代理及其对应的服务器应用的负荷状况(低负荷、高负荷等);以及“响应历史”字段,该字段的每个内容指示响应于查询而报告服务器代理的历史(时间戳、序列号等)。
图9示出拉式通信的操作示例,图10是所述操作的序列图。图9的配置与图5的配置相同,只是图9中实施了NS词典120并省略了场景解释单元130。
这里假设服务器应用A1-A3所提供的服务(应用A)广受欢迎,因此多个用户应用U1-U4...对应用A进行了调用。也可以假设,在多个用户应用U1-U4...调用应用A的过程中,服务器应用A1和服务器代理a1的负荷状况从低负荷变更为高负荷,并且该负荷状况改变被记录在NS词典120中。
参照图9和图10,当将″URI://A/″从用户应用U1传送到对应的用户代理u1时(步骤S101),用户代理u1指定服务URI″A″并向NS词典120查询代理名称(步骤S102)。基于图8所示的对应关系,NS词典120确定服务URI″A″对应于“服务器代理a1”、“服务器代理a2”和“服务器代理a3”。NS词典120还参照状况和响应历史,以循环(round robin)方式指定在注册顺序上排列为较早的、未在高负荷状况下操作的、并具有较早响应历史的服务器代理。这里假设第一“服务器代理a1”在“低负荷”状况下操作,并具有较早的响应历史。相应地,NS词典120将“服务器代理a1”作为对应代理名称返回给用户代理u1(步骤S103)。
随后,用户代理u1利用从NS词典120获得的对应代理名称将原URI替换为新URI(步骤S104),并与替换后的URI所指示的服务器代理a1进行通信(步骤S105)。然后,服务器代理a1与对应的服务器应用A1进行通信(步骤S106)。由此,经由服务器代理a1和用户代理u1将所需内容发送到用户应用U1,作为来自服务器应用A1的响应。
图11是示出由代理(用户代理u1和服务器代理a1)的组件执行的图10的操作步骤S101-S106的细节的序列图。
参照图11,当从用户应用U1将URI传送到对应的用户代理u1时(步骤S131),应用通信单元11接收所述URI。应用通信单元11将收到的信息传递给NS词典查询单元13(步骤S132),然后NS词典查询单元13指定服务URI并向NS词典120查询代理名称(步骤S133),随后接收由NS词典120返回的对应代理名称(步骤S134)。
接下来,NS词典查询单元13将收到的信息传递给URI转换单元14(步骤S135),然后URI转换单元14利用从NS词典120获得的对应代理名称将原URI替换为新URI(步骤S136),并将替换后的URI传递到代理通信单元12(步骤S137)。代理通信单元12与替换后的URI所指示的服务器代理a1进行通信(步骤S138)。在服务器代理a1侧,代理通信单元12接收通信中的信息并将收到的信息传递给应用通信单元11(步骤S139),然后应用通信单元11与对应的服务器应用A1通信(步骤S140)。
回来参照图9和图10,类似地,当将″URI://A/″从用户应用U2传送到对应的用户代理u2时(步骤S107),用户代理u2指定服务URI″A″并向NS词典120查询代理名称(步骤S108)。基于图8所示的对应关系,NS词典120确定服务URI″A″对应于“服务器代理a1”、“服务器代理a2”和“服务器代理a3”。NS词典120还参照状况和响应历史,以循环方式指定在注册顺序上排列为较早的、未在高负荷状况下操作的、并具有较早响应历史的服务器代理。此时,NS词典120根据响应历史确定其回复先前的查询时,返回第一“服务器代理a1”。因此,NS词典102将“服务器代理a2”作为对应代理名称返回给用户代理u2(步骤S109)。
随后,用户代理u2利用从NS词典120获得的对应代理名称将原URI替换为新URI(步骤S110),并与替换后的URI所指示的服务器代理a2进行通信(步骤S111)。然后,服务器代理a2与对应的服务器应用A2进行通信(步骤S112)。由此,经由服务器代理a2和用户代理u2将所需内容发送到用户应用U2,作为来自服务器应用A2的响应。
类似地,当从用户应用U3将″URI://A/″传送到对应的用户代理u3时(步骤S113),用户代理u3指定服务URI″A″并向NS词典120查询代理名称(步骤S114)。基于图8所示的对应关系,NS词典120确定服务URI″A″对应于“服务器代理a1”、“服务器代理a2”和“服务器代理a3”。NS词典120还参照状况和响应历史,以循环方式指定在注册顺序上排列为较早的、未在高负荷状况下操作的、并具有较早响应历史的服务器代理。此时,NS词典120根据响应历史确定其先前顺序返回第一“服务器代理a1”和下一个“服务器代理a2”。因此,NS词典120将“服务器代理a3”作为对应的代理名称返回给用户代理u3(步骤S115)。
随后,用户代理u3利用从NS词典120获得的对应代理名称将原URI替换为新URI(步骤S116),并与替换后的URI所指示的服务器代理a3进行通信(步骤S117)。然后,服务器代理a3与对应的服务器应用A3进行通信(步骤S118)。由此,经由服务器代理a3和用户代理u3将所需内容发送到用户应用U3,作为来自服务器应用A3的响应。
类似地,当从用户应用U4将″URI://A/″传送到对应的用户代理u4时(步骤S119),用户代理u4指定服务URI″A″并向NS词典120查询代理名称(步骤S120)。基于图8所示的对应关系,NS词典120确定服务URI″A″对应于“服务器代理a1”、“服务器代理a2”和“服务器代理a3”。NS词典120还参照状况和响应历史,以循环方式指定在注册顺序上排列为较早的、未在高负荷状况下操作的、并具有较早响应历史的服务器代理。此时,NS词典120根据响应历史确定其先前顺序返回“服务器代理a1”、“服务器代理a2”和“服务器代理a3”。在这种情况下,第一“服务器代理a1”成为要返回的候选对象。然而,这里假设服务器代理a1在高负荷状况下操作。因此,NS词典120将“服务器代理a2”作为对应的代理名称返回给用户代理u4(步骤S121)。
随后,用户代理u4利用从NS词典120获得的对应代理名称将原URI替换为新URI(步骤S122),并与替换后的URI所指示的服务器代理a2进行通信(步骤S123)。然后,服务器代理a2与对应的服务器应用A2进行通信(步骤S124)。由此,经由服务器代理a2和用户代理u4将所需内容发送到用户应用U4,作为来自服务器应用A2的响应。
这样,即使来自用户应用U1-U4...的访问集中在服务器应用A1-A3所提供的服务(应用A)上,也会实现对服务器代理a1-a3的负荷分布,从而可以避免负荷集中在特定进程上的现有问题。通过增加服务器应用A1-A3的数量以及对应服务器代理a1-a3的数量,可以容易地实现总线系统100的规模扩展。
<推式通信>
图12示出应用于推式通信的NS词典120的示例。参照图12,NS词典120包括:“服务URI”字段,该字段的每个内容指示提供服务器应用所指定的服务的URI;“服务器代理名称”字段,该字段的每个内容标识与服务URI相对应的服务器代理;“用户应用名称”字段,该字段的每个内容标识通过申请服务的过程而初步注册的用户应用;以及“用户代理名称”字段,该字段的每个内容标识与用户应用相对应的用户代理。
图13示出推式通信中的操作示例,图14是操作序列图。图13的配置与图5的配置相同,除了图13中实施了NS词典120并省略了场景解释单元130。
参照图13和图14,当将″URI://X/″从服务器应用A1传送到对应的服务器代理a1时(步骤S201),服务器代理a1的应用通信单元11接收URI信息。应用通信单元11将收到的信息传递给NS词典查询单元13(步骤S202),然后NS词典查询单元13指定服务URI并向NS词典120查询代理名称(步骤S203),并随后接收由NS词典120返回的对应代理名称(步骤S204)。此时,基于图12所示的NS词典120中的对应关系,NS词典120向NS词典查询单元13返回有关服务URI “X”的“服务器代理a2”和“服务器代理a3”(执行所述查询的服务器代理a1除外)以及与将由服务器代理a1处理的用户相对应的“用户代理u1”和“用户代理u4”(采用循环方式:选择第一“用户代理u1”,接下来的“用户代理u2”和“用户代理u3”留给服务器代理a2和a3,接着选择“用户代理u4”)。
随后,NS词典查询单元13将收到的信息传递给URI转换单元14(步骤S205);然后URI转换单元14利用从NS词典120获得的对应代理名称将原URI替换为新URI(步骤S206),并将替换后的URI传递给代理通信单元12(步骤S207)。
接下来,代理通信单元12将内容副本交付给服务器代理a2,指定用户代理u2作为目的地(步骤S208),并且还将内容副本交付给服务器代理a 3,将用户代理u3指定为目的地(步骤S209)。
代理通信单元12与用户代理u1进行通信(步骤S210)。在用户代理u1侧,代理通信单元12接收通信中的信息并将收到的信息传递给应用通信单元11(步骤S211),然后应用通信单元11与对应的用户应用U1通信(步骤212)。类似地,服务器代理a1的代理通信单元12与用户代理u4进行通信(步骤213),用户代理u4与对应的用户应用U4进行通信(步骤S214)。
另一方面,服务器代理a2与用户代理u2进行通信(步骤S215),然后用户代理u2与对应的用户应用U2进行通信(步骤S216)。类似地,服务器代理a 3与用户代理u3进行通信(步骤S217),然后用户代理u3与对应的用户应用U3进行通信(步骤S218)。
根据上述操作,可以实现从服务器应用A1到用户应用U1-U4的推式通信。
<场景自适应操作>
图15示出对应于场景的操作示例。注意,图15示出用户侧的用户应用U1以及服务器侧的服务器应用A1、B1和C1。总线系统100包括与用户应用U1相对应的用户代理u1、分别与服务器应用A1、B1和C1相对应的服务器代理a1、b1和c1、以及场景解释单元130。
操作始于从用户应用U1到总线系统100的用户代理u1的场景传送。例如,场景以“<Scenario>Search</Scenario>”的形式书写。“<Scenario>”是指示场景的开始位置的标记,而“</Scenario>”是指示场景的结束位置的标记。本例中的场景是字符串“Search”。用户应用U1还将“<Key>FJT</Key>”作为搜索关键字与场景一起传送给用户代理u1。“<Key>”是指示关键字的开始位置的标记,而“</Key>”是指示关键字的结束位置的标记。本例中的关键字是字符串“FJT”。
当接收到场景时,用户代理u1指定场景(上例中的“Search”)并查询场景解释单元130,随后获得响应。场景解释单元130具有如图16所示的对应关系表。对于服务名称“Service”,注册了分别对应于提供相同搜索服务的服务器应用A1、B1和C1的服务器代理a1、b1和c1。基于分别从服务器应用A1、B1和C1经由服务器代理a1、b1和c1发送的请求而进行该注册。相应地,响应于收到对场景“Search”的查询,场景解释单元130将对应于提供搜索服务的服务器应用A1、B1和C1的“服务器代理a1”、“服务器代理b1”和“服务器代理c1”返回给用户代理u1。
用户代理u1将具有关键字“FJT”说明的搜索请求传送到场景解释单元130所返回的每个服务器代理a1、b1和c1。每个服务器代理a1、b1和c1接收所述请求,并将具有关键字“FJT”说明的搜索请求传送到对应的服务器应用A1、B1和C1。接着,当接收到来自对应的服务器应用A1、B1和C1的搜索结果时,每个服务器代理a1、b1和c1将搜索结果传送到用户代理u1。然后,用户代理u1将搜索结果放到一起并将它们传送到用户应用U1。
以此方式,通过指定场景“Search”,对用户应用U1进行操作的用户就能够接收到服务,而不必了解处理场景的服务器应用A1、B1和C1,即使提供搜索服务的应用数量增加了也无妨。
如上所述,根据本发明的一个实施例的总线系统允许进行简单的规模扩展,并且即使在未确定目标应用的情况下也能够执行通信。
<总体概述>
上述实施例具有以下优势:
(1)能够处理拉式通信和推式通信;
(2)能够实现总线系统的负荷分散;
(3)能够根据用户应用数量的增长(在数十万到数百万的范围内)来实现总线系统的规模扩展;特别是,适合于要求可扩展性的网络系统比如NGN;以及
(4)能够使用场景以抽象的方式描述服务,并且即使在未确定目标服务器的情况下也能够启动通信;此外,还能够简化应用配置。
这样,在此参照本发明的优选实施例描述了本发明。尽管通过特定示例示出和描述了本发明,但应理解,可以在不背离如权利要求中所限定的本发明的精神和范围的情况下对所述特定示例进行各种变更和修改。也就是说,本发明的范围不限于特定示例及所附的附图。
此处使用的所有示例和条件语句旨在用于教导目的以便帮助读者理解本发明以及由发明人提出的促进现有技术的构思,并应被解释为不局限于这些具体描述的示例和条件,说明书中这些示例的组织也与本发明的优缺点的显示无关。虽然已详细描述了本发明的实施例,但应理解,在不背离本发明的精神和范围的情况下,可对本发明的实施例进行各种变更、替代和改动。
Claims (13)
1.一种总线系统,包括:
与服务器应用一一对应的多个服务器代理;以及
与用户应用一一对应的多个用户代理;
其中,每个所述服务器代理包括:第一服务器代理通信单元,配置为与对应的服务器应用进行通信;服务器代理确定单元,配置为将从所述用户代理和其他服务器代理中选择的一个或更多个代理确定为通信目标;以及第二服务器代理通信单元,配置为与所述服务器代理确定单元所确定的通信目标进行通信,并且
每个所述用户代理包括:第一用户代理通信单元,配置为与对应的用户应用进行通信;用户代理确定单元,配置为将从所述服务器代理和其他用户代理中选择的一个或更多个代理确定为通信目标;以及第二用户代理通信单元,配置为与所述用户代理确定单元所确定的通信目标进行通信。
2.根据权利要求1所述的总线系统,其中,在所述第一用户代理通信单元从对应的用户应用接收到用于标识服务内容的服务URI时,所述用户代理确定单元查询包括用于标识服务内容的服务URI与提供服务内容的服务器代理之间的对应关系的词典,并且将与接收到的服务URI相对应并在低负荷状况下操作的至少一个服务器代理确定为通信目标。
3.根据权利要求2所述的总线系统,其中,所述用户代理确定单元将在查询过程中确认为与所述接收到的服务URI相对应的一个或更多个服务器代理指定为通信目标候选,并且依次确定一个或更多个所述候选为通信目标。
4.根据权利要求1所述的总线系统,其中,在所述第一服务器代理通信单元从对应的服务器应用接收到用于标识服务内容的服务URI时,所述服务器代理确定单元查询包括用于标识服务内容的服务URI、提供服务内容的服务器代理以及用户应用之间的对应关系的词典,以便指定与接收到的服务URI相对应的一个或更多个用户应用作为所述接收到的服务URI所标识的服务内容的接收者,并且将与所述接收者相对应的一个或更多个用户代理确定为通信目标。
5.根据权利要求4所述的总线系统,其中,所述服务器代理确定单元将在查询过程中确认为与所述接收到的服务URI相对应的一个或更多个其他服务器代理确定为通信目标,并且所述第二服务器代理通信单元将所述接收到的服务URI所标识的服务内容或所述接收到的服务URI的副本传送给所确定的通信目标,以便所述接收到的服务URI所标识的服务内容或所述副本从所确定的通信目标被传送到,在被指定为所述接收到的服务URI所标识的服务内容的接收者的一个或更多个用户应用中,与所述服务器代理未为其提供所述接收到的服务URI所标识的服务内容的一个或更多个用户应用相对应的一个或更多个用户代理。
6.根据权利要求1所述的总线系统,其中,在所述第一用户代理通信单元从对应的用户应用中接收到用于指示所需服务的场景时,所述用户代理确定单元对配置为解释所述场景的场景解释单元进行查询,以便将与能够处理所述场景的一个或更多个所述服务器应用相对应的一个或更多个所述服务器代理确定为通信目标。
7.一种总线系统控制方法,应用于包括与服务器应用一一对应的多个服务器代理以及与用户应用一一对应的多个用户代理的总线系统,所述总线系统控制方法包括:
使至少一个用户代理与对应的用户应用进行通信;
将从所述服务器代理和其他用户代理中选择的一个或更多个代理确定为用户代理之一的通信目标;
使所述用户代理之一与所述通信目标进行通信;以及
使至少一个服务器代理与对应的服务器应用进行通信。
8.根据权利要求7所述的总线系统控制方法,其中,在所述用户代理之一从对应的用户应用接收到用于标识服务内容的服务URI时,对包括用于标识服务内容的服务URI与提供服务内容的服务器代理之间的对应关系的词典进行查询,并且将与接收到的服务URI相对应并在低负荷状况下操作的至少一个服务器代理确定为通信目标。
9.根据权利要求8所述的总线系统控制方法,其中,在查询过程中被确认为与所述接收到的服务URI相对应的一个或更多个服务器代理被指定为通信目标候选,并且一个或更多个所述候选依次被确定为通信目标。
10.一种总线系统控制方法,用于包括与服务器应用一一对应的多个服务器代理以及与用户应用一一对应的多个用户代理的总线系统,所述总线系统控制方法包括:
使至少一个服务器代理与对应的服务器应用进行通信;
将从所述用户代理和其他服务器代理中选择的一个或更多个代理确定为服务器代理之一的通信目标;
使所述服务器代理之一与所述通信目标进行通信;以及
使至少一个用户代理与对应的用户应用进行通信。
11.根据权利要求10所述的总线系统控制方法,其中,在所述服务器代理之一从对应的服务器应用接收到用于标识服务内容的服务URI时,对包括用于标识服务内容的服务URI、提供服务内容的服务器代理以及用户应用之间的对应关系的词典进行查询,以便将与所述接收到的服务URI相对应的一个或更多个用户应用指定为所述接收到的服务URI所标识的服务内容的接收者,并且将与所述接收者相对应的一个或更多个用户代理确定为通信目标。
12.根据权利要求11所述的总线系统控制方法,其中,在查询过程中被确认为确认与所述接收到的服务URI相对应的一个或更多个其他服务器代理被确定为通信目标,并且所述接收到的服务URI所标识的服务内容或所述接收到的服务URI的副本被传送到所确定的通信目标,以便从所确定的通信目标传送到,在被指定为所述接收到的服务URI所标识的服务内容的接收者的一个或更多个用户应用中,与所述服务器代理未为其提供接收到的服务URI所标识的服务内容的一个或更多个用户应用相对应的一个或更多个用户代理。
13.根据权利要求7所述的总线系统控制方法,其中,在从对应的用户应用接收到指示所需服务的场景时,对配置为解释所述场景的场景解释单元进行查询,以便将与能够处理所述场景的一个或更多个所述服务器应用相对应的一个或更多个服务器代理确定为通信目标。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008168951A JP5104591B2 (ja) | 2008-06-27 | 2008-06-27 | バスシステム |
JP2008-168951 | 2008-06-27 | ||
JP2008168951 | 2008-06-27 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101616050A true CN101616050A (zh) | 2009-12-30 |
CN101616050B CN101616050B (zh) | 2011-12-28 |
Family
ID=41228419
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910133398.5A Expired - Fee Related CN101616050B (zh) | 2008-06-27 | 2009-04-09 | 总线系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8082296B2 (zh) |
EP (1) | EP2139203A1 (zh) |
JP (1) | JP5104591B2 (zh) |
CN (1) | CN101616050B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101976062A (zh) * | 2010-08-12 | 2011-02-16 | 华南理工大学 | 基于lsoa构架的开放式控制方法 |
CN108462731A (zh) * | 2017-02-20 | 2018-08-28 | 阿里巴巴集团控股有限公司 | 数据代理方法、装置以及电子设备 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5136238B2 (ja) * | 2008-06-25 | 2013-02-06 | 富士通株式会社 | サービスバス連携方法及びサービスバス |
US8433746B2 (en) * | 2010-05-25 | 2013-04-30 | Red Hat, Inc. | Aspect oriented programming for an enterprise service bus |
CN101986614B (zh) * | 2010-08-30 | 2012-07-18 | 华南理工大学 | 一种面向物流应用的通用行业服务总线系统及其实现方法 |
CN102638567B (zh) * | 2012-03-02 | 2015-05-20 | 深圳市朗科科技股份有限公司 | 多应用云存储平台和云存储终端 |
WO2013170470A1 (zh) * | 2012-05-17 | 2013-11-21 | 华为技术有限公司 | 传输数据的方法及装置 |
US9940112B2 (en) * | 2014-11-06 | 2018-04-10 | Capgemini Technology Services India Limited | Efficient framework for deploying middleware services |
US9785480B2 (en) | 2015-02-12 | 2017-10-10 | Netapp, Inc. | Load balancing and fault tolerant service in a distributed data system |
CN106790227B (zh) * | 2017-01-16 | 2020-01-17 | 重庆金美通信有限责任公司 | 一种在ip通信网络中采用服务+代理模式构建网络管控总线的方法 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07160647A (ja) * | 1993-12-08 | 1995-06-23 | Oki Electric Ind Co Ltd | 分散処理システム |
JPH09307583A (ja) | 1996-05-10 | 1997-11-28 | Hitachi Ltd | エージェント型通信方法、及び、エージェント型通信システム |
JP3763662B2 (ja) * | 1998-03-12 | 2006-04-05 | 松下電器産業株式会社 | ネットワークエージェントシステムおよびエージェント間通信方法 |
FI109756B (fi) * | 1998-09-21 | 2002-09-30 | Nokia Corp | Menetelmä tiedonsiirtojärjestelmässä paikallisten resurssien hyödyntämiseksi, tiedonsiirtojärjestelmä ja langaton viestin |
US6195696B1 (en) | 1998-10-01 | 2001-02-27 | International Business Machines Corporation | Systems, methods and computer program products for assigning, generating and delivering content to intranet users |
JP2000259537A (ja) * | 1999-03-10 | 2000-09-22 | Ntt Data Corp | 接続管理システム、方法及び記録媒体 |
US6735169B1 (en) | 1999-07-02 | 2004-05-11 | Cisco Technology, Inc. | Cascading multiple services on a forwarding agent |
JP2002157238A (ja) | 2000-09-06 | 2002-05-31 | Seiko Epson Corp | 閲覧情報作成システム、ディジタルコンテンツ作成システム及びディジタルコンテンツ配信システム、並びにディジタルコンテンツ作成プログラム |
JP2002334033A (ja) * | 2001-05-07 | 2002-11-22 | Ntt Docomo Inc | 情報配信方法、システム、装置、及びプログラム、並びに記録媒体 |
US7139551B2 (en) | 2002-01-19 | 2006-11-21 | Sasken Communication Technologies Ltd. | System and method for automatically downloading software applications to a remote terminal |
CA2519327A1 (en) | 2003-03-19 | 2004-09-30 | British Telecommunications Public Limited Company | Flexible multi-agent system architecture |
AU2003236672A1 (en) | 2003-05-16 | 2004-12-03 | Docomo Communications Laboratories Europe Gmbh | Personalized service selection |
JP3883991B2 (ja) * | 2003-08-04 | 2007-02-21 | 日本電信電話株式会社 | ワークフロー処理方法とこの方法を実現するためのサーバ装置及びこのサーバ装置で使用されるプログラム |
US8156217B2 (en) | 2003-11-24 | 2012-04-10 | Hewlett-Packard Development Company, L.P. | Dynamically balancing load for servers |
JP4438510B2 (ja) * | 2004-05-25 | 2010-03-24 | 株式会社日立製作所 | 通信システム及び通信制御装置 |
JP4626395B2 (ja) | 2004-08-30 | 2011-02-09 | オンキヨー株式会社 | センターサーバーおよびその動作方法 |
JP3859667B2 (ja) * | 2004-10-26 | 2006-12-20 | 株式会社日立製作所 | データ通信方法およびシステム |
JP2006171822A (ja) * | 2004-12-13 | 2006-06-29 | Nippon Telegr & Teleph Corp <Ntt> | コンテンツ配信方法 |
-
2008
- 2008-06-27 JP JP2008168951A patent/JP5104591B2/ja not_active Expired - Fee Related
-
2009
- 2009-03-13 US US12/403,530 patent/US8082296B2/en not_active Expired - Fee Related
- 2009-03-17 EP EP09003810A patent/EP2139203A1/en not_active Withdrawn
- 2009-04-09 CN CN200910133398.5A patent/CN101616050B/zh not_active Expired - Fee Related
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101976062A (zh) * | 2010-08-12 | 2011-02-16 | 华南理工大学 | 基于lsoa构架的开放式控制方法 |
CN101976062B (zh) * | 2010-08-12 | 2012-08-22 | 华南理工大学 | 基于lsoa构架的开放式控制方法 |
CN108462731A (zh) * | 2017-02-20 | 2018-08-28 | 阿里巴巴集团控股有限公司 | 数据代理方法、装置以及电子设备 |
CN108462731B (zh) * | 2017-02-20 | 2021-04-09 | 阿里巴巴集团控股有限公司 | 数据代理方法、装置以及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
JP2010009380A (ja) | 2010-01-14 |
EP2139203A1 (en) | 2009-12-30 |
JP5104591B2 (ja) | 2012-12-19 |
US20090327406A1 (en) | 2009-12-31 |
CN101616050B (zh) | 2011-12-28 |
US8082296B2 (en) | 2011-12-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101616050B (zh) | 总线系统 | |
US7631101B2 (en) | Systems and methods for direction of communication traffic | |
CN109861975B (zh) | 面向工业互联网的标识注册信息查询方法和系统 | |
US7861174B2 (en) | Method and system for assembling concurrently-generated content | |
RU2409846C2 (ru) | Организация ресурсов в коллекции, способствующая более эффективному и надежному доступу к ресурсам | |
US8447808B2 (en) | Virtual presence server | |
CN102047242B (zh) | 内容管理 | |
TWI420870B (zh) | 管理豐富的在場收集 | |
US8788618B2 (en) | Leveraging presence service system and method for distributed web service delivery and deployment | |
CN102047243A (zh) | 基于类别请求路由 | |
US20020055956A1 (en) | Method and system for assembling concurrently-generated content | |
US20110282993A1 (en) | Hierarchical load balancing | |
CN101981572A (zh) | 请求路由 | |
WO2002017101A1 (en) | Method and system for interactively responding to instant messaging requests | |
CN101827309A (zh) | 一种推送消息的发送方法、终端、服务器及系统 | |
CN102034144A (zh) | 用于在场的群组组成算法 | |
Skarmeas et al. | Content-based routing as the basis for intra-agent communication | |
EP1325424A2 (en) | Method and system for assembling concurrently-generated content | |
US9805122B2 (en) | Search engine and method for performing a search for objects that correspond to a search request | |
CN101499977A (zh) | 一种即时通讯系统及实现方法 | |
EP2118747B1 (en) | Interface module | |
US8307112B2 (en) | Mediated information flow | |
Skarmeas et al. | Component based agent construction | |
JP3577579B2 (ja) | ゲートウェイシステム及びコンピュータネットワーク | |
EP1360598B1 (en) | Assembling concurrently-generated personalized web pages |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20111228 Termination date: 20210409 |