仓酷云

标题: 来看Apusic使用服务器和CORBA互操纵 [打印本页]

作者: 逍遥一派    时间: 2015-1-18 11:33
标题: 来看Apusic使用服务器和CORBA互操纵
那这个对象有什么意义?现在很多用javabean的人就不能保证对象有完整的意义,不成熟的使用模式等导致代码疯狂增长,调试维护的时间要得多得多。在说性能之前,先说说你这个比较的来历。据说微软为了证明。net网页编程比java好。
CORBA(CommonObjectRequestBrokerArchitecture,大众对象哀求代办署理系统布局)是由OMG(对象办理构造,ObjectManagementGroup)提出的使用软件系统布局和对象手艺标准,被普遍的用来开辟散布式体系。Apusic使用服务器是以RMI-IIOP(RemoteMethodInvocationInternetInter-ORBProtocol)协定为基本完成份布式的对象的远程会见,因而能够和CORBA对象举行相互挪用。而且,Apusic使用服务器还完全的完成了CORBA-EJB映照标准,可以在多个使用服务器实例和CORBA客户端之间传布事件、平安等高低文信息。CORBA和EJB的互操纵标准包括以下四个方面:EJB接口到CORBA接口的映照;
JNDI名字到CORBA称号服务(CosNaming)的映照;
EJB和CORBA之间的事件传布;
EJB和CORBA之间的平安传布。
本文将经由过程一个典范展现CORBA客户端会见部署在Apusic上的EJB。固然这是Apusic和CORBA互操纵最复杂的一个方面,而且不触及平安和事件的传布,但已显现了Apusic在互操纵方面的才能和开辟的一样平常步骤。
起首先容一下服务器和客户真个开辟运转情况。服务器真个情况为:
Windows2000Server
JDK1.4.2
Apusic使用服务器3.0
客户真个情况为:
Windows2000Professional
JDK1.4.2
Apusic使用服务器完整撑持尺度的EJB-CORBA映照,也就是说,EJB的home和remote也是CORBA对象。我们可使用JDK供应的RMI编译器rmic-idl为EJB发生CORBA视图的IDL接口。用来定位EJBhome接口的JNDI(Javanamingservice)被映照成CORBAnamingservice,如许,CORBA客户端就可以查找和定位home接口并象CORBA对象一样利用它们。下图形貌了CORBA客户端会见EJB的一样平常步骤:这些步骤包含:
开辟并部署EJB;
利用RMI编译器rmic-idl为EJB远程接口发生IDL;
利用CORBAIDL编译器依据客户真个程序言语为客户端发生存根(stub);
设置EJB服务器利用CORBA称号服务。Apusic缺省就利用CORBA称号服务作为JNDI服务的供应者;
CORBA客户端在CORBA称号服务中查找和定位EJB;
CORBA客户端象会见一般CORBA对象一样会见EJB;
起首开辟一个EJB模块,编译并部署到Apusic使用服务器上。这个例子中的EJB十分复杂,是一个StatelessSessionBean,只包括一个营业办法sayHello。
publicjava.lang.StringsayHello(java.lang.Stringname){
Stringresult="hello,"+name;
System.out.println("invokesayHello():"+result);
returnresult;
}
然后利用RMI编译器rmic-idl为EJB远程接口发生IDL:
rmic-idl-noValueMethods
-classpath%apusic_home%/lib/apusic.jar;../ejb/build
-didlsamples.ejb.Hellosamples.ejb.HelloHome
实际上可使用任何CORBA标准撑持的程序言语开辟CORBA客户端。本典范展现的是JavaCORBA客户真个开辟。利用JDK1.4.2供应的idlj编译上一步失掉的IDL:
idlj-emitAll-i./idl-i%java_home%/lib
-fclient
-pkgPrefixjavaapusic
-pkgPrefixjavaxapusic
-pkgPrefixsamplesapusic
-tdsrc
./idl/samples/ejb/Hello.idl
idlj-emitAll-i./idl-i%java_home%/lib
-fclient
-pkgPrefixjavaapusic
-pkgPrefixjavaxapusic
-pkgPrefixsamplesapusic
-tdsrc
./idl/samples/ejb/HelloHome.idl
注重,我们为IDL文件中的java、javax和samples模块在天生代码时增添了“apusic”作为package的前缀,如许能够制止同Java中心API的抵触。
JDK1.4.2供应的idlj编译器天生的Java代码包括了bug,必需手工变动这些毛病。将类_Exception.java,CreateException.java和RemoveException.java中的_read和_write办法正文或删失落。
这时候,我们依据IDL编译器编译天生的Java文件,供应客户端完成,主程序的代码片段以下:
ORBorb=ORB.init(args,null);
//LookuptheHelloHome,createanHelloanduseit.
NamingContextExtnc=
NamingContextExtHelper.narrow(orb.resolve_initial_references("NameService"));
HelloHomehome=
HelloHomeHelper.narrow(nc.resolve_str("ejb/CORBAClientSample"));
Hellohello=home.create();
Stringstr=(String)hello.sayHello("apusic,corbaclient");
System.out.println(str);
System.exit(0);
从下面的代码中我们看到了CORBA客户端怎样在CORBA称号服务中查找和定位EJB,而且怎样象会见一般CORBA对象一样会见EJB。
最初我们编译并运转客户端。注重,我们其实不必要编译一切idlj天生的Java源文件,只需编译包apusic.sample.ejb和我们编写的客户端主程序。Java编译器会依据类的毗连情形主动编译类中援用的其他类。
javac-d../build-sourcepath./apusicsamplesejb*.java
javac-d../build-sourcepath./CorbaClient.java
确认EJB已部署在Apusic上而且服务器一般运转。在命令行启动CORBA客户端,经由过程启动参数告知客户端Apusic的地位和端口,来包管客户端ORB的准确初始化。假定Apusic运转在本机上,端口为6888:
javaCorbaClient-ORBInitialHostlocalhost-ORBInitialPort6888
假如后面的步骤都准确完成,我们将在客户真个屏幕上看到:hello,apusic,corbaclient
这个例子只是复杂的展现了CORBA客户端可以会见EJB组件的营业办法。实践上CORBA和EJB的互操纵庞大的中央在于事件和平安的映照,因而请求开辟者对CORBA标准和开辟对照熟习。并且Java到IDL的映照大概碰到良多成绩,比方:ValueType映照,汇合的利用等,这就使CORBA客户端会见EJB在良多情形下不克不及乐成。即便云云,Apusic撑持和CORBA的互操纵,仍然对我们集成已有的CORBA体系、开辟异构情况的散布式使用供应了很年夜的匡助,只是对开辟职员的手艺请求对照高。

专门做了这个例子;而java的这个例子好像就是为了教学而写的,很多教学目的的例子是不考虑优化、性能的。
作者: 精灵巫婆    时间: 2015-1-21 10:14
接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
作者: 简单生活    时间: 2015-1-28 08:09
J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。
作者: 深爱那片海    时间: 2015-2-2 16:50
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
作者: 谁可相欹    时间: 2015-2-6 00:11
Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
作者: 金色的骷髅    时间: 2015-2-6 23:36
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
作者: 再见西城    时间: 2015-2-9 03:15
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
作者: 分手快乐    时间: 2015-2-26 19:49
是一种语言,用以产生「小应用程序(Applet(s))
作者: 莫相离    时间: 2015-3-6 04:40
还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。
作者: 小魔女    时间: 2015-3-8 11:31
是一种使网页(Web Page)产生生动活泼画面的语言
作者: admin    时间: 2015-3-14 13:28
你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?
作者: 冷月葬花魂    时间: 2015-3-15 22:22
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
作者: 小妖女    时间: 2015-3-19 03:39
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
作者: 若相依    时间: 2015-3-22 02:13
你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?
作者: 活着的死人    时间: 2015-3-24 07:52
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
作者: 小女巫    时间: 2015-4-1 22:35
是一种将安全性(Security)列为第一优先考虑的语言
作者: 灵魂腐蚀    时间: 2015-4-12 03:52
是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
作者: 若天明    时间: 2015-4-18 00:40
是一种为 Internet发展的计算机语言
作者: 只想知道    时间: 2015-4-19 02:41
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
作者: 山那边是海    时间: 2015-4-20 22:59
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2