java远程调用与web服务
远程访问是指网络中的一台计算机,可以使用另一台计算机的服务、对象和方法,效果就像使用本地的服务、对象或方法一样
web service相于术语
1、SOA
Web服务建立于Service-Oriented Architecture(面向服务的体系结构,简写SOA)基础之上,SOA是最新的分布式计算技术。
2、SOAP消息
Simple Object Access Protocol(简单对象访问协议)
SOAP与其它分布式对象协议最为主要的区别在于它是基于XML的(传统的IIOP(CORBA)或JRMP(RMI)协议是基于二时进制的)。SOAP有自己的XML Schema定义,并大量依赖于用户自定义XML Schema。每一条经网络被送出的SOAP消息,都包含了标准SOAP元素与应用数据的XML文档。SOAP用作在HTTP、SMTP、FTP等Internet协议之上使用绑定进行传送的消息交换协议。SOAP提供传输数据的标准方式,充当在服务提供方和服务请求方之间激活服务的消息交换服务
3、WSDL
Web Service Definition Language(web服务定义语言)
是一种用来描述web service及其访问信息的XML文档,它与编程语言、平台和协议无关。WSDL的协议无关性意味着,它可以用于描述任何类型的web service,而不仅仅是基于HTTP的SOAP类型,它包含web服务4个方面的重要信息:
4、UDDI
Universal Description,Discovery and Integation(通用描述、发现和集成)
它定义了在互联网上发布和寻找web service的标准. 与XML、SOAP、WSDL不同,它并非web service的基础。但是在Java EE中,它被认为是web service的一个基本要素。web服务代理方将UDDI用作注册web服务提供方的标准,而服务请求方则通过UDDI注册表通信来查找并调用服务。可UDDI可以实现为公共注册表,以支持全球的团体,也可实现为私有的注册表
实现web服务的操作步骤
(1)web服务提供方创建SOAP代理接口和基于WSDL的服务描述
(2)web服务提供方注册/发布服务
(3)web服务代理方(通常是一个UDDI注册表)将服务描述存储为绑定模块或URL
(4)web服务请求方从UDDI注册表查找服务及绑定信息
(5)web服务请求方激活并获得攻取WSDL
(6)双方使用SOAP RPC或SOAP Messaging交换机制来交换数据
常用的远程访问技术
1、RMI(remote method invocation)
客户和服务器端必须同时采用java语言,且网络不受约束(RMI使用RMI协议进行访问,无法穿透防火墙)
2、Hessian和Burlap
基于Http的轻量级远程服务,可以在不同编程语言间移植。Hessian使用二进制消息作为媒介,而burlap借助于xml实现客与服务器的交互
3、Http Invoker(spring的http调用器)
它与hessian/burlap类似,都是基于HTTP协议运行的,但是httpInvoder使用的序列化机制是由java本身提供
4、web services
Web service的出现为真正意义上的跨越硬件(设备)、操作系统(平台)、编程语言和应用系统的互操作能力提供了可能。有两种模型:
(1)基于RPC的通信模型定义基于请求/响应的同步通信。客户发出请求后,继续任何操作之前将等等服务器发回响应
(2)基于消息交换的通信模型,通信双方发送的不是一组参数,而是一个完整的文档,可以使用同步或异步通信方式。
jax-RPC(java api for xml-based RPC)
在j2ee 1.4下使用, RPC即Remote Procedure Call,名为远程过程调用
jax-WS(web service)
在java EE5和java6下使用
5、EJB
通过Remote接口提供自己的业务服务,使用JNDI定位远程服务
远程访问是指网络中的一台计算机,可以使用另一台计算机的服务、对象和方法,效果就像使用本地的服务、对象或方法一样
web service相于术语
1、SOA
Web服务建立于Service-Oriented Architecture(面向服务的体系结构,简写SOA)基础之上,SOA是最新的分布式计算技术。
2、SOAP消息
Simple Object Access Protocol(简单对象访问协议)
SOAP与其它分布式对象协议最为主要的区别在于它是基于XML的(传统的IIOP(CORBA)或JRMP(RMI)协议是基于二时进制的)。SOAP有自己的XML Schema定义,并大量依赖于用户自定义XML Schema。每一条经网络被送出的SOAP消息,都包含了标准SOAP元素与应用数据的XML文档。SOAP用作在HTTP、SMTP、FTP等Internet协议之上使用绑定进行传送的消息交换协议。SOAP提供传输数据的标准方式,充当在服务提供方和服务请求方之间激活服务的消息交换服务
3、WSDL
Web Service Definition Language(web服务定义语言)
是一种用来描述web service及其访问信息的XML文档,它与编程语言、平台和协议无关。WSDL的协议无关性意味着,它可以用于描述任何类型的web service,而不仅仅是基于HTTP的SOAP类型,它包含web服务4个方面的重要信息:
4、UDDI
Universal Description,Discovery and Integation(通用描述、发现和集成)
它定义了在互联网上发布和寻找web service的标准. 与XML、SOAP、WSDL不同,它并非web service的基础。但是在Java EE中,它被认为是web service的一个基本要素。web服务代理方将UDDI用作注册web服务提供方的标准,而服务请求方则通过UDDI注册表通信来查找并调用服务。可UDDI可以实现为公共注册表,以支持全球的团体,也可实现为私有的注册表
实现web服务的操作步骤
(1)web服务提供方创建SOAP代理接口和基于WSDL的服务描述
(2)web服务提供方注册/发布服务
(3)web服务代理方(通常是一个UDDI注册表)将服务描述存储为绑定模块或URL
(4)web服务请求方从UDDI注册表查找服务及绑定信息
(5)web服务请求方激活并获得攻取WSDL
(6)双方使用SOAP RPC或SOAP Messaging交换机制来交换数据
常用的远程访问技术
1、RMI(remote method invocation)
客户和服务器端必须同时采用java语言,且网络不受约束(RMI使用RMI协议进行访问,无法穿透防火墙)
2、Hessian和Burlap
基于Http的轻量级远程服务,可以在不同编程语言间移植。Hessian使用二进制消息作为媒介,而burlap借助于xml实现客与服务器的交互
3、Http Invoker(spring的http调用器)
它与hessian/burlap类似,都是基于HTTP协议运行的,但是httpInvoder使用的序列化机制是由java本身提供
4、web services
Web service的出现为真正意义上的跨越硬件(设备)、操作系统(平台)、编程语言和应用系统的互操作能力提供了可能。有两种模型:
(1)基于RPC的通信模型定义基于请求/响应的同步通信。客户发出请求后,继续任何操作之前将等等服务器发回响应
(2)基于消息交换的通信模型,通信双方发送的不是一组参数,而是一个完整的文档,可以使用同步或异步通信方式。
jax-RPC(java api for xml-based RPC)
在j2ee 1.4下使用, RPC即Remote Procedure Call,名为远程过程调用
jax-WS(web service)
在java EE5和java6下使用
5、EJB
通过Remote接口提供自己的业务服务,使用JNDI定位远程服务