background image

      论 Java 技术在因特网平台上的应用——通信服务平台的应用

【正文】
    数据通讯是当前十分活跃与热门的计算机与信息技术的应用领域。某大型通信公司开发了
其业务的主要支撑平台,在这里,我们简称之为

“通信信息服务平台”,用于在全国与全球

开展数据业务的需要。该平台是一个典型的

Java 技术应用于 Internet 的项目。

    作为信息技术公司中的一名技术骨干,我有幸参加了该系统的分析与设计工作,承担了
相当多的

Java 应用开发任务。此系统中的软件部分大多由 Java 来实现,在全系统中我们是

这样来用

Java 构架系统的:

   (1)本系统可分为 4 层,分别是 Browser、表示层、中间件层和数据层。
   (2)表示层用 Java 中的 Java Script 来实现页面输出。
   (3)中间件层用 Java 来实现 CORBA,即实现 Component(构件),主要实现业务逻辑
的封装与复用。
   (4)数据层主要是数据库和存储过程的实现。
    我们在应用 Java 技术时,所采用的技术和策略可大致上归纳为以下 5 个方面:
   (1)使 Java Script 尽量简单,因为 Java Script 在我们系统中是放在服务器端执行的,该
语言是通过一个解释器解释执行的,相对速度很慢,我们采用了两台

HP 前置机来运行

Java Script,但是其运行速度还是不理想,所以我们在设计中把 Java Script 仅用来显示从中
间件层所得到的数据,生成动态页面。在最初的设计中表示层(

Java Script)曾承担了一些

业务逻辑处理操作,导致效率不理想,因此,我们不得不尽量地减少

Java Script 的程序量。

   (2)用 Java 实现 CORBA 时,应尽量考虑共享和复用。在本系统中,最初的设计是让
Java 在实现 Component 时,只是执行一些数据库表的操作,导致表示层的负载较大。后来,
我们重新设计时,总结归纳了所有的

Use Case,找出了其中可供共享和复用的接口,把相

同的业务逻辑操作封装到一个接口中去。因为

 Java 的执行效率比 Java Script 要高,因此提

高了系统效率。
   (3)在别的项目中,我们曾大量地使用过 Java 中的 JSP 技术和 Servlet 技术,一般人可
能不能区分这两种

Java 技术的区别。为了得到系统的一些执行速率的数据,我们采用了一

个著名的压力测试软件

——Load Runner 来测试这两种技术的差别。测试表明:用 JSP 和

Servlet 完成同样的一个操作,并且保证是在相同的测试环境中(相同服务器、压力测试工作
站与数据库环境),得到的测试数据却有着很大差别,

JSP 完成一个操作的平均执行时间

大致会是

Servlet 程序的两倍。在一个企业级应用项目中,这可能是一个很关键的瓶颈。因此,

我们得出的结论是:在可能的条件下,尽量地多使用

Servlet。当然,与 Servlet 相比,JSP 编

程快速,修改方便,在访问量不是很大的应用场合下也是可以接受的。
   (4)使用 Java 作为整体解决方案时,应尽量使用相同版本的 JDK。在用 Java 作为编程语
言的项目中,几乎大多要遇到

“汉字”问题,即 Java 在没有经过转换的情况下,在输出汉字

时,很可能会出现乱码。采用不同版本的

JDK,解决的方案是不一样的,比如 V1.2.2 版本

JDK 和 V1.3 版本的 JDK 解决方法就会有一些不一样,把 V1.2.2 的 Java 程序放在 V1.3 的

JDK 中,就不能顺利输出汉字了。其根本原因在于 Java 使用了 Unicode 编码,和我们中国的
国标编码不一样。所以在这个意义上一些人竭力鼓吹的

“一次编写,到处运行”似乎不一定能

在所有的场合都行得通。
   (5)使用 Java 时,应尽量遵从软件规范。在 Java 中有一个 JVM 的概念,即在 Java 虚拟
机中使用了一个垃圾收集器,专门用来回收内存。但是该垃圾收集器在给编程人员带来方便
的同时,也隐埋下了隐患。在程序设计中,并不能强制执行垃圾收集器,所以,开发人员不
能确定某对象是否已释放,常常让编程人员养成依赖自动收集的坏习惯,因此我们要求:

Try,Catch 之后必须明确要求回收内存(当然,也只能是通知垃圾收集器来回收垃圾),