`

webservice 小结之简介

阅读更多
webservice 简介:

什么是webservice?

Web Services 是应用程序组件
Web Services 使用开放协议进行通信
Web Services 是独立的(self-contained)并可自我描述
Web Services 可通过使用UDDI来发现
Web Services 可被其他应用程序使用
XML 是 Web Services 的基础
   简单来说。Webservice就是一个能够实现不同平台不同程序之间互相通信调用的应用程序。


它如何工作?
基础的 Web Services 平台是 XML + HTTP。
HTTP 协议是最常用的因特网协议。
XML 提供了一种可用于不同的平台和编程语言之间的语言。
Web services 平台的元素:
SOAP (简易对象访问协议)
UDDI (通用描述、发现及整合)
WSDL (Web services 描述语言

接下来我们对webservice平台所涉及到元素逐个简单讲解下:
首先是SOAP:
简单对象访问协议(SOAP,全写为Simple Object Access Protocol),可以从定义中看出SOAP其实是一种标准化的通讯规范,主要用于Web服务(web service)中。
SOAP的出现是为了简化网页服务器(Web Server)在从XML数据库中提取数据时,无需花时间去格式化页面,并能够让不同应用程序之间透过HTTP通讯协定,以XML格式互相交换彼此的数据,使其与编程语言、平台和硬件无关。
    此标准由IBM、Microsoft、UserLand和DevelopMentor在1998年共同提出,并在 2000 年 5 月,UserLand、Ariba、Commerce One、Compaq、Developmentor、HP、IBM、IONA、Lotus、Microsoft 以及 SAP 向 W3C 提交了 SOAP 因特网协议。这些公司期望此协议能够通过使用因特网标准(HTTP 以及 XML)把图形用户界面桌面应用程序连接到强大的因特网服务器,以此来彻底变革应用程序的开发。
   SOAP 1.2 于 2003 年 6 月 24 日被发布为 W3C 推荐标准。
简单的理解来说SOAP就是在webservice中用于定义数据交换的一种规范,也就是说通过SOAP协议,webservice的客户端和服务端能够互相传递数据。一般webservice框架或者类库例如jax-ws,实际上已经在底层封装好了如何根据SOAP协议针对数据进行处理的方法。大家如无特殊需求可以不用关注SOAP消息这一块的。下面简单说明下SOAP的语法规则和SOAP消息示例。有兴趣的同学可以自己去了解下。

SOAP语法规则     
    SOAP 消息必须用 XML 来编码
    SOAP 消息必须使用 SOAP Envelope 命名空间
    SOAP 消息必须使用 SOAP Encoding 命名空间
    SOAP 消息不能包含 DTD 引用
    SOAP 消息不能包含 XML 处理指令

SOAP请求实例
<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">

<soap:Body>
   <m:GetPrice xmlns:m="http://www.w3school.com.cn/prices">
      <m:Item>Apples</m:Item>
   </m:GetPrice>
</soap:Body>

</soap:Envelope>
上面的例子请求苹果的价格。请注意,上面的 m:GetPrice 和 Item 元素是应用程序专用的元素。它们并不是 SOAP 标准的一部分。
SOAP响应实例
<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
<soap:Body>
   <m:GetPriceResponse xmlns:m="http://www.w3school.com.cn/prices">
      <m:Price>1.90</m:Price>
   </m:GetPriceResponse>
</soap:Body>
</soap:Envelope>

接下来是WSDL:
WSDL(网络服务描述语言,Web Services Description Language)是一门基于 XML 的语言,用于描述 Web Services 以及如何对它们进行访问。 同时wsdl也是一种使用 XML 编写的文档。这种文档可描述某个 Web service。它可规定服务的位置,以及此服务提供的操作(或方法)。      
    W3C组织没有批准1.1版的WSDL,但是2.0版本已经在制订中,2.0版将被作为推荐标准(recommendation)(一种官方标准),并将被W3C组织批准为正式标准。

   在实际开发中,客户端都是根据服务器端所提供的wsdl地址或者文档来生产相应的代理类,然后在通过这些代理类调用服务器端得方法。
wsdl的文档结构:


WSDL 端口
<portType> 元素是最重要的 WSDL 元素。它可描述一个 web service、可被执行的操作,以及相关的消息。可以把 <portType> 元素比作传统编程语言中的一个函数库(或一个模块、或一个类)。
WSDL 消息
<message> 元素定义一个操作的数据元素。每个消息均由一个或多个部件组成。可以把这些部件比作传统编程语言中一个函数调用的参数。
WSDL types
<types> 元素定义 web service 使用的数据类型。为了最大程度的平台中立性,WSDL 使用 XML Schema 语法来定义数据类型。
WSDL Bindings
<binding> 元素为每个端口定义消息格式和协议细节

在后面的实例中会详细讲解下wsdl文档里面的结构。

最后是UDDI,说实话由于我对这个也没有接触所以对它也没有太清晰的概念,按照我的理解UDDI就是webservice的目录,可以利用UDDI快速发布你的webservice或者找到你所需要的webservice。下面我把W3C网站对UDDI的一些说明贴出来:
UDDI   
  UDDI,英文为 “Universal Description, Discovery and Integration”,可译为“通用描述、发现与集成服务”。UDDI 是一个独立于平台的框架,用于通过使用 Internet 来描述服务,发现企业,并对企业服务进行集成。企业可以使用它对 Web services 进行注册和搜索。
UDDI 基于什么?
   UDDI 使用 W3C 和 IETF* 的因特网标准,比如 XML、HTTP 和 DNS 协议。
   UDDI 使用 WSDL 来描述到达 web services 的界面
   此外,通过采用 SOAP,还可以实现跨平台的编程特性,大家知道,SOAP 是 XML 的协议 通信规范,可在 W3C 的网站找到相关的信息。
*注释:IETF - Internet Engineering Task Force
UDDI 的好处
  使得在成百万当前在线的企业中发现正确的企业成为可能
  定义一旦首选的企业被发现后如何启动商业
  扩展新客户并增加对目前客户的访问
  扩展销售并延伸市场范围
  满足用户驱动的需要,为在全球 Internet 经济中快速合作的促进来清除障碍



参考资料:
http://www.w3school.com.cn/webservices/index.asp
http://www.w3school.com.cn/wsdl/index.asp
  • 大小: 12.3 KB
  • 大小: 29.9 KB
分享到:
评论

相关推荐

    【ASP.NET编程知识】浅谈对Jquery+JSON+WebService的使用小结.docx

    【ASP.NET编程知识】浅谈对Jquery+JSON+WebService的使用小结.docx

    jQuery中调用WebService方法小结

    个人感觉有两点是比较方便的:第一,在对WebService做ajax请求的时候,请求的url的写法是:服务地址/调用的方法名称,这样在请求的url中就确定了要调用的方法了,不必再在WebService代码中去判断ajax请求调用的是...

    c#中WebService的介绍及调用方式小结

    之前做移动端开发,都不清楚WebService是啥东东,现在接触c#,项目中有三处WebService调用,就不得不与其打交道了,最近碰上第三方接口地址更换,而自己项目因功能也需要增加WebService方法,所以了解了下WebService...

    浅谈对Jquery+JSON+WebService的使用小结

    在实际的开发过程中,使用JQ的AJAX函数调用WebService 的接口实现AJAX的功能也成了一种比较普遍的技术手段了。WebService接口的实现,通常都是由OOP语言实现的。所以 在WebService的接口函数中,难免可能会遇到除了...

    SAP中RFC发布成Web Service小结

    SAP中RFC发布成Web Service小结

    ASP.NET应用与开发案例教程

    上篇ASP.NET应用与开发基础 第1章ASP.NET概论 1.1ASP.NET简介 1.1.1从.NET谈起 1.1.2动态网站设计技术 1.1.3ASP.NET的介绍 1.1.4ASP.NET和ASP的对比 1.2运行环境配置 1.2.1ASP.NET运行环境介绍 ...12.4小结

    ASP.NET完全入门

    小结 第二章我的第一个ASP.NET程序 i. 配置开发环境 ii. 运行配套光盘 iii. 第一个例子 iv. 近观ASP.NET v. 小结 第三章ASP.NET 和ASP的比较 i. ASP和ASP.NET 的对比 ii. 从 ASP到ASP.NET(一个移植的例子) iii. ...

    JAVA社区交流平台网站

    2.3 本章小结 9 第三章 服务开发平台的总体框架 10 3.1 前台可视化IDE的设计 11 3.2 后台的总体设计 12 3.2.1 后台RuntimeContainer容器管理模块设计概述 13 3.2.2 后台UDDI注册中心模块设计概述 14 3.2.3 后台SP ...

    ASP.net技术内幕

    behind文件派生多个页面 6.3.4 编译完整的ASP.NET页面 6.4 小结 &lt;br/&gt;第7章 用可移动控件为可移动设备服务 &lt;br/&gt;7.1 使用可移动设备软件模拟器 7.2 无线应用协议简介 7.3 建立WML页面...

    asp.net技术内幕(1)

    3.9 小结 &lt;br&gt;第4章 高级控件编程 &lt;br&gt;4.1 使用视图状态 4.1.1 禁用视图状态 4.1.2 将值添加到视图状态 4.2 显示和隐藏内容 4.2.1 使用Visible和Enabled属性 4.2.2 使用Panel控件 ...

    asp.net技术内幕(2)

    3.9 小结 &lt;br&gt;第4章 高级控件编程 &lt;br&gt;4.1 使用视图状态 4.1.1 禁用视图状态 4.1.2 将值添加到视图状态 4.2 显示和隐藏内容 4.2.1 使用Visible和Enabled属性 4.2.2 使用Panel控件 ...

    asp.net技术内幕(5)

    3.9 小结 &lt;br&gt;第4章 高级控件编程 &lt;br&gt;4.1 使用视图状态 4.1.1 禁用视图状态 4.1.2 将值添加到视图状态 4.2 显示和隐藏内容 4.2.1 使用Visible和Enabled属性 4.2.2 使用Panel控件 ...

    asp.net技术内幕(4)

    3.9 小结 &lt;br&gt;第4章 高级控件编程 &lt;br&gt;4.1 使用视图状态 4.1.1 禁用视图状态 4.1.2 将值添加到视图状态 4.2 显示和隐藏内容 4.2.1 使用Visible和Enabled属性 4.2.2 使用Panel控件 ...

    asp.net技术内幕(3)

    3.9 小结 &lt;br&gt;第4章 高级控件编程 &lt;br&gt;4.1 使用视图状态 4.1.1 禁用视图状态 4.1.2 将值添加到视图状态 4.2 显示和隐藏内容 4.2.1 使用Visible和Enabled属性 4.2.2 使用Panel控件 ...

    嵌入式Linux程序设计案例与实验教程-实例代码

    10.3.4 项目小结270 10.4 基于嵌入式与Web Service的智能家居系统270 10.4.1 系统概述271 10.4.2 系统设计272 10.4.3 系统实现286 10.4.4 项目小结297 10.5 基于OMAP的音频与视频处理298 10.5.1 概述...

    嵌入式Linux程序设计案例与实验教程(配套光盘)第三部分

    10.3.4 项目小结270 10.4 基于嵌入式与Web Service的智能家居系统270 10.4.1 系统概述271 10.4.2 系统设计272 10.4.3 系统实现286 10.4.4 项目小结297 10.5 基于OMAP的音频与视频处理298 10.5.1 概述298 ...

Global site tag (gtag.js) - Google Analytics