WebService积累
1、缺点,无法传输复杂对象:如无法序列化key/value结构的类型参数以及相关一维集合接口(Hashtable等打上标签[Serializable]即可序列化,不过继承的IDictionary并不可以序列化)。



.png)
进行 XML Web 服务调用时发生的过程与进行常规方法调用时发生的过程类似。主要的差别在于,不是调用位于客户端应用程序中的方法,而是通过指定的传输(如 HTTP)生成请求消息。由于 XML Web 服务方法可能位于另一台计算机上,因此 XML Web 服务处理请求所需的信息必须通过网络传递给承载 XML Web 服务的服务器。XML Web 服务处理此信息并通过网络将结果发送回客户端应用程序。
下图显示客户端和 XML Web 服务之间的通信过程。
XML Web 服务生存期
下面描述调用 XML Web 服务时发生的事件序列:
客户端创建 XML Web 服务代理类的一个新实例。该对象驻留在客户端所在的同一台计算机上。
客户端调用代理类上的方法。
客户端计算机上的基础结构将 XML Web 服务方法的参数序列化为 SOAP 消息,并通过网络将其发送给 XML Web 服务。
基础结构接收 SOAP 消息并反序列化该 XML。它创建实现 XML Web 服务的类的实例并调用 XML Web 服务方法,同时将反序列化的 XML 作为参数传入。
XML Web 服务方法执行其代码,最终会设置返回值和任何输出参数(ref及out)。
Web 服务器上的基础结构将返回值和输出参数序列化为 SOAP 消息,并通过网络将其发送回客户端。
客户端计算机上的 XML Web 服务基础结构接收该 SOAP 消息,将 XML 反序列化为返回值和任意输出参数,并将其传递给代理类的实例。
客户端接收返回值和任何输出参数。
生成 XML Web 服务
创建 XML Web 服务类似于创建任何提供对其应用程序逻辑的编程访问的组件。要创建一个 XML Web 服务,您需要一些功能来构成这一要公开的服务,需要一个服务描述来定义如何使用该服务,并需要一个基础结构来支持请求的接收和处理以及响应的发送。值得庆幸的是,已经为您提供了所需基础结构的很大一部分。
生成 XML Web 服务客户端
由于 XML Web 服务可以使用 URL、HTTP 和 XML 进行访问,这就意味着在任何平台上以任何语言运行的程序都可以访问 XML Web 服务。由于 XML Web 服务的分散式性质,使客户端和 XML Web 服务能够作为自治单元运行,因此,使用 XML Web 服务的方法数不胜数。例如,对 XML Web 服务的调用可以包含在 Web 应用程序、中间件组件甚至其他 XML Web 服务中。无论 XML Web 服务客户端采用何种形式,调用 XML Web 服务所需的全部条件就是,按照 XML Web 服务已发布的服务描述发送格式正确的请求消息。根据 XML Web 服务的性质,它可能会发送响应消息作为回应。然后,发出请求的一方必须能够从该消息中提取必要的信息。
WebService积累的更多相关文章
- 【知识积累】服务器端获取客户端的IP地址(当客户端调用由Axis开发的WebService)
一.前言 由于项目中一个小的模块需要获取客户端的IP地址以保证安全调用webservice接口,项目中客户端使用C#编写,服务器端使用Java编写,服务器端与客户端采用Axis开发的WebServic ...
- 从xfire谈WebService接口化编程
前段时间有博友在看我的博文<WebService入门案例>后,发邮件问我关于WebService 接口在java中的开发,以及在实际生产环境中的应用.想想自己入职也有一段时间了,似乎也该总 ...
- CXF发布webService服务以及客户端调用
这篇随笔内容是CXF发布webService服务以及客户端调用的方法 CXF是什么? 开发工作之前需要下载CXF和安装 下载地址:http://cxf.apache.org 安装过程: <1&g ...
- 【转载】分享下多年积累的对JAVA程序员成长之路的总结
注:该文是从百度贴吧转载过来,之前看到觉得写得还不错,对Java开发学习者来说很有意义的,可以看看. 我也搞了几年JAVA了,由于一向懒惰,没有成为大牛,只是一普通程序猿,不爱玩社交网站,不爱玩微博, ...
- 浅析WCF与WebService、WPF与Silverlight 区别
由于在<Windows服务调用Quartz.net 实现消息调度>中,涉及到ASP.NET Web Service //WebServiceSoapClient client = new ...
- [强烈推荐]ORACLE PL/SQL编程详解之七:程序包的创建与应用(聪明在于学习,天才在于积累!)
原文:[强烈推荐]ORACLE PL/SQL编程详解之七:程序包的创建与应用(聪明在于学习,天才在于积累!) [强烈推荐]ORACLE PL/SQL编程详解之七: 程序包的创建与应用(聪明在于学习,天 ...
- 几种流行Webservice框架性能对比(转载)
1摘要 开发webservice应用程序中离不开框架的支持,当open-open网站列举的就有很多种,这对于开发者如何选择带来一定的疑惑.性能Webservice的关键要素,不同的框架性能上存在较大差 ...
- 分享下多年积累的对JAVA程序员成长之路的总结
http://blog.csdn.net/zhongzelin/article/details/8643269我也搞了几年JAVA了,由于一向懒惰,没有成为大牛,只是一普通程序猿,不爱玩社交网站,不爱 ...
- webService
什么是webService WebService,顾名思义就是基于Web的服务.它使用Web(HTTP)方式,接收和响应外部系统的某种请求.从而实现远程调用. 1:从WebService的工作模式上 ...
随机推荐
- C语言创建并使用dll
利用C语言创建 利用 C++使用: 参见前面 利用C语言创建并使用lib 如法炮制创建 showDll Dll代码 __declspec(dllexport) double myDivision(i ...
- [转]windows下安装Object-C开发环境
本文转自:http://hi.baidu.com/jeremylai/item/f40b9116cb3c5d582b3e22f5 在Windows下搭建Objective C开发环境,需要到GNUst ...
- 关于增强for循环
1 增强for循环增强for循环是for的一种新用法!用来循环遍历数组和集合. 1.1 增强for的语法for(元素类型 e : 数组或集合对象) {}例如:int[] arr = {1,2,3};f ...
- 简单的monkey使用
先推荐大家看一篇http://www.cnblogs.com/wfh1988/archive/2010/11/16/1878224.html,里面有一些命令的使用 简单在说就是象猴子一样乱点,为了测试 ...
- 纯CSS实现三列布局(两边固定,中间自适应)
看了一些网上的案例,感觉较繁杂,于是,自己整理了一篇来说明这个东西. 也是给我自己复习吧,以前有人问道,我还没答上来呢.== 看代码: html: <div class="top&qu ...
- git subtree
语法:git subtree split -P <被裁减的目录> -b <分支> git subtree split -P SDK/CustomUI(需要裁减的) -b Cus ...
- asp.net 中excel 导入数据库
protected void Button1_Click(object sender, EventArgs e) { SqlConnection conn = new SqlConnection(Sy ...
- C#中的集合
[集合不同于数组,是一组可变类型的.可变数量的元素的组合,这些元素可能共享某些特征,需要以某种操作方式一起进行操作.一般来讲,为了便于操作这些元素的类型是相同的] [集合与数组的区别:数组是连续的.同 ...
- VS2013开发Windows服务项目
这篇随笔里,我将介绍如何用VS2013开发Windows服务项目,实现的功能是定时发送电子邮件. 开发环境:VS2013,SQL Server2008,采用C#语言开发 步骤一:创建Windows服务 ...
- ###学习《C++ Primer》- 3
点击查看Evernote原文. #@author: gr #@date: 2014-10-04 #@email: forgerui@gmail.com Part 3: STL泛型算法(第10章) 一. ...