ITPub博客

首页 > 数据库 > Oracle > Oracle Service Bus(OSB) Example

Oracle Service Bus(OSB) Example

Oracle 作者:luckyfriends 时间:2017-08-24 21:36:37 0 删除 编辑
http://blog.csdn.net/zhaohuabing/article/details/50499264
https://wenku.baidu.com/view/acdcf55003d8ce2f006623a2.html
https://wenku.baidu.com/view/e03efc57a1c7aa00b52acbdf.html

Oracle Service Bus(OSB) Example

本文将使用JDeveloper12C创建一个简单的OSB程序。该程序在OSB中提供了一个天气查询的服务。通过该示例,可以帮助理解OSB中的Proxy Service,Business Service, Pipeline等基本概念,并学习如何创建OSB应用。 
本文涉及到的工具和系统: 
Oracle VirtualBox 5.0.12 
oracle Linux Server 6.7 
Oracle JDeveloper12C 
Oracle SOA Suite12C 
Oracle 网站有供开发人员学习使用的VM下载,VM中已经包含了安装好的SOA Suite和JDeveloper,可用VirtualBox打开直接使用。下载连接: Pre-built Virtual Machine for SOA Suite 12.1.3

基本概念

  • Proxy Service 
    Proxy services are Oracle Service Bus definitions of intermediary Web services that Oracle Service Bus implements locally on Oracle WebLogic Server.

  • Business Service 
    Business services describe the enterprise services that exchange messages with business processes and which we want to virtualize using the OSB.

Proxy Service是在OSB中创建的一个web serverice,Business Service则代表了集成到OSB中的业务逻辑,Business Service会连接到一个外部的业务服务。客户端调用Proxy Service提供的服务接口,Prxoy则会通过Business Service调用到外部系统的服务接口中。 
这里写图片描述 
在本例中,在OSB中提供了一个查询天气的Proxy Service,而真正提供查询业务逻辑的是Internet上的一个天气查询的Web Service.

创建一个新的Service Bus Project

打开JDeveloper 12C,选择菜单Application-New,在弹出的对话框中选择Service Bus Application with Service Bus Project. 
这里写图片描述 
Application Name:WeatherServiceBusApplication 
Project Name:WeatherServiceBusProject

下载Web Service的WSDL

www.webservicex.ne这个网站提供了一些公共的web Service,这里我们就采用该网站的一个天气查询的web Service来创建我们的示例程序。该web Service的WSDL可以从该URL下载 http://www.webservicex.net/globalweather.asmx?WSDL。 
首先在项目根目录文件夹下创建一个Wsdls目录。项目所有的WSDL文件都将放到该目录中。然后将下载下来的WSDL文件放到该目录中。 
在JDeveloper中查看下载的WSDL文件,可以看到有两个Operation: GetCitiesByCountry和GetWeather。 
globalweather.wsdl

创建Proxy Service

创建一个Proxy目录。 
双击打开根目录下的WeatherServiceBusProject,从右边的Components窗口中选择HTTP Service组件,拖动到Design面板的Prxoy Services泳道中,如下图。 
这里写图片描述

JDeveloper会弹出一个对话框,要求输入创建的Proxy Service的属性,Service Name取为WeahterProxyService,Location选择Proxy目录,其余用默认值。 
这里写图片描述

第二步选择我们刚才下载的WSDL文件,Port选择GlobalWeatherSoap 
这里写图片描述 
第三步采用缺省值,完成Proxy Service创建 
这里写图片描述 
可以看到,Proxy Service生成了,同时生成了一个PipeLine。创建一个Pipeline目录,通过Refactory把WeahterProxyServicePipeline.pipeline移动到Pipeline目录中。

这里写图片描述

创建Business Service

OSB通过Business Service连接到外部服务。现在我们创建一个Business Service连连接到www.webservicex.ne提供的天气查询服务中。 
首先在根目录下创建一个存放Business Service的Business目录。 
从右边的Components窗口中选择HTTP Service组件,拖动到Design面板的External Services泳道中。

这里写图片描述

JDeveloper会弹出一个对话框,要求输入创建的Business Service的属性。Service Name取为WeatherBusinessService,Location选择Business目录,其余取缺省值。 
这里写图片描述

这里也选择globalweather.wsdl。globalweather.wsdl,port选择GlobalWeatherSoap。 
这里写图片描述

第三步采用缺省值,可以看到这里已经从WSDL中自动提取出了Endpoint URI。 
这里写图片描述 
用鼠标拖动WeatherProxyServicePipeline右端的箭头,连接到WeatherBusinessService上。 
这里写图片描述 
打开WeahterProxyServicePipeline.pipeline的Design面板,可以看到Pipeline中增加了一个Route节点,连接到了WeatherBusinessService。如果Proxy Service 和 Business Service的消息格式不一致,还需要在Pipeline中进行消息格式转换。由于本例中的Proxy Service和Business Service采用了同一个WSDL,因此通过Route连接起来即可,不需进行消息转换。 
这里写图片描述

测试

通过JDeveloper部署到到SOA Suite服务器中,然后通过servicebus的管理界面进行测试,在浏览器中打开 http://localhost:7001/servicebus/,选择WeatherServiceBusProject-Proxy-WeatherProxyService,调用该Web Service。 
查询北京的天气 
这里写图片描述 
查询结果 
这里写图片描述

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/14710393/viewspace-2144122/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
个人博客网 www.leosunny 长期从事数据库相关工作,涉及oracle,mysql, sqlsever,db2 , OGG, SSIS以及非关系数据库和大数据平台等。 希望一直分享一些个人案例和知识,和广大技术宅们共同进步。

注册时间:2009-06-06

  • 博文量
    467
  • 访问量
    3148028