WebService

WebService是一种远程调用的一种方案,是一种解决跨平台、跨语言间分布式系统的整合方案(socket),没有严格的客户端和服务端得界定
 
RMI跟WebService区别:
  • RMI的客户端和服务端都必须是java,webservice没有这个限制
  • webservice是在http协议上传递xml文本文件,与语言和平台无关
  • RMI是在tcp协议上传递可序列化的java对象,只能用在java虚拟机上,绑定语言
  • RMI是EJB远程调用的基础,仅用RMI技术就可以实现远程调用,使用EJB是为了实现组件,事物,资源池,集群等功能。
  • WebService是通过XML来传输数据,可用http等协议因此可在异构系统间传递,并且可以穿过防火墙,可在公网上远程调用
 
Web Service = SOAP + HTTP + WSDL。其中,SOAP Simple Object Access Protocol)协议是web service的主体,它通过HTTP或者SMTP等应用层协议进行通讯,自身使用XML文件来描述程序的函数方法和参数信息,从而完成不同主机的异构系统间的计算服务处理。这里的WSDL(Web Services Description Language)web 服务描述语言也是一个XML文档,它通过HTTP向公众发布,公告客户端程序关于某个具体的 Web service服务的URL信息、方法的命名,参数,返回值等。
 
SOAP:简单对象访问协议,简单对象访问协议(SOAP)是一种轻量的、简单的、基于 XML 的协议,它被设计成在 WEB 上交换结构化的和固化的信息,用于在分布式环境中发送消息,并执行远程过 程调用,不用考虑任何特定的传输协议(尽管通常选用HTTP协议), 就能使数据序列化。
 
1.XML:描述数据的标准方法
2.SOAP表示信息交换的协议
3.WSDLWeb服务描述语言
4.UDDI :是一种目录服务,企业可以使用它对 Web services 进行注册和搜索。 "Universal Description, Discovery and Integration"
 
WSDL,UDDI和SOAP是SOA基础的基础部件。WSDL用来描述服务;UDDI用来注册和查找服务;而SOAP,作为传输层,用来在消费者和服务提供者之间传送消息。SOAP是Web服务的默认机制,其他的技术为可以服务实现其他类型的绑定。一个消费者可以在UDDI注册表(registry)查找服务,取得服务的WSDL描述,然后通过SOAP来调用服务。
 
SOAP是个通信协议, SOAP在HTTP协议的基础上,把编写成XML的REQUEST参数, 放在HTTP BODY上提交个WEB SERVICE服务器(SERVLET,ASP什么的) 处理完成后,结果也写成XML作为RESPONSE送回用户端, 为了使用户端和WEB SERVICE可以相互对应,可以使用WSDL作为这种通信方式的描述文件,利用WSDL工具可以自动生成WS和用户端的框架文件,SOAP具备把复杂对象序列化捆绑到XML里去的能力。
 
Java类若要成为一个实现了Web Service的bean,遵循原则: 
  • 这个类必须是public类
  • 这些类不能是final的或者abstract
  • 这个类必须有一个公共的默认构造函数
  • 这个类绝对不能有finalize()方法
 
SOA是一种软件系统架构,在于解决在Internet环境下的不同商业应用之间的业务集成问题。  
HTTP协议就是一个非常典型的SOA架构设计。
Web Service是就现在而言最适合实现SOA的一些技术的集合,事实上最近SOA的火爆在很大程度上归功于Web Service标准的成熟和应用的普及为广泛的实现SOA架构提供了基础。
 
如果发布webservice的java类的方法中有异常声明时,是不能直接发布成webservice的,需要用wsgen命令生成相应的异常处理的类。 

 

posted on 2018-08-29 15:16  xiaowater  阅读(91)  评论(0)    收藏  举报

导航