《多层体系结构下网通信息系统设计与实现.pdf》由会员分享,可在线阅读,更多相关《多层体系结构下网通信息系统设计与实现.pdf(65页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、华中科技大学硕士学位论文多层体系结构下网通信息系统设计与实现姓名:刘欣申请学位级别:硕士专业:软件工程指导教师:肖来元20051022 I摘摘 要要 随着 Internet 的飞速发展,传统应用逐渐向 B/S(浏览器/服务器)架构的多层应用转化。具有分布性、开放性和平台无关性特点的应用成为企业级应用的主流。作为企业级应用开发的主要技术 J2EE 对开发基于 B/S 架构的多层、分布式应用提供了强大的支持,受到开发人员的青睐。J2EE 平台提供了一个多层结构的分布式应用模型,该模型具有重用组件的能力、基于 XML(扩展标记语言)的数据交换、统一的安全模式和灵活的事务控制。利用 J2EE 平台构建
2、网通信息系统,可以使其具有灵活性、可伸缩性,更适应网络环境。网通信息系统是采用 MVC 设计模式来实现的,MVC 设计模式分离了数据的控制和数据的表现,这样使系统的设计更加明确,实现更加简单,在实现多层 Web应用系统中具有明显的优势。Struts 是一个基于 J2EE 平台、实现了 MVC 设计模式的框架,它全面减轻了构建多层 Web 应用的负担,提供可复用的软件构架。在分析了 WEB 应用系统共性的基础上,利用软件体系结构、框架、面向对象、设计模式等有关思想设计并实现了一个基于 J2EE 平台的采用了 MVC 模式的 Web 应用框架,同时,利用该框架成功的实现了网通的信息系统,并解决了开
3、发中的众多问题。本框架可以成为企业级 WEB 应用开发中解决众多问题的一个优良的途径。关键词:关键词:设计模式 企业级应用 浏览器/服务器 软件体系结构 IIAbstract With the rapid development of Internet,traditional applications are converting into B/S architecture based,multi-tier application gradually.Applications with features like distributed,open and platform-independen
4、t have become mainstream of enterprise application development.As the main technology of enterprise development,J2EE platform offers effective support to develop B/S archtecture based,muti-tier,distributed applications.It gains more and more developers preference.J2EE provides a multi-tiered distrib
5、uted model which has reusable components,data exchange based on XML,and security pattern and traction service.The paper uses J2EE to design a flexible,scalable logistics management information system of Netcom.This system is implemented with MVC design pattern,MVC design pattern separates control of
6、 data from representation of data which make system designing become clear and system developing become easy,and therefore has the advantage of implementation of multi-layer Web applications.Struts is the application framework which implements MVC based on J2EE platform.It eases the burden of constr
7、ucting multi-layer Web applications and provides reusable software architecture.This paper designs and implements a web application framework based on J2EE platform with the ideas about software architecture,framework,design pattern,and object-oriented.And the Information System of Netcom is success
8、fully implemented with the framework.The framework adopts the idea of MVC design pattern.The framework will become a better reuseable web application framework that resolves many problems in the development of the enterprise web application.Key words:Design Pattern Enterprise application Browse/Serv
9、er Software Architecture 11 绪论绪论 1.1 课题的背景课题的背景 如今,企业信息化已经成为一种趋势,信息化给人们所带来的便利和高效也是显而易见的。越来越多的设计人员希望借助服务器端技术的快捷、安全以及可靠性,为他们的企业开发分布式的交易应用系统。在今天这样一个电子商务和信息技术飞速发展、并充满需求的世界里,企业应用必须以更少的资金、更快的速度和比以往更少的资源来设计、建造和运营。因此,为了降低成本、快速实现企业应用的设计和开发,J2EE 平台技术为企业应用的设计、开发、集及部署提供了一条基于组件的实现途径。J2EE 架构采用组件的思想,将商从客户端、服务器端独立出
10、来,更适应于日益复杂化和日益变化的商务逻辑的需要,从而带来了开发、维护和使用时的便利。J2EE 为搭建具有可伸缩性、灵活性、易维护性的商务系统提供了良好的机制 1。由于企业必须适应新的商业需求,利用已有的企业信息系统方面的投资,而不是重新制定全盘方案就变得很重要。这样,一个以渐进的(而不是激进的,全盘否定的)方式建立在已有系统之上的服务器端平台机制是公司所需求的。J2EE 架构可以充分利用用户原有的投资。这之所以成为可能,是因为 J2EE 拥有广泛的业界支持和一些重要的“企业计算”领域供应商的支持。每一个供应商都对现有的客户提供了不用废弃已有投资,进入可移植的 J2EE 领域的升级途径。由于基
11、于 J2EE 平台的产品几乎能够在任何操作系统和硬件配置上运行,现有的操作系统和硬件也能被保留使用25。J2EE平台以其丰富的系统功能,通过 JDBC,JMS,XML,JNDI,CORBA 等 API 可以与几乎所有关系型数据库、事务处理服务器、消息处理服务器、目录服务器和邮件服务器等进行无缝的集成,完美地结合成一个整体,保护原有的投资,并且为将来的发展留出广阔的空间 6。本课题的研究,就是来源于基于 J2EE 的网通信息系统设计和开发,以此来讲述和分析 J2EE 的企业级应用框架以及其性能优化。网上信息系统面向客户提供业务受理、信息查询、网上交费、卡类服务、投诉与建议等适合网上开展的基本服务
12、功能。21.2 国内外研究概况国内外研究概况 本项目是一个信息系统,信息系统的开发与研究现在越来越在国内外的各个行业得到充分的重视,人们可以享受现代信息化所给大家带来的前所未有的便捷。政府信息化取得的主要进展是一些中央部门的纵向业务网建设和部分省市、地市和少量县市的跨部门政府网络建设。在国家规定涉密网和外部网实行物理隔离后,部分政府内外网重建己经开始。纵向网和跨部门网络建设继续呈快速发展之势,网络建设的重心将转向业务数字化、网络化。在国家信息化专项规划的基础上,需要制订政府信息化的总体规划,其重心应该是政府专网建设、政府信息收集、交换和发布的改革。计划、经贸、财政、公安、税务、海关、工商、审计
13、、统计等部门的网络系统将进一步完善,业务系统网上进行的比重有所增加,但整体上仍处于信息化的早期发展阶段。信息化带动工业化,实现生产力的跨越式发展,企业信息化是关键,又是重点。近期,企业信息化建设取得了很大进展,特别是在内部网的促进下,许多企业早期的网络和系统在这几年进行了更新。但是,无论从企业信息化深度即对劳动生产率的贡献,还是广度即开展企业信息化建设的比重和已开展信息化建设企业的业务覆盖面,都与国际先进水平均有十分巨大的差距。社会公共领域指除政府之外的全部领域,主要包括教育、科研、医疗、媒体、社会保障、市政、社区以及基础性、公益性的信息资源。2003 年,教育信息化取得了显著进展,教育科研信
14、息网的带宽和性能有较大幅度提升,规模扩大;校园网的建设继续快速发展,性能也将逐步提高。在“211”工程的带动下,校园网不仅基本在大学普及,更多的中小学也将加入到这个行列;远程教育初步为进入发展期打下基础,课件更加丰富,几个有一定规模和知名度的服务企业形成初步的竟争格局。社会保障信息网络建设从 2000 年在几个城市开始建设,有的已经投入运行,2003年将有更多的城市开展综合的社会保障信息网络建设,为公共领域信息化建设的实用化写下重重一笔。3智能化小区建设是社区信息服务的一个重要发展趋势。数字城市将在若干个大城市和有经济力量的中小城市继续试点,基础地理信息和市政基础设施数字化、交通道路管理、生活
15、指南等将成为数字城市的主要内容。远程医疗逐步普及,医院信息系统建设为医疗制度改革和提高医护水平逐渐发挥积极的作用。科研网络进一步扩大,科技信息资源进一步丰富,数字图书馆开始通过网络提供具有规模的数字化内容。综上所述,信息系统的建设取得了很大的进步。但也应看到,目前计算机信息系统的建设远未覆盖所有业务。并且,在已建的应用系统中,还存在下列主要问题:1)各应用系统垂直分割,信息共享程度较低各类应用系统之间需相互配合、联合作战,其中包括在信息、情报方面相互提供支持。而现有应用系统多数为部、省、市三级的纵向、单向联系,数据存储相互独立,应用系统之间很难实现互访,造成信息难以共享,不能满足各应用系统之间
16、信息共享、联合作战的要求。同时,由于各应用系统之间关联程度低,资源共享困难,造成基层单位为其各类应用重复采集数据,在人、财、物方面造成较大浪费,重复建设现象严重。2)应用系统之间结构不统一,资源使用不合理。应用系统目前均有自己的传输功能,传输底层软件不统一,传输协议不一致,导致系统资源配置不合理,使用不可靠的传输软件还会发生丢失数据的情况。在信息安全方面,各应用系统均制定了各自的用户和口令管理制度,在规范、口令长度及访问控制方法等方面不统一。用户在综合信息网上查询信息,由于口令众多,使用困难,无法实现“单点登录,全网漫游”,严重影响数据的充分利用和特定应用的实现。各地在信息系统技术建设中缺乏统
17、一标准,导致运行平台繁杂,采用的系统软件不一致,给系统之间的互联带来一定困难。同时,各应用系统之间数据标准不统一,自成体系,使得不同应用系统之间、不同地区之间很难实现数据共享和数据交换,形成各自的“信息孤岛”,不能组合成一个有机的整体。3)应用系统的整体功能不完善。信息系统需要不断采用新技术,以提高应用水平和整体工作效率。目前,新技术 4应用还不够广泛,制约了信息系统的应用。例如,网络信息搜索只能逐层向下,按路径查找,查找效率低下,且很多查询要求无法满足。由于信息系统中尚未建立完整的安全体系,网络和信息安全方面较为薄弱。整体上安全体系结构的设计刚刚起步,管理上缺乏安全标准和制度,应用中缺乏实践
18、经验。随着信息化进程的推进,将会不可避免地出现安全隐患。当今大多数企业的管理信息系统都已经经历了从办公自动化(OA)、企业局域网(LAN)、企业广域网(WAN)、到企业因特网和建立企业 web 站点的阶段,企业内的各种信息系统业己基本发展完备,将它们以某种方式集成和统一起来既是水到渠成,又是当务之急。互联网经济近在眼前,而企业信息门户是 21 世纪的企业迈向互联网经济的大门。因此,从战略、策略管理角度看,企业拥有自己的信息门户是一种首选,也是互联网经济竞争的一种强有力的手段;是管理信息系统发展的新的方向。管理信息系统,是 1961 年在美国由 JD.Gallasher 首先提出的,并确定其为以
19、计算机为主体、信息处理为中心的综合性系统。其思想受到了广泛的欢迎,但在以后的十几年内没有得到所期望的效果。随着通讯技术、网络技术、数据库技术以及软件工程方法等相关技术的飞速发展,使管理信息系统成为计算机技术的重要应用领域,成为计算机信息系统中应用最普遍的一类系统。由于管理信息系统是一门正在发展的新兴的边缘学科,因此,关于管理信息系统的定义也同样在逐渐发展和成熟。目前国内外对此的定义不尽一致,根据 ISO 的定义和现代应用技术的发展,人们普遍认为,管理信息系统是由计算机技术、网络通讯技术、信息处理技术、管理科学和人组成的一个综合系统,它能提供信息,以支持一个组织机构的运行、管理和决策功能。管理信
20、息系统是为管理决策提供服务的,它不仅对管理活动中发生的信息进行收集、传递、加工、维护和使用,同时又为管理决策提供服务。它能如实记载企业各种活动的运行情况,又能利用己发生存储的数据预测未来,提供决策依据,利用信息控制企业行为,帮助企业实现规划目标。管理信息系统不仅具有系统一般的特征,而且具有其特定的特征。一般管理信息系统具有以下特征:51)集合性 管理信息系统是由人、计算机和与管理相关的各种信息等元素组成的统一整体。2)相关性 管理信息系统各元素之间相互作用、相互依存,任何一个元素发生变化会导致系统内其他元素发生改变。3)目的性 管理信息系统有明确的目标以及明确的系统功能和相关任务。4)适应性
21、管理信息系统是一个开放系统,并具有可修改性和可调性。5)整体性 整体思想、系统的思想包括整体优化观点,整体协调观点、综合技术观点以及可行性观点,整体性的核心是追求协调的整体功能和整体效率最优。管理信息系统是在数据处理系统上发展起来的,其特征是面向管理的一个集成系统,它覆盖了整个管理系统,对管理信息进行收集、传递、存储与处理,是多用户共享的系统,直接为基层和各级管理部门服务。管理信息系统最大特点是:1)高度集中统一,将企业各处数据和信息集中起来,进行快速处理,统一使用;2)有预测和控制能力,管理信息系统采用数学模型,如运筹学模型、数理统计模型,来分析数据和信息,以便预测未来,提供决策支持;3)有
22、一个中心数据库及网络系统,这是管理信息系统的重要标志。进入 20 世纪 90 年代以来,管理信息系统主要朝着集成和智能两大方向迈进。集成方向的一个突出代表就是计算机集成制造系统(CIMS)。智能方向的一个突出代表就是决策支持系统与专家系统的结合。综合以上国内外的概况,可以看出人类社会开始进入了信息时代,信息技术有效地降低了生产成本,提高了生产效率,促进了产业结构的优化升级。信息化是当今不可阻挡的趋势,企业信息化和政府信息化都可以使得工作效率提高,管理智能化。本文的信息系统开发也是顺应趋势,为了生活和工作的便利而设计开发。61.3 论文的主要研究工作论文的主要研究工作 本论文在综合当前信息系统的
23、开发和研究的基础上,对采用多层体系结构来开发企业级应用进行深入研究,其主要的研究内容包括以下几个方面:1)对目前的国内外企业级应用的开发和研究发展概况进行对比分析,明确企业级应用系统的功能,得出开发企业级应用系统的模型框架。2)在对开发企业级应用框架的分析基础上,把两种不同的主流体系结构放在一起进行对比,发现 J2EE 框架及其设计模式的优点,并结合实际的项目提出开发策略。3)结合解决策略,以及相关的技术基础的介绍,进一步研究系统的设计细节以及和其他企业级应用系统的异同,使得整个系统架构更优。4)介绍信息系统的整体设计方案与实现方式。5)归纳总结全文,提出后继的系统性能优化工作。72 系统的技
24、术基础系统的技术基础 在实现网通信息系统的过程中,采用的是 J2EE 的框架,利用 XML 来进行数据存储,涉及到了很多 J2EE 的关键技术,并且在系统架构的选择上也把.NET 和 J2EE 进行了对比。综合考虑,J2EE 的三层体系结构更适合系统的设计。本章就是对整个信息系统设计和开发的技术基础做一个简要介绍和分析。2.1 J2EE 的发展过程的发展过程 J2EE 的诞生和 Java 版本的历史息息相关,首先,我们来看看 Java 语言本身的历史。Java 的前身是一种与平台无关的语言,诞生于 1991 年 SUN 公司的一个研究项目,最初目的是为了应用于消费类电子设备的开发。1994 年
25、 Internet 开始起步,Java 逐渐发展成一种带有 Applet 和 JavaBean 之类技术的客户端开发语言。1995 年 Netscape 宣布把 Java 集成到其浏览器中,可执行的 Java 代码可以以 Applet 的形式在浏览器中运行,Java 开始流行 SUN 公司 1996 年 I 月发布 JDK 1.2,即 Java 2 平台,并于 1995 年 6月经集成重组后重新发布。目前 J2EE 的最高版本为 1.4。目前主要的 Java 平台及特点如下:1)J2SE Java 2 Standard Edition:用于创建嵌入式应用程序的 Java 平台;2)J2ME J
26、ava 2 Micro Edition:用于创建典型的桌面与工作站应用的 Java 平台;3)J2EE Java 2 Enterprise Edition:用于创建可扩展的企业级应用的 Java 平台。在 Java 发展的过程中,它首先取得了 Applet 的胜利,使得以 Web 为中心的开发广泛地采用了 Java 语言开发人员使用 Applet 技术,把开发的 Applet 很容易添加到到HTML 页面。但是随着 Web 技术的发展,传统的静态页面已经不能满足开展业务的需要,出现了服务器页面技术,这时 Applet 不能胜任此需求。SUN 看到 Web 应用的潜为,推出了 Java Serv
27、let 技术,满足服务器编程的需求。Servlet 广泛应用于企业级应用程序的开发中。后来其他厂商为了简化 Servlet 的开发,逐渐共同推出了 JSP 技 8术,JSP 更容易开发表示层,最后 SUN 也把 JSP 作为 J2EE 标准的一部分又由于 Servlet处理业务逻辑的局限,SUN 后来推出了 EJB 技术。2.2 J2EE 和和.NET 的比较的比较 本文的信息系统在开发初始阶段在考虑采用何种平台来进行开发,可供选择的是两个开发企业级应用的技术:J2EE 和.NET。作为目前两个主要的分布式企业级应用开发技术,J2EE 与.NET 都是系统开发时考虑采用的技术,下面从五个方面比
28、较一下两种技术711:开发语否两种平台主流的开发语言 Java 和 C#在架构上有着惊人的相似虚拟机技术,基于沙箱的安全模型,分层的命名空间,垃圾回收等。所以从第一眼看上去,C#简直就是 Java 的克隆但微软井不这样认为,微软的说明是:“它集成了 C+,Java,C 和 Smalltalk 等多种语言的精华,对它们共同的核心思想象深度面向对象(deep object-orientation),对象简化(object-simplification)等都一一做了参考”。一方面,C#的大多数关键字来源于 C+,使它在书上有别于 Java。但另一方面,C#的严格的类型转换等概念却明显来白于 Java
29、(当然,它的原始类型的定义史严格,并且据微软声称没有影响到效率。),使其在内涵上有克隆之嫌。但即是 Java,其有些特性也和 Smalltalk颇有渊源。所以评价一种开发语言的优劣不仅是看其外在的表现形式,更重要的是其实实在在的功效。作为一种新语言,C#加入了基于 XML 的标记,可以被编泽器用来直接生成文档,C#的另一个特点:一站式软件强调了自解释的编码方式,即头文件。和其他复杂的接口无需再被引用。也即是 C#,VB.NET 等代码片断可以任意的被加入到其他语言中。这无疑在多种语言混合编程的模式中是一次飞跃,但是,其难维护性也是不言而喻的。微软的.NET 的平台提供了像 C#,VB.NET,
30、COBOL 等多种开发语言,C#是新的,而其他的每一种语言都是在原有的基础上改造而来。这是微软煞费苦心并且也是不得已的要为习惯于这些语言的程序员铺一条便捷之路。但是,这些语言的改造是很明显的。首先是观念变了,Basic 等语言先天的缺少面向对象的内涵,现在却变成了面向对象的语言,这就不是要求其传统的程序员仅仅熟悉一些额外的关键字那么简单的问题了。基于面向对象的软件分析设计开发测试是完全不同于基于传统 9过程性语言的质变,所以这一过程的转变对传统程序员来讲也是一个痛苦和漫长的过程。在传统程序员面前,微软看似提供了丰富的解决方法,但对于实际问题而言,却是有些力不从心。所以一个简单的办法是:直接使用
31、 C#。对于独立软件开发商来讲,其转换成本不容忽视。其次,在一个软件项目中使用多种语言,开发商必须同时拥有多种语言专家和多个独立的难以互相支援的开发小组。无疑,这也使其软件的维护的成本己非线性的曲线增长。多样性是双刃剑,实施时需仔细斟酌12。跨平台能力跨平台是 J2EE 的最大卖点,也是至今还绊住微软的栅栏。当开发商完成了符合 J2EE 规范的软件时,其客户可以依据其喜好和实力来选择不同应用服务器。从基于开源的免费软件到高端满足 B2B 需求的商业套件来搭建白己的平台。但是由于 J2EE 的规范还不完善,各个 J2EE 服务器的提供商为了使其提供其各白理解的完整的功能,不得不添加一些额外的特性
32、这就使得使用了这些特别功能的应用软件,绑定到了特定的应用服务器上。随着 J2EE 规范的发展,这种差别会逐渐减小。微软的跨平台解决方案是 Web services,它解决的是异种平台上不同应用之间的连通性问题。Web services 解次的是异构平台上服务连通性的问题,但在现实中所更迫切需要的是如何在异构的平台上构造具有可扩展性,高可靠性,高可用性,错误恢复能力的企业应用。缺少这一点,从结构上讲,NET 平台还远未完善。中间层基于组件的软件开发技术可以在较高的级别上实现软件复用,加快企业软件开发的进程在J2EE 构架中,JavaBean 和 EJB(Enterprise JavaBeans)
33、被用来完成事物逻辑。其中 EJB和 JavaBean 有着类似的模型,但它被用来创建分布式的企业应用。它定义服务器端组件的模型,根据这些模型,简单的编码就可完成复杂的功能。在微软的.NET 平台中,旧的 COM 和 COM+的组件模型被新的组件模型所代替。增加了象基于沙箱的安全模型和垃圾回收等功能。并且实现了多重接口继承,扩展的元数据和新的代理模型等。旧有的 COM 和 COM+组件也可被映射到新的运行环境中。综上所述,两众架构在基于组件的中间层的设计上各有千秋,对于创建分布式的,复杂的,高效的,高可靠性的的应用程序都有着足够的能力。表不层两种架构都同时支持胖客户端和瘦客户端。即 C/S 模式
34、和 B/S 模式对子 C/S 模式,J2EE 提供了替代Java AWT 的 Java Swing,同时作为可视化组件的 JavaBean 也可用来构造系统。对于 10B/S 结构的表示层,J2EE 使用 Servlet,JSP(Java Server Page),HMTL,WML,XML 等工具来实现微软的胖客户端技术则由 Windows Forms 代替了 MFC。它们起的作用相同,在结构上 Windows Forms 被插入 NET 的运行时框架(runtime framework)和组件模型(component model)中。在瘦客户模型中,ASP.NET 代替了旧有的 ASP 和
35、HTML WML,XML 作为表示层。在 ASP.NET 中,C#,VB.NET 等语言的代码片断可被自由引用。ASP.NET 页面被首先转换成中介语言(Intermediary Language),然后再被中介语言及时编译器编译,最后运行于公共语言运行环境中,并且 ASP.NET 提供了页面的缓冲。大体上,两种架构所使用的表示层的技术非常类似,虽在细节上各有所长,但总体功能在伯仲之间。数据访问 J2EE 和.NET 以不同的形式支持数据的访问。JDBC 和 ADO 一样和所连接的数据库无关,井且通过连接,命令语句和结果集来对数据进行操作。所以属于中间层次的 API,更高一级的数据封装和数据管
36、理是通过实体 EJB(Entity EJB)来完成的基于容器管理的实体 EJB 使开发更快捷管理更方便事实上,由于实体 EJB 的 load()和 store()方法的同步机制,将大人缓解因并发而使数据库产生的瓶颈。也可以采用不属于 J2EE 规范的第二方数据访问工具.而微软的.NET的数据访问工具则由基于XML的ADO.NET代替了基于 COM 组件的 ADO。任何以 XML 为输出的数据源都可以作为 ADO.NET 的数据源。相应的结果集升级为数据集(DataSets),命令语句则升级为数据集命令(DataSetCommands)。从形式来看,微软的 ADO.NET 更新颖一些,基于 XM
37、L 的特性使其可以处理极其半富的数据源,并且,因其构架在 HTTP 协议之上,易于穿透防火墙,使沟通更为便利。但由于 XML 本身的基于标记的特性,很明显限制了在有超大数据量和有网络瓶颈的应用中的使用。而 J2EE 的数据访问规则显得略有单薄,但同时却更简单,更有效。并且通过对应用程序有效的层次的设计,对于数据库和基于 XML 的数据源的访问,也是可以无缝的整合的。J2EE 的优势在于:J2EE 为搭建具有可伸缩性、灵活性、易维护性的商务系统提供了良好的机制,高效的开发,支持异构环境,可伸缩性和稳定的可用性。总的来说,就企业而言,内部众多系统的整合、系统的延展性、安全性是更需要 11注意的议题
38、,而这些都是 J2EE 的优势,也是.NET 的不足之处.在效率方面,J2EE 主张通过硬件的效能增加来弥补软件的不足。由于网通现有的服务器基本上采用 UNIX 操作系统,而且结算模块对于安全性的要求比较高,所以系统决定采用 J2EE 技术.2.3 组件技术组件技术 组件是一个可重用软件构件,一个预先构建的封装的代码模块,它能够与其他的组件或者是硬编码一道很快地生成定制的应用程序。组件技术是一种近来才开始普及的最新软件开发技术,它指软件的内在单元,可以提供相关的功能和服务。组件单独开发并作为软件单元使用,它具有明确的接口,软件就是通过这些接口调用组件所能提供的服务,多种组件可以联合起来构成更大
39、型的组件,直接建立整个系统。组件必须是自包含的,组件设计中必须包括需求、源代码和可执行代码、接口规范、分析和设计模型、测试和其他同类术语。组件的实现必须支持一种或者多种其用户所希望获得的接口。使用组件有如下的优点:1)组件易于维护和修改;2)在软件的开发中,它有提高生产率的作用。只要将现有的组件进行组合,就可以得到新的应用程序;3)利用它构建应用程序有很大的灵活性;4)组件可以做成专门的产品出售,这样开发人员可以少学习一门专门的技能,可以把节省的精力放在自己关心的业务逻辑上;5)组件的实现可以采用多种语言。当今流行的开发应用程序的组件技术有:COM,EJB,CORBA,Servlet,JSP,
40、Applet 等。组件根据业务逻辑单元的耦合程度、功能的要求等综合因素来划分。我们把 耦合紧的业务逻辑单元放在一起,划分成一个组件。可以看出,组件内部是改内聚的,而组件间的耦合是松散的。122.4 J2EE 关键技术关键技术 本文的信息系统在设计和实现方面涉及到了很多 J2EE 的相关技术,下面来简单做个介绍。1)JSP JSP(Java Server Pages)是 SUN 公司于 1999 年 6 月推出的新技术,是基于 Java 的服务器端动态页面技术。JSP 规范的目标就是通过对内容与表示的分离,来简化动态Web 页面的创建和管理。JSP 在本质上是文件,它结合了 HTML(或 XML
41、)和新的脚本标记,一个.JSP 页面可以包含 HTML,Java 代码和 JavaBeans 组件,JSP 脚本最终在执行时要编译为 Servlet 脚本。当用户第一次请求 JSP 页面时,Web 服务器将 JSP 页面编译成 Servlet,然后 Web 服务器调用 Servlet 并向 Web 浏览器返回执行结果。一旦从JSP 页面编译出 Servlet,,Web 服务器对之后的请求就会简单的返回 Servlet 而不用每次都重新编译。JSP 规范虽然建立在 Servlet 规范提供的功能之上,但又有所不同 13:(1)作为一种页面技术,JSP 只实现了 HTTP 协议,所以只能应用于 W
42、eb 页面。(2)Servlet 是纯的 Java 代码。而在 Web 服务器把 JSP 页面编译成相应的 Servlet之前,JSP 页面只是基于文本的文档。(3)JSP 与 J2EE 模型更为一致,它的目标是在多层体系给构中简化动态表示层。它把 Web 应用程序中的静态和动态内容分离开来,从而分离表示和逻辑。而 Servlet将动态的内容和静态的内容相棍合来产生 HTML 14。JSP 使用 Java 语台作为其脚本语言,具有很多优点,由于 Java 是编译解释执行,所以 JSP 的执行效率较 VBScript,Pert 等语言要高。JSP 也是平台无关的,可以在任何平台下编写 JSP 网
43、页并在任何支持 JSP 的系统上运行。JSP 技术是一种开放的、跨平台的体系。Web 服务器、平台和其它组件都可轻松升级或交换而不影响基于 JSP 的应用程序。所以 JSP 非常适合需要升级而又要求保持人变的实时 Web 应用程序。作为 J2EE 的一部分,JSP 页面可以访问所有的 J2EE 组件和所有 J2EE 的标准服务。可以利用 JAVA 的企业级 API 开发系统,并使用 JSP 作为技术的前端如果与 JavaBeans 相结合,JSP 页面将很容易的保持内容和显示逻辑相背离。由于 JSP 是用标准的 HTML 语法混合自身语法标记来实现的,将内容和显示 13逻辑分离之后,进行页面设
44、计的人员不需要有使用 Java,C+等程序设计语言的能力和经验,而更新 JavaBeans 和 EJB 的人也无需精通 Web 页面的设计。JSP 可使 J2EE 应用程序的模块化程度更高。JSP 提供了一种标准的基于 XML 的接日来定义标记,并把标记打包成标记库。2)Servlet Servlet 是一种 Web 组件或程序,它提供了一种方式来扩展 Web 服务器的功能,能够用 HTML,XML 和其它 Web 语言来产生动态的生成 Web 内容。Servlet 用JavaServlet API 编写,用像 Tomcat 这样的服务器或容器管理。Servlet 是标准的,服务器端 JAVA
45、 应用程序,它把应用逻辑嵌入到 HTTP 请求一应答过程中。服务器接受请求、处理请求并送出适当的响应。Java Servlet API 用面向对象的方式对这一过程建模,使你能编写代码处理客户的请求并能动态地响应 15。Servlet 与 JSP 相比,Servlet 是纯的 Java 代码,在 Web 服务器把 JSP 页而编译成相应的 Servlet 之前,JSP 页面只是基于文本的文档一一这样,就把应用逻辑从表示逻辑中清晰地分离出来;从而使得应用开发者关心业务逻辑,而 Web 设计者关心表示逻辑。3)EJB EJB(Enterprise java bean)是一个服务器端的组件结构,它简化
46、了用 JAVA 创建企业级的分布式的对象应用系统。它提供了一个架构来开发和配置到客户端的分布式商业逻辑,因此可以明显的减少开发扩展性、高度复杂企业应用的难度。EJB 规范定义了EJB 组件应该如何和及时与它们的容器交互,由容器来负责提供普通的服务,例如目录服务、事务管理、安全、资源池和容错。以 EJB 2.0 规范开始,有三种类型的企业 Bean:Session Bean:一般地代表了一个应用程序执行的商业级逻辑。它代表与客户程序的一个短暂会话,而且能直接调用 JDBC 或者通过 Entity Bean 来执行数据库的读写操作。当使用 EntityBean 来完成调用时,Session Bea
47、n 将作为 Entity Bean 的客户。Session Bean 分为两种,有状态的 Session Bean 和无状态的 Session Bean。Entity Bean:一般地代表一个数据库中的数据以及作用于该数据的方法。在一个关系型数据库中的信息表中,每一行记录都有一个单一的 Entity Bean 来代表。Entity 14bean 是事务的,并且是长寿命的,只要数据留在数据库中,Entity bean 就存在 16。MessageDriven Bean:用于异步地处理 Java 消息服务的消息。它使用 JMS 监听发送来的消自,并匿名地处理这些消息。Message Driven
48、Bean 小直接显示给客户机,是无状态和匿名的。Message Driven Bean 完全由容器管理,不允许客户机通过创建和删除方法来管理它们的生命周期 17。虽然 EJB 具有这些优点,但是它的开发比较复杂,所以在我们的应用系统构建过程中,同时使用 Entity 周期较长,对硬件要求高。Bean 来封装数据操作和使用 JDBC来操作数据库,并且使用 Session Bean 来封装商业逻辑,使用 JavaBeans 来连接表示层对商业逻辑的调用。4)JDBC Java数据库连接(Java DataBase Connectivity,JDBC)API是JDK提供的与关系数据库接口的底层 AP
49、I,现在大多数数据库支持到 JDBC2.0.JDBC API 提供针对 SQL 兼容的关系型数据库提供了一组通用的数据库访问方法,使用这些 API,可以实现不同厂商之间的互连和在不同厂商提供的关系型数据库之间进行数据访问。J2EE 通过对 Java 2 标准版提供的核心 JDBC API 进行的扩展,可以提供优化网络资源的连接池和分布事务、行集等高级特性。JDBC 2.0 Optional Package API 同 Java事务 API 一起实现分布式事务。JDBC 2.0 Optional Package API 提供的连接池比传统的连接池方式更为透明。传统的连接池是一种客户端的连接池,需
50、要客户程序负责实现健壮的连接池机制18。而采用 2.0 提供的方式,应用服务器和/或数据库驱动器就能内部的处理连接池池就会自动地工作配置了 J2EE 应用服务器后,只要用数据源对象获取连接,连接这种途径非常简单,系统管理员可以方便的使能和配置连接池,而不用去考虑任何应用程序。5)JNDI Java 命名和目录服务接口(JNDI)被设计来简化对目录基础结构的访问。目录是一种特殊类型的数据库,它提供了对数据存储的快速访问方式。JNDI 提供了标准的 API来访问任何类型的目录,也可以在网络上存储和检索 Java 对象。命名服务是一个服务,它为一组给定的数据提供创建标准名字的服务。目录服务是命名服务