|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
多谢指点,其实我对.net网页编程和ruby也不是很了解,对与java也只是刚起步的阶段,只是在学习中有了点想法就写出来了,现在俺本科还没毕业,所以对大型项目基本上也没有什么经验。
6月份,我们谈过您为何要利用CORBA和Java手艺。本月,我要经由过程一个可用的复杂示例,让您入手下手探究CORBA手艺的很多范畴。不外,别忘了我们的方针是,创立如许一种散布式使用程序:使驻留在一台盘算机上的客户性能向运转于另外一台盘算机上的服务收回哀求。我们不想为诸如硬件或操纵体系软件等细节成绩费心,而只是想让这类服务能呼应客户机的哀求。
IDL接口
全体CORBA布局是从一个接口入手下手的,了解接口的最好办法就是想像我的汽车,对,我的汽车。固然您不熟习它,但假如我对您说:“开上我的车,带些三明治返来当午饭”,生怕您就不会嫌疑本人能不克不及驾驶我的汽车。您大概想晓得它停在那里,和开它是不是平安,可是您会确信开我的车与开您的车不同不年夜。这是由于,在各类汽车傍边,人与汽车之间的接口已高度尺度化了。我的轿车和您的跑车之间大概会有一些差别,但汽车的油门踏板、刹车和偏向盘的安装都是尺度的,您必定能轻松疾速上路。
由于CORBA与言语有关,以是它依托一种接口界说言语(IDL),来表达客户机怎样向完成接口的服务收回哀求。我们的接口就是一个办法:add()。这个办法将取两个数(两个IDL的long型数)并前往这两个数之和。上面是我们的接口盘算程序:
清单1.calcsimpl.idl
modulecorbasem{
modulegen{
modulecalcsimpl{
interfacecalculator{
longadd(inlongx,inlongy);
};
};
};
};
这个接口中的IDL关头字有:module、interface、long和in。IDL利用关头字module来创立称号空间,而且此关头字正确地映照为Java关头字package。运转IDL-to-Java编译器时,天生的Java文件将会存到名为calcsimpl的子目次中。IDL关头字interface完善地映照为Java接口,并代表一种笼统范例,由于二者都只界说您与对象通信的体例,而不触及对象的完成。IDL关头字long是一种基础的整数范例,它最少映照为一个4字节的范例,这类范例在Java代码中就是int。
想想实行远程办法挪用的机制,您就会发明界说参数传送的偏向(客户机到服务器、服务器到客户机大概双向传送)是何等的成心义。在IDL操纵中,这些偏向用in、out和inout关头字来声明,每一个参数都必需声明偏向,以便使对象哀求代办署理程序(ORB)晓得该参数的去处。这会影响到为发送而举行的参数打包、参数解包和内存办理。ORB对参数懂得得越多,它的效力就越高。关头字in标明longx和longy是从客户机传送到服务器。
.介入CORBA哀求的各个部分
<br>
IDL编译器必要IDL编译器吗?
您大概已有了ORB供给商和IDL-to-Java编译器。但假如还没有,您从那里猎取呢?这里有很多多少,并且有些还能够收费下载。我保举ObjectOrientedConcepts,Inc.的OrbacusORB。假如不将其用于贸易目标,它还能够收费下载,并且完整切合CORBA2.3标准。别的一个可试用60天的编译器是Inprise的Visibroker,也完整切合CORBA2.3标准而且可下载。如想取得这两种产物,请参阅参考材料。
接口界说今后,必需在ORB供给商供应的IDL-to-Java编译器上运转。IDL编译器是一种精致的有用程序,它天生IDL的stub和skeleton和别的撑持文件。天生的这些源文件,年夜部分将加强CORBA尺度中界说的特定IDL范例的打包功效。编译器将天生年夜部分收集探测(plumbing),这在散布式体系中十分主要。在最基础的级别中,IDL-to-Java编译器只是一个按CORBA2.3标准的界说来完成从IDL到Java言语映照的程序。手动天生这些代码既单调又费时,还简单堕落;IDL-to-Java编译器会处置这统统,以是您就不必费心啦;同时,它会用必定的划定规矩束缚您,并强迫您实行封装。IDL-to-Java编译器将把CORBA-land划定规矩强加给您的体系。
输出上面的命令,从Orbacus实行IDL-to-Java编译器,把一切天生的文件都放在CLASSPATH的输入目次下。
<p>
最后就是我对java的几点希望:首先是IDE工具,有人说java已经很好了,有jbuilder,eclipse,net网页编程Beans等等,但是我认为如果java想超越.net网页编程,那么他首先要解决的就是IDE工具的整合。 |
|