你好! 我有一个场景,我需要创建一个OSB服务(这只是一个传递服务),它将基于一个包含2个端口的WSDL,每个端口指向不同的URL。在这种情况下,如何创建代理和业务服务。正如我所看到的,当我基于端口创建代理服务时,一次只能选择一个端口,因此我需要2个OSB服务/代理。如果我选择绑定,那么端口信息不会从wsdl进入生成的有效代理wsdl,并且它只有一个端口,所以即使在这种情况下,我也必须生成2个wsdl&这些2个端口是#39;我对吗?或者我错过了什么?
关于同一场景的另一个问题 我们将所有wsdl存储在MDS中,因此需要它们是抽象的(至少不是服务/端口信息)。因此,在这种情况下,如果我将wsdl设为抽象,它将丢失端口信息,那么我该怎么办? 2个业务服务,每个服务指向不同的URL?所以即使在这种情况下,代理服务呢?公开一个端口的代理服务如何迎合2种不同的服务?
无论如何,我可以通过单一的OSB服务实现这一目标吗?我更喜欢在MDS中存储抽象wsdl的第二种方法。
此致 RaviKiran
答案 0 :(得分:2)
创建代理服务时,您可以完全控制代理服务如何调用业务服务。在您的情况下,像操作分支这样简单的东西就足够了,但实际上,OSB允许您控制呼叫多个服务。您不需要为代理服务提供多个端口,因为您可以从内部进行所有呼叫和控制。
关于第二个问题,如果您在OSB配置中使用代理或业务服务的抽象或具体WSDL,那将无关紧要。 您可以定义要与连接的终端。在Business Services中,OSB将使用您的WSDL并调用您告诉它的任何端点。对于代理服务,运行的服务器OSB将指定它将要使用的端口地址,在您为其定义的的端点URI 之外
我会阅读Oracle关于OSB的概念和体系结构的文档。它涵盖了很多关于实现代理和业务服务的背景信息,并可能指出您想要回答的更具体的问题。特别是section 2.2 covers the Proxy and business service abstraction概念很好:
<强> Oracle® Fusion Middleware Concepts and Architecture for Oracle Service Bus 11g Release 1 (11.1.1.7) 强>