一、原理和概念
1)CORBA独立于任何编程语言,独立于操作系统
2)采用客户端和服务端模式,客户端和服务端分别配置存根和框架代理
3)ORB(Object Request Broker)充当客户端与服务端之间的中间件
4)IIOP(Internet Inter-Broker Protocol)网络ORB交换协议,不同的ORB通过IIOP通信
5)IDL(Interface Define Language),CORBA采用专门的IDL语言来定义接口。
二、创建CORBA程序的步骤:
1)使用IDL语言定义接口
2)编译接口,生成用目标语言编写的存根类以及其他辅助类的源文件。(java中通过bin/idij.exe来编译,编译后生成POA,Stub,Helper,Holder,Operations)
3)用目标语言来编写接口的实现类(继承*POA)
4)编写服务端程序,创建和注册CORBA对象
5)编写客户端程序,获取CORBA的远程调用
三、服务端创建注册CORBA的步骤
//1.创建和初始化ORB
ORB orb = ORB.init(args, null);
//2.获得根POA的引用,并且激活POAManager
POA rootpoa =POAHelper.narrow(orb.resolve_initial_references("RootPOA"));
rootpoa.the_POAManager().activate();
//3.创建一个HelloServiceImpl对象,并且把它与ORB关联
HelloServiceImpl helloServiceImpl = new HelloServiceImpl();
helloServiceImpl.setORB(orb);
//4.获得HelloServiceImpl对象的CORBA类型的对象引用
org.omg.CORBA.Object ref = rootpoa.servant_to_reference(helloServiceImpl);
HelloService href = HelloServiceHelper.narrow(ref);
//5.获得命名服务的Context
org.omg.CORBA.Object objRef =
orb.resolve_initial_references("NameService");
NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef);
//6.把HelloService对象与“HelloService”名字绑定
String name = "HelloService";
NameComponent path[] = ncRef.to_name( name );
ncRef.rebind(path, href);
System.out.println("HelloServer ready and waiting ...");
//7.等待客户端访问HelloService对象
orb.run();
四、客户端调用步骤
//1.创建和初始化ORB
ORB orb = ORB.init(args, null);
//2.获得命名服务的Context
org.omg.CORBA.Object objRef =
orb.resolve_initial_references("NameService");
NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef);
//3.获得名为“HelloService”的HelloService对象的远程引用
String name = "HelloService";
helloServiceImpl = HelloServiceHelper.narrow(ncRef.resolve_str(name));
//4.调用HelloService对象的远程方法
System.out.println("Obtained a handle on server object: " + helloServiceImpl);
System.out.println(helloServiceImpl.sayHello());
helloServiceImpl.shutdown();
分享到:
相关推荐
面向对象方法CORBA组件笔记.面向对象方法CORBA组件笔记.面向对象方法CORBA组件笔记.
自己看相关的corba文档整理的笔记,给大家分享一下
介绍C++ corba开发相关文档,详细讲述corba开发过程。
CORBA(Common Object Request Broker Architecture,公共对象请求代理体系结构)是由OMG(Object Management Group对象管理组织)提出的应用软件体系结构和对象技术规范,其核心是一套标准的语言、接口和协议,支持...
java CORBA,远程方法调用实现的小程序
CORBA示例代码CORBA示例代码CORBA示例代码CORBA示例代码CORBA示例代码CORBA示例代码CORBA示例代码
全书共22章,系统地介绍了CORBA的基本体系和概念,IDL语义和映射为C++的规则、POA和对象生命周期,CORBA机理和 ORB,动态 CORBA特性以及CORBA重要的服务程序。本书的独到之处在于它不仅介绍概念及资源,更重要的是...
一个介绍在java中使用corba的简单教程,来源于sun的官方网站。对于想开发分布式应用程序的朋友,是个不错的入门教程哦~~ 目录结构: Distributed Applications Data are Distributed Computation is Distributed ...
一款很不错的Corba模拟器,可以模拟Corba的客户端和服务器端。个人使用时免费的。功能很多。绿色安装。
corba 企业 解决方案corba 企业 解决方案corba 企业 解决方案corba 企业 解决方案corba 企业 解决方案corba 企业 解决方案corba 企业 解决方案corba 企业 解决方案corba 企业 解决方案corba 企业 解决方案corba 企业...
CORBA技术系列丛书之-CORBA服务,对于CORBA开发技术讲的特别详细清楚,并针对不同语言的特征进行了系列的讲述
COM与CORBA比较
本文档详细介绍了CORBA,以及如何使用C++进行CORBA编程。
corba性能采集文件样例corba性能采集文件样例corba性能采集文件样例corba性能采集文件样例corba性能采集文件样例corba性能采集文件样例corba性能采集文件样例
几个corba程序源代码
介绍\技术介绍\CORBA
CORBA接口开发详解
corba 相当好用的工具之一,可以协助服务端测试许多信息
简单的CORBA应用例子,指导迅速掌握corba的基本运用,实现跨语言,跨平台的应用集成
CORBA异常总结.pdf CORBA异常总结.pdf