上一篇博客我们介绍了CORBA规范和CORBA中间件中涉及的几个基本概念,例如OMG是什么。OMA参考模型怎么理解,其中的对象请求代理ORB又发挥了什么作用等。本篇博客我们分析CORBA中间件的开发过程。
一、开发前的准备:
虽然CORBA中间件对于异类环境下的可互操作性提高了很好的支持,但是对于不同平台之间的系统移植来说还是一个难题,所以在开发过程中我们还是要尽量避免使用与平台有关的操作系统等。
在CORBA中间件中,分布式对象提供的服务的调用方式分为三种:
1、同步方式:调用时调用者会阻塞直接被调用的服务完成并返回。
2、异步方式:调用者发起调用后不会阻塞,等待服务完成期间可以执行其他操作,调用者通过轮询方式或者服务者发送的事件检测调用完成,服务完成后调用者检查并处理结果,异步方式通常依靠异步消息来实现。
3、单向方式:调用者只是发出调用请求,并不关心调用什么时候完成。
不同的方式适用不同的应用场合,我们根据客户程序的请求选择使用的调用方式。
在分布式系统环境下,我们采用Stub/Skeleton机制,开发者不需要自己编写底层通信,可以把精力集中在业务逻辑方面的开发。
二、CORBA开发过程:
尽管使用不同的ORB产品的具体操作差异很大,但程序员开发一个CORBA应用程序通过会遵循一定的框架,如果所示:
开发步骤如下:
1、编写对象接口:利用OMG的IDL编写对象的规格说明。
2、编译IDL文件:IDL文件的编译是通过IDL编译器将IDL映射到具体程序设计语言,产生客户程序使用的桩代码以及编写对象实现所需的框架代码。
3、编写客户程序:客户程序的编写分为三个步骤:
无论是客户程序还是服务程序,都必须利用ORB进行通信之前初始化ORB,其作用一个是让ORB了解有新的成员加入,以便后继为其提供服务,另一个作用就是获取ORB伪对象的引用,以备将来调用ORB内核提供的操作。所谓伪对象专指在CORBA基础设施中的一个对象。
1、编写对象实现:CORBA的应用程序对象实现采用的方式是继承。
2、编写服务程序:CORBA中有几种典型的服务。服务程序利用可移植对象适配器(POA)激活伺服对象共客户程序使用。服务程序通常是一个循环执行的进程,不断监听客户程序请求并为之服务。
编写服务程序的基本步骤如下:
1)初始化对象请求代理(ORB)
2)用所需策略创建一个可移植对象适配器(POA)。在程序中我们为POA起一个名字,客户程序必须使用相同的POA名字。
3)创建一个提供服务的伺服对象、伺服对象是服务端的本地对象,当伺服对象通过对象适配器注册到ORB后,就成为了一个可供远程调用的CORBA对象。
4)激活新创建的伺服对象。
5)激活POA管理器。
6)等待客户程序发来请求。
如下所示是一个服务程序的编写:
本篇博客整体介绍一下如何开发一个CORBA中间件,客户端与服务端程序应该以怎样的步骤编写。下一篇博客我们讲解在开发过程中关于对象接口的程序编写。