我们都知道计算机编程的发展史经历了最初的面向机器的编程,而后到了面向过程的编程语言C,面向对象的语言java,C++,直到后来又提出的面向构件的编程架构COBRA,COM,EJB。
在编写程序的时候,我们遇到的问题常常不只是存在于一个方面,在最初的单机编程上,人们并没有想象到计算机网络的迅速发展,而分布式计算已经成为了计算机相关业务处理的主流方式,于此同时,诞生的问题以及随之产生的解决方案也促使了计算机编程的架构向着下一个时代发展。
在分布式计算的最初,人们遇到的问题很简单:如何用一台机器上的某个进程,去调用另一台机器上某个进程所实现的某个方法,而后得到一个正确的返回值。比如我希望调用另外一台机器上的一个可以将sin(int x)转化为float型数值的求三角函数的方法,最简单的解决方案是程序员需要在一台机器的应用层上编写一个程序,而后使其调用网络层所提供的一些网络通讯协议,通过编写诸如ping(),connect()等方法输入对方的ip来与对方机器建立连接,而后使用send()等方法来发送数据流(到有些情况下还需将其数据转换成数据流发送),而后用listen()来等待对方的响应。这样一来,也许程序只是求一个简简单单的sin三角函数,却需要编写大量的通讯协议代码来实现这一功能。
而后人们认为,这些重复的通讯协议代码,往往应当由一个第三方的,中间件性质的软件来自动帮程序员完成。于是在最初,OMG(Object Management Group)组织首先提出了COBRA架构,该架构引入了一种叫做IDL(Interface definition language)的接口定义语言ÿ