1.Webservice的背景
面向组件
当面向对象的编程方式盛行后,曾一度解决了当时维护、开发中的许多问题,但是实际业务场景的复杂,以及企业间越来越密切的合作,让面向对象的方式变得很有局限性。比如,面向对象的方式无法实现跨语言,跨平台的互用。从而使得同样的东西要用不同的语言来实现,这直接导致了软件复用性的下降,有时候还不得不放弃某中语言的优势来实现功能。
意识到这个问题,有人发现无论什么语言,最终是要交给计算机运行,以机器语言的形式被计算机识别的,因此,可以考虑平台互动的部分,可以做成字节码的包,由于这种包的无关性(都能识别,不依赖特定语法),让跨语言,跨平台调用成为了可能。因为只要按照统一规范开发这种包,那么就能被支持的语言识别。这种包被称为组件,而这种开发方式则是面向组件的开发。
面向服务(soa)
随着网络的发展,面向组件的方式也渐渐不能满足需求。因为一个应用可能需要远程调用另一个,而且二者完全不能有依赖(很可能两个应用来自于不同的公司,有着无法逾越的鸿沟)。比如,某企业的erp系统首页,需要气象局的气象资料以显示天气,之前面向组件的方式完全无法使用。考虑到这种复杂且多变的应用,需要一种统一的并且能被各种系统识别的数据规范,来相互交流数据。这时软件工程研究人员发现,网络资源完全可以看作一个一个的服务,相互之间如果有定义良好的规范,并统一管理服务,那么这种复杂应用会变得异常简单,这就是soa的诞生背景。
Corba
Soa的概念刚提出来时,其实现是corba技术。他的出现,为网络,为企业间的协作方式带来巨大的改变。后来,人们渐渐感觉Corba接口依赖于底层网络协议,复杂且难于使用,于是慢慢被另一种更加简洁,表述规范且易于使用的实现所替代,这就是webservice。直到现在,webservice已经成为了了主流,而很少看到corba接口的身影了。当然,由于corba接近网络底层,在传输效率上比webservice高。
Webservice
作为目前主流的服务实现方式,webservice需要一种语义良好,定义规范且能被各种系统或环境识别的文件格式来描述服务,