1.介绍
- Web service 即web服务,它是一种跨编程语言和跨操作系统平台的远程调用技术即跨平台远程调用技术。
- Web service是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,使用开放的XML(标准通用标记语言下的一个子集)标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序。
- Web Service为整个企业甚至多个组织之间的业务流程的集成提供了一个通用机制。
2.个人见解
- 对于我这几天的学习来看,这个技术就是企业之间的公共服务。偏向于技术人员,当然能解决了技术人员的数据整理问题,使得我们能够快速获取正确及时的数据服务。
3.技术特殊点
- WebService数据传输的方式
- SOAP:http+xml
- Http rest :一套用来创建Web Service的方法,REST式的Web Service使用HTTP里的方法:GET,POST,DELETE, PUT
- WebService 三要素
- soap
SOAP即简单对象访问协议(Simple Object Access Protocal) 是一种简单的基于 XML 的协议,它使应用程序通过 HTTP 来交换信息.
简单理解为soap=http+xml,就是通过HTTP发xml数据
Soap协议版本主要使用soap1.1、soap1.2
。 - Wsdl
WSDL 是基于 XML 的用于描述Web Service及其函数、参数和返回值。通俗理解Wsdl是webservice的使用说明书 - Uddi【了解】
UDDI 是一种目录服务,通过它,企业可注册并搜索 Web services。企业将自己提供的Web Service注册在UDDI,也可以使用别的企业在UDDI注册的web service服务,从而达到资源共享。
UDDI旨在将全球的webservcie资源进行共享,促进全球经济合作。
目前大部分企业使用webservice并不是必须使用UDDI,因为用户通过WSDL知道了web service的地址,可以直接通过WSDL调用webservice
- soap
4.实际服务快速入门
- 进入webService服务网址,查找所需服务
http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl
- 利用wsdl2java 或者 wsimport进行客户端代码生成和解析。
- 根据服务说明书理清具体代码功能。
- 利用所给方法进行数据传递。
5.3 Webservice 开发规范
JAVA 中共有三种 实现WebService 开发规范 JAX-WS(JAX-RPC)、JAXM & SAAJ、JAX-RS
使用JAX-WS
1 | JAX-WS 的全称为 Java API for XML-Based Webservices ,早期的基于SOAP 的JAVA 的Web 服务规范 |
使用JAX-RS
1 | JAX-RS 概述 |
6.使用JAX-WS进行测试案例
- 步骤
7.wsdl
wsdl说明书结构
1
2
3
4
5<service>服务视图,webservice的服务结点,它包括了服务端点
<binding>为每个服务端点定义消息格式和协议细节
<portType>服务端点,描述 web service可被执行的操作方法,以及相关的消息,通过binding指向portType
<message>定义一个操作(方法)的数据参数(可有多个参数)
<types> 定义 web service 使用的全部数据类型wsdl 说明书阅读方式
1
从下往上读,先找到服务视图,通过binging找到protType,找到了protType就找到了我们要调用的webservice方法。
8.webService优缺点
优点
1
2
3
41、采用xml支持跨平台远程调用。
2、基于http的soap协议,可跨越防火墙。
3、支持面向对象开发。
4、有利于软件和数据重用,实现松耦合。缺点
1
2由于soap是基于xml传输,本身使用xml传输会传输一些无关的东西从而效率不高,
随着soap协议的完善,soap协议增加了许多内容,这样就导致了使用soap协议进行数据传输的效率不高。
9.开发中WebService的选择
适用场景
1
2
3
4
5发布一个服务(对内/对外),不考虑客户端类型,不考虑性能,建议使用webservice
服务端已经确定使用webservice,客户端不能选择,必须使用webservice
不适用场景
考虑性能时不建议使用webservice
同构程序下不建议使用webservice,比如java 用RMI,不需要翻译成XML的数据RMI概念
1
2RMI(即Remote Method Invoke 远程方法调用)。在Java中,只要一个类extends了
java.rmi.Remote接口,即可成为存在于服务器端的远程对象,供客户端访问并提供一定的服务。
10.WebService 服务框架 CXF
CXF概述
1
2
3
4
5
6
7
8CXF是Apache旗下的,所以全称叫Apache CXF
Apache CXF = Celtix + Xfire,开始叫 Apache CeltiXfire,后来更名为 Apache CXF 了,以下简称为 CXF。
Apache CXF 是一个开源的web Services 框架
CXF 帮助您构建和开发 web Services
它支持多种协议,比如:SOAP1.1,1,2、XML/HTTP、RESTful HTTP 或者 CORBA。
CORBA(Common Object Request Broker Architecture公共对象请求代理体系结构,早期语言使用的WS。C,c++,C#)
Cxf是基于SOA总线结构,依靠spring完成模块的集成,实现SOA方式。
CXF可以灵活的部署:可以运行有Tomcat,Jboss,Jetty(内置),weblogic上面。操作
11.REST概述重要
1 | REST 是一种软件架构模式,只是一种风格 |
- Rest方式表示互联网上的资源更加准确,但是也有缺点,可能目录的层级较多不容易理解
- REST 是一种软件架构理念,现在被移植到Web 服务上,那么在开发Web 服务上,偏于面向资源的服务适用于REST,REST 简单易用,效率高,SOAP 成熟度较高,安全性较好。
- 注意:REST 不等于WebService-soap,JAX-RS 只是将REST 设计风格应用到Web 服务开发上。