在Linux平台上实现不同厂商ORB间通讯的程序涉及到的核心技术是CORBA(Common Object Request Broker Architecture),这是一种由对象管理组织(OMG)制定的分布式应用开发标准。CORBA的主要目标是提供一种跨平台、跨语言的通信机制,使得不同操作系统和编程语言实现的对象能够相互通信。
关键知识点包括:
1. **ORB(Object Request Broker)**:ORB是CORBA的核心组件,它作为中介处理分布式对象的请求。ORB使得调用远程对象就像调用本地对象一样简单。在Linux上,常见的ORB实现有Gnome的ORB-ORB和KDE的MICO。
2. **IDL(Interface Description Language)**:IDL是CORBA定义接口的语言,它描述了对象的数据、操作以及异常。通过IDL,开发者可以使用不同的编程语言实现CORBA组件,实现语言无关性。
3. **IIOP(Internet Inter-ORB Protocol)**:IIOP是CORBA使用的网络协议,它允许不同ORB之间的通信,确保了跨平台的兼容性。
4. **IOR(Internet Object Reference)**:IOR是表示可交互对象引用的字符串形式,包含了对象类型、协议支持和可用ORB服务的信息。ORB创建并维护IOR,服务器端生成的IOR文件(如echo.ior)供客户端使用,以建立通信连接。
5. **BOA(Basic Object Adapter)与POA(Portable Object Adapter)**:在早期版本的CORBA中,BOA是基本的对象适配器,但因为定制能力有限,移植性不佳,后来被POA取代。POA提供了更好的灵活性和可移植性,MICO支持这两种适配器。
示例程序中,服务器端使用Orbit实现ORB,而客户端使用MICO。服务器端通过ORB创建并发布对象,生成IOR,客户端则读取这个IOR来找到并调用服务器端的对象。程序的关键部分包括编写IDL定义接口,创建和初始化ORB,注册对象,以及处理客户端的请求。
实现过程中,开发者需要注意ORB的初始化、对象的注册、IOR的生成和解析,以及客户端和服务端之间的通信协议。此外,还要考虑异常处理和错误报告,确保程序的健壮性和可靠性。通过这样的实现,不同厂商的ORB可以在Linux环境下无缝通信,极大地扩展了软件的可扩展性和可移植性。