在项目中用AXIS 使用已多次了,Web Service 也算是一个非常熟悉的名词了。 但让自己对他的理解描述一下,又不知道怎么说。现记录一下相关的基本知识。
WebService 让一个程序可以透明的调用互联网的另一个应用程序,而不用考虑其他处理细节. 它使用一系列的标准协议来响应各种请求,使用HTTP/TCP等网络标准协议来完成底层通信,以xml作为数据表示的基础, 以SOAP协议在系统间交互数据,通过WSDL来描述WEB服务产生和接收的消息,通过UDDI来查找和登记WEB服务. 这些是构成WEB服务的支撑技术.
XML: 可扩展标记语言.
SOAP: 简单对象存取协议, 它是WebService的通信协议,是XML文档形式的调用方法的规范.当用户通UDDI查找到WSDL描述文档,他通过SOAP建立调用你提供WEB服务的一个或多个操作. 它通过把HTTP和XML的灵活性和良好扩展性结合在一起,实现异构平台程序间的消息传递和互操作. SOAP已被W3C推荐为Web Service 间交换消息的标准格式。
WSDL: WEB服务描述语言,是一种平台中立,语言中立并且能够在Internet上自由传输的采用XML描述的语言。是W3C用于描述Web 服务的规范,用来描述WEB服务能够做什么,如何调用该服务。 它将WEB服务描述为一组对消息操作的网络端点。一个WEB服务描述包括对一组操作和消息的一个抽象定义,绑定到这些操作和消息的具体协议,和这个绑定的一个网络端点的规范。 WSDL是基于XML提供一个正式的描述文档,描述WEB服务的函数、参数及返回值。由于是XML的,所以人和机器均可阅读的。新的开发工具,既可以根据用户的WEB服务自动WSDL文档,又能嵌入WSDL文档,生成调用服务的代码(客户端)。
UDDI:通用描述、发现和集成协议。是一套基本WEB的、分布式的、为WEB服务提供的信息注册中心的实现标准规范,同时也包含一组使企业能够将自身提供的WEB服务加以注册,以使别的企业能够发现的访问协议的标准。 主要针对WEB服务供应商及使用者的新项目。它根据描述文档来引导系统查找相应服务的机制。UDDI利用SOAP消息机制(标准的XML/HTTP)来发布、编辑、浏览以及查找注册信息。
Operation:即定义在WSDL中的方法,它包含输入消息(input message)和输出消息(output message),而消息是由一个或多个块(part)组成。
Target namespace:可以理解为Java package,它没有任何意义,唯一的用途是来唯一标示WS,使之全局唯一。
Endpoint:是WS的详细访问地址(比如:http://localhost:8888/axis/services/HiHelloWSDD),它是可以访问的,而Target namespace虽然采用URL的形式命名,但是不可以访问的,一般访问会出错。
WEB Service 的主要目标是跨平台的可互操作性。最佳适用情况:
(1)跨防火墙的通信:如果有成千上万的分布在世界各地的用户,解决客户和服务器的通信,用WS能解决这个棘手的问题;
(2)应用程序的集成:在企业里经常把不同语言实现、不同平台运行的程序集成起来,由于各个系统都花了大量的时间。采用WS也能很方便的解决这一问题;
(3)B2B 的集成: WS是B2B集成的关键。最大好处在于可以轻易实现互操作性,只要把关键的商务应用暴露给指定合作伙伴或客户,不管对方是什么样的程序都可以轻松实现交互。
(4)软件和数据重用:软件重用除了模块和代码的,还有一种二进制形式的组件重用。
WS短处:
(1)单机应用程序: 使用本地API
(2)局域网的同构应用程序
总之,从应用程序的结构角度看,有别的方法比WS 更有效、更可行,那就不要用Web Service.
Web Service 可算是一个完整的SOA架构实现标准了。 下面是常见的几个问题:
XFire 是与 Axis 2并列的新一代WEB Service 框架,通过提供简单的API支持WEB服务的各项标准协议,帮助你方便快速的开发 web service 应用. XFire不支持WSDL2.0, Axis 2支持WSDL2.0.
AXIS:它是开源的WS运行引擎,是SOAP协议的一个实现。来源于Apache的一个开源项目Apache SOAP.分为1.X 和2.X.两个的体系结构和使用上有较大的区别。 1。X更加稳定一些。 具体使用见帖子“Axis 1.X 入门实例”。