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
分享到:
相关推荐
小结 在本文中,我们详细介绍了 Delphi7 下开发WebService 如何使用数据库进行交互。在 Server 端,我们创建了一个 SoapDataModule,用于与数据库进行交互,并编写了对应的事件处理代码。在 Client 端,我们创建...
【ASP.NET编程知识】浅谈对Jquery+JSON+WebService的使用小结 在现代Web开发中,ASP.NET结合jQuery和JSON以及WebService技术是构建动态交互界面的常见选择。jQuery作为一个强大的JavaScript库,以其简洁易用的API...
C# 调用 Java 发布的 ...小结 C# 调用 Java 发布的 WebService 是一种常见的跨语言通信方式。通过添加 Web 引用和使用 C# 语言调用 Java 发布的 WebService,我们可以实现跨语言通信,提高系统的灵活性和可扩展性。
个人感觉有两点是比较方便的:第一,在对WebService做ajax请求的时候,请求的url的写法是:服务地址/调用的方法名称,这样在请求的url中就确定了要调用的方法了,不必再在WebService代码中去判断ajax请求调用的是...
#### 六、小结 在选择 WebService 发布方式时,需要根据项目需求和技术背景来决定。CXF 以其与 Spring 的良好集成而受到欢迎;XFire 虽然被认为较为陈旧但仍有一定的应用场景;AXIS2 提供了更强大的功能和支持;而 ...
之前做移动端开发,都不清楚WebService是啥东东,现在接触c#,项目中有三处WebService调用,就不得不与其打交道了,最近碰上第三方接口地址更换,而自己项目因功能也需要增加WebService方法,所以了解了下WebService...
小结:处理数组类型的返回值时,json格式同样提供了更简洁的处理方式3.第三种形式:jQuery.ajax 调用返回复杂对象集合的 WebService 的方法//返回结果为xml数据格式,解析并显示User对象集合$("#btn3_xml").click...
#### 三、小结 通过上述步骤,我们不仅了解了如何在WAS环境中配置WebService资源的具体方法,还掌握了整个配置过程中需要注意的关键点。正确配置这些资源能够极大地提升Web服务的性能和稳定性,为企业级应用提供更加...
#### 五、小结 本文详细介绍了如何使用Python中的Suds库来调用WebService接口,从安装配置到具体使用流程都有涉及。通过这种方式,可以极大地简化跨平台通信的复杂度,提高开发效率。希望本文能帮助读者更好地理解...
#### 小结 通过上述步骤,我们成功地构建并调用了一个基于CXF的Web服务。这个示例虽然简单,但它涵盖了使用CXF框架构建Web服务所需的关键概念和技术。CXF不仅提供了丰富的功能,还具有高度的灵活性和可扩展性,是...
#### 五、小结 通过上述步骤,我们可以实现在Android应用中调用基于SOAP协议的Web服务。这种方式不仅能够帮助开发者实现跨平台的远程服务调用,还能够在资源受限的移动设备上提供高效的数据交换能力。在实际应用...
##### 小结 本示例介绍了如何使用Axis 1.x进行WebService开发的基本流程。通过以上步骤,您可以创建、部署和测试简单的WebService。需要注意的是,实际开发中可能还需要考虑安全性、性能优化等方面的问题。此外,...
上篇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程序 i. 配置开发环境 ii. 运行配套光盘 iii. 第一个例子 iv. 近观ASP.NET v. 小结 第三章ASP.NET 和ASP的比较 i. ASP和ASP.NET 的对比 ii. 从 ASP到ASP.NET(一个移植的例子) iii. ...