文档库 最新最全的文档下载
当前位置:文档库 › 金武的毕业论文6_9

金武的毕业论文6_9

本科毕业论文

城市公交查询系统

THE CITY PUBLIC TRANSPORT QUERY SYSTEM

学院(部):计算机科学与工程学院

专业班级:信息安全06-1

学生姓名:金武

指导教师:廖涛

2010 年 6 月 1 日

城市公交查询系统

摘要

城市公共交通(简称“公交”)是与出行人员生产生活息息相关的重要基础设施。提供良好的公交服务是建设和谐社会的基本要求。以信息化为基础,促进乘客、车辆、站点设施以及交通环境等要素之间的良性互动,推动公交系统建设。鉴于中国目前的经济发展状况,中国人出行还是以公交车为主,每个城市的公交系统都比较庞大发达。因此开发一个城市公交路线查询系统就显得十分必要,也更加适应现代社会的需求。本设计主要针对公交路线查询而开发设计的,使用了B/S模式,利用开发工具MyEclipse结合Java编程语言来完成了功能和界面设计,实现了公交路线的查询功能(包括按线路查询、按站点查询、换乘查询等);使用了Java中一些web控件编写数据库连接、更新数据,从而实现了公交信息的管理功能(包括对路线、站点等信息的添加、删除、修改)和访客的留言信息的查看、删除功能。

关键词:城市公交,公交查询,线路查询,站点查询,换乘查询

The City Public Traffic Lines Query System

ABSTRACT

City public traffic (CPT for short) is an important infrastructure closely interconnected with production and our daily life. Providing good CPT service is a basic requirement for constructing a harmonious society. Informatization as the basis, promoting the interaction between the passenger, vehicle, station infrastructure and traffic circumstance. and promoting the construction of CPT system. Whereas Chinese actual economy developing complexion, people mainly take a bus going out, the CPT system of every cities is so enormous and developed. So developing a CPT bus line query system is greatly necessary, and more meeting the modern society's need.In allusion to the CPT bus line query, the design is developed and designed. It use B/S mode, and use development tool MyEclipse and programming language Java to completed the function and the design of interface, and realized the query of the CPT bus lines (including query by line, query by stop, change line query).Use of Java in the preparation of a number of web controls to connections database and update the data, in order to achieve the public transport information management capabilities (including routes, sites and other information to add, delete, modify) and visitor message information to view, delete function.

KEYWORDS:public inquiry, bus station query, bus lines for inquiries, bus transfer inquiry

目录

摘要 ........................................................................................................................................ I ABSTRACT.............................................................................................................................. II 1绪论 (1)

1.1国内外研究现状及其研究意义 (1)

1.2 本文的主要研究内容 (2)

1.3 本章小结 (2)

2技术背景和分析 (3)

2.1 JSP技术介绍 (3)

2.1.1 JSP运行环境 (3)

2.1.2 JSP页面示例 (3)

2.2 B/S系统介绍 (5)

2.2.1 B/S架构具备极大的优越性 (6)

2.2.2采用JAVA语言实现 (6)

2.2.3 开发中使用的工具 (7)

2.3 J2EE体系结构介绍 (9)

2.3.1 J2EE提出的背景 (9)

2.3.2 J2EE的概念 (9)

2.3.3 J2EE的四层模型 (10)

2.3.4 本系统主要应用到的J2EE的API (11)

2.4 本章小结 (12)

3需求分析 (13)

3.1 用例分析 (13)

3.2 系统需求 (13)

3.3 功能需求 (14)

3.4 性能要求 (14)

3.5应用需求分析 (15)

3.6系统功能模块划分 (15)

3.7系统数据库设计 (15)

3.8 本章小结 (17)

4总体设计 (18)

4.1 基本设计概念 (18)

4.2 系统层次 (18)

4.3 层次设计 (18)

4.4 表结构实现 (19)

4.5存储过程 (21)

4.5.1存储过程的概念 (21)

4.5.2存储过程的优点 (22)

4.5.3存储过程实现 (22)

4.6 业务逻辑层 (24)

4.7 为什么要用web service (24)

4.8 换乘算法介绍 (24)

4.8.1 研究方法、手段及步骤 (25)

4.8.2 详细算法 (25)

4.9 本章小结 (26)

5系统实现 (27)

5.1 查询的实现 (27)

5.1.1 线路查询的实现 (27)

5.1.2 站点查询的实现 (27)

5.1.3 换乘查询的实现 (28)

5.2 Web系统前台 (28)

5.3 后台数据管理 (30)

5.3.1 查看 (30)

5.3.2 新增 (31)

5.3.3 修改 (31)

5.3.4 删除 (32)

5.3.5 查看留言 (33)

5.4 本章小结 (33)

总结 (34)

参考文献 (35)

致谢 (36)

1绪论

1.1国内外研究现状及其研究意义

随着现代社会的发展,交通也越来越发达,人们也开始不断外出旅游了,当我们去一个不熟悉的城市时,以前我们只能打电话咨询,看交通地图,向熟人打听等传统方式查询公交信息,这样会浪费我们很多时间、精力和财力,而且得到的信息也不一定是可靠的。这是公交网络系统还不发达的过去会出现的情况,虽然我国的公交网络系统起步较晚,不过近几年来正在不断的发展,公交查询系统也在此环境下发展兴起。

随着运筹学,图论等学科的不断发展,在1959年,荷兰计算机科学家艾滋格.迪克斯发现了Dijkstara算法,该算法在公交线路查询中是一种比较常用、方便的算法,但它的复杂度为节点数平方的数量级。当网络模型中节点数和边数较多的情况下,算法的计算量较大,时间发费较多,因此,Dijkstara算法在理论上是正确的,但在实际应用中不尽人意。

1968年人们开发出A*算法,该算法是一种启发式搜索方法,它特别适用于公交查询系统,它是利用已有的一些经验知识来解决空间进行搜索。由于已经有了问题的一些经验知识,因此A*算法往往比较一些遍历搜索方法在计算时间上要快的多,但他不能像Dijkstra算法一样搜索到的一定是最短的路径,只是相对短的路径。

在20世纪90年代初意大利学者D.origo,V.Maniezzo,A.Colorni等通过模拟蚂蚁搜索路径的行为,发明出蚂蚁算法。该算法可以带记忆功能,选择某路径的次数最多,说明此路径是比较优的路径,其信息素的值也越大,为以后选择路径提供必要的信息。系统使用的时间越长,为乘客提供的信息越全面,越准确,系统也越智能化。

城市公交是专门服务于市民出行的客运企业。它是城市社会和经济活动的重要组成部分。伴随着国民经济和城市建设的快速发展,城市经济的繁荣,人口的增加,城市必须解决好人们出行的需求。城市公交直接关系着城市的经济发展和居民生活,对城市经济具有全局性、先导性的影响,城市公交以其方便、快捷、容量大而成为城市交通的主体。但是随着公交系统的庞大,人们很难得到准确的公交信息,这样给一些人的出行就带来了不便。因此,急需一个方便、快捷的公交信息查询方式,本系统通过浏览器查询,实现中心控制、自动更新、更多的查询方式等等更多更强大的功能。

当今是一个以网络为中心的信息化世界,计算机已成为广大市民不可缺

少的工具。由于我国城市化进程的推进,目前城市不断地在向郊区延伸,边缘不断扩大,和郊区的边界甚至开始变得模糊化,城市公交路线不断地增多,加之众多公交路线时常调整,目前众多市民,特别是一些大中型城市的市民,对各条公交路线的信息不清楚或掌握得不准确。并且当今各大城市的家庭轿车相继增多,使城市交通出现拥堵现象。而公共交通与其它交通方式相比具有人均占用道路少、能源消耗低、运输成本低、污染相对较小、客运量大,运送效率高等优点,它是解决大、中城市交通拥堵等交通问题,所以各大城市都在积极地发展公共交通的运用。本毕业设计主要的目的就是实现公交查询以及信息发布。

1.2 本文的主要研究内容

基于网络环境下的B/S公交换乘系统将是今后几年类的城市公交建设发展和研究的方向,在该项查询技术成熟并运用的的时间内,亦有可以在B/S公交换乘系统的基础上设计出的实时的系统,为人们的出行提供便利,对人们了解公交现况和城市道路发展规模提供了必不可少的平台。本系统主要的研究内容如下:

1.了解出行者在出行时以哪些因素为首要的考虑因素。

2.了解并分析目前公交网络的设计以何种理论为依托。

3.思考如何才是公交换乘最短路径概念。

4.了解并分析国内外目前已有的公交路线查询系统的理论及设计方法。

5.如何将集合,广度和深度优先搜索的思想应用于B/S模式下公交换乘系统中去。

6.结合传统的公交查询方法和国内外先进的公交线路算法理论,设计出一套适用于我国城市的最佳公交换乘路线查询系统。

本设计实现的主要功能是:此系统能够使用户简单的查询出他们自己想要的车次经过哪些站点,在哪一站可以转乘,然后继续换乘哪路车;也可以预先知道可以通过哪些车次可以到达目的地。管理员可以通过对公交线路系统信息站点、线路、留言等等进行一系列的操作。

1.3 本章小结

本章主要是了解城市公交查询系统的研究现状,通过查看现行的公交查询系统,了解了现行的系统的优缺点。同时指导自己在它们的基础上可以加强的地方,改进系统的新的功能,这也就是研究公交查询系统的意义所在,通过学习和研究他人的相关研究课题,在它们的基础上自己的所要研究的内容,加强新的功能,优化系统的性能。

2技术背景和分析

2.1 JSP技术介绍

在Sun 正式发布 JSP(JavaServer Pages)之后,这种新的 Web 应用开发技术很快引起了人们的关注。JSP为创建高度动态的 Web 应用提供了一个独特的开发环境。按照 Sun 的说法, JSP 能够适应市场上包括Apache WebServer、IIS4.0 在内的 85% 的服务器产品。

2.1.1 JSP运行环境

Sun 公司的 JSP 主页上可以下载 JSP 规范,这些规范定义了供应商在创建 JSP 引擎时所必须遵从的一些规则。

在运行JSP示例页面之前,要注意安装JSWDK的目录,特别是“work”子目录下的内容。执行示例页面时,可以在这里看到 JSP 页面如何被转换成 Java 源文件,然后又被编译成class文件(即Servlet)。JSWDK软件包中的示例页面分为两类,它们或者是JSP文件,或者是包含一个表单的HTML 文件,这些表单均由JSP代码处理。与ASP一样,JSP中的Java代码均在服务器端执行。因此,在浏览器中使用“查看源文件”菜单是无法看到JSP 源代码的,只能看到结果HTML代码。

2.1.2 JSP页面示例

下面分析一个简单的 JSP 页面。可以在 JSWDK 的 examples 目录下创建另外一个目录存放此文件,文件名字可以任意,但扩展名必须为.jsp。从下面的代码清单中可以看到,JSP页面除了比普通HTML 页面多一些Java 代码外,两者具有基本相同的结构。Java代码是通过 < % 和 %> 符号加入到HTML 代码中间的,它的主要功能是生成并显示一个从0 到 9 的字符串。在这个字符串的前面和后面都是一些通过HTML代码输出的文本。

< HTML>

< HEAD>< TITLE>JSP 页面 < /TITLE>< /HEAD>

< BODY>

< %@ page language="java" %>

< %! String str="0"; %>

< % for (int i=1; i < 10; i++) {

str = str + i;

} %>

JSP 输出之前。

< P>

< %= str %>

< P>

JSP 输出之后。

< /BODY>

< /HTML>

这个 JSP 页面可以分成几个部分来分析。

首先是JSP 指令。它描述的是页面的基本信息,如所使用的语言、是否维持会话状态、是否使用缓冲等。 JSP 指令由 < %@ 开始, %> 结束。在本例中,指令“ < %@ page language="java" %> ”只简单地定义了本例使用的是 Java 语言(当前,在 JSP 规范中 Java 是唯一被支持的语言)。

接下来的是 JSP 声明。 JSP 声明可以看成是定义类这一层次的变量和方法的地方。 JSP 声明由 < %! 开始, %> 结束。如本例中的“ < %! String str="0"; %> ”定义了一个字符串变量。在每一项声明的后面都必须有一个分号,就象在普通 Java 类中声明成员变量一样。

位于 < % 和%> 之间的代码块是描述JSP 页面处理逻辑的Java 代码,如本例中的 for 循环所示。

最后,位于< %= 和 %> 之间的代码称为 JSP 表达式,如本例中的“ < %= str %> ”所示。 JSP 表达式提供了一种将 JSP 生成的数值嵌入HTML 页面的简单方法。

会话状态维持是Web 应用开发者必须面对的问题。有多种方法可以用来解决这个问题,如使用Cookies 、隐藏的表单输入域,或直接将状态信息附加到 URL 中。Java Servlet 提供了一个在多个请求之间持续有效的会话对象,该对象允许用户存储和提取会话状态信息。 JSP 也同样支持Servlet 中的这个概念。

在 Sun 的JSP 指南中可以看到许多有关隐含对象的说明(隐含的含义是,这些对象可以直接引用,不需要显式地声明,也不需要专门的代码创建其实例)。例如request 对象,它是 HttpServletRequest 的一个子类。该对象包含了所有有关当前浏览器请求的信息,包括 Cookies ,HTML 表单变量等等。 session 对象也是这样一个隐含对象。这个对象在第一个 JSP 页面被装载时自动创建,并被关联到 request 对象上。与 ASP 中的会话对象相似, JSP 中的 session 对象对于那些希望通过多个页面完成一个事务的应用是非常有用的。

为说明session 对象的具体应用,接下来我们用三个页面模拟一个多

页面的 Web 应用。第一个页面( q1.html )仅包含一个要求输入用户名字的 HTML 表单,代码如下:

< HTML>

< BODY>

< FORM METHOD=POST ACTION="q2.jsp">

请输入您的姓名:

< INPUT TYPE=TEXT NAME="thename">

< INPUT TYPE=SUBMIT VALUE="SUBMIT">

< /FORM>

< /BODY>

< /HTML>

第二个页面是一个 JSP 页面( q2.jsp ),它通过 request 对象提取q1.html 表单中的 thename 值,将它存储为 name 变量,然后将这个 name 值保存到 session 对象中。 session 对象是一个名字 / 值对的集合,在这里,名字 / 值对中的名字为“ thename ”,值即为 name 变量的值。由于session 对象在会话期间是一直有效的,因此这里保存的变量对后继的页面也有效。 q2.jsp 的另外一个任务是询问第二个问题。下面是它的代码:< %@ page language="java" %>

< %! String name=""; %>

< % name = request.getParameter("thename");

session.putValue("thename", name);%>

您的姓名是: < %= name %>

主要任务是显示问答结果。它从 session 对象提取 thename 的值并显示它,以此证明虽然该值在第一个页面输入,但通过 session 对象得以保留。 q3.jsp 的另外一个任务是提取在第二个页面中的用户输入并显示它:< %@ page language="java" %>

< %! String food=""; %>

< % food = request.getParameter("food");

String name = (String) session.getValue("thename");

%>

您的姓名是: < %= name %>

2.2 B/S系统介绍

传统的C/S架构(客户机/服务器,Client/Server)方式中,业务逻辑位于客户端,每完成一项事务,都要频繁地访问数据库,使得网络上数据流

量非常大,对于慢速连接的用户,甚至无法使用。

为弥补上述C/S架构的缺陷,人们发展出了三层或多层架构:客户机—中间件(应用服务器)—数据库服务器(Client—Middle ware—Database Server)。在这种架构中,业务逻辑放置于中间件服务器上,大量的数据流也位于中间件和数据库之间,而客户机只是简单地发出请求,中间件接受请求后进行事务处理并将处理的结果返回给客户机,这一类型的客户机也称之为“廋客户”。B/S架构实际上是三层架构的一种,所不同的是客户端就是目前几乎每台电脑中都有的网络浏览器,而中间件则是Web应用服务器。注意到主要的业务逻辑均由位于Web应用服务器上的Servlet和JSP程序或EJB来处理。

2.2.1 B/S架构具备极大的优越性

1.面向电子商务时代的技术

将来所有的应用系统几乎都在互联网或企业内部广域网上运行,发展电子商务成为企业不可避免的信息化道路。B/S架构的软件正是电子商务的基石,正是这类软件使得移动办公和分布式协同工作真正成为现实。无论在世界的那个角落,只需要一台可以联网的设备(计算机、PDA甚至手机)都可以方便地与客户联系和与他人协同工作。

2.软件操作、维护和升级方式的革命

软件系统的改进和升级越来越频繁,B/S架构的产品在维护和升级方面具备显著的优势。无论用户的规模有多大,有多少分支机构都不会增加任何维护升级的工作量,所有的操作只对服务器进行,通过远程连接服务器,异地的运维人员甚至于可以做到远程维护和升级,这对人力、时间、费用的节省是相当惊人的。

所有的客户端只是浏览器,所有的操作都和上网浏览网页类似,使用者接受的培训也仅限于业务逻辑而无需将大量精力浪费学习软件操作上。

3.系统整合

无论是办公自动化(OA)系统,人力资源(HR)系统,客户关系管理(CRM)系统,ERP等等,发展的趋势是不断融合。而采用统一的B/S结构开发的产品无论是现在还是将来都是最好的选择,它提供了真正意义上无缝地与其它系统进行整合的方案。

2.2.2采用JAVA语言实现

1.跨越平台的限制

尽管目前Windows桌面系统一统天下,但是服务器系统采用的操作系统

却具有多样性,包括Linux、Unix、Windows NT/2000Server等系统都可以实现企业级应用。即便是桌面系统,中国政府出于安全和国家战略的考虑,希望有自己的操作系统,Linux的出现使这种想法变成了现实。

传统的C/S架构的软件需要针对不同的操作系统开发不同版本的软件,面对众多的操作系统和软件快速的升级换代,采用这一架构开发软件,对于企业的IT投资无疑是一种巨大的风险。而采用Java语言实现的B/S架构的软件产品真正做到了“一次编写处处运行(Write Once, Run Anywhere)” ,对企业而言,可以规避将来更换操作系统所带来的风险。

2.健壮的系统

Java语言实现的软件具有天然的健壮性。这是Java语言自身的特性保证的。利用Java写成的软件几乎不可能造成系统崩溃,这正是安全性要求很高的企业级应用所不可或缺的特性。Java语言取消了指针的概念,而且是自动的内存管理,这样使在应用程序中提供了安全机制的保障。

3.分布式

Java语言是一种面向5tr网络的高级语言,Java语言的应用程序编程接口具有支持超文本传输协议(Hypertext transfer protocol,HTTP)和文本传输协议(File transfer protocol,FTP)的TCP/IP的类库,Java 应用程序可以通过统一资源定位器(Uniform Resources Locator,URL)地址直接访问Internet 上的各种对象,就如同访问本地的对象。Java的小应用程序(applet)是跨平台的网络应用程序,它被嵌入到超文本标记语言(Hypertext Markup Language,HTML)文件中,通过主页发布到Internet。用户访问到服务器的Applet程序时,它们将从Internet上传输,然后在支持Java的浏览器上运行。

2.2.3 开发中使用的工具

1.数据库MySql

MySql是一种小型的关系型数据库管理与分析系统,它提供了功能全面、操作简单的图形界面。MySql具有较好的可伸缩性和可靠性,提供了以Web 标准为基础的扩展数据库编程功能,可以满足电子商务和企业应用程序的要求。MySql支持XML和Internet标准,具有基于Web的分析能力,允许使用内置的存储过程。有专门针对SQL Server 2005的数据应用类库供用户使用,方便了用户对数据的操作。

2.开发环境MyEclipse

MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是新一代的J2EE开发工具,它是构建下一代互联网应用的

优秀工具。由于MyEclipse通过提供一个统一的集成开发环境及工具,包括了完备的编测试和发布功能、完整支持HTML、Struts、JSF、CSS、Javascript、SQL,Hibernate。大大提高了开发者的效率,十分方便的web程序的创建和调试,所以MyEclipse是开J2EE应用程序的常用工具。在MyEclipse中用户可以直接使用它里面的组件来创建web应用程序,同时它也是一个功能丰富的编程环境,集成了多种语言支持(如:JavaScript、Html、Jsp,servlet 等);简化了服务器端的开发;提供了高效地创建和使用网络服务的方法等等。当用MyEclipse创建一个J2EE工程时,可以配置各种不同的服务器应用,用户直接在MyEclipse中启动应用即可。

3.服务器Tomcat

Tomcat是java领域最著名的开源Web容器,简单,易用,稳定性极好,既可以作为个人学习之用,也可以作为商业产品发布。

因为Tomcat完全是纯java实现的,因此他也是平台无关的,在任何平台上运行完全相同,而且在windows和Linux平台上的安装和配置基本相同。虽然Tomcat是一个小型的而且是免费的Web服务器,但也是提供了图形界面控制台,通过控制台,用户可以和方便的部署Web应用、监控Web应用的状态等

Tomcat是一个免费的开源的Serlvet容器,它是Apache基金会的Jakarta 项目中的一个核心项目,由Apache,Sun和其它一些公司及个人共同开发而成。由于有了Sun的参与和支持,最新的Servlet和Jsp规范总能在 Tomcat中得到体现。Tomcat被JavaWorld杂志的编辑选为2001年度最具创新的java产品,可见其在业界的地位。

在Tomcat中,应用程序的部署很简单,你只需将你的WAR放到Tomcat 的webapp目录下,Tomcat会自动检测到这个文件,并将其解压。你在浏览器中访问这个应用的Jsp时,通常第一次会很慢,因为Tomcat要将Jsp 转化为Servlet文件,然后编译。编译以后,访问将会很快。另外Tomcat 也提供了一个应用:manager,访问这个应用需要用户名和密码,用户名和密码存储在一个xml文件中。通过这个应用,辅助于 Ftp,你可以在远程通过Web部署和撤销应用。当然本地也可以

Tomcat不仅仅是一个Servlet容器,它也具有传统的Web服务器的功能:处理Html页面。但是与Apache相比,它的处理静态 Html的能力就不如Apache。我们可以将Tomcat和Apache集成到一块,让Apache处理静态Html,而Tomcat处理Jsp和 Servlet。这种集成只需要修改一下Apache和Tomcat的配置文件即可。

基于Tomcat的开发其实主要是Jsp和Servlet的开发,开发Jsp和Servlet非常简单,你可以用普通的文本编辑器或者IDE,然后将其打包成WAR即可。我们这里要提到另外一个工具Ant,Ant也是Jakarta中的一个子项目,它所实现的功能类似于Unix中的make。你需要写一个build.xml 文件,然后运行Ant就可以完成xml文件中定义的工作,这个工具对于一个大的应用来说非常好,我们只需在xml中写很少的东西就可以将其编译并打包成WAR。事实上,在很多应用服务器的发布中都包含了Ant。另外,在Jsp1.2中,可以利用标签库实现Java代码与Html文件的分离,使Jsp的维护更方便。

2.3 J2EE体系结构介绍

2.3.1 J2EE提出的背景

1.企业级应用框架的需求

在许多企业级应用中,例如数据库连接、邮件服务、事务处理等都是一些通用企业需求模块,这些模块如果每次再开发中都由开发人员来完成的话,将会造成开发周期长和代码可靠性差等问题。于是许多大公司开发了自己的通用模块服务。这些服务性的软件系列统称为中间件。

2.为了通用必须要提出规范,不然无法达到通用

在上面的需求基础之上,许多公司都开发了自己的中间件,但其与用户的沟通都各有不同,从而导致用户无法将各个公司不同的中间件组装在一块为自己服务。从而产生瓶颈。于是提出标准的概念。其实J2EE就是基于JAVA 技术的一系列标准。

2.3.2 J2EE的概念

J2EE Java2平台企业版(Java 2 Platform,Enterprise Edition)。

J2EE是一套全然不同于传统应用开发的技术架构,包含许多组件,主要可简化且规范应用系统的开发与部署,进而提高可移植性、安全与再用价值。

J2EE核心是一组技术规范与指南,其中所包含的各类组件、服务架构及技术层次,均有共通的标准及规格,让各种依循J2EE架构的不同平台之间,存在良好的兼容性,解决过去企业后端使用的信息产品彼此之间无法兼容,企业内部或外部难以互通的窘境。

目前,Java 2平台有3个版本,它们是适用于小型设备和智能卡的Java 2平台Micro版(Java 2 Platform Micro Edition,J2ME)、适用于桌面系

统的Java 2平台标准版(Java 2 Platform Standard Edition,J2SE)、适用于创建服务器应用程序和服务的Java 2平台企业版(Java 2 Platform Enterprise Edition,J2EE)。J2EE是一种利用Java 2平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构。J2EE技术的基础就是核心Java平台或Java 2平台的标准版,J2EE不仅巩固了标准版中的许多优点,例如"编写一次、随处运行"的特性、方便存取数据库的JDBC API、CORBA技术以及能够在Internet应用中保护数据的安全模式等等,同时还提供了对 EJB(Enterprise JavaBeans)、Java Servlets API、JSP(Java Server Pages)以及XML技术的全面支持。其最终目的就是成为一个能够使企业开发者大幅缩短投放市场时间的体系结构。

J2EE体系结构提供中间层集成框架用来满足无性、高可靠性以及可扩展性的应用的需求。通过提供统一的开发平台,J2EE降低了开发多层应用的费用和复杂性,同时提供对现有应用程序集成强有力支持,完全支持Enterprise JavaBeans,有良好的向导支持打包和部署应用,添加目录支持,增强了安全机制,提高了性能。需太多费用而又需要高可用

2.3.3 J2EE的四层模型

J2EE使用多层的分布式应用模型,应用逻辑按功能划分为组件,各个应用组件根据他们所在的层分布在不同的机器上。事实上,sun设计J2EE的初衷正是为了解决两层模式(client/server)的弊端,在传统模式中,客户端担当了过多的角色而显得臃肿,在这种模式中,第一次部署的时候比较容易,但难于升级或改进,可伸展性也不理想,而且经常基于某种专有的协议,通常是某种数据库协议。它使得重用业务逻辑和界面逻辑非常困难。现在J2EE 的多层企业级应用模型将两层化模型中的不同层面切分成许多层。一个多层化应用能够为不同的每种服务提供一个独立的层,图2-1是 J2EE 典型的四层结构:

图2-1 J2EE四层结构模型

1.运行在客户端机器上的客户层组件

J2EE应用程序是由组件构成的.J2EE组件是具有独立功能的软件单元,它们通过相关的类和文件组装成J2EE应用程序,并与其他组件交互。应用客户端程序和applets是客户层组件。

2.运行在J2EE服务器上的Web层组件

Java Servlet和JavaServer Pages(JSP)是web层组件。J2EE web层组件可以是JSP 页面或Servlets。按照J2EE规范,静态的HTML页面和Applets不算是web层组件。

所以web层可能包含某些 JavaBean 对象来处理用户输入,并把输入发送给运行在业务层上的enterprise bean 来进行处理。

3. 运行在J2EE服务器上的业务逻辑层组件

业务层代码的逻辑用来满足银行,零售,金融等特殊商务领域的需要,由运行在业务层上的enterprise bean 进行处理。下图表明了一个enterprise bean 是如何从客户端程序接收数据,进行处理(如果必要的话),并发送到EIS层储存的,这个过程也可以逆向进行。

有三种企业级的bean:会话(session)beans,实体(entity)beans,和消息驱动(message-driven)beans。会话bean表示与客户端程序的临时交互。当客户端程序执行完后,会话bean和相关数据就会消失。相反,实体bean表示数据库的表中一行永久的记录。当客户端程序中止或服务器关闭时,就会有潜在的服务保证实体bean的数据得以保存。消息驱动bean结合了会话bean和JMS的消息监听器的特性,允许一个业务层组件异步接收JMS消息。

4.运行在EIS服务器上的企业信息系统(Enterprise information system)层软件

企业信息系统层处理企业信息系统软件包括企业基础建设系统例如企业资源计划(ERP), 大型机事务处理, 数据库系统,和其它的遗留信息系统. 例如,J2EE 应用组件可能为了数据库连接需要访问企业信息系统。

2.3.4 本系统主要应用到的J2EE的API

J2EE平台由一整套服务(Services)、应用程序接口(APIs)和协议构成,它对开发基于Web的多层应用提供了功能支持,下面对J2EE中的13种技术规范进行简单的描述(限于篇幅,这里只能进行简单的描述):

1.JDBC(Java Database Connectivity)

JDBC API为访问不同的数据库提供了一种统一的途径,象ODBC一样,JDBC对开发者屏蔽了一些细节问题,另外,JDCB对数据库的访问也具有平台无关性。

JDBC是一种可用于执行SQL语句的JavaAPI(Application Programming Interface,应用程序设计接口)。它由一些Java语言编写的类和界面组成。JDBC为数据库应用开发人员和数据库前台工具开发人员提供了一种标准的应用程序设计接口,使开发人员可以用纯Java语言编写完整的数据库应用程序。

通过使用JDBC,开发人员可以很方便地将SQL语句传送给几乎任何一种数据库。也就是说,开发人员可以不必写一个程序访问Oracle,写另一个程序访问MySQL,再写一个程序访问SQL Server。用JDBC写的程序能够自动地将SQL语句传送给相应的数据库管理系统(DBMS)。不但如此,使用Java编写的应用程序可以在任何支持 Java的平台上运行,不必在不同的平台上编写不同的应用。Java和JDBC的结合可以让开发人员在开发数据库应用时真正实现“一次编写,处处运行”。

2.JSP(Java Server Pages)

JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端所请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。

3.Java Servlet

Servlet是一种小型的Java程序,它扩展了Web服务器的功能。作为一种服务器端的应用,当被请求时开始执行,这和CGI Perl脚本很相似。Servlet提供的功能大多与JSP类似,不过实现的方式不同。JSP通常是大多数HTML代码中嵌入少量的Java代码,而servlets全部由Java写成并且生成HTML。

4.XML(Extensible Markup Language)

XML是一种可以用来定义其它标记语言的语言。它被用来在不同的商务过程中共享数据。XML的发展和Java是相互独立的,但是,它和Java具有的相同目标正是平台独立性。通过将Java和XML的组合,可以得到一个完美的具有平台独立性的解决方案。

2.4 本章小结

本章主要介绍了公交查询系统的所使用的技术和开发时所使用的工具,主要以Jsp(servlet)为页面表示形式,以Java编写业务逻辑层和数据库的连接,以 MyEclipse为J2EE开发工具,它拥有强大的功能,能方便开发本系统;以MySql为数据库,Tomcat为服务器。

3需求分析

虽然近年来公交查询系统发展迅速,不过发展的同时也存在着一些问题,还需要不断的规范和完善。1.有一部分公交查询系统,它们只是把各条线路和线路的信息一一罗列在页面上,让用户自己一页一页的翻看查找,这样的公交查询根本不方便不快捷。一个真正完善的公交查询系统应该实现用户输入想查询的内容,系统自动查询出结果,而不是让用户手动去翻找查询;2.也有一部分公交查询系统,它们的系统功能不完善,只实现了站点的查询和线路的查询,而没有实现站点到站点的查询和转乘的功能,这不能完全满足用户的需求;3.还有一部分公交查询系统,它们系统功能还算完善,但是页面结构复杂,而且页面上布满了广告和各种与公交查询无关的信息,这样使用户查询一点都不方便,而且影响美观度,也影响了系统在用户心目中的良好形象。因此公交查询系统的发展还有待进一步的规范和改进。

3.1 用例分析

站点查询查询者可以执行线路查询、站点查询、换乘查询(包括:一次换乘、二次换乘)的操作。查询者的用例分析如图3-1所示:

图3-1访客用例分析

管理员可以新增、修改、删除数据记录,以保证公交车线路的是正确可用的,管理员的用例分析如图3-2所示。

3.2 系统需求

根据查询系统的业务流程,以及所需要实现的目标,我们拟定出一下诉求目标:

1.建立线路查询,实现查询出目标线路所经过的所有站点。

2.建立站点查询,实现查询出经过目标站点的所有公交线路。

3.建立换乘查询,实现两站点之间的所有换乘线路的查询(包括:直达,

一次换乘、二次换乘查询)。

4.实现公交线路的管理。

5.访客可以对查询的结果评价和报错。

图3-2 管理员用例分析

3.3 功能需求

随着城市的高速发展,公交线路的不断扩充,人们要从错中复杂的公交线路中找出到达目的地的理想线路,不是一件容易的事。从而基于计算机的公交车查询系统应运而生。

该系统打破的传统查询的弊端,实现了自动的线路查询、站点查询、换乘查询、线路站点的管理等功能。具体包括:

1.线路查询:方便用户了解到最快最新的线路信息,如:此线路经过哪些站点,和站点在线路中的位置等。

2.站点查询:用户如果对线路不清楚,只知道自己要去的地方,那么站点查询会帮你快速找出可以搭乘哪些线路的公交车到达此地,和各线路的相关信息,并注明了此站点在相应线路中的顺序,方便用户了解该站点在线路中所处的位置。

3.换乘查询:如果没有直达线路,则找出转乘的最短公交路线。用户输入起始站和终点站作为查询关键字,即可查询到二次转车内到达目的地址的公交线路。可以为用户节省更多的时间,也提高了效率。

4.公交线路管理:包括了对公交线路和站点的增加、删除、修改。也包括管理员的创建、删除。

5.访客可以对查询的结果评价或者对查询出来的错误结果报错,这样能够通过群众来使系统更完善,数据更准确,能使查询公交的用户更满意。

3.4 性能要求

在最低配置的情况下,系统的性能不尽如人意,现在的硬件性能已经相

当出色,而且价格也很便宜,因此可以给服务器端配置高性能的硬件。

最低硬件配置如下:

1.处理器:Pentium III 1G

2.内存:512MB

3.硬盘空间:1G

软件环境:

1.操作系统:Windows XP;

2.软件:JDK , MyEclipse;

3.数据库:Mysql

4.Tomcat的服务器

3.5应用需求分析

要设计一个良好的公交查询系统,就必须首先明确该应用环境对系统的要求。公交查询系统的应用背景为:方便市民搭乘公交车出行;手动(目前)、自动(将来)、及时更新查询数据。因此,该系统需满足以下几方面需求:

1.查询功能:

系统需要提供几种不同方式的查询手段,以实现灵活方便地管理整个系统。

2.数据的更新修改:

更新:系统允许管理员级别的用户对数据进行更新、修改并且存盘操作;

编辑:系统允许管理员级别的用户对数据进行编辑、删除的操作,保证现库的真实性与实时性。

3.6系统功能模块划分

公交查询系统功能划分模块如下:

查询系统模块:该模块实现公交查询功能。可实现按起点-中转站-终点查询查询和按线路查询两种查询方式。

录入系统模块:该模块实现数据的录入、修改、删除功能。

3.7系统数据库设计

概念设计的目标是产生反映城市公交查询系统需求的数据库概念结构,即概念模式。概念模式是独立于数据库逻辑结构,独立于支持数据库的DBMS,不依赖于计算机系统的。

1.ER模型

ER模型是对现实世界的一种抽象。它的主要成分是实体、联系和属性。

相关文档