JAVA网站制作之用JAVA开辟CORBA使用实例
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,谢谢。 是一种突破用户端机器环境和CPU Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading) 在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。 如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。 Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。 Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。 至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。 Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。 Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。 至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。 多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。 学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。 你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。 是一种语言,用以产生「小应用程序(Applet(s)) 是一种使网页(Web Page)产生生动活泼画面的语言 象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。 应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展 还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。 是一种突破用户端机器环境和CPU
页:
[1]