CN101447977A - 用于生成消息的方法及系统 - Google Patents
用于生成消息的方法及系统 Download PDFInfo
- Publication number
- CN101447977A CN101447977A CN200710196411.2A CN200710196411A CN101447977A CN 101447977 A CN101447977 A CN 101447977A CN 200710196411 A CN200710196411 A CN 200710196411A CN 101447977 A CN101447977 A CN 101447977A
- Authority
- CN
- China
- Prior art keywords
- message
- service
- information
- soap
- soap message
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- 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/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/2866—Architectures; Arrangements
- H04L67/30—Profiles
- H04L67/306—User profiles
-
- 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/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种用于生成简单对象访问协议SOAP消息的方法和系统,其中,至少一个第一信息集合被预先存储起来,所述第一信息集合中的每个包含至少一条信息。所述方法包括如下步骤:生成第一SOAP消息,其中,所述第一SOAP消息包含第二信息集合,所述第二信息集合包含至少一条信息;检取与所述第二信息集合对应的第一信息集合;以及根据所检取的第一信息集合和所述第一SOAP消息来生成第二SOAP消息。
Description
技术领域
本发明涉及消息生成,尤其涉及在面向服务架构(SOA,Service-Oriented Architecture)中生成消息的方法和系统。
背景技术
在现有技术中,在面向服务架构(SOA,Service-OrientedArchitecture)的应用中,服务是基本的组成单元。由服务提供者(Service Provider)提供服务,并由服务消费者(Service Consumer)调用服务。在面向服务架构的应用中,服务消费者通常并不指诸如银行的某个客户的最终用户,而是可以指编写服务调用程序的开发人员,或者也可以指服务调用程序本身(例如,服务调用客户端程序),这对于本领域技术人员来说是公知的。服务消费者需要两种信息:服务接口信息,通常,由Web服务描述语言(WSDL)来描述服务接口信息,服务接口信息就好像是服务提供者和消费者之间签订的合同,其中规定了服务提供者希望服务消费者提供的信息以及消息的格式,服务接口信息一旦确定下来就不会经常变动;服务的地址,即,所谓的端点(endpoint)。
为了调用服务,服务消费者需要按照所述WSDL生成一定格式的消息,例如,简单对象访问协议(SOAP)消息,并把所述消息发送到服务的服务实现端点上以调用服务。其中,每个服务可能具有多个不同的服务实现端点,例如,各个服务实现端点与不同的服务质量等相对应。
在简单的SOA构架里,只需要有服务消费者与提供者两方就足够了。然而,在复杂的SOA构架中,常常还需要有一个介于服务消费者与提供者之间的模块,通常称为“消息中介”,其中,所述消息中介用于处理服务请求消息在多个服务提供者之间的路由,即,对某个服务的请求消息应由哪个服务提供者所提供的服务来处理并且应被发送到哪个服务实现端点。因此,所述中介引擎还需要一些额外信息(属性信息)来决定消息的路由。
所述属性信息可以是固定的常数值,也可以是由服务接口信息计算得到的值。当系统构架设计人员进行整个系统的设计时,根据具体的业务需求来设计路由策略,然后,根据路由策略来设置属性信息的输入条目。服务消费者在请求服务时输入所述属性信息。
例如,图1描述了一种现有技术的用于对服务进行调用的系统100,其中示出了用于面向服务架构的应用的一般架构。
图1所示的系统100包括消息中介120和服务110。服务110中包含多个服务实现端点(例如,服务实现端点A、B、C等)。例如,所述服务可以是Web服务(Web Service)。
消息中介120包括语义中介引擎121和服务元数据储存库122。在服务元数据储存库122中存储用于调用服务的各个策略和服务实现端点(例如,A、B、C等)。
如图1所示,服务消费者(未示出)将携带有属性信息的SOAP请求消息发送到消息中介120中的语义中介引擎121。其中,所述属性信息例如可以是响应时间、信誉值等。
语义中介引擎121基于SOAP请求消息的消息头中的属性信息来查询服务元数据储存库122,以根据相应的策略检取适当的服务实现端点,并根据所检取的端点将请求消息动态路由到适当的服务实现端点110-A、110-B、110-C(在图1的情况下是110-A),从而实现对服务的调用。
在现有技术中,在Web服务中提供了基于文本(实际上是基于可扩展标记语言(XML)的)的方法来往返传递消息。例如,简单对象访问协议(SOAP)是一种标准的用于调用Web服务的方法。在SOAP规范中定义了SOAP消息的格式,其中,SOAP消息包括SOAP信封,SOAP消息头以及SOAP消息体。SOAP消息是基于XML的。
SOAP消息头可以提供有关消息本身的信息,例如,上面所描述的用于路由消息的属性信息。SOAP消息体用于提供用于应用程序的信息,即服务接口信息。中介引擎通常采用SOAP消息头中提供的属性信息做路由决策,因为这样可以减少解析SOAP消息体的时间。下面是一个SOAP消息的示例:
<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header>
<t1:score xmlns:t1="http://www.ibm.com/abc">120
</t1:score>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<m:getListOfModels xmlns:m="urn:MobilePhoneservice">
</m:getListOfModels>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
当客户端向服务器发送SOAP消息时,可以采用HTTP协议传输SOAP消息。在现有技术中,这称为SOAP与HTTP的绑定。为了发送一条SOAP/HTTP请求,需要在HTTP报头中提供一个SOAPAction字段。SOAPAction指定了SOAP请求的目的地。下面给出了一个SOAP与HTTP协议的绑定的消息的例子。
POST/Vendors HTTP/1.1
Host:www.mobilephoneservice.com
Content-Type:"text/xml";Charset="utf-8"
Content-Length:nnnn
SOAPACtion:"www.mobilephoneservice.com/Vendors/MobilePhoneservice#getListOfModels"
<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header>
<t1:score xmlns:t1="http://www.ibm.com/abc">120
</t1:score>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<m:getListOfModels xmlns:m="urn:MobilePhoneservice">
</m:getListOfModels>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
由此可以看到,SOAP消息是基于XML的,其中,生成SOAP消息的过程就是构建XML文档的过程,而发送SOAP消息的目的地址是设置在HTTP报头中。
在调用Web服务的客户端程序开发过程中,构建SOAP消息(XML文档)是一个比较繁琐的事情。幸运的是,已经存在很多成熟的工具,能根据Web服务描述语言(WSDL)生成用于调用相应Web服务的客户端代码。例如,应用程序WSDL2Java就可以根据WSDL生成Java代码,其中,客户端开发人员通过操作Java对象的方式设定调用服务的参数值,基于XML的SOAP消息就会被自动生成出来,这很大程度上方便了客户端开发人员的工作。同时,Web服务客户端Java代码还提供了设定SOAP消息的发送目的地址的功能,即提供了API来设定HTTP报头中的目的地址。
在现有技术中,在SOAP消息生成之后,可以采用两种方式来将属性信息插入SOAP消息头中。一种方式是开发一种Web服务处理程序,在该Web服务处理程序中,通过API来操作XML文档,从而在SOAP消息头中设置所需的属性信息;另一种做法是通过手工修改WSDL来添加所显示的SOAP消息头定义,从而通过修改后的WSDL来生成新的客户端Java代码,其中所述客户端Java代码包含对SOAP消息头进行操作的API,因而可以通过操作Java对象的方法来设定SOAP消息头的值。所述两种方式都需要给客户端的开发工作引入额外的工作量。另外,由于开发人员手工进行操作,因此还增加了出现错误的概率。
因此,需要一种新的技术方案来解决上述现有技术中的问题。
发明内容
为了解决上述问题,本发明设计了用于生成简单对象访问协议SOAP消息的技术方案。
根据本发明的第一方面,提供了一种用于生成简单对象访问协议SOAP消息的方法,其中,至少一个第一信息集合被预先存储起来,所述第一信息集合中的每个包含至少一条信息。所述方法包括如下步骤:生成第一SOAP消息,其中,所述第一SOAP消息包含第二信息集合,所述第二信息集合包含至少一条信息;检取与所述第二信息集合对应的第一信息集合;以及根据所检取的第一信息集合和所述第一SOAP消息来生成第二SOAP消息。
根据本发明的第一方面的一个实施例,所述方法还包括:将所述第二SOAP消息传递给消息中介以调用服务。
根据本发明的第一方面的另一个实施例,所述第一信息集合是属性信息,其中所述属性信息由所述消息中介使用以将所述第二SOAP消息动态路由给相应的服务实现端点。
根据本发明的第一方面的另一个实施例,所述第二信息集合是用于调用所述服务所需的服务接口信息。
根据本发明的第一方面的另一个实施例,第二信息集合被放置在所述第一SOAP消息的消息体中,所述方法包括:通过将第一信息集合插入到所述第一SOAP消息的消息头中,而生成第二SOAP消息。
根据本发明的第一方面的另一个实施例,所述至少一个第一信息集合中的每个都与一个唯一端点相关联,所述方法还包括:通过使用所述唯一端点来检取第一信息集合。
根据本发明的第一方面的另一个实施例,所述第一SOAP消息被封装在HTTP消息中,以及所述唯一端点被写入所述HTTP消息的消息头中作为目的地址信息。
根据本发明的第二方面,提供了一种SOAP消息生成系统,其包括:储存库,其预先存储有至少一个第一信息集合,所述第一信息集合中的每个包含至少一条信息;和消息处理器,其被配置成接收第一SOAP消息,其中,所述第一SOAP消息包含第二信息集合,所述第二信息集合包含至少一条信息,并且其中,所述消息处理器还被配置成从所述储存库中检取与第二信息集合对应的第一信息集合,并根据所检取的第一信息集合和所述第一SOAP消息来生成第二SOAP消息。
根据本发明的第二方面的一个实施例,所述消息处理器还被配置成将所述第二SOAP消息传递给用于调用服务的消息中介。
根据本发明的第二方面的另一个实施例,所述第一信息集合是属性信息,其中所述属性信息由所述消息中介使用以将所述第二SOAP消息动态路由给相应的服务实现端点。
根据本发明的第二方面的另一个实施例,所述第二信息集合是用于调用所述服务所需的服务接口信息。
根据本发明的第二方面的另一个实施例,第二信息集合被放置在所述第一SOAP消息的消息体中,所述消息处理器还被配置成:通过将第一信息集合插入到所述第一SOAP消息的消息头中,而生成第二SOAP消息。
根据本发明的第二方面的另一个实施例,所述至少一个第一信息集合中的每个都与一个唯一端点相关联,其中,所述消息处理器还被配置成通过使用所述唯一端点来检取第一信息集合。
根据本发明的第二方面的另一个实施例,所述第一SOAP消息被封装在HTTP消息中,以及所述唯一端点被写入所述HTTP消息的消息头中作为目的地址信息。
在根据本发明的方法和系统中,为了生成SOAP消息,首先将一部分信息存储在存储库中,然后,当调用Web服务时从存储库中检取所述部分信息以生成期望的SOAP消息。因此,通过本发明,可以在一定程度上提高用于生成SOAP消息的过程的自动化程度。本发明还能够减小输入信息时产生错误的机会。本发明还能够减少用户的额外工作量。
另外,在本发明中,通过唯一端点来标识需要插入到SOAP消息中的信息。因而,通过本发明,可以简化服务消费者在客户端的输入。
另外,在本发明中,所述唯一端点在HTTP消息头中被传递。因而,通过本发明,可以简化设计人员的开发工作。
另外,本发明提供了一种新的用于调用Web服务的架构。
附图说明
参照附图,根据下面的详细描述,可以更加清楚地理解本发明,其中:
图1示出了基于现有技术的用于对服务进行调用的系统;
图2示出了可以应用本发明的网络的示意图;
图3示出了根据本发明的另一个实施例所构建的用于订阅和调用服务的系统的示意图;
图4示出了根据本发明的另一个实施例所构建的用于订阅服务的方法的流程图;以及
图5示出了根据本发明的另一个实施例所构建的用于调用服务的方法的流程图。
具体实施方式
为了简明和清楚起见,附图中的单元不必按照比例来进行绘制,并且在不同附图中,相同参考标记表示相同的单元。此外,为了描述的简明以及不会在不必要的方面使得本发明模糊,而省略了关于公知步骤和单元的描述和细节。
本领域的普通技术人员应该明白,前面的一般描述和下面的详细描述是对发明进行举例和说明的,而不是为了对本发明进行限制的。
下面通过例子来说明本发明的技术方案。
下面参照图2-5,针对面向服务架构的商业应用来描述本发明的实施例。
现有技术中,如前面参照图1所述,在面向服务架构的商业应用中,为了调用Web服务,服务消费者需要向消息中介提供服务接口信息和用于对消息进行动态路由的属性信息。消息中介根据所述属性信息将所述SOAP消息动态路由到适当的服务实现端点。其中,在客户端将服务接口信息设置在SOAP消息的消息体中,而并且将属性信息插入到SOAP消息的消息头中。在插入属性信息时会给客户端的开发工作引入额外的工作量。另外,由于开发人员手工插入所述属性信息,因此还增加了出现错误的概率。
考虑到上面讨论的情况,本发明提供了一种新的用于生成消息的技术。根据本发明,可以预先将所述属性信息,存储在根据本发明的订阅管理系统中。当服务消费者请求调用服务时,该服务消费者仅需要输入服务接口信息。然后,由根据本发明的订阅管理系统自动为服务消费者检取所述属性信息,并将所述属性信息和所述服务接口信息合并成消息中介所需的消息。通过采用本发明可以简化服务消费者调用服务时的操作。本发明还可以减小其中产生差错的可能性。本发明还可以提高系统的自动化程度,从而给系统管理员带来方便。
图2示出了一种可以应用本发明的网络环境400。在图2所示的网络400中包括多个客户端201-1、201-2......201-n以及多个服务器202-1、202-2......202-n。
图3示出了根据本发明的一个实施例所构建的用于订阅和调用服务的系统的示意图。
图3所示的系统包括订阅管理系统330、消息中介320和服务310。本领域普通技术人员应当知道:所述订阅管理系统330、消息中介320和服务310可以位于同一个服务器中,或者可以分别位于不同的服务器中,或者所述订阅管理系统330、消息中介320和服务310中的两个位于同一个服务器中,而另一个位于不同的服务器中。例如,所述服务器中的两个或多个可以如图2所示的那样通过外部网络连接起来,或者还可以通过内部网络连接起来。在一个实施例中,所述连接可以通过有线连接、无线连接等来实现。
消息中介320包括语义中介引擎321和服务元数据储存库322。
订阅服务器330包括请求处理器331和订阅储存库332。
请求处理器331用于接收属性信息和/或服务接口信息。
在根据本发明的一个具体实施例中,所述属性信息是用于将所生成的消息动态路由到适当服务实现端点所需的信息,例如,所述属性信息可以包括消息中介320调用服务所需的响应时间、计算公式等等,所述计算公式诸如是XPath,其例如可以用于从消息体中提取用户的信誉值等。
可以通过各种方式来将属性信息预先保存在订阅储存库332中。例如,在一个实施例中,可以由用户将属性信息通过email通知给系统管理员,并由系统管理员将所述属性信息输入订阅管理系统330。例如,在另一个实施例中,可以由服务消费者通过订阅过程来输入属性信息。当然,本领域技术人员还能够想到许多其它方式来将属性信息预先保存在订阅储存库332中。
如前面所述,服务接口信息是服务提供者的服务的接口参数,例如,所述服务接口信息可以是用户的个人信息,诸如,用户的姓名、性别、身份证号码等。
请求处理器331将所接收的属性信息存储到订阅储存库332中。
请求处理器331可以从订阅储存库332中检取与所接收的服务接口信息对应的属性信息。
可以通过各种方式来检取所述属性信息。在根据本发明的一个优选实施例中,当订阅服务器330在订阅储存器332中存储属性信息时,订阅服务器330为每个属性信息分配一个唯一订阅端点,该唯一订阅端点包括订阅服务器330的地址以及属性信息在订阅储存器332中的ID。订阅服务器330将所述唯一订阅端点返回给服务消费者。这种方式的优点在于,当服务消费者在客户端调用服务时,他可以将所述唯一订阅端点作为目的地地址放置在HTTP消息头中,以检取订阅储存器332中的对应属性信息。对于本领域普通技术人员来说,对HTTP消息头进行修改是简单和方便的。另外,在客户端程序中可以仅由一个唯一订阅端点来代替所需的属性信息。因此,这种方式可以简化客户端程序的开发工作。另外,这种方式还减小了在客户端产生错误的可能性。当然,还有很多其它方式用于检取所述属性信息。例如,可以通过标识信息来检取所述属性信息,所述标识信息用于标识所述属性信息和所述服务接口信息之间的对应关系。
请求处理器331根据用户的服务接口信息和所检取的属性信息来生成所期望的消息。例如,请求处理器331可以直接将所检取的属性信息插入到来自客户端的SOAP消息的消息头中,其中,所述SOAP消息的消息体中包含所述服务接口信息。然后,请求处理器331将所述期望的消息发送给消息中介320,以调用服务。
订阅储存库332用于存储属性信息。例如,订阅储存库332可以为每一个属性信息分配一个存储条目,例如条目332-1、332-2......332-n。订阅储存库332可以是数据库、表单或者本领域技术人员所能够想到的用于存储信息的各种其它手段。
消息中介320和服务310接收来自订阅管理系统330的期望的消息并进行相应的服务调用。消息中介320和服务310在现有技术中是已知的,例如,它们可以根据如图1所述的方式进行操作。
下面,参照图3所示的系统,描述图4所示的用于订阅服务的方法以及图5所示的用于调用服务的方法。
图4是根据本发明的一个实施例的用于订阅服务的方法的流程图。
如图4所示,在步骤S401,服务消费者输入属性信息。例如,服务消费者可以将属性信息输入客户端,然后由客户端通过网络将所述属性信息传递给订阅管理系统330。
在步骤S402,订阅管理系统330接收到所述属性信息并将所述属性信息存储在订阅存储库332中。
如上面所述,在根据本发明的一个优选实施例中,订阅管理系统330可以为每个属性信息分配唯一订阅端点,并将所述属性信息与所述唯一订阅端点关联地存储在所述订阅储存库332中。
在步骤S403,订阅管理系统330通知服务消费者完成订阅。在一个实施例中,订阅管理系统330在通知服务消费者完成订阅的同时,还将所述唯一订阅端点通知给服务消费者。
根据本发明,可以在订阅管理系统330中集中存储和管理属性信息。例如,当消息中介320所期望的消息的格式发生改变时,系统管理人员不需要针对每个客户端或服务消费者重新进行设置,而只需要在订阅管理系统330中对请求处理器331进行更新。因此,本发明提供了一种集中管理的方式。本发明还简化了系统管理人员的操作。另外,对于用户来说,本发明还提供了一种自动更新配置的手段。
图5示出了用于调用服务的方法的流程图。如图5所示,在步骤S501,服务消费者向订阅管理系统330传送用于调用服务的服务接口信息。其中,服务接口信息被封装在SOAP消息中。例如,服务接口信息被封装在SOAP消息体中。可以采用SOAP与HTTP绑定的方式来传递所述服务接口信息,其中,SOAP消息被封装在HTTP消息中,以及在HTTP消息头中作为目的地地址写入所述唯一订阅端点。服务消费者将所述HTTP消息发送给订阅管理系统330。
在步骤S502,订阅管理系统330在接收到服务接口信息之后,从订阅存储库332中检取与该服务接口信息相对应的属性信息。如前面所述,可以通过各种方式来检取所述属性信息。例如,在一个优选实施例中,根据所述唯一订阅端点来检取所述属性信息。
在步骤S503,订阅管理系统330根据所述服务接口信息与所检取的属性信息来生成期望的SOAP消息。例如,请求处理器331可以直接将所检取的属性信息插入到来自客户端的SOAP消息的消息头中,其中,所述SOAP消息的消息体中包含所述服务接口信息。当然,请求处理器331还可以根据需要对所述SOAP消息的格式进行调整,例如可以调整所述SOAP消息头的格式以符合消息中介320的要求。
可选地,在步骤S504,订阅管理系统330将所述期望的服务调用消息传递给消息中介320以进行服务调用。对于本领域普通技术人员来说,如何通过消息中介320进行服务调用是公知的,因此,在这里不再详细描述。
尽管上面针对Web服务,以SOAP消息为例来描述了本发明的实施例,但是本领域普通技术人员应当理解,本发明还可以应用于其它情况,以及所述消息不限于SOAP消息。
下面参照图3,以申请信用卡的过程为例来说明本发明的原理。应当注意,所述说明仅仅是示例性的而并非对本发明的任何限制。
在下面,服务消费者通过根据本发明的系统来调用信用卡申请服务,具体过程如下。
服务消费者开始订阅信用卡申请服务。
例如,在一个实施例中,服务消费者通过订阅管理系统的客户界面输入属性信息。所述属性信息可以由消息中介320使用以将服务调用请求SOAP消息动态路由到适当的服务实现端点,例如A、B、C等。
在设计阶段,可以由设计人员设计适当的路由策略,并且根据所述路由策略来确定服务消费者所需输入的属性信息的项目。在所述信用卡申请服务中,例如,消息中介320根据期望的服务响应时间和用户信誉值来动态路由服务调用请求SOAP消息。因此,在订阅阶段,服务消费者需要输入服务响应时间值和指向服务调用请求SOAP消息中的信誉值字段的XPath公式作为属性信息。
输入的属性信息被提交给订阅管理系统330。订阅管理系统330可以为每个提交的属性信息分配一个唯一订阅端点,其中,所述唯一订阅端点包括订阅管理系统330的地址和所述属性信息在订阅储存库332中的订阅ID。一个唯一订阅端点的例子例如可以是:
http://localhost:9080/subscription?id=wxie12sdfjeu21934sk0499。
订阅管理系统330将所述属性信息与所述唯一订阅端点相关联地存储在订阅储存库332中。
订阅管理系统330通知服务消费者已经完成订阅。订阅管理系统330可以将所述唯一订阅端点通知给服务消费者。
可以进行多次订阅,以便在在订阅储存库332中存储不同的属性信息。
当完成订阅过程之后,服务消费者可以在自己的程序中开始使用申请信用卡的服务,例如服务消息者是银行客户界面的编写人员,他需要提供客户界面,在银行客户输入个人信息、点击“开始申请信用卡”的按钮后,开始申请信用卡服务的调用。
服务消费者通过申请信用卡服务的WSDL生成服务客户端代码,通过客户端代码输入服务接口信息,生成服务调用请求SOAP消息。所述服务接口信息的项目是由服务提供者在建立服务时所设定的。例如,所述服务接口信息的项目可以包括用户的姓名、性别、身份证号码和信誉值等。
其中,在所述服务调用请求SOAP消息的消息体中包含所述接口信息。
接着,服务消费者通过服务客户端代码的API设定目的地址,这样所述服务调用请求SOAP消息被封装在HTTP消息中。在所述HTTP消息的消息头中写入唯一订阅端点作为目的地地址信息。
服务消费者将所生成的HTTP消息发送到订阅管理系统330。订阅管理系统330直接从HTTP消息中提取唯一订阅端点,并根据该唯一订阅端点,从订阅储存库332中检取对应的属性信息。在现有技术中,对HTTP消息进行操作是简单且方便的。因此,在本发明中采用唯一订阅端点来检取属性信息可以简化对订阅管理系统的开发工作。
订阅管理系统330将所检取的属性信息插入到所述服务调用请求SOAP消息的消息头中。订阅管理系统330所述服务调用请求SOAP消息发送到消息中介320。
消息中介320接收所述服务调用请求SOAP消息。消息中介320从所述服务调用请求SOAP消息的消息头中提取属性信息,并根据其将所述服务调用请求SOAP消息动态路由到适当的服务实现端点,例如,服务实现端点310-A、310-B或310-C。
可以通过各种方式来实现本发明的方法及系统。例如,可以通过软件、硬件、固件以及其任意组合来实现本发明的方法及系统。上面描述方法步骤的顺序仅是为了说明性的目的而采用的,除非明确的说明,否则,本发明的方法的步骤不限于上面具体描述的顺序。另外,在某些实施例中,本发明还可以体现为在记录介质上所记录的程序,其包括用于实现根据本发明的方法的机器可读指令。因此,本发明还可以包括存储有用于执行根据本发明的方法的程序的记录介质。
尽管上面已经通过例子对本发明的特定实施例进行了详细描述,但是,本领域的普通技术人员应当理解,上述例子仅是说明性的而并非是对本发明的限制。本领域的普通技术人员应当明白,在不脱离本发明的精神和范围的情况下,可以对上述实施例做出修改。本发明的范围由所附的权利要求来限定。
Claims (14)
1.一种用于生成简单对象访问协议SOAP消息的方法(500),其中,至少一个第一信息集合被预先存储起来,所述第一信息集合中的每个包含至少一条信息,所述方法包括如下步骤:
-生成第一SOAP消息(S501),其中,所述第一SOAP消息包含第二信息集合,所述第二信息集合包含至少一条信息;
-检取与所述第二信息集合对应的第一信息集合(S502);以及
-根据所检取的第一信息集合和所述第一SOAP消息来生成第二SOAP消息(S503)。
2.根据权利要求1所述的方法,所述方法还包括:将所述第二SOAP消息传递给消息中介以调用服务(S504)。
3.根据权利要求2所述的方法,其中,所述第一信息集合是属性信息,其中所述属性信息由所述消息中介使用以将所述第二SOAP消息动态路由给相应的服务实现端点。
4.根据权利要求2所述的方法,其中,所述第二信息集合是用于调用所述服务所需的服务接口信息。
5.根据权利要求1-4中的任一项所述的方法,其中,第二信息集合被放置在所述第一SOAP消息的消息体中,所述方法包括:通过将第一信息集合插入到所述第一SOAP消息的消息头中,而生成第二SOAP消息。
6.根据权利要求1-4中的任一项所述的方法,其中,所述至少一个第一信息集合中的每个都与一个唯一端点相关联,所述方法还包括:通过使用所述唯一端点来检取第一信息集合。
7.根据权利要求6所述的方法,其中,所述第一SOAP消息被封装在HTTP消息中,以及所述唯一端点被写入所述HTTP消息的消息头中作为目的地址信息。
8.一种简单对象访问协议SOAP消息生成系统(330),其包括:
-储存库(332),其预先存储有至少一个第一信息集合,所述第一信息集合中的每个包含至少一条信息;和
-消息处理器(331),其被配置成接收第一SOAP消息,其中,所述第一SOAP消息包含第二信息集合,所述第二信息集合包含至少一条信息,并且其中,所述消息处理器(331)还被配置成从所述储存库(332)中检取与第二信息集合对应的第一信息集合,并根据所检取的第一信息集合和所述第一SOAP消息来生成第二SOAP消息。
9.根据权利要求8所述的系统,所述消息处理器(331)还被配置成将所述第二SOAP消息传递给用于调用服务(310)的消息中介(320)。
10.根据权利要求9所述的系统,其中,所述第一信息集合是属性信息,其中所述属性信息由所述消息中介(320)使用以将所述第二SOAP消息动态路由给相应的服务实现端点(310-A、B、C)。
11.根据权利要求9所述的系统,其中,所述第二信息集合是用于调用所述服务(310)所需的服务接口信息。
12.根据权利要求8-11中的任一项所述的系统,其中,第二信息集合被放置在所述第一SOAP消息的消息体中,所述消息处理器(331)还被配置成:通过将第一信息集合插入到所述第一SOAP消息的消息头中,而生成第二SOAP消息。。
13.根据权利要求8-10中的任一项所述的消息生成系统,其中,所述至少一个第一信息集合中的每个都与一个唯一端点相关联,其中,所述消息处理器(331)还被配置成通过使用所述唯一端点来检取第一信息集合。
14.根据权利要求13所述的方法,其中,所述第一SOAP消息被封装在HTTP消息中,以及所述唯一端点被写入所述HTTP消息的消息头中作为目的地址信息。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200710196411.2A CN101447977A (zh) | 2007-11-27 | 2007-11-27 | 用于生成消息的方法及系统 |
US12/277,995 US8321500B2 (en) | 2007-11-27 | 2008-11-25 | Method and system for generating messages |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200710196411.2A CN101447977A (zh) | 2007-11-27 | 2007-11-27 | 用于生成消息的方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101447977A true CN101447977A (zh) | 2009-06-03 |
Family
ID=40670693
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200710196411.2A Pending CN101447977A (zh) | 2007-11-27 | 2007-11-27 | 用于生成消息的方法及系统 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8321500B2 (zh) |
CN (1) | CN101447977A (zh) |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69935339T2 (de) * | 1999-12-02 | 2007-11-15 | Sony Deutschland Gmbh | Protokoll für sofortige Nachrichtenübermittlung |
US7159039B1 (en) * | 2000-02-28 | 2007-01-02 | Verizon Laboratories Inc. | Systems and methods for providing in-band and out-band message processing |
US6981029B1 (en) * | 2001-07-17 | 2005-12-27 | Cisco Technology, Inc. | System and method for processing a request for information in a network |
SE0300368D0 (sv) | 2003-02-11 | 2003-02-11 | Ericsson Telefon Ab L M | System for internet privacy |
US7702724B1 (en) * | 2004-05-27 | 2010-04-20 | Oracle America, Inc. | Web services message broker architecture |
US8032609B2 (en) * | 2006-06-09 | 2011-10-04 | Research In Motion Limited | Dynamic endpoint aggregator for web services |
-
2007
- 2007-11-27 CN CN200710196411.2A patent/CN101447977A/zh active Pending
-
2008
- 2008-11-25 US US12/277,995 patent/US8321500B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20090138585A1 (en) | 2009-05-28 |
US8321500B2 (en) | 2012-11-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Michlmayr et al. | Towards recovering the broken SOA triangle: a software engineering perspective | |
US8499028B2 (en) | Dynamic extensible lightweight access to web services for pervasive devices | |
US7903656B2 (en) | Method and system for message routing based on privacy policies | |
JP4473128B2 (ja) | ウェブ・ポータルの関連するポートレットが、同期されたコンテンツ表示のために協働することを可能にする方法および装置 | |
US8977673B2 (en) | Information on availability of services provided by publish-subscribe service | |
US8543646B2 (en) | Subscriber device and subscription management that supports real-time communication | |
JP4456485B2 (ja) | ポータル・サーバにおいてポートレットの集合を管理する方法および装置 | |
JP4218759B2 (ja) | ポータル・サーバからセッション情報を中継する方法および装置 | |
US7752634B1 (en) | Non-intrusive personalization of web services | |
US8775671B2 (en) | Managing information exchange between business entities | |
US20050050228A1 (en) | Method and apparatus for the use of dynamic XML message formats with web services | |
US20090125612A1 (en) | Configuration domains for the configuration of web services and consumer proxies | |
US20130304665A1 (en) | Managing Information Exchange Between Business Entities | |
JP2005539324A (ja) | ウェブサービスとしてのプロセスフロー及びコレオグラフィーコントローラの提示 | |
KR20080108484A (ko) | 단일의 요청으로 다수의 프레즌스 발행들을 업데이트하기 위한 시스템 및 그 방법을 수행하는 명령어를 포함하는 컴퓨터 판독가능 매체, 단일의 요청으로 다수의 발행 유형들을 구독하기 위한 시스템 | |
KR20080108485A (ko) | 멤버 리스트를 갖는 모음들로 발행되는 프레즌스 정보로의 액세스를 수정하는 방법 및 상기 방법을 수행하게 위한 명령어들을 포함하는 컴퓨터 판독가능 매체 | |
KR20080106557A (ko) | 프레즌스 서버로부터 발행된 프레즌스 정보를 만료시키는 시스템 및 그 방법을 수행하는 명령어들을 포함하는 컴퓨터판독가능 매체, 프레즌스 서버에 프레즌스 정보를 발행하는 시스템 | |
JP2007149099A (ja) | 電気通信クライアントサービス要求をサポートするためのサービスブローカー統合層 | |
JP5104591B2 (ja) | バスシステム | |
US11411812B2 (en) | Dynamic service creation for microservice-based integration service | |
US7516195B2 (en) | Method of handling a web service call | |
US20120158564A1 (en) | System and method for account management based on open application programming interface using restful web services | |
JP2004506272A (ja) | 未加工金融データを処理して、妥当性検査した商品案内情報を加入者に対して生成するシステム | |
JP4215710B2 (ja) | クライアントへのデータ送信および更新データの実行制御方法 | |
CN101447977A (zh) | 用于生成消息的方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20090603 |