二章基于CORBA的分布式平台.ppt
文本预览下载声明
4.7 CORBA编程-Hello World例程 分布式HelloWord程序的操作 运行环境 内容 内容 编写 IDL 接口 4.7.1 编写 IDL 接口 2、将 Hello.idl 从 IDL 映射到 Java 2、将 Hello.idl 从 IDL 映射到 Java Hello.java,代码如下所示: /* idltojava 生成的 Hello.java */ ? package HelloApp; public interface Hello extends org.omg.CORBA.Object { String sayHello(); } 2.6.2 编写客户机应用程序 4.7.3 编写 Hello World 服务器程序 4.7.4 编译和运行 4.7.4 编译和运行 启动JavaIDL名字服务器后的结果 启动Hello服务器后的结果 启动Hello客户机后的结果 第二章 基于CORBA的分布式平台 苗启广 计算机学院 qgmiao@ 客户机调用HelloServer的sayhello()操作 ORB把调用传给为IDL接口注册的提供服务的对象 提供服务的sayhello()方法运行并返回Java String ORB将该String传回客户机 客户机打印string值 运行环境由jdk1.3+idltojava 组成,具体的安装步骤如下: 安装JDK1.3: 从SUN公司下载jdk 1.3或者通过其他方式得到jdk 1.3进行安装,再设定相应的环境变量,在本文测试用的电脑上是如下所示: 下载idltojava: Java IDL编辑器(idltojava)在/products/jdk/idl/中单独提供。在JDK 1.3版中则提供了新的IDL编辑器idlj 编辑IDL文件则用任何文本编辑器即可,具体的编写过程如下: 1、 编写 IDL 接口包括: l??? 如何编写简单的 IDL 接口定义; l??? 如何将 IDL 接口转换到 Java ; l??? idltojava 编译器生成的每个文件的用途 。 2、开发客户机应用程序,说明如何编写简单的客户机应用程序,包括: l??? 如何创建 ORB 对象 ; l??? 如何使用命名服务来取得初始的对象引用 ; l??? 如何调用 CORBA 对象上的操作 。 3、开发客户机 Applet ,说明如何编写与客户机应用程序执行同样功能的客户机 applet 。 4、开发 Hello World 服务器,说明如何编写简单的服务器,包括: l??? 为服务器创建 ORB 对象 ; l??? 实例化服务程序并将它连接到 ORB ; l??? 通过命名服务来注册该服务程序 ; l??? 使服务器等待对服务程序的调用 。 IDL接口定义了应用程序中客户机部分和服务器部分之间的约定,同时指定可用的操作和属性 用来指定分布式应用程序的操作接口,与编程语言无关 编写实现代码前,必须将IDL接口映射到Java(自动完成) 实现映射后,IDL每条语句都转换为所选编程语言中的相应语句 启动自己熟悉的文本编辑器,创建名为 Hello.idl 的文件,编写如下代码: module HelloApp { interface Hello { string sayHello(); }; };? 可以看出用于 Hello World 的 IDL 非常简单,它的单一接口执 行单一操作。仅需执行三步: l?????声明 CORBA IDL 模块 l????声明接口 l????声明操作 1、编写 Hello.idl 是一个名字空间,是相关接口和声明的容器,每条模块语句都被映射到一条Java Package语句 声明一个对象与其它对象的API约定,映射后,IDL中的每条interface语句都映射到一条Java Interface语句 服务器将代表调用他们的客户机执行的行为,每条操作语句都在所生成的JAVA接口中生成相应的方法语句 工具IDLtoJava读取IDL文件并创建所需的JAVA文件,执行: 进入命令行提示 将目录改为hello.idl文件所在的位置 输入编译器命令:idltojava hello.idl 或 idlj –fall hello.idl 生成Helloapp目录,生成一些文件。 生成的五个主要文件分别是: _HelloImplBase.java:此抽象类是服务器 skeleton,为服务器提供基本 CORB
显示全部