|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
Java到底会发战成什么样,让我们拭目以待吧,我始终坚信着java会更好。以上都是俺个人看法,欢迎大家一起交流.使用实例文章择要:
通用对象代办署理系统布局CORBA(CommonObjectRequestBrokerArchitecture)是对象办理构造所界说的用来完成当今大批硬件、软件之间互操纵的办理计划,CORBA也是迈向面向对象尺度化和互操纵的主要一步。
--------------------------------------------------------------------------------
注释:
用JAVA开辟CORBA使用实例
通用对象代办署理系统布局CORBA(CommonObjectRequestBrokerArchitecture)是对象办理构造所界说的用来完成当今大批硬件、软件之间互操纵的办理计划,CORBA也是迈向面向对象尺度化和互操纵的主要一步。
■CORBA手艺简介
复杂地说,CORBA同意使用之间互相通讯,而不论它们存在于那里和是谁计划的。CORBA1.1于1991年由OMG公布,个中界说了接口界说言语(IDL)和在对象哀求代办署理(ORB)中完成客户对象与服务器对象之间交互的使用编程接口(API)。CORBA2.0于1994年公布,划定了各个供给商之间的ORB的通讯划定规矩。
CORBA尺度次要分为三个部分:接口界说言语(IDL)、对象哀求代办署理(ORB)和ORB之间的互操纵协定IIOP。
ORB是对象之间创建Client/Server干系的两头件。利用ORB,客户能够通明地挪用一个服务对象上的办法,这个服务对象能够在当地,也能够在经由过程收集毗连的其他呆板上。ORB截获这一挪用同时卖力查找完成服务的对象并向其传送参数、挪用办法前往终极了局。客户其实不晓得服务对象位于甚么中央,它的编程言语和操纵体系是甚么,也不晓得不属于对象接口的其他体系部分。如许,ORB在异构散布情况下为分歧呆板上的使用供应了互操纵性,并没有缝地集成了多种对象体系。
在开辟传统的Client/Server使用时,开辟者利用他们本人计划的或一个公认的尺度来界说用于设备之间通讯的协定。协定的界说依附于完成言语、收集传输和很多其他要素,而ORB的呈现简化了这一历程。利用ORB时,协定是利用接口界说言语(IDL)界说的,而IDL是自力于言语的。而且ORB供应很强的天真性,它使程序员选择最合适的操纵体系、实行情况,乃至体系各个组件也能够接纳分歧的编程言语完成。更主要的是,它同意现有组件的集成。在一个基于ORB的办理计划中,开辟者可使用与创立新对象一样的IDL对遗留体系举行建模,他们创立"包装"代码以在尺度化的软件总线与遗留体系接口之间传送信息。
利用CORBA,用户能够通明地会见信息,其实不必要晓得信息存在于甚么软件中、利用甚么硬件平台,和位于企业收集的甚么中央。作为面向对象体系的通讯中心,CORBA为明天的盘算情况带来了真实的互操纵性。
■CORBA与JAVA的互相干系
CORBA不但意味着对象哀求代办署理(ORB),它仍是十分周全的散布式对象平台。CORBA使JAVA使用能够超过收集、言语和操纵体系,并为JAVA供应了一组散布服务,如散布式自我察看、静态发明、事件、干系、平安和定名等。
JAVA不但是一种言语,它仍是一个静态代码体系,它对运转对象来讲是一个可移植的假造机(JVM)。JAVA为开辟、办理、公布Client/Server使用供应了更复杂的体例。人们能够经由过程将使用放在一个Web服务器大将这一使用公布给不计其数个用户,而不用体贴它的安装和晋级。JAVA还十分合适服务器的开辟,它能够静态地将服务代码移向最必要它们的中央。
JAVA将会使CORBA对象可以运转在从主机、收集盘算机到蜂窝德律风等可编程的各类呆板上,并简化了年夜型CORBA体系的代码公布。对客户和服务对象来讲JAVA是很幻想的编程言语,JAVA内置的多线程、渣滓搜集和毛病处置使编写强健的收集对象变得很简单。
这两种对象模子能够很好地互相增补,CORBA处置收集的通明性,JAVA处置完成的通明性,CORBA为JAVA可移植使用情况供应了一个散布式的布局。
■利用JAVA开辟CORBA使用
上面让我扼要先容一下开辟CORBA的步骤。
利用JAVA开辟CORBA使用必要以下五个步骤:
1.利用IDL创立接口(About.idl)
2. 上面的OMGIDL形貌一个CORBA对象。
moduleAbout
{
interfaceShow
{
stringShowName();
};
};
将其存为Show.idl。
3.编译接口并天生CORBA撑持文件
我们用以下命令编译这个IDL接口:
idltojavaShow.idl
idltojava是SUN公司的IDL编译器,能够收费从SUN公司站点高低载。
由于idltojava在编译IDL文件之前,必要举行预编译,而假如你的呆板上没有预编译器,可使用以下命令:
idltojava-fno-cppShow.idl
编译后将在以后目次下天生About子目次,个中会包含一些撑持文件,若有乐趣能够看一下,但必定不要修正。
4.完成服务器(ShowServer.java)
ShowServer的main()办法,可完成以下义务:
(1)创立一个ORB实例
(2)创立一个服务对象实例(CORBAAbout对象的完成)并关照ORB
(3)猎取一个定名高低文的CORBA对象援用,在该定名高低文中注册新的CORBA对象
(4)在定名高低文中将新对象注册在"About"名下
(5)守候对新对象的挪用
完成服务器源程序以下:
importAbout.;
importorg.omg.CosNaming.;
importorg.omg.CosNaming.NamingContextPackage.;
importorg.omg.CORBA.;
classShowObjectextends_ShowImplBase
{
publicStringShowName()
{
return"
MynameisSeymour!!
";
}
}
publicclassShowServer{
publicstaticvoidmain(Stringargs[])
{
try{
//创立和初始化ORB
ORBorb=ORB.init(args,null);
//创立服务对象并将其向ORB注册
ShowObjectShowRef=newShowObject();
orb.connect(ShowRef);
//猎取根定名高低文
org.omg.CORBA.ObjectobjRef=orb.resolve_initial_references("NameService");
NamingContextncRef=NamingContextHelper.narrow(objRef);
//绑天命名中的对象援用
NameComponentnc=newNameComponent("About","");
NameComponentpath[]={nc};
ncRef.rebind(path,ShowRef);
//守候来自客户机的挪用
java.lang.Objectsync=newjava.lang.Object();
synchronized(sync){
sync.wait();
}
}catch(Exceptione){
System.err.println("ERROR:"+e);
e.printStackTrace(System.out);
}
}
}
4.完成客户机(ShowClient.java)
上面的使用程序客户机将完成以下义务:
(1)创立一个ORB;
(2)猎取一个指向定名高低文的援用;
(3)在定名高低文中查找"Show"并取得指向该CORBA对象的援用;
(4)挪用对象的ShowName()操纵并打印了局。
importAbout.;
importorg.omg.CosNaming.;
importorg.omg.CORBA.;
publicclassShowClient
{
publicstaticvoidmain(Stringargs[])
{
try{
//创立和初始化ORB
ORBorb=ORB.init(args,null);
//猎取根定名高低文
org.omg.CORBA.ObjectobjRef=orb.resolve_initial_references("NameService");
NamingContextncRef=NamingContextHelper.narrow(objRef);
//剖析定名中的对象援用
NameComponentnc=newNameComponent("About","");
NameComponentpath[]={nc};
About.ShowShowRef=ShowHelper.narrow(ncRef.resolve(path));
//挪用Show服务对象并打印了局
Stringshow=ShowRef.ShowName();
System.out.println(show);
}catch(Exceptione){
System.out.println("ERROR:"+e);
e.printStackTrace(System.out);
}
}
}
5.构建和运转ShowName程序
(1)编译.java文件,包含stub和skeleton(在About目次中):
javac.javaAbout/.java
(2)启动一个MS-DOS命令注释器,输出以下命令,确保名字服务器处于运转形态:
tnameserv-ORBInitialPort1050
(3)启动另外一个MS-Dos命令注释器,输出以下命令,启动Show服务器:
javaShowServer-ORBInitialPort1050
(4)再启动一个MS-Dos命令注释器Show使用程序客户机:
javaShowClient-ORBInitialPort1050
这时候屏幕上会呈现"MynameisSeymour!"的字样,申明实行已乐成了。
但是我同意你的观点,对于大型项目来说,应该是采用框架的一部分,根据功能的不同而改进,欢迎你能再提出些宝贵意见,我会多多学习的。说到jbuilder,我可能是个人感觉,用的时候确实没有vs爽,我最喜欢的IDE是netbeans,谢谢。 |
|