阅读以下关于数据通信方面的叙述,回答问题1和问题2。
数据通迅是当前十分活跃与热门的计算机与信息技术的应用领域。某大型通信公司开发了其业务的主要支撑平台(也叫做“通信信息服务平台”)用于在全国与全球开展数据业务的需要。该平台是一个典型的Java技术应用于Internet的项目。马工程师提出在全系统中强以这样来用的Java构架系统:
(1)该系统可分为4层,分别是Browser、表示层、中间件层和数据层。
(2)表示层用Java中的JavaScript来实现页面输出。
(3)中间件层用Java来实现CORBA,即实现Component(构件),主要实现业务逻辑的封装与复用。
(4)数据层主要是数据库和存储过程的实现。
在应用Java技术时,马工程师所采用的技术和策略可大致上归纳为以下5个方面:
(1)使JavaScript尽量简单,因为JavaScript在系统中是放在服务器端执行的,该语言是通过一个解释执行的,相对速度很慢,采用了两台HP前置机来运行JavaScript,但是其运行速度还是不理想,所以在设计中把JavaScript仅用来显示从中间件层所得到的数据,生成动态页面。在最初的设计中表示层(JavaScript)曾承担了一些业务逻辑处理操作,导致效率不理想,因此,不得不尽量地减少JavaScript的程序量。
(2)用Java实现CORBA时,应尽量考虑共享和复用。在本系统中,最初的设计是让Java在实现Component时,只是执行一些数据库表的操作,导致表示层的负载较大。后来重新设计时,总结归纳了所有的UseCase,找出了其中可供共享和复用的接口,把相同的业务逻辑操作封装到一个接口中去。因为Java的执行效率比JavaScript要高,因此提高了系统效率。
(3)由于在别的项目中,该公司曾大量地使用过Java中的JSP技术和Servlet技术,为了得到系统的一些执行速率的数据,采用了一个著名的压力测试软件—LoadRunner来测试这两种技术的差别。测试表明:用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之后必须明确要求回收内存(当然,也只能是通知垃圾收集器来回收垃圾),这样可以有效地提高系统稳定性。
但是在使用Java作为解决方案时,也遇到很多头疼的问题,这些问题导致同时执行的并发性比较差,系统速度慢等等。归纳起来看,曾遇到过的主要具体的问题有:
(1)用Java来实现CORBA中的Component,有时效率会比较低。
(2)用Java来建立数据库连接往往会比较慢。
(3)用JSP编程时容易导致系统信息的扩散。比如,如果有黑客攻击一台运行JSP程序的服务器,他可以故意地输入一些非法字符或异常信息给JSP程序,于是程序执行将出现异常。这时,就会在页面上打印出相应的错误信息。很不幸的是,这些信息极有可能暴露出这台服务器的JDK的版本号与路径信息等内容。这往往容易让黑客们有机可乘,在可能去抓住系统的漏洞。
【问题1】
试提出马工程师遇见的3个问题的解决方案,并各用80字以内文字说明理由。
【问题2】
Java语言作为一种快捷、稳定的计算机语言,开发基于因特网应用的项目大多是相当稳定和比较适用的。试用200字描述Java的应用前景。
参考答案:
【问题1】
(1)尽量减少Component所执行的业务逻辑量。争取把能够放在存储过程中实现的操作,尽可能在存储过程中加以实现。数据库的存储过程操作比起在Java程序中执行数据库操作要快得多。
(2)既然用Java建立数据库连接比较慢,就可以把数据库连接封装成连接池(Connnect Pool),从而能非常有效地提高系统效率。
(3)可以不从程序入手,而从Web Server着手,把Apache配置成为使这类异常信息不再打印出来,而是使之仅出现一个通用的异常说明的页面。
【问题2】
(1)在因特网上将会有更加广泛的应用。
(2)在嵌入式设备中,Java也大有用武之地。比如,在最新推出的Java技术中,Java已经进入了手机领域。
(3)Java程序大多以线程运行,占用资源少,会逐步代替ASP与CGI程序。根据第三方测试表明,JSP程序比ASP程序要快2倍以上。用JSP代替ASP应是大势所趋。
(4)Java在无线互联网中的应用将会更加广泛。Java支持WAP,可以方便地用Java开发WAP程序,实现WAP应用。
(5)Java与XML的无缝连接使Java在数据传输和异构网络通信方面有着很大的优势。
更多关注: