文档详情

使用 WebSphere ESB 实现协议转换和数据转换.doc

发布:2017-11-07约1.7万字共25页下载文档
文本预览下载声明
使用 WebSphere ESB 实现协议转换和数据转换 李兆全目前就职于软通动力信息技术有限公司,工作重点是 SOA 方面的相关主题,担任 IBM WebSphere 产品的架构、开发工作。专长 于Web Service、ESB、MB 、MQ 技术。擅长于应用层的数据交换技术。 简介:?本文主要介绍如何通过 WebSphere ESB 实现协议转换和数据转换功能:通过 Websphere ESB 实现 SOAP/HTTP 和 JMS 之间的协议转换;实现 JMS Object Message 与 Business Object 之间、以及 Business Object 与 Java Object 的数据转换;实现客户端与 ESB 之间 request/response 的交互方式,客户端向 ESB 发送带有数据对象的请求,ESB 请求 Web 服务后,将结果以数据对象的形式返回给客户端。 引言 已有许多文章介绍了如何将 xml message 传入 ESB 进行协议转换和数据转换,而在实际的应用环境中,面向对象的设计会显得更实用些。本文主要介绍如何基于 JMS 和 WebSphere ESB 构建企业服务总线,实现 SOAP/HTTP 和 JMS 之间的协议转换;实现 JMS Object Message,Business Object 及 Java Object 之间的数据转换;以及如何实现通过 ESB 来实现 request/response 的交互方式。 示例场景 图 1:示例场景 图 1 示例展示了一个典型的端到端的 SOA 场景: (1)Service Provider 以 SOAP/HTTP 方式发布 Web Service,该 Web Service 输入和返回都是 Java Object; (2)客户端以 JMS 方式去调用这个 Web Service,需要经过 WehSphere ESB 进行协议转换,WehSphere ESB 将客户端的 JMS 协议转换为服务端需要的 SOAP/HTTP 协议; (3)客户端将 JMS Object Message 发送给 WehSphere ESB,WehSphere ESB 通过 SOAP/HTTP 方式请求 Web Service。在服务请求的过程中,WehSphere ESB 将客户端传入的 JMS Object Message 转换为 Business Object,又将 Business Object 转换为服务端需要的 Java Object;在服务返回的过程中,WehSphere ESB 将服务端返回的 Java Object 转换为 Business Object,又将 Business Object 转换为客户端能识别的 JMS Object Message; (4)客户端向 WebSphere ESB 发送请求和接收返回数据分别在两个队列上进行,客户端只需关注如何将请求的数据转化为 JMS Object Message 并放入 WehSphere ESB 的接收队列,以及如何从 WehSphere ESB 的发送队列里取出 JMS Object Message 并解析所需的结果即可。 本示例是基于 WID6.0.2 和 ESB6.0.2 实现的,下面来详细介绍如何实现这一示例场景。 创建 Service provider 建立工程 BookOrderService,来担任 Service Provider。该 service 提供了一个接口方法 order(),其输入和输出分别是 java object:OrderRequest 和 OrderResponse,将此方法发布成 Web Service,如下: 1.建立一个 Dynamic Web Project:BookOrderService 2.添加对象类、接口和实现类 对象类: Address.java 包含属性: private String street; private String city; OrderRequest.java 包含属性: private String name; private int count; private Address address; OrderResponse.java 包含属性: private double totalPrice; 接口类: BookOrderIf.java public interface BookOrderIf { public OrderResponse order(OrderRequest req); } 实现类: BookOrderImpl.java 实现了一个简单的业务逻辑。 public
显示全部
相似文档