一:为什么需要WebService

大家或多或少都可能听说WebService,也可能用到过。比如我们在开发项目的过程中,需要调用别的公司提供的数据,这里我们就需要使用到webserver。当前的应用程序开发逐步的呈现了两种迥然不同的倾向:1:基于浏览器的瘦客户端应用程序,2:基于浏览器的富客户端应用程序(RIA)。当然后一种技术相对来说更加的时髦一些(如现在很流行的Html5技术),这里主要讲前者。

基于浏览器的瘦客户端应用程序并不是 因为瘦客户能够提供更好的用户界面,而是因为它能够避免花在桌面应用程序发布上的高成本。发布桌面应用程序成本很高,

一半是因为应用程序安装和配置的问 题,另一半是因为客户和服务器之间通信的问题。传统的Windows富客户应用程序使用DCOM来与服务器进行通信和调用远程对象。

配置好DCOM使其在 一个大型的网络中正常工作将是一个极富挑战性的工作,同时也是许多IT工程师的噩梦。事实上,许多IT工程师宁愿忍受浏览器所带来的功能限制,

也不愿在局 域网上去运行一个DCOM。关于客户端与服务器的通信问题,一个完美的解决方法是使用HTTP协议来通信。这是因为任何运行Web浏览器的机器都在使用 HTTP协议。

同时,当前许多防火墙也配置为只允许HTTP连接。许多商用程序还面临另一个问题,那就是与其他程序的互操作性。如果所有的应用程序都是使用COM或.NET语言写的,

并且都运行在Windows平台上,那就天下太平了。然而,事实上大多数商业数据仍然在大型主机上以非关系文件(VSAM) 的形式存放,并由COBOL语言编写的大型机程序访问。

而且,目前还有很多商用程序继续在使用C++、Java、Visual Basic和其他各种各样 的语言编写。现在,除了最简单的程序之外,所有的应用程序都需要与运行在其他异构平台上

的应用程序集成并进行数据交换。这样的任务通常都是由特殊的方法, 如文件传输和分析,消息队列,还有仅适用于某些情况的的API,

如IBM的高级程序到程序交流(APPC)等来完成的。

在以前,没有一个应用程序通信标 准,是独立于平台、组建模型和编程语言的。只有通过Web Service,客户端和服务器才能够自由的用HTTP进行通信,

不论两个程序的平台和编程语言是什么。

二:WebService的含义

综上所述,WebService是一种跨编程语言和跨操作系统的远程调用技术。或者说是一种以HTTP协议为基础,通过xml进行客户端和服务器端通讯的框架或者组件。

天气预报系统、淘宝网、校内网等会把自己的服务以web service的形式暴露出来,外界可以通过Web进行调用。我们调用这个web service的应用程序就是客户端,提供webservice服务的就是服务器端。

值得注意的是,我们编写的webservice必须符合它的标准。

三:WebService的实现原理

XML+XSD,SOAP和WSDL就是构成WebService平台的三大技术。

1:XML+XSD

WebService采用HTTP协议传输数据,采用XML格式封装数据(即XML中说明调用远程服务对象的哪个方法,传递的参数是什么,

以及服务对象的 返回结果是什么)。
XML是WebService平台中表示数据的格式。除了易于建立和易于分析外,XML主要的优点在于它既是平台无关的,

又是厂商无关 的。无关性是比技术优越性更重要的:软件厂商是不会选择一个由竞争对手所发明的技术的。

XML解决了数据表示的问题,但它没有定义一套标准的数据类型,更没有说怎么去扩展这套数据类型。

例如,整形数到底代表什么?16位,32位,64位?

这 些细节对实现互操作性很重要。XML Schema(XSD)就是专门解决这个问题的一套标准。它定义了一套标准的数据类型,

并给出了一种语言来扩展这套数据类型。WebService平台就 是用XSD来作为其数据类型系统的。

当你用某种语言(如VB.NET或C#)来构造一个Web service时,为了符合WebService标准,所 有你使用的数据类型都

必须被转换为XSD类型。你用的工具可能已经自动帮你完成了这个转换,但你很可能会根据你的需要修改一下转换过程。

2:SOAP

WebService通过HTTP发送请求和接收结果。发送的请求内容和结果内容都采用xml格式封装,并增加了一些特定的HTTP消息头,

这些特定的HTTP消息头和xml内容格式就是SOAP协议。

SOAP协议=HTTP 协议+XML数据格式

SOAP协议定义了SOAP消息的格式,SOAP协议是基于HTTP协议的,SOAP也是基于XML和XSD的,XML是SOAP的数据编码方式。

打个比喻:HTTP就是普通公路,XML就是中间的绿色隔离带和两边的防护栏,SOAP就是普通公路经过加隔离带和防护栏改造过的高速公路。

3:wsdl

好比我们去商店买东西,首先要知道商店里有什么东西可买,然后再来购买,商家的做法就是张贴广告海报。 WebService也一样,

WebService客户端要调用一个WebService服务,首先要有知道这个服务的地址在哪,以及这个服务里有什么方 法可以调用,

所以,WebService务器端首先要通过一个WSDL文件来说明自己家里有啥服务可以对外调用,

服务是什么(服务中有哪些方法,方法接受 的参数是什么,返回值是什么),服务的网络地址用哪个url地址表示,服务通过什么方式来调用。

WSDL(Web Services Description Language)就是这样一个基于XML的语言,用于描述Web Service及其函数、参数和返回值。

它是WebService客户端和服务器端都能理解的标准格式。因为是基于XML的,所以WSDL既是机器可阅读的,又是人可阅读的,

这将是一个很大的好处。一些最新的开发工具既能根据你的 Web service生成WSDL文档,又能导入WSDL文档,生成调用相应WebService的

代理类代码。

WSDL 文件保存在Web服务器上,通过一个url地址就可以访问到它。客户端要调用一个WebService服务之前,

要知道该服务的WSDL文件的地址。

WebService服务提供商可以通过两种方式来暴露它的WSDL文件地址:

1.注册到UDDI服务器,以便被人查找;

2.直接告诉给客户端调用者。

四:WebService开发

Webservice开发分为:服务端开发和客户端开发。

1:服务端开发

把公司内部系统的业务方法发布成WebService服务,供远程合作单位和个人调用。

(借助一些WebService框架可以很轻松地把自己的业务对象发布成WebService服务,

Java方面的典型WebService框架包括:axis,xfire,cxf 等,java ee服务器通常也支持发布WebService服务,例如JBoss。)

2:客户端开发

调用别人发布的WebService服务,大多数人从事的开发都属于这个方面,例如,调用天气预报WebService服务。

(使用厂 商的WSDL2Java之类的工具生成静态调用的代理类代码;

使用厂商提供的客户端编程API类;使用SUN公司早期标准的jax-rpc开发包;使用 SUN公司最新标准的jax-ws开发包。当然SUN已被ORACLE收购)

3:WebService原理

1:编写好WebService服务端后,需要向UUID服务器注册供别人使用。

2:客户端去UUID服务器上查询自己需要的WebService。

3:客户端向WebService提供者询问确切的调用方法

4:WebService服务器向客户端发送一个Wsdl文件。该WSDL文件描述了它所能提供的所有方法接口。

5:客户端了解之后,将WSDL中描述的接口方法封装成HTTP请求,发送给WebService服务器。

6:WebService服务器端响应客户端发送的HTTP请求,将处理结果以同样的SOAP报文形式通过HTTP协议发送给客户端。

参考资料:

http://www.cnblogs.com/xdp-gacl/p/4048937.html

http://blog.csdn.net/ostrichmyself/article/details/6393627

webserver技术总结之一:webserver概念相关推荐

  1. 嵌入式技术(单片机原理)基本概念梳理(保研/考研面试)

    嵌入式技术基础(单片机原理),常见概念及知识点整理(保研面试用). 目录 第1章 概论 第2章 MCS-51系列单片机的资源配置 第3章 MCS-51系列单片机的指令系统及汇编语言程序设计 第4章 单 ...

  2. 网络穿透与音视频技术(2)——NAT的概念及工作模式(下)

    (接上文<网络穿透与音视频技术(1)--NAT的概念及工作模式(上)>) 3.四种NAT映射实现方式 上文中我们已经提到三种NAT映射模式,它们是静态映射(Static NAT).动态映射 ...

  3. 人脸支付技术原理和基本概念介绍

    https://www.toutiao.com/a6697925553745297923/ 2019-06-02 21:31:57 从2015年,马云在德国展示人脸支付技术以来,经过几年发展,人脸支付 ...

  4. ASP+COM技术在嵌入式Webserver中的应用

    1 .COM组件介绍 COM(Component Object Model),即组件对象模型,它是微软公司开发的一种新的软 件开发技术,Microsoft 的许多技术,如 ActiveX.Direct ...

  5. 技术动态 | 大规模中文概念图谱CN-Probase正式发布

    本文转载自公众号知识工场.     历时多年的研发,复旦大学知识工场实验室正式推出大规模中文概念图谱--CN-Probase,用于帮助机器更好的理解人类语言.概念图谱中包含实体(比如"刘德华 ...

  6. SR技术概述与基本概念(SR-BESR-TE)

    目录 一.SR背景 二.SR概述: SR具有如下特点: SR优势: 三.一些名词的基本概念 基本概念:Segment 基本概念:Segment ID--简称SID,用于标识segment 一般就是MP ...

  7. 【流媒体】视频技术的一些基础概念

    原文地址:https://mp.weixin.qq.com/s?__biz=MzAwMDU1MTE1OQ==&mid=2653547042&idx=1&sn=26d872854 ...

  8. 云计算技术的产生、概念、原理、应用和前景

    一.云计算思想的产生     传统模式下,企业建立一套IT系统不仅仅需要购买硬件等基础设施,还有买软件的许可证,需要 专门的人员维护.当企业的规模扩大时还要继续升级各种软硬件设施以满足需要.对于企业来 ...

  9. 云计算技术与应用 -基础概念与分布式计算

    云计算技术与应用 0. 课程总览 1. 云计算的定义 1.1 计算模式的演进 1.1.1 集中计算 1.1.2 效用计算 1.1.3 客户机/服务器模式 1.1.4 集群计算 1.1.5 服务计算 1 ...

  10. 实时音视频面视必备:快速掌握11个视频技术相关的基础概念

    本文作者Ahab,原题"视频相关的理论知识与基础概念",收录时有修订和改动. 1.引言 随着移动互联网的普及,实时音视频技术已经在越来越多的场景下发挥重要作用,已经不再局限于IM中 ...

最新文章

  1. BN和Dropout在训练和测试时有哪些差别?
  2. 这么说线程生命周期是不是简单了点?
  3. 使用setfacl实现子目录继承父目录权 限
  4. UNIX再学习 -- 死磕内存管理
  5. 电商大战折射商业伦理缺失形势探讨
  6. c语言编译器怎样退出全屏,BOOX 应用软件怎样退出全屏模式?
  7. Java与Http协议
  8. 手把手教你用express搭建个人博客(二)
  9. jQuery在asp.net中实现图片自动滚动
  10. 原型以及原型链的学习随笔
  11. PDF Converter OCR for Mac(pdf格式转换器及ocr识别工具)
  12. SpringBoot下载项目中文件
  13. plist文件的读写
  14. 离散数学与计算机的发展,计算机学科发展中离散数学的作用与运用
  15. 搭建MySQL可视化Web界面服务器
  16. ubuntu 实现文本方式和图形方式的转换_word格式怎么转成pdf-pdf转换软件_pdf格式转word工具在线免费转换...
  17. 阅读札记:创新与思维范式
  18. mysql5.5忘记密码重置方法_mysql5.5忘记密码重置方法
  19. 基于XC7K325T光纤传输的PCIE光纤卡、2路光纤的资料
  20. qq公众号消息是发送到自己服务器,qq公众号屏蔽后还发消息 qq消息被屏蔽了怎么办...

热门文章

  1. android游戏源码
  2. Raspberry Pi (树莓派) 安装 vim 编辑器
  3. Eclipse超级好看的主题,极力推荐
  4. web SQL注入漏洞
  5. 【软件资源】MATLAB 7.0 安装教程
  6. STC单片机编程软件安装教程
  7. 全国计算机二级java刷题软件_你知道的计算机二级刷题软件
  8. python3帮助文档-中文
  9. 蓝牙耳机哪款适合玩枪战类手游?低延迟听声辨位五款蓝牙耳机推荐
  10. Linux中vi/vim编辑器的常用命令