WebService的前世今生
2010-4-2 蒋彪
1.什么是WebService
我们用一段话来描述WebService:
Web services are typically application programming interfaces (API) or web APIs that can be accessed over a network, such as the Internet, and executed on a remote system hosting the requested services. Web服务是一种可以穿越网络,比如Internet,并且在远程系统上调用服务的WebAPIs。 |
1.1 从类型上WebService目前分成以下两种:
・ Big Web Services
该类型的Web服务主要依靠SOAP消息来传输通信,但是它有一个致命的缺点,就是要求所有的客户端机器上都要有SOAP的容器(比如Apache Axis2),也就是说,在它的体系上的所有架构都将变成C/S
・ RESTful Web Services
和前一种不同的是,该类型的Web服务,不要求数据之间的通信一定用SOAP来传输,普通的Put,Get,Post之类的HTTP请求就能正常的传输消息。结果就是,客户端用IE就能调用到Web服务。所以,现在产品化的Web服务一般都是此类。(如亚马逊)
1.2 定义WebService的标准文档(JSR之类)的具体如下
标准名 | 标准的作用 | 对标准有影响力的企业 | 发布标准的组织 |
定义了如何在SOAP中使用XML,在https协议下,进行安全的数据传输 | |||
定义了如何保障通信中数据的健全性 | |||
定义了通信之间的事务操作 | BEA Systems, IBM, and Microsoft. | BEA | |
定义了通信过程中,如何向对方发送自己的网络硬件信息(如路由,MAC等等) |
1.3 WebService的几种著名的实现
实现名称 | 出品组织 | 地址 |
Metro 2.0 | Sun | http://wikis.glassfish.org/metro/Wiki.jsp?page=Roadmap |
wcf | Mircosooft | http://msdn.microsoft.com/en-us/netframework/aa663324.aspx |
2.WebService的前世
・ 在1975年,philosopher George Santayana就提出了EDI技术,用来在整个网络上
标准的传输数据。
・ 25年以来,为了解决EID问题,提出了以下三种主要的解决方法
解决方法 | 开发公司 | 优点 | 缺点 |
CORBA | Unix社区 | 最完美的标准 | 几乎不可能实现 |
DCOM | 微软 | 完美整合微软开发环境 | 对其他平台不支持,很复杂 |
Java远程调用(EJB) | Sun | 跨平台 | 对其他语言不支持,很复杂 |
・ 随着以下技术的发展,问题出现了转机
技术名称 | 出现时间 | 解决问题 |
HTTP协议 | 1994~1997 | 跨网络信息传输 |
XML | 1998 | 跨平台通信 |
SOAP | 1999 | 跨平台通信 |
WSDL | 2000 | STUB技术 |
UDDI | 2000 | 服务的注册技术 |
・ 最后,在2000年前后,微软和IBM几乎同时,提出了Web服务的概念。他们决定把下个世纪的希望放在Web服务上。可惜的是,十年以来,他的发展并不是很好。直到出现了SOA.
3.WebService的今生
WebService虽然推出了将近10年,但是似乎成长的并不快。这和企业之间的排挤,技术的复杂是相关的。直到,SOA的诞生。
SOA最好的实现是什么?当然是WebService
如下图,我们能看到整个SOA体系的骨架,其实就是WebService。
以上