毕业设计57基于J2EE招标信息管理系统的分析与设计.docx
《毕业设计57基于J2EE招标信息管理系统的分析与设计.docx》由会员分享,可在线阅读,更多相关《毕业设计57基于J2EE招标信息管理系统的分析与设计.docx(44页珍藏版)》请在冰豆网上搜索。
毕业设计57基于J2EE招标信息管理系统的分析与设计
基于J2EE招标信息管理系统的分析与设计
摘要
J2EE是一种利用Java2平台来简化企业解决方案的开发、部署和管理相关的体系结构。
当今许多企业都需要扩展业务范围,降低经营成本,缩短和客户之间的响应时间,这就需要存在一种简捷快速的服务在企业,合作伙伴和雇员之间。
提供这些服务的应用软件必须同企业信息系统(EIS)相结合,并提供新的能向更为广阔的用户提供的服务。
本设计用JSP+JavaBean来实现招标信息管理系统,结构上采用管理端与客户端分离的方法来实现,思想上采用面向对象机制,将项目、产品、厂商等封装成数据类,并且每个类都有对应的操作类;结构上采用界面、业务逻辑和数据分离的三层结果设计;数据库连接上采用了连接池,以此来提高数据库效率。
关键词:
J2EE;JavaBean;JSP;数据库连接池
J2EEtenderinformationmanagementsystemanalysisanddesign
ABSTRACT
J2EEisakindofsystemframeworkwhichusingtheJava2platformstosimplifytheenterprisesolutionofthedevelopment,thedeploymentandthemanagement。
Atpresent,therearemanyenterprisesallneedtoexpandthebusinessscope,toreducethecostofoperationandtheresponsetimewiththecustomer,thisneedstoexistonekindofsimpleandfastserviceintheenterprise,partnerandemployee.Internetsoftwarewhichcanprovidethoseservicemustcombinetotheenterpriseinformationsystem(EIS),andprovidesnewcapabilitywhichcanexpandtheuser.ThisdesignimplementthetenderinformationmanagementsystemwithJSP+JavaBean,inthestructure,whichusesthemethodtoseparatemanagementendandclientside;inthethought,whichusestheobject-orientedmechanism,ofwhichclassifytheproject,theproduct,merchanttodata,eachkindallhascorrespondingoperationclass;inthestructure,whichusestheinterface,businesslogicandthedataseparationthreelayerdesign;thedatabase–connectingusetheconnectionpondtoenhancethethedatabaseefficiency.
Keywords:
J2EE;JavaBean;JSP;databaseconnectionpond
附录A开题报告
附录B外文资料原文
附录C外文资料译文
附录D源程序代码
第一章绪论
1.1引言
本设计用JSP+JavaBean来实现招标信息管理系统,结构上采用管理端与客户端分离的方法来实现,技术上采用JSP+JavaBean+SQLServer2000来实现。
本设计的亮点在于设计思想上采用面向对象机制,将项目、产品、厂商登封装成数据类,并且每个类都有对应的操作类;结构上采用界面、业务逻辑和数据分离的三层结果设计;数据库连接上采用了连接池,以此来提高数据库效率。
1.2课题背景
招标系统是适应社会发展而开发计算机软件系统,它为广大建设单位以及招投标代理机构,提供了一个完善的建设工程工程量清单招标文件编制业务导向系统。
能自动生成符合清单投标文件的标准格式;并且采用了先进的.net技术、C/S的系统框架,能极为方便地通过INTERNET网络,将已编制的招标文件快速地发送至相关单位,开展相应的工作活动。
招标向导系统界面清晰,操作简便,整个应用环节均有中文提示,使用者只须根据提示逐步操作,即能在很短的时间内完成清单招标文件编制的所有工作,从而大大缩短了工作时间,提高了整个业务开展的工作效率。
并且利用系统特有的网络通信技术,帮助企业人员实现异地办公,充分体现了信息化的方便快捷。
(1)能够降低招标成本和招标管理开支;
(2)能够促进招标系统的信息化建设;
(3)能够加强对招标的监督力度;
(4)能够提高工作效率;
(5)能为所有投标单位参与投标提供平等竞争机会;
(6)能够规范负责招标人员的职业行为。
总之,确立科技创新战略,依靠科技创新建立我国独立、先进的技术体系,是我国招标系统技术与产业发展的前提。
1.3J2EE的介绍
1.3.1J2EE的概念
J2EE全称为Java2Platform,EnterpriseEdition。
J2EE平台本质上是一个分布式的服务器应用程序设计环境——一个Java环境,它提供了宿主应用的一个运行基础框架环境;提供了一套用来创建应用的Java扩展API。
目前,Java2平台有3个版本,它们是适用于小型设备和智能卡的Java2平台Micro版(Java2PlatformMicroEdition,J2ME)、适用于桌面系统的Java2平台标准版(Java2PlatformStandardEdition,J2SE)、适用于创建服务器应用程序和服务的Java2平台企业版(Java2PlatformEnterpriseEdition,J2EE)。
J2EE是一种利用Java2平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构[1]。
J2EE技术的基础就是核心Java平台或Java2平台的标准版,J2EE不仅巩固了标准版中的许多优点,例如"编写一次、随处运行"的特性、方便存取数据库的JDBCAPI、CORBA技术以及能够在Internet应用中保护数据的安全模式等等,同时还提供了对EJB(EnterpriseJavaBeans)、JavaServletsAPI、JSP(JavaServerPages)以及XML技术的全面支持。
其最终目的就是成为一个能够使企业开发者大幅缩短投放市场时间的体系结构。
J2EE体系结构提供中间层集成框架用来满足无需太多费用而又需要高可用性、高可靠性以及可扩展性的应用的需求。
通过提供统一的开发平台,J2EE降低了开发多层应用的费用和复杂性,同时提供对现有应用程序集成强有力支持,完全支持EnterpriseJavaBeans,有良好的向导支持打包和部署应用,添加目录支持,增强了安全机制,提高了性能。
J2EE为搭建具有可伸缩性、灵活性、易维护性的商务系统提供了良好的机制[2]。
保留现存的IT资产:
由于企业必须适应新的商业需求,利用已有的企业信息系统方面的投资,而不是重新制定全盘方案就变得很重要。
这样,一个以渐进的(而不是激进的,全盘否定的)方式建立在已有系统之上的服务器端平台机制是公司所需求的。
J2EE架构可以充分利用用户原有的投资,如一些公司使用的BEATuxedo、IBMCICS,IBMEncina,、InpriseVisiBroker以及NetscapeApplicationServer。
这之所以成为可能是因为J2EE拥有广泛的业界支持和一些重要的“企业计算”领域供应商的参与。
每一个供应商都对现有的客户提供了不用废弃已有投资,进入可移植的J2EE领域的升级途径。
由于基于J2EE平台的产品几乎能够在任何操作系统和硬件配置上运行,现有的操作系统和硬件也能被保留使用。
(1)高效的开发:
J2EE允许公司把一些通用的、很繁琐的服务端任务交给中间件供应商去完成。
这样开发人员可以集中精力在如何创建商业逻辑上,相应地缩短了开发时间。
高级中间件供应商提供以下这些复杂的中间件服务:
(2)状态管理服务:
让开发人员写更少的代码,不用关心如何管理状态,这样能够更快地完成程序开发。
(3)持续性服务:
让开发人员不用对数据访问逻辑进行编码就能编写应用程序,能生成更轻巧,与数据库无关的应用程序,这种应用程序更易于开发与维护。
(4)分布式共享数据对象CACHE服务:
让开发人员编制高性能的系统,极大提高整体部署的伸缩性。
(5)支持异构环境:
J2EE能够开发部署在异构环境中的可移植程序。
基于J2EE的应用程序不依赖任何特定操作系统、中间件、硬件。
因此设计合理的基于J2EE的程序只需开发一次就可部署到各种平台。
这在典型的异构企业计算环境中是十分关键的。
J2EE标准也允许客户订购与J2EE兼容的第三方的现成的组件,把他们部署到异构环境中,节省了由自己制订整个方案所需的费用。
(6)可伸缩性:
企业必须要选择一种服务器端平台,这种平台应能提供极佳的可伸缩性去满足那些在他们系统上进行商业运作的大批新客户。
基于J2EE平台的应用程序可被部署到各种操作系统上。
例如可被部署到高端UNIX与大型机系统,这种系统单机可支持64至256个处理器(这是NT服务器所望尘莫及的)。
J2EE领域的供应商提供了更为广泛的负载平衡策略,能消除系统中的瓶颈,允许多台服务器集成部署。
这种部署可达数千个处理器,实现可高度伸缩的系统,满足未来商业应用的需要。
(7)稳定的可用性:
一个服务器端平台必须能全天候运转以满足公司客户、合作伙伴的需要。
因为INTERNET是全球化的、无处不在的,即使在夜间按计划停机也可能造成严重损失。
若是意外停机,那会有灾难性后果。
J2EE部署到可靠的操作环境中,他们支持长期的可用性。
一些J2EE部署在WINDOWS环境中,客户也可选择健壮性能更好的操作系统如SunSolaris、IBMOS/390。
最健壮的操作系统可达到99.999%的可用性或每年只需5分钟停机时间。
这是实时性很强商业系统理想的选择。
1.3.2J2EE的四层模型
J2EE使用多层的分布式应用模型,应用逻辑按功能划分为组件,各个应用组件根据他们所在的层分布在不同的机器上。
事实上,sun设计J2EE的初衷正是为了解决两层模式(client/server)的弊端,在传统模式中,客户端担当了过多的角色而显得臃肿,在这种模式中,第一次部署的时候比较容易,但难于升级或改进,可伸展性也不理想,而且经常基于某种专有的协议――通常是某种数据库协议。
它使得重用业务逻辑和界面逻辑非常困难。
现在J2EE的多层企业级应用模型将两层化模型中的不同层面切分成许多层。
一个多层化应用能够为不同的每种服务提供一个独立的层,以下是J2EE典型的四层结构:
(1)运行在客户端机器上的客户层组件
(2)运行在J2EE服务器上的Web层组件
(3)运行在J2EE服务器上的业务逻辑层组件
(4)运行在EIS服务器上的企业信息系统(Enterpriseinformationsystem)层软件
1.3.3J2EE的核心API与组件
J2EE平台由一整套服务(Services)、应用程序接口(APIs)和协议构成,它对开发基于Web的多层应用提供了功能支持,下面对J2EE中的13种技术规范进行简单的描述:
(1)JDBC(JavaDatabaseConnectivity):
JDBCAPI为访问不同的数据库提供了一种统一的途径,象ODBC一样,JDBC对开发者屏蔽了一些细节问题。
另外,JDCB对数据库的访问也具有平台无关性。
(2)JNDI(JavaNameandDirectoryInterface):
JNDIAPI被用于执行名字和目录服务。
它提供了一致的模型来存取和操作企业级的资源如DNS和LDAP、本地文件系统或应用服务器中的对象。
(3)EJB(EnterpriseJavaBean):
J2EE技术之所以赢得某体广泛重视的原因之一就是EJB。
它们提供了一个框架来开发和实施分布式商务逻辑,由此很显著地简化了具有可伸缩性和高度复杂的企业级应用的开发。
EJB规范定义了EJB组件在何时如何与它们的容器进行交互作用。
容器负责提供公用的服务,例如目录服务、事务管理、安全性、资源缓冲池以及容错性。
但这里值得注意的是,EJB并不是实现J2EE的唯一途径。
正是由于J2EE的开放性,使得有的厂商能够以一种和EJB平行的方式来达到同样的目的。
(4)RMI(RemoteMethodInvoke):
正如其名字所表示的那样,RMI协议调用远程对象上方法。
它使用了序列化方式在客户端和服务器端传递数据。
RMI是一种被EJB使用的更底层的协议。
(5)JavaIDL/CORBA:
在JavaIDL的支持下,开发人员可以将Java和CORBA集成在一起。
他们可以创建Java对象并使之可在CORBAORB中展开,或者他们还可以创建Java类并作为和其它ORB一起展开的CORBA对象的客户。
后一种方法提供了另外一种途径,通过它Java可以被用于将你的新的应用和旧的系统相集成。
(6)JSP(JavaServerPages):
JSP页面由HTML代码和嵌入其中的Java代码所组成。
服务器在页面被客户端所请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。
(7)JavaServlet:
Servlet是一种小型的Java程序,它扩展了Web服务器的功能。
作为一种服务器端的应用,当被请求时开始执行,这和CGIPerl脚本很相似。
Servlet提供的功能大多与JSP类似,不过实现的方式不同。
JSP通常是大多数HTML代码中嵌入少量的Java代码,而servlets全部由Java写成并且生成HTML。
(8)XML(ExtensibleMarkupLanguage):
XML是一种可以用来定义其它标记语言的语言。
它被用来在不同的商务过程中共享数据。
XML的发展和Java是相互独立的,但是,它和Java具有的相同目标正是平台独立性。
通过将Java和XML的组合,可以得到一个完美的具有平台独立性的解决方案。
(9)JMS(JavaMessageService):
MS是用于和面向消息的中间件相互通信的应用程序接口(API)。
它既支持点对点的域,有支持发布/订阅(publish/subscribe)类型的域,并且提供对下列类型的支持:
经认可的消息传递,事务型消息的传递,一致性消息和具有持久性的订阅者支持。
JMS还提供了另一种方式来对您的应用与旧的后台系统相集成。
(10)JTA(JavaTransactionArchitecture):
JTA定义了一种标准的API,应用系统由此可以访问各种事务监控。
(11)JTS(JavaTransactionService):
JTS是CORBAOTS事务监控的基本的实现。
JTS规定了事务管理器的实现方式。
该事务管理器是在高层支持JavaTransactionAPI(JTA)规范,并且在较底层实现OMGOTSspecification的Java映像。
JTS事务管理器为应用服务器、资源管理器、独立的应用以及通信资源管理器提供了事务服务。
(12)JavaMail:
JavaMail是用于存取邮件服务器的API,它提供了一套邮件服务器的抽象类。
不仅支持SMTP服务器,也支持IMAP服务器。
(13)JTA(JavaBeansActivationFramework):
JavaMail利用JAF来处理MIME编码的邮件附件。
MIME的字节流可以被转换成Java对象。
第二章系统概论
2.1系统概述
2.1.1系统功能与背景
本设计的功能主要是对项目、厂商、产品信息的保存、查阅、修改与删除。
由于本系统主要是针对这些信息而设计的,所以功能主要集中在信息的阅读与操作方面。
可以通过本系统方便及时地查阅到相关信息。
具体途径有两种:
一种是通过搜索引擎直接输入关键字,系统对数据库进行查找并返回查找结果;另一种是用户直接在信息页面逐级搜索浏览[4]。
本系统中主要完成的功能如下:
(1)客户界面部分:
产品信息查询。
厂商信息查询。
项目信息查询。
综合查询。
(2)管理界面部分:
项目管理。
厂商管理。
2.2系统预览
如图2.1所示为客户端的产品信息、厂商信息、项目信息的查询界面。
从图中可以看出,客户可以对具体的某个产品。
项目或厂商信息进行查询,也可以进行综合查询,实现客户对信息的全方位了解和掌握[5]。
图2.1客户界面部分的信息查询界面
如图2.2所示为管理端的项目管理界面。
从图中可以看出,管理员可以增加、删除项目,单击某个具体的项目,可以对此项目信息进行修改。
图2.2管理端的项目管理界面
如图2.3所示是管理端的添加项目信息界面。
从图中可以看出,管理员添加项目信息时涉及的内容有项目名称、项目时间、项目负责单位、项目总造价和项目说明等。
图2.3管理端的项目信息添加界面
2.2.1系统特点
这个设计具有以下特点:
(1)功能模块化:
通过对功能的划分,将庞大的系统功能进行了分解、简化,并将它们整理成不同的模块,这样极大地提高了系统的开发效率,增加了代码的可重用性
(2)三层结构设计:
本系统采用三层结构设计,即程序逻辑结构氛围用户界面层、业务逻辑处理层和数据存储层。
三层在实际的物理结构上也是独立的,业务逻辑处理层采用JavaBeans实现,用户界面与业务逻辑分离,系统的安全性、可维护性、重用性和扩展性都大大提高。
(3)面向对象设计:
系统中将项目、产品、类别、厂商等信息都封装成相应的类,同时每个类都有自己对应的操作类,从而增加了本设计的安全性和逻辑上的可扩展性[6]。
2.3系统设计
下面着重从系统设计思想角度出发,介绍系统的功能模块划分和结构设计。
2.3.1系统设计思想
(1)管理端与客户端分离,使功能更加清晰
本设计把系统中的功能进行了划分,将功能划分为客户端与管理端两部分[7],这样划分的好处是思路比较清晰,便于开发。
(2)三层结构架构
采用三层架构设计,工作原理图如图2.4所示。
图2.4三层架构的工作原理图
采用三层架构以后,用户界面层通过统一的接口向业务逻辑层发送请求,业务逻辑层按自己的逻辑规则将请求处理之后进行数据库操作,然后将数据库返回的数据封装成类的形式返回给用户界面层。
这样用户界面层只和中间业务逻辑层进行交互,不用直接对数据库进行操作,它只要维护与中间业务逻辑层之间的接口即可。
这种方式在一定程度上增加了数据库的安全性及程序的可维护性。
同时也降低了对用户界面层开发人员的要求。
2.3.2系统功能模块划分
根据系统功能分析,可以画出系统的功能模块图。
本设计从客户端、管理端分别对功能模块图加以描述。
客户界面的系统功能模块图如图2.5所示。
图2.5客户界面的功能模块图
管理界面的功能模块图如图2.6所示。
图2.6管理界面的功能模块图
2.3.3系统结构设计
根据面向对象和三层结构的设计思想,可得出如图2.7所示的系统结构设计图。
图2.7系统结构设计图
2.4数据库设计
数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率,以及实现的效果产生影响。
合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致。
设计数据库系统时应该首先充分了解用户各个方面的需求,包括现有的及将来可能增加的需求。
数据库设计一般包括如下几个步骤:
(1)数据库需求分析。
(2)数据库概念结构设计。
(3)数据库逻辑结构设计。
2.4.1数据库需求分析
用户的需求具体体现在各种信息的提供、保存、更新和查询,这就要求数据库结构能充分满足各种信息的输出和输入[8]。
收集基本数据、数据结构,以及数据处理的流程,组成一份详尽的数据字典,为后面的具体设计打下基础。
通过上述系统功能分析,针对本系统的需求,总结出如下的需求信息:
(1)本系统主要包括项目管理、产品管理、厂商管理。
(2)项目中的投标设备基本都要分类,每一类包括一些产品。
(3)每个厂商都生产自己的产品,通过这些产品来参与某个项目的招标。
一个厂商可以生产多个产品,甚至可以是多类产品。
每个产品在招标时都要给出报价单。
(4)每个产品都对应着一个产品类别,一个类别可以有多个产品。
一个报价单对应着一个或者多个产品,一个产品对应着一个或多个报价单。
(5)每个项目的招标设备有一个或多个产品类别,一个类别可以对应多个项目。
经过上述系统功能分析和需求总结,考虑到将来功能上的扩展,设计的数据项和数据结构:
项目信息,数据项包括项目名称、项目时间、项目总造价、项目负责单位、项目内容说明等。
(6)设备类别信息,数据项包括类别名称和类别说明。
(7)厂商信息,数据项包括厂商名称、总部地址、注册建立时间、注册地址、注册资金、法人姓名、法人职务、企业性质、分支机构分公司分厂办事处、制造商在中国办事处或代理商代表的资料。
(8)产品信息,数据项包括产品名称、所属厂商ID、所属类别ID、产品说明。
报价单信息,数据项包括设备总价、备件和特殊工具总价、技术服务总价、选项件总价、配套工程费、国内投标商投标总价、投标保证金、交货期等信息。
2.4.2数据库概念结构设计
根据对上面的数据结构和数据项进行分析之后,就可以得到用户所需要的各种实体,以及实体之间的关系,这为数据库逻辑结构设计打下了基础。
这些实体包含各种具体信息,通过相互之间的作用形成数据的流动。
规划出的实体有:
管理员信息实体、普通用户信息实体、项目信息实体、设备类别信息实体、厂商信息实体、产品信息实体、报价单信息实体。
实体之间关系的E-R图如图2.8所示。
图2.8实体之间关系的E-R图
项目实体的E-R图如图2.9所示。
图2.9项目实体的E-R图
设备类别实体的E-R图如图2.10所示。
图2.10设备类别实体的E-R图
厂商实体的E-R图如图2.11所示。
图2.11厂商实体的E-R图
产品实体的E-R图如图2.12所示。
图2.12产品实体的E-R图
报价单实体的E-R图如图2.13所示。
图2.13报价单实体的E-R图
2.4.3数据库逻辑结构设计
数据库的概念结构设计完毕后,现在可以将上面的数据库概念结构转化为某种数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。
根据招标信息管理系统使用情况的不同,可以采用MySQL数据库或Oracle数据库。
本设计采用SQLServer2000数据库。
如表2-1所示为项目信息列表,记录项目信息。
表2-1项目(project)信息列表
Filed
Type
Null
Key
Default
Extra
Comment
project_id
numeric
NotNULL
primary
无
auto_increment