网站导航网学 原创论文 原创专题 网站设计 最新系统 原创论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 交易代码 > Java精品代码 > 正文

使用非JAVA代码

论文降重修改服务、格式排版等 获取论文 论文降重及排版 论文发表 相关服务
制台窗口内的一行输出文字,提醒我们当前的时间是多少。当然,这一结果本身并没有什么令人兴奋的。但应注意一个问题:即使都处在同一台机器上,客户和服务器应用仍然运行于不同的虚拟机内。它们之间的通信是通过一个基本的集成层进行的——即ORB与命名服务的集成。

  这只是一个简单的例子,面向非网络环境设计。但通常将ORB配置成“与位置无关”。若服务器与客户分别位于不同的机器上,那么ORB可用一个名为“安装库”(Implementation Repository)的组件解析出远程字串式引用。尽管“安装库”属于CORBA的一部分,但它几乎没有具体的规格,所以各厂商的实现方式是不尽相同的。

  正如大家看到的那样,CORBA还有许多方面的问题未在这儿进行详细讲述。但通过以上的介绍,应已对其有一个基本的认识。若想获得CORBA更详细的资料,最传真的起点莫过于OMB Web站点,地址是http://www.omg.org。这个地方提供了丰富的文档资料、白页、程序以及对其他CORBA资源和产品的链接。

  A.6.3 Java程序片和CORBA

  Java程序片可扮演一名CORBA客户的角色。这样一来,程序片就可访问由CORBA对象揭示的远程信息和服务。但程序片只能同最初下载它的那个服务器连接,所以程序片与它沟通的所有CORBA对象都必须位于那台服务器上。这与CORBA的宗旨是相悖的:它许诺可以实现“位置的透明”,或者“与位置无关”。

  将Java程序片作为CORBA客户使用时,也会带来一些安全方面的问题。如果您在内联网中,一个办法是放宽对浏览器的安全限制。或者设置一道防火墙,以便建立与外部服务器安全连接。

  针对这一问题,有些Java ORB产品专门提供了自己的解决方案。例如,有些产品实现了一种名为“HTTP通道”(HTTP Tunneling)的技术,另一些则提供了特别的防火墙功能。

  作为放到附录中的内容,所有这些主题都显得太复杂了。但它们确实是需要重点注意的问题。

  A.6.4 比较CORBA与RMI

  我们已经知道,CORBA的一项主要特性就是对RPC(远程过程调用)的支持。利用这一技术,我们的本地对象可调用位置远程对象内的方法。当然,目前已有一项固有的Java特性可以做完全相同的事情:RMI(参考第15章)。尽管RMI使Java对象之间进行RPC调用成为可能,但CORBA能在用任何语言编制的对象之间进行RPC。这显然是一项很大的区别。

  然而,可通过RMI调用远程、非Java代码的服务。我们需要的全部东西就是位于服务器那一端的、某种形式的封装Java对象,它将非Java代码“包裹”于其中。封装对象通过RMI同Java客户建立外部连接,并于内部建立与非Java代码的连接——采用前面讲到的某种技术,如JNI或J/Direct。

  使用这种方法时,要求我们编写某种类型的“集成层”——这其实正是CORBA帮我们做的事情。但是这样做以后,就不再需要其他厂商开发的ORB了。

  A.7 总结

  我们在这个附录讨论的都是从一个Java应用里调用非Java代码最基本的技术。每种技术都有自己的优缺点。但目前最主要的问题是并非所有这些特性都能在所有JVM中找到。因此,即使一个Java程序能调用位于特定平台上的固有方法,仍有可能不适用于安装了不同JVM的另一种平台。

  Sun公司提供的JNI具有灵活、简单(尽管它要求对JVM内核进行大量控制)、功能强大以及通用于大多数JVM的优点。到本书完稿时为止,微软仍未提供对JNI的支持,而是提供了自己的J/Direct(调用Win32 DLL函数的一种简便方法)和RNI(特别适合编写高效率的代码,但要求对JVM内核有很深入的理解)。微软也提供了自己的专利Java/COM集成方案。这一方案具有很强大的功能,且将Java变成了编写COM服务器和客户的有效语言。只有微软公司的编译器和JVM能提供对J/Direct、RNI以及Java/COM的支持。

  我们最后研究的是CORBA,它使我们的Java对象可与其他对象沟通——无论它们的物理位置在哪里,也无论是用何种语言实现的。CORBA与前面提到的所有技术都不同,因为它并未集成到Java语言里,而是采用了其他厂商(第三方)的集成技术,并要求我们购买其他厂商提供的ORB。CORBA是一种有趣和通用的方案,但如果只是想发出对操作系统的调用,它也许并非一种最佳方案。

  • 下一篇资讯: java小游戏源代码
  • 设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
    版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师