众所周知,异构系统之间使用Web Service比较合适,上面一篇介绍了EJB,EJB是业务逻辑的分布式,是系统内部的调用。而Web
Service比较适合用于系统间的调用。
什么需要用到WebService,举例说明:
比如说天气预报,股市,地图等都是需要从互联网上的其他系统服务器获取的,它向外界暴露出一个能够通过Web进行调用的API,通过API去获取数据。
实时天气预报:
Web Service定义
Web Service提供了一个在不同的应用和平台之间的交互操作标准。这个交互操作通过一系列基于XML的开放标准实现,包括WSDL、SOAP和UDDI等。这些标准提供了一系列通用方法来定义发布和使用Web
Service。
Web Service的基本层次结构
服务发布协议: UDDI(提供发布场所) |
服务描述协议: WSDL(描述场所的服务功能) |
服务操作协议: SOAP(规定WSDL文档的格式) |
统一数据格式: XML(WSDL文档的书写) |
基础连接: Internet(HTTP数据传输协议) |
Web Service实现技术
UDDI、WSDL、SOAP
UUDI的目的是为电子商务建立标准;UDDI是一套机遇Web的、分布式的、为Web
Service提供的、信息注册中心的实现标准规范,同时也包含一组使用企业能将自身提供的Web Service注册,以使别的企业能够发现的访问协议的实现标准。
WSDL是一种XML格式,用于网络服务描述为一组端点,这些端点对包含面向文档信息或面向过程信息的消息进行操作。这种格式首先对操作和消息进行抽象描述,然后将其绑定到具体的网络协议和消息格式上以定义端点。相关的具体端点即组合成为抽象端点。
WSDL规范定义了如何使用SOAP消息格式、HTTP
GET/POST消息格式以及MIME格式来完成Web Services交互的规范。
WSDL描述了:
1)服务做些什么?
服务所提供的操作
2)如何访问服务?
数据格式以及访问服务操作的必要协议
3)服务位于何处?
由特定协议决定的网络地址,如URL
SOAP即简单对象访问协议(Simple Object)是一种轻量级协议,用于在分散型、分布式环境中交换结构化信息。SOAP利用XML技术定义一种可扩展的消息处理框架,提供了一种可通过多种底层协议进行交换的消息结构。这种框架的设计思想是要独立于任何一种特定的编程模式和其他特定实现的语义。
SOAP包含以下几部分:谁来处理这些消息;消息包含的内容;以及这些内容是可选的或者是必须的。如下图:
也就是说这几种技术的核心都是XML,XML是Web
Service平台中表示数据的基本格式,它既是平台无关的、优势厂商无关的。解决了数据表示的问题。
WebService的流程
WebService是建立可互操作的分布式应用程序的新平台。它是一套标准,定义了应用程序如何在Web上实现互操作性。任何语言,任何平台上的客户都可以阅读Web
Service提供的WSDL文档,用以调用WebService.客户根据WSDL描述文档,生成一个SOAP请求消息。生成的SOAP请求会被嵌入在一个HTTP
POST请求中,发送到Web服务器来。Web服务器把这些请求转发给Web
Service请求处理器。
Web Service解决了哪些问题?
Web Service减轻了目前企业应用中出现的整合危机,相比较其他整合技术,使用Web Service可以以较低的代价对各种企业应用进行整合。从技术上讲,Web
Service是一种新的机遇Web和XML的中间件,XML和Web解决了传统应用之间整合的各种棘手问题,例如异质性,传统应用都是平台相关的,而Web和XML是平台无关的技术。
总结
Web Service实现了跨平台,跨语言的远程调用。但并不是只要远程调用都要用Web Service的,需要考虑到效率的问题,大环境问题等等。