最近一个朋友在整WebService,在帮他调试的过程中遇到了不少问题,回顾之前转载的几篇博文,不够详尽。所以对网上的一些资料进行了整理,也融入了部分个人的理解。
引用
下面的内容摘自http://www.360doc.com/content/08/0124/17/21290_1001123.shtml
WebService概念:
1.1 术语(资料摘要)
web Service
Web Service是使应用程序可以以与平台和编程语言无关的方式进行相互通信的一项技术。Web 服务是一个软件接口,它描述了一组可以在网络上通过标准化的 XML 消息传递访问的操作。它使用基于 XML 语言的协议来描述要执行的操作或者要与另一个 Web 服务交换的数据。一组以这种方式交互的 Web 服务在面向服务的体系结构(Service-Oriented Architecture,SOA)中定义了特殊的 Web 服务应用程序
SOAP
SOAP(Simple Object Access Protocol )简单对象访问协议是在分散或分布式的环境中交换信息并执行远程过程调用的轻量级协议,是一个基于XML的协议。使用SOAP,不用考虑任何特定的传输协议(最常用的还是HTTP协议),可以允许任何类型的对象或代码,在任何平台上,以任何一种语言相互通信。
SOAP包括四个部分:SOAP封装(envelop),封装定义了一个描述消息中的内容是什么,是谁发送的,谁应当接受并处理它以及如何处理它们的框架;SOAP编码规则(encoding rules),用于表示应用程序需要使用的数据类型的实例;SOAP RPC表示(RPC representation),表示远程过程调用和应答的协定;SOAP绑定(binding),使用底层协议交换信息。
应用中比较关注的是envelop,由一个或多个Header和一个Body组成。
SOAP在可互操作的基础 Web 服务协议栈中的位置:
Axis
Axis本质上就是一个SOAP引擎(Apache Axis is an implementation of the SOAP),提供创建服务器端、客户端和网关SOAP操作的基本框架。但Axis并不完全是一个SOAP引擎,它还包括:
- 是一个独立的SOAP服务器。
- 是一个嵌入Servlet引擎(例如Tomcat)的服务器。支持WSDL。
- 提供转化WSDL为Java类的工具。
- 提供例子程序。
- 提供TCP/IP数据包监视工具
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服务器实现中要求直接访问传输层等等
WSDL
Web服务的接口定义语言,由Ariba、Intel、IBM、MS等共同提出,通过WSDL,可描述Web服务的三个基本属性:
- 服务做些什么——服务所提供的操作(方法)
- 如何访问服务——和服务交互的数据格式以及必要协议
- 服务位于何处——协议相关的地址,如URL
WSDL文档以端口集合的形式来描述Web服务,WSDL 服务描述包含对一组操作和消息的一个抽象定义,绑定到这些操作和消息的一个具体协议,和这个绑定的一个网络端点规范。
WSDL在Web 服务概念性协议栈中的位置
WSDD
WSDD就是WEB服务分布描述(Web Service Deployment Descriptor), 它定义了WEB服务的接口,如服务名、提供的方法、方法的参数等信息。
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)。
1.2 WebService用途
异构平台或分布式平台远程调用
分享到:
相关推荐
【描述】:“webService学习资料,内含有思维导图两张,webservice资料整理,欢饮下载。” 【标签】:“webService” 在信息技术领域,Web服务(Web Service)是一种基于互联网的应用程序接口,它允许不同系统间的...
本压缩包"webService汇总整理.rar"提供了关于WebService接口开发的综合资料,帮助开发者更好地理解和应用这一技术。 1. **WebService的基本概念**: WebService是一种基于HTTP协议的网络服务,它通过SOAP(简单...
总的来说,Axis1作为一款成熟的Web服务框架,虽然现在已经被更新的版本如Axis2取代,但它的基础概念和工作原理对于理解Web服务和相关框架仍然具有重要的学习价值。了解并掌握Axis1可以帮助开发者更好地理解和使用...
【标题】"Axis1资料整理"是一个关于 Axis1 框架的学习资源,它涵盖了创建和使用 Web 服务客户端及服务端的相关知识。Axis1 是一个开源的、基于 Java 的 Web 服务工具包,用于实现 SOAP(简单对象访问协议)通信,是 ...
本套入门学习资料旨在帮助初学者掌握Flex的基础知识,包括Flex中各控件的样式设定、数据表现以及如何与Struts框架结合在JSP中使用。以下是针对这些主题的详细讲解: 1. Flex中的控件样式设定: Flex提供了丰富的...
难易适中:以简单易懂和循序渐进的方式来阐述基本概念及其应用,有效降低学习难度 完整范例:书中所有范例都是完整程序,且注释丰富,能有效降低学习障碍 内容丰富:Visual Basic2008的基础语法、面向对象编程、窗体...
- **SOA、WebService**:理解面向服务架构(SOA)的概念,学习WebService的开发方法。 - **工作流和JBPM**:了解工作流引擎JBPM的使用方法。 - **搜索引擎与Lucene**:学习如何使用Lucene构建搜索引擎。 - **Jboss、...
难易适中:以简单易懂和循序渐进的方式来阐述基本概念及其应用,有效降低学习难度 完整范例:书中所有范例都是完整程序,且注释丰富,能有效降低学习障碍 内容丰富:Visual Basic2008的基础语法、面向对象编程、窗体...
这个“flex学习的教程整理”包含了对初学者和进阶者都非常有价值的资源,特别是对于那些想要掌握ActionScript和Flex Cookbook内容的学习者。 ActionScript是Flash平台上使用的脚本语言,它为创建动态交互的Web内容...
以上是根据提供的资料整理出的系统分析师备考相关的知识点概览。这些资源覆盖了从软件开发、计算机基础到数据库系统等多个方面,为备考提供了全面的知识支持。希望这些信息能够帮助到正在准备系统分析师考试的读者们!
"Cxf应用整理.doc", "CXF+WebService+-+release.docx", "基于spring+cxf实现用户文件传输的webservice.docx"是关于CXF的详细学习文档,涵盖了从基础概念到高级特性的讲解,以及具体的实战案例,是学习和掌握CXF的...
### 知识点一:JavaBean与Enterprise JavaBean 组件模型 #### JavaBean组件模型特点 - **可重用性**:JavaBeans是基于Java语言的可重用...通过学习这些知识点,考生可以更好地理解和掌握软件开发的核心概念和技术。
- 支持多种通信协议:如JSON、WebService、WCF等。 - 提供强大的多媒体支持。 - **开发环境搭建**: - 安装.NET Framework及Silverlight SDK。 - 安装Visual Studio 2008或其他支持版本。 - 创建Silverlight ...
### Java基础学习笔记知识点 #### 一、Java学习路线概览 ...以上是根据给定文件内容整理出的关键知识点,这些知识点不仅有助于初学者理解Java的基础概念和技术栈,也能为进阶学习提供方向和参考。
学习和理解XML以及Web服务的相关概念和技术,对于构建可扩展、可重用的分布式系统至关重要。掌握这些知识点将帮助开发者创建高效、可靠的跨平台应用程序,并促进不同系统间的互操作性。在实际工作中,可能还需要学习...
3. **编写课程设计报告**(1天):整理文档,撰写课程设计报告。 4. **考核**(1天):提交成果,参加答辩。 以上五个方面涵盖了本次JAVA课程设计的主要知识点,希望对学生完成课程设计有所帮助。
Apache CXF是一个开源的Java框架,它主要...综上所述,这个压缩包为学习和使用Apache CXF提供了一整套资料,从基础概念到实战应用,覆盖了Web服务开发的各个方面。无论是初学者还是经验丰富的开发者,都能从中受益。
总之,学习Worshop需要结合Java基础知识,理解XDoclet的概念,熟练使用WebService进行测试,并注意性能优化。同时,熟悉如何连接远程WebLogic Server以及充分利用Workshop提供的各种工具和资源,将有助于提升开发...
2. **Socket套接字—Java套接字编程(上1).chm**:这是关于Java网络编程的资料,特别是使用套接字(Sockets)进行通信。这部分可能涵盖了基础概念和实现方法。 3. **JAVA设计模式.chm**:设计模式是软件工程中的一种...