`
akiraray
  • 浏览: 90432 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Code with Jacorb In Action Vol.1

阅读更多

花了半天把Jacorb的那些东西都看下 自己动手写了一个CRUD的小应用,网上Jacorb的教程多时启动的……实际编码的不多(不过Corba都是相同的)
乘今天兴致好……就随便写写丢丢人

目标读者:Corba白丁,Java初心
预备知识:Jacorb的环境配置(可以看偶前一篇日志)
应用介绍 一个简单的银行交易迷你系统……(这个比附带的DEMO还要简单)
功能JUST增删改查

动手之前确定一下这个软件需要作什么……
这是个服务器端程序,我们不需要界面,我们只需要客户端和我们遵守一些接口约定便可以提供服务
而与客户端的约定就是IDL文件……

首先写一下IDL文件
module cn{
	module bankApp{
	struct Account{
	long long id;
	string accountNo;
	string password;
	double amount;
	long category;
	};

	interface Bank{

	typedef Account Accounts[20];


	boolean drawMoney(in Account targetAccounti,in double amount);
	boolean saveMoeny(in Account targetAccount,in double amount);	
	boolean moveMoney(in Account initAccount,in Account targetAccount,in double amount);
	boolean cancelAccount(in Account detail);
	boolean createAccount(in Account detail);
	boolean updateAccount(in Account targetAccount);
	Accounts showAccounts(in long page);
	Account showAccount(in Account tragetAccount);
	boolean accountIsHaded(in string name);
	};	
	};
};



简单的说一下IDL描述的功能

module cn{
	module bankApp{

相当于java中的包
	struct Account{
	long long id;
	string accountNo;
	string password;
	double amount;
	long category;
	};

一个结构体,相当于JAVA中的一个POJO对象,为了封装起一些相关的基础数据

引用

interface Bank{

一个接口,相当于java中一个interface对象

typedef Account Accounts[20];

定义一个Account类型的数组 大小为20(固定的),别名叫Accounts

	boolean drawMoney(in Account targetAccounti,in double amount);
	boolean saveMoeny(in Account targetAccount,in double amount);	
	boolean moveMoney(in Account initAccount,in Account targetAccount,in double amount);
	boolean createAccount(in Account detail);
	Accounts showAccounts(in long page);
	Account showAccount(in Account tragetAccount);

这个接口提供的相关方法行为
依次为取钱,存钱,转帐(英文差),开户,查询指定帐户,查询系列帐户
boolean moveMoney(in Account initAccount,in Account targetAccount,in double amount);

boolean 代表返回类型,moveMoney是方法名,参数的签名格式为 in(传入) Account(类型) initAccount(变量名)
基本的Java与Ide对应类型,可以去WIKI看看,这里说一下java中的int对应IDL就是long
,java的long 对应long long(其实就是算位长的)

保存一下IDL文件命名为bank.idl

打开命令行,输入 idl bank.idl,然后Jacorb就自动解析了这个IDL文件
成功后发现多了一个./cn/bankApp的文件路径
AccountHelper.java  BankHelper.java  BankOperations.java  BankPOATie.java
AccountHolder.java  BankHolder.java  BankPackage          _BankStub.java
Account.java        Bank.java        BankPOA.java

*Helper *.Holderd都是将IDL中的结构体序列化OR反序列化的助手类(可以忽略)
_BankStub是一个装 负责对请求调用相应的接口阿,返回值的处理
BankOperations.java 就是接口,只表述这个应用作点什么
POA和POATie则是CorbaPOA的相应类

可以说Jacorba把大部分代码都生成了 ,我们现在只要关心我们自己的业务就可以了。
我们现在需要作的事情有这些
1.自己写一个类 负责实现Bank.java中的方法
2.自己写一个服务器类,负责注册NameServer和帮定端口
---
扩展
3.可以写一个简单的客户端类,用于测试通讯
这些放再下一次写了
分享到:
评论

相关推荐

    JacORB-2.3.0-bin.zip

    import org.jacorb.orb.ORB; import org.omg.CosNaming.*; public class Client { public static void main(String[] args) { ORB orb = ORB.init(args, null); NamingContextExt ncRef = ...

    JacORB 2.3 Programming Guide.pdf

    ### JacORB 2.3 Programming Guide #### 一、简介 **JacORB 2.3 编程指南** 是一份详尽的文档,为开发者提供了关于如何使用 JacORB 实现 CORBA (Common Object Request Broker Architecture) 应用的全面指导。...

    jacorb.jar

    提供jacorb.jar包的下载,中间件corba的jacorb实现jar包

    JacORB官方2.3以下所有版本(附带全部源码)

    ** JacORB 简介** JacORB 是一个开源的 Java Object Request Broker (ORB) 实现,它遵循 CORBA(Common Object Request Broker Architecture)标准。CORBA 是一种分布式计算框架,允许不同操作系统、网络协议和编程...

    JacORB-2.3.0-src.zip

    1. 配置MyEclipse或Eclipse,安装JacORB插件,以支持IDL到Java的编译。 2. 创建和编辑IDL文件,定义分布式对象的接口。 3. 使用插件编译IDL文件,生成对应的Java接口和 stub/skeleton 文件。 4. 在Java项目中导入...

    jacorb-2.3.1-bin.zip

    【jacorb-2.3.1-bin.zip】是一款基于Java的ORB(Object Request Broker,对象请求代理)实现,由JacORB项目提供。ORB是CORBA(Common Object Request Broker Architecture,公共对象请求代理架构)标准的核心组件,...

    JacORB2.1.zip

    1. JAR文件:如`jacorb.jar`,这是JacORB的核心库,包含了ORB实现和其他必要的类。 2. 文档:如`README`或`INSTALL`文件,提供安装和配置指南。 3. 示例和测试:可能包含一些示例代码和测试用例,帮助开发者了解如何...

    corba\eclipse中开发corba完整说明(jacORB版).txt

    - 确认`jacorb.orb`的输出信息,特别是`jacorb.hashtable_class`的设置是否正确。 2. **运行示例程序**: - 进入JacORB提供的示例目录(如`D:\JavaTool\JacORB-2.3.0\demo\grid`)。 - 使用Ant构建示例程序,...

    JacORB3.0官方最近版本

    3. **编程接口**:学习并理解JacORB提供的ORB接口和相关类,如`org.jacorb.orb.ORB`,编写符合CORBA标准的IDL(Interface Definition Language)接口定义,然后使用 JacORB 的 IDL 编译器生成Java代码。 4. **部署与...

    JacORB

    - `jacorb.properties.bak`:JacORB的配置文件备份,包含ORB的配置参数。 - `jaco.bat.bak`:可能是Windows系统的启动脚本备份,用于启动JacORB服务器。 - `idl.bak`:IDL文件的备份,包含CORBA接口定义。 - `idl....

    JacORB配置步骤

    - 复制`C:\JacORB\etc\jacorb_properties.template`到`C:\JacORB\classes`目录下,并重命名为`jacorb.properties`。 - 编辑`jacorb.properties`文件,设置命名服务地址: ```properties ORBInitRef.NameService=...

    JacORB安装包

    %JACORB_HOME%\lib\jacorb.jar;%JACORB_HOME%\lib\logkit-1.2.jar; %JACORB_HOME%\lib\picocontainer-1.2.jar;%JACORB_HOME%\lib\slf4j-api-1.5.6.jar; %JACORB_HOME%\lib\slf4j-jdk14-1.5.6.jar;%JACORB_HOME%\lib\...

    jacorb开发

    D:\Java\JacORB\lib\logkit-1.2.jar"org.jacorb.idl.parser-d%D%%F%` (注意修改路径以匹配您的实际环境) ##### 2.5 创建示例项目 1. **新建 Java 项目**: - 启动 Eclipse,创建一个新的 Java 项目。 2. **新建 ...

    jacorb_demo.zip_DEMO_JAVA中间件Demo_java 中间件

    在这个DEMO中,我们关注的是JACORB(Java Object Request Broker Architecture)——一个开源的Java CORBA实现。CORBA(Common Object Request Broker Architecture)是一种标准的中间件技术,它允许不同平台上的...

    corba jacorb 配置

    @JAVA_CMD@-Djava.endorsed.dirs=@JACORB_HOME@/lib-Djacorb.home=@JACORB_HOME@-Dorg.omg.CORBA.ORBClass=org.jacorb.orb.ORB-Dorg.omg.CORBA.ORBSingletonClass=org.jacorb.orb.ORBSingleton-classpath%CLASSPATH...

    jacorb-3.7 源码版

    1. **阅读源码**:从 `org.jacorb` 包开始,逐步了解 JacORB 的核心组件,如ORB、Naming Service、Dynamic Invocation Interface (DII) 和 Dynamic Skeleton Interface (DSI)。 2. **编译与测试**:按照文档指导,...

    JacORB-2.2.3-源代码

    1. **安装 JacORB**:解压下载的JacORB-2.2.3压缩包,配置环境变量如`JACORB_HOME`,并将bin目录添加到PATH中。 2. **编写 IDL 文件**:定义分布式对象的接口,使用CORBA的IDL语法。 3. **编译 IDL**:使用`idlj`...

    JacORB 2.3 Programming Guide

    1. **安装和配置**:指导用户如何在不同环境中安装和设置JacORB,以及如何配置ORB参数。 2. **IDL到Java绑定**:解释如何使用IDL定义接口,并自动将其转换为Java代码。 3. **ORB初始化和启动**:描述如何在程序中...

Global site tag (gtag.js) - Google Analytics