异构系统间Web Service通讯框架小结(补完企划)

本文不讨论WS性能问题,也不讨论使用非框架方式比如TCP伪造HTTP协议等方式通讯,仅讨论在常见的系统间使用HTTP+SOAP通讯框架的方法以及雷区。

本文大多数内容来自于某次在两个月内迁移完两个异构ESB产品后的思考。

  • Java

Java下框架比较多,常见问题是一种获取(HTTP GET) WSDL文件然后框架动态编译,再POST服务。在不计较性能的情况下没有什么问题。如果获取到的WSDL中服务URL不可访问,则框架就会产生错误。如果不能修改源码改为直接POST方式,一种解决方案是将手工下载的WSDL和XSD文件(若有)放到一个目录,并且在properties文件中指定wsdlURL为file://协议并指向WSDL文件位置。

  1. Apache AXIS 1.4

org.apache.axis.component.encoding.UTF8Encoder::writeEncoded方法针对大于0x7f的char都加码,如果一些C写的后端服务不能正确解析NC编码,收到内容为例如#xxxx;形式的时候,可以考虑将上述方法修改。

  1. Apache AXIS 2
  2. Apache CXF
  3. JAXB
  • C/C++ Linux
  1. gSOAP

对于C/C++来说,遇到最多的坑是随机的CoreDump/Segment Fault,一般情况是分配的内存没有清空导致的。gSOAP的使用要点:使用soap_malloc以后,一定要对获得的内存清空,使用memset或者bzero。

还有如果不想在编译的时候加入DEBUG选项打印日志,或者说想自定义保存日志,则可以考虑使用gSOAP的logging插件。

请参考:https://www.cs.fsu.edu/~engelen/soapdoc2.html#tth_sEc19.38

2. Apache AXIS 2

  • C/C++ Windows
  1. gSOAP
  2. WWS API

使用WWS API对于Windows下的WS框架使用又多了一套备选方案。使用WWS API必须安装Windows SDK相应版本。在Windows 2003 Server SP2默认安装完Visual Studio以后虽然可以编写使用WWS API的代码并且编译成功,但是缺乏WebServices.DLL程序无法运行。

请参考:https://msdn.microsoft.com/zh-cn/library/ee617176(v=vs.85).aspx

  • .NET Framework

相信大家对.Net Framework又恨又爱。

  1. WCF 使用配置实现日志行为:https://msdn.microsoft.com/en-us/library/ms730064(v=vs.110).aspx
  2. Web Reference 扩展IEndpointBehavior,IClientMessageInspector实现日志行为。
时间: 2024-12-29 01:18:45

异构系统间Web Service通讯框架小结(补完企划)的相关文章

ESB (三) 整合跨平台、异构系统的Web Service服务

1.mule ESB整合系统四种模式 A.简单服务模式 属于几个web Service之间的同步调用,请求响应处理模式. B.桥接模式 C.校验器模式 校验器模式通过定义一个校验过滤器过滤服务请求,并同步返回ACK(ACKnowledge)或NACK(Not Acknowledge)结果.通过校验的服务请求被异步分发给处理方. D.服务代理模式 在整合时我们用到的是D模式,中间设置一个代理来中转请求处理,对外发布的地址任意很灵活,当提供者的Web service发生改变的时候就不需要在更改服务使

简述Web Service通讯技术的搭建流程

Web Service 基本概念 Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术. 是通过SOAP在 Web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI进行注册. ---------------------------------------------------------分割线-----直接演示好了------ 一.打开MyEclipse,新

基于C#语言开发的IM系统--界面赏析(通讯框架为networkcomms2.3.1)【即将开源】

c#开源IM系统 名称:微风IM 名称来源: 微 小的意思 是说系统比较简单 风 是由于UI使用的风绪老师多年前在网上开源的高仿真qq2008中的代码,在此表示特别感谢 数据库使用的是mssql 2005. c# 2.0开发 通信框架 networkcomms2.3.1 主要功能:聊天 支持离线消息 代码正在整理中,即将开源 先把运行的效果图发出来,看看有没有朋友感兴趣 服务器端:(还是老样子,简朴的界面) 客户端:(登录界面) 主界面(可以显示在线,不在线的好友): 聊天界面: 支持发送文本和

基于C#语言开发的IM系统--数据库结构图(通讯框架为networkcomms2.3.1)【即将开源】

数据库采用的 mssql 2005 有四个表 OfflineMessage 离线消息   如果发送消息时好友不在线,则消息存储在此表中 等待好友上线后,服务器从此表中获取消息,并发送给好友,并从表中删除已发送出去的离线消息 RcUsers表   用户表  存储用户的信息  保护登录ID 密码 性别等 UserGroup 机构用户组  存放用户属于销售组还是开发组 RoleGroup 权限用户组   存放用户属于经理还是职员  (未使用在微分IM中 )

Web Service概念梳理

计算机技术难理解的很多,Web Service 对我来说就是一个很难理解的概念:为了弄清它到底是什么,我花费了两周的时间,总算有了一些收获,参考了不少网上的资料,但有些概念说法不一.我以w3c和 一些早期介绍Web Service的书为准.如有错误,欢迎指正! -------------------------------------------------------------- 提前预警!概念太多,你需要仔细阅读,或要阅读两遍.   SOA                        

Web Service学习笔记

Web Service概述 Web Service的定义 W3C组织对其的定义例如以下,它是一个软件系统,为了支持跨网络的机器间相互操作交互而设计.Web Service服务通常被定义为一组模块化的API,它们可以通过网络进行调用,来运行远程系统的请求服务. 这里我们从一个程序猿的视角来观察web service.在传统的程序编码中,存在这各种的函数方法调用.通常,我们知道一个程序模块M中的方法A,向其发出调用请求,并传入A方法须要的參数P,方法A运行完毕后,返回处理结果R.这样的函数或方法调用

Web Service学习笔记(webservice、soap、wsdl、jws详细分析) (转)

Web Service概述 Web Service的定义 W3C组织对其的定义如下,它是一个软件系统,为了支持跨网络的机器间相互操作交互而设计.Web Service服务通常被定义为一组模块化的API,它们可以通过网络进行调用,来执行远程系统的请求服务. 这里我们从一个程序员的视角来观察web service.在传统的程序编码中,存在这各种的函数方法调用.通常,我们知道一个程序模块M中的方法A,向其发出调用请求,并传入A方法需要的参数P,方法A执行完毕后,返回处理结果R.这种函数或方法调用通常发

Restful Web Service初识

Restful Web Service初识 一.Web Services Web Services 是一种基于组件的软件平台,是面向服务的Internet 应用.Web Services 框架的核心技术包括SOAP ,WSDL 和UDDI ,它们都是以标准的XML 文档的形式表示. SOAP (“Simple Object Access Protocol”的缩写)是Web Services 的通信协议.SOAP是一种简单的.轻量级的基于XML 的机制,用于在网络应用程序之间进行结构化数据交换.S

初识Web Service与第一个Demo实战

Web Service并不是什么神秘的东西,好多时候我们一听服务就感觉好遥远,当时我也是这样的,一听说机房的服务器就感觉很高大上.后来就发现不就是一台电脑吗.我们可以简单理解为它是一个可以远程调用的类,或者说是组件. 把你本地的功能开放出去共别人调用.不能光听我的大白话,下面来看看具体的内部是如何实现的呢? WebService的主要目标是跨平台的可互操作性.完全基于XML(可扩展标记语言),XSD(XMLSchema)等独立于平台.独立于于软件供应商的标准,是创建可互操作的.分布式应用软件的新