什么是Web Service?从字面上看是Web服务,什么是Web服务呢?虽然很流行,但是很多人不知道具体干什么的?也不好给定义,下面从两个方面来描述什么Web Service:
Web Service是解决什么问题的?
Web Service如何解决这个问题?
1、Web Service用于解决什么问题?
网络技术的发展使得应用之间的交互变得越来越多,有了网络应用程序。这些程序有B/S结构,有C/S结构等等,有C语言编写的,有C++编写的,有Java编写的,Delphi编写的。
网络应用除了要完成必要的功能之外,还必须解决网络连接、数据传递、异常处理和安全处理等问题。不管完成什么功能,这些额外的工作基本相同,所以各种语言对这些额外的过程进行单独的处理提供了专门的技术。
Java阵营中EJB就是典型的例子,根据EJB规范编写EJB,只需要关注功能如何实现,访问过程、事务处理等等由EJB运行的环境(容器,应用服务器的一项服务)处理,所以EJB的编写和访问都变得非常简单。Java中的RMI也是用于解决分布式应用的问题的。
在微软的体系中,COM/DCOM组件模型用于解决分布式应用问题,com是一种组件模型,是一种标准,是开发平台独立的、分布式的、面向对象系统的标准。DCOM(the Distributed Component Object Model)扩展COM,以支持不同计算机之间的对象间通信,这些计算机可以是位于局域网,广域网,甚至是互连网。
另外一种技术CORBA(the Common Object Request Broker Architecture)是OMG(the Object Management Group)制定的开放的、独立于开发商的体系结构和基础构造,通过CORBA,计算机应用程序可以通过网络协同运作。因为使用标准的IIOP(the Internet Inter-ORB Protocol)协议,两个基于CORBA的程序,不管是来自任何开发商、运行在何种机器、采用哪种操作系统和编程语言、通过不同的网络,都可以相互操作。
COM更适合Windows平台,而CORBA在开放性上面比COM要做得好。
关于组件模型,可以参考http://www.kuqin.com/components/20090315/39994.html
而这些技术在实现的时候可能因为协议和端口的问题会受到防火墙的限制,如果能使用HTTP协议将解决这些问题将非常方便,大家知道现在B/S架构的程序更为流行。另外各种应用在交互的时候需要传递消息、解析消息,不同的技术会有不同的实现方式,而XML作为信息交换的手段,在不同应用系统之间交换信息变得非常通用。而WebService正是基于HTTP和XML的。
2、Web Service如何解决这些问题
使用XML表示数据
Web Service交互过程中的数据和Web Service的描述都采用XML形式,这些年来XML已经变得非常流行,学习起来会变得非常容易。
使用HTTP和SOAP交换信息
SOAP(Simple Object Access Protocol 简单对象访问协议)是WebService的根本。它是一种具有扩展性的XML消息协议。SOAP允许一个应用程序向另一个应用程序发送XML消息,SOAP消息是从SOAP发送者传至SOAP接收者的单路消息,任何应用程序均可作为发送者或接收者。SOAP仅定义消息结构和消息处理的协议,与底层的传输协议独立。因此,SOAP协议能通过HTTP,JMS或SMTP协议传输。目前,大多采用HTTP传输SOAP消息。
使用WSDL描述Web Service
WSDL(WebService Description Language WebService描述语言)使用XML描述WebService,包括访问和使用WebService所必需的信息,定义该WebService的位置、功能以及如何通信等描述信息。
使用UDDI注册服务和查找使用服务
UDDI(Universal Description,Description and Integration统一描述、发现和整合协议),定位或发现一个或多个说明特定的WEB 服务的文档的过程,WEB 服务的客户通过发现来知道某个Web 服务是否存在,以及从哪里获取这个WEB 服务的文档。
关于UDDI的更多内容可以参考:http://www.ibm.com/developerworks/cn/webservices/ws-featuddi/index.html
近段时间会给出更多关于Web Service文章,包括如何开发(使用JAX-WS),敬请关注。
本人CSDN博客:http://blog.csdn.net/JavaEETeacher