Web Service入门
【IT168 技术文档】
一、什么是Web Service?
Web Service是构建互联网分布式系统的基本部件。Web Services 正成为企业应用集成(Enterprise Application Integration)的有效平台。你可以使用互联网中提供的Web Service构建应用程序,而不必考虑这些Web Service是怎样运行的。
二、Web Service 三个基本技术
Web Service通过标准通信协议,在互联网上发布有用的程序模块(以服务的方式),目前大部分是用SOAP来作通信协议。
Web Service提供一份详细的接口说明书,来帮助用户构建应用程序,这个接口说明书叫作WSDL(Web Service Description Language)。
通常已发布的Web Service要注册到管理服务器,这样便于使用者查询和使用。这个是通过UDDI(Universal Discovery Description and Integration)来完成的。
三、为什么要用Web Service?
Web Servcie最主要的优点是,使用不同程序和在不同系统平台上开发出来的程序,都可以相互通信。现在很多人在问:“不是CORBA和DCE也有那些优点吗?跟它们有什么不同呢?”。第一个不同点是,SOAP作为Web Service的基本通信协议,比它们简单地多,所以投入和使用的代价也是小的。现在不仅有很多大公司发布的Web Service,也有个人发布的。另一个不同点是,Web Service使用标准的互联网协议-XML、HTTP和TCP/IP。很多公司已经从实践当中对这些协议积累了丰富的经验,所以相比CORBA和DCE要交的学费要少地多。
如果把现有的应用程序以Web Service部件形式发布,可以帮助其他的公司(人)构件功能强大的应用程序。举个例子,你要开发一个采购系统,可以自动地获得供应商的报价,而且可以实时追踪送货过程。如果供应商已经发布了报价和送货这两个Web Service,那么你就可以直接使用它们,而不必自己开发这些功能了。
在未来,会出现更有趣的Web Service(现在做不到的),来帮助我们构建应用程序。
四、SOAP
SOAP是Web Service的基本通信协议。因为SOAP与DCOM和CORBA在概念上有相同之处,所以很多人在问:“SOAP是怎样激活对象的?”或“SOAP在使用什么命名服务(Naming Service)?”。或许在执行SOAP的过程当中会用到这些,但这些并不在SOAP规范要考虑的范畴之内。SOAP只是定义SOAP消息的XML格式(XML Format),如果你用一对SOAP标记(SOAP Elements)把XML文档括起来,那么这个就是一个SOAP消息,这不是很简单吗?
SOAP规范还定义了怎样用XML来描述程序数据(Program Data),怎样执行RPC(Remote Procedure Call)。这些可选的规范是为了构建RPC-style的应用程序(客户端SOAP消息包含函数名和在函数中用到的参数,而服务器端SOAP消息包含执行函数之后的结果)。大多数SOAP解决方案都支持RPC-style应用程序,因为很多程序员已对DCOM或CORBA熟悉。SOAP还支持Document-style应用程序(SOAP消息只包含XML文本信息)。Document-style应用程序有很好的灵活性,所以很多用RPC很难构建的Web Service用这种方式构建。
最后SOAP规范还定义了HTTP消息是怎样传输SOAP消息的。这并不代表SOAP只能用HTTP来作为传输协议,MSMQ、SMTP、TCP/IP都可以做SOAP的传输协议。
很多大公司根据SOAP规范,都开发出了自己的SOAP解决方案。这些解决方案都是相对于某种语言。比如说Microsoft SOAP toolkit2.0把COM函数转换成SOAP消息,而Apache toolkit把JAVA函数转换成SOAP消息。这样难免带来一些兼容性问题。
现在SOAP的很多另人瞩目的特性已成为现实(SOAP已经运行于不同的硬件和软件平台),而且有70多个解决方案。之所以SOAP被人们所爱戴,是因为SOAP比其他同类技术(CORBA、DCE)简单易用。
安全性对于应用程序来说是很重要的。那么SOAP的安全性如何呢?对于把HTTP作为传输协议的SOAP来说是没有问题的,因为HTTP协议已经有很好的安全构架。那么用其他传输协议会出现安全问题吗?不是的,你不必担心,因为已经有这方面的规范了(http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnglobspec/html/ws-security.asp)。
五、WSDL
WSDL是一种XML文档,它定义SOAP消息和这些消息是怎样交换的。IDL(Interface Description Language)是用于COM和CORBA的,WSDL是用于SOAP的。WSDL是一种XML文档,所以我们可以阅读和编辑,但很多时候是用工具来创建、由程序来阅读。
举个例子,你要使用供应商的Web Service构建应用程序。你可以向供应商索取使用Web Service的范例,然后按照范例来构建应用程序。这样可能出现意料不到的错误,比如说,你在程序中使用的客户代码的数据类型是integer,而供应商使用的数据类型是string.。WSDL详细定义客户端消息的格式,需要什么样的参数,这样可以避免不必要的错误。
六、UDDI
UDDI可以比喻成电话本,电话本里记录的是电话信息,而UDDI记录的是Web Service信息。你可以不把Web Service注册到UDDI。但如果要让全球的人知道你的Web Service,最好还是注册到UDDI。
UDDI目录说明文件也是一个XML文档,它包括三个部分。“白页(White Paper)”说明提供Web Service的公司(人)信息,比如说名称、地址和联系方式等等。“黄页(Yellow Paper)”说明UDDI目录的分类,比如说金融、服务和印刷等等。“绿页(green Paper)”说明接口(Web Service 提供的)的详细信息。
UDDI提供多种查询方式,来帮助你找到需要的Web Service。如果你查询与财务有关的Web Service,那么UDDI会提供详细的信息。
Web Service入门的更多相关文章
- (转)Web Service入门简介(一个简单的WebService示例)
Web Service入门简介 一.Web Service简介 1.1.Web Service基本概念 Web Service也叫XML Web Service WebService是一种可以接收从I ...
- Web Service入门简介(一个简单的WebService示例)
Web Service入门简介 一.Web Service简介 1.1.Web Service基本概念 Web Service也叫XML Web Service WebService是一种可以接收从I ...
- Web Service 入门例子
在网上很常见的一个列子,实现计算器,看完总得自己练练,不然一段时间不接触又忘了 新建一个空网页,因为.net framework 4.0 不能直接建web 服务,只能在项目中添加 然后在项目中添加We ...
- 最简单的 Web Service 入门 (看了包会)
原理:WebService是一个SOA(面向服务的编程)的架构,它是不依赖于语言,不依赖于平台,可以实现不同的语言间的相互调用,通过Internet进行基于SOAP协议的网络应用间的交互. 作用:主要 ...
- Java:Web Service初入门
前言 Web Service技术在我第一次接触,又没有实际使用时完全不理解这是什么.以为是一种类似Spring,Shiro的编程框架.后来渐渐理解,WS(即Web Service缩写)是一种通用的接口 ...
- [转贴] ASP.NET -- Web Service (.asmx) & JSON
[转贴] ASP.NET -- Web Service (.asmx) & JSON 以前没做过,但临时被要求 ASP.NET Web Service 要传回 JSON格式 找到网络上两篇好文 ...
- 不写画面的网页程序设计,Web API、Web Service、WCF Service
客户有一个系统,经常要连上我方,查询数据 以前的作法是给对方一个账号,让他可以连上我们的DB来查询. 所以,早期的同仁,真的给他们DB链接字符串 客户的Windows程序.网站就真的靠这么危险的方式, ...
- Web Service简单入门示例
Web Service简单入门示例 我们一般实现Web Service的方法有非常多种.当中我主要使用了CXF Apache插件和Axis 2两种. Web Service是应用服务商为了解决 ...
- ref:Web Service 渗透测试从入门到精通
ref:https://www.anquanke.com/post/id/85910 Web Service 渗透测试从入门到精通 发布时间:2017-04-18 14:26:54 译文声明:本文是翻 ...
随机推荐
- Coins and Queries(codeforce 1003D)
Polycarp has nn coins, the value of the i-th coin is aiai . It is guaranteed that all the values are ...
- 【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 8_Neural Networks Representation 神经网络的表述
神经网络是一种受大脑工作原理启发的模式. 它在许多应用中广泛使用:当您的手机解释并理解您的语音命令时,很可能是神经网络正在帮助理解您的语音; 当您兑现支票时,自动读取数字的机器也使用神经网络. 8.1 ...
- 时区时差换算(GMT,UTC,PST,PDT)
2014年美国冬令时标准时间Stardand Time于11月2号开始实施,直到2015年3月8号为止. 冬令时,是指在冬天使用的标准时间.在使用日光节约时制(夏令时)的地区,夏天时钟拨快一小时,冬天 ...
- 21-从零玩转JavaWeb-多态详解
配套视频详解 多态思想 eclipse快捷键设置 多态的好处 多态方法调用 instanceof关键字 多态中字段注意点 一.什么是多态 既然子类是一种特殊的父类 那么我们可不可以认为 狗 ...
- Solr查询过程源码分析
原文出自:http://blog.csdn.net/flyingpig4/article/details/6305488 <pre name="code" class=&qu ...
- 【bzoj1019】[SHOI2008]汉诺塔
1019: [SHOI2008]汉诺塔 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 1427 Solved: 872[Submit][Status] ...
- Composert 的命令
(1) php artisan ----查看所有的命令帮助 (2) php artisan make:controller StudentController ----创建一个控 ...
- eclipse检测不到android的手机
eclipse检测不到android设备我们一般重启adb server但是一般不管用,下面是重启adb server adb kill-server 可能出现“服务没有运行”的提示信息如下: * s ...
- Docker学习笔记_创建和使用Centos容器
实验:创建和使用Centos容器 步骤: 1.搜索 sudo docker search cen ...
- Python程序调试-TabError: inconsistent use of tabs and spaces in indentation
报错信息:TabError: inconsistent use of tabs and spaces in indentation 说明:代码缩进统一使用Tab键或空格键,不能混用. 解决办法: 1. ...