当前位置: 首页 > news >正文

Java与.NET间进行Web Service交互的选择

谈到.NET和Java之间的Web服务交互性时,通常的选择只有SOAP over HTTP,而根据.NET 3.0的相关规范,这仅有的一个选择也将会受到更多限制,.NET中提供的BasicHTTP将是唯一能直接与Java Web Servcies进行交互的方式。

最近,有两个新的选择出现了——WebSphere MQ(WMQ)和ActiveMQ传送器,它们可以用于创建Java和.NET之间的交互式Web Services。而且.NET的可靠消息系统已经得到了扩展,因此对于MSMQ来说,WMQ和Active MQ都可以作为.NET Web Services的可靠传递者。

WMQ解决方案基于IBM AlphaWorks中IBM WMQ for Windows Communication Foundation的定制通道(Custom Channel),它的最新版本已于3月14日发布。这一产品允许将WMQ作为定制通道用于Windows Communication Foundation(WCF)框架(已随.NET Framework 3提供)中,它与微软的内建通道工作方式相同。

消息都是经过格式化的,以满足WMQ v6.0的SOAP over JMS实现,让应用程序即可以和运行于WCF之上的服务进行通信,也能和运行在WebSphere SOAP over JMS服务基础之上的服务进行通信,包括WebSphere应用服务器和CICS。

目前的实现是以概念验证为主,是为了帮助更好地理解对这一领域产品的需求(也就是说它并不适合在产品环境中使用),如何产品化这一实现的计划还没有最终确定。

定制通道的构建是通过Windows Communication Foundation的可扩展框架提供的,这一可扩展框架允许集成和使用那些与微软提供的内建传送器类似的传送器。服务型应用只要通过配置就可以使用新的定制通道,只要客户端应用程序是通过像微软的Service Metadata utility Tool(Svcutil.exe)这样的标准工具生成的,它们就可以正常运行。服务的元数据描述可以被正在运行的服务直接发布(可以通过一个附加的HTTP端点来暴露)或者使用WSDL(Web Service Description Language)。

目前的实现版本支持核心的消息功能,它有如下限制:

对于一个服务实例,只有一个客户端可以使用双向通道的模式;

双向通道是对WebSphere MQ v6所提供的SOAP/JMS实现的一种扩展,它只能用于WCF服务与其客户端之间的通信;

仅支持核心的消息功能(如不支持像事务化和安全等高级特性)

运行在现存WMQ v6的SOAP/JMS环境中的SOAP/JMS服务仅能进行单向操作;

运行在CICS或WebSphere应用服务器的SOAP/JMS环境内的SOAP/JMS服务,不允许在一个单一合约中混合使用单向操作和请求/回复操作,而必须为每个通道形态分别创建独立的合约。

Active MQ解决方案基于Axis提供的JMS(由Java编写而成)和“插件式协议”特性(由.NET编写而成),因此,它并不是以真正的.NET定制通道方式包装的,这就需要更多的定制编程。

这两种解决方案都没有彻底的产品化,但它们却提供了一个很好实验基础,以选择合适的Web Services交互式传送器。

转载于:https://www.cnblogs.com/webnet/archive/2009/06/12/1502381.html

相关文章:

  • include_once()
  • 六问唐骏:不出国能不能成功?
  • [设计制作]我的《Flex第一步QQ群Logo设计方案》
  • Sql Server 跨库查询
  • 让IE的OPTION支持click事件
  • Winform中让回车键完成TAB键的功能
  • Ajax的AutoComplete的使用
  • (zz)子曾经曰过:先有司,赦小过,举贤才
  • [转]电脑高手的140个电脑技巧
  • javascript类型判断
  • SQL语句性能测试
  • C#中的预编译指令介绍
  • jQuery学习整理 (4) 事件与事件对象 (重点)
  • 导出sql脚本时的几个问题
  • 手机游戏量产引擎研发手记-导读
  • IE9 : DOM Exception: INVALID_CHARACTER_ERR (5)
  • css布局,左右固定中间自适应实现
  •  D - 粉碎叛乱F - 其他起义
  • eclipse(luna)创建web工程
  • JavaScript的使用你知道几种?(上)
  • React系列之 Redux 架构模式
  • 大整数乘法-表格法
  • 基于遗传算法的优化问题求解
  • 看图轻松理解数据结构与算法系列(基于数组的栈)
  • 猫头鹰的深夜翻译:Java 2D Graphics, 简单的仿射变换
  • 模型微调
  • 前端存储 - localStorage
  • 前嗅ForeSpider采集配置界面介绍
  • 人脸识别最新开发经验demo
  • 线性表及其算法(java实现)
  • 小程序、APP Store 需要的 SSL 证书是个什么东西?
  • 一个SAP顾问在美国的这些年
  • 一起来学SpringBoot | 第三篇:SpringBoot日志配置
  • Python 之网络式编程
  • 不要一棍子打翻所有黑盒模型,其实可以让它们发挥作用 ...
  • 分布式关系型数据库服务 DRDS 支持显示的 Prepare 及逻辑库锁功能等多项能力 ...
  • # 手柄编程_北通阿修罗3动手评:一款兼具功能、操控性的电竞手柄
  • # 睡眠3秒_床上这样睡觉的人,睡眠质量多半不好
  • (2)STL算法之元素计数
  • (编程语言界的丐帮 C#).NET MD5 HASH 哈希 加密 与JAVA 互通
  • (二开)Flink 修改源码拓展 SQL 语法
  • (附源码)springboot 校园学生兼职系统 毕业设计 742122
  • (接口自动化)Python3操作MySQL数据库
  • (六)激光线扫描-三维重建
  • (一)spring cloud微服务分布式云架构 - Spring Cloud简介
  • (转)IIS6 ASP 0251超过响应缓冲区限制错误的解决方法
  • **CI中自动类加载的用法总结
  • .NET 8 编写 LiteDB vs SQLite 数据库 CRUD 接口性能测试(准备篇)
  • .Net CF下精确的计时器
  • .NET Core6.0 MVC+layui+SqlSugar 简单增删改查
  • .net mvc部分视图
  • .net操作Excel出错解决
  • @FeignClient 调用另一个服务的test环境,实际上却调用了另一个环境testone的接口,这其中牵扯到k8s容器外容器内的问题,注册到eureka上的是容器外的旧版本...
  • @FeignClient注解,fallback和fallbackFactory
  • [ Linux ] git工具的基本使用(仓库的构建,提交)