-
关于SOAP的不理解10
昨天开始接受了xfire框架,按上面所说的配置把程序跑起来了,也通过测试了,但是有一点让我很摸不着头脑,webservice,SOAP,还有很多这一类的名词,好像分不清楚了,还有就是,远程调用对象是不是一定得知道对方的类型,如果我在JAVA中写了一个实体类,里面保存了自己的信息,然后通过C#去调用,我将如何保证数据能不出问题或者说类型能一致,还有就是数据的安全性(传输安全与线程安全等),然后是这种构架有什么缺点和优点呢,希望了解的朋友可以指点一下,因为是刚接触SAO,英文的解释理解不是很清楚,所以请大家帮忙理解一下,谢谢2008年10月28日 22:05
1个答案 按时间排序 按投票排序
-
我摘抄一篇文章给楼主看,也许楼主的疑惑可以一步一步解开。
这篇估计也是一个一个的转的~~不好写哪的出处。
http://www.host01.com/article/jsp/00040006/064319182550613.htm引用
Web Service 带来了一大堆的新名词,所以显得比较炫。但是看透其表面,就会发现其实也并不是那么虚无不可捉摸。下面的讨论均以Java为参考。
1 访问一个Web Service实际上可以看作调用一个函数,唯一不同的就是这个函数是远程的,这么一说,它和RMI就没有什么本质的区别了。
既然是一个函数,当然要有函数的声明了,完成这个工作的就是WSDL,它详细的定义函数的原型,包括函数名、入口参数、出口参数,这就是WSDL中opertion完成的工作。
既然是一个远程的函数,还要涉及与远程地址的一个绑定,这是WSDL中service的任务。
Axis是一个可以通过WSDL生成相应访问代码的开发包,JBuilder中将它集成了进去,通过Wizard的方式简化了原本需要在命令行中手工完成的操作。
2 既然是远程访问,就一定要有一个访问协议,Web Service的访问协议就是SOAP,SOAP建立在XML之上,不同的就是对XML原本没有限制的格式加上了一些限制,需要有envelope,在envelope中,还要分header和body。
如果利用SOAP开发Web Service的程序,那就需要根据WSDL的定义来自行组装SOAP包,这显然要比利用WSDL直接面向Web Service开发要复杂一些。
JAXM是一个利用SOAP进行通信的开发包,它简化了SOAP消息的打包过程。
3 SOAP是建立在XML之上的,那么显然XML的开发包同样适合于SOAP。
在这个层次上开发Web Service,除了要完成上一层的工作外,还要自行按照SOAP的格式组装SOAP消息,这显然又增加了工作量。
XML的开发工具就比较多了,从最简单的SAX和DOM到DOM4J、JDOM,还有不少XML到对象绑定的工具,如JAXB、Castor等等。
其实,不考虑Web Service,完全用XML做通信协议的情况也并不少见。知晓XML-RPC的存在,就不难理解了XML做通信的含义了。
截至到这里所讨论的内容,Sun提供了JWSDP(Java Web Service Developer Pack),其中包含从XML解析到WSDL生成的全套解决方案。
4 上面讨论的所有东西实际上都还停留在传递消息的内容上,并未涉及通信的过程。不要一看到Web Service的Web就想当然认为它只能通过HTTP来传输。前面的讨论可以看出,所有的消息内容与传输并无直接关系,所以,无论是以HTTP传输,还 是SMTP或是自定义的协议都没有问题。
在这个层次上开发Web Service,前面的种种险阻之外,还要完成对XML的手工解析工作。
这里还是以最常见的HTTP方式来讨论。
HTTP的开发就将Server和Client区别对待,Server的实现通常的选择是Servlet,让Web Server替我们完成HTTP协议的解析可以省去我们很多的作。Client的实现可以选择JDK自带的Http Client,Apache的Jakarta项目下的Commons子项目也提供了一个HttpClient。
5 无论是HTTP还是SMTP,抑或是自定义协议,归根结底都是应用级的协议,底层的实现都是由Socket完成。到了这个层次基本就是原始时代了,什么都没有,一切都要手工完成。
在这个层次上开发Web Service,所有前面的困难都要一一经历,此外,还有协议的开发等待着不幸至此的人们。
到了这里,也不需要其它的工具了,JDK自带的Socket可以保打天下。
6 还想往下吗?再往下就是操作系统的实现了,Java的平台无关就失去了意义,也超出了我目前所了解的范围,到此打住吧!
前面所提及应该算是Web Service的一个基本知识结构,这里并没有讨论UDDI等等的内容,一来我对它并不了解,二来那应该属于应用,不应该算Web Service实现中。
虽然我们可能不会从最下层开发Web Service,但遇到底层的问题的情况却在所难免。
我就曾经在开发一个Web Service应用的时候,被人抓住HTTP头中的SOAP Action大小写与某个所谓的规范不同,我查了半天HTTP规范和SOAP规范,知道了HTTP是区分大小,而SOAP Action就是应该这么写,据理力争,指出所谓规范的错误。
经过前面的讨论,我们可以看出,Web Service并没有什么神秘可言,所有的东西都是建立在已有东西的基础之上。技术的发展不会是无中生有,只会是一个更好的解决方案而已,在追新求变之前,一个比较牢固的基础才是最重要。2008年10月28日 23:22
相关推荐
1. **理解SOAP消息结构**:首先,你需要了解SOAP消息的基本结构,包括Envelope、Header和Body元素。附件通常在Header或Body中作为附加元素出现。 2. **选择传输机制**:根据需求选择MTOM或SwA。如果你需要高效传输...
它与soap-ui各有侧重点,一个侧重自动化生成,一个侧重测试与调试,都是开发和维护SOAP服务不可或缺的工具。如果你在日常工作中处理大量SOAP接口,那么掌握“soap-build”的使用方法无疑会极大地提升你的工作效率。
安装包"SoapToolkit30.EXE"包含了SOAP Toolkit 3.0的所有组件和资源,使得开发者无需深入理解SOAP或XML的底层细节就能快速构建Web服务。以下是对SOAP Toolkit 3.0核心知识点的详细解释: 1. **SOAP消息结构**:SOAP...
了解SOAP协议不仅有助于理解Web服务的工作原理,还能帮助开发者在需要构建跨平台、跨语言的应用时选择合适的通信方式。深入学习SOAP协议,包括其消息结构、错误处理机制以及与WSDL和UDDI的协同工作,对于提升Web服务...
通过理解这个SOAP示例,开发者可以更好地掌握如何构建和解析SOAP消息,从而在实现Web服务或者集成现有服务时游刃有余。此外,了解SOAP对于理解其他基于XML的通信协议,如RESTful API,也有一定的帮助,因为它们共享...
首先,我们需要理解SOAP的基本结构。一个基本的SOAP消息由三部分组成:Header、Body和Envelope。Header中通常包含身份验证或路由信息,而Body则包含实际的业务数据。Envelope是SOAP消息的顶级元素,定义了整个消息的...
在Web服务开发中,理解SOAP请求和响应的格式以及如何利用工具进行测试和调试至关重要。通过使用这款工具,您不仅可以确保接口的正确性,还可以提高开发效率,避免在生产环境中出现未预见的问题。对于那些需要频繁与...
而`laravel-soap`是Laravel的一个扩展包,专门用于处理SOAP(Simple Object Access Protocol)协议,这是一...通过理解SOAP协议的基本概念和`laravel-soap`的使用方式,开发者可以更好地实现跨系统通信和集成外部服务。
这个源码包是为了学习和理解SOAP通信机制而提供的,特别是对于使用Qt开发跨平台应用程序的开发者来说,QtSoap提供了一个方便的工具。 首先,让我们深入了解一下SOAP。SOAP是一种轻量级的消息传递协议,它依赖于HTTP...
关于版本下载,Apache SOAP有多个版本,每个版本可能有不同的功能特性和兼容性。选择合适的版本应考虑项目的具体需求,例如Java版本兼容性、与其他库的互操作性等。通常,你可以访问Apache官方仓库或者第三方软件...
这些工具会根据你的接口自动生成处理SOAP消息的代码,使得MFC应用程序能够理解和响应SOAP请求。 接着,是SOAP客户端的构建。在MFC中,你可以使用CInternetSession和CFtpConnection等类来建立与服务端的连接。gSoap...
本篇文章将详细探讨如何从SOAP消息中提取Body部分,这对于理解和处理SOAP通信至关重要。 1. SOAP消息结构: - Envelope:这是SOAP消息的根元素,定义了整个消息的结构,并告诉接收者这是一个SOAP消息。 - Header...
Java调用SOAP(Simple Object Access Protocol)接口是Web服务交互中的常见操作,SOAP是一种基于XML的协议,...在处理天气信息这样的案例中,理解SOAP协议和相关API的使用,将使你能够轻松地与各种Web服务进行交互。
### 对SOAP的理解 #### 1. 引言 SOAP(Simple Object Access Protocol)v1.2 是一种基于 XML 的协议,旨在提供一个简单且轻量级的机制来在分布式环境中交换结构化的信息。该协议不定义任何具体的应用逻辑或者特定...
### SOAP协议详解 #### 一、SOAP协议简介 SOAP(Simple Object Access Protocol)是一种轻量级的协议,用于实现分布式环境中...通过理解其基本结构和工作原理,开发人员能够更好地利用SOAP来构建可靠且高效的服务。
**SOAP协议规范详解** SOAP(Simple Object Access Protocol),即简单对象访问协议,是一种基于XML(Extensible Markup Language)的协议,用于在Web服务中...理解并熟练掌握SOAP协议对于开发和维护Web服务至关重要。
在这个压缩包文件中,我们可以找到关于SOAP的相关代码和资料,特别是与ASIS2相关的资料,这可能涉及到SOAP消息处理和解析的实践应用。 首先,让我们深入理解SOAP的基本结构。一个SOAP消息通常由三部分组成:Header...
1. **安装SOAP库**:由于CodeIgniter默认并不包含SOAP类,我们需要首先安装PHP的SOAP扩展。在大多数服务器环境中,这通常是预装的。如果尚未安装,可以通过修改php.ini文件或使用Composer来添加。 2. **创建SOAP...
理解SOAP涉及的知识点有: - **XML**:SOAP基于XML,因此了解XML的基础语法和结构是必要的,包括元素、属性、命名空间等。 - **SOAP消息结构**:包括Header和Body两部分,Header通常用于传递元数据,Body则包含实际...
在Qt环境下,开发人员经常需要与各种网络服务进行交互,比如Web API或远程...通过理解并熟练运用qtsoap,你可以构建起与远程服务高效沟通的Qt应用,无论是数据同步、API调用还是其他基于SOAP的服务,都能得心应手。