`

web service相关的几个重要的概念

阅读更多
1, 什么是 Web 服务?

Web 是使应用程序可以以与平台和编程语言无关的方式进行相互通信的一项技术。Web 服务是一个软件接口,它描述了一组可以在网络上通过标准化的 XML 消息传递访问的操作。它使用基于 XML 语言的协议来描述要执行的操作或者要与另一个 Web 服务交换的数据。一组以这种方式交互的 Web 服务在面向服务的体系结构(Service-Oriented Architecture,SOA)中定义了特殊的 Web 服务应用程序。

2, 什么是SOAP?

SOAP(Simple Object Access Protocol )简单对象访问协议是在分散或分布式的环境中交换信息并执行远程过程调用的轻量级协议,是一个基于XML的协议。使用SOAP,不用考虑任何特定的传输协议(最常用的还是HTTP协议),可以允许任何类型的对象或代码,在任何平台上,以任何一种语言相互通信。

SOAP包括四个部分:SOAP封装(envelop),封装定义了一个描述消息中的内容是什么,是谁发送的,谁应当接受并处理它以及如何处理它们的框架;SOAP编码规则(encoding rules),用于表示应用程序需要使用的数据类型的实例;SOAP RPC表示(RPC representation),表示远程过程调用和应答的协定;SOAP绑定(binding),使用底层协议交换信息。

应用中比较关注的是envelop,由一个或多个Header和一个Body组成。

3, 什么是Axis?

Axis本质上就是一个SOAP引擎(Apache Axis is an implementation of the SOAP),提供创建服务器端、客户端和网关SOAP操作的基本框架。但Axis并不完全是一个SOAP引擎,它还包括:

是一个独立的SOAP服务器。
是一个嵌入Servlet引擎(例如Tomcat)的服务器。
支持WSDL。
提供转化WSDL为Java类的工具。
提供例子程序。
提供TCP/IP数据包监视工具。

4, Axis相比Soap v2的优点:

Axis是第三代Apache SOAP的实现,从2000年起,SOAP v2开发小组开始讨论如何让Axis更加灵活、可配置,以及能够处理SOAP和来自W3C的各种XML标准。通过不断地讨论和代码编写,Axis目前相比SOAP V2取得了如下成果:

速度提高。 Axis通过基于事件的SAX对XML文档进行处理,从而在速度和效率上比Apache SOAP有所提高。

灵活性提高。

稳定性提高。

提供面向组件的部署。

提供一个简洁的传输抽象框架。其核心引擎完全于传输方式独立。从而使基于何种协议传输的选择更加灵活。

支持WSDL。包括WSDL和客户端代码生成等。

5, 什么是WSDL?

WSDL(Web Service Description Language)Web服务器描述语言是用XML文档来描述Web服务的标准,是Web服务的接口定义语言,由Ariba、Intel、IBM、MS等共同提出,通过WSDL,可描述Web服务的三个基本属性:

·服务做些什么——服务所提供的操作(方法)

·如何访问服务——和服务交互的数据格式以及必要协议

·服务位于何处——协议相关的地址,如URL

WSDL文档以端口集合的形式来描述Web服务,WSDL 服务描述包含对一组操作和消息的一个抽象定义,绑定到这些操作和消息的一个具体协议,和这个绑定的一个网络端点规范。

6, 什么是WSDD?

WSDD就是WEB服务分布描述(Web Service Deployment Descriptor), 它定义了WEB服务的接口,如服务名、提供的方法、方法的参数等信息。

7, 什么是UDDI?

UDDI就是统一描述、发现和集成(Universal Description, Discovery, and Integration)。UDDI用于集中存放和查找WSDL描述文件,起着目录服务器的作用。

Web 服务中的角色、操作和构件:

服务提供者。从企业的角度看,这是服务的所有者。从体系结构的角度看,这是托管访问服务的平台。
服务请求者。从企业的角度看,这是要求满足特定功能的企业。从体系结构的角度看,这是寻找并调用服务,或启动与服务的交互的应用程序。服务请求者角色可以由浏览器来担当,由人或无用户界面的程序(例如,另外一个 Web 服务)来控制它。
服务注册中心。这是可搜索的服务描述注册中心,服务提供者在此发布他们的服务描述。在静态绑定开发或动态绑定执行期间,服务请求者查找服务并获得服务的绑定信息(在服务描述中)。对于静态绑定的服务请求者,服务注册中心是体系结构中的可选角色,因为服务提供者可以把描述直接发送给服务请求者。同样,服务请求者可以从服务注册中心以外的其它来源得到服务描述,例如本地文件、FTP 站点、Web 站点、广告和服务发现(Advertisement and Discovery of Services,ADS)或发现 Web 服务(Discovery of Web Services,DISCO)。

8, AXIS的几种服务类型:

AXIS有四种service styles,分别是:RPC, Document, Wrapped, 和Message。最常用的就是RPC和Message。

RPC:在AXIS中是一个默认选项。当你部署的时候使用下列两种方式: 或则 ,它遵循SOAP RPC和编码规则。每个RPC都包括一个表示名称的外部接点和一些表示参数的内部接点。AXIS会根据规则将一个XML(WSDL文件)文件转化成一个JAVA对象,并对对想赋上在文件中描述的值。也可以根据规则将一个JAVA对象转化成XML文件。

Document

适合于老的XML schema。

Wrapped

和DOCUMENT一样,适合于老的XML schema。

在大多书情况下,你不许要担心是DOCUMENT服务还是WRAPPED服务。

Message

以这种方式部署的话,会使AXIS失去意义,它使你的代码真正的用XML形式,而不需要转化成JAVA对象。以这种方式部署的有以下四种服务方法:

public Element [] method(Element [] bodies);

public SOAPBodyElement [] method (SOAPBodyElement [] bodies);

public Document method(Document body);

public void method(SOAPEnvelope req, SOAPEnvelope resp);

几种服务类型的主要区别:

基于RPC(远程过程调用)方式,这也是Web服务最常用的方式。面向消息/文档的的类型跟RPC不同的是它提供了一个更底层的抽象,要求更多的编程工作。客户端可以传入任何的XML文档,得到的响应不一定是SOAPEnvelope,可以返回任何它所需要的东西,甚至不返回。虽然这对开发者来说非常的灵活,但是这种通讯类型在实际的应用中并不常见。面向消息/文档的Web服务主要适合于下面几种情况,比如批量处理,基于表单的数据导入,有需要返回非XML数据时,Web服务器实现中要求直接访问传输层等等

9、java类与wsdl相互生成工具:

Axis提供了”WSDL2Java”工具,可以利用wsdl描述来产生服务的Java代理和框架(proxy and skeletons)。

Axis提供了”Java2WSDL”工具,可以由java类生成wsdl文件。
分享到:
评论

相关推荐

    黑马程序员_WebService_webservice从入门到上手企业开发资料.

    Web是为了程序到用户的交互,而Web Service是为程序到程序的交互作准备,Web Service已成为IT产业近几年来探索的热点课题之一。主要讲解内容如下: Web Service是什么? Web service的优势和前景 Web Service和Web...

    黑马程序员_WebService_webservice从入门到上手企业开发视频

    Web是为了程序到用户的交互,而Web Service是为程序到程序的交互作准备,Web Service已成为IT产业近几年来探索的热点课题之一。主要讲解内容如下: Web Service是什么? Web service的优势和前景 Web Service和Web...

    spring加载restful(文档+程序源码)

    spring加载restful(文档+程序源码) ...然后我们再完成一个更复杂的应用来了解Spring 3 REST支持的重要概念,如多种MIME类型表示支持和JAXB支持。另外,本文还使用一些代码片断来帮助理解这些概念。

    ASP.NET应用开发案例教程

    10.2 一个简单的Web Service程序 10.3 Web Service支持的数据类型 10.4 建立Web Service 10.5 使用Web Service 10.6 使用Session和Application对象 10.7 小结 10.8 习题 下篇 ASP.NET在实际中的应用...

    ASP.NET+实用桉例教程

    最后详细地介绍了Web Service的概念和使用方法。因为学习一门语言的主要目的是从事项目开发,所以本书最后一章,从工程规划的角度说明如何开发基于ASP.NET的项目。 本书适合用为培训班教材及自学自册,也适合具有...

    亮剑.NET深入体验与实战精要2

    7.1 Web Service基本概念 278 7.2 Web Service的应用场景 278 7.3 创建简单的Web Service项目应用 280 7.4 Web Service属性介绍 282 7.5 ASP.NET如何调用Web Service 286 7.6 JavaScript如何调用Web Service 288 ...

    亮剑.NET深入体验与实战精要3

    7.1 Web Service基本概念 278 7.2 Web Service的应用场景 278 7.3 创建简单的Web Service项目应用 280 7.4 Web Service属性介绍 282 7.5 ASP.NET如何调用Web Service 286 7.6 JavaScript如何调用Web Service 288 ...

    Visual C#网络编程技术与实践源代码

    全书共分13章,主要内容包括网络编程原理、Visual C# 2005的套接字以及多线程的开发、基于各种不同协议的网络编程应用模块,并通过几个典型的实例介绍了Visual C# 2005网络编程的实际应用。 本书注重代码的通用性和...

    【。net 专业】 面试题

    然而,结构在几个重要方面不同于类:结构为值类型而不是引用类型,并且结构不支持继承。结构的值存储在“在堆栈上”或“内联”。细心的程序员有时可以通过聪明地使用结构来增强性能。 12.概述.NET里对 remoting 和 ...

    基于J2EE架构下网络教学平台的设计与实现

    摘 要:分析了在构件网络教学平台过程中用到的几个关键J2EE技术。以中国·联合国计划发展暑 403项目中网络教学平台的开发为例,结合甘肃省经济现状,探讨了在J 2EE环境下如何建立一个网 络教学平台的基本框架。 关键词...

    java 面试题 总结

    创建了几个String Object? 两个 28、设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。 以下程序使用内部类实现线程,对j增减的时候没有考虑顺序问题。 public class ThreadTest1{ ...

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

    5.5.4 ffmpeg中几个重要的数据结构125 5.5.5 ffmpeg应用开发126 实验5.5 ffmpeg移植与应用127 5.6 开源软件移植的一般过程131 5.6.1 软件移植的概念131 5.6.2 软件移植过程131 5.7 J2ME-phoneME移植132 ...

    超级有影响力霸气的Java面试题大全文档

    创建了几个String Object? 两个 31、EJB包括(SessionBean,EntityBean)说出他们的生命周期,及如何管理事务的?  SessionBean: Stateless Session Bean 的生命周期是由容器决定的,当客户机发出请求要建立一个...

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

    5.5.4 ffmpeg中几个重要的数据结构125 5.5.5 ffmpeg应用开发126 实验5.5 ffmpeg移植与应用127 5.6 开源软件移植的一般过程131 5.6.1 软件移植的概念131 5.6.2 软件移植过程131 5.7 J2ME-phoneME移植132 5.7.1...

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

    5.5.4 ffmpeg中几个重要的数据结构125 5.5.5 ffmpeg应用开发126 实验5.5 ffmpeg移植与应用127 5.6 开源软件移植的一般过程131 5.6.1 软件移植的概念131 5.6.2 软件移植过程131 5.7 J2ME-phoneME移植132 5.7.1...

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

    5.5.4 ffmpeg中几个重要的数据结构125 5.5.5 ffmpeg应用开发126 实验5.5 ffmpeg移植与应用127 5.6 开源软件移植的一般过程131 5.6.1 软件移植的概念131 5.6.2 软件移植过程131 5.7 J2ME-phoneME移植132 5.7.1...

    进站:此回购包含一个基于Pitstop车库管理系统(虚拟车库)的示例应用程序。 该示例的主要目标是演示几个软件体系结构概念,例如:微服务,CQRS,事件源,域驱动设计(DDD),最终一致性

    该示例的主要目标是演示几个软件体系结构概念,例如: 微服务CQRS 活动采购域驱动设计(DDD) 最终一致性以及如何使用容器技术,例如: 码头工人Kubernetes Istio(服务网格) Linkerd(服务网格) 有关该解决方案...

    基于SSM+mysql框架的高并发和商品秒杀项目源码+项目说明.zip

    这里按照上面几个流程走下去,你要有基本的Maven认识以及Java语法的一些概念,要不然可能不太理解 ### (一)Java高并发秒杀APi之业务分析与DAO层代码编写 #### 构建项目的基本骨架 * 首先我们要搭建出一个符合Maven...

    asp.net知识库

    与正则表达式相关的几个小工具 你真的了解.NET中的String吗? .NET中的方法及其调用(一) 如何判断ArrayList,Hashtable,SortedList 这类对象是否相等 帮助解决网页和JS文件中的中文编码问题的小工具 慎用const...

    《iOS6开发指南》精彩书摘

    然后重点介绍了几个常用的调试工具,具体包括日志与断言的输出、LLDB调试工具、异常堆栈报告分析;接下来讲解了如何在真机上调试应用;最后分析了Xcode设备管理工具的使用。 第16章“基于测试驱动的iOS开发”。了解...

Global site tag (gtag.js) - Google Analytics