系分论文5
论Java技术在因特网平台上的应用——论文1:ERP开发的应用
【摘要】
根据某类企业的迫切需要,我所在的信息技术公司组织了一个企业资源计划(ERP)项目的开发,希望推进我国ERP应用的发展,也希望更深入有效地运用Java技术。该项目的内容涉及到某类行业的企业生产经营的全过程,其基本目标是为了提高企业的劳动生产率,增加企业的利润,优化配置企业的资源,使企业的整体运营水平能上一个台阶。这是一个基于Java技术的Intranet典型应用项目。
在该项目中,我承担项目负责人的重要职责,比如在项目的准备阶段,我曾组织了对项目组的成员进行该类企业业务流程方面的培训;在项目需求分析和设计阶段,我着重考虑了架构好系统的框架和原型,为项目组及其他分析员进行下一步的细化分析奠定了坚实的基础。同时我还组织好项目总体组,把握住各模块之间的接日分析,保持各个分析员之间实现密切的沟通。在系统的开发阶段,做好开发、测试方面的协调和同步工作,保证系统的可靠性,在系统的实施阶段能够顺利地推进项目,此项目开发后的应用已得到了用户们的一致好评。
【正文】
与国际上ERP项目的广泛应用相比,我国的ERP应用水平尚有相当大的差距。根据某类企业的实际迫切需求,我公司组织了对一类ERP产品的开发,我有幸参与了该项目的分析与设计,开发的成果是一个典型的Java技术应用于Intranet的实际项目。
在选择具体的技术方案时,我们曾经进行了认真的思考和研究。对于选择普遍采用的微软模式的平台方案,还是跨平台式的Java方案,我们曾举棋未定,这是因为微软的VB+ASP已成为大家在较长时间工作后认可而熟悉了的方案。而Java由于其环境要求高与执行效率低的老大难问题,成为我们担心害怕的重要因素。但是Java的跨平台特性越来越成为人们的关注点,尤其是许多大中型的企业,他们现有的网络系统都是基于多种平台的,对跨平台的要求和呼声极为强烈,而对软件公司来说,软件的跨平台特性有可能会节约开发成本,降低维护量,也能获得更多客户的认可。综合考虑了诸多市场行情与行业发展因素,最终决定一定要用Java。所幸的是现在Java用于因特网的开发也已经越来越便利了。
目前Java在因特网上的开发技术已呈白花齐放之势态,有最初的Java Servlet,有与数据库联系在一起的SQL-J,还有可与ASP和PHP相媲美的JSP。尤其是JSP技术的迅速发展,使得Java的网络应用不再是少数人的专利,JSP以其执行的高效性和使用的方便性,已成为近年来大家首选的因特网开发技术,JSP是一种页面开发技术,它以Java为其服务器端语言,结合Java Script作为其客户端语言,能方便地实现页面的表示。
选择好了后端的Java和前端的JSP,还有一项重要的任务,那就是前后的联接。由于JSP主要用于页面表现,需要表现的内容要封装起来,这样,为了保证主要商务逻辑的安全性,我们采用了Java Bean作为桥梁,即客户端JSP通过其中Java Bean的使用,完成主要的商务逻辑功能。在后台,将Bean构造好,形成一个强大的Bean库,再由前台JSP进行使用。
在进行Java Bean的规划时,我们下决心作出很大的投入,因为这些不仅是我们当前项目中所需急用的,而且还应成为公司长期积累使用的一个强大的资源库,能实现一定程度的资源共享和软件复用,为其他项目开发打好基础。因此,此次规划的目标是形成公司Java技术的Java Bean的平台库。
我们根据Java Bean所体现的类的用途,将这些类分成几个层次。最底部的一层就是参数化类的构造,这一层的类所实现的主要功能包括通用访问机制,对数据库等其他层次的访问接口和公共处理系统等。中间一层是实体类的构造,这些实体类包括与数据信息相关的结构及其处理方法,其中的重点是包含了一些重要的商务逻辑的处理。这一层类与系统各部分相关,并且其安全性要求很高,直接影响到系统主要功能的体现,因为系统的主体是对一些逻辑进行处理,这就要求这层实体类的规划需要十分认真,做到细节准确。最上面的一层可以称为接口类,这一层类主要用于实现底层的类与前台之间的关系。也只有这层类才能由前台JSP进行Java Bean调用而加以使用,只有这层具有开放性,这一层类除了上述的接口功能外,还应当有一项重要的实用内容,即包括用于实现前台JSP的页面自动构造程序。
这里所说的页面自动构造程序可以认为是本系统的一个重要特点,目的是为了让用户可以方便地自定义界面,而不需要由程序员修改程序,这样能够极大地满足了用户的要求。页面自动构成程序的主要内容包括对界面元素的定制与修改、位置的修改、动作的触发、行为的控制以及报表设计和计算汇总等功能。页面自动构成程序的设计主要采用上述的接口类与JSP相结合的方式,用类实现元素的定制、控制及关联,并将重要信息加以保存,以利于用户的多次反复修改。该自动构造程序提供了强大功能,已成为我们的一个独立产品。能应用于各个项目的界面制作,实现了我们原先制定的共享资源的目标。
在前台JSP的应用中,做到了尽可能最简化的程度,这样可以提高系统的安全性。当然在我们的系统中,还存在一些客户端控制比较复杂的情况,为保护这段比较复杂的控制脚本,我们采取了用Servlet的方法,保护这段脚本,从而保证了一定程度的安全性。
在系统的登录过程中,我们采取了相当严格的登录键检查操作,用户没有供应商提供的相应的键,就无法通过验证而进入系统。对于试用版的用户则提供了一种有效期限约束。这些加密或安全措施,通过在Java Bean中封装了严格而有强大功能的加密算法,在客户端申请验证后才能准予通过。
在使用这套技术方案的过程中,我们曾经遇到过许多的困难。比如;前面曾提到过要求JSP中代码能够尽量简化,以提高安全性。由于JSP中仍有一些容易让人可能猜测到处理方法的语句及处理的过程,为进一步提高安全性,我们通过查阅大量的网上资料,才形成了一套较好的措施,比如制作JSP的标记库,将有可能被猜测的处理进一步加以规划,对应地生成一套行之有效的实用标记库,这样就又增加了一道很有效的防护墙,大幅度地提高了安全保密性,并且使页面结构的分离达到了一定的水准。又如:在对数据的处理上,刚开始时也总是遇到系统运行会变得越来越慢的情况,最后追查其原因,发现原来是数据的连接过多,我们及时地采用了数据连接池等技术解决了此类问题。
该系统采用Java平台,提供了深入地使用Java Bean和JSP的方案,其效果是相当显著的,在用户真实使用环境中受到了一致好评,运行也较为稳定。由于采用了统一而方便的页面自动构造程序,用户的界面非常友善,并且可以按用户需求进行定制,满足了用户的适应性需求。而在我们公司的内部,也开始建立了一套基于此平台的资源库,成为公司的今后开发使用的宝贵财富。
必须指出的是,在此系统中,还存在着很多的不足,比如实体类的组装程度尚不尽如人意,根据多种商务逻辑的一些共同点,可以进一步加以抽象封装,使这部分内容能满足多种系统对类似逻辑的处理过程。我将会在今后的工作中进一步加强各方面的分析能力,带领团队不断地超越现在的层次与水准,加强我们的队伍建设,希望有更多优秀的软件产品上写着Made In China。(本文主要参考了上海陈莉莉等人的论文)
系分论文6
论Java技术在因特网平台上的应用——论文2:通信服务平台的应用
【正文】
数据通讯是当前十分活跃与热门的计算机与信息技术的应用领域。某大型通信公司开发了其业务的主要支撑平台,在这里,我们简称之为“通信信息服务平台”,用于在全国与全球开展数据业务的需要。该平台是一个典型的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之后必须明确要求回收内存(当然,也只能是通知垃圾收集器来回收垃圾),这样可以有效地提高系统稳定性。
以上这些实用性的技术与策略,是我们在实践中的一些实际体会,仅供各位开发人员根据实际情况参考。
当然,在使用Java作为解决方案时,也会遇到很多让我们头疼的问题,这些问题导致同时执行的并发性比较差,系统速度慢等等。归纳起来看,我们曾遇到过的主要具体的问题有:
(1)用Java来实现CORBA中的Component,有时效率会比较低。
(2)用Java来建立数据库连接往往会比较慢。
(3)用JSP编程时容易导致系统信息的扩散。比如,如果有黑客攻击一台运行JSP程序的服务器,他可以故意地输入一些非法字符或异常信息给JSP程序,于是程序执行将出现异常。这时,就会在页面上打印出相应的错误信息。很不幸的是,这些信息极有可能暴露出这台服务器的JDK的版本号与路径信息等内容。这往往容易让黑客们有机可乘,有可能去抓住系统的漏洞。
在发现了这些问题后,我们经过仔细研究,找出了一些解决办法。比如:
(1)既然用Java实现Component比较慢,我们就尽量减少Component所执行的业务逻辑量。争取把能够放在存储过程中实现的操作,尽可能在存储过程中加以实现。众所周知,数据库的存储过程操作,比起在Java程序中执行数据库操作要快得多。
(2)既然用Java建立数据库连接比较慢,我们就可以把数据库连接封装成连接池(Connect Pool),从而能非常有效地提高系统效率。我们也曾经用“Load Runner”作过压力测试,使用连接池比不使用连接池的速度要快上3~5倍。
(3)为了对付JSP程序与Servlet程序会打印出异常系统信息的问题。我们曾查阅了很多JSP或Servlet的资料,最终是毫无头绪。但是我们可以换另一种思路,即是不从程序下手,而从Web Server着手,我们可以把Apache配置成为使这类异常信息不再打印出来,而是使之仅出现一个通用的异常说明的页面,这样,就能十分有效地解决这个问题。
在我们使用Java作为编程语言的这么多项目中,绝大多数是比较成功的。Java语言作为一种快捷、稳定的计算机语言,开发基于因特网应用的项目大多是相当稳定和比较适用的。
在我个人看来,Java的应用前景十分光明,大体上可以着眼于以下方面:
(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在数据传输和异构网络通信方面有着很大的优势。
就我个人而言,我将会在相当长一段时期内致力于Java在无线互联中的应用,为我国的移动通信事业开发出更多的优秀实用的项目。
评注;参与了一个较大的项目后有实践体会。全文都采用1、2、3、4方式,文章的风格显得单调,不大吸引人。但是本文的优点是;(1)写得很有条理。(2)内容的选择合适。(3)所列举的策略、注意事项与发现的问题都很现实可信。(本文主要参考了广州王海波等人论文)
上一页 [1] [2] [3] [4] [5] [6] 下一页
转帖于:软件水平考试_考试吧- 推荐给朋友
- 收藏此页
·网络工程师资料:网络体系结构-软考网络类题解 (2008-4-25 14:33:38)
·计算机网络基础网络拓扑结构及优缺点分析 (2008-2-22 14:04:32)
·网络工程师必知:静态路由协议配置方法 (2008-2-22 14:03:39)
·计算机网络尼奎斯特 香农公式例题解析 (2008-2-22 14:02:35)
·软考复习:因特网IP的分类、寻址规则及子网掩码 (2008-2-22 13:57:21)