两个进程之间如果要做点什么交互的话,总得通过一些机制来实现;这就像我们两个人之间要沟通,总得通过语言、文字等各种机制来实现一样。如果两个进程都在一台机器上,交互的机制就显得稍微多一点,例如可以用shared memory、message queue、file、pipe、socket等各种技术。如果两个进程不在同一台机器上,可以的选择显得稍微少一点,但是还可以用pipe、socket等。如果开发应用时总是要考虑这么底层细节的事情,那效率就太低了。在应用开发的需求牵引下,大家发明了从RPC、CORBA、RMI,到SOAP、WebService之类的不同层次的技术。
最近碰巧遇到了一个legacy的应用,需要跨机器的C程序与Java、C、C++程序之间的交换。它没有采用流行的Web技术,用的是C/S技术。为了在这些不同的进程之间交换数据,要么自己在socket等的基础上写自己的应用层协议,要么依靠古老的RPC技术,要么借助于失去光彩的CORBA技术——这些东西怎么看怎么不爽,一个比一个老。
为了温习一下早就忘光了的CORBA,找了个简单易懂的例子来参考:A Simple C++ Client/Server in CORBA 。可惜它是个C/C++的版本,没体现出CORBA跨语言的本事来。
2010/9/2,今天又遇到google protocol buffer这个东西了。交谈了一下,才忽然想起来以前曾经给客户推荐过它。
一点感触:老的技术用到的地方时越来越少了,不与时俱进真是不行的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。