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