首页 > 其他分享 >webservice简介

webservice简介

时间:2024-07-07 12:20:52浏览次数:12  
标签:XML Web webservice JAX 简介 UDDI API SOAP

1、 简介

webservice 即web服务,它是一种跨编程语言和跨操作系统平台的远程调用技术。

实现不同系统,进程间,任何地点的数据交换,webservice是跨语言技术。webservice是基于HTTP与XML的技术。

采用标准SOAP(Simple Object Access Protocol)协议传输,soap属于W3C标准。Soap协议是基于http的应用层协 议,传输是xml数据。

采用wsdl作为描述语言即webservice使用说明书,wsdl属于w3c标准。

Web Service所使用的是Internet上统一、开放的标准,如HTTP、XML、SOAP(简单对象访问协议)、WSDL等,所以Web Service可以在任何支持这些标准的环境(Windows,Linux)中使用。
这有助于大量异构程序和平台之间的互操作性,从而使存在的应用程序能够被广泛的用户访问。

如图:

img

(2) JAVA 中共有三种WebService 规范,分别是JAX-WS(JAX-RPC)、JAXM&SAAJ、JAX-RS。

(3) webService三要素:soap、wsdl、uddi

2、术语

2.1、 webservice开发规范

JAVA 中共有三种WebService规范,分别是JAXM&SAAJ、JAX-WS(JAX-RPC)、JAX-RS。

下面来分别简要的介绍一下这三个规范。

(1.)JAX-WS:

JAX-WS(Java API For XML-WebService),JDK1.6 自带的版本为JAX-WS2.1,其底层支持为JAXB。JAX-WS(JSR 224)规范的API 位于javax.xml.ws.*包,其中大部分都是注解,
提供API 操作Web 服务(通常在客户端使用的较多,由于客户端可以借助SDK 生成,因此这个包中的API 我们较少会直接使用)。

(2.)JAXM&SAAJ:

JAXM(JAVA API For XML Message)主要定义了包含了发送和接收消息所需的API,相当于Web 服务的服务器端,其API 位于javax.messaging.*包,它是JAVA EE 的可选包,因此你需要单独下载。

SAAJ(SOAP With Attachment API For Java,JSR 67)是与JAXM 搭配使用的API,为构建SOAP 包和解析SOAP 包提供了重要的支持,支持附件传输,它在服务器端、客户端都需要使用。这里还要提到的是SAAJ 规范,其API 位于javax.xml.soap.*包。

JAXM&SAAJ 与JAX-WS 都是基于SOAP 的Web 服务,相比之下JAXM&SAAJ暴漏了SOAP更多的底层细节,编码比较麻烦,而JAX-WS 更加抽象,隐藏了更多的细节,更加面向对象,实现起来你基本上不需要关心SOAP 的任何细节。那么如果你想控制SOAP 消息的更多细节,可以使用JAXM&SAAJ,目前版本为1.3。

(3.)JAX-RS:

JAX-RS 是JAVA 针对REST(RepresentationState Transfer)风格制定的一套Web 服务规范,由于推出的较晚,该规范(JSR 311,目前JAX-RS 的版本为1.0)并未随JDK1.6 一起发行,你需要到JCP 上单独下载JAX-RS 规范的接口,其API 位于javax.ws.rs.*包。

这里的JAX-WS 和JAX-RS 规范我们采用Apache CXF 作为实现,CXF 是Objectweb Celtix和Codehaus XFire 合并而成。CXF 的核心是org.apache.cxf.Bus(总线),类似于Spring 的ApplicationContext,Bus 由BusFactory 创建,默认是SpringBusFactory 类,可见默认CXF是依赖于Spring 的,Bus 都有一个ID,默认的BUS 的ID 是cxf。你要注意的是Apache CXF2.2 的发行包中的jar 你如果直接全部放到lib 目录,那么你必须使用JDK1.6,否则会报

JAX-WS 版本不一致的问题。对于JAXM&SAAJ 规范我们采用JDK 中自带的默认实现。

2.2、 SOAP 协议

(1) SOAP即简单对象访问协议(Simple Object Access Protocol),它是用于交换XML(标准通用标记语言下的一个子集)编码信息的轻量级协议。它有三个主要方面:XML-envelope为描述信息内容和如何处理内容定义了框架,将程序对象编码成为XML对象的规则,执行远程过程调用(RPC)的约定。SOAP可以运行在任何其他传输协议上。

(2) SOAP作为一个基于XML语言的协议用于有网上传输数据。

(3) SOAP = 在HTTP的基础上+XML数据。

(4) SOAP是基于HTTP的。

(5) SOAP的组成如下

a) Envelope – 必须的部分。以XML的根元素出现。

b) Headers – 可选的。

c) Body – 必须的。在body部分,包含要执行的服务器的方法。和发送到服务器的数据。

soap是一种基于xml格式访问网络服务的协议,通过http来进行信息交换。 一次WebService的调用,不是方法的调用,而是soap消息之间的输入和输出

2.3.3 客户端调用步骤

2.3.3 wsdl说明书

Web Service描述语言WSDL(SebService Definition Language)就是用机器能阅读的方式提供的一个正式描述文档而基于XML(标准通用标记语言下的一个子集)的语言,用于描述Web Service及其函数、参数和返回值。因为是基于XML的,所以WSDL既是机器可阅读的,又是人可阅读的。

wsdl说明书

                1) 通过wsdl说明书,就可以描述webservice服务端对外发布的服务;
 
       		2) wsdl说明书是一个基于xml文件,通过xml语言描述整个服务;
 
                3) 在wsdl说明中,描述了:
 
			对外发布的服务名称(类)
 
			接口方法名称(方法)
 
			接口参数(方法参数)
 
			服务返回的数据类型(方法返回值)
 

2.3.4 UDDI

Web 服务提供商又如何将自己开发的 Web 服务公布到因特网上,

这就需要使用到 UDDI 了,UDDI的话,是一个跨产业,跨平台的开放性架构,可以帮助 Web 服务提供商在互联网上发布 Web 服务的信息。

UDDI 是一种目录服务,企业可以通过 UDDI 来注册和搜索 Web 服务。

简单来时候话,UDDI 就是一个目录,只不过在这个目录中存放的是一些关于 Web 服务的信息而已。

并且 UDDI 通过SOAP 进行通讯,构建于 . Net 之上。

UDDI 即 Universal Description,Discovery andIntegration,也就是通用的描述,发现以及整合。

UDDI 的目的是为电子商务建立标准;UDDI是一套基于Web的、分布式的、为WebService提供的、信息注册中心的实现标准规范,同时也包含一组使企业能将自身提供的Web Service注册,以使别的企业能够发现的访问协议的实现标准。

标签:XML,Web,webservice,JAX,简介,UDDI,API,SOAP
From: https://www.cnblogs.com/youSeeAgain/p/18288349

相关文章

  • 前端学习-flutter学习-003-Widget 简介
    学习链接什么是widget描述UI元素的配置信息Widget类本身是一个抽象类,其中最核心的就是定义了createElement()接口,在Flutter开发中,我们一般都不用直接继承Widget类来实现一个新组件,相反,我们通常会通过继承StatelessWidget或StatefulWidget来间接继承widget类来实现。Stateless......
  • Keepalived简介
            目前互联网主流的实现WEB网站及数据库服务高可用软件包括:keepalived、heartbeat等。Heartbeat是比较早期的实现高可用软件,而keepalived是目前轻量级的管理方便、易用的高可用软件解决方案,得到众多青睐。         Keepalived是一个类似于工作在layer......
  • HSQL 数据库介绍(1)--简介
    HSQLDB(HyperSQLDatabase)是一款用Java编写的关系数据库管理系统;它提供了许多功能,并严格遵循最新的SQL和JDBC4.2标准;本文主要介绍其基本概念及安装。1、简介HyperSQLDatabase(HSQLDB)是一款现代的关系数据库系统。HSQLDB遵循国际ISOSQL:2016标准,支持完整的经典功能集,以......
  • LRU算法简介
    LRU(LeastRecentlyUsed,最近最少使用)算法是一种常用于缓存管理的算法,用于在缓存空间有限的情况下,决定哪些数据应该被移除。它的基本思想是:如果一个数据最近被访问过,那么在将来一段时间内它被再次访问的概率较高。因此,当缓存已满,需要移除数据时,优先移除那些最近最少被使用的数据。......
  • plantUML简介
    https://blog.csdn.net/hgy413/article/details/102546941?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-0-102546941-blog-97531413.235^v43^pc_blog_bottom_relevance_base7&spm=1001.2101.3001.4242.1&utm_relev......
  • SpringBoot, Maven, Apache 之间的关系,SpringBoot 简介
    SpringBoot是什么?SpringBoot是一种基于Spring框架的开源框架,用于快速创建独立的、生产级别的Spring应用程序。SpringBoot可以自动配置大部分Spring应用程序所需的常见功能和库,从而减少了开发人员的工作量和时间。SpringBoot提供了一种“约定优于配置”的方式,使得开发人员可......
  • Oracle闪回(Flashback)功能简介
        在Oracle数据库中,ASOFTIMESTAMP语法用于使用时间戳技术访问特定时间之前的数据,或者说把数据库回滚到某个时间点以前的状态。它基于Oracle的时间戳功能,允许用户查询某个表在特定时间点的快照。其语法如下:SELECT<COLUMNS>FROM<TABLE>ASOFTIMESTAMP<TIMESTAMP>......
  • rabbitmq 集群模式简介
    为什么搭建rabbitmq集群?rabbitmq集群有那些模式?如何搭建Rabbitmq集群?rabbitmq镜像高可用策略有那些?1、首先这款产品本身的优点众多,大家最看好的便是他的异步化提高系统抗峰值能力,然后便是系统及功能结构解耦,那么照此两点来说,他的在整个系统中的作用还是至关重要的,那么如此重......
  • MySQL 函数简介
    MySQL提供了丰富的函数,以下是一些常见的类型和示例:数学函数:**1.ABS(x):返回x的绝对值。示例:selectABS(-89);**2.CEIL(x):返回大于或等于x的最小整数。示例:selectCEIL(-89);**3.FLOOR(x):返回小于或等于x的最大整数。示例:selectFLOOR(-89);**4.RAND......
  • 【mybatis】mybatis-plus中Wrapper(条件构造器)简介_常用方法及说明
    1、简介MyBatis-Plus是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生。MyBatis-Plus提供了强大的条件构造器(Wrapper),用于构建复杂的SQL查询条件,使得我们不必手写繁琐的SQL语句。这些方法主要定义在com.baomidou.mybatisplus.cor......