Featured Post

佛罗伦萨米开朗基罗广场

Read More

米开朗基罗广场位于佛罗伦萨市的南部,大广场都是建筑师朱塞佩·波吉于1868年设计、建造。广场尤如一大高台俯视佛罗伦萨。广场中央有一组青铜雕塑,都是根据米开朗基罗的作品铸成的复制品,有《大卫》和梅迪奇家墓的《昼》、《夜》、《晨》、《暮》。

网络文档发放与认证管理系统

Posted by 天际的荒草 | Posted in Docs | 文档 | Posted on 19-09-2009

标签:, ,

0

摘要 Ⅰ
ABSTRACT Ⅱ
第一章 绪论 1
1.1课题研究背景 1
1.2国内外的研究和利用现状 1
1.2.1 文档管理方案的介绍 1
1.2.2 不可否认签名方案 2
1.3 设计的目的和意义 3
第二章 系统开发所用的技术准备 4
2.1数据库 4
2.1.1 数据库的概念 4
2.1.2 数据库的基本结构 4
2.1.3 数据库的特点 4
2.1.4 数据库的应用 5
2.1.5 数据库的设计 5
2.1.6 数据库的类型及选取 6
2.2 WINSOCK通信 6
2.2.1 WINSOCK的基本概念 6
2.2.2 WINSOCK的工作原理 7
2.2.3 WINSOCK的编程特点 7
2.3 不可否认的数字签名 7
2.3.1 不可否认签名的原理 7
2.3.2 不可否认签名的安全性 8
第三章 系统分析及设计 9
3.1 系统分析 9
3.1.1 系统功能 9
3.1.2 选用的编程技术 9
3.2 系统设计 11
3.2.1 总体设计 11
3.2.2 分块设计及模块图 11
第四章 界面的设计与实现 13
4.1 服务器界面设计 13
4.1.1 菜单设计 13
4.1.2 发布新文档功能的设计 14
4.1.3 查询文档功能的设计 15
4.1.4 修改/删除文档功能的设计 16
4.2 客户端界面设计 18
4.2.1 菜单设计 18
4.2.2 各功能的实现 19
第五章 数据库的设计与实现 21
5.1 数据库设计 21
5.1.1 数据库概念结构设计 21
5.1.2 数据库逻辑结构设计 21
5.2 数据库结构的实现 22
5.3 配置ODBC 24
第六章 WINSOCK通信的设计与实现 25
6.1客户机/服务器模式 25
6.1.1通信的基本原理 25
6.1.2通信过程 25
6.2 WINSOCK通信的具体实现 26
6.2.1服务器端WINSOCK通信 26
6.2.2客户端WINSOCK通信 27
6.2.3 服务器端和客户端如何处理消息 28
第七章 不可否认签名的设计与实现 29
7.1 不可否认签名的方案 29
7.1.1 方案描述 29
7.1.2 WINSOCK通信过程 29
7.2程序的设计和实现 30
第八章 总结及完善 33
8.1 系统总结 33
8.2 系统完善 33
致谢 35
参考文献 36

摘要

网络文档管理系统,是当今信息社会一种重要而实用的系统。本文设计了一种具有不可否认功能的网络文档发放与认证管理系统。该系统除了可以用作具有一般常用功能的文档管理系统外,它的不可否认功能还能使接收方收到文档后无法否认。后者对于在网络上发放文档具有重要意义。
系统分为两大功能模块:服务器端和客户端。服务器端发送文档,客户端接收文档。在实现过程中,使用SQL Server 2000数据库来对在服务器端发布的文档进行日常管理,利用客户机/服务器模式的WINSOCK通信来实现文档的收发过程,并使用最早的不可否认签名算法,在收发双方间不断计算、传递,验证参数从而完成了文档的认证。
实现后的系统具有文档管理和不可否认的两大功能。文档管理功能主要有发布、查询、修改和删除等。不可否认的认证功能则是本系统的特色所在,该功能使收发双方在发送和收到文档后都无法否认。

关键词:不可否认签名,数据库,WINSOCK

ABSTRACT

Network document management system is one kind of important and practical system nowadays in the information society. This article designed one kind network document release and authentication management system with an undeniable function. The system can be used as a document management system in generally common use; in addition, its undeniable function makes sure that the receiver will get the document without denying. The latter function has the vital significance for releasing documents in the network.
The system has two main functions modules: Server and client. Server sends documents, client receives documents. In the process of realization, it uses SQL Server 2,000 database to do the daily management for the documents which is issued in the server, it uses Winsock of Client / server model to realize the documents receiving and dispatching process, and it uses the earliest undeniable signature algorithm, calculates, transmits and confirms parameters between the sender and receiver, which completes the document authentications.
After the realization, the system has two functions of documents management and undeniable signature. The documents management function mainly has the issue, the inquiry, the revision and the deletion and so on. The authentication function of undeniable signature is the characteristic of this system, which makes both the sender and receiver to be unable to deny after the documents receiving and dispatching.

KEY WORDS: undeniable signature, database, WINSOCK

第一章 绪论

1.1课题研究背景

电子计算机是上世纪最重要的科学技术成果之一。目前,各行各业除了将计算机引入各种业务管理和开创新型业务外,还大大优化了经营管理方式和决策过程,包括文档的现代化管理。但文档的管理会面临这样一些问题,比如说,如何控制阅读、修改、评审等权限,有些文件需要保密,如何可以做到让有阅读权限的人不能拷贝文件,防止泄密。还有,如何在网上实现文件的评审、批准、加密等。各种与网络文档管理有关的软件平台在这样的趋势下应运而生。
但在文档的发放过程中会存在这样的一些问题:接收方不能确认收到的文档是不是由发送方发送过来的,并且发送方在发送过文档后,也有可能不承认该文档是由他发放的。这时,通常会应用数字签名[1]来解决这一问题。
但一般的数字签名都能够被准确地复制。这个性质有可能导致该签名不停地被拷贝,而每个拷贝又能够被任何人验证,这样就有可能产生欺诈行为。并且接收方在收到文档后也会可能存在否认的欺诈行为。特别是在一些网络交易上,卖家在收到买家的支付后可能会否认;而在一些重要的消息、通知发放时,发送方通常也不会知道他发送的对象是否已经收到文档。这就对文档的发放管理系统提出了新的要求:要通过一定的认证体系来保证收发双方的不可否认性[2]。这样,不可否认签名[3]的算法便被提出,并且越来越多应用于一些网络文档管理系统当中。

1.2国内外的研究和利用现状

1.2.1 文档管理方案的介绍
1. 工商银行的文档管理网络系统选择了较先进的LOTUSNOTES作为其支持软件平台,将先进的计算机网络技术、电子邮件、文档数据库管理、电子编辑排版及扫描仪、输出打印设备等高度集成到一起。主要功能有:
(1)多媒体文档管理;
(2)文档编辑排版具有文字录入、编辑、排版,给文档实体加盖电子印章和附件扫描等功能;
(3)电子邮件是群件最突出的功能之一,它在群件系统中起到信息传递的作用,同时也是群件应用的关键技术之一。
2. NetDM(Net Document Manage)是一款编辑功能丰富,并支持网络备份的文档管理软件。它的最大特点是在数据安全方面:可以为资料库设置密码,只有输入正确的密码才能打开资料库。网络备份功能还可以在保存文档后,自动向邮箱发送一份备份,确保资料安全万无一失!
3. 而在2002年,网络维护解决方案提供商安恒公司再一次同微软公司携手合作,为国内中小企业推出了网络文档管理方案,这个方案基于微软的图表绘制软件Visio和Fluke Networks的网络拓扑专家Lan Mapshot这两款专业工具软件的整合。
1.2.2 不可否认签名方案
不可否认数字签名,首先由Chaum 和Antwerpen 提出[4]。它是介于零知识证明和自验证数字签名之间的一种需交互认证的签名方式.这是一种特殊的数字签名,它要求签名的验证必须得到签名者的合作,否则验证者无法知道签名的真伪性,这在某种程度上保护了签名者的利益。同时,对于一个签名者所签署的消息,签名者只要参与了该签名的验证,就无法否认、抵赖他确实签署过该消息。实际上,它兼顾签名者和接收者的利益,即既确保签名不被接收者滥用,又能够以后使签名让其他人相信.
自不可否认签名被提出后,许多研究者对这一特殊数字签名方法进行了研究。Chaum 提出了具有广泛用途的零知识不可否认签名方案[5]。Harn 和Yang将不可否认签名和群体签名结合起来,提出了(t,n) 门限不可否认签名的概念[6],并给出了两个具体方案(对应于t = 1和t = n )。但Langford指出,(n,n) 门限不可否认签名方案实际上只具有(2,n) 的安全性,即两个成员即可产生签名。因为在Harn 和Yang 的这一方案中,两个相邻成员可以产生对任意消息的签名。随后,Lin 等提出了一个新的(t,n) 门限不可否认门限签名[7]。之后,零知识不可否认签名方案得到了扩展,一个带有信任中心的(t,n) 门限不可否认签名方案被提出。Gennaro 等人在提出了第一个RSA 型不可否认签名方案[8],且该方案是可转化的。基于Gennaro 等人的这一方案,第一个门限RSA 不可否认签名方案被提出来。Desmedt 和Yung指出了对不可否认签名的几个攻击,但利用可转化的不可否认签名及指定验证者的不可否认签名可以克服这些缺点。
就是在这样的不断改进和完善的过程当中,有更多的不可否认签名方案应运而生。如:两方间收方不可否认的数字签名方案、基于双线性对的不可否认签名方案、基于身份认证的不可否认签名方案、使用双线性对构造基于身份的不可否认签名方案、不需要可信任方的门限不可否认签名方案、基于椭圆曲线的可转移不可否认签名方案、代理不可否认签名方案等等。这些方案都具有各自的特点并且存在一些缺点,但这并不阻碍不可否认签名方案的进一步研究和发展,也正是因为它们具有不足之处,才推动了这个领域地不断向前。

1.3 设计的目的和意义

网络文档发放与认证管理系统,既包含了文档发放登记管理的常规功能,又应用不可否认签名算法,在通信的过程中可以实现保证发方不否认发出,收方不否认收到。
该系统的开发,能有效地解决在一些文档的发放过程中存在的问题,使收发双方不能否认已发送或已接收文档,也保证发送方能够知道接收方是否已经收到文档。此外,在网络交易上,该系统能做到保证双方的诚信:既避免了发送方发送后的否认,也避免了接收方收到后的抵赖行为。

第二章 系统开发所用的技术准备

2.1数据库

2.1.1 数据库的概念
数据库[9]是依照某种数据模型组织起来并存放二级存储器中的数据集合。这种数据集合具有如下特点:尽可能不重复,以最优方式为某个特定组织的多种应用服务,其数据结构独立于使用它的应用程序,对数据的增、删、改和检索由统一软件进行管理和控制。从发展的历史看,数据库是数据管理的高级阶段,它是由文件管理系统发展起来的。
2.1.2 数据库的基本结构
1.物理数据层。它是数据库的最内层,是物理存贮设备上实际存储的数据的集合。这些数据是原始数据,是用户加工的对象,由内部模式描述的指令操作处理的位串、字符和字组成。
2.概念数据层。它是数据库的中间一层,是数据库的整体逻辑表示。指出了每个数据的逻辑定义及数据间的逻辑联系,是存贮记录的集合。它所涉及的是数据库所有对象的逻辑关系,而不是它们的物理情况,是数据库管理员概念下的数据库。
3.逻辑数据层。它是用户所看到和使用的数据库,表示了一个或一些特定用户使用的数据集合,即逻辑记录的集合。
2.1.3 数据库的特点
数据库不同层次之间的联系是通过映射进行转换的。数据库具有以下主要特点:
1.实现数据共享。数据共享包含所有用户可同时存取数据库中的数据,也包括用户可以用各种方式通过接口使用数据库,并提供数据共享。
2.减少数据的冗余度。同文件系统相比,由于数据库实现了数据共享,从而避免了用户各自建立应用文件。减少了大量重复数据,减少了数据冗余,维护了数据的一致性。
3.数据的独立性。数据的独立性包括数据库中数据库的逻辑结构和应用程序相互独立,也包括数据物理结构的变化不影响数据的逻辑结构。
4.数据实现集中控制。文件管理方式中,数据处于一种分散的状态,不同的用户或同一用户在不同处理中其文件之间毫无关系。利用数据库可对数据进行集中控制和管理,并通过数据模型表示各种数据的组织以及数据间的联系。
5.数据一致性和可维护性,以确保数据的安全性和可靠性。主要包括:
(1) 安全性控制:以防止数据丢失、错误更新和越权使用;
(2) 完整性控制:保证数据的正确性、有效性和相容性;
(3) 并发控制:使在同一时间周期内,允许对数据实现多路存取,又能防止用户之间的不正常交互作用;
(4) 故障的发现和恢复:由数据库管理系统提供一套方法,可及时发现故障和修复故障,从而防止数据被破坏。
2.1.4 数据库的应用
数据库可以代替手工自动并高效率的完成管理的工作,不需人工干预。
数据库的常用用途包括如下方面:
(1)记录长期统计数据和产品趋势
(2)自动化处理以减少纸张浪费
(3)管理不同类型的个人或业务事务
(4)维护历史记录信息
在这个系统当中,要实现文档登记管理的常规功能,应用数据库是最好的选择。
2.1.5 数据库的设计
数据库设计(Database Design) [10]是指根据用户的需求,在某一具体的数据库管理系统上,设计数据库的结构和建立数据库的过程。
一般,数据库的设计过程大致可分为5个步骤:
(1)需求分析:调查和分析用户的业务活动和数据的使用情况,弄清所用数据的种类、范围、数量以及它们在业务活动中交流的情况,确定用户对数据库系统的使用要求和各种约束条件等,形成用户需求规约。
(2)概念设计:对用户要求描述的现实世界(可能是一个工厂、一个商场或者一个学校等),通过对其中住处的分类、聚集和概括,建立抽象的概念数据模型。这个概念模型应反映现实世界各部门的信息结构、信息流动情况、信息间的互相制约关系以及各部门对信息储存、查询和加工的要求等。所建立的模型应避开数据库在计算机上的具体实现细节,用一种抽象的形式表示出来。以扩充的实体——联系模型方法为例,第一步先明确现实世界各部门所含的各种实体及其属性、实体间的联系以及对信息的制约条件等,从而给出各部门内所用信息的局部描述(在数据库中称为用户的局部视图)。第二步再将前面得到的多个用户的局部视图集成为一个全局视图,即用户要描述的现实世界的概念数据模型。
(3)逻辑设计:主要工作是将现实世界的概念数据模型设计成数据库的一种逻辑模式,即适应于某种特定数据库管理系统所支持的逻辑数据模式。与此同时,可能还需为各种数据处理应用领域产生相应的逻辑子模式。这一步设计的结果就是所谓“逻辑数据库”。
(4)物理设计:根据特定数据库管理系统所提供的多种存储结构和存取方法等依赖于具体计算机结构的各项物理设计措施,对具体的应用任务选定最合适的物理存储结构(包括文件类型、索引结构和数据的存放次序与位逻辑等)、存取方法和存取路径等。这一步设计的结果就是所谓“物理数据库”。
(5)验证设计:在上述设计的基础上,收集数据并具体建立一个数据库,运行一些典型的应用任务来验证数据库设计的正确性和合理性。一般,一个大型数据库的设计过程往往需要经过多次循环反复。当设计的某步发现问题时,可能就需要返回到前面去进行修改。因此,在做上述数据库设计时就应考虑到今后修改设计的可能性和方便性。
2.1.6 数据库的类型及选取
目前常用的数据库有SQL,MySQL,ORCAL,DEPHI和 ACCESS等。
SQL,MySQL,应用较为广泛;ORCAL,则比较适合于公司应用;DEPHI,本身并不是数据库,但却是一个做数据库的系统,是相当实用的软件;ACCESS,一般不用语言,而且是面向普通用户的,即应用起来比较方便简单。
在这个系统的开发过程中,我选择的是SQL Server 2000 数据库。我认为这个数据库比较符合题目的要求,尽管它不如ACCESS操作起来简单,但是它的功能相对强大得多。

2.2 WINSOCK通信

2.2.1 WINSOCK的基本概念
WINSOCK [11]是Windows Sockets的缩写。Sockets在中文是插座的意思,它的设计者实际上是暗指电话插座。因为在Sockets环境下编程很像是模拟打电话,Internet的IP地址就是电话号码,要打电话,需要电话插座,在程序中就是向系统申请一个Sockets,以后两台机器上的程序“交谈”都是通过这个Sockets来进行的。对程序员来说,也可以把Sockets看成一个文件指针,只要向指针所指的文件读写数据,就可以实现双向通信。利用Sockets通信,有两种主要方式。第一种是面向连接的流方式。顾名思义,在这种方式下,两个通信的应用程序之间先要建立一种连接链路,其过程好像打电话。一台计算机(电话)要想和另一台计算机(电话)进行数据传输(通话),必须首先获得一条链路,只有确定了这条链路之后,数据(通话)才能被正确接收和发送。这方式对应的是TCP协议。第二种叫做无连接的数据报文方式,这时两台计算机像是把数据放在一个信封里,通过网络传给对方,信在传送的过程中有可能会残缺不全,而且后发出的信也有可能会先收到,它对应的UDP协议。流方式的特点是通信可靠,对数据由校验和重发的机制,通常用来做数据文件的传输如FTP、Telnet等;数据报文方式由于取消了重发校验机制,能够到达较高的通信速率,可以用于对数据可靠性要求不高的通信,如实时语音、图像传送和广播消息等。

2.2.2 WINSOCK的工作原理
WINSOCK是一个DLL,它运行于Windows 3.x,Windows for Workgroups,Windows NT和Windows 95下。WINSOCK.DLL是与TCP/IP的接口,通过这个接口和网络进行连接。图2.1显示它的工作原理[12]:

2.2.3 WINSOCK的编程特点
在网络通信中,由于网络拥挤或一次发送的数据量过大等原因,经常会发生交换的数据在短时间内不能传完,收发数据的函数因此不能返回的现象,这种现象叫做阻塞。WINSOCK对有可能阻塞的函数提供了两种处理方式——阻塞和非阻塞方式。在阻塞方式下,收发数据的函数在被调用后一直要传送完毕或者出错才能返回;在阻塞期间,除了等待网络操作的完成不能进行任何操作。对于非阻塞方式,函数被调用后立即返回;当网络操作传送完成后,由WINSOCK给应用程序发送一个消息,通知操作完成,此时可以根据发送的消息传出的参数判断操作是否正常。
在编程时,应尽量使用非阻塞方式。因为在阻塞方式下,用户可能会因为较长时间的等待而是失去耐心继而关闭应用程序的主窗口,这样网络操作的函数从WINSOCK的动态连接库中返回时,主程序已经从内存中删除,可能会造成内存的异常。虽然现在的操作系统已经可以从系统级正确地处理这种内存问题,但还是要注意这种情况的发生。

2.3 不可否认的数字签名

2.3.1 不可否认签名的原理
不可否认签名方案通常由三个部分组成:
(1)签名算法合法的用户P可以使用该算法对任何消息进行签名;而其它用户无法冒充P进行签名,除非用户P的签名私钥已被攻破。
(2)确认协议签名者P和验证者V通过执行该协议,使验证者确信某一签名确实是P签署的。确认协议必须具备完备性和合理性。即,只要P和V都是诚实的(即按照协议的规定操作),则P签署的签名总是通过确认,从而被V接收;而不是P签署的签名,无论P怎样进行欺骗,要使该签名通过确认协议而被V接受,P的成功率是可以忽略的。
(3)否认协议通过执行该协议,证明者P向验证者V证明某签名不是自己签署的。否认协议也必须具备完备性和合理性。对于不是P所签署的签名,只要P和V都诚实,则该签名一定通过否认协议,从而使得V相信该签名确实不是P签署的;
而对于P签署的签名,无论P怎样进行欺骗,P能使该签名通过否认协议的成功率是可以忽略的。也就是说,对于一个P所签署的签名,通过执行否认协议,P几乎不可能使V相信该签名不是他签署的。
2.3.2 不可否认签名的安全性
不可否认签名主要考虑以下两条安全性:
(1) 签名的不可伪造性: 即使产生了多项式个有效签名后,伪造一个新的有效签名或破获私钥是困难的。
(2) 签名的非相关性: P验证、否认了多项式个签名后,V也不能自行判断某一未被P证实的签名究竟是否为P的签名。

第三章 系统分析及设计

3.1 系统分析

3.1.1 系统功能
1.常规功能
网络文档发放与认证管理系统首先应该具有一般文档管理系统的功能。应该分为两个部分:即发放文档和接收文档部分。
发放文档部分的主要功能应有:
(1) 发布文档:进行文档的发布
(2) 查询文档:选择不同的查询方式,并通过关键字来进行文档的查询
(3) 修改文档:对已经发布的某个文档的某些内容进行修改
(4) 删除文档:删除某个已经发布文档
为了让使用者方便操作,还可以添加一项功能:查看所有文档。这个功能可以显示所有的文档,帮助使用者全局的了解到有哪些已经发放的文档,做到一目了然。
接收文档部分的功能主要就是查询文档,查询成功后,便可通过通信过程来获得发放者发放的文档。
2.认证和不可否认功能
此外,在该系统中,还必须实现文档的认证和不可否认功能。认证和文档的不可否认性其实应该是一体化的,即通过不可否认签名来实现对文档的认证。用某种不可否认的签名算法可以做到发送方在发送文档时附带上自己的签名,以此向接收方证明该文档确实是他发放的;而接收方也是通过这种不可否认的签名算法来验证该文档是否来自发送方,此外,他在验证过程中返回给接受方的信息也使得他不能否认已经接收到了文档。这就很好地保证了任意一方都无法抵赖。
3.1.2 选用的编程技术
1. Visual C++语言简介
在该系统的开发过程中,选用由Microsoft公司开发的Visual C++程序设计语言[13]。该语言不仅能够编写传统的DOS操作系统下的应用程序,更主要的是它可以编写Windows操作系统下的各种应用程序。并且它提供了一组各种各样的为适应几乎每一种编程风格而设计的工具。这使得该语言具有功能强大、代码简洁、可移植性强等特点。同时Visual C++语言改变了传统的字符界面的编程手段,利用可视化的编程方法使得先前枯燥、单调的计算机编程语言变得更加生动和赏心悦目。
此外,Visual C++还提供了多种多样的数据库访问技术——ODBC API、MFC ODBC、DAO、OLEDB、ADO等。Visual C++开发和其他开发工具相比的优势有以下几个方面:
(1)简单性:首先,Visual C++提供的MFC类具有强大的功能,会达到事半功倍的效果;一些开发向导会简化应用程序的开发;另外MFC ODBC数据库接口已经将一些底层的操作都封装在类中,用户可以方便地使用这些接口,而无需编写操作数据库底层代码。
(2)访问速度快: Visual C++为了解决利用ODBC开发的数据库应用程序访问数据库速度快慢的问题,提供了新的访问技术,即OLE DB和它的高层接口ADO,它们是基于COM接口的技术,因此使用这种技术可以直接对数据库的驱动程序进行访问,从而提高访问速度。
(3)数据源友好:传统的ODBC技术只能访问关系数据库,而在Visual C++中,通过OLE DB访问技术不仅可以访问关系数据库,还可以访问非关系型数据库。
2.ODBC介绍
在该系统中,选择ODBC来开发数据库。
ODBC(Open Database Connectivity,开放数据库互连) [14]是微软公司开放服务结构(WOSA,Windows Open Services Architecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。这些API利用SQL来完成其大部分任务。ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC。
一个基于ODBC的应用程序对数据库的操作不依赖任何DBMS,不直接与DBMS打交道,所有的数据库操作由对应的DBMS的ODBC驱动程序完成。也就是说,不论是FoxPro、Access还是Oracle数据库,均可用ODBC API进行访问。由此可见,ODBC的最大优点是能以统一的方式处理所有的数据库。
一个基于ODBC的应用程序对数据库的操作不依赖任何DBMS,不直接与DBMS打交道,所有的数据库操作由对应的DBMS的ODBC驱动程序完成。也就是说,不论是FoxPro、Access还是Oracle数据库,均可用ODBC API进行访问。由此可见,ODBC的最大优点是能以统一的方式处理所有的数据库。
一个完整的ODBC由下列几个部件组成:
(1)应用程序(Application)。
(2)ODBC管理器(Administrator)。该程序位于Windows 95控制面板(Control Panel)的32位ODBC内,其主要任务是管理安装的ODBC驱动程序和管理数据源。
(3)驱动程序管理器(Driver Manager)。驱动程序管理器包含在ODBC32.DLL中,对用户是透明的。其任务是管理ODBC驱动程序,是ODBC中最重要的部件。
(4)ODBC API。
(5)ODBC 驱动程序。是一些DLL,提供了ODBC和数据库之间的接口。
(6)数据源。数据源包含了数据库位置和数据库类型等信息,实际上是一种数据连接的抽象。
3.SQL介绍
SQL全称是“结构化查询语言(Structured Query Language)”,是数据库中使用的标准数据查询语言,它是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统可以使用相同的SQL语言作为数据输入与管理的接口。它以记录集合作为操纵对象,所有SQL语句接受集合作为输入,返回集合作为输出,这种集合特性允许一条SQL语句的输出作为另一条SQL语句的输入,所以SQL语言可以嵌套,这使他具有极大的灵活性和强大的功能,在多数情况下,在其他语言中需要一大段程序实现的一个单独事件只需要一个SQL语句就可以达到目的,这也意味着用SQL语言可以写出非常复杂的语句。 其实SQL语言使用起来比较简单,但是它的功能是非常强大的,这足以使用户可以完成各种数据库操作的任务。
SQL语言包含4个部分: 数据查询语言(SELECT语句) ;数据操纵语言(INSERT, UPDATE, DELETE语句); 数据定义语言(如CREATE, DROP等语句); 数据控制语言(如COMMIT, ROLLBACK等语句)。

3.2 系统设计

3.2.1 总体设计
系统可分为服务器端和客户端两大部分,分别对应的是文档的发送方和接收方。服务器端应该具备发送管理文件的基本功能,客户端则应该具有基本的查询功能。两者间文件的传送通过WINSOCK通信来实现。此外,还有认证和不可否认签名分别包含在两大部分里,这也同样通过WINSOCK通信来实现。
系统文档发放与接收主要过程描述如下:首先发送者可以通过服务器端先发布一些新的文档,并且能通过服务器端对已经发布的文档进行一系列的管理操作:包括查询、修改、删除等;而接收者在客户端连接上服务器后可以查询自己所需文档,查询到后,发送者则将所需的文档连同签名一起,通过WINSOCK通信发给客户端的接收者。然后接收者通过不可否认签名算法对发过来的文档进行验证,验证成立后即完成了一个文档的发放。
3.2.2 分块设计及模块图
如图3.1的网络文档发放与认证管理系统模块图所示,服务器端两个功能块,即一般功能和不可否认签名功能。一般功能又分为服务器设定、文档操作和帮助三项。其中服务器的设定是用来退出服务器的,而文档操作就分为:查询文档、查看所有文档、发布新文档和修改/删除文档,帮助项则包含了系统版本信息等。不可否认签名功能块即是对文章签名。
客户端和服务器端的功能大体相同。但在实现这些功能之前必须先连接服务器,客户端是通过WINSOCK通信与服务器端相连接的;而它的一般功能中的操作功能也相对减少,只有对文档的查询功能。其它相同部分就不一一赘述了。

图3.1 网络文档发放与认证管理系统模块图

第四章 界面的设计与实现

4.1 服务器界面设计

4.1.1 菜单设计
建立一个对话框,添加四个菜单项:服务器设定、文档操作、数字签名、帮助。“服务器设定”项用来退出服务器;“文档操作”向包括:查询文档、修改/删除文档、发布新文档和查看所有文档;“数字签名”项用来设置参数,对文档进行签名后再发送;“帮助”项则是介绍系统版本信息。实现后服务器的菜单界面及各项具备的功能如图4.1所示:
        
图4.1 服务器菜单界面

“数字签名”选项实现后的界面如图4.2所示:
          图4.2 服务器“数字签名”界面

“帮助”选项中是该系统的版本信息,做好后的界面如图4.3所示:
         图4.3 服务器“帮助”界面

4.1.2 “发布新文档”功能的设计
1.整体框架的设计
先建立一个对话框,在对话框中添加文档的各项信息,并添加相应的编辑框。在各编辑框中输入相应内容后的“发布新文档”的界面如图4.4所示:
图4.4 “发布新文档”的界面
2.“确定”键的实现
首先,要判断所有编辑框中输入的内容不为空,若有编辑框为空,则提示出错,系统会告诉使用者“请输入相应的数据”;接下来从建好的数据表中查询相关信息,若文档的编号已经存在,则系统提示“已经存在该文档,请重新输入文档编号”,然后把已经输入的内容相应地存到数据表中,并关闭已经打开的函数。一些关键语句如下:
if(myfindset_id.GetRecordCount()!=0)
{
AfxMessageBox(“已经存在该文档,请重新输入文档编号!”);
if(myfindset_id.IsOpen())
{
myfindset_id.Close();
}
return;
3.设定时间格式
在这里,还要对输入的时间格式进行规定,规定时间的格式为:2007/05/12。输入的时间格式若不正确,系统也会提示出错。
CTime t;
static char year[5],month[3],day[3];
char str[20];
strcpy(str,(LPCTSTR)m_m_issuetime);
memcpy(year,str,4);
memcpy(month,str+5,2);
memcpy(day,str+8,2);
CTime r(atol(year),atol(month),atol(day),0,0,0);
t.operator = (r);
4.1.3 “查询文档”功能的设计
1.整体框架的设计
先建立一个对话框,在对话框中以下拉框的方式设置四种查询方式:保密等级、类型、发布时间、图书编号,并且都对应相应的关键字进行查询。选择“保密等级”,以“公开”关键字进行查询后“查询文档”的界面如图4.5所示:
图4.5 “查询文档”的界面
2.查询方式下拉框的实现
用CComboBox控件显示四种查询方式:用AddString() 添加这些字符串,然后用SelectString()选中字符串。
CComboBox *pCombo=(CComboBox *)GetDlgItem(IDC_FindStyle);
pCombo->ResetContent();
pCombo->AddString(“图书编号”);
pCombo->AddString(“类型”);
pCombo->AddString(“保密等级”);
pCombo->AddString(“发布时间”);
pCombo->SelectString(-1,m_findstyle_value);
接下来就是将选中的查询方式添加到框中,并关闭下拉框。
m_ctrl_findstyle.ResetContent();
m_ctrl_findstyle.AddString(m_findstyle_value);
m_ctrl_findstyle.SelectString(-1,m_findstyle_value);
3.“查询”键的实现
在进行查询前,把原来打开的文档先关上,清空原来有的内容并刷新显示。选中任一种查询方式并输入关键字后,都要相应在数据表中逐个往下查询,直到找到一次相关的文档为止。若查询方式错误,系统则提示“对不起,无该种查询方式”。 代码略。
4.显示功能的实现
查询完毕后,即要把查询到的内容显示出来。首先,要从一开始的第一条记录开始显示,并且依次移动到下一条记录,直到最后一条记录止。
if(!myfindset.IsBOF())//如果不在开头,就移动到开始
{
myfindset.MoveFirst();
}
while(!myfindset.IsEOF())//如果不是结尾,就移动到下一条记录
{ }//然后显示所有项的更新
最后显示更新:UpdateData(false);
4.1.4 “修改/删除文档”功能的设计
1.整体框架的设计
先建立一个对话框,在上半部分用同上的显示功能把所有的文档显示出来;下半部分左边显示选中要修改或删除的文档,右边则以下拉框的方式设置与文档内容有关的十四种修改方式:保密等级、类型、发布时间、发布单位等,并添加一个编辑框输入修改后的内容。删除功能添加一个删除键对选中的文档进行删除即可。各功能都完成后“修改/删除文档”的界面如图4.6所示:
图4.6 “修改/删除文档”的界面

2.双击选中文档功能的实现
先定义一个指针,指向修改文档的这个列表,然后调用它的GetFirstSelectedItemPosition()函数,来得到项目索引,然后将得到的值传递给变量m_index,若值为-1,则返回。
CListCtrl* pListCtrl = (CListCtrl*) GetDlgItem(IDC_ChangeList);
POSITION pos = pListCtrl->GetFirstSelectedItemPosition();
int m_nIndex = pListCtrl->GetNextSelectedItem(pos); // 得到项目索引
if(m_nIndex==-1)
{
return;
}
然后便将选中的文档信息各项显示在左下方,用UpdateData(false);显示更新。
3.“修改”键的实现
首先,要判断修改方式是否为空,若为空,则返回;接下来则根据选择修改打开一个表,从界面获取变量m_isbn(文档编号),然后打开该表,打开失败则返回失败提示
CString sqlStr1;
sqlStr1=”SELECT * FROM documentinfo WHERE documentisbn=’”; sqlStr1+=m_isbn;
sqlStr1+=”‘”;
if(!myset.Open(AFX_DB_USE_DEFAULT_TYPE,sqlStr1))
{
AfxMessageBox(“documentinfo表打开失败!”);
}
之后便调用myset.Edit();函数来输入要修改的内容。以选中“类型”修改方式为例进行讲述,其它方式的实现相同。先将新输入的内容附给类型变量,然后更新,并把打开的文件关闭;还要通过把值赋给变量m_isbn(文档编号)来显示修改后的新内容。
if(m_xiugaifangshi==”类型”)
{
myset.m_type=m_new;
myset.Update();
myset.Requery();
if(myset.IsOpen())
{
myset.Close();
}
m_isbn=m_new; //显示更新
m_new=”"; //空附值为空
DisplayRecord();//列表中更新
UpdateData(false);//显示更新
}
4.“删除”键的实现
首先,要选中要删除的文档,接下来同修改功能中根据选择打开一个表,之后便用mydeleteset.Delete();函数来实现删除,删除了文档后还要更新列表中的内容,即将列表中的所有项都附为空值,最后用UpdateData(false);显示更新即可。代码略。

4.2 客户端界面设计

4.2.1 菜单设计
建立一个对话框,添加三个菜单项:客户端设定、操作、帮助,并添加上系统自动显示时间的功能。实现后客户端的界面如图4.7所示:
图4.7 客户端界面
4.2.2 各功能的实现
“客户端的设定”项实现了退出客户端;“操作”项即是对所需的文档进行查询,查询功能的具体实现跟服务器端相同,在此就不赘述,“帮助”项也是系统的版本信息,做好后的界面如图4.8所示:
图4.8 客户端“帮助”界面

在客户端界面左边,时间显示的下方是本机器IP地址和客户端编号, 点击“连接服务器”按钮后系统会出现如图4.9的对话框提示连接成功:
图4.9 连接成功提示界面
该键通过以下语句来实现与服务器的连接:
if(m_client.InitAndConnect(this->m_hWnd,m_serverport,m_serverip)==FALSE)
return;
return;
在界面的右上方可根据关键字来查询所需文档,与“操作”项中查询的功能一致,下拉框及“查询”键等的实现与服务器端相同,在此也不一一赘述。

第五章 数据库的设计与实现

5.1 数据库设计

5.1.1 数据库概念结构设计
在这个系统中,需要设计的实体只有文档实体。文档实体中应包括以下的数据项:文档编号、类型、保密等级、文档标题、主送、主题词一、主题词二、主题词三、主题词四、发布时间、发布单位、拟稿人、校对、签发和内容简述等。
图5.1为文档实体E-R图:

图5.1 文档实体E-R图

5.1.2 数据库逻辑结构设计
在以上实体的关系的基础上,形成数据库中的表格。
创建文档信息表documentinfo:

表5.1 文档信息表documentinfo

列名 数据类型 可否为空 说明
documentisbn varchar(100) not null unique 文档编号(主键)
type varchar(50) not null 类型
keylevel varchar(50) not null 保密等级
documentname varchar(200) not null 文档标题
sendto varchar(50) not null 主送
keywordsone varchar(50) not null 主题词一
keywordstwo varchar(50) not null 主题词二
keywordsthr varchar(50) not null 主题词三
keywordsfou varchar(50) not null 主题词四
issuetime datetime not null 发布时间
issuedepart varchar(50) not null 发布单位
writer varchar(50) not null 拟稿人
proofreadman varchar(50) not null 校对
drawon varchar(50) not null 签发
detail varchar(200) not null 内容简述

5.2 数据库结构的实现

在概念结构设计的基础上得到数据库逻辑结构以后,就可以在数据库系统中实现该逻辑结构。在SQL Server 2000 数据库系统中创建documentinfo表格之前要先创建一个数据库,具体SQL语句如下:
create database document;
use document;
create table documentinfo(
documentisbn varchar(100) not null unique,
type varchar(50) not null,
keylevel varchar(50) not null,
documentname varchar(200) not null,
sendto varchar(50) not null,
keywordsone varchar(50) ,
keywordstwo varchar(50) ,
keywordsthr varchar(50) ,
keywordsfou varchar(50) ,
issuetime datetime not null,
issuedepart varchar(50) not null,
writer varchar(50) not null,
proofreadman varchar(50) not null,
drawon varchar(50) not null,
detail varchar(200) not null
)
insert into documentinfo
values(
‘200704010001′,’财务制度’,'公开’,'关于2007年员工出差报销的财务制度’,'全体员工’,'2007年’,'出差’,'报销’,'财务制度’,'07/04/01′,’财务部’,'任晓平’,'郑丹婵’,'郑丹婵’,'报销时间每周四之前,报销延期不超过10天’
)
insert into documentinfo
values(
‘200703010001′,’任免制度’,'公开’,'关于2007年销售部经理的任免通知’,'全体员工’,'2007年’,'任免’,'销售部经理’,'人事制度’,'07/03/01′,’人事部’,'李鸿’,'郑丹丹’,'王炳’,'郑丹婵出任市场部经理,原经理李志调湖南子公司’
)
insert into documentinfo
values(
‘200703080001′,’公司公告’,'公开’,'关于三八妇女节休息的通知’,'全体女员工’,'2007年’,'妇女节’,'休息’,'放假’,'07/03/08′,’办公室’,'郑丹丹’,'郑丹丹’,'任晓平’,'三八妇女节全体女员工放假,去湖南省工人文化宫活动’
)
insert into documentinfo
values(
‘200612030004′,’公司公告’,'公开’,'关于2007年年初招收员工的通知’,'全体员工’,'2006年’,'招新’,'招收员工’,'人事制度’,'06/12/03′,’人事部’,'李鸿’,'郑丹丹’,'王炳’,'2007年要招收一批新员工,请大家互相转告’
)
insert into documentinfo
values(
‘200611030024′,’公司公告’,'公开’,'关于2006年年底任务完成情况’,'全体员工’,'2006年’,'任务’,'超额完成’,'销售计划’,'06/11/03′,’销售部’,'王生’,'李浩’,'尹浩’,'2006任务计划超额完成,公司发奖金,请各位员工登记’
)
insert into documentinfo
values(
‘200703160042′,’公司公告’,'公开’,'关于2007年度销售计划的通知’,'全体员工’,'2007年’,'销售计划’,'市场营销’,'销售部’,'07/03/16′,’销售部’,'周鸿’,'李强’,'王昆’,'2007销售计划已经出台,请各位员工努力’
)
如此,数据库便创建完毕。

5.3 配置ODBC

在数据库建立完成后,便进行数据源的配置。具体步骤如下:
(1)从控制面板中双击“管理工具”图标,然后在新出现的窗口中双击“数据源(ODBC)”。在弹出的对话框中选择不同的选项卡来确定建立数据源的类型,在这里选择“系统DSN”项 。
(2)单击右上侧的“添加”按钮,从弹出的对话框中选择SQL Server作为数据源的驱动程序。
(3)点击“完成”按钮后,在新弹出的对话框里输入数据源的名称“rsp”,并且在“服务器”项的下拉框中选择自己已经建好的服务器。
(4)单击“下一步”按钮,选择已经建好的“document”数据库,并点击下一步。
(5)在新对话框里点击“完成”进行“数据源的测试” ,最后点击“确定”按钮,所选择的数据源就进入了ODBC数据源管理器,这时便可以看到了新添加的名称为“rsp”的数据源。

第六章 WINSOCK通信的设计与实现

6.1客户机/服务器模式

6.1.1通信的基本原理
该模式的建立基于以下两点:
(1)非对等作用;
(2)通信完全是异步的。
客户机/服务器模式在操作过程中采取的是主动请示方式:
首先服务器方要先启动,并根据请示提供相应服务:(过程如下)
(1)打开一通信通道并告知本地主机,它愿意在某一个公认地址上接收客户请求;
(2)等待客户请求到达该端口;
(3)接收到重复服务请求,处理该请求并发送应答信号;
(4)返回第二步,等待另一客户请求;
(5)关闭服务器。
客户方:
(1)打开一通信通道,并连接到服务器所在主机的特定端口;
(2)向服务器发送服务请求报文,等待并接收应答;继续提出请求……;
(3)请求结束后关闭通信通道并终止。
6.1.2通信过程
在通信开始前,服务器方先用socket()创建一个新的套接字,然后用Bind()将套接字地址与所创建的套接字号联系起来,绑定成功以后就用Listen()开始一个监听过程,等待客户方的连接。客户方开始时同样也要创建一个新的套接字。两方接下来调用connect()(服务器方)和accept()(客户方)来共同完成连接工作。两者间数据的发送和接收则由send()与recv()来实现,任意一方都可以发送或接收数据,即是双向的。待数据传输结束后,两方都要调用Closesocket()来关闭套接字。以上的全部过程便是客户机/服务器模式的一个完整的通信过程。
服务器方和客户方相互通信的具体实现过程如图6.1所示。

图6.1面向连接的套接字系统调用时序图

6.2 WINSOCK通信的具体实现

6.2.1服务器端WINSOCK通信
服务器端新建一个CServer类,CServer类中最重要的一个初始化并进行监听的函数是InitAndListen(HWND hwnd,UINT port)。它主要的功能是:如果当前有一个套结字,就将其关闭,然后重新创建一个新的流式套结字。接下来对本地地址m_addr进行设置,主要是地址族类型的选定以及端口号的设置。
将本机地址和之前创建好的一个套结字进行绑定bind(m_hSocket,(LPSOCKADDR)&m_addr,sizeof(m_addr)),绑定成功以后就开始一个监听过程,等待客户的连接,listen(m_hSocket,5),其中的5代表最多连接5个客户。
服务器的主界面程序MainFrame,在初始化的过程中,就调用了上述的建立套结字和绑定过程。我们只需调用CServer相关的函数即可。另外,Winsock在使用之前,必须先进行初始化。如下面程序所示:
WSADATA wsaData;
WORD version = MAKEWORD(2,0);
int ret = WSAStartup(version,&wsaData);
if(ret!=0)
{
TRACE(“初始化失败”);
AfxMessageBox(“初始化失败”);
}
只有初始化成功之后,才能开始建立套结字和绑定过程。
6.2.2客户端WINSOCK通信
客户端与服务器端过程类似,只需服务器端开启监听,客户端就可以进行连接了。考虑到有多个客户端向服务器发起连接,我们在客户端都写了获取本机器IP地址的代码,方便将来的识别。
程序初始化时,便可获得本机器IP地址和客户端编号,如图6.2所示:

图6.2 客户端图
测试过程中,服务器和客户端都在一台机器上,所以界面当中的服务器地址是127.0.0.1,端口号默认为4000。
客户端也是需要先初始化winsock,然后建立套结字,然后和本地地址绑定。接下来的过程便是主动连接服务器,该过程将等待一定时间。connect(m_hSocket, (LPSOCKADDR)&m_addr, sizeof(m_addr)),这里会产生的网络错误就是:服务器没有打开并工作在同样的端口,我们有个监听错误的函数GetLastError(),便于分析错误原因。
6.2.3 服务器端和客户端如何处理消息
上面两节讲述了服务器端和客户端创建winsock的过程,但是对方发送过来的消息如何判断是何种消息,并作出相关的响应,就需要各自建立处理消息的函数:OnClientMessage(WPARAM wParam,LPARAM lParam)和OnServerMessage(WPARAM wParam,LPARAM lParam)。两端都有FD_ACCEPT,FD_READ,FD_WRITE,FD_CLOSE四种消息类型,分别是建立连接、读、写、关闭连接。switch(lParam)过程,对不同的消息做不同的处理。
另外winsock要获取主对话框的句柄,以响应事件,如下两句函数比不可少:
afx_msg LRESULT OnServerMessage(WPARAM wParam,LPARAM lParam);
afx_msg LRESULT OnClientMessage(WPARAM wParam, LPARAM lParam);
在之后的不可否认加密算法的实现过程中,多次用到winsock通信,涉及到一些消息绑定和参数判定的过程,都是在OnClientMessage或OnServerMessage中实现的,不在本节中做过多的讨论。

第七章 不可否认签名的设计与实现

7.1 不可否认签名的方案

7.1.1 方案描述
根据课题要求,可选择以下不可否认签名方案来实现。
不可否认签名协议[15]:
发送方A公开一个大素数p和一个本原元g,它们由一组签名者用。A有一个私人秘钥x和一个公开秘钥
y=gx mod p (7.1)
对消息签名时,A计算
z=mx mod p (7.2)
并发给接受方B。
B的验证步骤如下:
(1) B选择两个小于p的随机数a和b,并计算
c=zayb mod p (7.3)
将c发给A;
(2) A计算
t=x-1mod(p-1) (7.4)
d=ct mod p (7.5)
并将d发给B;
(3) B进一步确认:
d=magb (mod p) (7.6)

如此式成立,B就认为签名是真的。
7.1.2 WINSOCK通信过程
发送方A与接收方B之间应总共有四次Winsock通信过程,具体过程如下图
p=2e+1、g、y=gx mod p
A B
(将m变成字的形式w1 、w2 、w3) z1= w1x mod p(w1 < p)、z2= w2x mod p…

(B选择两个随机数a、b) c1=z1ayb mod p、c2=z2ayb mod p…

d1=c1t mod p 、d2=c2t mod p …
图7.1 不可否认签名的Winsock通信过程
对一些参数的描述:大素数p可设定为2e+1;m表示要发送的信息,一开始发送方A先将m变成一个个16位的字的形式w1 、w2 、w3 …,计算z1 、z2 、z3 …发送给接收方B;B验证时即相对应计算c1 、c2 、c3 …发给A,A最后根据c1 、c2 、c3 …的值计算d1 、d2 、d3 …发给B让其做最后验证。
在第二次通信时,第一种方法是A可以直接将m和签字一起发送过去;第二种方法是不发送m,而只发送计算后的z值,最后从
n=dg-bmodp (7.7)
A=a-1mod( p-1) (7.8)
m=nA mod (7.9)
将消息恢复,由m的语意有意义来判断签字的有效性。
图7.1表示的是第二种方法。若使用第一种方法将m和签字一起发送给B,B则可以在收到了文档后不进行下面的签名验证过程,也就不能保证B接收后的不可否认,A方也无法确知B方是否已经收到了文档。运用第二种方法可以避免B的该种行为,更适合本课题的要求。

7.2程序的设计和实现

先定义一大素数:m_p = pow(2,16)+1
定义一个本原元g ,本原元应满足的条件如下:
gi≠gj(modp) ,(i≠j) (7.10)
参数y计算可得:m_y=fmod(pow(m_g,m_x),m_p)
在开始发送文件之前,发一个大素数p=216+1、g、y=gx mod p给客户端,为了便于客户端winsock准确识别消息,我们在发送的消息之前分别加_p,_g,_y三个前缀。
下面以参数g为例说明服务器与客户端是如何工作的。
服务器端:
if(str_g!=”")
{
CString mess1; 构造发送的字符串
mess1=”"; 初值设为空串
mess1=”_g”; 加前缀_g
mess1+=str_g; 将之前计算好的参数g加到字符串后面
char ss[1024];
ZeroMemory(ss,1024);
lstrcpy(ss,mess1);//将mess1存入ss数组
Sleep(1000);
send(socket,ss,strlen(ss),0); 通过套结字发送该消息
}
客户端:
该过程在客户端的OnClientMessage函数中实现。首先是通过套结字接收到服务器发送过来的消息,存入buf数组中。接下来根据buf数组的前两个数值判断是哪种类型的消息。例如判断是_g,则可知是g参数,则取出结果,存入本地变量m_g,中。
len=recv(m_client.m_hSocket,s,1024,0); 套结字接收消息
s[len]=NULL;
mess+=s;
char buf[1024];
ZeroMemory(buf,1024);
lstrcpy(buf,mess);//将str存入buf数组

if(buf[0]==’_’ && buf[1] ==’g')
//判断是_g
{
int index;
char _g[20];
for(index=0;index _g[index] = buf[index+2];
_g[index] = ‘\0′;
CString test;
test.Format(“%s”,_g);
str_g = test;
m_g = atoi(str_g);
}
服务器端将三个参数发送至客户端以后,将消息m变成字的形式,将z=mx mod p发送至客户端,过程和上面讲述的winsock通信原理相同,不再赘述。
客户端在Ontimer()函数中不断检查p,g,y三个参数是否已经接收到,接收到的话就计算参数c,并发给服务器端。
if(str_g!=”" && str_p!=”" & str_y!=”")
{
m_c=fmod((pow(m_z,m_a)*pow(m_y,m_b)),m_p);

CString mess1,str_c;
str_c.Format(“%f”,m_c);
mess1=”";
mess1=”_c”;
mess1+=str_c;
m_client.SendString(mess1);
}
m_client是客户段的CClientSocket类,其中的SendString(CString a)方法集成了发送socket消息的函数,隐藏了send()复杂的参数设置,方便调用。SendString的实现方法如下所示:
void CClientSocket::SendString(CString a)
{
if(send(m_hSocket,a.GetBuffer(0),a.GetLength(),0) == SOCKET_ERROR)
{
AfxMessageBox(“发送数据出错”);
}
}

第八章 总结及完善

8.1 系统总结

历时近三个月的设计和开发,网络文档发放与认证管理系统最终完成。本系统实现了对网络文档的发放、修改、删除、查询以及认证的功能,做到既具有一般的文档管理功能,又利用不可否认签名保证了双方在发放过程中不能抵赖。特别是该系统所具有的不可否认的特点,对网络文档的发放有一定意义。
本系统分为服务器端和客户端两部分,界面简单合理,操作方便,使用户能很好上手。系统通过数据库来实现对每个文档进行有条不紊的管理,通过WINSOCK实现收发文档,通过不可否认签名的协议实现了保证收发双方的不可否认性。正是这三者的有效结合和合理运用,使得系统的功能较为完善并且具有不可否认的特点,解决了网络文档在传输过程中可能存在的问题。
不可否认签名的应用正是本系统的一个特色之处。在设计中,采用的是最初的不可否认签名协议。该协议的特点是较简单,又能通过在通信过程中计算并传输参数,来保证收发双方的不可否认。

8.2系统完善

尽管已经实现的系统基本符合要求,也具备了相应的功能,但是这并不表示这个系统就是完美的,它也还存在一些不足之处,可进行如下的完善。
首先,在用户登录系统时,可以考虑加上一个登录界面,这样能对用户的登录权限加以限制。特别是作为服务器一方,不应允许任何人对其中的文档进行修改,只有在权限范围内的人才能拥有这样的权力。这就可以通过设置一个用户登录界面来对此进行控制。这对保护文档的安全性和完整性起到了很大的作用。这个登录界面应该包含该系统的名称,用户账号,用户密码等。其次,图片的搭配,色彩等也可做进一步调整,使服务器端和客户端更加协调美观。但也不能太花哨,必须符合一个管理系统所具备的简洁,明了,操作简单等特点。
在服务器端,已经具备了发布、查询、修改、删除等的基本功能。未来还可以在帮助选项中添加如何使用系统的简单介绍,使用户更易上手。此外,还可以添加上按各种不同的方式排序功能,更让使用者一目了然;把不同类型的文档归到不同的文件夹中,也便于管理和根据文件夹的类型进行查询;服务器端也可以像客户端一样添加上显示时间的功能等等。而客户端功能再加上一个如何使用系统的说明也就更好。
而对系统现在应用的不可否认签名方案是最早的方案,而现在各种适用于不同场合的具体方案已层出不穷。在将来,我们可以根据具体的环境不同而寻求一种更适合系统的不可否认的签名方案。
对系统的完善是一个长久的工作,在未来,我们应该跟上时代的步伐,在各方面进一步做出相应完善,力求使系统更具有时代特点,符合实际应用的需求。

参考文献

[1] Atul Kahate. 密码学与网络安全[M]. 北京:清华大学出版社,2005.126~129.
[2] Bruce Schneier. 应用密码学[M]. 北京:机械工业出版社,2000.384~386.
[3] WANG Gui-lin, QING Si-han. A Threshold Undeniable Signature Scheme Without a Trusted Party [J]. 软件学报,2002,13(09):1757~1764.
[4] D. Chaum, and H. van Antwerpen. Undeniable signatures[M]. In: CRYPTO’89, LNCS 435, pp. 212-216. Springer-Verlag, 1989.
[5] D. Chaum, E. van Heijst, and B. Ptzmann. Cryptographically strong undeniable signatures, unconditionally secure for the signer[M]. In: CRYPTO’91, LNCS 576, pp. 470–484. Springer-Verlag, 1992.
[6] L. Harn, and S. Yang. Group-oriented undeniable signature schemes without the assistance of a mutually trusted party[M]. In: Auscrypt’92, LNCS 718, pp. 133-142. Springer-Verlag, 1993.
[7] C.-H. Lin, C.-T. Wang, and C.-C. Chang. A group-oriented (t, n) undeniable signature scheme without trusted center[M]. In: Information Security and Privacy (ACISP’96), LNCS 1172, pp. 266-274. Springer-Verlag, 1996.
[8] R. Gennaro, H. Krawczyk,and T. Rabin. RSA-based undeniable signatures[M]. In: CRYPTO’97, LNCS 1294, pp. 132–149. Springer-Verlag, 1997. Also in Journal of Cryptology, 2000, 13: 397–416.
[9] Ryan k.Stephens, and Ronald R.Plew. 数据库设计[M]. 北京:机械工业出版社,2001.1~69
[10] 李闽溟. Visual C++ 6.0 数据库开发实例导航[M]. 北京:人民邮电出版社,2002.11~78.
[11] 黄超. Windows网络编程[M]. 北京:人民邮电出版社,2003.211~386.
[12] 闻怡洋. Winsock介绍. http://tech.china.com/netschool/01_61.html,2007-04-25.
[13] 李奇. Windows环境下Visual C++ MFC编程技术与实例[M]. 北京:机械工业出版社,2000.126~148.
[14] 丁展. Visual C++ 网络通信编程实用案例精选[M]. 北京:人们邮电出版社,2004.156~173.
[15] 卢开澄. 计算机密码学(第二版)[M]. 北京:清华大学出版社,1998.221~222.

基于JSP教学系统的实现

Posted by 天际的荒草 | Posted in Docs | 文档 | Posted on 18-09-2009

标签:, , ,

0

摘 要 I
ABSTRACT II

第一章 绪论 1
1.1 课题研究的背景及意义 1
1.1.1 课题来源和背景 1
1.1.2 课题研究的意义 1
1.2 网络教学的研究现状 3
1.2.1 网络教学的概述 3
1.2.2 网络教学的研究现状 3

第二章 需求分析 5
2.1 实现方案分析 5
2.1.1 现有教学网站系统的研究比较 5
2.1.2 系统功能需求 6
2.1.3 系统环境需求 7
2.2 实现功能分析 8

第三章 相关技术 12
3.1 JSP技术的介绍 12
3.1.1 JSP技术特点 12
3.1.2 JSP技术与ASP技术的区别 13
3.1.3 JSP开发环境的配置 13
3.2 ACCESS数据库介绍 15
3.2.1 数据库简介 15
3.2.2 JDBC的连接 16
3.3 B/S网络编程原理和思想 17
3.3.1 什么是B/S结构 17
3.3.2 与C/S比较,B/S架构软件的优势与劣势 18

第四章 系统整体设计 20
4.1 系统设计 20
4.1.1 系统设计的原则 20
4.1.2 系统设计的规范性 20
4.1.3 系统结构设计 21
4.1.4 总体功能框架 22
4.2 主要模块功能介绍 22
4.2.1 教师子系统模块介绍 22
4.2.2 学生子系统模块介绍 23
4.2.3 管理员子系统模块介绍 23

第五章 系统详细设计 25
5.1 系统数据库设计 25
5.2 各功能模块的详细设计 27
5.2.1 登陆模块 27
5.2.2 管理员模块 29
5.2.3 教师模块 32
5.2.4 学生模块 35
5.2.5 访问权限的设置 36

第六章 结论 38
6.1 课题总结 38
6.1.1 系统设计的特点 38
6.1.2 有待改进之处 38
6.2 对未来的展望 39

致谢 42
参考文献 43
附录 程序清单 44

摘 要

随着互联网的发展,信息化、自动化、网络化已成为大趋势。高校作为社会发展动力的源泉之一,都致力于校园网络化的建设。而教学网站系统作为网络教学建设中的关键环节,起着非常重要的作用。因此,开发一套适合大众的、兼容性好的教学网站系统是很有必要的。
本课题全称为教学网站系统。它主要应用于教育系统,完成对日常的教学、教务、教师以及学生的计算机化管理。系统内容广泛,涉及到教学的各项服务,可实现的功能包括教案、课件、习题下载、查看公告、发布大纲、布置课后作业、学生提问以及老师回复等等。在开发工具的选择上,采用B/S(Browser/Server,浏览器/服务器)三层结构,利用HTTP(Hyper Text Transportation Protocol,超文本传输协议)进行数据传输。采用JSP(Java Server Pages,Java服务页面)技术进行开发,使用Access数据库。
本系统实现的功能全面,安全性高,对客户端的要求较低,便于操作,只是界面有些简单。总体来说,由于该教学网站的优势,它必定会在网络教学上有广阔的应用前景。

关键词 教学网站系统,B/S结构,JSP,数据库

ABSTRACT

With development of the internet, informationization, automation and networking have become the main trends. The college as one of the most important impulse of social development, devotes to the foundation of campus networking. At the same time, the teaching network system is a key part in the network education, and plays an important role of it. So, it is very necessary to develop a suitable and popular teaching network system with good compatibility.
The full name of the project is the teaching network system. The system is mainly applied to the education system which does the manage work that manages the daily teaching, educational administration and computeration of teachers and students. The content of the system is very extensive, involving in every service on the educational administration. And the main content includes something as follows. You may offer teaching notes and courseware on it, as while as download exercises. And you may also look over the announcements or release outlines on the system. At the same time, you could assign homework as while as ask and reply questions after class, and so on. When it refers to the choosing of the developing instrument, the project adopts the B/S (Browser/Server) structure , and HTTP (Hyper Text Transportation Protocol) to transport data which come from the browser. It uses JSP (Java Server Pages) technique and Access database to develop the system.
The content of the system is overall, and it is very safe, the require to the customer is low. You could operate easily, though its interface a little easy. Generally speaking, as the advantage of the system, it must have a bright tomorrow in the network teaching.

KEY WORDS teaching network system, B/S(Browser/Server) structure, Java Server Pages, data base

第一章 绪论
1.1 课题研究的背景及意义

1.1.1 课题来源和背景

进入新世纪以来,计算机基础和网络通讯技术的迅猛发展,对整个社会的技术变革产生了重大的影响,人类迈向信息社会的步伐在加快。信息化水平成为衡量一个国家或地区现代化水平和综合实力的重要标志,我国的信息化水平相对于西方国家发达国家还有很大的差距,因此,加大我国的信息化建设步伐,成为我国经济和社会发展的一项重大战略任务。面对我国以信息化推动工业化,实现跨越式经济发展的要求,作为社会发展动力源泉之一的高等学校都致力于建设完善的校园网络,为教学新体制的建立提供了重要的环境资源。
二十一世纪的教育必须适应信息化的要求,世界发达国家高度重视信息技术对教育的影响和作用,重新调整教育目标,制定教育改革方案,加快推进教育信息化建设。高校信息化是国家信息化的重要组成部分,它是指在高校教学、科研、管理和服务等各项服务中。“利用先进的计算机技术、网络技术和多媒体技术,实现高校校园网络化、管理科学化、信息资源数字化,以达到教学科研现代化”的过程。其中校园网络化是信息化的基础,管理科学化是信息化的保证、信息资源数字化是信息化的关键[1]。

1.1.2 课题研究的意义

“一切为了每一位学生的发展”,这是教学的核心理念,教学网站系统就是为在教学中落实这一理念保驾护航的,如果学生的想法和意见能参与到教学管理中来,学生的发展要求得以最大限度的、最开放的体现,教学管理将更有针对性、更具实效。从学生的角度看,如果仍采取传统的教学管理模式容易导致学生形成一种习惯性的、统一的思维方式、见解、知识层次和能力。学生在老师统一安排和布置下,很少有自己动手去发现、去创造的意识与实践,这种管理的后果是学生个性趋同和创造力一般。这显然与素质教学的要求,即培养和发挥每个人的个性特长,适应未来高科技社会的激烈竞争和创造性的要求相悖。尊重学生的主人身份,给学生提供充分自由发展的环境和土壤,让学生真正参与各种教学活动,使学生的创新能力在实践中得到锻炼,是每一个教学工作者的责任和义务。因此,进行教学管理的改革成为当前课程改革实验研究的一个方面。
1. 建设教学网站系统是推进素质教学的需要
  我们通常认为计算机是思维的工具,是人脑的延伸,但单个计算机的容量和功能毕竟是有限的,无法与蕴藏着巨大潜能的人脑相比。而国际互联网的出现将古今中外全人类的智慧汇聚到覆盖全球的巨型网络系统之中,创造了一个每时每刻都在急剧发展的全人类的“大脑”。在这个全新的环境中,拥有信息时代学习与创新能力的人就拥有充满机遇和希望的新世纪。现代教学技术如何研究信息化、网络化的社会文化环境,如何驾驭新的教学环境和教学模式,培养受教学者具有适应新时代的学习与创造能力,不仅成为衡量教学现代化水平的标志,而且将成为个体乃至整个民族跨入新世纪的“通行证”。可见,建设教学网站系统是基础教学信息化的根本途径,丰富多彩、健康清新的教学网站系统将成为学校培养学生思维方式、道德品质、创造能力的新环境,成为面向全体学生,培养全面发展的高素质人才的崭新平台。
  2. 建设教学网站系统是迎接知识经济时代的制高点
  在知识经济时代,人的智能和知识将作为社会的主要资本不断代替机器和厂房。这个新时代将充满残酷的竞争和替代,学生的未来将依赖于他们一生中掌握新概念、做出新选择、不断学习、不断适应的能力。
  建设教学网站系统,创建丰富多彩的校园网络文化对于转变陈旧教学思想和观念,促进教学内容、教学方法、教学结构和教学模式的改革,加快建设教学手段和管理手段的现代化有决定性作用,尤其是对于深化基础教学改革,提高教学质量和效益,培养“面向现代化,面向世界,面向未来”的创新人才更具深远的意义,因为21世纪既有来自高科技的挑战,又有来自生态系统、道德危机、情感危机等系列全球性重大问题的挑战。我们通过教学网站系统建设来培养学生具有未来社会所必需的能力、思维与行为方式,不仅是改革教学模式的制高点,更是提高国民素质水平的基础步骤。
3. 建设教学网站系统是教学现代化的标志之一
  在跨世纪教学改革中,世界各国都在加快教学现代化的步伐,其信息化程度的高低已成为当今世界衡量一个国家综合国力的重要标志。教学是人类自身再生产再创造的复杂系统工程,其效益和现代化程度显然是至关重要的,但目前我国的教学信息化程度还停留在靠一本书、一支粉笔和一张嘴来工作的重复性劳动中,要想把我国的教学信息化变革速度加快,实现教学领域从劳动密集型行业向资本、技术密集型行业的转变,就要将学校教学同家庭教学、社会教学,尤其是大众传播媒介的隐性教学融为一体,实现教学中人力、物力资源的多层次开发和合理配置。而运用现代教学技术建设教学网,就是从根本上落实教学的战略地位,解放教师的生产力和师生的创造力,为现代教学增添创新优势。

1.2 网络教学的研究现状

1.2.1 网络教学的概述

计算机网络的发展在很大程度上改变了信息传输的方式,使得信息传输由原来的分散型、层次型转变为平面型,与信息传递方式紧密联系得管理组织结构,也从金字塔型转变成网状结构,原来的中间层的作用逐渐弱化,高级管理者也能直接与普通用户直接进行联系,进而促使用户参与管理过程,各个子管理机构之间也能够加强合作,从而提高整个管理机构的效率。
计算机在教育领域也得到了前所未有的广泛应用,迅速成为最有发展前景的教学媒体和教学管理工具。计算机在教育领域的应用,导致了教学手段、教学方法、教学形式、课堂教学结构等方面发生了深刻的变化,从而促进了教育思想和教育理论的变革和发展,一系列相关的思想、理论和技术在实践中日积月累、不断丰富和完善,为开展网上教学奠定了坚实的基础。网络教学是指以网络为依托、以多媒体信息为传输媒介的开放式、远程化教学系统。它结合了教育学知识和计算机科学知识,推出了最有生命力的网络化教学,利用现代信息技术发展高素质教学的教学形式,突破了传统的师生面对面的交流,打破了时间和空间对教学活动的限制,显著增强了教与学的交互能力,教学质量显著增加。

1.2.2 网络教学的研究现状

网络教学系统的研究现状按照金伯格(Ginsburg,1998)等人的分法,网络课程可以分为三代[2]:第一代是通过网页给学习者提供教学材料和有关资料,以及与其它的有关教育网连接;第二代是除了在网上提供学习材料外,还要求学习者通过电子邮件、电子公告栏、网上练习和测验进行异步双向交流;第三代是除了第一代、第二代外,还要求通过网上交谈室、电话会议、视频会议进行同步双向交流。当前世界网络课程已向第三代发展。
我国的网络课程的部分处于第二代,如何进一步提高高等教学管理水平,怎样更新管理手段提高工作效率的问题就十分突出的摆在了我们的面前;随着计算机技术和网络技术的飞速发展,网络和数据库已经成为建设现代化管理模式不可缺少的基本条件;在我国的高等学校教学管理工作中,各个高校在管理模式和机构设置方面不尽相同,无论是哪种模式都需要将分散的教学信息集中起来处理和共享,这就需要计算机网络来解决信息共享和处理。目前国内对远程网络教学系统的研究开发,呈现以下几个特点:
1. 由单机化CAI课件向“超媒体网络课件”发展
网络课件是基于B/S模式开发能在internet或intranet上发布的CAI课件,其本质是一种Web应用程序。目前的网络课件一般是网页型的,运行于服务器上。客户只需用浏览器访问即可。采用超媒体结构的方式方便教师根据实际教学情况自由选择和重新组织教学内容。提倡给教师提供教学“组件”而非成品。表现在内容上有几套方案供教师选择。在功能上强调交互性,并且通过“课件编辑器”实现教学内容重组[3]。
2. 建立网络学院,实现开放式办学
1998年9月,教育部批准清华大学、湖南大学、浙江大学、北京邮电大学作为现代远程教育首批试点高校,开始了我国真正意义上的网络远程教育,建立了自己的远程实验室或远程教育研究中心,基于综合数据网的远程教学研究正在部分院校蓬勃展开。到目前为止,经教育部批准,全国己经有67所高校开办网络教育试点,网络教育在线学生数逐年增加。教育部2001年工作要点中针对教育信息化问题谈到一一提高教育信息化水平。大力推进教育信息化基础设施建设,研究改进中国教育科研网的运行机制,建设和完善中国教育科研网高速宽带网和卫星教育传输系统。通过广播电视,卫星,计算机网络等多种方式启动“校校通”工程。发展网络教育,逐步形成一批有影响力的网络教育中心。积极开发具有自主知识产权的教育软件,丰富网络资源。
2001年4月初,MIT麻省理工学院校长宣布,在今后十年内将把它几乎所有的课程内容放到网上,包括教学笔记、课程大纲、阅读清单以及作业,供全世界所有的人免费使用[3]。
3. 高校间开展远程教育合作、进行联合网络办学
上海交通大学、西安交通大学与西藏大学于2003年10月在上海签署了“校际选课、承认学分、合作办学”的合作协议。根据协议,上海交通大学、西安交通大学将通过卫星远程教学系统和IP地面网络相结合的方式向西部的西藏大学无偿输送优质教学资源,西藏大学的学生将能享受到实时传送的两所交大的名师授课,而其所修学分还将得到上海交大、西安交大的认可。而西藏大学在藏语言文学、藏族历史、藏族美术等领域具有独特的优势,拥有大量的藏学专家,在藏学以及其他领域取得了显著的成绩。上海交通大学、西安交通大学、西藏大学将共同建设实施远程教学、发布和交流信息的联合教学网站。通过联合网络办学,达到资源共享和优势互补的效果[3]。

第二章 需求分析
本章在研究比较了现有的一些教学网站系统之后,概括介绍了系统实现方案的功能需求和技术环境需求,然后用清单的形式按照模块详细介绍了系统实现的功能。而所需技术的详细分析见第三章的相关技术部分的介绍。

2.1 实现方案分析

2.1.1 现有教学网站系统的研究比较

1. 某校教学网站系统
(1)系统功能:
 登录系统
 学生个人信息录入
 学生信息查询及输出
 学生信息修改(包括更新和删除)
 学生信息各项指标的统计汇总
 系统信息管理(如修改用户名或登录密码等)
(2)系统模块:
 学生学籍档案管理
 学生成绩管理
 班级管理
 课程管理
 团学会工作管理
 学生党建
 学生注册管理
(3)技术平台:
Windows系列。使用Windows 2000以上的版本或相应的WindowsNT的版本。
(4)开发技术:JSP
(5)数据库管理系统:
Microsoft SQL Server 2000
2. 中南大学教学网站系统
(1)系统功能:
 用户登录系统。
 学生信息的输入,修改,输入,查询。
 方便实用的报表引入引出功能,可直接生成Excel表格,也可将Excel文件导入到系统中。
 具有用户权限设置,方便用户进行权限控制。具有完善的加密功能。
(2)系统模块:
 校级教学管理
 学院级教学管理
 公共教学信息查询
 教师教学信息查询
 学生个人信息管理模块
(3)技术平台:
Windows系列。使用Windows XP的版本。
(4)开发技术:ASP
3. 评价比较
前一个教学网站系统比较简单,主要能够完成输入,显示,修改,查询,报表输出及打印等功能,但是统计和数据分析的功能并不完善,只能做简单的数据统计。出于安全性的考虑设计了登录功能。大多数的操作都采用鼠标完成,并且有多个下拉菜单,简单易行。在数据库的设计中考虑到了学生工作的各个方面,将系统分成7大模块,但是学生注册管理与学生学籍档案管理在功能上有重复,可以合并成一个模块。
相对而言,中南大学教学网站系统的功能就比较完善,除了具备数据的输入,显示,修改,查询,报表输出及打印等功能外,还具有比较完善的安全性与保密性。同时,还能够从Excel中导数据到系统中,更加灵活方便。大多数操作都采用鼠标操作,操作简单易行。系统分成5个模块可以比较全面的完成学生工作的管理。

2.1.2 系统功能需求

根据开发要求,本课题主要应用于教育系统,完成对日常的教学、教务、教师以及学生的计算机化管理。具体的功能说明如下:
1. 系统功能:
(1)用户登录系统,不同类型的用户拥有不同的访问权限,由用户登录时选择登录类型,并提供帐号、密码。
(2)教师通过该教学网站系统完成教学工作和学生课程的管理工作,具体内容有:在网上发布教案;发布教学课件;上传习题集萃;布置、批改课后作业;发布教学大纲;发布公告信息;答复学生提问。
(3)学生可以通过该平台浏览公告和教学大纲;上传作业并查询作业批改情况;下载教学课件、教案和习题集萃;向老师提问,浏览其他同学的提问及老师答复情况。
(4)管理员主要完成平时的教务管理功能。具体功能有增加、删除教师和学生的信息。
2. 主要系统模块
(1)教师模块
(2)学生模块
(3)管理员模块

2.1.3 系统环境需求

利用JSP技术进行开发,服务器端就必须有相应的环境需求,环境需求主要有:
1. 开发环境:
JDK(Java开发工具包)、JSP服务器(Apache Tomcat)。
(1)JDK
JDK是Sun公司提供的Java语言工具,它包含了Java开发中所必要的开发工具和Java运行环境(JRE-Java Run Environment),JDK由一个标准类库和一组建立、测试及建立文档的Java实用程序组成,是Java应用程序开发的基础。安装JSP服务器之前必须安装和配置JDK,可在Sun公司的网站免费下载。
(2)JSP服务器
目前JSP服务器有很多,如BEA WebLogic 8.1 、IBM WebSphere Server5.5、Apache Tomcat 5.0等,Tomcat服务器是Apache组织开发的一种JSP引擎,本身具有Web服务器的功能,可以作为独立的Web服务器来使用。由于Apache Tomcat具备安装方便、所占系统资源较少、配置简单等特点,故选择Apache Tomcat作为JSP服务器。
2. 开发工具:
Dreamweaver MX 2004
3. 操作系统:
服务器端运行系统:Windows2000 Server
客户端操作系统:Windows98/2000/XP
4. 数据库:
Microsoft Office Access 2000
5. 系统体系结构:
B/S(Browser/Server)结构即浏览器/服务器结构。

2.2 实现功能分析

本系统所实现的功能如下,其中教师功能清单见表2.1 ,学生功能清单见表2.2,管理员功能清单见表2.3。

表2.1 教师功能清单
功能编号 功能名称 描述说明
01 登录 用管理员添加过的帐号、密码登录网站系统,实现后续功能。
02 发布教案 教师用户登录到教学网站之后,点击发布教案,将会看见已经上传的教案列表,点击列表下面的发布教案,之后选择要发布的教案点击发布,会看到发布成功页面。
03 发布公告 教师用户登陆之后点击发布公告会看到公告栏,点击公告条会显示具体内容。选择公告栏下面的发布公告,进入发布页面,填写完公告标题(必填,不得多于50字)和内容之后点击发布,会看到提示信息“正在处理数据,请稍候……”之后自动回到公告栏页面,可以看到发布结果。
04 删除公告 在公告栏里的每条公告标题后面都有删除选项,点击显示“正在删除数据,请稍候……”之后自动回到公告栏页面,可以看到删除结果。
05 发布大纲 教师用户登陆之后点击发布大纲会看到大纲列表,点击大纲的名称会显示具体内容。选择大纲列表下面的发布大纲,进入发布页面,填写完大纲标题(必填,不得多于50字)和内容之后点击发布,会看到提示信息“正在处理数据,请稍候……”之后自动回到大纲列表页面,可以看到发布结果。
06 编辑大纲 在大纲列表里的每个大纲名称后面都有编辑选项,点击会显示大纲具体内容,编辑提交之后自动回到大纲列表页面,完成编辑。
07 删除大纲 在大纲列表里的每个大纲名称后面都有删除选项,点击会显示“正在删除数据,请稍候……”之后自动回到大纲列表页面,可以看到删除结果。
08 发布教学课件 教师用户登录到教学网站之后,点击教学课件,将会看见已经上传的课件列表,点击列表下面的发布课件,之后选择要发布的课件点击发布,会看到发布成功页面。
09 发布习题集萃 教师用户登录到教学网站之后,点击习题集萃,将会看见已经上传的习题列表,点击列表下面的发布习题,之后选择要发布的教案点击发布,会看到发布成功页面。
10 布置作业题目 教师用户登陆之后点击课后作业会看到作业列表,点击作业的标题会显示具体内容。选择作业列表下面的发布作业,进入发布页面,填写完作业标题(必填,不得多于50字)和内容之后点击发布,会看到提示信息“正在处理数据,请稍候……”之后自动回到作业列表页面,可以看到发布结果。
11 编辑作业题目 在作业列表里的每个作业题目后面都有编辑选项,点击会显示作业题目具体内容,编辑提交之后自动回到作业列表页面,完成编辑。
12 删除作业题目 在题目列表里的每个作业名称后面都有删除选项,点击会显示“正在删除数据,请稍候……”之后自动回到作业列表页面,可以看到删除结果。
13 批改作业 教师用户登录到教学网站之后,点击批改作业,将会看见已经上传的作业列表,选择要批改的作业点击下载,便可以将作业下载下来,批改之后再上传。
14 回复留言 教师用户登录到教学网站之后,点击答疑解惑,将会看见留言板界面,点击老师回复,回复之后选择返回留言簿,可以看见回复结果。对于那么还未回复的留言,系统默认回复为“— 尚无回复 —”。
15 删除留言 教师还可以选择删除留言功能,将过期的留言删除,只保留有价值的留言供学生查看。
16 退出登录 为了保持系统的安全性,教师用户在使用完本系统之后可以选择退出登录,界面自动回到登录页面。

表2.2 学生功能清单
功能编号 功能名称 描述说明
01 登录 用管理员添加过的帐号、密码登录网站系统,实现后续功能。
02 下载教案 学生用户登录到教学网站之后,点击浏览教案,将会看见可供下载的教案列表,选择要浏览的教案点击下载,完成该功能。
03 浏览公告 学生用户登陆之后点击公告栏,可以选择要浏览的公告进行浏览。
04 浏览大纲 学生用户登陆之后点击课程大纲会看到大纲列表,点击大纲名称会显示具体内容。
05 下载课件 学生用户登录到教学网站之后,点击下载课件,将会看见已经上传的课件列表,选择要下载的课件点击下载,便可以完成该功能。
06 下载习题集萃 学生用户登录到教学网站之后,点击下载精题,将会看见已经上传的习题列表,选择要下载的习题点击下载,便可以完成该功能。
07 查询作业题目 学生用户登陆之后点击查询作业会看到作业列表,点击作业题目会显示具体内容。
08 提交作业 学生用户登录到教学网站之后,点击提交作业,将会看见已经上传的作业列表,选择要提交的作业点击发布习题,会看到发布成功页面。
09 提出问题 学生用户登录到教学网站之后,点击提出问题,将会看见留言板界面,点击留言,填写完姓名和留言内容之后提交,系统自动返回留言簿,可以看见留言已经提交。学生还可以浏览其他同学的提问和老师回复情况。
10 退出登录 为了保持系统的安全性,学生用户在使用完本系统之后可以选择退出登录,界面自动回到登录页面。

表2.3管理员功能清单
功能编号 功能名称 描述说明
01 登录 管理员可以使用帐号、密码登录网站系统,实现后续功能。
02 显示学生信息 管理员登录到教学网站之后,点击学生文件夹,选择显示资料,便可以看见学生帐号列表。
03 添加学生信息 管理员登录到教学网站之后,点击学生文件夹,选择添加资料,便可以看见添加新纪录页面。填写完帐号密码之后提交,系统自动回到学生帐号列表,可以看到添加结果。
04 删除学生信息 在学生列表中每个学生信息后面都有一个删除项,点击之后自动回到学生列表,可以看见删除结果。
05 显示教师信息 管理员登录到教学网站之后,点击教师文件夹,选择显示资料,便可以看见教师帐号列表。
06 添加教师信息 管理员登录到教学网站之后,点击教师文件夹,选择添加资料,便可以看见添加新纪录页面。填写完帐号密码之后提交,系统自动回到教师帐号列表,可以看到添加结果。
07 删除教师信息 在教师列表中每个教师信息后面都有一个删除项,点击之后自动回到教师列表,可以看见删除结果。
08 退出登录 为了保持系统的安全性,管理员在使用完本系统之后可以选择退出登录,界面自动回到登录页面。

第三章 相关技术
3.1 JSP技术的介绍

JSP的全称是Java Server Pages,它是太阳微系统公司(Sun Microsystems Inc)倡导,多家公司参与建立的一种动态网页技术。该技术的目的是整合已经存在的Java编程环境,产生一个全新的网络程序设计语言。

3.1.1 JSP技术特点

1. 将内容的生成和显示分离
使用JSP技术,web网页开发人员可以使用html或XML标识来设计和格式化最终页面,使用JSP标识或者小脚本来生成页面上的动态内容。生成内容的逻辑被封装在标识和Bean中,那么其他人就能够编辑和使用JSP页面,而不影响内容的生成。
在服务器端,JSP引擎解释JSP标识和小脚本,生成所请求的内容,并且将结果以HTML或者XML页面的形式发送回客户端。这有助于开发人员既保护自己的代码,又保证任何基于HTML的Web浏览器的完全可用性[4]。
2. 强调可重用的组件
绝大多数JSP页面依赖于可重用的、跨平台的组件(JavaBeans或Enterprise JavaBean)来执行应用程序所要求的更为复杂的处理。开发人员能够共享和交换执行普通操作的组件,或者使这些组件为更多的使用者或者客户团体所使用。基于组件的方法加速了总体开发过程,并且使得各种组织在他们现有的技能和优化结果的开发努力中得到平衡[4]。
3. 采用标识简化页面开发
JSP技术封装了许多功能,这些功能是在生成易用的、与JSP相关的HTML或者XML的动态内容时所需要的。标准的JSP标识能够访问和实例化 JavaBean组件、设置或者检索组件属性、下载Applet,以及执行用其他方法更难于编码的耗时功能。通过开发定制标识库,JSP技术是可以扩展的。开发人员可以为常用功能创建自己的标识库,从而使Web页面开发人员能够使用如同标识一样的工具来执行特定功能的构件[4]。
4. 完善的存储管理和安全性
  由于JSP页面的内置脚本语言是基于Java编程语言的,而且所有的JSP页面都被编译成为Java Servlet,JSP页面就具有Java技术的所有好处,包括健壮的存储管理和安全性[5]。
5. 一次编写,各处运行
  作为Java平台的一部分,JSP拥有Java编程语言“一次编写,各处运行”的特点。随着越来越多的供应商将JSP支持添加到他们的产品中,您可以使用自己所选择的服务器和工具,更改工具或服务器并不影响当前的应用[5]。

3.1.2 JSP技术与ASP技术的区别

ASP 和 JSP 的区别主要有以下两点:一是ASP的编程语言是VBScript之类的脚本语言, JSP 使用的是 Java 、JavaScript等;二是 ASP 与 JSP这两种技术的语言引擎用完全不同的方式处理页面中嵌入的程序代码。在 ASP 下, VBScript 代码被 ASP 引擎解释执行;在 JSP 下,代码被编译成 Servlet 并由 Java 虚拟机执行,这种编译操作仅在对 JSP 页面的第一次请求时发生。

3.1.3 JSP开发环境的配置

要开发JSP,必须先搭建一个符合JSP规范的开发环境。Sun推出的JSP是一种执行于服务器端的动态网页开发技术,它基于Java技术。执行JSP时需要在Web服务器上架设一个编译JSP网页的引擎。配置 JSP 环境可以有多种途径,但主要工作就是安装和配置Web服务器和JSP引擎。本系统采用了以JDK+Tomcat配置JSP环境的方法。
1. JDK的安装与配置
下载好最新的JDK版本,然后选择好安装路径。安装到计算机上。首先右键点我的电脑,打开属性,然后选择“高级”里面的“环境变量”,在新的打开界面中的系统变量需要设置三个属性“java_home”、“path”、“classpath”,其中在没安装过JDK的环境下。path属性是本来存在的。而java_home和classpath是不存在的[6]。
首先点“新建”,然后在变量名写上java_home,顾名其意该变量的含义就是java的安装路径,然后在变量值写入刚才安装的路径“E:\j2sdk-1_4_1_07” 新建java_home变量如图3.1所示。

图3.1 新建java_home变量截图

其次在系统变量里面找到path,然后点编辑,path变量的含义就是系统在任何路径下都可以识别Java命令,则变量值为“%java_home%\bin;%java_home%\jre\
bin”,(其中“%java_home%”的意思为刚才设置java_home的值),也可以直接写上“E:\j2sdk-1_4_1_07\bin”, 修改Path变量如图3.2所示。

图3.2 修改Path变量截图

最后再点“新建”,然后在变量名上写classpath,该变量的含义是为java加载类(class or lib)路径,只有类在classpath中,java命令才能识别。其值为“.;%java_home%\lib;%java_home%\lib\tools.jar (要加.表示当前路径)”,与“%
java_home%”有相同意思,新建classpath用户变量如图3.3所示。

图3.3 新建用户变量截图

以上三个变量设置完毕,则按“确定”直至属性窗口消失,下来是验证看看安装是否成功。先打开“开始”->“运行”,打入“cmd”,进入dos系统界面。然后打“java -version”,如果安装成功,系统会显示java version jdk”1.4.08″ (不同版本号则显示不同)。显示界面如图3.4所示。

3.4显示版本信息截图

2. Tomcat的安装与配置
Tomcat服务器是Apache组织开发的一种JSP引擎,本身具有Web服务器的功能,可以作为独立的Web服务器来使用。同时该软件也是免费的,对于初学者来说,Tomcat是一个很不错的选择。本书使用的版本是tomcat 5.0.28,下载地址是:http://apache.linuxforum.net/dist/jakarta/tomcat-5/v5.0.28/bin/jakarta-tomcat-5.0.28.exe
下载好jakarta-tomcat-5.0.28.exe 后运行,安装程序会自动搜索JDK的安装路径,默认访问端口号是8080,成功安装后,程序会提示启动tomcat并查看readme文档[7]。
按照前面设置环境变量的方法设置新的系统环境“TOMCAT_HOME”,值为安装路径“E:\Tomcat 5.0”。默认访问端口是8080,如果想改动,可以在文件夹conf下找到server.xml文件,用记事本打开,查找到8080,然后改成你想设置的端口号即可。
至此安装与配置都已完成,重启电脑,在Tomcat的安装文件夹bin里找到startup.bat文件,双击即可启动Tomcat,打开浏览器输入:http://localhost:8080(如端口更改,则将8080改成你所更改的数字,下同)即可看到Tomcat的相关信息。

3.2 ACCESS数据库介绍

3.2.1 数据库简介

Access 数据库管理系统是Microsoft Office套件的重要组成部分,可在Windows环境下运行。Access适用于小型商务活动,用以存储和管理商务活动所需要的数据。Access不仅是一个数据库,它具有强大的数据管理功能,可以方便地利用各种数据源,生成窗体(表单)、查询、报表和应用程序等[8]。
Microsoft Access是一种关系型数据库,表与表之间可以建立关系(或称关联,连接),以便查询相关联的信息。Access数据库以文件形式保存,文件的扩展名是.mdb。
Access数据库由六种对象组成,它们是表、查询、窗体、报表、宏和模块[8]。
(1)表(Table) ——表是数据库的基本对象,是创建其他5种对象的基础。表由记录组成,记录由字段组成,表用来存储数据库的数据,故又称数据表。
确定表是数据库设计过程中最重要的步骤。在设计表时应该遵循以下设计原则。
① 每个表应该只包含关于一个实体(客观事物)的信息。
② 每个表中任意两条记录的值不能完全相同。
③ 同一表中不允许有相同的字段名。
④ 同一字段中的值必须是相同的数据类型。
(2)查询(Query)——查询可以按索引快速查找到需要的记录,按要求筛选记录并能连接若干个表的字段组成新表。
(3)窗体(Form)——窗体提供了一种方便的浏览、输入及更改数据的窗口。还可以创建子窗体显示相关联的表的内容。窗体也称表单。
(4)报表(Report)——报表的功能是将数据库中的数据分类汇总,然后打印出来,以便分析。
(5)宏(Macro)——宏相当于DOS中的批处理,用来自动执行一系列操作。Access列出了一些常用的操作供用户选择,使用起来十分方便。
(6)模块(Module)——模块的功能与宏类似,但它定义的操作比宏更精细和复杂,用户可以根据自己的需要编写程序。模块使用Visual Basic编程。

3.2.2 JDBC的连接

JDBC全称为Java DataBase Connectivity standard,它是一种可用于执行SQL语句的Java API(Application Programming Interface应用程序设计接口)。它由一些Java语言编写的类和界面组成。JDBC为数据库应用开发人员、数据库前台工具开发人员提供了一种标准的应用程序设计接口,使开发人员可以用纯Java语言编写完整的数据库应用程序,通过它可访问各类关系数据库。
简单地说,JDBC能完成下列三件事[9]:
(1)同数据库建立连接
(2)向数据库发送SQL语句
(3)处理数据库返回的结果
1. JDBC驱动程序
通常情况下,Java程序首先使用JDBC API来与JDBC Driver Manager交互,由JDBC Driver Manager载入指定的JDBC drivers,以后就可以通过JDBC API来存取数据库[10]。
本系统使用的是Access数据库,数据驱动方式为JDBC-ODBC桥,采用JDBC-ODBC桥加ODBC驱动程序,数据库的连接代码为:
< %
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); // ODBC驱动方式
String url="jdbc:odbc:jcc"; //数据源为JCC
Connection con=DriverManager.getConnection(url,"",""); // 建立连接
Statement smt=con.createStatement();
String sql="";
ResultSet rs =null;
%>
2. 配置Access系统的DSN
建立Access系统DSN的步骤如下[11]。
(1)启动ODBC数据源管理器,在服务器上打开“控制面板”→“管理工具”窗口,然后双击“数据源(ODBC)”图标。
(2)在打开的“ODBC数据源管理器”对话框中单击“系统DSN”标签。
(3)单击“添加”按扭打开“创建新数据源”对话框,从中可以选择数据源类型。使用Access数据库系统,在列表中选择Microsoft Access Driver(*.mdb)项,然后单击“完成”按钮。
(4)随后在出现的“ODBC Microsoft Access安装”对话框,命名数据源名为“jcc”,选择数据库路径和文件,单击确定。
(5)在“说明”栏可输入对该数据库的简单描述,然后单击“选择”按扭打开“选择数据库”对话框,在其中选择数据库文件。
(6)选择数据库的路径和数据库的名称后单击“确定”按钮返回“ODBC数据源管理器”对话框。此时就可以在“系统DSN”标签中看到刚刚建好的ODBC数据源。

3.3 B/S网络编程原理和思想

3.3.1 什么是B/S结构

B/S(Browser/Server)结构即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,形成所谓三层结构。这样就大大简化了客户端电脑负荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本[12]。
以目前的技术看,局域网建立B/S结构的网络应用,并通过Internet/Intranet模式下数据库应用,相对易于把握、成本也是较低的。它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN,WAN,Internet/Intranet等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全。特别是在Java这样的跨平台语言出现之后,B/S架构管理软件更是方便、快捷、高效。

3.3.2 与C/S比较,B/S架构软件的优势与劣势

1. 维护和升级方式简单
目前,软件系统的改进和升级越来越频繁,B/S架构的产品明显体现着更为方便的特性。对一个稍微大一点单位来说,系统管理人员如果需要在几百甚至上千部电脑之间来回奔跑,效率和工作量是可想而知的,但B/S架构的软件只需要管理服务器就行了,所有的客户端只是浏览器,根本不需要做任何的维护。无论用户的规模有多大,有多少分支机构都不会增加任何维护升级的工作量,所有的操作只需要针对服务器进行;如果是异地,只需要把服务器连接专网即可,实现远程维护、升级和共享。所以客户机越来越“瘦”,而服务器越来越“胖”是将来信息化发展的主流方向。今后,软件升级和维护会越来越容易,而使用起来会越来越简单,这对用户人力、物力、时间、费用的节省是显而易见的。因此,维护和升级革命的方式是“瘦”客户机,“胖”服务器。
2. 成本降低,选择更多
大家都知道Windows在桌面电脑上几乎一统天下,浏览器成为了标准配置,但在服务器操作系统上Windows并不是处于绝对的统治地位。现在的趋势是凡使用B/S架构的应用管理软件,只需安装在Linux服务器上即可,而且安全性高。所以服务器操作系统的选择是很多的,不管选用那种操作系统都可以让大部分人使用Windows作为桌面操作系统电脑不受影响,这就使的最流行免费的Linux操作系统快速发展起来,Linux除了操作系统是免费的以外,连数据库也是免费的,这种选择非常盛行。
比如说很多人每天上“网易”网,只要安装了浏览器就可以了,并不需要了解“网易”的服务器用的是什么操作系统,而事实上大部分网站确实没有使用Windows操作系统,但用户的电脑本身安装的大部分是Windows操作系统。
3. 软件数据安全性增强
由于C/S结构软件的数据分布特性,客户端所发生的火灾、盗抢、地震、病毒、黑客等都成了可怕的数据杀手。另外,对于集团级的异地软件应用,C/S结构的软件必须在各地安装多个服务器,并在多个服务器之间进行数据同步。如此一来,每个数据点上的数据安全都影响了整个应用的数据安全。所以,对于集团级的大型应用来讲,C/S结构软件的安全性是令人无法接受的。对于B/S结构的软件来讲,由于其数据集中存放于总部的数据库服务器,客户端不保存任何业务数据和数据库连接信息,也无需进行什么数据同步,所以这些安全问题也就自然不存在了[13]。
4. 软件数据实时性更好
在集团级应用里,C/S结构不可能随时随地看到当前业务的发生情况,看到的都是事后数据;而B/S结构则不同,它可以实时看到当前发生的所有业务,方便了快速决策,有效地避免了企业损失[13]。
5. 软件数据一致性
在C/S结构软件的解决方案里,对于异地经营的大型集团都采用各地安装区域级服务器,然后再进行数据同步的模式。这些服务器每天必须同步完毕之后,总部才可得到最终的数据。由于局部网络故障造成个别数据库不能同步不说,即使同步上来,各服务器也不是一个时点上的数据,数据永远无法一致,不能用于决策。对于B/S结构的软件来讲,其数据是集中存放的,客户端发生的每一笔业务单据都直接进入到中央数据库,不存在数据一致性的问题[13]。
6. 应用服务器运行数据负荷较重
由于B/S架构管理软件只安装在服务器端(Server)上,网络管理人员只需要管理服务器就行了,用户界面主要事务逻辑在服务器(Server)端完全通过WWW浏览器实现,极少部分事务逻辑在前端(Browser)实现,所有的客户端只有浏览器,网络管理人员只需要做硬件维护。但是,应用服务器运行数据负荷较重,一旦发生服务器“崩溃”等问题,后果不堪设想。因此,许多单位都备有数据库存储服务器,以防万一。

第四章 系统整体设计
4.1 系统设计

4.1.1 系统设计的原则

易用性:网络教学系统设计制作使用的技术不对浏览者使用的浏览器有特殊要求。 方便各类操作人员,做到完全或部分自动化处理。
高效性:网络教学系统页面的设计简洁美观,尽可能地提高浏览速度,突出主要信息。导航系统层次清晰,方便浏览者对相关信息的访问。
结构合理:网络教学系统层次设计要合理,符合人们的浏览习惯,让浏览者可以通过尽可能少的点击次数即可找到需要的信息。
可扩展性:网络教学系统设计要考虑到未来发展的需要,同时考虑系统建设的阶段性,要尽可能地设计得简明,各个功能模块间的耦合度小,便于系统的扩展,平滑地与其它应用系统自动接口。
并发性强:考虑到网络教学系统的使用者同时操作系统的情况,系统支持多人操作,建立高速缓冲机制,提供使用者的访问速度。
可移植性、可延续性:采用的开发技术不仅满足现在的应用需求,而且要适应未来的发展趋势,便于以后的升级、移植工作。
创意性强:结合教学网站的特点,设计风格符合教学网站现有的设计,特色鲜明。

4.1.2 系统设计的规范性

网络教学系统的设计实际上是一项工程,在整个设计过程中要遵循一定的规范及原则。总的来说,是先定好一个蓝图规划,再按部就班逐步建立,而在具体制作过程中根据变化情况进行修改。在网站设计进程中的原则中是将系统模块化,细化每一个模块以易于用户使用。完成各模块的设计后要进行系统集成,进行系统测试成功后发布网站。具体来说,模块化的原则在网站管理系统中体现为将系统模块化为各个功能子系统。模块化不仅是易于系统的建立而且也易于网站的扩展和维护。系统对于用户来说的易用性设计原则体现在各个方面。帮助系统是网络教学系统设计中加强易用性的重要方面,它指引用户有效地对系统提供各项功能的理解和使用,在具体的设计中我们主要是在系统首页提供到各功能模块的链接,在各具体的功能模块中采用尽可能清晰的结构和完整有效的链接。

4.1.3 系统结构设计

该系统采用了B/S模式的三层结构,解决了传统C/S模式管理系统维护困难、工作量大的缺点。图4.1所示即为系统初步编程模型。

图4.1 系统初步编程模型

4.1.4 总体功能框架

如图4.2所示,本教学网站系统可分为三个大部分。在这三个大部分中包含着许多信息,而管理员模块控制管理用户帐号,与用户的登录信息密切相关。教师模块的许多功能与学生模块中的功能也是密不可分,例如教师模块的批改作业功能与学生模块中的提交作业功能。

图4.2 总体功能框架图

4.2 主要模块功能介绍

4.2.1 教师子系统模块介绍

教师通过该部分完成教学工作和学生课程管理,具体有:1)采用密码登录2)在网上发布教案;3)发布课件;4)上传习题集萃;5)布置、批改课后作业;6)发布大纲;7)发布公告信息;8)答复学生提问。模块功能如图4.3所示。

图4.3 教师子系统

4.2.2 学生子系统模块介绍

学生通过该部分完成学习任务,具体有:1)采用密码登录2)阅读教学大纲,公告,通知,教案和课件等;4)在网上完成课程学习;5)课后作业,包括作业下载,上传作业内容和作业成绩查询等;6)向老师提问,查询回复情况,浏览其他同学的提问及答复。模块功能如图4.4所示。

图4.4 学生子系统

4.2.3 管理员子系统模块介绍

教务管理人员在该部分完成教务管理工作,具体有:1)采用密码登陆;2)管理教师信息和学生信息数据;3)提供不同的用户访问权限。模块功能如图4.5所示。

图4.5 管理员子系统

第五章 系统详细设计
5.1 系统数据库设计

在设计应用程序之前,先要设计系统的数据库。根据本教学系统需要实现的功能要求,先要确定创建哪些数据表及其他数据库对象,然后再创建数据库、数据表及数据库对象,最后再进行数据库的初始化操作,即系统运行时需要的初始数据。本网站系统需要的数据项如下:
1. 用户信息
数据项包括用户名、密码,一共要建立三个数据表,分别为表5.1管理员数据表admin,表5.2学生数据表student和表5.3教师数据表teacher。数据表设计如下:

表5.1 admin
字段名称 数据类型 说明
Id 文本 管理员用户名
Password 文本 管理员密码

表5.2 teacher
字段名称 数据类型 说明
Id 文本 教师用户名
Password 文本 教师密码

表5.3 student
字段名称 数据类型 说明
Id 文本 学生用户名
Password 文本 学生密码

2. 公告信息
数据项包括标题及内容,系统要完成发布公告、课程大纲、课后作业、教案、课件等功能,因此需要建立五个数据表,分别为表5.4 notice、表5.5 dagang、表5.6 assignment、表5.7 course、表5.8 kejian。数据表设计如下:

表5.4 notice
字段名称 数据类型 说明
Id 自动编号 记录编号,标识属性
Title 文本 公告标题
Body 备注 公告内容

表5.5 dagang
字段名称 数据类型 说明
Id 自动编号 记录编号,标识属性
Title 文本 课程大纲标题
Body 备注 大纲内容

表5.6 assignment
字段名称 数据类型 说明
Id 自动编号 记录编号,标识属性
Title 文本 课后作业标题
Body 备注 作业内容

表5.7 cource
字段名称 数据类型 说明
Id 自动编号 记录编号,标识属性
Title 文本 教案标题
Body 备注 教案内容

表5.8 kejian
字段名称 数据类型 说明
Id 自动编号 记录编号,标识属性
Title 文本 课件标题
Body 备注 课件内容

3. 留言板信息
数据项包括留言者、留言内容、留言时间以及教师回复,建立一个数据表即可,表名为tGuestBook。数据表设计如下表5.9:

表5.9 tGuestBook
字段名称 数据类型 说明
fId 自动编号
fName 文本 留言学生姓名
fContent 备注 留言内容
fTime 时间 留言时间
fReplyContent 备注 教师回复
补充说明 fReplyContent的默认值为“— 尚无回复 —”

5.2 各功能模块的详细设计

5.2.1 登陆模块

登陆系统提供不同用户的访问权限,把不同的用户限制在不同的使用区域,登录模块主要包括login.jsp和login_confirm.jsp两个页面,连接数据库时应调用sqlbean类。
用户首先要选择登录类型,然后添好用户名和密码之后点“登录”提交,页面跳转到login_confirm.jsp页面。该页面除了调用数据库连接公共类来与数据库连接外,还调用了login.java编译后所生成的login.class类文件,这个Bean的作用是获取用户填写的相关信息。
其中的login.java文件用来获取从登录页面提交的用户类型Kind,用户名Id和密码Password,代码如下:
package stu;
public class login
{
private String id;
private String password;
private String kind;
private int flag=0;
public login(){
}
public int getFlag(){
if(kind.equals(“student”)) flag=1;
if(kind.equals(“teacher”)) flag=2;
if(kind.equals(“admin”)) flag=3;
return flag;}
public String getId() {
return id; }
public void setId(String id) {
this.id = id; }
public String getPassword() {
return password;}
public void setPassword(String password) {
this.password = password; }
public String getKind() {
return kind;
}
public void setKind(String kind) {
this.kind = kind;
}
}
程序比较简单先是定义了几个变量,之后用几个类似的方法来获得帐号Id,密码Password和登录类型Kind。其中变量flag的作用是将Kind字符串转化为数字1、2、3,然后在验证页面中,使用一个swich语句检测flag对应的值,根据不同值跳转到相应页面。
若获取的账号Id和密码Password与对应的数据表对照之后正确,则跳转到相应的使用页面,如果出错,则显示“登录失败,用户名或密码有误!!”,要求用户重新输入。登陆界面如图5.1所示。

图5.1 登陆界面

5.2.2 管理员模块

管理员模块的作用是对教师和学生的资源进行管理,可进行的操作有显示、添加和删除资料。
包括的页面主要有管理员使用页面 admin.jsp ,显示学生信息页面liststu.jsp ,删除学生信息页面 deletestu.jsp ,添加学生信息页面 insertstu.jsp 和querystu.jsp 。其中 querystu.jsp 是将信息添加到数据库中。与此相对应的是显示教师信息页面 listtea.jsp ,删除教师信息页面 deletetea.jsp ,添加教师信息页面 inserttea.jsp 和 querytea.jsp 。其中 querytea.jsp 是将信息添加到数据库中。
下面我们以添加、显示、删除学生信息为例介绍一下这个模块。对教师信息的操作与此类似,不再赘述。
1. 添加资料
先登录管理员界面,选择添加学生资料,输入帐号yangjia,密码000提交,如图5.2 所示。
在这里要使用一个Javabean来获取填写的帐号和密码,提交到querystu.jsp页面,再由querystu.jsp页面将学生的信息加入到数据库中。

图5.2 添加学生信息

如果数据库中已有这个帐号,那么将不能使用,显示出错提示。如果可以使用,则显示“正在处理数据,请稍候……”,添加完成后系统自动返回添加页面insertstu.jsp。
2. 显示资料
添加完毕之后单击“显示学生资料”,跳转到liststu.jsp页面。
这部分功能的程序实现起来比较简单,只需读取数据库,然后在列表中显示出来即可。
在这里使用了一个JavaBean,关键代码如下:
ResultSet rs=stmt.executeQuery(“select * from student”)。
页面效果如图5.3所示,可以看到帐号yangjia,密码000已经被加入到显示页面中了。

图5.3 显示添加结果

3. 删除资料
在显示学生信息的页面中我们可以看到,每行信息最后都有一个“删除”选项,单击“删除”,页面提交到处理页面deletestu.jsp,跳转时记录该行的id,并将值传送到deletestu.jsp页面。
具体实现删除操作的主要代码如下:

< %
String id=request.getParameter("id");
stmt.executeUpdate("delete from student where id='"+id+"'");
out.println("正在删除数据,请稍候……”);
%>

程序先是获取要删除资料的帐号,将其在数据库中删除,在删除的时候页面会显示“正在删除数据,请稍候……”,2秒钟操作完成之后回到liststu.jsp,继续显示学生信息。
删除效果如图5.4所示,帐号yangjia,密码000已被删除。

图5.4 删除学生信息

5.2.3 教师模块

教师在登录之后将会转到这个模块,在这里教师可以实现的功能有发布教案、课件、习题集、公告、大纲,以及布置批改作业,还可以通过留言板回复删除学生的提问。
1. 发布教案
前面的这些发布功能大致相同,我们就以发布教案为例来进行介绍。
首先登录教师使用页面teacher.jsp,点击“发布教案”会看到目前可供下载的教案列表viewcourse1.jsp,之后转到上传教案页面upload1.jsp,选择要发布的“计算机基础教案”,页面效果如图5.5所示。
JSP实现文件上传的方式是使用ServletRequest类的getInputStream()方法获得一个客户端向服务器发出的数据流,然后处理这个数据流,从中分析得出文件上传中传递到服务器的各个参数和数据,再将其中的文件数据存储为一个文件或插入到数据库中[14]。通常JSP页面中不处理文件上传功能,而是把这些功能放到Servlet或是Javabean中去实现。Javabean是一种Java的软件组件,为JSP应用带来了更大的可伸缩性。

图5.5 发布教案

本课题中使用JSP的上传组件JspSmartUpload来开发文件上传和下载的功能。该组件主要由5个Javabean文件组成:File.java ,Files.java ,Request.java,SmartUpload.java,SmartUploadException.java。此外还包含一个servletUpload.java文件。
发布教案页面使用组件的代码为:
< %
int count=0;
mySmartUpload.initialize(pageContext);
mySmartUpload.upload();
for (int i=0;i com.jspsmart.upload.File myFile=mySmartUpload.getFiles().getFile(i);
if (!myFile.isMissing()) {
myFile.saveAs("/upload/" + myFile.getFileName());
mySmartUpload.SAVE_VIRTUAL);
mySmartUpload.SAVE_PHYSICAL);
count ++;
}
}
%>
新建对象初始化,然后选择要上传的文件,只有当文件存在的时候才会上传,将数据提交给upload.jsp页面,该页面对文件夹upload进行操作,将传入的文件保存在文件夹upload下。
教案发布成功之后转到sample2.jsp页面,会有提示信息“1个文件已上传成功”。并且显示出刚刚发布的教案的大小,名称,类型和上传的路径,如图5.6所示。点击“继续发布”重新回到upload1.jsp页面。

图5.6 成功发布教案

教案发布成功以后,学生登录时就可以下载该教案,具体操作在学生模块再作详细介绍。
2. 回复学生留言
教师可以完成答复学生提问的功能,方法是点击进入留言板,首先会转到显示留言页面defalt4.jsp。默认显示的是最新的提问及回复情况,若该留言还未答复将显示“— 尚无回复 —”,教师还可以对留言进行管理,可回复或删除留言。
利用Dreamweaver MX 的服务器行为,制作留言板时不用输入代码,但是在构建留言板系统前,需要设计出所有相互关联的链接页面。留言板的显示界面如图5.7所示。

图5.7 留言板

5.2.4 学生模块

学生用户登录系统之后会进入student.jsp页面,在这里学生可以浏览公告和大纲,下载教案、课件、习题,上传作业以及留言提问。
为了保持数据的一致性和系统的简洁性,学生模块和教师模块相关联的功能都公用同一数据表或是操作同一文件夹。
其中浏览部分的界面与教师发布的界面相似,只是没有编辑、删除这些选项,只可以实现浏览的功能。而留言部分的界面和教师的答复界面也是一样的,只是点击“留言”会转到add.jsp页面。在这里填写学生的姓名和问题之后提交发送。
另外学生模块中用的比较多的还有下载文件功能,我们以下载教案为例介绍。学生登录之后点击“浏览教案”会转到下载页面download1.jsp,显示出可供下载的教案列表,选择刚刚在教师模块添加的“计算机基础教案”点击下载即可。
下载教案的功能需要对文件夹进行操作,同样可以利用jspSmartUpload组件来完成。主要代码如下:
< %
SmartUpload su = new SmartUpload();
su.initialize(pageContext);
su.setContentDisposition(null);
su.downloadFile("/upload/a");
%>
程序先是新建一个SmartUpload对象,之后初始化,再设定contentDisposition为null,以禁止浏览器自动打开文件,保证点击链接后是下载文件。若不设定,则下载的文件扩展名为 doc时,浏览器将自动用word打开它。扩展名为pdf时,浏览器将用acrobat打开。然后下载文件。其中的a是指从选择下载页面提交过来的文件名。下载教案页面如图5.8所示。

图5.8 下载教案

5.2.5 访问权限的设置

为了系统的安全性和有效性,在本系统中不同的用户拥有不同的访问权限,只有管理员可以管理学生和教师的资料信息,只有教师可以发布修改学习资料,这些都是通过添加以下的代码来实现的。
1. 管理员权限代码
在管理员模块的每个页面中添加如下代码便可设置管理员的访问权限,
< %
String admin_id = (String)session.getAttribute("id");
if(admin_id==null){response.sendRedirect("login.jsp");}
%>
程序先是获取登录信息,如果和数据库资料相符则转入管理员使用界面,若是不符,将转到login.jsp页面。
2. 教师权限代码
同样在教师模块的每个页面中添加以下代码便可以完成教师权限的设置。
< %
String teacher_id = (String)session.getAttribute("id");
if(teacher_id==null){response.sendRedirect("login.jsp");}
%>
程序同样先是获取登录信息,如果和数据库资料相符则转入教师使用界面,若是不符,将转到login.jsp页面。

第六章 结论
6.1 课题总结

6.1.1 系统设计的特点

作为现代通信技术和教育的结合,网络教育有其他教育形式不可比拟的优势。它以学生自主学习为主,强调学生认知主体的作用。它改变了以教师为中心的教育模式,使得学生站到了整个教学过程的主导地位,学生成了信息加工体,而不是外部刺激的被动接受者和被灌输的对象。正是这种需求代替设置、服务代替管理、能力代替知识的转变,才使得网络教育成为了传统教育的一种教育模式的突破和革命。
为了充分发挥网络教学的优势,将学生自主学习与教师有效指导结合起来,体现开放性、互动性及自主性的原则,本系统的设计,一方面强调学生的自主学习活动,另一方面强调师生的互动作用。学生通过教案课件学习、下载精题、提出疑问、作业解答、查询公告等进行有效的学习;教师通过动态更新教案课件等学习资料、批改作业、发布公告、答复提问等有效地发挥辅导及管理作用。
课题的特点主要包括以下几个方面:
本课题包含的内容广泛,有课件、教案、作业、公告、大纲、习题、留言板,涵盖了几乎教学工作的所有方面,实用性强。
师生互动的留言板部分将网络教育和传统的教学方式教育很好的结合了起来,学生遇到问题不会无所适从,使学生自主学习的同时可以接收教师辅导。又可以让老师对学生的学习进度和问题有所了解,做到心中有数。
另外由于本系统面对的是本校的教师和学生,因此减少了用户注册部分,访问权限直接由管理员来提供,减少了用户的操作,也在一定程度上增强了本网站系统的安全性。帐号密码可以选择师生的身份证后几位或学号之类的信息。
另外该系统的设计采用了B/S三层结构模式,用户使用一个浏览器来提交请求和获得结果,而不再需要各种各样的应用软件。因此,就可使得系统对客户端要求低、维护费用低、方便地接入Internet。
系统使用JSP技术进行开发,可以让系统运行速度更快,并且系统具有强大的生命力,安全性高,易于扩展,能很好地实现对各项功能的管理。

6.1.2 有待改进之处

由于本次设计的时间比较紧迫,要实现的功能又比较多,因此仅仅是实现了系统的一些基本功能,还有很多地方可以改进。主要有以下几个方面。
师生互动板块过于简单,不能实现实时聊天功能,另外同学之间不可以进行交流,而且留言页面一次只能显示一条信息。若有可能希望可以改进这个板块,希望可以改成类似小论坛或聊天室那样的部分,可以实现多人同时交流。关于这里的想法很多,比如允许每个加入讨论的用户使用喜欢的头像,可以有自己的个性签名之类的内容。
网站的专业性不够突出,访问用户少时不觉的有什么麻烦,但是如果使用的用户增多,每个用户的需求又各不相同,信息又不可能立即更新,那么网站上面的信息就会很混乱,难以管理。因此建议将教学网站再按照学科细化,方便查找和管理。另外网站的界面做的过于简单,只有简单的滚动欢迎词,要向大的网站学习一些规划布局之类的设计,使界面做的更人性化一些。
并且希望可以再多增加一些模块,如建立自身的邮件系统,可以更方便学生和教师的使用,增加他们的交流方式,促进学习。还可以增加网上考试系统,更增强了学习的紧迫性,因为是网络教学,很大程度上要靠学生的自觉学习,如果定时检测一下他们的学习成果,可以起到督促作用,而且也可以让学生了解一下其他同学的学习情况,有个横向比较的基础。这就还需要考虑加入网上出题,阅卷和成绩公布。由系统按照要求自动组题,制作动态网页实现网上模拟测试,能及时给出测试分数,能使学生自我评估,实现梯度教学,满足学生不同的学习要求,激发学习动力。
另外如果以后可能的话,希望可以将网站的使用者的范围扩大,也欢迎一些外校的学生注册,这样就要再增加注册功能。在注册的同时为每个用户分配一个虚拟个人网络空间。在网络上为用户提供一个存储空间及相关服务,用户可构筑有自己特色的工作环境,实现方便快捷地访问常用的网络资源。并且在任意一台联网的机器上,用户都可以访问到自己的虚拟网络空间。实现“移动”学习和工作。也可以增加一些相关教育教学网站的链接,最大程度的提供给学生学习的空间。
还可以增加访问统计这项功能,便于调查各个模块的被接收程度,给出努力改进的方向,对网站做出回馈调查。
总之需要改进的地方还有很多,鉴于时间和能力的关系,很多想法不能实现,有机会的话希望以后可以实现。

6.2 对未来的展望

随着Internet/Intranet的普及,计算机应用已经从传统的单机模式转变为以全球互联网WWW(World Wide Web)平台的新型服务模式。在由于受时间和空间的限制,传统教学模式的局限性变得越来越突出。而WWW以丰富的超文本(图形、声音、动画、视频等)、统一的用户平台(网络浏览器)和其易用性得到了人们的广泛接受。计算机辅助教学系统面临着一场深刻的改革,作为一种全新的教育形式,教学网站系统应运而生。
在这种教学方式下,人们突破了时空的局限,随时可以从网上获取最新、最形象表示的前沿知识。通过基于Web环境的合作学习,学生可以与其他在线学习者彼此讨论,汇集集体智慧,达到合作学习的效果。网上教学不仅仅是简单的将教学材料在网上发布,而更多的是学生与教师之间、学生与学生之间的充分沟通与交流,由于远程教学教师与学生之间在空间上的分离,这种沟通与交流就显得尤为重要,另外,传统教学过程中一些保证教学质量的关键环节,如作业、考试、笔记记录等,都应该能够在网上得到很好的支持。所有的沟通与交流以及关键教学环节的支持,都需要一些专用的工具来支持,但是现有Internet技术并没有提供这些工具,因此迫切需要一套网上的教学支持平台,为教师在网上实施教学提供全面的工具支持,也使得网上教学从简单的教学信息发布变成一个充满交互与交流的虚拟学习社区。
当前我国教学网站系统已经初具规模,面对不同服务对象的教学网站数目越来越多,分工也越来越细,这些都说明我国教学网站建设已经上升到一个新的层次。教学网站使教学信息和教学资源以一种全新的不同于传统教学的形式呈现出来:首先,这些网站使教学信息和教学资源集图、文、音、视等融为一体,具有综合表现力强的特性,改变了传统的单一表现形式。教学信息多媒体化有利于创设教学情景,培养学生的学习兴趣,突破教学中的重点和难点,提高教学效率,全面提高学生的素质。其次,教学网站使教学信息具有信息点对点双向流通、点对面和面对面的多向流通功能,因此使教学信息流通呈现网络化的趋势。而信息流通的网络化有利于因材施教、协作学习等教学方法,能够促进教学改革,提高教学质量。再次,教学信息多媒体化和教学信息的流通网络化改变了传统教育模式中的反馈形式单一、速度慢的缺点,使师生交流的形式多样化,信息反馈及时,从而大大提高教学效率。
与此同时,我们也应清楚的认识到由于我国网络教学起步较晚,虽然目前我国教学网站正处于蓬勃发展的良好态势,但在对网络技术有时的发挥上还处于低层次阶段,无论是各类教学网站的教学效果,还是学生的实际收获,都未能完全达到预期的目的。各类网站在内容和形式上都有这样或那样的问题。网络教学是网络技术和传统教学的融合,但不是简单的“传统教学+因特网”,它应是一种全新的教学模式和教学理念。当前国内的一些教学网站在建设和运营过程中存在的这些问题,大大阻碍了新时期我国教学的健康快速发展。
另外教学网站要想真正地发挥作用,还需信息技术教师付出辛勤的劳动。否则,很容易成为虚设。这主要表现在,需要信息技术教师不断地丰富和充实活动课堂的内容。因为活动课堂是网站发挥服务于学生学习功能的主阵地,教师要结合教学实际需求提供大量优秀的活动设计。这就需要教师搜集、整理大量资料,并进行创新,设计出好的活动,教师因此要付出大量的时间和精力,否则活动课堂不活动,网站就形同虚设了。此外,教师还要对学生作品进行有效的评价,否则,评价的作用也会因此而缺憾。这些都对对教师提出了更高的要求,需要教师更加勤奋、爱岗、敬业。
而且还要正确处理网络教学与常规教学的关系。开展网络教学是进行信息技术学习的一种手段,其目的是为了更好地更有效地完成信息技术基本教学任务,提高信息技术教学水平和质量。因此,它和常规教学工作的目标完全一致。网络教学和常规教学各有特点,二者应该是相辅相成,互相促进的。在加强网络教学,提高教学水平的同时,常规教学的组织和管理等工作非但不能削弱,更待加强,这样才能高效地完成教学任务,实现教育教学目标。
目前,基于互联网的远程教学系统的研究方兴未艾,许多领域还有待进一步深入的研究与开发。特别是随着计算机技术和信息技术的发展以及虚拟技术的应用,开发具有CSCW(Computer Supported Cooperative Work) 的智能化的、交互性强的远程教学系统将成为一个重要的研究方向。随着各类教学网站在教学市场的投入和深化,网络教学市场的不断扩大,各类网站建设者只要不断实践,不断改进,发挥优势,弥补不足,必将会把新时期我国的教育事业推向一个新的更高的层次!我们不仅要能建设出教学网站,还要建设出好的教学网站,使这种新的教学手段能够最大限度的发挥作用。相信在不久的将来,教学网站在网络教学上会具有更加广阔的应用前景。

参考文献
[1] 沈培华,王映雪. 高效信息化研究与实践[A]. 蒋东兴. 全国高校信息化研究会2003学术年会论文集[C]. 西安:西安电子科技大学出版社,2004.2~6.
[2] 林君芬,余胜泉. 关于我国网络课程现状与问题的思考[EB/OL].

http://www.edu.cn/20020305/3021721.shtml,2002-03-05.

[3] 范美芳. 基于Web《工程制图》教学网站的研究与开发[D]:[硕士学位论文].广东:广东工业大学,2000.
[4] 精英科技. JSP核心技术[M]. 北京:中国电力出版社,2001. 1~5.
[5] 杨学瑜,王志军,刘同利. JSP入门与提高[M]. 北京:清华大学出版社,2002. 3~5.
[6] 向学哲. JSP程序设计教程[M]. 北京:人民邮电出版社,2006. 4~9.
[7] 张琴,张千帆. 从零开始:JSP动态网页制作基础培训教程[M]. 北京:人民邮电出版社,2005. 4~7.
[8] 张龙祥,黄正瑞,龙军. 数据库原理与设计[M].北京:人民邮电出版社,2003.
3~8.
[9] 夏帮贵,刘凡馨等. JDBC API 数据库编程实作教程[M]. 北京:希望电子出版社,2001. 15~17.
[10] Thanh-Nghi,Francois Poulet,ESIEA Recherche. Workshop on Data Mining and Text Mining for Bioinformatics[J] 2003,22(3):14~19.
[11] Bridal,Olof. On the design of communication protocols for safety-critical automotive applications[J].2002,12(2):2~3.
[12] 陈少红,朱敏. 探讨用JSP开发基于B/S的MIS[J].计算机应用,2003,6(1):16~17.
[13] CSDN技术中心. B/S结构与C/S结构[EB/OL].
http://dev.csdn.net/article/82041.shtm. 2006-05-12.
[14] jspSmartUpload上传下载全攻略[EB/OL].
http://www.gamvan.com/web/jsp/2005/2/259_3.html. 2006-02-26.

附录 程序清单

基于GPRS无线水文监控系统的设计与实现

Posted by 天际的荒草 | Posted in Docs | 文档 | Posted on 18-09-2009

标签:, , ,

0

摘要 I
ABSTRACT II
第一章 绪论 1
1.1 水文监控的意义与研究背景和内容 1
1.1.1 水文监控的意义 1
1.1.2 研究背景 2
1.1.3 研究内容 2
1.2 水文监控系统发展概述 2
1.2.1 国际发展状况 3
1.2.2 我国发展状况 4
第二章 无线技术与GPRS模块研究 7
2.1 无线技术研究 7
2.1.1 GPRS技术 7
2.1.2 蓝牙技术 7
2.1.3 CDPD技术 8
2.1.4 采用GPRS的优势 8
2.2 GPRS模块的研究 9
2.2.1 MC35i性能特点 9
2.2.2 MC35i结构 10
第三章 水文信息检测要求与系统总体设计 11
3.1 水文信息检测 11
3.1.1 水文监控范围 11
3.1.3 水位和雨量检测的设计 11
3.2 系统总体结构设计 12
3.2.1 水文信息采集 13
3.2.2 GPRS模块 14
3.2.3 数据中心 14
第四章 数据中心的软件设计 15
4.1 功能分析与系统流程设计 15
4.1.1 系统连接与初始化 15
4.1.2 自动接收数据 16
4.1.3 数据库设计 18
4.2 关键技术的研究与设计 19
4.2.1 RS-232通信接口 19
4.2.2 串行通信控件的编程 20
4.2.3 数据协议的设计 21
4.2.4 状态码的定义 22
4.2.5 AT指令 22
4.3 程序的设计 24
4.3.1 主界面的设计与实现 25
4.3.2 系统连接与初始化的设计 28
4.3.3 自动接收数据的设计 31
4.3.4 数据查询与显示的设计 34
4.4 调试与运行 36
4.4.1 调试 36
4.4.2 运行 37
第五章 总结与展望 39
结束语 40
参考文献 41
附录 42

摘要

随着我国经济社会的发展,对水文信息不断提出新要求,水文观测项目和内容不断增加,对观测手段和方法以及水文监测监控技术的研发和应用提出了越来越高的要求;现代电子技术、传感技术、通信技术和计算机技术的迅速发展,也促进了水文监控技术自动化的发展。
本文研究和设计了基于GPRS无线水文监控系统,该系统由现场水文站、GPRS模块和数据中心三部分组成。水文站采集到的水文数据信息通过GPRS数据终端封装、打包后通过GSM/GPRS网络发送到GPRS模块,GPRS模块通过串口与PC机相连,由PC机中的数据中心软件对水文信息进行管理与显示。
文中首先对水文监控系统的现状、内容和意义进行了分析,然后对几种无线传输方式做了比较,提出了基于GPRS无线水文监控系统的方案,并对系统总体构成进行了设计,接着对水文信息采集和GPRS模块进行了简要的分析与设计,最后主要对数据中心部分的水文监控软件的研制进行了详细的设计。文章结尾,分析了该系统的功能限制,并提出了改进系统。

关键词: GPRS,水文监控系统,短消息,数据库

ABSTRACT

With the economical development of our country, there is the new request to hydrological information field. The hydrological observation project and content considerable increase, meanwhile, more and more high request comes up to the method of observation and the hydrological monitoring technology; Along with the rapid development of the modern electronic technology, transducer technology communication and computer technology, the hydrology monitoring technology automation also have been large promoted.
This article based on the GPRS wireless to study and design a supervisory system. This system is consisted of the scene hydrologic station, the GPRS transmission and the data central three parts. The hydrologic station gathers the hydrology data message which packed by the GPRS data terminal seal, the message transmits through the GSM/GPRS network to the GPRS module which connected through the string mouth and PC machine. At last, the PC machine center data central software will show the management and the demonstration software of the hydrology information.
At first, in the article analysis the hydrology supervisory system present situation, the content and the significance, then made the comparison to several wireless transmission modes. The article proposed a plan based on the GPRS wireless hydrology supervisory system plan and carried on the design to the overall system constitution. Secondly, the article has carried on the brief analysis and the design to the method of hydrology information gathering and the GPRS module. Finally, according to the center section the detailed design was worked out to the main logarithm monitored software hydrology. The article ending analyzed the function limit of the system and proposed the improvement to system.

KEY WORDS: GPRS, hydrological monitoring system, Visual Basic, Short news

第一章 绪论

1.1 水文监控的意义与研究背景和内容
1.1.1 水文监控的意义
从大禹治水开始,中国治水己有几千年历史。数千年来,中国水利活动绵延不断,水利成就举世无双。伟大的中国古代劳动人民修建了郑国渠、都江堰、灵渠、大运河等大批水利工程,在历史上对于经济社会发展起过重要作用,有些工程至今仍发挥着重要的作用,充分体现了中华民族的伟大智慧。
特定的自然地理条件,决定了中国是一个水早灾害频繁的国家,防灾减灾成为保障国家经济建设和人民生命财产安全以及社会稳定的一项重要工作。
水文工作是水利的基础工作,社会对水文需求越来越迫切,水文作为国民经济和社会发展的基础性、前期性工作的任务越来越艰巨和繁重。
水文现代化是一个地区在一定的历史时期内为满足国民经济建设、社会进步和水利发展的需求,使水文信息采集、传输、处理、应用、信息服务和管理等方面具有先进实用的科技水平。水文现代化建设是以推动水文适应经济社会发展需求为目标的动态发展过程,具有强烈的时代特征,反映了时代的科技发展水平和经济社会发展的需求。水文现代化不仅是物质基础的现代化,技术手段的现代化,更是思维方式,思想方法的现代化。
当前水文建设现代化建设的任务是建设较高标准的水文水资源信息系统,包括水文信息监测系统、信息传输系统、预测预报及分析评价系统、信息技术服务系统、保障体系等五个方面。
水文现代化建设是水利信息化的基础。其中信息传输是水利信息化的重要基础工作之一。水利管理部门与决策者需要对管理对象进行全面而准确的了解,这就需要对监控现场的信息进行快速传输和管理。
目前我国水文监控系统的建设中,数据采集和检测技术水平不断提高,数据的传输却存在较大的问题,如传统的拨号和专线的固定网络接入方式严重地限制了个人甚至企业的活动自由和范围,不能满足自动测报的要求;同样无线通信方式中,超短波存在中继站问题,不适合远距离传输;手机短信存在信息阻塞的问题;卫星存在投资和雨衰的问题。针对以上各种传输方式中存在的问题,本文提出了基于GPRS网络建设水文监控系统的新途径[1]。
1.1.2 研究背景
2002年5月17日世界电信日,中国移动正式推出了商用的GPRS移动互联网技术。GPRS是一种基于GSM系统的无线分组交换技术,它能提供端到端的广域的无线IP连接。使用者可以通过无处不在的全球移动通信系统,以无线连接的方式,方便、快捷地接入现有的固定IP网络。相对原来GSM的拨号方式的电路交换数据传送方式,具有“高速”和“永远在线”的优点。
随着移动GPRS业务的开展,利用GPRS来进行水文数据传输的优势慢慢的显现出来。相对于传统的远程传输方式(例如通过电话拨号)来说,GPRS数据传输具有突出的优点。一方面,GPRS资费比较便宜,可以采用多种资费方案。对于大数据量业务的用户可以采用包月的方式,对于小数据量业务的用户可以根据通信的数据量和提供的服务质量进行计费。另一方面,在GPRS网中,用户只需与网络建立一次连接,就可长时间的保持这种连接,并只在传输数据时才占用信道并被计费,保持时不占用信道不计费。这样,数据采集点不用频繁建立连接,也不必支付传输间隙时的费用,而且GPRS能够较好地支持频繁、少量突发型的数据业务。此外,GPRS网络接入速度快,提供了与现有数据网的无缝连接。由于GPRS网本身是一个分组型数据网,支持TCP/IP, X.25等协议,因此无需经过PSTN等网络的转接,就可以直接与分组数据网(IP网或X.25网)互通,而且接入迅速,仅需几秒,快于电路型数据业务。
1.1.3 研究内容
基于GPRS技术的水文监控系统的研究和应用,是本论文研究的目标。将水文信息按规范封装,形成IP数据后通过GPRS网络传送到遥测系统的数据中心计算机,以实现水文信息的实时传输、查询和显示。随着移动技术的进一步发展,移动通信运营商提供的服务在不断完善,移动网络为水文数据的传输提供了良好的通信途径。将此项技术引入水文监控系统有着广阔的应用前景与实用价值。
1.2 水文监控系统发展概述
水文监控技术是水文传感器技术与采集、存储、传输、处理技术的集成。监测范围有江、河、湖泊、水库、渠道和地下水等水文参数。监测内容包括水位、流量、流速、降雨(雪)、蒸发、泥沙、冰凌、墒情、水质等。水文事业是国民经济建设和社会发展的基础性公益事业。水文是水资源开发利用管理与保护、防治水害以及工程建设规划、设计、施工、管理、调度的依据。水文站是收集水源信息的基本站点,因此水文站网又是水文工作的基础。科学地布设水文站网,利用有限数量的测站,依靠其整体功能,提供水文要素空间具有一定精度的水文特征资料,是整个水文工作的重要基础。通常把水文站网的规划、建设看作是整个水文工作的全局性战略部署工作。随着我国经济社会的发展,对水文信息不断提出新要求,水文观测项目和内容不断增加,对观测手段和方法以及水文监测技术的研发和应用提出了越来越高的要求;现代电子技术、传感技术、通信技术和计算机技术的迅速发展,也促进了水文监测技术自动化的发展。为了促进水文事业的健康发展,使其更好地适应国民经济建设和社会发展的需要,并指导全国水文工作,根据水利部有关精神,水利部水文局组织有关单位开展了《全国水文事业发展规划》的编制工作。水文发展总体战略思路是:结合国家经济与社会可持续发展战略,密切围绕洪涝灾害、水资源短缺和水环境污染三大问题对水文工作提出的任务和要求,立足未来经济社会发展对水问题的需求,认真制定水文事业发展规划,抓住机遇,争取在“十五”期间初步实现水文工作现代化,为解决经济社会发展中的水问题提供全方位的服务。随着数字水文内涵的发展和完善,全国许多水文的管理现代化水平也将不断提高,也将大大推进中国水利现代化的进程[2]。
1.2.1 国际发展状况
国际上发达的国家在现代化水文管理(或数字管理)方面的研究和应用起步较早,并己经在实际工程和管理中发挥了重要的作用,收到了巨大的效益。如:美国、加拿大、日本、澳大利亚及西洲发达的国家在自然资源管理、河流(流域)现代化管理等方面,逐步实施了现代化管理,为现代河流管理提供了宝贵的经验。纵览国际现代化河流(流域)管理,其历史并不久远,远可追溯到计算机技术应用20世纪80年代初期,近则到90年代中期。一些发达国家(包括军事应用)从数字化、建模、系统仿真,到虚拟现实还不到30年时间。在这个不长的历史阶段,现代科学技术在传统水利上的应用发生突飞猛进的变化,河流(流域)管理的观念发生根本的改变,尽管世界各国的河流的自然条件千差万别,但实现河流(流域)的现代化管理,是世界各国发展和追求的共同目标。
美国在流域管理方面可以说代表了当今国际发展的方向,其河流(流域)管理己达到国家的水平,流域水资源及相关方面的管理是联邦政府资源的一个组成部分。美国地质调查局(USGS)是美国资源管理和信息整和的国家机构,同时收集整理全球相关资源的信息,全美几乎所有江河湖泊水文水质信息等资料从国际互联网上可以看到他们的数据管理状况。对美国每一个河流(流域)而言,流域内资源的管理是相对独立系统。从美国流域管理分析可知,防洪是美国河流管理的首要任务,为了减小洪灾损失,美国采取了两个方面的措施,其一:防洪工程体系建设,即修建水库、堤、分洪区等;其二:防洪工程体系建设,现已建立了完善的水情自动测报网络系统、防洪自动预警系统及实时监测系统。
河流(流域)水文数据采集及传输所采用的主要手段为:遥测遥感技术,采集数据信息主要包括:雨量、水位、水质、水温等:信息传输主要采用:微波、超短波、光缆、卫星等技术。在河流(流域)洪水预报、调度方面广泛采用计算机模拟技术进行多目标优化,提高了整个水资源系统的综合利用水平,大大提高了工作效率和经济效益。在决策支持方面,根据河流(流域)的特点建立了各自的决策支持和模拟仿真系统。新技术的应用大大提高了数据采集的速度和预报预警时效,例如:田纳西河流管理委员建立的TERRA决策支持系统,当预报洪水到达相应水位时,可在5分钟内发布流域洪水预警。通常情况下实时资料的监测每隔5-60分钟观测、储存,每隔4小时传输到信息中心。在紧急状态下,观测传输的频率加大,所有信息资料经人工、电话或卫星自动处理后,传输到储存处理中心,在大多数情况下,这些实时资料3分钟之内就可在网站查阅。在流域内,对地下水情况的观测和管理采用遥测井点观测,这些资料以离散或连续的格式被采集储存。一些连续观测站的资料经电话或卫星传输到流域信息处理中心。地质调查局的地下水网站储存有850, 000多个在井、泉、试验洞,隧道、排水沟、坑穴内观测到的地下水水位和水质资料。
欧洲发达国家的河流监测的自动化、半自动化监测网络己基本完善,其监测网络主要由国家或区段期固定观测站、地面雷达网、遥感卫星等组成。主要包括:水质监测网、水文、气象监测网、大地测量站网、遥感和航测及其它监测站网。如:莱茵河流域管理的基础数据分别来自于SPOT,TM, SAR, ERS图像信息、DEM和水文、气象站点的实测资料。主要卫星有:IRS-P2, ALMAZ-1B, METEOSAT, LANDSAT和SPOT卫星等,应用于资料收集的雷达主要有ERS-1, ERS-2。对水文、气象站点数据的采集主要采用水位自动记录仪、超声波、雨量自动记录仪、温度自动记录仪等自动化仪器,水文(含水质)、气象数据采集基本上实现了由手工作业向自动化测量的过渡。监测项目包括:水质监测、水文、气象监测、地形地貌监测、数据传输及储存等,监察内容、方法和采用的设备均利用了现代技术[3]。
1.2.2 我国发展状况
目前我国水文科技的总体水平已基本上达到了国际先进水平,在水文预报技术、河流流量测验技术、泥沙测验技术及泥沙研究等一些领域已处于国际领先水平。我国已经编制了涵盖水文站网规划、流量测验、泥沙测验、水质监测、蒸发观测、水文资料整编、水文仪器设备、水文情报预报及水资源水质分析评价等250多项技术标准(其中,国际标准4项,国家级标准物质51项,国家标准30多项,水利行业标准170多项),形成了比较完整的水文技术标准体系,基本满足了水文业务的需要,有力地推动了水文事业的发展。随着科学技术不断的发展更新,更加推进我国水文监测事业发展。
我国在水文科技方面的国际合作、双边合作及技术交流进一步加强,利用外资项目日益增多。如:(1)同日本合作进行漳卫南运河洪水预警预报系统的研究(JICA项目),利用日本蓄留函数模型开发漳卫南运河洪水预报系统;(2)与美国合作进行国家防汛指挥决策系统美国交互式洪水预报系统淮河流域原型系统的研究;(3)与美国合作研究开发交互式洪水预报技术;(4)通过申请国际原子能机构补助项目,开展了“同位素技术在黑河地表水与地下水转换研究”、“长江同位素跟踪研究”等项目以及“同位素技术在水文资源领域应用指南”的编制;(5)自1981年至今,中美两国签署了《中美水文科学技术合作议定书》,涉及的合作领域包括:水文水资源信息收集处理,河流泥沙测验,水文仪器设备研制,水文情报预报,水环境、水质监测分析等。这些合作与交流,不仅缩短了我国水文科技与先进国家的差距,而且培养了一批科技人才。由中国地质环境监测院完成的《国家级地下水监测工程项目建议书》,近日通过中国国际工程咨询公司组织的咨询评估。国家级地下水监测工程将主要布设在我国的盆地、平原及岩溶发育的山区,覆盖重要人口密集区、经济发达区、重点生态建设与环境保护区,监测总面积约323万平方公里,控制全国地下水资源量的75%左右。全国主要河流约有60家水文站都建立了实时水情,江河水情日报水库水情日报等水文监测的Internet联网。这些无不说明我国的水文监测事业在向新的起点迈进。
计算机监控系统从以往单台计算机的直接监测控制到多极计算机监测控制系统,以及分布式、网络化、智能化、无线化系统的发展;计算机监控技术的发展是随着传感器、计算机、通信及网络技术等的发展而发展,其中任何一种技术有了新的突破,必然带来监控系统的进步与革新。监控系统是依靠传感器、专业摄像机等设备来检测信息的,检测到的信息越多,监控范围和作用就越大;对信息的处理采用常规的滤波和去噪,控制则是以PID为核心的算.今后传感器仍朝着集成化、功能智能化传感器发展。智能型仪器仪表和智能控制器能方便联网,有利于组成开放式SCADA系统。监控系统是通过传输介质来传递信息的,传输介质传递信息的速度越快,监控系统的响应就越灵敏,传递的信息也就越多。传输介质从双绞线、同轴电缆、光缆到视野内信号及卫星通信等。实现从有线到无限发展,也促进了监控系统的发展。90年代以后网络技术发展到第四阶段,即网络电脑和信息高速公路网络阶段,计算机网络系统本身就是一个极其庞大又复杂的综合网络监控管理系统。第四代综合网络监控系统中包括大范围的环境图像监控系统、设备监控系统、商业金融服务监控系统等。这种新一代综合网络监控管理系统可以是几个监控系统组成,他们可以连接到一个总线网,环形网或是星形网,而且网上节点可以增加或减少;也可以是单独的一个庞大的监控系统。几个监控系统可以是平等的,也可以是分层的,采用什么样拓扑结构,设计者根据具体情况决定。而基于CDPD (Cellular Digital Packet Data)的无线上网、移动办公、无线记者站、远程环境及全球卫星定位系统(GPS)在车辆定位监控调度等交通运输和道路工程的应用。无线综合监控系统和温度控制装置正在形成,采用传送、声光报警、中央控制、自动化管理。
水文监控系统的建设经历了二十多年的发展过程。系统通信方式由最初的超短波发展到今天的利用短波、超短波、微波、卫星、有线共用网组网的通讯方式,以支持更加复杂的组网模式和自报/应答或兼容的工作方式;系统的稳定性和可靠性有了很大提高,随着元器件质量的提高和计算机技术的发展,其关键设备遥测终端的质量也大幅度提高,平均无故障工作时间(MTBF)已从原来的3000小时上升到8000小时,有的设备已突破30000小时,其它设备的质量也得到不同程度的提高;系统的功能也由最初的降水量、水位信息,发展到今天的可满足传输降水量、水位、流速、流量、蒸发量、水质、闸门开启度、风速、风向、温度、湿度、气压等多种参数的丰富的传感器接口。用户不仅可以进行硬件现场编程,也可进行远程控制,极大地方便了系统维护,中心站软件支持用户进行二次开发,可以生成各种符合用户要求的图形系统和报表系统,部分系统采用NT网络方式,利用流行的数据库查询软件,可以方便地与用户信息管理系统连接。
但我国水文站网发展不平衡,西部待开发地区站点稀少。随着国民经济的建设和社会的发展,水文站网调整补充滞后,站网布局不能适应形势的发展和环境的变化,东部平原区现有站网不能监测水量和水质的变化情况,城市水文监测站网不能满足城市防洪和城市水资源管理的要求。其次,水文信息采集的基础设施是水文工作的基础和重要手段,现阶段水文基础设施较薄弱,存在的主要问题是:水文信息采集仪器设各落后,品种、性能、数量满足不了现代化的需要:长期自记及其实时传输、计算机数据处理的配套系统还有待推广普及;测站设备老化、失修,许多水文站测洪能力低,不能适应防汛要求。水文基础设施设备测洪标准低,直接影响到测报的糟度和成果质量。同时,国内水文自动化系统设备研发部门少、总体技术产品不成规模,供应体系单一,缺乏技术服务保障,在特殊应用环境复杂多样的测站,设备故障率高,很难维持正常运行。近年从国外引进的水位、雨量自动监测设备,由于着眼于水情报汛,存储容量小,功能专一,在水文水资源信息的监测、存储、处理方面与水文资料整编规范的要求存在较大差距,无法满足水文资料整编刊印的要求。基于上述现状和技术设备上存在的问题,加快水文水资源信息技术创新,研发适合我省乃至国内同行业需要的水文水资源信息自动监测技术,增强水文信息服务能力,提高水文自动化、现代化技术水平已十分重要和迫切。同时,我们可以看到结合先进的综合网络监控管理系统的水文监测将会是未来水文监测监控管理的必然发展趋势[4]。

第二章 无线技术与GPRS模块研究

2.1 无线技术研究
2.1.1 GPRS技术
通用分组无线电业务(GPRS—general packet radio service)是一种基于全球移动通信系统(GSM)的无线分组交换技术,提供端到端的、广域的无线IP(Internet protocol)连接,具有高速、永久、在线等特点,是GSM向第三代移动通信平滑过渡的桥梁。由于借用了移动接入网和传输网,所以利用该网来家里的远程监控系统,其监控范围广而且价廉。采用GPRS+TCP/IP协议使得监控系统的监控空间延伸到了移动网+Internet。
GPRS是GSMPhase2.1规范实现的内容之一,能提供比现有GSM网9.6kbit/s更高的数据率。GPRS采用与GSM相同的频段、频带宽度、突发结构、无线调制标准、跳频规则以及相同的TDMA帧结构,因此具有很好的信号覆盖;随着中国移动GPRS网络建设的日臻成熟,地区的覆盖率超过90%, GPRS信号达到了无盲区覆盖。
GPRS突破了GSM网只能提供电路交换的思维方式,只通过在现有GSM网络中增加相应的功能实体(GGSN, SGSN)和对现有的基站系统进行部分改造来实现分组交换。同时它具有与现有的GSM一样安全功能,是一种经济高效的分组数据技术,可有效地利用稀有的无线资源,计费方式灵活(数据量或时长)、能够快速建立接入、同时可提供GSM和GPRS的业务,也可使用IP协议连接到外部数据网[5]。
2.1.2 蓝牙技术
SIG组织于1999年7月26日推出了蓝牙技术规范1.0版本。蓝牙技术的系统结构分为三大部分:底层硬件模块、中间协议层和高层应用。 底层硬件部分包括无线跳频(RF)、基带(BB)和链路管理(LM)。无线跳频层通过2.4GHz无需授权的ISM频段的微波,实现数据位流的过滤和传输,本层协议主要定义了蓝牙收发器在此频带正常工作所需要满足的条件。基带负责跳频以及蓝牙数据和信息帧的传输。链路管理负责连接、建立和拆除链路并进行安全控制。
蓝牙技术结合了电路交换与分组交换的特点,可以进行异步数据通信,可以支持多达3个同时进行的同步话音信道,还可以使用一个信道同时传送异步数据和同步话音。每个话音信道支持64kb/秒的同步话音链路。异步信道可以支持一端最大速率为721kb/秒、另一端速率为57.6kb/秒的不对称连接,也可以支持43.2kb/秒的对称连接。
整个蓝牙协议结构简单,使用重传机制来保证链路的可靠性,在基带、链路管理和应用层中还可实行分级的多种安全机制,并且通过跳频技术可以消除网络环境中来自其它无线设备的干扰。
2.1.3 CDPD技术
CDPD的英文全称为Cellular Digital Packet Data,中文的意思为蜂窝式数字分组数据,这种技术是由美国移动通信公司(AMCI)等八大公司联合推出蜂窝数字分组数据通信(CDPD)系统的一种无线数据通信技术规范,这种规范是以数字分组数据技术为基础,以蜂窝移动通信为组网方式的移动无线数据通信技术。CDPD是一个新型的无线广域网系统,它与现在市面上所见的无线局域网不同的是,该通信网络的工作在800兆频段之间,该频段具有一定的穿透和绕射能力,干扰较少。该网络所能达到的信道速率为19.2Kbps,去掉分组数据打包以及信道复用的一些开销,对用户来说数据传输速率一般为5-10Kbps,最高可以达到15Kbps左右。使用CDPD技术组成的通信系统,采用全双工的通信方式,所以它可以同时收发数据,另外该通信网络通过FEC前向纠错和自动反馈重发技术,保证在其网络上传输的数据不会出现差错。
CDPD网络系统则是一个独立于GSM的网络系统,这套网络系统主要由基站、交换机和网络管理系统三部分组成。每个基站最多可安装六块信道板,每块信道板为移动终端提供一个19.2Kbps的空中接入,使移动终端进行全双工分组数据传输;同时它也负责频谱监测、频率管理。它通过一根64Kbps帧中继与交换机相联接。基站上的电路所有组件可以热插拔,更换元器件不会影响服务。CDPD交换机主要由两部分组成,它们是分组服务器和管理服务器。其中分组服务器负责分组数据交换,管理服务器负责用户账户管理以及计费信息管理。交换机中的每个模块都是双个的,互为热备份,如一个模块发生故障,自动切换到另一个。而网络管理系统是负责对整个CDPD网络进行管理,网络的任一部分发生故障,就马上能观察到,并能远程进行设置和修改。CDPD网络系统是建立在TCP/IP基础上的一种开放系统结构,将开放式接口、高传输速度、用户单元确定、空中链路加密、空中数据加密、压缩数据纠错和重发和运用世界标准的IP寻址模式无线接入有力的结合在一起,提供同层网络的无缝连接、多协议网络服务。
2.1.4 采用GPRS的优势
GPRS除了提供点对点、点对多点的数据业务外,还能支持用户终端业务、补充业务、GSM短消息业务和各种GPRS电信业务。CDPD适用的业务种类很多,例如在商业金融交易领域,如持卡购物、证券交易、电子银行、金融保险、POS系统等,都可用上CDPD系统。蓝牙产品涉及PC、笔记本电脑、移动电话等信息设备和A/V设备、汽车电子、家用电器和工业设备领域蓝牙在个人局域网中获得了很大的成功,应用包括无绳电话,PDA与计算机的互联,笔记本电脑与手机的互联,以及无线RS232,RS485接口等。采用蓝牙技术的设备使用方便,可自由移动。与无线局域网相比,蓝牙无线系统更小、更轻薄,成本及功耗更低,信号的抗干扰能力强。
CDPD技术传输速度比GPRS技术慢,投资多,蓝牙技术只适用于短距离传输。所以本系统采用GPRS技术进行无线传输。
2.2 GPRS模块的研究
GPRS模块提供的命令接口符合GSM07.05和GSM07.07规范。GSm07.07中定义的AT Command接口提供了一种移动台(MS)与数据终端设备(DTE)之间的通用接口,GSM07.05对短消息作了详细的规定。在短消息模块收到网络发来的短消息时,能够通过串口发指示消息,数据终端设备可以向短消息模块发送各种命令。
2.2.1 MC35i性能特点
MC35i是Siemens公司推出新一代的双频GSM/GPRS无线模块。可以快速安全可靠地实现系统方案中的数据、语音传输、短消息服务(Short Message Service)和传真。模块的工作电压为3.3-5.5V,可以工作在900MHz和1800MHz两个频段,所在频段功耗分别为900MHz和1800MHz。模块有AT命令集接口,支持文本和PDU模式的短消息、第三组的二类传真、以及2.4k, 4.8k, 9.6k的非透明模式。此外,该模块还具有电话簿功能、多方通话、漫游检测功能,常用工作模式有省电模式、IDLE、TALK等模式[6]。
通过独特的40引脚的ZIF连接器,实现电源连接、指令、数据、语音信号、及控制信号的双向传输。通过ZIF连接器及50。天线连接器,可分别连接SIM卡支架和天线。比名片还小巧的尺寸和超低的功耗使得MC35i能够被广泛使用在多种通信场合,如交通系统、无线网关、保安系统、导航系统、远程测量及监控系统、手持设备等等。
MC35i GPRS模块技术特点:体积小、重量轻;GPRS多通道类别8;低功耗;支持数据、语音、短消息和传真;SIM 应用工具包;AT 命令集控制;音频: 最高速率,升级最高速率和半速率;便于集成。
MC35i GPRS模块电气特性:支持电压范围:3.3至4.4V;电流消耗:3.0 mA(睡眠),10.0mA(闲置);300mA (通话,最高2.0 A),100μA(掉电)。
MC35i GPRS模块接口:40 脚连接;电源接口;SIM 3V接口;标准RS-232双向接口;模拟语音接口;50 欧姆天线连接器。
2.2.2 MC35i结构
MC35i的内部结构如图2.1所示。

图2.1 西门子MC35i内部结构

MC35i主要由射频天线、内部Flash、GSM基带处理器、匹配电源和一个40脚的Zip插座组成。
其中GSM基带处理器是核心部件,它的作用相当于一个协议处理器,用来处理外部系统通过串口发送过来的AT指令。
射频天线部分主要实现信号的调制与解调,实现外部射频信号与内部基带处理器之间的信号转换,匹配电源为处理器以及射频部分提供所需的电源,插座是提供给用户的应用接口。
MC35i的用户应用接口采用40脚的Zip插座,其中包括的引脚功能有:3.3-4.4V峰值为2A的直流电源;模拟音频输入输出接口;标准的RS-232信号接口,共8个引脚;SIM卡连接引脚数为6个,符合GSM11.11标准[7]。
RS-232接口采用9位编码格式,其中8个数据位,1个停止位,没有奇偶校验位,因此模块一般采用工作方式1,支持的数据速率为115.2-300kbit/s。

第三章 水文信息检测要求与系统总体设计

3.1 水文信息检测
在水文监控系统中,常常需要对众多的水位点进行实时监测,大部分监测数据需要实时发送到管理中心的后端服务器进行处理。由于监测点分散,分布范围广,而且大多设置在环境较恶劣的地区,通过电话线传送数据往往事倍功半。通过GPRS无线网络进行数据传输,成为水文部门选择的通信手段之一。现场水文站可将采集到水文数据和告警信息通过GPRS网络及时发送到水文监控中心,实现对水文信息及时管理[8]。
水文站在每一个监控点完成对水文信息的采集,并实现必要的控制功能。在采集对象设备的运行状态改变时及时将此事件的性质及必要的数据以短消息的形式发送给站点。
水文采集中,每一个监控点都要分配一个独立的SIM卡,当数据中心访问时,一般每次只能访问一个水文站。对于一个系统,有多少监控点就有多少个水文站,而数据中心通常只有一个。如果需要同时访问多个站点,或将一个站点的信息同时传送给多个终端,就需要得到网络的支持。可以采用数据中心多次访问或是多次发送和转发的方式实现点对多点的数据传输。
3.1.1 水文监控范围
水文监控是水文传感器技术与采集、存储、传输、处理技术的集成。
监控范围:江、河、湖泊、水库、渠道和地下水等水文参数。
监控内容:水位、流量、流速、降雨(雪)、蒸发、泥沙、冰凌、墒情、水质等。
3.1.3 水位和雨量检测的设计
水位和雨量检测可以使用LP3500 Fox单板机实现。LP3500 FOX系列单板机具有低功耗的特点,可以在任何部署到的地方可靠地工作,特别是在供电有限的情况下,如便携式、手提式、电池供电和遥控监测等工作系统。作为一项特色,LP3500不仅带有数字信号接口,还有模拟信号接口。LP3500在全功能模式下消耗电流小于20毫安,在节电模式下消耗电流小于100微安。
LP3500说明:
在节电模式下消耗电流小于100微安。在7.4MHz的工作主频下,消耗电流小于20毫安。26个可用于工业场合的输入输出引脚,加1个继电器。8个模数转换输入引脚,放大增益可编程控制。6个串行通信接口(1个RS-485、3个RS-232、2个TTL电平接口)提供可选的小键盘/显示器、串行闪存、各种外设。
LP3500 FOX单板机集合了低EMI的Rabbit 3000微处理器、最大扩充到512k的闪存和SRAM、26个可用于工业场合的输入输出引脚、接A/D转换器的模拟信号输入接口、PWM类型的输出信号、6个串行通信接口、1个继电器、2个专用的接口,可以方便地连接串行接口闪存、小键盘/显示器、及其他外设。(LP3510是一种低成本的型号,缺少A/D转换功能或继电器功能)。LP3500 Fox单板机最高工作主频为7.4MHz,在软件控制下能够在多级输入电压下工作,从而在广泛的作业条件下工作.。该单板机配有0.1英寸间距的接头,用户可以提供自己的电缆,也可以将单板机直接插在母板的插座上。
LP3500单板机可用于远程遥测(RTUs)、管道监测、GPS资产跟踪、无线手持设
备、远程数据采集、电力传输线路的监测等应用,及其他需要低功率控制的应用。作为一个可选的功能模块,一个3.3V的小键盘/显示器可以做方便的用户操作界面,安装在平板上的时候可以提供NEMA4级别的防水能力。
放于插座内的纽扣式电池可以驱动SRAM和实时时钟,使数据能够长期保持有效。当采用外部电池供电或者直流供电(3-30V)的时候,整个系统可以由内部计时器、或由一个RS-232信号、或通过对外部输入引脚的轮询从节电模式中唤醒。LP3500单板机可以在软件的控制下转换到节电模式,并从节电模式切换到全功能模式。另外各个电路部分(例如RS-232接口)可通过软件停止工作,以便在不需要的情况下进一步节省电力。
水位和雨量采集结构图如图3.1所示:

图3.1 水位和雨量采集

3.2 系统总体结构设计
无线水文监控系统由现场水文站部分、GPRS模块部分和数据中心三部分组成。现场水文站采集到的水文数据信息通过GPRS DTU(GPRS数据终端)按照数据协议封装、打包,再通过GSM/GPRS网络传送到GPRS模块,系统结构图如图3.2所示。

图3.2 系统总体结构图

无线水文监控系统的设计遵循先进性和实用性相结合的原则。系统的设计应保证运行的稳定性、使用的方便性和可扩展性。系统中的具体设备选型则应以技术成熟和性能可靠为标准,并最大限度地利用现有的环境、设备、通信和先进技术等资源。
3.2.1 水文信息采集
现场水文站主要由传感器单元、单片机系统和GPRS数据终端单元构成。系统中GPRS无线数据终端(DTU)采用GPRS无线DDN数据终端。每个模块在使用时需要安装SIM卡,和手机一样在移动网中具有惟一的ID。该终端支持双频GSM/GPRS,符合ETSI GSM Phase 2+标准,采用实时时钟,支持A5/1&A5/5加密算法,为用户提供高速、永远在线、透明数据传输的虚拟专用数据通信网络。
GPRS DTU(GPRS数据终端)模块带有20Pin用户数据接口,以便对模块供电和进行数据交换。对外数据线的连接和数据交换方式与RS-232类似,同时该系列大部分型号都支持+7.5~+26 V DC电源,方便在更多场合安装使用。在终端所有连接完成之后,通过终端内置的设置、管理和调试工具对GPRS数据终端进行管理,便于用户在使用前配置相关参数和在调试过程中灵活地改变相关参数以及软件升级和简单的测试[9]。
水文监测网络无线数据传输部分采用中心点对多点的方式,自动水文采集设备有多个,它们用各自的GPRS数据终端将数据打包,经GPRS空中接口接入无线GPRS网络,由移动服务商转接到GPRS模块,最终通过串口连接PC机到达数据处理中心。
3.2.2 GPRS模块
本系统的GPRS模块采用Siemens MC35i模块,该模块通过串口与PC机相连,PC机上装有数据中心软件,由数据中心软件通过发送AT指令来控制GPRS模块接收和发送数据。本系统中的串口主要是在PC机以及GPRS模块之间进行数据传输,,GPRS模块在接收到了AT指令之后,会返回给PC机一个确认信息,而此确认信息,也会占用到串口的缓冲区,同时系统还能够根据有些确认信息来进行不同的操作。

3.2.3 数据中心
装有监控软件的PC机与GPRS模块通过串口连接。数据中心监控软件可以管理整个系统得所有远端设备。例如:标定各站点的原始信息(电话号码、名称等)、当水文站送来信息采集对象的异常信息时提示报警,并将数据存储到数据库中、修改系统参数等。数据中心还可以进行用户管理,设定转发人员名单及电话号码,查询各水文站当前数据和网络运行状态,并提供历史数据查询、打印、备份、删除等。

第四章 数据中心的软件设计

4.1 功能分析与系统流程设计
水文监控系统中的数据中心,主要是用来发送控制指令给GPRS模块,让GPRS模块接收水文站发送回来的采集到的数据信息,根据数据信息采取相应得报警措施,以达到最好的控制目的。
数据中心软件的主要控制功能如下:
4.1.1 系统连接与初始化
在系统开始运行时,应当首先检验PC机与GPRS模块的连接是否正确;其次,由于普通的SIM卡所能够存储的短消息数量有限(一般为15条),而普通的手机用户在短消息存满之后,就不能够再接收新的短消息,因此,为了使新的数据信息能够及时收到,在系统开始运行时,也应该通过命令,删除GPRS模块中的所有短消息;同时,在系统开始运行时也要对一些必要的参数进行设置,在这里,主要是对串口号的设置,以及通过发送命令来对GPRS模块的消息格式进行设置,系统连接与初始化的主要流程图如图4.1所示。

图4.1 系统连接与初始化流程图
4.1.2 自动接收数据
自动接收数据,就是在没有人工干预的情况下,数据中心软件一直处于循环地检测PC机串口数据信息的状态,如果有数据到达,则根据不向的数据信息采取不同的操作:如果数据在正常范围内,则把数据直接入库,供以后的分析使用;如果数据超出正常范围,则直接报警,并且根据已经设定的转发人员的名单,把报警信息以短消息的方式转发给有关负责人,以便让负责人及时发现故障,予以排除。
为了实现自动接收数据的功能,GPRS模块必须设定好相关的操作,即模块中一旦接收到短消息,立即发送给串口一个带有标志的数据,PC机中的程序根据读取到的标志,发送命令来读取存在GPRS模块中的短消息,根据短消息内的数据信息来进行不同的操作,主要的流程如图4.2所示。

图4.2 自动接收数据流程图
4.1.3 数据库设计
数据库的应用在水文监控系统中,具有十分重要的意义,最主要的是能够积累水文站的数据,以利于对水文站的总体运行情况进行分析。同时使用数据库还可以简化一些用户的操作,一些人工输入的东西,例如水文站的编号、名称、手机号等,都可以存在数据库中,便于用户进行选择和查找。根据系统的功能需要,数据库软件采用Access 2003[10],数据库的各个表的设计如下:

表4.1 水文站的数据信息表(data)
字段名称 数据类型 字段说明
id 数字 编号
name 文本 名称
time 日期/时间 时间
event 文本 事件
a1 数字 水位
a2 数字 流量
a3 数字 流速
a4 数字 降水
a5 数字 蒸发
a6 数字 泥沙
a7 数字 冰凌
a8 数字 水质

表4.2 转发人员信息表(renyuan)
字段名称 数据类型 字段说明
name 文本 转发人员姓名
tel 文本 转发人员电话

表4.3 状态信息表(state)
字段名称 数据类型 字段说明
state_no 数字 状态编码
state_name 文本 状态名称
表4.4 水文站信息表(zhankou)
字段名称 数据类型 字段说明
id 数字 水文站编号
name 文本 水文站名称
tel 文本 水文站电话
lifactive 数字 是否处于活动状态1:是,0:否

4.2 关键技术的研究与设计
4.2.1 RS-232通信接口
串口在系统控制领域中一直扮演着极为重要的角色,它不仅没有在时代前进的过程中被淘汰,反而在规格上越来越先进,应用也越来越广泛。现在,串行通信端口(RS-232)是计算机上的标准配置,用于实现和其他设备进行数据传输等功能。
RS-232通信端口通常有两个端口:COM1和COM2,以前的计算机将COM1以9针的接头接出,COM2以25针的接头接出。新一代计算机均以9针接头接出所有RS-232通信端口,计算机上的RS-232端口均是公头,每一个引脚都有其特定的名称和用途,它们在计算机和连接线上的位置如图4.3所示。

图4.3 RS-232引脚

RS-232引脚定义:
1、CD-Carrier Detect,载波检查
2、RXD-Receive,数据接收
3、TXD-Transmit,数据传输
4、DTR-Data Terminal Ready,数据端待命
5、GND-Ground,地线
6、DSR-Data Set Ready,传输端待命
7、RTS-Request To Send,要求传输
8、CTS-Clear To Send,清除并传输
9、RI-Ring Indicator,响铃指示
4.2.2 串行通信控件的编程
Visual Basic的串行通信对象MSComm是将RS-232的初级操作予以封装,用户以高级的Basic语法即可利用RS-232与外界通信,并不需要了解其他有关的初级操作,因此使用起来非常方便[11]。
正常的工具栏中没有MSComm控件,需要在菜单“工程”的选项“部件”中添加,选择Microsoft Comm Control 6.0即可。
本系统中比较常用的MSComm控件属性如下表4.5所示。

表4.5 MSComm控件属性列表
属性 意义
Commport 用于设置或返回通信连接端口号,可以设置由1到16
Settings 用于设置初始化参数,其格式为“BBBB,P,D,S”
Portopen 用于设置或返回通信连接端口的状态
Input 用于从输入缓存区返回并删除字符
Output 用于将一个字符串写入输入缓存区
Inputlen 用于指定由串行端口读入字符串的长度
CommEvent 在通信错误或事件发生时都回产生OnComm事件
InBufferCount 用于返回在接收缓存区中的字符数

使用MSComm控件发送和接收数据的时候,数据的格式为二进制,在使用控件收发数据的时候必须注意这种格式的转换。
发送数据时,给定的数据格式为十六进制,发送数据的程序如下所示。
‘Command是最后由串口发出的十进制数据格式
‘CmdCode是程序给定的十六进制数据格式
‘在给定Comm.Output赋值前已经设定好各种通信设置
‘串口在发送数据的时候以二进制方式将数据发出
Command=”&H”+CmdCode
TXData=Val(Command)
Comm.Output=TXData
接收数据时,正常情况下,如果发送一个ANSI字符串到应用程序,可以以文本数据的形式发送。如果发送包含嵌入控制字符,Null字符等等的数据,要以二进制形式发送。
将接受的数据以十六进制显示:
‘从缓存区读取接收到的数据
AnswerCode=Comm.Input
‘将接收到的数据转化成十六进制
AnswerStr=Hex(AnswerCode)
‘以十六进制显示接收到的数据
AnswerVal=Val(”&H”+tmpAnswerStr)
‘调用DispalyInfor子程序显示数据
Message=(”RX”+Hex(AnswerCode(Answer_Index)))&Chr(13)&(10)
DisplayInfor message
4.2.3 数据协议的设计
由于在水文站与GPRS模块之间进行的数据通信采取的主要方式为短消息,因此短消息中每个数据信息代表的具体意义,以及短消息中数据的排列规则都需要通信的双方达成一致。因此通信双方必须具有数据协议。
由于受到模块中存储芯片的容量限制,因此短消息传送的数据量要有一个具体的限定,同时为了便于定位有用的数据信息,短消息中数据信息以“%%”开头,以“%”结尾,下面主要介绍通信双方所采取的命令字。
水文站向数据中心发送状态信息,格式如图4.4所示。

图4.4 数据协议格式

一共发送了8个数据,一个状态码和一个校验位,一共18个字节,其中所有的数据都是用两个字节表示,状态码和校验位以一个字节表示。
在由水文站向数据中心发送状态信息中,一个字节的表示范围为0-128,而由于日常需要,水文信息数值可能大于128,因此参数值都设定为两个字节。
校验和:判断传送数据过程中是否出现错误,这里采取把前面的数据相加之后取模的校验方式,即CheckSum方式。
例如:当数据中心收到的信息为%%0 00 12 01 23 12 34 56 78 12 34 56 78 12 34 56 78 36%,它代表的意义为:状态码为0(见图4.5),即正常工作,水位值为12(0*100+12=12),流量值为123(1*100+23=123),流速值为1234(12*100+34=1234),降水值为5678,蒸发值为1234,泥沙值为5678,冰凌值为1234,水质值为5678。然后将前面的所有位数相加即:0+0+12+1+23+12+34+56+78+12+34+56+78+12+34 +56+78=676,676与128相除以后取余数为36,即为校验和。
4.2.4 状态码的定义
状态码即由水文站向GPRS模块发送的状态信息中的第一个字节的意义,主站完全根据状态码代表的意义来进行报警等一些操作。由于一个字节的二进制数据最多可以表示128个状态,因此设计程序时,不能够超出128个状态,状态码的定义如图4.5所示。

图4.5 状态码定义
4.2.5 AT指令
水文站与GPRS模块之间采用AT指令实现互相之间的通信,下面说明AT指令的格式和程序设计中用到的几条指令。更详细的资料见GSM07.05和GSM07.07规范[12]。
GPRS模块发出的AT指令用来建立通信链路,AT指令集的命令格式帧都以AT开头,“AT”或者“at”的前缀必须出现在每一个命令行的开始。值为键入的设置值,是命令语法要求的一部分。如果该值是可选的,那么用方括号加以区分。当用AT命令设置了一个参数,那么这个值在它改变之前一直是有效的。
下面主要介绍AT命令的语法以及编程中用到的几条AT指令。
1、基本语法命令
基本命令的格式,除了命令D和S外,如下:
AT[]
如果加上方括号表示是可选的。如果一个命令需要参数,而该被省略了,那么缺省值为0。
2、扩展语法命令
AT+[=]
可以包含一个或者多个数字或者字符串类型的子参数,子参数之间用逗号隔开,字符串类型的参数在开始和结束的时候要用双引号作为标记。
标准的基本命令可以参见V.25er,GSM命令使用扩展命令的语法规则。每一个扩展命令有一个测试命令(=?)来测试该命令是否存在并给出该命令子参数的类型信息。参数类型命令有一个相应的读命令(?)来检验子参数的当前值。
3、系统中的部分AT指令
“AT” + Chr(13) + Chr(10) ‘发送AT指令,GPRS模块应当返回”OK”
“AT+CNMI=1,1,0,0,1″ + Chr(13) + Chr(10) ‘设置新消息指示方式,以回车和换行符结束
“AT+CMGF=1″ + Chr(13) + Chr(10) ‘使用AT指令设置短消息的格式为TEXT类型
“AT+CMGD=” + Chr(IntNo + 48) + Chr(13) + Chr(10) ‘删除短消息
“AT+CMGR=” & no & “” + Chr(13) + Chr(10) ‘按照编号发送命令读取短消息
4、AT指令的注意事项
由于本系统中的串口主要是在PC机以及GPRS模块之间进行数据传输,根据前面介绍的,GPRS模块在接收到了AT指令之后,会返回给PC机一个确认信息,而此确认信息,也会占用到串口的缓冲区,同时系统还能够根据有些确认信息来进行不同的操作。
同时,有时返回的确认信息对于程序的走向没有太大的影响,仅仅是提示用户已经发送或者接收完毕,此时由于确认信息的存在,程序必须把所有的确认消息从缓冲区中读出,以免影响以后的数据传输。
4.3 程序的设计
编写程序之前,要先规划好整个程序,要考虑到如何实现各种功能,其次要注意界面的友好,表达清晰,直观明了,另外,各项功能的使用要简单方便,使得操作者可以更好地控制这个程序。
数据中心软件使用Visual Basic来编写,所有程序界面以及代码都是使用Microsoft中文版Visual Basic 6.0编写的[13]。
创建Visual Basic应用程序有三个主要步骤:创建应用程序界面,设置属性,编写代码。
界面并不能响应用户的动作和要求,因此我们必须用编写程序代码的方式编写出一系列计算机执行的指令,完成用户需要完成的工作。无论何时,用户做任何事情,例如单击鼠标或者按动键盘上的某一个按键,我们将其称为一个事件(event)。事件一旦发生,Visual Basic将寻找相应的代码告诉程序如何处理,响应事件的代码称为过程(procedure)。事件发生时,通常针对程序的用户界面上的某个部分,例如鼠标指针指向命令按钮或者菜单时单击鼠标。每个对象可以拥有一个或者多个事件过程,而每个事件过程则响应一个特定的事件,例如单击鼠标或者按一个键。对象名和事件名组合构成了事件过程的名字。因为对象名总是独一无二的,所以同一表单中的两个事件过程不可能重名。但是不同表单中的事件过程可能同名。
常见的事件如表4.6所示。
表4.6 常见事件
事件 当事件发生时
Activate 使一个表单变成活动窗口
Change 改变一个组合框、目录列表框、滚动条、标签、图形框或文本框的内容
Click 当鼠标指针指向一个对象时,单击鼠标按钮
Dbclick 当鼠标指针指向一个对象时,双击鼠标按钮
Deactivate 使一个表单由活动窗口变成不活动窗口
DragDrop 当鼠标指针指向一个对象时,按下鼠标按钮,移动鼠标,再释放鼠标按钮
Dropover 当鼠标指针指向一个对象时,按下鼠标按钮,移动鼠标
DropDown 下拉组合框的列表部分,显示选项清单
GetFocus 按下Tab键、单击某个对象或加载一个表单时,高亮显示对象
KeyDown 按下一个键
KeyPress 按下并释放一个ANSI键,例如键盘字符、Ctrl组合键、Enter键或Backspace键(一般,ANSI键可以是任意字母、数字或者其他想得到的击键组合)
KeyUp 释放一个键
LostFocus 由于按下Tab键或单击另外一个对象,该对象不再高亮显示
MouseDown 按下鼠标按钮
MouseMove 移动鼠标
MouseUp 释放鼠标按钮

4.3.1 主界面的设计与实现
1、功能说明
程序的主界面应当能够调用程序的各个模块,因此主界面主要实现的功能就是调用本系统的所有其他功能,包括参数设置、白动接收数据以及数据的查询与显示等。
同时,在主界面打开的时候,要对与PC机相连的GPRS模块进行新消息指示方式的设置即AT十CNMI=1,1,0,0,1,这样做主要是为了避免在其他的功能上过多的同与PC机相连的GPRS模块进行数据传输。
2、界面设计
为了用户使用方便,本系统采用了MDI窗口作为系统的主界面,各个功能的调用,都是作为它的子窗口进行,这样的设计能够方便用户进打不同功能之间的切换。
设计好的主界面如图4.6所示。

图4.6 程序主界面

首先添加一个MDI窗体,在工程的资源管理器中右键单击窗口文件夹,选择“添加”接着选择“添加MDI窗体”,系统就会出现一个MDI窗体的编辑界面。
为了使操作者在使用程序时方便,也为了使得程序的功能更加完善,界面更加友好,这里选择添加下拉式菜单。这样用户可以通过选择菜单来执行相应地操作。
在设计菜单之前首先考虑好本程序要使用的菜单的层次结构、标题以及各个部分的功能。
系统参数设置:完成对系统中的参数进行设置的功能其中包括状态码设定和退出系统。
数据检测:用来执行数据的检测和接收,包括自动接收数据菜单。
数据库管理与查询:执行数据库的相关操作,包括数据库的备份、恢复和查询。
帮助:关于本程序的一些说明。
在Visual Basic中,添加菜单要使用菜单编辑器,可以通过如下方式调用:
组合键Ctrl+E或工具菜单中选择。
标题为应用程序中菜单条中的菜单名称,名称是程序中访问菜单的方法,它不显示在界面上。菜单选项标题后键入(&+字母)的形式,生成具有访问键的菜单,以使用ALT+这个字母访问对应的菜单。
添加完菜单的主界面如图4.7所示。

图4.7 添加完菜单的主界面

接着进行Toolbar、StatusBar以及ImageList控件的添加工作,由于它们都不在工具箱的常用工具中,因此要在工具箱中添加这个控件,选择“工程”菜单中的“部件”选项,选择其中的Microsoft Windows Common Control 6.0,如图4.8所示。

图4.8 添加部件
接着可以在工具箱中选择这三个控件,在窗口中依次添加,然后设置Toolbar控件,插入三个按钮,分别表示自动接收、数据查询与显示和退出系统三个功能。同时为了实现图片按钮的效果,Toolbar控件必须和存有图片的ImageList控件相关联。对于StatusBar控件,可以进行一些窗格的添加、删除以及指定显示的文本等操作。窗格的样式,只有当窗格的样式是0-sbrText时,窗格中显示的是文本,选样5-sbrDate、6-sbrTime等样式以在状态栏中显示日期和时间等。
为了显示一些标准的对话框,进行诸如打开和保存文件,设置打印选项,以及选择颜色和字体等操作,此时需要引用CommonDialog控件来实现这些功能,CommonDialog控件在Visual Basic和Microsoft Windows动态链接库ommdlg.dll的例程之间提供了一个接口。在应用程序中要使用CommonDialog控件,可将其添加到窗体中并设置其属性,控件所显示的对话框由控件的方法确定。在运行时,当相应得方法被调用时,将显示一个对话框或是执行帮助引擎;在设计时,CommonDialog控件是以图标的形式显示在窗体中。该图标的大小不能改变,和引用其它控件一样,在部件中选择引用CommonDialog控件,将CommonDialog控件添加到表单当中,用以实现关于数据库的备份和恢复等操作。
由于在自动接收数据、设置参数等表单中都要用到MSComm控件通过串口进行数据的交互,因此有可能出现当某一个表单中设置MSComm控件的PortOpen属性为True,即打开了端口,而其他表单中也需要对MSComm控件的PortOpen属性设置为True,此时,由于端口已经被上一个表单打开,因此,后面的表单中的MSComm控件的属性就不能设置为True,为了避免这种情况的发生,这里采取了在主界面中加入了一个MSComm控件,在主界面打开的情况下,让所有其它表单中需要对串口进行操作的部分,都针对主界面的MSComm控件进行,在操作完毕时,需要将MSComm控件的PortOpen属性设置为False即可。按照前面介绍的方法,将MSComm控件加入到主界面中[14]。
同时由于在主界面打开时,要对于PC机相连的GPRS模块进行新消息指示方式的设置,在这里也要加入Timer控件,以实现延时的功能。
3、编写代码
由于在主界面打开时,要对与PC机相连的GPRS模块进行新消息指示方式的设置,即AT+CNMI=1,1,0,0,1,因此在主界面的Load事件中,编写代码如下:
If Comm1.PortOpen = False Then
Comm1.CommPort = portitem ‘设置端口号
Comm1.PortOpen = True ‘打开端口
Comm1.Output = “AT+CNMI=1,1,0,0,1″ + Chr(13) + Chr(10)
‘设置新消息指示方式,以回车和换行符结束
Timer1.Enabled = True ‘触发计时器
End If
接着在Timer控件中编写代码,读取GPRS模块返回的确认消息:
Dim Buf$
If Comm1.InBufferCount > 0 Then
Comm1.InputLen = 0
Buf = Comm1.Input
Timer1.Enabled = False
End If
由于本系统的数据库备份和恢复的要求不高,因此这里的备份和恢复主要是采取直接复制数据库文件的方法,代码中用到了以下几个函数:
FileCopy函数:主要用来将一个文件复制到另外一个地方,因此它具有两个参数,一个是源文件的地址,另外一个是目的文件的地址。
FileLen函数:用来得到一个文件的大小。
4.3.2 系统连接与初始化的设计
系统初始化与连接检验的主要处理流程如前面部分图4.1所示。
1、功能说明
在系统开始运行时,应当首先检验PC机与GPRS模块的连接是否正确;其次,由于普通的SIM卡所能够存储的短消息数量有限(一般为15条),而普通的手机用户在短消息存满之后,就不能够再接收新的短消息,因此,为了使新的数据信息的能够及时收到,在系统开始运行时,也应该通过命令,删除GPRS模块中的所有短消息,同时,在系统开始运行时也要对一些必要的参数进行设置,在这里,主要是对串行端口号的设置,以及通过发送命令来对GPRS模块的消息格式进行设置。
2、界面设计
系统连接与初始化表单的界面如图4.9所示。

图4.9 系统连接测试窗体

接着按照功能介绍表单中需要的控件:
首先要实现的功能是选择使用的串口,端口号可以设置由1到2。首先这里采用一个ComboBox控件,让用户选择端口号。接着又增加了两个CommandButton控件,用来触发系统的初始化以及退出程序,它们的Caption属性分别为“系统连接与初始化”和“退出系统”。然后按照前面介绍的MSComm控件的引用方法,在窗体中添加MSComm控件。最后,在表单中加入两个Timer控件。Timer控件的效果在于固定的时间内会执行所设置好的程序一次。它只提供定时的功能,没有相关的画面,因此属于执行时期不可见组件。
其常见的属性说明如表4.7所示。
表4.7 Timer控件主要属性
常用属性 说明
Name 对象名称,对象摆放完成后给予,是第一个必须设置的属性
Interval 计时器的间隔时间,每隔此一时间,计时器内的程序代码就会被执行一次
Enabled 决定是否启动计时器

一旦设置其Enabled的属性为True后,计时器内的程序代码就会被定时执行,而程序代码必须是写在计时器的Timer时间程序中的。计时器的Interval属性所设置的值虽然是以毫秒为单位,但是实测的结果并无法真正达到所希望的数值,通常会比设置的数值来的久一些,例如设置50ms做一次扫描的工作,但因操作系统无法实时的缘故,通常时间会在50ms以上,正常情况下不会太多。
这两个Timer控件中,第二个控件用来判断系统初始化时间是否过长,如果过长,则以出错处理,因此,Interval属性设为15000,Enable属性也设为False。第一个Timer控件的Interval属性设为800,Enable属性设为False。
3、编写代码
设计完界面之后,接着就要对界面中的控件编写代码。编程中用到了如下一些控件,它们的命名如表4.8所示。
表4.8 系统连接与测试中的对象
对象类型 对象名称 对象标题
命令按钮(CommandButton) RunCommand 系统连接与初始化
命令按钮(CommandButton) QuitCommand 退出系统
定时器(Timer) Timer1
定时器(Timer) Timer2
组合框(ComboBox) Combo1

在界面中用到了ComboBox控件,用来选择程序所使用的RS-232的端口,并保存在全局变量Portltem中,以供其他的窗口和控件使用。对ComboBox控件的click事件编写程序如下:
On Error GoTo err
portitem = CInt(Combo1.Text) ‘PortItem为全局变量,保存串行端口号
Comm1.CommPort = portitem
Comm1.PortOpen = True ‘打开端口
Exit Sub
err:
MsgBox “对不起,您选择的端口已经被打开,请选择别的端口”, vbOKOnly, “通知”
这段程序中用到了Cint函数,功能是用来将其他类型的数据强制转换成Integer类型,使用MsgBox函数,用来在对话框中显示消息,等待用户单击按钮,并返回一个Integer,告诉用户单击哪一个按钮,其命令格式为:
MsgBox(prompt[,buttons][,title][,helpfile,context])
其中各参数的描述如表4.9所示。

表4.9 MsgBox函数的参数描述
参数 描述
prompt 必需的。字符串表达式,作为显示在对话框中的消息。prompt的最大长度大约为1024个字符,由所用字符的宽度决定。如果prompt的内容超过一行,则可以在每一行之间用回车符(Chr(13))、换行符(Chr(10))或是回车与换行符的组合(Chr(13)%(Chr(10))将各行分隔开来
Buttons 可选的。数值表达式是值得总合,指定显示按钮的数目及形式,使用的图标样式,缺省按钮是什么以及消息框的强制回应等。如果省略,则buttons的缺省值为0
Title 可选的。在对话框标题栏中显示的字符串表达式。如果省略title,则将应用程序名放在标题栏中。
Helpfile 可选的。字符串表达式,识别用来向对话框提供上下文相关帮助的帮助文件。如果提供了helpfile,则也必须提供context
Context 可选的。数值表达式,由帮助文件的作者指定给适当的帮助主体的帮助上下文编号,如果提供了context,则也必须提供helpfile

MsgBox函数可以方便显示错误所在,显示程序进入的逻辑位置,而且在调试程序时可以添加MsgBox,非常方便有效。
接着对于“系统连接与初始化”的CommandButton控件编写代码,再对其中的两个Timer控件中的Timer事件分别编写代码。
第一个Timer控件代码用到了下列函数:
Ubound函数,用来取得数组的最大上限;Asc函数,用来将字符型的变量转换为ASCII;Hex函数,用来将十进制数转换位十六进制;Chr函数,用来将ASCII转换为字符。
该段程序中,还调用了一个子函数GetData,它的代码如下:
Dim Count As Integer
Count = 0
Comm1.InputLen = 1
‘设置Comm1的InputLen属性为1,读取缓冲区一个一个字节的读取
While Comm1.InBufferCount > 0 ‘循环读取缓冲区中的数据
ReDim Preserve arr_return(Count + 1) ‘动态定义数组的上限
arr_return(Count) = Hex(Asc(Comm1.Input))
Count = Count + 1
Wend
4.3.3 自动接收数据的设计
1、功能说明
自动接收数据,就是在没有人工干预的情况下可,数据中心软件一直处于循环地检测PC机串口数据信息的状态,如果有数据到达,则根据不同的数据信息采取不同的操作;如果数据在正常范围内,则把数据直接入库,供以后分析使用;如果数据超出正常范围,则直接报警,并且根据已经设定的转发人员的名单,把报警信息以短消息的方式转发给有关负责人,以便让负责人计时发现故障,予以排除。
为了实现自动接收数据的功能,GPRS模块必须设定好相关的操作,即操作中一旦接收到短消息,立即发送给串口一个确认信息,在确认信息中,有一个表示刚刚收到的短消息的号码,PC机中的程序根据读取到的号码,发送AT+CMGR命令来读取保存在GPRS模块中的短消息,根据短消息内的数据信息来进行不同的操作。
2、界面设计
“自动接收”表单的界面如图4.10所示。

图4.10 自动接收界面

跟前面的界面设计类似,但是这里还要用到连个新的控件:框架控件和Shape控件。首先,为了将各种控制方式更好分类,使用框架(Frame)控件,Frame控件为控件提供可标识的分组,Frame可以在功能上进一步分割一个窗体。按照预先的设计,将整个界面分成两个部分,上面一个框架是显示自动侦听到的短消息数据的,下面一个框架,主要是显示根据数据分析得出的水文信息采集设备端口的状态的,以判断是否报警,然后在搭好的框架中添加自己需要的控件[15]。
为了能够给用户一个直观的印象,同时在视觉上能够提示用户水文信息采集设备端口存在错误,在这里,添加了Shape控件,在报警的Frame控件中添加Shape控件,刚刚添加的控件的形状为正方形,在属性中设置控件的Shape属性为2,即Oval(圆形),同时设置它的FillColor属性为—&H80FF80(绿色),当某个端口要报警时,对应的Shape控件的FillColor属性为&H8080FF(红色),提示报警。
为了更充分地实现报警功能,引用一个控件Mmcontrol。它不在工具箱的常用工具中,和引用其它控件一样引用这个控件,在工具箱中选择Mmcontrol控件。
Mmcontrol控件是记录和播放多媒体文件的控件,它可以播放多种多媒体文件,这里添加Mmcontrol控件,主要是为了播放报警的声音,增加报警的功能效果。
在本系统中主要用到的属性如表4.10所示。
表4.10 Mmcontrol控件常用属性
常用属性 说明
Filename 指定要播放的文件
Command 指定运行的命令,例如:播放一个设备的命令为“play”,打开一个设备的命令为“open”,停止一个设备的命令为“stop”
Visible 决定是否显示该控件
在这个界面中,包含有一个Timer控件,主要执行延时的功能。
3、编写代码
根据设计的界面,对各个控件进行编程,在这个表单中,编程中用到了如下一些控件,它们的命名如表4.11所示。

表4.11 自动接收数据中的对象
对象类型 对象名称 对象标题
命令按钮(CommandButton) CommandDisable 解除警报
命令按钮(CommandButton) CommandQuit 返回
多媒体(MMcontrol) MMControl1
几何图形(Shape) Shape1() 注:是控件数组
定时器(Timer) Timer1 运行
文本框(TextBox) Tno 表示站号
文本框(TextBox) Ttime 表示时间
文本框(TextBox) Tname 表示名称
文本框(TextBox) Tevent 表示事件
文本框(TextBox) Ta1 表示水位
文本框(TextBox) Ta2 表示流量
文本框(TextBox) Ta3 表示流速
文本框(TextBox) Ta4 表示降水
文本框(TextBox) Ta5 表示蒸发
文本框(TextBox) Ta6 表示泥沙
文本框(TextBox) Ta7 表示冰凌
文本框(TextBox) Ta8 表示水质

由于是自动接收数据,因此,在表单打开的时候,就开始执行扫描端口的程序,同时,由于在水文站与GPRS模块之间以短消息的方式传送数据,短消息的发送和接收又受到许多非人为因素的影响,有是会出现不能够及时收到的情况,扫描端口的程序必须循环地执行,而且要有一定的延时,因此主要的程序流程都有Timer控件来实现,Timer控件的Enabled属性为True,这样,当表单刚刚打开时,程序Timer控件就开始计时,每当到达它的间隔时间就开始执行程序。
首先,说明对于此表单设置的全局变量:
Dim no As String ‘存储侦听到的消息为第几条消息
Dim rs As New ADODB.Recordset
Dim dbcn As New ADODB.Connection
Dim arr_return(40) As Variant ‘存储带%%的数据信息
Dim mess_index() As Variant
‘存储GPRS模块返回的带有短消息编号的确认信息
Dim message(100) As Variant ‘存储读取短消息时的所有信息
Dim mess(19) As Variant ‘存储arr_return转化后的信息
Dim Value(11) As Variant ‘存储数据转化之后的信息,即最后的数值
Dim zhuanfa_no As Integer ‘记录侦听到的第几号站口,以供转发时使用
Dim intall As Integer ‘在Timer1控件中指示程序的流程,初始值为0
Dim ifalarm As Boolean ‘判断是否报警
Dim strsql As String
接着编写Timer1控件代码,主要用来控制程序的流程。读取短消息编号的ReadNo函数,读取短消息数据的GetData函数。其中用到的Asc函数是将字符型转换位ASCII。程序根据数据协议,以两个字节表示的数据,因此,程序中出现了:TrueValue(1)=mess(1)*100+mess(2),即把第一个字节的十进制数乘以100,再加上第二个字节的十进制数。
然后调用子函数savedata用来把数据入库保存,用到以下函数:Cdata函数主要是把其它数据类型的数据转换成时间类型;Chr函数用来把ASCII转换成对应字符;Cint函数用来把其它类型数据转换成Integer型。
子函数excutesql,用来执行SQL语句,取得符合条件的记录集。其中用到了VB的一个对象App的属性Path,即App.Path,用来表示当前主程序的路径还有一个子函数ConverBin,用来把十进制数据转化成二进制,程序中主要是采取把十进制数对2取模的方式来得到每个二进制位的数据的。
接着编写Timer控件的程序中调用的子程序:RecTemp函数,用来读取GPRS模块返回给PC机的确认信息,主要负责读取对程序的流程没有太多影响的确认信息;ZhuanFa函数,用来把水文站设备出现的错误情况转发给有关的负责人,根据数据库中取得的转发人员的手机号来进行转发;SenTxt函数,用来判断是否读到“>”标志,从而进行相应的操作。
4.3.4 数据查询与显示的设计
1、功能说明
数据库的应用对于水文监控系统具有十分重要的意义,最主要的是,能够积累水文站的数据,以利于对水文站的总体运行情况进行分析,同时还可以简化一些用户的操作。
本系统中,数据库的存在,使得大量由水文站采集的数据,保存在PC机的数据库中,因此应当对数据库进行一些具体的管理,本系统中针对数据库主要是进行数据库的备份恢复,以及数据信息的查询。
2、界面设计
设计好的界面如图4.11所示。

图4.11 查询显示界面

由图可以看出,这里添加了所有记录、删除记录和返回三个按钮用来进行对数据库的一些操作,还有开始查询按钮,用来进行查询的执行。
这里主要用到了ComboBox控件让用户进行水文站设备编号的选择,以进行按照编号的查询。
由于要和数据库相连,因此使用ADODC控件连接数据库,它不在VB的常用工具箱里,按照前面介绍的引用其它控件的方法引用控件Microsoft Ado Data Control 6.0。
一般情况下,如果设置了ADODC控件的连接字符串之后,数据库文件的地址就不能动态改变了,因此,这里先不设置ADODC控件的属性,在程序中指定ADODC控件的连接字符串,以实现数据库文件地址的可变。同时ADODC控件的Visible属性应当设置为False,这样在程序运行时就不会看到该控件。
由于必须具备查询结果的显示功能,因此这里用到了DataGrid控件,DataGrid控件支持与ADODC控件的绑定,因此可以节省一些编程的工作。它不在VB的常用工具箱里,按照前面介绍的引用其他控件的方法引用这个控件。
设置DataGrid控件的DataSource属性为ADODC1,这样,就把DataGrid控件同ADODC1控件绑定了。同时应当设置每列的标题。
3、编写代码
根据界面的设计,对添加的控件进行程序的编写。由于在表单刚刚打开时,DataGrid控件中就应该显示所有的数据,因此在表单的Load事件中编写程序如下:
Adodc1.ConnectionString = “Provider=Microsoft.Jet.OLEDB.4.0;Data Source=” & App.Path & “\db\db1.mdb;Persist Security Info=False”
‘指定ADODC控件的连接对象
Adodc1.CommandType = adCmdText
Adodc1.RecordSource = “SELECT * FROM data order by time DESC”
‘按照时间降序的方式取得所有的数据
Adodc1.Refresh ‘更新显示
首先,进行查询条件选择的编程,即对Check1、Combo1以及CommandQuery三个控件进行编程。接着对“开始查询”按钮和“删除”按钮进行编程[16]。
4.4 调试与运行
4.4.1 调试
完成水文监控系统数据中心软件的代码编写,之后就需要对其进行调试,验证各项功能的可实现性和可靠性。为了减少调试的复杂程度,在编写好一段程序好对其功能进行检查调试,最后当所有程序代码编写完成之后,再联合调试,这样便于快速发现问题所在。
在“调试”菜单中选择“逐语句”调试,程序进入frmimi的Form_Load代码,在第一句显示高亮,按F8逐步调试,这段程序的功能就是初始化各个变量,在组合框中插入数据,以供用户选择,然后等待事件的发生。
程序从Form_Load()第一句开始,初始化变量,执行到Form_Load事件过程结束,将显示出frmini的主界面等待命令。
对各个对象进行操作检验事件响应的程序,确定各个事件响应的逻辑顺序,由于是单步执行,可以详细调试每一步程序执行的状况,子程序的调用、调用函数返回数值的准确性、判断以及循环的逻辑顺序等。
调试程序本着先局部后整体的原则,先把每个小模块中的程序正确调试好,各部分调通之后出现问题便于及时发现问题所在。
本程序发送数据主要由RunCommand子程序实现,在RunCommand程序开始设置断点,设置断点后,当程序执行到发送数据的时候,必然会在这里发生中断,然后接下来可以单步执行RunCommand程序中包含的每个指令,判断是否按照正确的逻辑执行。如果程序按照正确的逻辑顺序执行的话,那么可以判断这部分没有问题,如果没有按照正确的顺序进行,必然是编写的代码有问题。
计算机串口和GPRS模块连接,进行收发数据的调试,正确后,调试过程就完成了。
4.4.2 运行
点击Visual Basic菜单“运行”中的“启动”,运行程序。显示“系统连接与初始化”界面如图4.12所示。

图4.12 系统连接与初始化

选择端口号后点击“系统连接与初始化”进入主界面如图4.13所示。

图4.13 主界面

点击“自动接收”按钮,如图4.14。

图4.14 自动接收

点击“查询与显示”如图4.15所示。

图4.15 查询与显示

第五章 总结与展望

水文现代化建设是关系到国计民生的重要工作。如何建立一个可靠有效的水
文远程监控网络已成为一个重要课题。随着移动网络技术的不断发展,本文研究了基于GPRS的采用短消息传送水文数据信息的系统,进行了一套从数据采集、传输、存储到大量信息的集中管理、报警及显示的系统方案。
本文首先对水文监控的现状进行了分析,并对几种无线传输方式做了比较,提出了基于GPRS无线水文监控系统的方案,然后对水文信息采集和GPRS模块进行了简要的分析,最后主要对数据中心部分的水文监控软件研制进行了比较详细的描述。数据中心软件用Visual Basic编写,数据库采用Access 2000。首先对软件的功能要求分析,制定软件工作流程,接着对相关技术与算法进行研究,最后编写软件程序,调试及运行程序。
由于一些外在因素的影响,例如天气状况、通信线路的故障、阻塞等情况,使得短消息的发送具有一定的不确定性,使得有时短消息的接收不是特别的及时,在某些情况下,短消息接收的不够及时,将直接影响到远端设备故障的排除等,因此,在程序的设计时,应当考虑到这方面的影响,但是,随着移动通信业务的不断发展,技术的不断进步,这方面的欠缺一定会被克服的。
水文监控系统的建设是水文建设的重要组成部分,建立水文监控系统是一项复杂的工作。本文虽然利用GPRS网络实现了水文数据的传输、保存与管理,但由于时间和知识结构的有限,在系统软件设计等方面如:对水文信息数据进行历史趋势分析等还需进一步的研究。

参考文献

[1] 丁强.水文监测技术应用与展望[N].水文报,2005.2.15(2).
[2] 刘民健.电子测量技术的发展[J].常州信息职业技术学院学报, 2004,3(3):17-18.
[3] 黄委会科技外事局、黄委会信息中心.国际典型河流(流域)管理现状及发展分析[N].水文信息报,2005.1.23(1).
[4] 孙选、艾长胜、李国平.基于VB的远程雨量自动监测处理系统[J].济南大学学报(自然科学版),2002,16(2):197-199.
[5] 郭泽辰.基于GPRS的远程自动水文监测网络[J].电力系统通信, 2004,5(8):11-17.
[6] 韩冰、李芬华.GPRS技术在数据采集与监控系统中的应用[J].电子技术, 2003,2(8):26-29.
[7] Kaveh Pahlavan, Prashant Krishnamurthy. Principle of Wireless
Networks: A unified Approach[M]北京:清华大学出版社,2003.43-52.
[8] 成都众山科技有限公司.GPRS远程水文监测应用[EB/OL].

http://www.qqread.com/net-knowledge/t306880.html,2007-04-04.

[9] 马福昌、彭海莉、王才.基于VB环境下开发远程无线监控系统[J].科技情报开发与经济,2004(10):17-34.
[10] 杨昭、周军.数据库技术课程设计案例精编[M].北京:中国水利水电出版社,2006.92-116.
[11] 范逸之、陈立元.Visual Basic与RS-232串行通信控制(最新版)[M].北京:中国青年出版社,2002.54-61.
[12] ETSI.Technical realization of the Short Message Service[EB/OL]. http://www.etsi.org,2006-7.
[13] 余华、何玉香.Visual Basic程序设计[M].北京:北京理工大学出版社,2005.66-84.
[14] 求是科技.Visual Basic 6.0程序设计与开发技术大全[M].北京:人民邮电出版社,2004.69-91.
[15] Roger Jennings. Database Developer’s Guide with Visual Basic 6.0[M].北京:机械工业出版社,2000.156-171.
[16] 朱从旭.Visual Basic程序设计综合教程[M].北京:清华大学出版社,2005.89-127.

附录
1、主界面程序源代码

基于ASP技术的WEB数据库开发

Posted by 天际的荒草 | Posted in Docs | 文档 | Posted on 18-09-2009

标签:, , , ,

0

摘要 i
ABSTRACT ii
第一章 绪论 1
1.1 研究背景及意义 1
1.2 国内外发展现状 3
1.3 论文研究内容 4
1.3.1 ASP访问数据库的方法 4
1.3.2 数据的查询控制 6
1.4 论文组织结构 6
第二章 需求分析 8
2.1 系统定位 8
2.2 系统需求分析 8
2.2.1 业务需求 9
2.2.2 用户需求 10
2.2.3 功能需求 11
2.3 系统特点 12
2.4 小结 12
第三章 工具平台及关键技术介绍 13
3.1 开发平台 13
3.1.1开发工具 13
3.1.2 系统环境的安装 14
3.1.3 开发语言 18
3.2 关键技术 18
3.2.1 VBScript语句 19
3.2.2 Request和Response对象 19
3.2.2 Response对象 20
3.2.3 Session对象的使用 21
3.3 WEB数据库的操作 21
3.3.1 数据库访问流程 21
3.3.2 ASP对数据库的连接 22
3.3.3 ASP对数据库的读取、添加、删除和修改 23
3.3.4 如何关闭数据库 24
3.5 小结 24
第四章 系统总体结构设计 25
4.1 总体框架结构及流程 25
4.2 新闻发布系统 26
4.3 留言系统 27
4.4 投票系统 28
4.5 小结 28
第五章 系统的详细设计 30
5.1 整体版式及风格的设计 30
5.1.1 主页面的设计 31
5.1.2 二级页面的设计 32
5.2 管理员模块 32
5.3 新闻发布系统 33
5.3.1 新闻系统数据表的设计 34
5.3.2 新闻显示模块 34
5.3.3 新闻管理模块 36
5.4 留言系统 38
5.4.1留言系统数据表的设计 38
5.4.2 留言显示与用户留言模块 38
5.4.3 留言的管理 40
5.5投票系统 41
5.5.1 功能的设计 42
5.5.2 投票系统数据表的设计 42
5.5.3 投票系统页面的设计 42
5.5.4 投票结果显示模块 44
5.6 小结 49
第六章 结论与展望 50
6.1 实践结果分析 50
6.2 下一步工作展望 50
致谢 52
参考文献 53

摘要
Microsoft Active Server Pages,即ASP,是一套微软开发的服务器端脚本环境,ASP内含于IIS之中,最新版的ASP 3.0内含于IIS 5.0之中。通过ASP我们可以结合HTML网页、ASP指令和ActiveX控件建立动态、交互且高效的WEB服务器应用程序。有了ASP你就不必担心客户的浏览器是否能运行你所编写的代码,因为所有的程序都将在服务器端执行,包括所有嵌在普通HTML中的脚本程序。当程序执行完毕后,服务器仅将执行的结果返回给客户浏览器,这样也就减轻了客户端浏览器的负担,大大提高了交互的速度。
作为微软推出的网页与数据库解决方案,ASP由于有微软得天独厚的操作系统等技术后盾支持,因此得到了迅速的发展,并且正受到越来越多的欢迎,在目前在电子商务网站的建设中有很多都使用ASP来编写程序。
论文主要研究对象即是使用ASP技术来完成对Web数据库的应用。通过对ASP技术的研究,解决Web数据库中信息动态显示到网页的问题。让开发出来的应用程序能够在实际生活中使用。
本论文的重点在于使用VBScript、JScript等简单易懂的脚本语言,结合HTML代码,来实现对WEB数据库的连接与数据的存取等操作,完成对网站新闻发布系统,留言系统和投票系统的开发。当前流行的Web数据库管理系统有微软的SQL Server、Oracle、DB2、Sybase,小规模的企业多使用Access。本文的设计目的在于完成简单的网站WEB数据库应用,所以使用的数据库采用微软的Access。

关键词:网站,数据库,表格,数据

ABSTRACT

Microsoft Active Server Pages, called ASP, is a server script environment which develops by Microsoft, ASP content in IIS, Most new edition ASP 3.0 contents to IIS in 5.0. We may unify the HTML homepage, the ASP instruction and ActiveXthrough ASP control an establishment dynamic, alternately also thehighly effective WEB server application procedure. Had ASP you not to need to worry customer browser whether could movethe code which you compiled, because of all procedures all in theserver end execution, including all will inlay in ordinary HTML thescript procedure. After the procedure execution finished, the server will only carry outthe result will return for the client browser, like this alsolightened the customer end browser burden, greatly enhanced theinteractive speed.
Homepage and database solution promotes which as Microsoft,ASP because has Microsoft advantageous operating system and technical backing support, therefore obtained the rapid development, and isreceiving more and more many welcome, has very many in at present inthe electronic commerce Website construction all uses ASP to compilethe procedure.
The paper main research object is, uses the ASP technology to complete for the Web database application. Through to the ASP technology research, solve the problem about the Web database information how to demonstrate on the homepage. Makes the development procedure sends to be able in the practical life to use.
The present paper key point lies in uses VBScript, JScript and so onthe simple easy to understand script language, unifies the HTML code, realizes to WEBdatabase connecti
on and data operation and deposit or withdrawal, Completes to the Website news issue system, the message system and thevoting system development. The current popular Web database management system has Microsoft SQLServer, Oracle, DB2, Sybase, the small scale enterprise uses Access. This article design goal lies in completes the simple Website WEBdatabase application, therefore the use database uses Microsoft Access.

KEY WORDS: website,Database,Form,data

第一章 绪论
Active Server Pages(ASP,动态服务页面)是服务器端脚本编写 环境,使用它可以创建和运行动态、交互的 WEB (网络)服务器应用程序。使用 ASP 可以组合 HTML(Hypertext Markup Language, 超文本链接标示语言)页、脚本命令和 ActiveX(网络化多媒体对象技术) 组件以创建交互的 WEB 页和基于 WEB 的功能强大的应用程序。ASP 应用程序很容易开发和修改[1]。论文所要研究的主要问题,就是如何应用ASP技术,来实现对Web数据库的连接和操作,开发出实用的WEB服务器应用程序。
1.1 研究背景及意义
随着Internet(国际互联网)的普及,越来越多的企业建立了自己的WWW(World Wide Web,万维网)网站,企业通过网站可以展示产品,发布最新动态,与用户进行交流和沟通,与合作伙伴建立联系,以及开展电子商务等。其中新闻管理系统是构成企业网站的一个重要组成部分,它担负着双层作用,一方面可以用来动态发布有关新产品或新开发项目,另一方面又可以及时向顾客公告企业经营业绩、技术与研发进展、特别推荐或优惠的工程项目、产品和服务,从而吸引顾客,扩大顾客群。
Microsoft Active Server Pages,即读者朋友们所称的ASP,是一套微软开发的服务器端脚本环境,ASP内含于IIS(Internet Information Server,国际互联网信息服务)之中,最新版的ASP 3.0内含于IIS 5.0之中。通过ASP大家可以结合HTML网页、ASP指令和ActiveX控件建立动态、交互且高效的WEB服务器应用程序。有了ASP你就不必担心客户的浏览器是否能运行你所编写的代码,因为所有的程序都将在服务器端执行,包括所有嵌在普通HTML中的脚本程序。当程序执行完毕后,服务器仅将执行的结果返回给客户浏览器,这样也就减轻了客户端浏览器的负担,大大提高了交互的速度。
ASP是Microsoft(微软)公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码,能产生和执行动态、交互式、高效率的服务器应用程序。运用ASP可将Vbscript(Visual Basic 描述语言)、javascript(Java描述语言)等脚本语言嵌入到HTML中,便可快速完成网站的应用程序,无需编译,可在服务器端直接执行。容易编写,使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行,用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。此外,它可通过内置的组件实现更强大的功能,如使用ADO(ActiveX Data Objects,ActiveX数据对象)可以轻松地访问数据库。
ASP的第一个版本是0.9测试版。它给WEB开发带来一阵暴风,它能够将代码直接嵌入HTML,使得设计WEB页面变得更简单,更强大,并且通过内置的组件能够实现强大功能,最明显的就是ActiveX Data Objects (ADO),它使得建立一个动态页面如小孩子玩游戏一样简单。
1996年ASP1.0诞生,它的诞生给Web开发界带来了福音。早期的Web程序开发是十分繁琐的,以至于要制作一个简单的动态页面需要编写大量的C代码才能完成,这对于普通的程序员来说有点太难了。而ASP却允许使用VBScript这种的简单脚本语言,编写嵌入在HTML网页中的代码。在进行程序设计的时候可以使用它的内部组件来实现一些高级功能(例如Cookie)。它的最大的贡献在于它的ADO,这个组件使得程序对数据库的操作十分简单,所以进行动态网页设计也变成一件轻松的事情。因此一夜之间,Web程序设计不再是想象中的艰巨任务,仿佛很多人都可以一显身手。
到了1998年,微软发布了ASP 2.0。它是Windows NT4 Option Pack(视窗NT4操作系统包)的一部分,作为IIS 4.0的外接式附件。它与ASP 1.0的主要区别在于它的外部组件是可以初始化的,这样,在ASP程序内部的所有组件都有了独立的内存空间,并可以进行事务处理。
到了2000年,随着Windows 2000的成功发布,这个操作系统的IIS 5.0所附带的ASP 3.0也开始流行。与ASP 2.0相比,ASP 3.0的优势在于它使用了COM+,因而其效率会比它前面的版本要好,并且更稳定。
之后,微软又推出ASP.NET。在刚开始开发的时候,它的名字是ASP+,但是,为了与微软的.NET计划相匹配,并且要表明这个ASP版本并不是对ASP3.0的补充,微软将其命名为ASP.NET。这不是ASP的简单升级,而是全新一代的动态网页实现系统,用于一台WEB服务器建立强大的应用程序。是微软发展的新体系结构.NET的一部分,是ASP和.NET技术的结合。提供基于组件、事件驱动的可编程网络表单,大大简化了编程。还可以用ASP.NET建立网络服务。
在MVP SUMMIT(MVP最高阶层)会议上, 微软WEB平台和工具开发组的SCOTT GUTHRIE和ASP.NET组的产品经理ROB HOWARD对ASP.NET新版本作的介绍和观摩了他们作的演示。他们的介绍主要是针对即将发行的ASP.NET 1.1和尚在开发中的ASP.NET 2.0. 下面根据当时做的笔记简单介绍一下。 第一部分: ROLLING EXCITEMENT: ASP.NET 1.1 他们估计目前ASP.NET在网上的使用率大概为20%. 今春, 他们将发行包含五个样品项目(C#/VB.NET)的ASP.NET STARTER KIT, 更新免费的ASP.NET开发工具WEB MATRIX(WEB矩阵), 同时推动全球范围内的ISP HOSTING(服务提供商作战), 在二月底正式推出ASP.NET 1.1. 该版本将充分利用其与WINDOWS 2003服务器以及IIS6的紧密集成, 使用IIS6中的PER APPLICATIN PROCESS ISOLATION来提高ASP.NET的性能, 增强了易管理性和安全性。
在网络发展日新月异的今天,人们不断的创新,包括网页,网站的发展.原来的那些HTML超文本语言已经不能完全满足我们的做网页的需要了。我们需要的是一个动感性,交互性都很强的网站.这样才能和广大的网友,用户产生交流.那些或简单或复杂的VBSCRIPT和JAVASCRIPT也让站长觉得讨厌.任何用户只要按下右键,再按一下V,那么你的所有代码必将暴露无疑。
然后自从服务器脚本语言出现后,这一切就出现了。最初CGI很流行,虽然它几乎可以用所有的语言来实现,可是它和HTML不是太好,更新程序麻烦,我们这里就不太讨论它了.服务器脚本语言就是指所指定的程序将在服务器端执行,所以用户是看不到你的源程序的.只能看到按你程序要求出现的那些HTML的代码.这将是令人非常兴奋的。
1.2 国内外发展现状
据美国互联网市场调研机构NetCraft分析,截止2006年4月份,全球网站数量已经超过了8000万,其中中,基于Linux、Apache的应用服务器依然是网站主的第一选择,占WEB服务器软件市场整体份额的62.7%,微软的Windows以及IIS应用服务器占有率为25.2%。可见ASP应用程序开发在世界网站开发中还是占有相当大的比例。ASP技术在WEB数据库应用程序开发中已经显得相当地成熟,国内很大一部分网站的开发使用的是ASP技术,而且有相当多的公司都有提供基于ASP技术的WEB服务器。ASP以其简单易用,容易上手的特点吸引了很大的网站开发人员投入其中,构建各种网站,满足不同用户及企业的需求。
ASP成长至今,其版本已经不断地更新,目前最新的版本为ASP.net,其与ASP有着很大的改进,具有了更为强大的功能,为网站设计与编程人员提供强有力的帮助。虽然现在也有PHP等技术,但ASP技术以其各方面强大的功能仍旧在WEB数据库应用程序开发领域中流行,为人们广泛应用。在国内,ASP技术的应用也已经相当地成熟。
然而ASP也有很多美中不足的地方,首先它只能运行于WINDIW系列的操作系统,这就显得有些霸道了。其次,ASP必须要在服务端解释才能再执行,这在一些小程序中是微不足道的,可是相对于一些大中型站点来说,在速度上会显得力不从心。
相对来说,ASP还是不错的,它适合于中小型,运行于微软操作系统的站点,当然最多的就是WIN2000了。很适合于一些刚刚接触语言的人。通过使用ASP技术来访问WEB数据库其优点在于可以借用现成的浏览器软件,无需开发数据库前端。WEB数据库将WEB技术与数据库技术有机地融合在一起,用户通过浏览器就可以完成对后台数据库中数据的插入、删除、查询和修改等操作。这样的模式极大地简化了操作过程,方便了用户使用数据库中的数据。目前,WEB数据库的应用已经成为WEB技术研究的热点。
1.3 论文研究内容
在基于B/S结构的网络信息系统开发中,结合ASP与客户端的VBScript脚本, 开发能与数据库进行交互的WEB应用程序。新闻资料,投票统计,留言内容的存取由客户端与服务器交互完成。
ASP允许我们把像表格、文本框及标题等HTML标准元素与其他脚本语言的元素,例如数据库域、日期/时间信息、及个人定制等成分结合在一起,在每次页面被访问时针对浏览器发出的请求动态地产生一个页面。IIS运用VBScript脚本解释器,把它变成HTML标记和文本。最终的页面不包含任何代码,看的见的只是浏览器所能显示的信息[2]。
论文通过使用 HTML以及VBScrip等语言,通过ASP完成WEB数据库应用程序,完成网络新闻发布系统,投票系统,留言系统的设计和开发。
1.3.1 ASP访问数据库的方法
要开发出急于B/S(浏览器/服务器)结构的WEB数据库系统,必须要解决如何实现网页与数据库的连接和集成。对于一个ASP程序而言,它通常是通过ADO层或者ODBC(Open Database Connectivity,开放式数据库连接)借口来访问数据库的。
ODBC是连接数据库的通用驱动程序,是由微软主导的数据库连接标准,实用环境也以微软的操作系统最为成熟。在UNIX系统中,通常要使用其他厂商所提供的ODBC驱动程序,有些UNIX厂商会自己提供ODBC驱动程序(如SUN 为Solaris提供ODBC)。
与大部分的数据库查询方式一样,ODBC对数据库的查询采用SQL (Structur -ed Query Language,结构化查询语言)语言,这似的系统可以很容易地和各种数据库沟通。当然,透过ODBC界面,后台的数据库不一定是DBMS这种大型数据库系统,也可以是数据表(如Microsoft Access)或者是工作表(如Microsoft Excell)不过,Microsoft正逐步用OLE DB代替ODBC。现在Microsoft公司为数据库提供驱动程序,还发展了面向ODBC的OLE DB提供程序,使那些没有自己的OLE DB供应商的数据库也能工作[2]。
ADO是在Microsoft新的数据库应用开发接口(API)-OLE DB技术上实现的,通过ASP的ADO对象,只要安装了相应的OLE DB驱动程序,就可以访问各种数据源,包括传统的关系型数据库和其他类型的数据库。ASP,ADO,OLE DB与各种数据库之间的关系如图1.1所示。

图1.1 ASP,ADO,OLE DB与各种数据库之间的关系示意图

从图1.1中可以看出,在ASP中都是通过ADO对象执行对数据库的操作,而ADO又可以通过ODBC或直接使用OLE DB两种方式与数据库建立通信。从执行的效率上来看,ODBC与数据库的通信所需的环节明显多于直接使用OLE DB,因此,在ASP程序中应更多地使用后者操作数据库。
开发人员可以通过运行在IIS上的ASP代码使用远程数据访问服务(RDS)来访问远程数据库,RDS组件用于分析和接受客户端发来的基于HTTP(Hypertext Transfer Protocol, WWW服务程序所用的协议)的数据库检索请求,并通过OLE DB层来将其解析到目的数据库,然后RDS将获取到的数据库检索结果形成一个离线数据集,通过HTTP将数据集返回到客户端的浏览器。
总之,ASP对数据库的整个访问过程就是这样的:客户端的浏览器向WEB服务器提出ASP页面文件请求(包括数据库的操作),服务器将把该页面由ASP.DLL文件进行解释,并在服务器端运行,完成数据库的操作,再把数据库操作的结果生成动态的网页返回给浏览器,浏览器再将该网页的内容显示在客户端[4]。
1.3.2 数据的查询控制
数据库在网络中的应用大部分集中在数据的查询操作上。数据查询需要使用ADO对象中的Connection(连接)对象和RecordSet(记录集)对象。
进行数据查询时,主要使用SQL语句中的Select语句,通过该语句就可以得到所要查询的数据记录,对于数据记录少的情况,可以将查询结果直接传动到客户端浏览器;当查询结果得到的数据记录很大时,就有些不适用了,这时随着数据记录数量的增加,从服务器传递到客户机的时间就会增加,可能会发生数据传输时间超时而中断的现象,同时服务器也会产生一些不好的后果,如增加服务器负担等。因此,在实际的查询结果显示中应该采用某些措施避免这种情况的发生。
解决这个问题,可以采用多种方法。比如通过结合Session(会议)对象,允许参数在多个网页之间传递的特性,让查询程序以一页或一条为单位进行查询操作,利用RecordSet对象的AbsolutePosition(绝对位置)属性记录数据指针的位置;或者利用RecordSet对象的PageSize(页面大小)属性控制每一页所要显示的数据记录条数,当然其间也用到了Session对象和RecordSet对象的AbsolutePosition属性[3]。
1.4 论文组织结构
本文介绍了ASP技术的研究背景和基于ASP技术的WEB数据库应用程序开发的特点,以及开发WEB应用程序的流程。并应要求分析WEB应用程序所要完成的任务,改进数据库内容的设计,创建动态、交互且高效的WEB服务器应用程序。
第一章为绪论,主要介绍了论文的研究背景和意义,分析了目前ASP的发展状况,并提出了本文的研究内容和论文的组织结构。
第二章为需求分析,主要确立了系统设计的定位。通过对系统的应用分析,阐述了系统应该具有的各项功能以及整个系统的应用特点。
第三章主要介绍了系统研究设计过程中所使用的开发环境和工具,通过第三章,可以对系统的开发环境和工具得到大致的了解。
第四章为系统的整体设计。在第四章中,以第二章的需求分析为基础,设计出系统各个功能模块,并给出各功能模块的流程图。
第五章为系统的详细设计。此章围绕着第四章展开,以系统的整体设计为框架,详细讲述了系统的设计过程,通过第五章可以清楚的了解整个系统详细的设计过程。

第二章 需求分析
一个系统的成功与否与系统建立前定位有着极为重要的关系。在建立系统前应明确建设系统的目的,确定系统的功能,确认系统规模等等。这些问题只有详细的规划、进行必要的分析,才能避免在系统建设中出现的很多问题,使系统建设能顺利进行。
本章将重点描述整个Web数据库应用系统的设计需求,将作为对该系统在总体流程设计阶段的设计起到引导作用。
2.1 系统定位
本文的Web数据库应用系统包括了留言系统,新闻发布系统和投票系统;这是三个系统无论是建设何种类型的网站都必须具备的三种最基本的系统。为了实现这三种系统的实际应用,本文把这三个系统的设计定位在一个简单的企业网站的开发上,在开发一个企业应用网站的同时,实现用ASP技术开发Web数据库应用程序的要求,完成本文的最终设计目标。
2.2 系统需求分析
此网站是一个应用与咨询公司的网站。其用途是为了促进企业与客户之间的交流、扩大企业外部影响、增进客户对企业的了解、为企业在国际互连网上建立一个与广大用户群之间沟通的快速通道。网站的企业名称为龙马咨询公司,其主要内容包括如下几大功能板块:企业自身信息的发布,企业经营成果,用户与企业网站的互动交流。具体如图2.1所示

图2.1 三大功能板块

这几大板块均由超链接相互联系起来,访问者可以通过其中所提供的链接从任意板块跳转到另一个板块,方便了访问者快速查询,避免了用户因为繁琐的查询而丧失对企业的信心。
本网站的管理可以由一个管理员管理或者多个管理员共同管理,其后台管理入口为统一入口,一个系统管理员即可管理整个网站的内容。当然也可以分配不同的管理员管理不同的板块,增加管理效率。本站统一使用微软的IIS建立站点服务器。在主站点上存放主页面,主页面上设置指向各板块的链接。主页面存放指向各板块的链接,管理员注册登录入口,以及一些最新的企业成果、企业新闻的咨询,所以其风格要求简介大方,又有于主页面是龙马咨询网站的总门面,要求其设计能够体现企业风格,企业形象,做到不落俗套。各个板块之间的风格应统一,不能够一个板块一种颜色,给访问者一个稳重的形象。
在下几节中,将重点分析此系统应用的网站的需求。
2.2.1 业务需求
业务需求层次需要投入的精力视具体项目而定,而业务需求的确定对之后的用户需求和功能需求起了限定作用,业务需求就是需求过程的宪法,任何需求不得与之相违背。
目前许多公司积极拓展电子商务,为客户服务,进行价值链集成。随着全球信息网络的发展,Internet在世界上已不仅仅是一种技术,更重要的是它已成为一种新的经营模式。从4C( Connection、Communication、Commerce、Co-operation)层次上彻底改变了人类工作,学习,生活,娱乐的方式,已成为国家经济和区域经济增长的主要动力。Internet正成为世界最大的公共资料信息库,它包含无数的信息资源,所有最新的信息都可以通过网络搜索获得。更重要的是,大部分信息都是免费的,应用电子商务可使企业获得在传统模式下所无法获得的巨量商业信息,在激烈的市场竞争中领先对手。互联网是个商机无限的地方。
为此,网站的设计首先就必须满足一个企业网站所应该具有的基本业务需求:
第一,网站应该具有能够向社会中企业已经拥有的用户群提供业务咨讯的功能;
第二,网站必须能够在国际互连网上展示自己的企业风格,树立企业形象,提供企业信息以便能够吸引潜在的客户群,从而为企业赢得商机,在竞争中获取胜利;
第三,网站必须满足与客户的互动,收集客户需求,及时解答客户疑问。在客户中树立一个友好的形象。
第四,网站应该有广告效应,所谓的广而告之。在当今的互连网上,信息的传播速度是非常快的,并且各国都拥有着数量非常庞大的上网用户。在这之前,想要在电视台,路牌,广播台等媒体上为企业打广告需要的投资是非常大的,而相对于互连网,做一个广告所需要的投资可以说是小之又小。同样可以带来广告的效应,就不应该放弃互连网这块宝地。
企业网站业务需求如下图2.2

图2.2 企业需求

2.2.2 用户需求
到了用户需求层次上,重心就转移到如何收集用户的需求上。在这里,当你是这个企业的用户或对企业来说是一个潜在的用户来说。你想要做什么,你想从这个网站得到什么,就是这个网站所要面对的用户需求。
在这里,假设是一个潜在的用户,他想要网站为他做的,一般包括以下几个方面:
1.需要企业的基本信息,比如企业背景、运营时间有多长、规模有多大。这就需要一个为用户展示企业信息的地方。
2.这个企业是不是真的能解决自己的问题。为了了解企业是不是有能力来为自己提供想要业务服务,他就会想要了解企业能够提供的服务、企业的营运过程,过去的营运结果,做一个大致的了解。在这里,网站就必须为用户提供一个展示企业经营成果的版块。
3.解答自己的疑问。所谓百密一疏,企业网站不可能去满足所有用户的需求,也不可能去让所有的用户通过网站所提供的咨讯去深刻地了解企业。其中必然会有让用户产生疑问的地方。比如用户有可能不明白咨询公司具体是干吗的,或者用户向企业要求提供服务,却不知道具体是哪个相关人员来解决自己的问题等等。网站为此应该设置一个企业与用户交流的通道,通过这个通道解答用户疑问,当然了,及时的解答将会在用户群中保持良好的印象。
4.对网站发表见解。用户在访问一个网站的同时,必然会产生对这个网站或好或差的印象。用户有权利在这里发表对网站的见解,同时也对网站的改进起到积极的作用。
具体的用户需求可以从图2.3中直观地看到:

图2.3 用户需求

2.2.3 功能需求
功能需求依赖于用户需求,可以说是用户需求在系统上的一个映射(Mapping)。开发者思考的角度从用户转移到开发者。
在这里,作为一个系统开发者的身份,所要做的分析就是让功能需求满足企业的需求和用户的需求,并提供一个大致的模型,为系统的整体结构设计服务。
具体的功能分为几个大的模块,每个模块又必须提供相应的功能:
1.为企业提供一个展示企业文化,发布企业信息的平台;
2.为企业打广告,提高企业影响;
3.提供企业与用户交流的通道;
4.建设一个企业管理员入口,方便管理整个网站;
5.建设一个投票系统,满足企业收集用户评价的需求,满足用户发表见解的需求。以便能够作出及时的调整,适应更多的人群;
你可以通过下边图2.4来了解功能需求的具体内容:

图2.4 功能需求
2.3 系统特点
整个系统的设计特点在于提供一个企业在网络上的平台,具有目前企业网站所能提供的基本业务功能。满足企业上网的基本需求,把企业从一个现实中的公司应用到一个虚拟的环境中。甚至企业能够只需要在网络虚拟环境中就能够完成企业能提供的所有业务,而在现实中只需要很小的业务场地。在这个咨询公司网站上,企业只需要在现实中拥有很小的场地,只提供相关业务人员基本的工作环境,而大部分的业务均可以通过网络来完成。
本站点力求简洁明了,通过最简捷的服务过程,满足用户最大的需求,完成公司业务,提高公司影响。
2.4 小结
在这一章节中,分析了一个应用于现实生活的企业Web服务器系统所要满足的各种需求,包括企业需求,用户需求和功能需求。并且在本章的最后,阐述了本系统的设计特点和设计所要满足的要求。
需求分析是一个系统设计过程之前所要做的重点,甚至可以说需求分析才是一个系统设计的引导者。通过对各种需求的分析,才能完成整个系统的设计,需求分析是系统设计的中心,整个系统的设计就是通过需求分析这个中心来展开的,满足了所有的需求,就能建设出一个能够应用于实际的系统。
在第四章中,本文将围绕着需求分析结果,进行系统的总体结构设计,分配任务模块,完成需求功能。

第三章 工具平台及关键技术介绍
本章主要介绍基于ASP技术的Web数据库应用程序开发所需要的平台以及软件,并就开发所需要的关键技术作了简单的介绍。本章的主要目的是为了以后系统的详细设计做铺垫,完成系统设计前的准备工作。
3.1 开发平台
开发平台主要包括了系统环境,开发软件以及开发所需要的计算机语言。开发一个网站系统并不是单单只靠一个或者两个软件就能够完成的,它涉及到很多的方便,包括数据库,服务器,网页设计及编辑软件,页面设计软件等等。一个好的网站的开发更是需要多人的配合完成。
一般来说,ASP程序可以在Windows 95/98/NT/2000 等操作系统下运行,因此计算机的硬件配置至少要符合系统的需求,除了硬件之外,还必须正确安装和设置TCP/IP网络通讯协议、WEB服务器及ASP软件。
在网络组件正确安装后,需要安装WEB服务器。ASP所需要的WEB服务器版本至少要Personal Web Server for Windows 95(面向视窗95的专业网络服务器)或II3.0以上。在Windows NT/2000操作系统中可以利用Microsoft公司提供的IIS来安装和设置WEB站点,以支持ASP的运行,在Windows 98中,Microsoft公司提供了功能相对简单的PWS来安装和设置WEB站点,也能够支持ASP的运行。
本文所要研究的对象程序主要是在Windows XP环境下设计及调试。
3.1.1开发工具
本文所设计的站点使用的软件包括:Microsoft Access数据库、Dreamweaver网页设计软件以及Photoshop图片处理软件。
Access是一个基于关系型数据库模型基础上建立的数据库管理系统软件(DBMS),它帮助用户方便地得到信息,并提供强大的数据处理工具。它可以帮助用户组织和共享数据库信息,以便于根据数据库信息作出有效的决策。另外,如果仅有这样一个数据库管理系统软件(DBMS),则只能进行一些信息系统所需要的简单数据处理,且对操作者有较高的操作技能要求。因此数据库应用系统的开发者都是在Access数据库管理系统(Access DBMS)环境下编写相应的应用程序,以形成一个能够满足应用需求且操作尽可能简单的应用系统,这被称之为二次开发。应该说Access具有良好的二次开发支持特性。
无论从应用还是开发的角度来看,Access DBMS都是具有很多特性的:
1、使信息易于查找和使用
2、支持WEB功能的信息共享
3、用于信息管理的强大解决方案工具
4、具有完备的数据库窗口
5、提供名称自动更正功能
6、具有子数据表功能
7、可以采用拖放的方式与EXCEL共享信息
8、具有数据访问页功能
9、共享组件的集成
10、Microsoft SQL Server交互性[5]
Dreamweaver是美国MACROMEDIA公司开发的集网页制作和管理网站于一身的所见即所得网页编辑器,它是第一套针对专业网页设计师特别发展的视觉化网页开发工具,利用它可以轻而易举地制作出跨越平台限制和跨越浏览器限制的充满动感的网页。随着互联网(Internet) 的家喻户晓,HTML技术的不断发展和完善,随之而产生了众多网页编辑器,从网页编辑器基本性质可以分为所见即所得网页编辑器和非所见即所得网页编辑器(则原始代码编辑器),两者各有千秋。所见则所得网页编辑器的优点就是直观性,使用方便,容易上手,您在所见即所得网页编辑器进行网页制作和在WORD中进行文本编辑不会感到有什么区别。
Photoshop是目前公认的最好的通用平面美术设计软件,它的功能完善,性能稳定,使用方便,所以在几乎所有的广告、出版、软件公司,Photoshop都是首选的平面工具。
功能:是专门用来进行图像处理的软件。通过它可以对图像修饰、对图形进行编辑,以及对图像的色彩处理,另外,还有绘图和输出功能等。在实际生活和工作中,我们可以将数码照相机拍摄下来的照片进行编辑和修饰;也可以将现有的图形和照片,用扫描仪扫入计算机进行加工处理;还可以把摄像机摄入的内容转移到计算机上,然后用它实现对影像的润色。
总之,PhotoShop 可以使图像产生特技效果,如果和其它工具软件配合使用,还可以进行高质量的广告设计、美术创意和三维动画制作。由于PhotoShop功能强大,目前,正在被越来越多的图像编排领域、广告和形象设计领域以及婚纱影楼等领域广泛使用,是一个非常受欢迎的应用软件[5]。
3.1.2 系统环境的安装
本文所设计的站点需要在一个信息服务器中测试,而Windows XP在安装完成后并不带有IIS(Internet信息服务),所以必须重新安装才可以完成站点的设计和测试。并且想要Dreamweaver设计软件能够使用系统数据库进行测试,就必须对ODBC数据库进行配置,创建Web站点。
IIS的安装有如下步骤:
在添加或删除程序窗口左边点击“添加/删除Windows组建”
捎带片刻系统会启动Windows组建向导,在Internet信息服务(IIS)前面选勾,点击下一步:如图3.1

图3.1 添加IIS

系统安装成功,系统会自动在系统盘新建网站目录,默认目录为:C:\Inetpub\wwwroot
打开控制面板-性能和维护-管理工具-Internet 信息服务:如图3.2

图3.2 信息服务管理界面

在默认网站上点击右键-选择属性: 如图3.3

图3.3 网站属性

点击主目录:在本地路输入框后点击浏览可以更改网站所在文件位置,默认目录为:C:\Inetpub\wwwroot
在执行权限后面点击配置-调试-脚本错误信息,选中其中的向客户端发送文本错误信息、处理 URL 时服务器出错,请与系统管理员联系等选项。
点击文档:可以设置网站默认首页,删除iisstart.asp,添加index.asp和index.htm
点击目录安全性:点击编辑可以对服务器访问权限进行设置
把设计的网站系统复制到你选择的网站目录下,假设你选择的目录为为默认目录:C:\Inetpub\wwwroot。
Web站点创建过程如下:
Macromedia Dreamweaver MX 是一个站点创建和管理工具,使用它不仅可以创建单独的文档,还可以创建完整的 Web 站点。
  站点的定义:
  开始使用Dreamweaver MX 2004来创建数据库网站的第一件事,就是定义网站,必须告诉Dreamweaver MX 2004网站根目录在哪里,以及服务器位置、类型等相关信息。
启动Dreamweaver MX 2004后,从主菜单选择站点/管理站点/新建…定义一个新站点。在弹出菜单中的本地信息栏–站点名称中输入“lmzx”(这是本系统的主名字龙马咨询的缩写),本地根文件夹中选择“C:\inetpub\wwwroot\lmzx\”,其余各项保持不变。在“分类”处选择“测试服务器”,在服务器模型处选择“ASP VBScript”,“访问”处选择“本地/网络”,单击确定完成站点的定义。如图3.4所示。

图3.4 站点定义图示

  这时网站管理窗口中就可以看到网站根目录的中文件了。
以下是ODBC Access数据库的安装和设置:
打开系统控制面板,选择管理工具,打开其中的数据源(ODBC)。在系统DNS标签中选择添加Microsoft Access Drivers(*.mdb),如图3.5。

图3.5 创建数据源
确定后,在数据源一栏里填写LMZX(数据库的名称),如图3.6。

图3.6 ODBC安装

最后在数据库选择里边选取所创建的数据库文件。
3.1.3 开发语言
在企业级计算机环境中开发应用程序要面临许多特殊的挑战:多后台线程是标准,代码资源必须是可管理的、可维护的并且能被多代开发人员所重用。 即使有了这些限制,IT管理人员仍旧要面临巨大的压力去快速开发新项目。当这些工程发生在Web上时,脚本语言就经常是较好的选择。
目前在Internet上广泛使用的后台技术种类繁多,应用比较广泛的有CGI,ASP,PHP,JSP/JavaServlet,ColdFusion等。在此主要介绍了在本论文的研究过程中使用的几个语言,以及这几个语言的结构,特点等等。其中包括了产生动态数据网页的ASP、HTML语言、VBScript脚本语言以及数据库SQL语句。

3.2 关键技术
Vbscript 是重要的Web开发工具之一,是IIS、ASP、CGIi程序设计的基础,是Microsoft Activex和Com技术的重要组成部分。它利用和继承了Microsoft著名编程工具Visual Basic 已有的成果,致力于开发WWW页面的制作市场。作为一种脚本编程语言,Vbscript 已受到越来越多的页面设计人员的欢迎。
本节主要介绍了在系统设计过程中所应用到的VBScript语句,以及Request对象、Response对象和Session对象的使用方法。
3.2.1 VBScript语句
Vbscript是Html文档的一部分,它是依托Html而存在的,也就是说,必须把脚本代码放在Html文档中,否则将无法执行。
脚本代码以结束,其一般格式如下:

< ! - -
scripting code
- - >

格式中包括3个属性,其含义如下:
1、Language:指定脚本代码所用的脚本编写语言。不同的浏览器所用的脚本语言是不一样的,对于Internet Explorer浏览器来说,可以使用的脚本语言有两种,即Vbscript和Javascript语言。而对于Netscape浏览器来说,目前Vbscript还不能使用。
Html不能直接运行脚本语言程序,只能通过解释器执行,Language属性告诉Html调用哪一个解释器。在用户建立的Vbscript应用程序中,Html调用驻留在Internet Explorer中的Vbscript解释器。
2、Event:指定与该脚本部分相关联的事情。
3、For:指定与事件相关联的对象。
除了上面的属性外,脚本部分还含有注释标记< ! - - 和 - - > ,这个标记不是必需的。但一般应该加上。因为有了这个标记后,脚本代码就可以不被那些不支持脚本的浏览器显示。
3.2.2 Request和Response对象
利用Request对象可以在服务器端获得用户端通过Web页面提交的信息。在ASP中,利用Request对象收集用户信息,Response对象向用户端输出信息,可以实现用户端和服务器端的交互 。
Request对象的语法如下:
Request[.collection|property|method](variable)
Request的数据集合(Collections)集合保存用户端的信息,其使用语法如下:
Request[.collection](“variable”)
collection指定Request对象的数据集合。
Request对象的属性:
Request对象只提供一个TotalBytes属性,这是一个只读的属性,表示从客户端所接收数据的字节的长度,其语法如下:
字节长度=Request.TotalBytes
例:< %
Response.Write “从客户端接收的数据
字节大小为:" &Request.TotalBytes
%>
在制作整个系统的过程中,Request对象一直是被反复使用的语句,在第四章的各功能模块设计中,Request对象被用于收集登录用户的信息,表头信息,表单参数等,也是实现新闻录入,用户留言,投票数量获取的重要语句。
3.2.2 Response对象
Response对象用于动态响应客户端请求,并将动态生成的响应结果以HTML超文本的格式输出到客户端浏览器中。
Response的使用语法为:Response.collection|property|method
其中collection表示Response对象的集合,property表示Response对象的属性,method表示Response对象的方法。三个参数只能选择其中的一个。属性见表3.1

表3.1 Response对象的属性

Response对象只有Cookies一个数据集合,Cookies数据集合是负责取得记录在客户端的Cookies数据,允许用户检索在HTTP请求中发送的Cookies的值。[4]
Response对象主要用于显示记录集中的数据,当用户查询数据,提交查询条件之后,数据库根据要求产生一个离线数据集,然后由Response对象从数据集中获取数据,按照一定格式显示在网页上,最终形成我们所要看到的有用的信息。在第四章中将使用该语句完成系统显示数据库记录的功能模块。
3.2.3 Session对象的使用
在系统设计过程中使用 Session 对象存储特定用户会话所需的信息。这样,当用户在应用程序的 Web 页之间跳转时,存储在 Session 对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。
当用户请求来自应用程序的 Web 页时,如果该用户还没有会话,则 Web 服务器将自动创建一个 Session 对象。当会话过期或被放弃后,服务器将终止该会话。
Session 对象最常见的一个用法就是存储用户的登录信息或者用户设置。例如,如果用户指明不喜欢查看图形,就可以将该信息存储在 Session 对象中。
3.3 WEB数据库的操作
本节主要介绍了数据库访问流程,如何连接数据库,并给出了ASP中对数据库进行添加、删除、查询和修改等常用操作方法和技巧,以及相应的关键语句。本节所介绍的内容也是系统设计的重点之一,通过对WEB数据库的连接和访问,来实现用户留言信息,新闻信息的录入,投票信息的统计这三大模块。其中投票统计是由数据库SQL语句来完成。
3.3.1 数据库访问流程
进行数据源操作的步骤如下:
1) 创建与数据库的连接。可以使用ADO中的Connection对象或者RecrodSet对象的相关属性和方法。
2) 设定要操作数据库的命令。可以使用ADO中的Connection对象、Command对象或RecrodSet对象的相关方法和属性来完成
3) 执行命令。可以使用ADO中的ADO中的Connection对象、Command对象或RecrodSet对象的相关方法。
4) 得到数据后,就可以执行对数据的浏览、增加、删除和修改等操作。这一步通常使用RecrodSet对象的有关方法和属性完成
关闭数据库,清除有关对象[6]。
ADO存取数据源数据的一般流程,如图3.7所示:

图3.7 ADO存取数据源的流程

3.3.2 ASP对数据库的连接
ASP对各种数据库都有不同地连接方法,这里介绍了ASP对Access数据库的连接方法以及相应的代码:
MS Access数据库连接
用DSN连接并且没有用户名和密码:
< %
set conn = Server.CreateObject("ADODB.Connection")
conn.open "YourDSNName"
%>

用DSN连接并且有用户名和密码:
< %
set conn = Server.CreateObject("ADODB.Connection")
conn.open "YourDSNName","username","password"
%>[7]

因为本文系统所使用的系统数据库为Microsoft公司的Access关系型数据库,所以对其他的数据库连接方法不做讨论,主要使用asp对Access数据库的连接代码,并且不需要用户名和密码。在上述的Access数据库的连接代码中,YourDSNName的具体内容应该为provider=microsoft.jet.oledb. 4.0;” & “data source = ” & server .mappath(“../db/*.mdb”)其中的(“../db/*.mdb”)为Access数据库的相对路径与数据库名称,一定要保证其名称和相对路径的正确,任何拼写错误与输入错误将导致数据库的连接失败。
3.3.3 ASP对数据库的读取、添加、删除和修改
ASP中对数据库中数据的读取以及记录指针位置的控制包括如下几个语句:
rs.(“字段名称”) 读取数据库表中某字段的信息
rs.movenext 将记录指针从当前的位置向下移一行
rs.moveprevious 将记录指针从当前的位置向上移一行
rs.movefirst 将记录指针移到数据表第一行
rs.movelast 将记录指针移到数据表最后一行
rs.absoluteposition=N 将记录指针移到数据表第N行
rs.absolutepage=N 将记录指针移到第N页的第一行
rs.pagesize=N 设置每页为N条记录
rs.pagecount 根据 pagesize 的设置返回总页数
rs.recordcount 返回记录总数
rs.bof 返回记录指针是否超出数据表首端,true表示是,false为否
rs.eof 返回记录指针是否超出数据表末端,true表示是,false为否
在对数据库记录中的数据选择并读取之后,数据信息将由前面所介绍的Respon
se对象来完成数据的显示,例如:response.write(rs(“name”)) 的作用为显示数据表中的name字段。具体的表的选择将在数据库连接过程中完成。
ASP对数据库记录的添加、删除与更新语句如下:
rs.delete 删除当前记录,但记录指针不会向下移动
rs.addnew 添加记录到数据表末端
rs.update 更新数据表记录
3.3.4 如何关闭数据库
ASP操作数据库时,如果全部页面只有打开语句,而没有关闭语句的话,会导致数据连接数直线上升,最后倒致数据库崩溃,系统瘫痪。为了避免这一情况的出现,所以在数据读取与操作过程完成之后,在页的末尾或者操作代码之后,必须要有关闭数据库的语句。
以下是ASP关闭数据库的语句:
rs.close
conn.close
set rs=nothing
set conn=nothing[8]
3.5 小结
本章针对基于ASP技术的WEB数据库应用程序开发与设计,介绍了应用程序的开发环境以及开发语言,并就开发所需要的各种应用软件,简单地介绍了一下软件的特点和环境的安装步骤。其中介绍的几种软件是目前最为流行的网络站点开发软件,比如使用最为广泛的Dreamveaver网页制作软件,功能强大的图象处理软件Photoshop。在语言介绍部分,不仅阐述个各种语言的概念,同时分析了各个语言各有什么特点,能够完成什么功能等。
在本章的下半部分绍了VBScript脚本语言,VBScript表达式中各种不同的类型及运算方法,并简单地说明了VBScript中的控制语句。在对Request和Response对象的介绍过程中,给出了ASP从客户端接收数据,从服务器端读取数据的关键代码。这些代码将在第四章WEB应用程序的具体设计中被反复地使用,以便来实现各个功能模块所要达到的目的,完成各系统的所要承担的功能。
在次章节中,WEB数据库的操作为本文研究的重点,是整个系统设计的核心部分。依靠对数据库的连接及操作,完成整个系统的功能,包括新闻的录入和读取;留言信息的添加、读取、修改与删除;投票数量统计及显示等。为后面系统的设计与实现提供了有力的技术支持。

第四章 系统总体结构设计
根据本论文的研究内容和研究目的,并根据系统功能的设计,把系统定位在一个咨询公司应用网站的项目上。
在这个网站设计中,根据第二章的需求分析设计了四大系统模块:
管理系统为公司网站管理员提供一个能够管理网站信息的后台,使得管理员不必为了每次维护网站数据库而重新下载后,在本地数据库操作软件上修改后上传。因为随着公司网站使用时间的增加,数据库内的信息也会随着不断地增长,如果下载数据库将会消耗很长的时间,同时也会带来一定的麻烦,增加管理员的工作量。系统将提供一个后台入口,管理员直接在浏览器中就可以维护WEB数据库内的信息。
新闻系统的设计应该具有公司新闻的展示,也包括公司的各种信息,如公司文化特点、公司提供何种服务,让访问者对这个咨询公司能有一定地了解,并能熟悉公司提供的业务。新闻系统中,新闻的录入和修改功能将整合在管理员后台操作页面中。
留言系统的设计定位在公司解决访问者所提出的问题上,如果用户对公司有什么疑惑或者问题,能够在此留言,然后由公司相关人员予以解答,在网络上提供了一个公司与用户互动的空间。留言的回复,修改与删除在网络管理员通过权限验证之后,在后台管理页面上操作。
投票系统的设计主要是为了收集用户对公司、对公司网站所提供的信息等方面的评价,方便公司了解用户对公司,对公司提供的信息有怎么样的要求,以便做出相应的措施,完成公司的业务。投票数量的统计将在数据库中直接完成,通过对应的代码获得最终的投票结果,第五章将会详细地介绍投票数量统计的方法。
4.1 总体框架结构及流程
本文所要研究的系统总体分为三个:
一、 新闻发布系统:分显示模块和管理模块;
二、 留言系统:分显示模块和管理模块;
三、 投票系统:分用户投票模块和显示模块;
本文所研究开发的系统虽然分为三个系统,但却是一个整体的系统。三个分系统之间的管理模块是相互联系在一起的,并且在页面上通过超链接可以跳转到任意一个系统。当整合为一个系统时其功能模块大致流程如图4.1所示。(见下一页)

图4.1 功能模块流程图

4.2 新闻发布系统
在本论文的研究目的中,一个新闻发布系统所能实现的最基本的功能有两个部分:
1、新闻发布
2、新闻管理
由上面两个部分,还需要在管理模块中加入新闻管理部分,并且在管理员登录的时候验证身份,判断是不是管理员。如果是,则能够进入后台管理页面。
新闻发布系统的流程图如4.2

图4.2 新闻发布系统流程图
4.3 留言系统
留言系统的流程如图4.3所示

图4.3 留言系统流程图
留言系统的功能包括:访问者留言,头像的选择;站点管理员回复留言。并且当访问者留言成功时能够跳转到留言成功的提示页面。在留言之后,管理员能够在留言板的页面直接跳到留言管理页面,方便管理员直观地管理。
留言系统包括留言显示页面,留言成功提示页面;并且为了方便用户留言,把留言提交的表单整合到了显示页面一起。
4.4 投票系统
投票系统的功能包括了用户投票,投票统计和投票结果显示。票数统计由数据库完成,关键语句将在第五章中详细介绍。由于投票票数的收集是一个长期的过程,所有投票系统并不需要管理员去管理,而是由投票系统单独完成投票的收集,统计和显示工作。从而让投票系统成为一个单独的系统。
投票系统的流程如图4.4

图4.4 投票系统流程

4.5 小结
本章节根据系统的需求分析,设计了整个系统功能设计的流程,并且根据不同的系统,详细分析了各个系统的功能流程,为下一章系统的详细设计做了铺垫。如果说系统分析是整个系统的灵魂,那么系统的功能流程的设计就是这个系统的骨架,是系统设计的核心部分。
在下一章中,我们将就着系统的流程,开始整个系统的详细设计。

第五章 系统的详细设计
这一章将着重说明本文所要求的系统的详细设计过程,从整体页面版式的设计、主页面风格的设计到具体的功能页面的设计,以及数据库的设计等等。
5.1 整体版式及风格的设计
网站作为出版物的一种,同其他出版物如报纸,杂志等在设计上有许多共同之处,也要遵循一些设计的基本原则,不同之处在于网站的“非所见即所得”特性和交互性。因此,熟悉一些设计的基本原则,再对网站的特殊性作一些考虑,便不难设计出美观大方的页面来。如果有美术设计基础,对网站页面的设计会很有帮助。
一个成熟的网站页面的设计应该包含如下原则:
1.简洁
设计并不再现具体的物象和特征,它要表达的是一定的意图和要求,在适当的环境里为人们所理解和接受。它与绘图有内在联系,但又不同于绘画,它以满足人们的实用和需求为目标,因而它比绘画更单纯,清晰和精确。页面设计属于设计的一种,同样要求简练,准确。
2.一致性
一致性是表现一个网站独特风格的重要手段之一。
要保持一致性,可以从页面的排版下手,各个页面使用相同的页边距,文本,图形之间保持相同的间距;主要图形,标题或符号旁边留下相同的空白;如果在第一页的顶部放置了公司标志,那么在其他各页面都放上这一标志;如果使用图标导航,则各个页面应当使用相同的图标。
一致性还包括:页面中的每个元素与整个页面以及站点的色彩和风格上的一致性。所有的图标都应当彩相同的设计风格,比如全部采用图象的线条剪辑画或全部使用写实的照片等。
3.对比度
使用对比是强调突出某些内容的最有效的办法之一。好的对比度使内容更易于辨认和接受。实现对比的方法很多,最常用的是使用颜色的对比,比如,内容提要和正文使用不同颜色的字体,内容提要使用蓝色,而正文采用黑色;也可以使用大的标题,也即是面积上的对比;还可以使用图像现对比,题头的图像明确的向浏览者传达本页的主题,这里同样需要注意的是链接的色彩,在设计页面时我们常常会只注意到未被访问的链接的色彩,而容易忽视访问过的链接色彩将使得链接的文字难地辨认。[10]
本站点的设计才用蓝色为主要色调,并以橙色,红色作为点睛色。整体的色彩柔和,并且以醒目的色调突出关键栏目,让访问者能很快找到自己感兴趣的内容。
5.1.1 主页面的设计
主页面的设计根据各自不同的内容分为5个大的版块:
在最页面最顶端的是公司的站点广告部分,给出了公司的标志,公司名称。采用图象处理软件Photoshop来制作,当然,也可以用FLASH制作软件来制作动态的广告效果,因为页面美工的设计不作为本论文研究的重点,所以只采用简单的静态图象来完成置顶广告的设计,点击广告条可以链接到站点的首页,其具体的设计过程不作讨论。
设计最终成品如下图5.1所示

图5.1 广告条

这里重点介绍主页面上的功能版块的设计,在广告条之下是网站导航条,采用超链接,可以进入站点的二级页面,使访问者获取更多详细的信息。导航条的内容包括:关于我们、成功案例、龙马快报、联系我们、诚邀加盟、留言。如图5.2

关于我们
成功案例
龙马快报
联系我们
诚邀加盟
留言

图5.2 导航条

在主页面的中间为快速信息通道版块,主要功能是显示更新日期最新的新闻、公司信息、公司动态等内容,根据内容的不用划分出不同的栏目,用醒目的橙色加以提点。在栏目的中间还插放了一个小型的广告,在保证美观的同时也为公司作一定的宣传。
在信息快速通道版块,并不显示信息的主要内容,而只显示信息的标题内容。如新闻快速版块中,快速通道只显示新闻的标题。但是如果碰到没有标题的情况下,在显示的时候就只显示信息主题的第一句话,如果长度过长,那么就截取第一句话前边适当的长度加以显示。
页面的整体设计如图5.3所示:(见下一页)

图5.3 整体页面的设计
5.1.2 二级页面的设计
二级页面的主要功能是为各个分单元提供更多的信息。比如在导航条中的第一个单元:关于我们中,二级页面将展示有关公司的相应信息,包括公司特点,公司概况等等。同时二级页面有着与首页相同的广告条和导航条,方便访问者能够很快地到达其他页面而不需要回到首页之后再转入其他栏目的显示页面。
以关于我们这一栏为例,二级页面的设计如下图5.4所示:

图5.4 二级页面
5.2 管理员模块
管理员模块功能包括管理员登录界面和管理员后台管理页面。
管理员登录页面如下图5.5所示:

图5.5 登录界面

管理员登录验证关键代码如下:
FROM lmzxpass WHERE username=’” & Replace(MM_valUsername,”‘”,”””) &”‘ AND password=’” & Replace(Request.Form(“password”)[11]

验证成功后将跳转到guali.asp(管理页面),页面的简单设计如图5.6 所示

图5.6 管理界面
5.3 新闻发布系统
在本论文的设计中,一个新闻发布系统所能实现的最基本的功能有:
1、一般在网站的首页有新闻的标题列表
2、通过显示的新闻标题可以看到新闻的内容
3、有一个管理员登陆的入口
4、添加新闻的页面
5、修改并更新新闻的页面
6、此外还有新闻修改和删除成功的页面
由上原则中,首页将显示最新的新闻咨询和公司资料,新闻管理将整合在总的管理页面中,新闻的详细内容将在二级页面中得到展示。
5.3.1 新闻系统数据表的设计
新闻数据表的字段包括如下:
Num 主键值,控制添加顺序,以便显示最新添加的新闻;数据类型为自动编号;
Classification 新闻分类;数据类型为文本;
Newtitle 新闻标题;数据类型为文本;
Newtime 新闻录入时间;数据类型为日期/时间,并设置默认值为now()语句自动添加日期;
newContent 新闻内容;数据类型为备注;
具体数据表的设计如下图5.7 所示:

图5.7 新闻数据表
5.3.2 新闻显示模块
在数据库连接完之后,首先要做的是为先前做的新闻展示页面建立一个新闻标题显示的模块,并为此建立一个数据集,以首页的公司动态栏目为例如图5.8 ;

图5.8新闻记录集设置
连接选择conn,表格选项中选择lmzxnews,因为是针对公司动态栏目而设,所以在筛选一栏选择Classification,并且值验证为公司动态,在排序选择数据表的主键,选择升序。
具体的SQL数据库代码如下:
SELECT *
FROM lmzxnews
WHERE Classification = ‘MMColParam’
ORDER BY num ASC
为了防止新闻信息过长而导致把网格顶出影响美观,在这里设置一个函数来控制显示的字数不超过规定值:
< % if len(trim(rs("newtitle")))>15
then response.Write left(trim(rs(“newtitle”)),15)&”…” else %>
< %=rs("title")%>
< % end if %>
其中newtitle为数据表中新闻标题的数值。rs(“newtitle”)获得数值用if语句判断字数是否超过控制值15,如果超过则不显示后边的内容而以“…”取代。response.Write left语句控制显示从标题内容的左方开始显示。
在新闻详细内容显示模块,我们同样建立数据集,在新闻显示区域绑定newContent,在新闻标题中绑定newtitle,在时间显示区域绑定,newtime;如图5.9所示:

图5.9 新闻展示数据绑定

其中新闻标题设置为居中,新闻发布时间在第二行设置为右对齐,新闻内容显示格式为默认不改变。
这里要注意的是,因为只显示一条新闻,所以记录集里的内容需要控制,可以从URL传递参数中获取变量,以便访问者能够正确地由标题超链接阅读与标题相对应的新闻。
5.3.3 新闻管理模块
管理模块分为四个部分:一个部分是新闻的列表的展示,方便管理员能够清楚地选择想要管理的新闻内容;第二部分是对已有新闻的编辑和修改;第三个部分是对新闻的删除;第四个部分是对新闻的添加;
在第一部分中,因为新闻分为不同的类别,所以需要先建立一个分类管理页面,通过这个页面来选择想要修改新闻内容。这与新闻展示页面中的设计与实现过程相同,所以在这里不再重复。
第二部分,新闻的编辑和修改,首先要建立一个新闻修改页面。设置记录集,为了能够正确修改选择到的新闻,记录集需要通过URL参数来筛选正确的记录。如图5.10:

图5.10 设置新闻修改记录集

插入新闻修改表单,在新闻栏目这一项中,因为新闻栏目是固定不变的(这里对动态新闻栏目不做要求),所以采用下拉列表框直接选取想要修改的新闻栏目。添加方法如图5.11

图5.11 设置下拉列表值

完成绑定后结果如下图5.12

图5.12 新闻内容更新绑定

第三部分是对新闻的删除,执行删除的关键代码如下:
Set MM_editCmd = Server.CreateObject(“ADODB.Command”)
MM_editCmd.ActiveConnection = MM_editConnection
MM_editCmd.CommandText = MM_editQuery
MM_editCmd.Execute
MM_editCmd.ActiveConnection.Close
第四部分是对新闻的录入:这里就不需要对数据记录进行筛选,在记录集设置里边只要选择正确的数据表就可以了。更新界面绑定后如下图5.13

图5.13 新闻发布

5.4 留言系统
留言系统包括留言显示页面,留言成功提示页面;并且为了方便用户留言,把留言页面整合到了显示页面一起。
5.4.1留言系统数据表的设计
留言系统数据表的名字为liuyan;
留言系统的数据表包括如下字段:
Num 设置成为主键,数据类型为自动编号;
Liuyanname 留言人姓名,数据类型为文本;
Liuyanten 留言内容,数据类型为备注;
Liuyantime 留言时间,数据类型为日期/时间;
Touxiang 留言人头像,数据类型为文本;设置默认值为default;
Huifu 管理员回复内容,数据类型为备注;
Liuyantitle 留言标题,数据类型为文本;
具体的设计如下图5.14所示:

图5.14 留言数据表
5.4.2 留言显示与用户留言模块
首先在留言显示页面根据要求做好页面的设计:把需要显示的动态数据先用文字表示出来,并且留下空间。如图5.15所示:(见下一页)

图5.15 留言显示页面的设计

其中,留言提交表单包括头像的单选按钮、留言题目文本条、留言内容文本框、留言人姓名文本条、表单重置按钮与表单提交按钮。
设置表单头像选择的单选按钮名称全部为touxiang;
留言题目文本条的名字为liuyantitle;
留言内容文本框的名字为liuyanten;
留言人姓名文本条名字为liuyanname;
这样起名字主要是为了能够与数据表中的字段相对应,为绑定数据字段提供方便。
做好这些之后,开始建立数据集,数据集建立的代码如下:
< %
Dim Recordset1
Dim Recordset1_numRows
Set Recordset1 = Server.CreateObject("ADODB.Recordset")
Recordset1.ActiveConnection = MM_conn_STRING
Recordset1.Source = "SELECT * FROM liuyan"
Recordset1.CursorType = 0
Recordset1.CursorLocation = 2
Recordset1.LockType = 1
Recordset1.Open()
Recordset1_numRows = 0
%>

在显示部分选择刚才标注的字段,如图5.14中留言人姓名字段。
各显示部分的绑定代码如下:
留言人姓名:< %=(Recordset1.Fields.Item("liuyanname").Value)%>;
留言标题:< %=(Recordset1.Fields.Item("liuyantitle").Value)%>;
留言时间:< %=(Recordset1.Fields.Item("liuyantime").Value)%>;
留言头像: )%/>.gif” width=”100″ height=”100″>;
留言内容:< %=(Recordset1.Fields.Item("liuyanten").Value)%>;
回复内容:< %=(Recordset1.Fields.Item("huifu").Value)%>

留言提交表单的数据插入代码见附录。
留言显示页面中的留言的修改,删除和回复链接只有管理员可以点击进入,如果Session验证失败将跳到登录失败页面,如果验证成功则跳转到后台管理页面。Session的验证在前边章节中已经作了详细的说明。
5.4.3 留言的管理
留言回复页面设计见图5.16 所示:

图5.16 留言回复页面设计
在管理页面中,留言管理页面将连接到留言显示页面,再由显示页面中的管理员功能栏进行留言的删除和回复;
数据表更新的关键代码如下:

Recordset1.Source = “SELECT * FROM liuyan WHERE num = ” + Replace(
Recordset1__MMColParam, “‘”, “””) + “”
If (CStr(Request(“MM_update”)) = “form1″ And CStr(Request(“MM_reco
rdId”)) <> “”)
Then
MM_editConnection = MM_conn_STRING
MM_editTable = “liuyan”
MM_editColumn = “num”
MM_recordId = “” + Request.Form(“MM_recordId”) + “”
MM_editRedirectUrl = “liuyan.asp”
MM_fieldsStr = “huifu|value”
MM_columnsStr = “huifu|’,none,””

一个是选择所要更新的表的代码,一个是更新数据表代码。
留言删除关键代码如下:

if (CStr(Request(“MM_delete”)) = “form1″ And CStr(Request(“MM_recor
dId”)) <> “”)
Then
MM_editConnection = MM_conn_STRING
MM_editTable = “liuyan”
MM_editColumn = “num”
MM_recordId = “” + Request.Form(“MM_recordId”) + “”
MM_editRedirectUrl = “liuyan.asp”
5.5投票系统
投票系统的主要功能是让公司能够收集访问者对本站点的评价,以便作出及时的修改,满足访问者的需求。制作投票系统,首先需要了解投票系统的机制、投票系统需要建立的各个网页文件以及制作这些文件的步骤!主要制作技术有:投票系统的制作,单选按钮的命名及value属性的设置技巧,单选按钮的值的存储技巧,SQL中计算字段的使用,比例图示的设计技巧及动态数据格式的格式设置等等。
5.5.1 功能的设计
投票点将设在站点的首页面上,投票信息的统计将采用彩色条的形式直观地反映给访问者,在主页上设置三个评判登记,分别是好、一般、差三个选项。投票之后将跳出感谢对话框,然后显示票数。
5.5.2 投票系统数据表的设计
投票数据字段分为3个,分别是hao、yiban、cha,数据类型选择为数字,并且输入一定数值,以便测试程序。如下图5.17 所示。

图5.17 投票数据表
5.5.3 投票系统页面的设计
实际上,投票者只需要做出选择就可以了,不需要添加任何行为。对投票页仅需设置表单及窗体对象的属性即可。
  1.先制作如下的静态页面5.18

图5.18 投票点
  注意,页面中的表格一定是嵌套在一个form(表单)里面的。
  2.form设置
将光标移到表单区域内,单击窗口下面的form标签来选中form。对form属性进行如下图5.19设置

图5.19 FORM表单的设置

  单击表格右列第一行的单选按钮属性设置form中的单选按钮的属性。在其属性面板中,在单选按钮文本框中输入radiobutton,这样就设置了该单选按钮的name的属性为radiobutton,在选定值文本框中输入hao,这样就设置了该单选按钮的value属性值。如图5.20

图5.20 单选按钮的Value值设置

输入的Value属性值与数据库中的表toupiao的一个字段名相同,而表toupiao的hao字段保存的是选择[帮助很大]项的投票者总数,在按下投票按钮提交后,将hao作为单选按钮的值传出,与数据库中的字段名联系起来!
设置属性代码:
表格中下面的2个单选按钮的name属性也设为radiobutton,这样设置可使3个单选按钮的name属性相同,这样投票者就只能选择其中的一项。在[选定值]文本框中分别输入yiban、cha,与表toupiao中的另外二个字段相同
5.5.4 投票结果显示模块
制作页面:如图5.21

图5.21 投票结果查看

  2.定义记录集
打开数据[绑定]面板,单击[+]按钮,选择[记录集(查询)]菜单项, 图5.22

图5.22 记录集设置

  如果出现简单[记录集]对话框,则应单击[高级。。。]按钮转到高级记录集对话框!
  在名称文本框中输入Recordset1,在连接下拉列表中选择conn,在SQL列表框中书写“SELECT hao,yiban,cha, (hao+yiban+cha) as VTotal, (hao/VTotal) as GoodPercent, (yiban/VTotal) as MidpPercent, (cha/VTotal) as BadPercent
FROM toupiao”如图5.23:(见下一页)

图5.23 数据集的设置

  3.数据绑定
将光标放在“有 人参加了投票”之间,在绑定面板中选中hao字段,然后单击“插入”这样就把投票人的总数动态的加入到页面中!用同样的方法将其他字段绑定到相应位置,如图4.24:

图5.24 绑定数据
最后完成的页面如图5.25所示:

图5.25 数据帮定后结果图

4.制作表格的动态属性
制作图示可采用表格嵌套和表格的动态属性来完成。如果在表格中每一行的第2列的部分嵌套一个只有一行一列的小表格,将这个小表格的背景色设置为红色,将小表格的宽度度量单位设置为百分比(相对于容纳他的单元格宽度也会根据投票者的数量的变化而变化,这样就达到了制作图示的目的。灰色的部分可以看做是投票的总人数,红色的部分可以看做是各选项的人数。
  制作投票[帮助很大]项人数占总人数的比例图示。把光标放在第一行的第2列上,插入一个表格。如图5.26

图5.26 表格插入
把表格的背景设置为红色 .选中小表格,选择[窗口]-[标签检查器],打开[标签]面板,选择[属性].找到[常规]-width属性,选中他,这时在他旁边会出现一个闪电按钮。单击闪电按钮,会弹出一个动态数据窗口。如图5.27:

图5.27 动态投票显示条设置

在[域]列表框的记录集中选择Goodpercent,然后在格式下拉列表中选择[百分比-2个小数位]项。单击确定如图5.28。

图5.28 显示条长度数据绑定

重复上面的步骤,分别在第二、三行插入一个小表格。只是在设置动态属性时,须在动态数据窗口的列表框的记录集中选择midpercent。 badpercent项
好了。
更新页index.asp
我们在投票页中设置form的动作属性时,已经设置了相应动作的文件
1.新建一个动态页asp VBScript文件
  在这里可以作一个转到ganxietoupiao.asp的链接!如图5.29:

图5.29 感谢访问者投票页面

  2. 绑定-命令(预存过程)
  由于投票系统主要记录各个选项的投票人数,所以这一步并不是对数据库进行读操作或者向数据库插入一条记录,而是修改数据库的表toupiao中某一字段的值。确切的说,是对表toupiao某一字段的数据进行累加,所以必须选择[命令(预存过程)]菜单项用简单的SQL语言进行定制!
单击绑定面板的“+”选择“命令(预存过程)”,设置如图5.30

图5.30 设置投票数量统计

在index.asp页中设值但选按钮的属性时,已将3个单选按钮Value属性的值分别设置为表toupiao中的3个字段名,所以Request.form2(“radiobutton”)值一定是表toupiao的一个字段名。所以这条SQL语句的意思就是使某一字段加1,即在相应的字段中记下了一个投票者!
  *注意:实际操作时,一定要把[SQL]中的where去掉*[12]
  好了,目前为止,这个投票系统的文件就全部作好了!
5.6 小结
在这一章节中,详细地讲述了一个WEB数据库实际应用下的系统设计与实现。在完成了此次的设计过程后,形成的程序可以作为实际的应用;不过在上传到网络服务器之前,还必须对网站的安全性加强。(网络安全涉及范围较广,在此不做阐述)
这一章节,就网站留言系统,新闻发布系统,投票系统的具体设计与制作做了详细的讲解。这三个系统并不是自成一家,而是由超链接紧密地结合在一起,访问者通过任何页面,可以到达网站的任一内容版块中。也因为此功能,所以在页面设计过程中给设计带来了很大的麻烦,因为当你改动某一页面的名称或者连接属性时,将要把所有能够链接到这一页面的超级链接修改一遍。在从前,不少站点设计者为此头疼,而如今,Dreamweaver可以方便地修改所有的连接,给设计过程减少了很多的工作量。

第六章 结论与展望

通过这段时间的毕业设计,对整个基于ASP技术的WEB数据库应用程序开发有了一定的了解。并且学会了ASP服务器的安装和使用、熟练掌握HTTP和HTML语言、熟练掌握了VBScript脚本语言的编辑与应用、熟练掌握数据库知识、熟悉ADO和ODBC、熟悉SQL语言。通过对ASP技术的研究,构建了WEB数据库应用程序的模型以及算法,并将其应用在实际的网络站点开发中。本次设计以Window XP作为开发环境,使用Microsoft Access、Dreamveaver、Photoshop开发工具,在有ASP数据库操作源代码的基础上二次开发,结合了本论文中所构建的网络站点应用程序的模型,完成了一个网络站点所应该具有的三大基本功能的设计。
6.1 实践结果分析
本论文主要完成了以ASP技术为基础的Web数据库应用程序架构设计与程序的实现。完成后的系统分成三个部分,包括新闻发布系统,留言系统和投票系统。论文针对三个系统各自的功能,把每个系统中用户信息控制单元分离出来,作为整个系统开发设计中的一个子系统。并且,只有当通过用户信息的验证之后,才能够使用其他三个单元的管理功能。目的是为了防止普通用户能够修改或删除数据库里的信息,也为管理员管理整个网站提供了方便的后台。管理员可以不必使用数据库软件而直接在Web数据库应用程序的后台直接操作,避免了当使用时间过长之后数据库里信息量过大而导致的下载上传的不便。
在完成了论文所要研究的内容之后,考虑的实际应用的需要,还添加了站内搜索功能,方便普通用户检索数据库里有用的信息,而不必一页一页地翻找。为用户阅读新闻提供快速通道,满足了实际应用的要求。
完成系统的设计之后,在本地虚拟服务器上,顺利地完成了整个系统的功能的测试。至此之后达到了本论文的研究目的,让本论文所要开发的系统成为了一个真正能应用于实际企业需要的网站。
6.2 下一步工作展望
基于ASP技术的WEB数据库开发包含了许多的方面的内容,不仅仅只有新闻发布系统,留言系统,投票系统,本论文所做的工作是非常有限的。虽然在当前信息科技相对比较成熟的大环境下,ASP技术已经得到了成熟的发展,但还是有很多的不足需要改进。在当前网络得到广泛使用的前提下,越来越多的关于网络的安全问题不断地浮出水面,比如如何合理地使用 Session 对象等等。当与忙的站点一起使用时,Session 有几个缺点。“忙”的意思一般是指一秒钟要求几百页面或成千上万同时用户的站点。这个技巧对于必须水平扩展的站点 – 即,那些利用多台服务器以处理负载或实现容错的站点 – 甚至更重要。对于较小的站点,诸如 Intranet 站点,要想实现 Session 带来的方便,必然增大系统开销。简言之,ASP 自动为每个访问 Web 服务器的用户创建一个 Session。每个 Session 大约需要 10 KB 的内存开销(最主要的是数据存储在 Session 中),这就使所有的请求都减慢。在配置的超时时段(通常是 20 分钟)结束以前,Session 一直保留有效。Session 的最大的问题不是性能,而是可扩展性。根据这些不足,可以做如下的改进:
1、如果您不使用 Session,一定要将它们关闭。可以通过 Internet Services Manager,为应用程序执行此操作。
2、在设计关键任务应用程序时,必须实现“粘性会话”,或干脆避免使用 Session,以及任何其它将用户状态存储在单个 Web 服务器上的状态管理技术。

参考文献

[1] Sunmingdong .APS简介和五大内置对象[EB/OL]. http://www.myfaq.com.cn
/2001-11-08/41 54.html,2001-11-08
[2]张景峰主编.ASP程序设计及应用 [M] .北京:中国水利水电出版社,2005.3
[3]彭万波等.ASP开发基础与范例[M].北京:电子工业出版社,2001
[4]王恩波.网络数据库实用教程—SQL Server 2000[M]. 北京:中国水利水电出版社,2002
[5]祁连山.Photoshop CS2中文版从头学[EB/OL] 中国教程网,2006-1-2 15
[6]李禹生等.数据库应用技术—Access及其应用系统开发. 北京:中国水利水电出版社,2002
[7] 王国荣. ASP网页制作教程. [M]北京:人民邮电出版社,2004
[8]姜晓明.VBScript编程指南[M].北京:中国石化出版社,2000
[9] 郑杰等人.实用软件工程[M].北京:清华大学出版社,1999
[10]来自网络.网站页面设计原则[EB/OL].http://www.jianzhan800.com/guide
/design/g–uide_621.html
[11] 张景峰.脚本语言与动态网页设计[M].北京:中国水利水电出版社,2004
[12] 王永生.Dreamweaver MX网页设计实用教程[M].上海:同济大学出版社,2002

电话业务综合管理系统设计

Posted by 天际的荒草 | Posted in Docs | 文档 | Posted on 18-09-2009

标签:, , ,

0

摘 要

在网络应用日益普及的今天,网络办公是企事业单位提高办公效率和机构精简改革趋势的一个要求。同时电信跨越式发展战略要求电信部门的服务质量不断地提高。电话业务综合管理系统,不仅是影响电信部门办公效率和作业成本的重要环节,而且也是影响电信服务水平的主要内容。
本系统以计算机技术、数据库技术和网络技术为基础,采用客户端基于浏览器/服务器模式,后台管理基于客户/服务器模式的体系结构,实现了电话业务管理、查询、维护处理等功能,解决电话业务的集中管理、快速数据处理以及远程数据共享等功能。实现了用户可以随时查询,处理相关的电话业务信息的全方位信息资源共享。电话业务综合管理系统采用Microsoft ASP 作为开发工具,后台数据库采用Microsoft Access数据库设计,利用ADO 数据库访问技术实现对数据库的各种管理操作. 本论文的研究为系统开发提供了可靠的理论基础与有效的技术指导,电话业务综合管理系统最终实现了设计要求与目标。

关键词:电话业务,ASP,数据库,B/S和C/S

ABSTRACT

Today along with the increasing popularity of network applications, the Network Office becomes a requirement for improving the office efficiency and the reformation trend of streamlining organs in the enterprise and the government. Meanwhile the telecommunications leapfrog development strategy calls for the continual improvement of the quality of service in telecommunications sector. The telephone management system, is not only an important tache for affecting the office efficiency and operational costs of the telecommunications sector, but also the main content for affecting the level of its services.
Based on the the computer technology, database technology and network technology, using a systematic framework in which the client is based on browser/server model and the background is based on client/server model, this system carries out the functions of telephone business management, query, maintenance, etc., and solves the telephone centralized management, fast data processing and remote data sharing functions and so on. Users can check and handle all-sided information resources sharing of the telephone business at the any time. Telephone management system uses Microsoft ASP as a development tool and its background database is designed by Microsoft Access database and it can achieve various database management operations with the ADO database access technology. The study of this thesis offers the reliable theoretical basis and the effective technical guidance for the development of this system. The integrated management systems of telephone business ultimately achieve the designing requirements and objectives.

Key words: telephone business, ASP, database, B/S and C/S

目 录

第一章 绪 论 1
1.1 本课题研究的主要内容 1
1.2 本课题研究的意义 1
1.3 电话业务综合管理系统发展状况 2
1.3.1 管理信息系统的发展状况 2
1.3.2 我国电话业务综合管理系统建设及发展现状 3
1.4 本文的研究内容 4
第二章 开发工具的选用及介绍 6
2.1 系统的设计思想 6
2.2 ASP技术 7
2.2.1 ASP技术与其它技术的比较 7
2.2.2 ASP概述 9
2.3 数据库技术的发展与数据库工具的选择 11
2.3.1 数据库技术的发展 11
2.3.2 数据库工具的选择 13
2.4 数据库系统体系结构的选择 14
2.4.1 C/S体系结构 14
2.4.2 B/S体系结构 15
第三章 电话业务综合管理系统的实现 17
3.1 系统结构设计 17
3.1.1 目标设计 17
3.1.2 系统功能分析与设计 17
3.2 数据库结构设计 19
3.2.1 数据库需求分析 19
3.2.2 数据库逻辑设计 19
3.3 整体设计方案 21
3.4 主要模块设计 21
3.4.1 主界面模块 21
3.4.2 管理员模块 24
3.4.3 普通用户模块 31
3.5 小 结 32
结束语 33
参考文献 34
致 谢 35
附 录 36

第一章 绪 论
1.1 本课题研究的主要内容
信息产业部公布《2006年全国通信业发展统计公报》,根据《公报》数据,全国电信业继续快速发展。据初步统计,2006年全国电话用户总数突破8亿户,移动电话用户总数突破4亿户。固定电话用户新增1736.7万户,总数达36781.2万户。移动电话用户新增6767.7万户,总数达到46108.2万户。固定电话普及率和移动电话普及率分别达到28.1部/百人和35.3部/百人。这就是说,平均每3个人中就有一台手机。随着电话用户数量的逐年增加,越来越需要现代化的高效的电话业务综合管理系统。
本课题研究结合了计算机技术,以数据库技术和网络技术为基础,对电话业务管理系统的子系统设计了一个客户端基于浏览器/服务器模式,后台管理基于客户/服务器模式体系结构的数据库管理系统,实现了数据的管理、查询、维护处理等基本功能,解决电话业务的集中管理、快速数据处理以及远程数据共享、实现了管理员和客户之间的通信等功能。实现用户可以随时查询用户的账单等资料,处理相关的电话业务,实现了用户信息资源的全方位共享。系统设计包括:系统需求分析,通过网络查询电话业务的类型及其要实现的主要功能,了解到管理员和用户对系统功能的要求,整理相关信息资料,确定系统的开发的范围;数据库设计,确定数据库结构,设置数据库各种参数,建好各个子数据库,建立好子数据库之间的链接;程序模块划分和实现,根据系统管理的信息类型划分出三个大的程序模块和若干个子模块,分别编写代码,最终实现系统功能。
1.2 本课题研究的意义
随着Internet的普及,不仅提供了一种先进的电话业务系统管理模式,而且可以满足用户获取信息的需要。建立在因特网上的电话业务管理系统,实现了数据的查询、更新、修改等基本功能,解决了某些电话业务的集中管理,比如月账单的查询、个人基本信息的修改、数据的远程访问等。为企业、工作人员、用户三方都提供了很大的便利:
对企业来说,优化了管理体制,实现了资源的合理配置,节约了更多的资金;提高了职能部门的工作效率,减轻了工作人员的负担;适应信息化的要求,充分体现现代化企业的先进性。
对工作人员来说,可以很高效的解决用户的各项电话业务要求,极大的缩短了处理电话业务的时间,有些电话业务的完成可以通过因特网来完成,极大的减轻了工作人员的工作量。
对用户来说,可以通过因特网处理多项电话业务,比如话费的查询、月账单查询、网上缴费等,可以很清楚的知道自己电话业务情况。不必跑到服务大厅去处理电话业务,节省了用户的时间,也方便了用户。
1.3 电话业务综合管理系统发展状况
1.3.1 管理信息系统的发展状况
管理信息系统(Management Information System简称MIS)是一个总的概念,它包括统计系统、数据更新系统、状态报告系统、数据处理系统、决策支持系统等不同应用层次。我国企业MIS的应用可以追溯到70年代中期,主要是以单机操作为主进行单项业务的数据处理辅助管理。70年代末到80年代中期,许多企业都建立了诸如人事、工资、库存、生产调度、计划等管理子系统。80年代中后期尤其是进入90年代以后,随着系统集成和网络技术的发展,国内一些大中型企业纷纷把过去独立存在的子系统集成起来,形成统一的管理信息系统,较好地解决了信息“孤岛”问题。
由于计算机技术的迅速发展和普及,MIS已深入到各行各业,事实上已经成为计算机MIS。它是“一个由人、计算机等组成的能进行信息的收集、传送、储存、加工、维护和使用的系统,能实测组织的各种运行情况;利用过去的数据预测未来;从组织全局出发辅助进行决策;利用信息控制组织的行为以及帮助组织实现其规划目标” MIS是综合运用管理科学、系统科学、运筹学、统计学、计算机技术、通信技术和其它信息处理技术的新型系统。
作为信息技术在管理领域的一个重要分支,管理信息系统已经在信息管理中起到了举足轻重的作用。管理信息系统的使用可以大幅度地减轻管理人员及业务人员繁重的日常工作,改变以往不尽合理的工作流程及业务流程,为中高层管理人员提供了及时有效的辅助决策,使得组织机构的管理更加现代化、科学化、规范化和系统化。但传统的MIS一般是建立在客户机/服务器模式之上,这种模式随着企业规模的日益扩大,应用程序复杂度的不断提高,暴露出的问题也越来越多,如:
● 跨平台性差,不同开发工具开发的应用程序一般不能到其它客户平台上运行。
● 维护、升级非常不便,如果应用程序需要升级,则要将客户机逐台升级,每个客户机上的应用程序也都需要维护,非常麻烦。
● 对客户端软硬件要求较高,尤其是软件的不断升级,对硬件要求不断提高,增加了整个系统的成本。
● 缺乏开放性,难以与Internet接轨,系统之外的用户难以访问系统资源,系统内的客户机也不便访问系统外资源。
令人欣慰的是,伴随着Internet为首的网络技术和数据库技术的飞速发展,从中派生出了Intranet技术,并且它一经问世,就对管理信息系统的建设产生了巨大的影响。Intranet被称为企业内部网,是Internet技术在机构内部的实现,是一种继承Internet的TCP/IP、WWW、FTP和TELNET等技术成果的内部网结构,它能以较少的投资和较短的开发周期,创建或将企业内部MIS改造成一个开放、安全、高效和表现形式丰富的企业信息系统。基于Intranet的新系统在不改变原有MIS系统的功能要求的基础上,还能增加许多新的网络服务,例如电子邮件E-mail、内外部WWW、邮件地址清单Mail List,新闻组Net News、闲聊IRC、文件传输FTP及远程登录Telnet等,但其核心还是Web (WWW)服务。Web服务建立在用户浏览器和Web服务器结构之上,当它被用来建设或改造管理信息系统时,这样的MIS结构被称为浏览器/服务器模式,利用Intranet/Web技术开发MIS,可圆满解决上述问题。我们只需开发和维护服务器端应用程序,而无须顾及客户端程序,客户机只需装上Web浏览器,服务器上所有的应用程序都可通过Web浏览器在客户机上执行,从而统一了用户界面。由于几乎所有的操作系统都支持Web浏览器,从而方便地实现了客户端跨平台操作。又由于Intranet的建立,Intranet上的用户可方便地访问系统外资源,如Internet资源,Intranet外用户通过身份认证也可访问Intranet内的资源。同时,基于Intranet/Web技术的MIS中的客户机只需安装一种浏览器软件,对硬件要求较低,大大降低了客户端的成本。
1.3.2我国电话业务综合管理系统建设及发展现状
利用现代计算机技术、网络通信技术再结合科学的管理方法,可以使一个企业改变过去传统的生产方式与管理方式,提高企业的管理水平,提高企业的生产率,提高企业的服务水平,增强企业的应变能力,从而提高企业的市场竞争力,促进企业的发展。
我国从80年代就开始利用计算机技术对电信业务进行管理,在许多方面建立了电话业务计算机管理系统,如在市话营业管理方面建立了计算机管理系统。尽管这个系统在电话业务发展中发挥了巨大的作用,但是,一方面,由于我国社会经济的迅速发展,电话业务得到了持续的发展,特别是进入90年代以来,电话业务得到超常规的发展,电话网络容量与电话用户急剧增长;另一方面,计算机技术发展日新月异,新技术新产品层出不穷,无论从业务发展情况、对信息化的新要求来看,还是从计算机处理能力来看,原有的市话业务计算机管理系统不能适应业务发展的需要,有必须建设功能更加完善的计算机管理系统,为此,1995年,邮电部与中国电信总局提出建设市话业务“九七工程”,建设中国电信企业的支撑服务网,规范企业的业务管理,提高企业的服务水准,提高企业的劳动生产率。此时整个系统在总体结构设计上采用了以客户/服务器体系结构为基础的三层结构模型,即整个系统由数据库服务器、应用服务器、前台终端等组成,其中系统数据库服务器主要提供数据库管理与服务功能 ,承担整个系统运行为数据的建立、存储、查询、维护及操作等任务,并为其它相关系统提供数据服务功能;应用服务器主要运行数据库应用程序,提供适当的操作员管理功能,并为终端应用提供用户界面处理;前台客户机运行系统应用程序,提供用户界面处理及输入输出操作。三层结构使系统的数据处理与应用处理分离,数据库服务器只处理基本的数据操作,和具体的数据应用脱离,由此便使数据库服务器保持相对的稳定,同时不同的应用运行在不同的应用服务器上,通过调整和增加应用服务器,便可使整个系统具备了平稳增长的能力。所有的应用只与应用服务器连接,从而保证了系统的安全性。
电信行业是一个飞速发展的行业,其业务种类和业务总量每年都有高速的增长,由此便要求电话业务管理系统能不断接纳各种类型和数量的终端及应用,这样便给电话业务管理系统设计带来了不确定性,要使系统既能满足目前的需求,又能适应未来发展的要求,使系统能具备相对的稳定性,提高电信业务的管理水平,改善服务质量,提高劳动生产效率。现今的电话业务管理系统结合了本地网的实际情况,在原始的系统上进行改造,增加了更多的适合本地业务情况的模块,更加能适应本地电话业务的发展,进一步的提高电信的服务质量,提高电话业务的处理水平。
1.4 本文的研究内容
本文第一章是绪论部分,在本课题的研究内容中先结合目前中国的电话用户的增长情况引出开发现代化的电话业务综合管理系统的必要性,结合本课题说明了本课题的主要研究内容,系统设计包括:系统需求分析、数据库设计、程序模块划分和实现。
在第二章开发工具的选用及介绍中,先是系统性的给出了系统的设计思想,在这部分中阐述了选用的设计语言和设计工具,总体的给出了系统的一个模型,采用的是客户端基于浏览器/服务器模式,后台管理基于客户/服务器模式的系统模型,使用的是ASP+ACCESS2003的设计方法。在ASP的概述中,主要介绍了ASP的主要功能、内置组件、内置对象、ASP的页面结构、ASP的编程特点、ASP的运行环境,在这部分中大概的叙述了所用到的ASP技术的原理。在数据库工具介绍与选择中,先是介绍了数据库的概念与发展,以便对数据库有个整体的认识,数据库工具的介绍中,通过对比的分析介绍得出选用ACCESS数据库工具的优势。数据库系统主要有C/S和B/S系统模型,大概的阐述了它们各自的内容和特点,系统的客户端基于浏览器/服务器模式,后台管理基于客户/服务器模式的系统模型。最后给出了系统的整体设计方案,整体设计方案主要分两个部分的设计,数据库的设计和后台软件的设计。数据库的设计写了主要数据库的表的设计,查询的设计。后天软件的设计主要写到ASP中主要用到的方法,比如ASP和数据库的连接、数据的查询、数据的更新、数据的添加、数据的删除等。
在第三章电话业务综合管理系统的实现中,主要有系统的结构设计、数据库结构设计、主要模块设计。在三个主要模块中有很多的子模块,这些子模块构成了三个大的模块,详细的介绍具有代表意义的子模块的实现方法、实现的功能。比如登录子模块、记录查询子模块、记录更新子模块、通信子模块等。

第二章 开发工具的选用及介绍
2.1 系统的设计思想
在过去,客户端/服务器结构的设计与Web的相关技术几乎处于平行线上,两者相互独立并无法做出集成性的设计。现在我们利用IIS + ASP构成三层式Web结构(如下图1-1所示)的中间一层,将客户机/服务器结构与Web密切结合,完成前后端两者的集成输出功能,使得Web站点的开发更方便,实现的功能更强大,IIS远远超过一般的WEB服务器平台[1]。
本系统采用客户端基于浏览器/服务器模式,后台管理基于客户/服务器模式的体系结构,用户在客户端输人查询要求,数据库服务器则根据客户端要求对数据库进行处理,然后将结果数据返回给客户。并且返回给客户的数据是通过ASP编制成标准

图1.1 IIS + ASP构成三层式Web结构
的html文档,用户可以通过浏览器来查看返回的信息。数据处理对用户时透明的,用户只看到Web页面传来的最后结果,即经过处理的符合客户要求的数据。
数据库工具是容易上手的Microsoft ACCESS2003,它有可以为每一种类型的信息创建一个表,利用表储存相应的信息;可以定义各个表之间的关系,从而很容易地将各个表中相关的数据有机地联系在一起;可以创建查询来搜索并检索符合指定条件的数据,包括来自多个表中的数据,同时也可以利用查询来更新或删除多条记录,并对数据执行各种计算等功能。可以创建联机窗体来直接查看,输入及更改表中的数据。在ACCESS中,用户可以对数据进行分类,然后使用多个较小的表来分别存放每一种类型的数据,ASP能通过ODBC、ADO与ACCESS数据库相连接,而且ADO支持存储过程,这使得ASP能与大型数据库相结合,完成大型复杂高效率的站点数据库应用。
2.2 ASP技术
2.2.1 ASP技术与其它技术的比较
实现Web数据库访问大致可分为两类,一类是以Web服务器作为中介,把浏览器和数据源连接起来,在服务器端执行对数据库的操作:另一类是把应用程序和数据库下载到客户端,在客户端执行对数据库的访问[2]。
一、公共网关接口CGI(Common Gateway Interface)
通用网关接口的传统方式,当用户在浏览器端填好表单(form)要求输入的资料,提出HTTP请求后,WEB服务器端将执行CGI程序分析表单(form)中所输入的资料一个表单所设定的可执行的CGI应用程序,CGI程序分析表单(form)中所输入的资料,存取WEB数据库,将查询执行的结果以HTML的格式返回给浏览器。使用CGI方式存取WEB数据库,有很多的缺点,譬如不易开发、变更修改成本高、功能有限、不易侦错、执行速度慢等,而且由于并非整合于HTML文档之中,因此必须使用与HTML完全不同的设计过程来设计一个可执行的应用程序。
(l) 一个CGI程序不能为多个客户共享,对于新的请求必须启动新的进程,随着客户请求的增加,并行的进程也将越多,这对系统资源来说是一种极大的浪费,同时也加重了服务器的负担,降低了性能。
(2)不提供永久性的上下文信息。比如:用户需要查询一个大型数据库,结果可能是上千行的数据,如果用户想每次只显示10行的数据,但CGI在输出10行数据后就停止执行,要再显示下10行的数据必须再执行一次CGI程序,这种方式显然效率不高。
二、网络数据库连接器IDC(Internet Database Connector)
互联网数据库连接口是Windows NT Server含Internet Information Server(简称IIS)2.0的特征之一,它提供了一种使互联网数据库内容得以发布并可与用户交互的方法,它实际上是一个包含于IN中的ISAPI应用程序。只需掌握HTML和SQL的基本知识并写为数不多的代码就能编出具有交互能力的数据库应用程序,让使用者在浏览器界面中得以查询、输入、更新、和删除WEB服务器上的数据资料。构成IDC应用程序的文件是解释性的,由于设计简易,只要准备两个档案,即可在用户端的浏览器中存取WEB服务器的数据资料,且无须编译,因此具有快速的开发循环和反馈。但这种简单性的代价是牺牲了许多灵活性,使人们不得不放弃许多对用户接口的控制,并几乎放弃了所有验证数据的能力。因而IDC仅适用于简单的WEB应用程序。这是一种简易方案,对数据库的操作仍然放在Web端,但用户可通过SQL(结构化查询语言)语句对数据库进行查询、输入、更新、删除等操作。IDC设计简易,不用编译就可直按执行,且支持对数据的多重查询,先进的数据库连接器ADC(Advanced Data Connector)。
前两种方案中对数据库的操作都是在服务器端进行,而ADC是在浏览器端执行数据查询动作。当浏览器提出对数据库的操作请求时,ADC先将相应的数据库下载到浏览器端,在用户端对数据库进行操作。显然,这种方案效率很高。客户端对数据库的查询是有安装在客户端的ADC ActiveX Control完成的,而这ActiveX Control是由站点服务器自动下载并安装在客户端的。
三、ASP与ADO技术
ActiveX Data Object的技术,可以与Active Server Pages(简称ASP)结合以建立提供数据资讯的网页内容,只需在网页面中执行SQL指令,让用户在浏览器界面中输入、更新、和删除WEB服务器上的数据资料。当用户端的浏览器填好表单所要求输入的资料并按“Submit”按钮后,经过互联网、内部网传送HTTP请求到WEB服务器,该请求在WEB服务器执行一个表单所指定的Active Server Pages程序(后缀名为.ASP的文档)。一个ASP文档是一个纯文字档,包括:HTML标记(tags),VBScript或JavaScript语言的程序代码、ASP语法、和结构化查询语言SQL指令。IIS3.0/4.0WEB服务器执行ASP文档,通过ODBC驱动程式,连接到支持ODBC的数据库上,执行ASP文档所指定的SQL指令,最后将执行的结果以HTML的格式传送给用户浏览器。ADO具有容易使用、开发执行快速、消耗系统资源较少,和占用磁盘空间小等优点。这是一种完全的Web数据库访问方案,可把ADO与ASP结合起来,建立提供数据库信息的网页内容,在网页中执行SQL命令,对数据库进行查询、插入、更新、删除等操作。ADO中可用VBScript、JavaScript语言来控制数据库的访问(而ASP恰恰是脚本语言的解释环境)和查询结果的输出。ADO中使用Record Sets对象对数据库进行操作。ASP包含的ADO(ActiveX Data Object)即ActiveX数据对象技术与ASP相结合提供了强大的站点数据库访问功能。ADO具有操作简单快速占用内存和硬盘空间少的优点。通过ODBC、ADO可以与包括ACCESS、SQL Server、Oracle、Sybase等多种数据库相连接。加上ADO支持存储过程,这使得ASP能与大型数据库相结合,完成大型复杂高效率的站点数据库应用成为可能。ASP在性能和效率方面优于CGI、ISAPI,这主要源于它先进的体系结构,ASP直接建立于WEB服务器中,并且是作为WEB服务器的一个服务运行,支持多用户,多线程Http协议是一个无状态的协议,WEB服务器不能记忆客户浏览器过去曾发送过的请求信息,客户的每次请求都是独立的,彼此之间没有联系,因而服务器的许多时间都花费在处理请求上,服务效率受到了影响。ASP拥有强有力的会话管理机制,它可以实现各请求之间的信息共享,提高了效率。ASP在安全性方面也作了细致的考虑,包括:设定虚拟目录访问权限、用户身份检测、隐含脚本等措施。ASP支持多种脚木,比较常用的有VbScript和JScript。ASP中的脚本在WEB服务器端运行,而不是传统的在客户浏览器件了运行,这一措施使客户的浏览器无须担心服务器端的网页使用何种脚本,ASP都会生成一个符合HTML标准的网页送回客户端,ASP在性能方面的优势体现在以下几点:
(1)完全与HIML融合在一起;
(2)创建简单,不需要编译和链接,脚本可以在ASP环境下直接运行;
(3)而向对象,功能可以由ActiveX服务器构件扩展;
(4)由于脚本在服务器端执行,因此它几乎可以支持任何一种浏览器。
由以上ASP技术与其他技术的比较,可以发现ASP的创建简单、面向对象、支持任何浏览器等特点,因此我选用ASP做为电话业务综合管理系统的开发工具。
2.2.2 ASP概述
ASP是微软公司推出的一种用以取代传统CGI的新技术,由于具有编写简单、与HTML和Script脚本语言完全兼容、独立于浏览器、存取数据库极其方便等特点,ASP已成为开发动态网站和Web数据库的主要技术之一。现在己经成为在Windows NT环境下进行浏览器/服务器模式的Web应用程序开发的最好工具。
简单讲,ASP是位于服务器端的一个脚本运行环境,通过这种环境,用户可以创建和运行动态的、交互式的、高性能的Web服务器应用程序。当前端用户提出对ASP页面的请求后,Web服务器首先响应该请求并调用ASP引擎执行相应的ASP文件,通过调用ODBC或OLEDB(数据库引擎)与相应的后台数据库相连,由数据库访问组件ADO (ActiveX Data Objects)完成对数据库的各项操作,最后,ASP根据访问数据库的结果集生成HTML语言的网页返回给前端用户。由于脚本在服务器上而不是在客户端运行,传送到浏览器上的Web是在Web服务器上生成的。所以不必担心浏览器能否处理脚本,Web服务器己经完成了所有脚本的处理,并将标准的HTML传输到浏览器。由于只有脚本的结果返回到浏览器,所以用户看不到创建他们正在浏览的页的脚本命令。用户看到的只是HTML网页,看不到ASP的程序代码,增强了保密性,其工作原理见图2.1。

图2.1 ASP工作原理

ASP技术的核心是内置的ActiveX服务器组件和对象。ASP提供了功能强大的六个内置对象和五个内置组件,利用这些对象和组件可以开发出非常完美的Web应用程序。六个内置对象:
● Request(请求):从前端用户取得信息;
● Response(响应):将信息送给前端用户;
● Server(服务器):提供Web服务器工具;
● Session(会话):储存在一次会话内的用户信息,仅被该用户访问;
● Application(应用):管理所有的会话信息,供所有用户共享;
● Object Context(对象上下文):配合Transaction服务器进行分布式事务处理(IIS 4 .0 新增)。
五个内置组件:
● 数据库存取组件(Database Access component):ASP提供ADO来存取具有ODBC标准的数据库;
● 广告轮显组件(Ad Rotator component):用来维护、构建Internet广告;
● 浏览器兼容组件(Browser Capabilities Component):将浏览器的功能数据提供给服务器,以便送出适合于各种浏览器的Web页面;
● 文件存取组件(File Access component):提供文件读写的工具;
● 文件超链接组件(Content Linking component):提供对Web页面的管理。
ASP页面的结构,编写ASP页面的程序代码非常简单通用,包括下面四个部分:
● 普通的HTML文件标记;
● VBScript, JavaScript或Perl脚本语言;
● ASP语法:位于< % %>标签内的程序代码;
● Server-Side Include语句:用#INCLUDE语句嵌入其他Web页面。ASP文件最后都存为*.asp。
ASP的编程特点:
● 编写容易,可用任何无格式的文本编辑器,缩短Web程序开发时间;
● 与HTML,Script脚本语言完全兼容,且无须编译即可运行;
● 独立于浏览器;
● 面向对象,并可扩展使用任何语言编写的ActiveX Server组件;
● 存取数据库极其方便,可使用ADO组件;
● 程序代码隐藏,浏览器看到的只是ASP输出的动态HTML文件。
ASP的运行环境:
要浏览ASP文件必须经过服务器解析才能够浏览得到。如果是将asp文件上传到支持asp的服务器,那就能够直接浏览。但是如果是在本机上面,那就必须将自己的电脑设置成为服务器。我们单机并不需要设置成为局域网,只需要设置成为单机服务器就可以。
ASP运行所需的环境如下:
● Microsoft Internet Information Server version 3.0/4.0 on Windows NT Server
● Microsoft Peer Web Services Version 3.0 on Windows NT Workstation
● Microsoft Personal Web Server on Windows 95/98
也就是说我们经常所使用的window95/98/2000/XP都可以运行asp,只需要将其设置为单机服务器就行了。归结一点:window95/98,需要安装PWS;window2000/XP,需要安装IIS。才能发挥其asp的作用。可以说,WIN95/98的PWS和WIN2000/XP/2003的IIS就是ASP的运行环境。
2.3 数据库技术的发展与数据库工具的选择
2.3.1 数据库技术的发展
数据库技术最初产生于20世纪60年代中期,特别是到了20世纪60年代后期,随着计算机管理数据的规模越来越大,应用越来越广泛。数据库技术也在不断地发展和提高,先后经历了第一代的网状、层次数据库系统;第二代的关系数据库系统;第三代的以面向对象模型为主要特征的数据库系统[3]。
第一代数据库的代表是1969年IBM公司研制的层次模型的数据库管理系统IMS和70年代美国数据库系统语言协商CODASYL下属数据库任务组DBTG提议的网状模型。层次数据库的数据模型是有根的定向有序树,网状模型对应的是有向图。这两种数据库奠定了现代数据库发展的基础。
第二代数据库的主要特征是支持关系数据模型。这一理论是在20世纪70年代由时任IBM研究员的E.F.Codd博士提出的。关系数据库系统管理的数据,其结构较为简单,数据本身以二维表的形式进行存储;表之间的数据联系是通过一个表的码与另一个表的码的连接来实现。关系数据库系统为其管理的数据提供并发控制、应急恢复和可伸缩性等功能。值得注意的是关系数据库最重要的特征不是其存储和读取数据的能力,而是关系数据库系统提供的强大的查询功能以及提供的十分方便、易于使用的非过程化查询语言SQL,这些优点使得关系型数据库得到广泛的应用。
第三代数据库产生于80年代,随着科学技术的不断进步,不同领域的数据库应用提出了更多新的数据管理的需求,关系型数据库已经不能完全满足需求,于是数据库技术的研究和发展进入了新时代。其主要特点是:在保持和继承了第二代关系数据库技术的同时,将面向对象的思想、方法和技术引入数据库。
在面向对象技术和数据库技术相结合的过程中,基本上是沿着两种途径发展的:一种实现途径是建立纯粹的面向对象数据库管理系统,这种途径往往是以一种面向对象语言为基础,增加数据库的功能,主要是支持持久对象和实现数据共享。面向对象的数据库不仅在处理多媒体等数据类型时可以做到游刃有余,而且在应用系统开发速度和维护等方面有着极大的优越性。但是,这种纯粹的面向对象数据库系统并不支持SQL语言,在通用性方面失去了优势,因而其应用领域受到了很大的局限。
第二种实现途径是从传统的关系数据库加以扩展,增加面向对象的特性,把面向对象技术与关系数据库相结合,建立对象关系数据库管理系统。这种系统既支持已经被广泛使用的SQL,具有良好的通用性,又具有面向对象特性,支持复杂对象和复杂对象的复杂行为,是对象技术和传统关系数据库技术的最佳融合。
时代总是在不断向前推进,进入21世纪,数据库技术发展和大多数领域发展一样,是应用驱动和技术驱动相结合。
首先随着市场需求的变化,特别是进入20世纪90年代,Internet/Intranet以及Web技术在全球被普遍接受。它使用起来简易方便,费用低廉;应用系统开发快捷;信息访问时没有位置的限制。这一切使得基于Internet/Intranet技术的计算环境被采纳的速度比历史上任何其他信息技术都要快。信息业正在从客户机/服务器的计算结构转移,迈向一个崭新的网络计算时代。
面对Internet,未来数据库的发展将遵循四个方向:大、小、广、易。一方面,随着深度及普及化的发展趋势,数据库分别朝大型与小型化发展。超大规模数据的出现需要高性能、复杂的并行数据库系统,此外,随着移动计算与普遍化计算的发展,低端的精小型系统是解决个性数据处理和存储的主要工具,它将嵌入到各种移动设备中去,装进广大的用户口袋中,进入寻常百姓家。另一方面,随着Internet的发展,数据库技术的应用空间将不断地扩展,即未来数据库将向Web这样一个广阔的空间发展。与此同时,数据库技术还将向着实时性更强。更加智能化的方向发展,对其融入自然语言甚至肢体语言的接口,让人们应用数据库变得更加容易。
另外,从技术驱动的角度看,数据库技术应呈现出具有高可靠性、高性能、高可伸缩性和高安全性的特点。这是由于数据库是各行业信息系统的核心和基础,其可靠性和性能是人们非常关心的问题。事实上,数据库系统的稳定和高效也是技术上长久不衰的追求。此外,从各行业信息系统发展的角度上看,一个系统的可扩展能力也是非常重要的。由于信息量、业务量的扩大,原来的系统规模和能力已经不再适应新的要求的时候,不是重新更换更高档次的机器,而是在原有的基础上增加新的设备,如处理器、存储器等,从而达到分散负载的目的。数据的安全性是另一个重要的课题,普通的基于授权的机制已经不能满足许多应用的要求,新的基于角色的授权机制以及一些安全功能要素,如存储隐通道分析、标记、加密、推理控制等,在一些应用中成为切切实实的需要。
2.3.2 数据库工具的选择
数据库发展到今天已经相当成熟[4]。目前,在软件市场上已出现了大量的数据库产品,例如,SQL Server,Oracle,Sybase,dBase,FoxBase,Foxpr。以及Access等等。在这些数据库产品中,Oracle和Sybase主要用于大型数据库应用系统,而dBase,Foxbase,Foxpro以及Access主要用于中小型数据库应用系统。对于一个数据库,如果他在收集或储存数据库信息时,能够保持信息之间的相互联系,这种数据库系统就是一个数据库管理系统(简称DBMS),即对数据库信息进行储存,处理和管理的系统。在数据库管理系统中,如果根据自己定义的关系来储存,处理和管理数据库信息,那么这种数据库管理系统就是关系型数据库系统(简称RDBMS)。现在一般的数据库系统都是关系型数据库系统。如果没有关系数据库,在管理一个单位的生产和销售信息时,则需要在数据库中建立一个很大的表,其中包括电话号码,产品资料,票据等数据。使用这样的数据库,会使大量数据重复存放。ACCESS数据库是一个关系数据库,是由MICROSOFT公司开发的,它主要应用于Windows环境,是目前在中小型系统中,最通用的数据库软件。它的主要功能是:
1.可以为每一种类型的信息创建一个表,利用表储存相应的信息。
2.可以定义各个表之间的关系,从而很容易地将各个表中相关的数据有机地联系在一起。
3.可以创建查询来搜索并检索符合指定条件的数据,包括来自多个表中的数据,同时也可以利用查询来更新或删除多条记录,并对数据执行各种计算。
4.可以创建联机窗体来直接查看,输入及更改表中的数据。
5.可以创建一个报表来分析数据或将数据以特定的方式打印出来。例如,可以打印一份将数据分组并计算数据总和的报表,也可以打印一份带有各种数据格式的邮件标签报表。
6.可以利用宏或Visual Basic将各种数据库对象连接在一起,形成一个数据库应 用系统,而且用户也不需要编写复杂的程序。因此,在ACCESS中,用户可以对数据进行分类,然后使用多个较小的表来分别存放每一种类型的数据,同时也可以将不同类型数据之间的联系存储起来,产生综合性的数据使用,此时每条信息仅在一处存放,减少数据重复,节约存储空间,这样更新数据时速度既快又准确,修改表结构也非常容易。
除了上述原因之外,选择ACCESS的最重要的原因莫过于它的访问INTERNET特性。只要用户在计算机中安装了WEB浏览器(例如Microsoft Internet Explorer浏览器),调制解调器或其他网络联接,Access2003就可以通过它提供的Internet或Intranet功能来帮助用户方便地使用Internet和开发全球信息网应用程序。在Access中,可以使用“Web发布向导”创建Web应用程序,将数据库数据发布到Internet或Intranet中。“Web发布向导”可以将数据表,窗体或报表输出到静态或动态的HTML格式,它既可以创建一个Web主页,也可以将文件作为Web发布程序存储到指定的文件夹,或者将文件复制到FTP和HTTP网络服务器中。用户可以访问FTP和HTTP网络服务器,使用“导入HTML向导”和“链接HTML向导”来将HTML链接转换为超级链接数据类型,从而在Internet或Intranet中检索所需的数据。超级链接数据类型是Access2003新增加的一种数据类型。它可以在表中存储超级链接。在数据表或窗体中,通过插入超级链接可以添加超级链接地址。超级链接可以是硬盘驱动器上的文件路径,UNC路径或URL。当单击超级链接字段时,Access将跳转到相应的对象,文档,Web页或其他目标。例如,可以从数据表,窗体或报表中的超级链接或者其他Office文档(例如,Word文档Excel工作表)跳转到Access数据库,也可以从数据表,窗体或报表中的超级链接跳转到Office文档。由于HTML格式文件是一个超文本链接文件,必须通过Web浏览器才能进行浏览。Access数据库在Active控件中新增加了一个“Microsoft Web浏览器”控件,利用该控件可以浏览全球广域网,查看Web主页,访问其他本地计算机,网络或Internet上的文档,以及从Internet下载数据。为了方便地浏览Access数据库,对象或Office文档,Access。还提供了Web工具栏,该工具栏具有与Microsoft Internet资源管理器工具栏类似的功能。总之,具有Internet或Intranet功能是Access2003最吸引人的一个特点,这也符合计算机网络化的趋势,所有我选择Access2003作为电话业务综合管理系统的数据库工具。
2.4 数据库系统体系结构的选择
2.4.1 C/S体系结构
所谓“C/S”是指Client/Server(客户机/服务器)。C/S模式是一种两层结构的系统:第一层是在客户机系统上结合了表示与业务逻辑:第二层是通过网络结合了数据库服务器。首先,交互性强是C/S固有的一个优点。在C/S中,客户端有一套完整的应用程序,在出错提示、在线帮助等方面都有强大的功能,并且可以在子程序间自由切换。B/S虽然由JavaScript,VBScript提供了一定的交互能力,但与C/S的一整套客户应用相比是太有限了。其次,C/S模式提供了更安全的存取模式。由于C/S是配对的点对点的结构模式,采用适用于局域网、安全性比较好的网络协议,安全性可以得到较好的保证。而B/S采用点对多点、多点对多点这种开放的结构模式,并采用TCP/IP这一类运用于Internet的开放性协议,其安全性只能靠数据服务器上管理密码的数据库来保证。Internet技术中关键的安全问题远未解决,其中信息传递过程中的加密和身份验证是关键性任务运用Internet技术的最大障碍,这就是现阶段Internet技术的主要应用仍停留于公开发布信息为主的原因。现代企业需要有开放的信息环境,需要加强与外界的联系,有的还需要通过Internet发展网上营销业务,这使得大多数企业将他们的内部网与Internet相连。由于采用TCP/IP,他们必须采用一系列的安全措施,如构筑防火墙,来防止Internet的用户对企业内部信息的窃取以及外界病毒的侵入。再次,采用C/S模式将降低网络通信量。B/S采用了逻辑上的三层结构,而在物理上的网络结构仍然是原来的以太网或环形网。这样,第一层与第二层结构之间的通信、第二层与第三层结构之间的通信都需占有同一条网络线路。而C/S只有两层结构,网络通信量只包括Client与Server之间的通信量。所以,C/S处理大量信息的能力是B/S所无法比拟的。最后,由于C/S在逻辑结构上比B/S少一层,对于相同的任务,C/S完成的速度总比B/S快。使得C/S更利于处理大量数据。
2.4.2 B/S体系结构
所谓“B/S”是指Browser/Server(浏览器/服务器),即客户端是标准的浏览器(如Internet Explore, Netscape Navigator等),服务器端为标准的WEB服务器协同应用服务器响应浏览器的请求。
B/S模式是一种三层结构的系统。第一层客户机是用户与整个系统的接口,客户的应用程序精简到一个通用的浏览器软件,如Netscape Navigator,微软公司的IE等。浏览器将HTML代码转化成图文并茂的网页。网页还具备一定的交互功能,允许用户在网页提供的申请表上输入信息提交给后台,并提出处理请求。这个后台就是第二层的Web服务器,第二层Web服务器将启动相应的进程来响应这一请求,并动态生成一串HTML代码,其中嵌入处理的结果,返回给客户机的浏览器。如果客户机提交的请求包括数据的存取,Web服务器还需与数据库服务器协同完成这一处理工作。第三层数据库服务器的任务类似于C/S模式,负责协调不同的Web服务器发出的SQ请求,管理数据库。
首先它简化了客户端。它无需像C/S模式那样在不同的客户机上安装不同的客户应用程序,而只需安装通用的浏览器软件。这样不但可以节省客户机的硬盘空间与内存,而且使安装过程更加简便。
其次,B/S特别适用于网上信息发布。受限于HTML语言的交互性差问题,输入输出的用户互界面不能用纯Internet技术规范HTML/HTTP解决,因为Internet WWW技术的主要应用是发布信息而不是输入输出,“浏览器”是用于“浏览”而非终端输入输出!所以为了解决浏览器和HTML页面的交互性差问题,“B/S”版软件往往在客户端采用微软独家支持的ACT工VEX技术,这其实是一个由浏览器启动的客户端程序。
再次,Microsoft.NET平台的出现,增强了B/S模式的功能。以前的B/S模式采用ASP,PHP,JSP等解释性语言,即解释运行代码。Microsoft.NET平台是先编译再运行,这样大大地提高了程序的运行速度:而且Microsoft.NET平台采用面向对象的编程方式,使在页面上进行输入输出操作非常方便,这样就给B/S模式的系统带来了全新的活力。
以上是两个模式的优缺点分析,针对本系统的特点在客户端采用B/S的模式,以便客户可以快速的处理电话相关的业务。而后台的管理部分采用C/S的模式,这样就更加的安全。

第三章 电话业务综合管理系统的实现
3.1 系统结构设计
3.1.1 目标设计
● 通过一个电话业务综合管理系统,使电信企业的服务管理工作系统化、规范化、高效化,从而达到提高企业的服务质量和工作效率的目的。
● 系统开发的总体任务是实现电话管理的系统化、规范化、高效化。
● 系统的开发尽量采用现有的软件环境,及掌握的管理系统的开发方案,达到充分利用现有资源,提高系统开发水平和应用效果的目的。
● 系统采用模块化程序设计方法,既便于系统功能的各种组合和修改,又便于将来系统的维护和功能的补充。
● 系统应具备了数据库维护的功能,及时的根据用户的需求进行数据的添加、删除、修改等操作。
3.1.2 系统功能分析与设计
系统功能分析是在系统开发总体任务的基础上完成的,本电话业务综合管理系统需要完成的功能主要有以下几点。
● 管理员和客户分区登录,包括管理员登录、客户登录。
● 管理员管理,包括管理员基本资料查询、管理员资料修改、修改登录密码、发送信息、我的信箱、信息的回复、信息的删除、用户查询、添加用户、浏览删除用户、客户账单总查询、客户月账单总查询、话费管理、缴费管理、费率调整、客户月账单总表、客户余额查询、退出管理系统。
● 客户管理,包括显示客户基本信息、修改客户信息、客户信箱、发送信息、月账单查询、缴费历史查询、客户余额查询、退出系统。
电话业务综合管理系统主要分为三个大模块:主界面模块;管理员管理模块;客户管理模块,其系统功能模块划分如图3.1所示。

图3.1 电话管理系统功能模块图

3.2 数据库结构设计
根据系统功能设计要求和模块划分[5],本系统的数据库主要存储管理员信息、用户信息、费率信息、缴费信息、信箱信息、话费管理信息。
3.2.1 数据库需求分析
● 管理员信息表:用户名、密码、真实姓名、性别、身份证号、联系地址、联系电话、电子邮箱、备注。
● 用户信息表:ID(自动编号)、电话号码(用户名和密码)、性别、身份证号、联系地址、电子邮箱、信用等级。
● 费率信息表:ID(自动编号)、月租费、来电显示费、基本通话费、长话费。
● 缴费信息表:ID(自动编号)、用户电话号码、缴费金额、缴费时间、账单月份。
● 信箱信息表:ID(自动编号)、用户电话号码、管理员收到的信息、用户收到的信息、发送信息时间。
● 话费管理信息:ID(自动编号)、用户电话号码、基本通话时间、长途通话时间、账单月份。
3.2.2 数据库逻辑设计
1.管理员信息表admin,其数据库逻辑如图3.2所示。

图3.2 管理员信息表

2. 费率信息表feilv,如图3.3所示。

图3.3 费率信息表

3. 用户信息表user,其数据库逻辑如图3.4所示。

图3.4 用户信息表

4.缴费信息表jiaofei,其数据库逻辑如图3.5所示。

图3.5 缴费信息表

5.信箱信息表message,其数据库逻辑如图3.6所示。

图3.6 信箱信息表

6.话费管理信息表huafeiedit,其数据库逻辑如图3.7所示。

图3.7 话费管理信息表
3.3 整体设计方案
在数据库设计部分,主要设计了admin(管理员信息表)、user(用户信息表)、feilv(费率表)、jiaofei(缴费表)、huafeiedit(话费管理表)、message(信息表)。建立的查询是月账单查询。月账单查询中把话费管理表、缴费表、费率表连接在一起,以便建立多表查询。在ACCESS中,能进行多表间的一些简单计算,这就可以很好的得出我所需的账单信息了,通过管理员的输入本月的本地通话时间、长途通话时间就可以动态的产生本月账单了,而不需要在ASP中进行账单的详细的计算了,直接在数据库当中得出结果,可以很好的提高电话管理系统的工作效率。
在后台软件设计当中,主要就是三个大模块的设计。主界面模块是分别进入两个不同的系统部分(管理员部分和普通用户部分),这里主要就是验证管理员输入的信息是否和数据库当中的管理员信息是否相符,如果相符就进入管理员界面,不相符就返回重新输入,普通用户的登录也是和管理员验证类似的。在管理员模块中,先是应用了ASP中框架的技术,设计好管理员的界面。左边对应的是管理员模块所实现的一些基本功能,比如管理员信息的修改、管理员密码的修改、用户的查询、用户的添加、月账单的管理、话费的查询等功能。在普通用户模块当中跟管理员模块的设计是类似的,不过普通模块实现的功能没有管理员那么多,只能进行简单的信息查询,信息的维护,个人信息的修改。
在后台的软件设计当中,主要用到的是ASP和ACCESS数据库的连接,以便进行数据库的查询、修改、删除等操作。还有一个就是ASP页面的设计部分了,ASP的页面的设计是体现出系统是否人性化,操作界面是否友好了。主要有页面背景的设计,页面的布局,页面的动态效果等。
3.4 主要模块设计
3.4.1 主界面模块
在主界面模块中主要包含管理员登录(adminlogin.asp)、客户登录两个子模块(login.asp)。
1.页面示例
在主界面的页面设计上,主要是关于页面的布局设计、页面中字体的设计、背景的设计等方面。尽量把页面做的美观大方,符合管理系统的页面要求。主界面的页面中要客户填写的表单元素只有两个表单元素[6]。

表1.1 主页面的表单元素
名称 表单元素类型 含义
t_name text 用户登录用户名
t_tel Password 用户登录密码

如图3-8为主界面的页面效果图。

图3.8 主界面效果图

2.ASP与数据库的连接
在用户登录验证的时候涉及到了ASP与数据库的连接,Access是文件型数据库,一个文件就是一个数据库,可以利用ASP中的语法直接连接。在连接数据库之前,必须先声明一个对象来当作数据库与ASP程序之间的媒介,例如本系统的数据库连接文件:contms.asp。
< %
'FileName="Connection_ado_conn_string.htm"
'Type="ADO"
'DesigntimeType="ADO"
'HTTP="false"
'Catalog=""
'Schema=""
Dim MM_contms_STRING
MM_contms_STRING = "driver={microsoft access driver (*.mdb)};dbq=c:\inetpub\wwwroot\tms\tms.mdb" /使用数据库驱动程 序,指出要链接的数据库实际上所在的位置/
%>
具体的数据库

< %
Dim rectms
Dim rectms_numRows
Set rectms = Server.CreateObject("ADODB.Recordset") /建立记录集/
rectms.ActiveConnection = MM_contms_STRING /记录集指出数据库连接/
rectms.Source = "SELECT t_id, t_tel FROM user" /所要获取的表来源/
rectms.CursorType = 0 /只能向下一笔记录移动/
rectms.CursorLocation = 2 /记录存放在服务器端/
rectms.LockType = 1 /数据只读,用户无法修改/
rectms.Open()
rectms_numRows = 0
%>
打开数据库并且完成相应的操作后,应关闭数据库连接。当不再需要连接时将其关闭,可以减少对数据库服务器的要求并可以使其他用户能够使用该连接。
< %
rectms.Close()
Set rectms = Nothing
%>
3.用户登录的验证
用户的登录身份验证通过从用户登录面上收集到的用户名和密码信息,调用用户登录验证的ASP文件,查询表中同时满足用户名和密码的条件的记录,如果该记录存在于表中,则进入系统,如果不存在于表中,则不显示相应的错误信息,返回重新输入信息登录。
管理员登录的页面如图3.9所示。

图3.9 管理员登录

实现登录的关键代码如下:
< %
set rs=server.createobject(“adodb.recordset”) /创建记录集对象/
sql= “select *from user wherer mm=’“&mm&” ’
and xh= ‘“&xh&” ’ /从数据库中选出符合要求的记录/
rs.open sql,conn,1,1
if not(rs.bof and rs.eof)
then
if mm=rs(“mm”)
then
session(“admin”)=rs(“xh”)
session(“flag”)=rs(“flag”)
Response.Redirect “kadmin.asp”
else callError
end if
else call Error()
end if
%>
管理员的在登录时还要进行验证表单,只有在输入信息的时候点击才是有效的,在这里调用了一个JAVASCRIPT,来完成这个功能。
3.4.2 管理员模块
在管理员模块中,包含了管理员资料、业务管理两个大子模块。 在管理员资料子模块中,包含了admininf.asp、admininfedit.asp、 adminpwedit.asp、readmessage.asp。而在业务管理子模块中包含了userfind.asp、userfind1.asp、newuser.asp、allusers.asp、checkadminonbill.asp、huafeiedit.asp、jiaofeiguanli.asp、feilvedit.asp。
因为ASP只是支持不彻底的面向对象思想,所以很多设计模式是不能真正实现的,只能以设计模式思想作指导,以VBScript为实现(可结合COM组件技术)来编写ASP框架。使用ASP框架可以时可以使系统的操作变得很简洁。
在管理员模块中,进行与数据库的操作主要有数据查询、数据添加、数据修改、数据删除。
管理员模块的页面效果如图3.10所示。

图3.10 管理员模块主界面图

1.数据的查询
以电话号码查询为例,详细的代码见附录中的userfind.asp,其设计的页面效果如图3.11所示。

图3.11 按电话号码查询图

根据管理员输入的电话号码查询到符合条件的记录并且显示出用户的详细资料,实现数据查询的关键代码如下:
< %
Dim rectms /定义一变量/
Dim rectms_numRows
Set rectms = Server.CreateObject("ADODB.Recordset") /打开数据库/
rectms.ActiveConnection = MM_contms_STRING
rectms.Source = "SELECT * FROM user" /数据库查询,user表中所有记录/
rectms.CursorType = 0
rectms.CursorLocation = 2
rectms.LockType = 1
rectms.Open()
rectms_numRows = 0
%>
程序说明:利用关键代码rectms.Source = “SELECT * FROM user”,从数据库的表中选出所需的记录,并显示在表单中。
在输入电话号码之后,传递表单变量得到所要查询的结构,利用代码:rectms.Source=”SELECT * FROM user WHERE t_tel = ‘” + Replace(rectms__MMColParam, “‘”, “””) + “‘”,实现数据查询得到的结果如图3.12所示。

图3.12 查询到的结果图

2.数据的添加
以添加新用户为例,详细代码见附录中的newuser.asp,其添加新用户的页面如图3.13所示。
图3.13 添加新用户页面图
向数据库中添加数据,运用SQL语句中的insert实现数据的添加。其基本语句如下:
< %
Sql1= “insert into user (xl,x2,x3) values (’“&xl&” ’,’&x2&” ’, ’”&x3&” ’)” /按条件插入数据库的表中/
set rsl=conn1.Execute(sql1)
%>
程序说明:而在在newuser.asp中利用数据添加语句,MM_editQuery = “insert into ” & MM_editTable & ” (” & MM_tableValues & “) values (” & MM_dbValues & “)”,实现新用户的添加。在输入添加用户的信息后可以得到图3.14。
图3.14 添加用户结果图

3.数据的修改
以修改管理员基本资料为例,详细的源代码见附录中的admininfedit.asp。其界面效果如图3.15所示。

图3.15 管理员基本资料图

实现数据修改的关键代码:
< %
set rs=server.createohject(“adodb.recordset”) /打开数据库/
sql=“select * from zhu where zhuid=”&Request.QueryString(“zhuid”)
rs.open sql,conn,1,3
rs(“zhu”)=request.form(“zhu”)
rs.Update /修改数据记录/
rs.close
%>
程序说明:修改数据时,通过表单传递数据,用recordset对象的update方法更新数据库内的数据。
例如修改管理员资料中的备注,把“好”改为“你好”如图3.15所示,修改后得到图3.16。
图3.16 修改后的管理员资料图

在文本中输入你要修改的数据,通过提交表单,利用关键代码:MM_editQuery=”update”& MM_editTable & “set”。把修改好的数据写入对应的数据库的表中。
4.数据的删除
以删除管理员信箱的信息为例,详细代码见附录中的deladminmes.asp。页面如图3.17所示。
图3.17 删除信箱信息数据图
数据的删除运用数据库操作语言,完成删除数据的操作。其基本语句:
< %
del sql=“delete from learning where typeid =”&rs(“typeid”)
%>
程序说明:管理员在阅读我的信箱的时候,如果信息很多就可以删除一些没有用的信息。点击确认删除时,其执行删除数据的操作,利用关键代码:MM_editQuery = “delete from ” & MM_editTable & ” where ” & MM_editColumn & ” = ” & MM_recordId来实现数据的删除。删除成功后,就返回主界面kmenu.asp.
5.重复显示信息
以读取信箱中的信息为例,详细代码见附录中的readmessage.asp,页面效果如图3.18。在读取数据库中的信箱信息时,必须要成批的显示用户发的信息,这就要用到重复显示信息操作。
图3.18 读取信箱中的信息图
实现重复显示信息的关键的代码如下:
< %
While ((Repeat1__numRows <> 0) AND (NOT rectms.EOF))
Repeat1__index=Repeat1__index+1
Repeat1__numRows=Repeat1__numRows-1
rectms.MoveNext()
Wend
%>
程序说明:重复的显示查询到的数据记录,在下面还加了符合条件才显示的记录条。
3.4.3 普通用户模块
在普通用户模块中,包含了userinf.asp、readusermes.asp、sendadmin.asp、checkonbill.asp、jiaofeilishi.asp.它的页面设计也使用了框架技术。它涉及到的Access数据表有user、message两个表,还有引用了一个月账单查询,在月账单查询里面有三个表的互联,进行简单的计算,以实现月账单里面的本地通话费、长途通话费、话费总额的计算。
其设计的页面如图3.19所示:
图3.19 用户管理模块图
在这个模块当中,其设计的数据库操作和管理员模块当中的是类似的,在这个模块中主要分析月账单查询实现过程。
话费账单的实现设计到的公式是:基本话费总额=[基本通话费]*[基本通话时间];长话费总额=[长话费]*[长途通话时间];费用合计:=[月租费]+[来电显示费]+[基本通话费]*[基本通话时间]+[长话费]*[长途通话时间]。
在Access中先要对表实现关联,进行多表查询。月账单查询关联的表如图3-20所示。

图3-20 表的关联
本系统中的月账单查询当中就要用到多表查询,其实现的SQL语句如下:
SELECT feilv.月租费, feilv.来电显示费, feilv.基本通话费, feilv.长话费, huafeiedit.电话号码, huafeiedit.基本通话时间, huafeiedit.长途通话时间, huafeiedit.账单月份, [月租费]+[来电显示费]+[基本通话费]*[基本通话时间]+[长话费]*[长途通话时间] AS 费用合计, [基本通话费]*[基本通话时间] AS 基本话费总额, [长话费]*[长途通话时间] AS 长话费总额, jiaofei!缴费金额-[费用合计] AS 余额, jiaofei.缴费金额, jiaofei.缴费时间 FROM (feilv RIGHT JOIN huafeiedit ON feilv.编号<=huafeiedit.编号) LEFT JOIN jiaofei ON (huafeiedit.账单月份=jiaofei.账单月份) AND (huafeiedit.电话号码=jiaofei.电话号码);
当输入好费率和某用户的话费管理表后,就可以直接得到所需的月账单了,这样查询起来就很方便和快速了。
3.5 小 结
本章首先是给出了系统的结构设计,系统性的给出系统的设计目标和所要实现的基本功能,系统的画出了系统的功能框图,这样可以系统的得出本系统实现了哪些功能。然后讨论了数据结构设计,包含了数据库的需求分析和数据库的逻辑设计,这样可以更好的了解到数据库的内容,系统可以显示出的数据。最后介绍了系统主要的三个大模块的设计,介绍了ASP当中设计到的数据库操作,比如ASP和数据库的连接、数据的查询、数据的修改、数据的删除、数据的更新等操作,这些是系统最基本的实现过程。

结束语

本文中主要就基于ASP技术采用客户端基于浏览器/服务器模式,后台管理基于客户/服务器模式体系结构的电话业务综合管理系统,从理论和技术实现的角度进行了阐述.通过ASP和Web数据库技术的使用实现了该系统。电话管理系统的系统结构是否合理在很大程度上决定了系统功能的发挥,因此,从开始设计就应当合理规划系统结构,规范数据描述,其不仅有利于系统目标的实现,还应为以后的进一步开发留有余地。系统在开发过程中的结构化设计思想和ASP开发工具的强大功能为系统功能的扩展提供了便利。在以后的扩充完善当中可以使系统朝着综合式系统发展,并使系统更加智能化、更加集成化。比如可以进一步的对查询方法进行完善,使查询过程更加智能化;可以优化系统的机构,增强数据管理的效率,对数据库进行统一的规划等。
软件系统的开发是一项大型复杂的工作要按照软件工程的思想和正确的方法作为指导,以减少不必要的失败和系统隐患,保证系统的质量。应在明确系统开发的目的、任务等要素后,充分分析、设计系统各组成部分的功能关系、组织结构关系和信息关系,在经过对各模块的详细设计后才开始具体实施。
对于我来说像电话综合业务管理系统这样与电信应用紧密结合的系统,在实施过程中除了许多技术方面的难度外,还应存在着大量来自组织管理方面的困难。如何获得充分有效的企业特点、高效的管理方式等第一手资料,往往也绝非易事,而这些又是系统设计成功与否的关键因素。

参考文献

[1] 刘宗局,蔡军,张川.专网电话业务综合管理信息系统设计[J].交通运输工程与信息学报,2004(04):5~8.
[2] 张德静.深入浅出ASP程序设计与开发[M].北京:中国青年出版社,2005.45~50.
[3] 文渊阁工作室.由DreamweaverMX2004学ASP[M].北京:中国铁道出版社,2005.61~63.
[4] 神龙工作室.新编Access 2003数据库管理入门与提高[M].北京:人民邮电出版社,2006.56~60.
[5] 王劲松.DreamweaverMX2004网页设计ASP交互网页设计篇[M].北京:中国青年出版社,2005.173.
[6] 龙马工作室. ASP+SQLServer组建动态网站实例精讲[M]. 北京:人民邮电出版社,2004.75~78.
[7] 徐苏,邱桃荣,饶小平.电信多网点收费综合管理系统设计[J]. 计算机与现代, 2003(12):32~35.
[8] 邢贵川.对专用通信网的再认识[J]. 电信技术,2003(11):76~78.
[9] 孙炳旭,陈飞,梁茂盛. SQL Server 7.0 使用管理指南[M]. 北京:机械工业出版社,2000.121~128.
[10] [美]Brad McGehee,Rob Kraft. 李 昕,倪明田译.实用SQL Server 7 教程[M]. 清华大学出版社,2001.23~118.
[11] 刘禾.ASP开发全攻略宝典[M].北京:中国水利水电出版社,2000.89~90.
[12] HONG H. Solution for GIS telecommunication circuitry network geographic information systsm [J].Communication World.2000 (10):29~32.

附 录 源代码

车辆出入无线管理与调度系统的设计

Posted by 天际的荒草 | Posted in Docs | 文档 | Posted on 18-08-2009

标签:, , , , , ,

0

目录
摘 要 IV
ABSTRACT V
第一章 绪论 1
1.1 研究背景及意义 1
1.1.1车辆出入系统与调度系统简介 1
1.1.2系统组成 1
1.1.3系统的基本功能 2
1.1.4系统特点 2
1.2国内外发展现状及本设计的定位 3
1.3系统设计内容 4
第二章 系统的硬件部分的设计 5
2.1 SRWF-501型模块简介 5
2.1.1 SRWF-501无线模块结构 5
2.1.2 SRWF-501具体参数 5
2.1.3 SRWF-501无线模块图片 6
2.1.3 SRWF-501-50型无线模块接口的定义 7
2.1.4 基于桑锐501SRWF-501无线模块的设计 7
2.2 RS232串口简介 7
2.2.1 RS-232在计算机的位置 8
2.2.2 DB9引脚定义 8
2.3硬件连接 9
2.4 小结 11
第三章 系统软件部分的设计 12
3.1 VB开发环境的介绍 12
3.2 R232串口通信的设计 12
3.2.1串口通信的方式 13
3.2.2. MSComm控件简介 13
3.2.3串行通信的一般步骤 15
3.3 ACCESS数据库的设计 16
3.3.1 ACCESS数据库的基本介绍 16
3.3.2 ACCESS数据库基本操作 16
3.3.4 ACCESS在本系统中的应用 17
3.3.4数据库在本程序中的应用 20
3.4系统流程图 20
3.5系统部分界面及系统功能程序实现 21
第四章 结束语 27
4.1结论总结 27
4.2未来展望 27
致 谢 28
参考文献 29
附录 30
摘 要

利用RFID技术,车辆出入无线管理与调度系统提供信息采集功能。系统实现车辆进出站信息自动、准确、远距离、不停车采集,实现派车无纸化,使车辆调度系统准确掌握车辆停车场车辆进出的实时动态信息。利用这种自动化手段管理车辆,可以提高公交车的管理水平,告别过去那种人工登记的方法,利用计算机信息研究车辆运用规律,杜绝在车辆管理中存在的漏洞,填补原有车辆调度系统管理中存在的信息采集的不足。系统能在车辆到达门口时实现数据的自动采集。硬件部分的设计利用上海桑锐公司的SRWF-501无线模块与RS232共同实现,在车辆到达门前时自动把车辆信息及司机信息通过无线的方式准确的传到控制机上。
数据采集系统软件要求界面友好、易于操作,论文使用了VB语言结合R232的串口通信完成了车辆与控制机的之间的信息传输,选择了Microsoft的ACEESS作为数据库的管理系统。数据传输的硬件电路及软件的设计,经过实验证明,系统实现了上述功能。

关键词: 桑锐SRWF-501,RS232,串口通信,无线采集,VB,ACCESS,数据库

ABSTRACT

The vehicles wireless management and the dispatching system provide the function of the information gathering through the RFID technology。The system will realize that the information of vehicles turnovering the station be automatic, accurate, long-distance, gathering without stopping, and it will also realize sending. So the system can grasp the accurate, real time and dynamic information of vehicles turnovering the station .Using this automatic way of manage vehicles can heighten the management of the bus. It will also say goodbye to the past way of manual work enregistering. The system research the application rules through the computers, and it will avert the leak in vehicle management, remedy the deficiency of the information gathering in the past way of vehicle management. The system can get the information automaticly when the vehicles reach the door. The hardware part uses the SANGRUI Company of SHANGHAI’s SRWF-501 wireless module and RS232 interface. When the vehicles reach the door the information of the car and driver will be transmitted to the controlling computer automaticly.
The data collection system software require amity interface, easy operation. The thesis use VB language and RS232 serial communication to realize the information transmittion from the vehicles to the control computer. The thesis adopts Microsoft’s Aceess to be the management system of database.. The system realizes the data transmitting design of the hardware circuit and software and it is proved by experiments。

KEY WORD: Sang Rui SRWF-501, RS232, serial communication ,wireless gathering, VB, ACCESS database

第一章 绪论
随着我国经济建设事业的发展,汽车拥有量的急剧增加,对车辆管理水平的要求将越来越高。为使车辆进出方便、快捷、安全,门禁管理科学高效现实要去我们必须设计出一种更高效的车辆出入管理与调度系统。本设计中设计一无线数据采集系统,能在车辆进入大门的途中实现数据的自动采集,这样极大的提高了车站对列车的调度效率,有着非常重要的现实意义。
1.1 研究背景及意义
步入二十一世纪,中国在国民经济上正进入快速发展的时期,随着人民生活水平的日益提高,汽车的总拥有量也开始迅猛增长。如何对所辖园区的出入车辆进行高效优质的智能化管理,已经越来越为各行政部门及企事业单位所重视。门禁系统在安全性、方便性和易管理性等方面也得到了长足发展,是确保各重要部门出入口安全的有效措施,现已广泛应用于各个领域。无线门禁系统即为解决这个难题提供了有效的手段。本设计通过无线数据采集系统开发的车辆进出智能管理系统效的解决了各单位所面临的车辆管理问题,应用于停车场收费管理与进出车辆控制,车主无需停车即可出入停车场,通过电脑自动识别持卡人身份,确定对车是放行或拦截,为车主通行及物业管理提供极大方便[1]。
1.1.1车辆出入系统与调度系统简介
随着科技的进步,电子技术、计算机技术、通讯技术不断地向各种收费领域渗透,当今的停车场收费系统已经向智能型的方向转变。先进可靠的停车场收费系统在停车场管理系统中的作用越来越大。感应卡停车场管理系统是一种高效快捷、公正准确、科学经济的停车场管理手段,是停车场对于车辆实行动态和静态管理的综合。从用户的角度看,其服务高效、收费透明度高、准确无误;从管理者的角度看,其易于操作维护、自动化程度高、大大减轻管理者的劳动强度;系统以桑瑞501为信息载体,通过芯片记录车辆进出信息,结合工业自动化控制技术控制机电一体化外围设备,从而控制进出停车场的各种车辆[2]。
1.1.2系统组成
系统由门口读卡器、读卡器控制设备、栏杆机组成
1.1.3系统的基本功能
1、对长期、临时用户进行管理
长期及临时用户进行管理包括长期的用户信息保存和注、临时用户的基本信息管理,可以对长期用户、注册、续办、注销及挂失。
2、车辆进出管理控制功能
长期用户车辆入场时,读卡器感应到用户卡,自动判断是否有效卡,若有效栏杆自动抬起,该车入场,入场后栏杆自动落下,完成一次进车过程;车辆出厂时,用户开车到读卡器感应范围内,读卡器自动判断是否有效卡,若有效栏杆自动抬起,该车出场,出厂后栏杆自动落下,完成一次出车过程。
临时用户入场时,在入口处领取卡,由工作人员登记后的卡,然后工作人员把栏杆抬起,该车入场,入场后栏杆自动放下完成一次进车过程;车俩出场时用户将卡交到工作人员处,工作人员点击放行然后栏杆抬起,该车出厂,出厂后栏杆自动放下,完成一次出车过程。
3、信息记录
读卡时同步自动记录入场时间、入场地点、车辆信息、车主身份,由门口警卫进行管理办理进入登记手工发卡等事物
4、中心控制功能
万能查询功能:可能通过一个条件或多个条件相组合,对司机信息情况、卡片使用情况、车辆进出情况等相关资料进行查询,并且对现有车辆进行调度。
统计管理:提供各种统计资料以不同的报表形式输出,提供任意形式的查询并以报表形式输出;
5、良好的安全性和抗干扰性
采用先进的信号处理技术,信号信息带有奇偶校验码,可以识别信息传送是否出错,如果发现错误,采用丢弃重传的策略,保证芯片无错传输。
6、系统适用领域
本系统可适用于军队营区、智能大厦、企业园区、物业小区、物流园区、校园、公共车站等。

1.1.4系统特点:
使用方便快捷;
系统灵敏可靠。
设备安全耐用。
能准确地区分自有车辆、外来车辆和特殊车辆[3]

1.2国内外发展现状及本设计的定位
射频识别技术(RFID,即Radio Frequency Identificati on)是从八十年代起走向成熟的一项自动识别技术。射频识别技术在国外发展的很快,射频识别技术被广泛应用于工业自动化、商业自动化、交通运输控制管理等众多领域:汽车、火车等交通监控;高速公路自动收费系统;停车场管理系统;物品管理;流水线生产自动化;安全出入检查;仓储管理;动物管理;车辆防盗等等。RFID的应用仍在层出不穷[4]。此可见,射频识别技术在国外具有广阔的市场前景。射频识别技术做为一种新兴的自动识别技术,也将在中国很快地普及,可以说、我国射频识别产品的市场是十分巨大的,举一个例子来说明,利用射频识别技术的不停车高速公路自动收费系统是将来的发展方向,人工收费包括IC卡的停车收费方式也终将被淘汰。随着经济交流、旅游的发展、我国的高速公路发展势头十分强劲、对自动收费系统的需求会日益增长、我国的国土面积大、公路多、车辆多,预计在未来十年内将有数十亿元的需求。可以毫不夸张的预测,任何一种应用如果成为现实,都将会孕育一个庞大的市场。RFID将是未来一个新的经济增长点。射频识别技术在中国处于一个刚刚起步的阶段,但是它的发展潜力是巨大的,它的前景非常诱人。在信息社会,对于各种信息的获取及处理要求快速、准确、在不久的将来RFID技术就将同其它识别技术一样深入我们的生活、改善我们的生活。对于这样一个新技术,我们应当加强宣传力度,希望能够尽早普及它,利用它,提高我们的工作效率和经济效益。应当看到的是,凭我们现在的技术条件、尤其是集成电路工业的落后,在这个市场上很难和国外产品竞争。国内更多的是引进国外的产品,怎样改变这种状况、让我们的产品在这样一个巨大的市场上占有一席之地,是一个严峻的课题。
车辆的无线管理与调度系统正是基于这种技术是RFID技术最成功的应用之一。目前中国的车辆发展非常快,国家和私人的车辆拥有量越来越多,车辆管理的先决条件就是有高效的车辆管理方法,而目前的车辆管理却存在一些问题,交通堵塞在大门口,许多车辆要停车排队,成为交通瓶颈问题。RFID技术应用在车辆管理上能够充分体现它非接触识别的优势。让车辆高速通过门口解决了交通堵塞的问题,同时也安全的对整个停车厂有了更安全的管理。本系统的使用了桑锐501实现了无线数据的传输,使得司机无需下车自动就能把车辆信息传送到控制台,控制台电脑能迅速的核对信息做出相应的动作,大部分工作是由电脑完成的,他的效率和安全性上都有了很大的提高。因此我相信本系统的设计完成会对车辆管理做出很大的贡献,它在中国的前景必然是一片光明的【1】。
1.3系统设计内容
本系统设计主要包括三个部分,第一部分是完成上海桑锐公司501芯片的数据通信,能实现芯片间的无线数据传输的功能,并进行简单的差错控制为整个系统的实际打下坚实的基础。第二部分是对RS232串口进行编程,可选的语言有很多我选择了我比较熟悉的VB环境。最后一部分是对数据的存储和提取的部分,这个部分要完成对司机或车辆信息的查询从而完成调度的功能,这里我选择了用数据库进行编写

第二章 系统的硬件部分的设计
系统的硬件部分的设计主要包括桑锐SRWF-501的设计和串口RS232的设计,下面我们将逐个对它们进行介绍.
2.1 SRWF-501型模块简介
SRWF-501型无线通信模块是上海桑锐电子科技有限公司采用高效FEC前向纠错技术结合高性能的无线射频IC, 以及高速微处理器相结合开发出的一款无线通信模块, 可与SRWF-505、SRWF-506、SRWF-507、SRWF-508、进行无线通信。该无线通信模块具有很强的抗干扰能力, 全透明传输, 体积小,功耗低传输距离远的特点, 客户使用时不需要任何编码技术。

2.1.1 SRWF-501无线模块结构
SRWF-501无线模块可以分为三个部分,即:接口部分,集成电路部分,天线部分。其中接口部分提供RS-232的接口,进行与计算机的数据传输工作;集成电路部分负责对计算机传来的数据进行出来然后送往天线发射的功能;天线部分要把集成电路提供的信息数据发射出去,或者接收无线数据传给集成电路,为了保护天线部分的灵敏,不用的时候需要将其拿下来,这样有利用保证数据正确传输。
2.1.2 SRWF-501具体参数
产品型号: SRWF-501 产品简介: SRWF-501型微功率无线模块 SRWF-501型微功率无线数传模块是上海桑锐电子科技有限公司采用高效FEC前向纠错技术结合高性能的无线射频IC CC1020, 以及高速微处理器相结合开发出的一款无线通信模块, 可与SRWF-505、SRWF-506、SRWF-507、SRWF-508进行无线通信。该无线通信模块具有很强的抗干扰能力, 全透明传输, 体积小,功耗低传输距离远的特点, 客户使用时不需要任何编码技术。使用条件: 性能参数: 型号 SRWF-501
中心频率 433MHZ/868MHZ/915MHZ
频率范围 429~438MHZ
信道数 8/16/32信道可选
调制方式 GFSK
通信距离(开放环境) >800米
功能 双向半双工通信
波特率 1200/2400/4800/9600/19200bps/38400bps/76800bps
接口方式 TTL串口/RS232/RS485
发射功率 +10mW/10dbm
接收灵敏度 -118dbm
通信数据格式 8N1/8E1/8O1可调
工作电压 +3.0V~+5.0V 【5】
2.1.3 SRWF-501无线模块图片

图2.1 SRWF-501

图 2.2 SRWF-501天线

2.1.3 SRWF-501-50型无线模块接口的定义
SRWF-501-50提供1个9针的连接器(CON1),其定义基于终端的连接方法见表2.1
表2.1 SRWF-501-50型无线模块接口的定义
序号 SRWF-501端 说明 电平 连接到终端
1 GND 电源地 电源地
2 VCC 电源DC +3.6~5.0V
3 RXD/TTL 串行数据接收 TTL TXD
4 TXD/TTL 串行数据发 TTL RXD
5 SGND 信号地 模拟地
6 A(TX) TX A(RX)
7 B(RX) RX B(TX)
8 SLEEP 休眠控制 TTL 休眠信号
9 RESET 复位控制 TTL 复位信号
2.1.4 基于桑锐501SRWF-501无线模块的设计
该系统的无线传输信息的功能主要由501芯片负责,并且包含了底层的传输控制包括检错重传的功能。再进出的车辆上放上一片501,在门口的主机上连有一片分别完成信息的发送于接收,只要将501和RS232连在一起就能完成两个主机的无线连接完成通信了【6】。

2.2 RS232串口简介
在PC机的主板上,有一种类型的接口可能为我们所忽视,那就是RS-232C串行接口,在微软的Windows系统中称其为COM。迄今为止,几乎每一台PC都包含COM。本质而言,COM是PC为和外界通信所提供的一种串行数据传输的接口。作为一种物理通信的途径和设备,它和目前风靡的另一种串行接口——USB所提供的功能是一致的。但USB的传输速率已经远远超过了RS-232C。
尽管如此,RS-232C仍然具有非常广泛的应用,在相对长的一段时间里,难以被USB等接口取代。RS-232C接口(又称EIA RS-232C),1970年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定,全名是”数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术标准”。由于串行通信方便易行,所以应用广泛。RS-232串口前较为常用的串口有9针串口(DB9)和25针串口(DB25)。在台式计算机后面通常含有两个9口的RS-232串口,分别称为COM1口和COM2口。
2.2.1 RS-232在计算机的位置
一般的计算机,尤其是台式计算机,都会有一到两个RS-232穿行通信接口,分别成为COM1口和COM2口,它们一般为蓝颜色,9针的公口(为25针的简化),特别要注意的是,一般机器后面还会由一个25针的母口,一般为红颜色,这个是LPT并口,通常用来接并口打印机的,不要把它错认为是25针的串口了。
2.2.2 DB9引脚定义

图2.3 DB9接口图

表2.2 DB9引脚定义
DB9
针号 功能说明 缩写
1 数据载波检测 DCD
2 接收数据 RXD
3 发送数据 TXD
4 数据终端准备 DTR
5 信号地 GND
6 数据设备准备好 DSR
7 请求发送 RTS
8 清除发送 CTS
9 振铃指示 RI

TxD(Transmitted Data)发送数据——串行数据的发送端。
RxD(Received Data)接收数据——串行数据的接收端。
RTS(Request To Send)请求发送——当数据终端准备好送出数据时,就发出有效的RTS信号,用于通知Modem准备接收数据。
CTS(Clear To Send)清除发送(也称允许发送)——当Modem已准备好接收数据终端的传送数据时,就发出CTS有效信号来响应RTS信号。所以RTS与CTS是一对用于发送数据的联络信号。
DTR(Data Terminal Ready)数据终端准备好——通常当数据终端一加电,该信号就有效,表示数据终端准备就绪。它可以用做数据终端设备发给数据通信设备Modem的联络信号。
DSR(Data Set Ready)数据装置准备好——通常表示Modem已接通电源连到通信线路上,并处在数据传输方式,而不是处于测试方式或断开状态。它可以用做数据通信设备Modem响应数据终端设备DTR的联络信号。
GND(Ground)信号地——它为所有的信号提供一个公共的参考电平,相对于其它信号它为0v电压。
保护地(机壳地)——这是一个起屏蔽保护作用的接地端,一般应参照设备的使用规定,连接到设备的外壳或机架上,必要时要连接到大地。
DCD(Data Carrier Detected)载波检测——当本地Modem接收到来自远程Modem正确的载波信号时,使用该引脚向数据终端发出有效信号。该引脚也缩写为DCD。
RI(Ring Indicator)振铃指示——自动应答的Modem用此信号作为电话铃响的指示,在响铃期间,该引线保持有效【7】。
2.3硬件连接

连接图见上图所示,因为此芯片可以用于与非RS-232串口的多种接口进行连接,所以芯片本身并没有提供与RS-232的接口,故需要我们自己设计接口电路,将芯片连接到RS-232串口上,其实这并不是一件难事,我们只需找到一个与RS-232配套的母头,按上图进行焊接,然后再用与RS-232串口配套的外壳进行包装,之后再直接将焊接后的公头插在RS-232母头上即可进行通信。

2.4 小结
本小节介绍了有关上海桑锐SRWF-501模块的产品简介,运行环境,使用方法以及在程序中的作用等内容,通过该章节的论述,明确了整个设计过程中无线传输部分任务的完成,也明确了怎样将无线设备与计算机终端相连,完成了整个设计中非常重要的一部分。

第三章 系统软件部分的设计
3.1 VB开发环境的介绍
本设计使用VB开发环境,将数据通过RS232串口将数据传送至501模块,然后有501模块将数据发射出去,接收端首先有501模块进行数据接收,然后传给RS232串口,再有VB开发环境由程序将数据写入数据库进行存储,以待日后查询使用。
本设计使用VB开发环境,将数据通过RS232串口将数据传送至501模块,然后有501模块将数据发射出去,接收端首先有501模块进行数据接收,然后传给RS232串口,再有VB开发环境由程序将数据写入数据库进行存储,以待日后查询使用。
Visual Basic,简称VB,是Microsoft公司推出的一种Windows应用程序开发工具。是当今世界上使用最广泛的编程语言之一,它也被公认为是编程效率最高的一种编程方法。无论是开发功能强大、性能可靠的商务软件,还是编写能处理实际问题的实用小程序,VB都是最快速、最简便的方法。从设计新型的用户界面到利用其它应用程序的对象;从处理文字图象到使用数据库;从开发个人或小组使用的小工具,到大型企业应用系统,甚至通过 Internet 的遍及全球分布式应用程序,都可在 Visual Basic 提供的工具中各取所需。VB是微软公司的一种通用程序设计语言,包含在Microsoft Excel、Microsoft Access等众多Windows应用软件种的VBA都使用VB语言,以供用户二次开发;目前制作网页使用较多的VBScript脚本语言也是VB的子集。
利用 VB的数据访问特性,用户可以对包括Microsoft SQL Server和其他企业数据库在内的大部分数据库格式创建数据库和前端应用程序,以及可调整的服务器端部件。利用ActiveX(TM)技术,VB可使用如Microsoft Word、Microsoft Excel及其他Windows应用程序提供的功能,甚至可直接使用VB专业版和企业版创建的应用程序对象.通过几年的发展,Visual Basic已成为一种专业化的开发语言。用户可用Visual Basic快速创建Windows程序,现在还可以编写企业水平的客户/服务器程序及强大的数据库应用程序等。到现在,微软已经推出了最新的8.0版。
3.2 R232串口通信的设计
在众多通信实现方案中,串行通信技术作为一种灵活、方便、可靠的通信手段,有着广泛的应用。串行通信由于接线少、成本低,在数据通信、计算机网络以及分布式工业控制系统中,经常采用它来交换数据和信息。1969年,美国电子工业协会(EIA)公布的RS-232C作为串行通信接口的电气标准,它定义了数据终端设备(DTE)和数据通信设备(DCE)间按位串行传输的接口信息,合理安排了接口的电气信号和机械要求,在世界范围内得到了广泛的应用。
串行通信是将数据分解成二进制位用一条信号线,一位一位顺序传送的方式。它的优势是用于通信的线路少,因而在远距离通信时可以极大地降低成本。另外,它还可以利用现存的通信信道(如电话、电报线路等),使数据通信系统遍布千千万万个家庭和办公室。相对并行通信方式,串行通信速度较慢,所以它适合远距离,速度要求不很高的情况,例如微型机与计算中心之间,远距离的微机系统之间或与其它系统之间都采用串行通信方式。另外,在传送速度要求不高的近距离系统间,例如同在一室的微型机之间、微型机与磁带机之间、微型机与字符显示器之间也都广泛的采用串行通信方式。在PC机上,键盘、鼠标器与主机也采用串行数据传输方式【7】。
3.2.1串口通信的方式
根据同步方式的不同,串行通信可分为两类:同步通信(SYNC)与异步通信(ASYNC)。
异步通信(Asynchronous Data Communication)以字符为传输单位,通信中两个字符间的时间间隔是不固定的,然而在同一个字符中的两个相邻位代码间的时间间隔是固定的。传送一个字符的信息规定有起始位、数据位、奇偶校验位、停止位等
同步通信(Synchronous Data Communication)以帧为传输单位,每个帧中包含有多个字符。在通信过程中,每个字符间的时间间隔是相等的,而且每个字符中各相邻位代码间的时间间隔也是固定的。
根据数据传输方向的不同,串行通信的传输制式有以下三种:单工方式、半双工方式和全双工方式。在计算机串行通信中主要使用半双工和全双工方式。
501与232连在一起的后,我们只要对232进行编程就能通过501进行车辆与主机之间的通信了。我们的重点就是写出232的程序完成通信了。Microsoft在VB中提供的一个控件:MSComm,这个控件可以方便的对RS-232串口进行控制,应用这个这个控件我们就能实现串口通信了。
3.2.2. MSComm控件简介
Mscomm控件提供了一系列标准通信命令的接口,它允许建立串口连接,可以连接到其他通信设备,还可以发送命令、进行数据交换以及监视和响应在通信过程中可能发生的各种错误和事件,从而可以用它创建全双工的、事件驱动的、高效实用的通信程序。Mscomm通信控件的通信功能,实际上是调用了API(Application Programming Interface)函数,对于VB程序的开发者,知道了Mscomm控件的属性和事件的用法,即可以实现串口的操作。
1.MSComm控件两种处理通讯的方式
MSComm控件提供下列两种处理通讯的方式:事件驱动方式和查询方式。
事件驱动通讯是处理串行端口交互作用的一种非常有效的方法。在许多情况下,在事件发生时需要得到通知,编程过程中,就可以在OnComm事件处理函数中加入自己的处理代码。这种方法的优点是程序响应及时,可靠性高。每个MSComm 控件对应着一个串行端口。如果应用程序需要访问多个串行端口,必须使用多个 MSComm 控件。
查询方式实质上还是事件驱动,但在有些情况下,这种方式显得更为便捷。在程序的每个关键功能之后,可以通过检查 CommEvent 属性的值来查询事件和错误。如果应用程序较小,并且是自保持的,这种方法可能是更可取的
2.MSComm 控件的常用属性
MSComm 控件有很多重要的属性,但首先必须熟悉几个属性。
CommPort 设置并返回通讯端口号程序必须指定所使用的串行端口的号码,Windows会使用所指定的端口与外界进行通信,程序也可以此属性返回所使用的串行口的号码。。
RThreshold 属性:在 MSComm 控件设置 CommEvent 属性为 comEvReceive 并产生 OnComm 之前,设置并返回的要接收的字符数。
 Settings 以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位。 
PortOpen 设置并返回通讯端口的状态。也可以打开和关闭端口。使用串行口前必须先将它打开,使用完毕后必须将它关闭。
 CTSHolding 属性:确定是否可通过查询 Clear To Send (CTS) 线的状态发送数据。Clear To Send 是调制解调器发送到相联计算机的信号,指示传输可以进行。该属性在设计时无效,在运行时为只读。
Input 这是靠着这个属性,VB可以经RS-232串口中的数据出入到程序中来,这是我们进行RS-232串口通信设计中最基本的一条属性。从接收缓冲区返回和删除字符。 
Output 将数据发送到RS-232串口,向传输缓冲区写一个字符串。
SThreshold 属性: MSComm 控件设置 CommEvent 属性为 comEvSend 并产生 OnComm 事件之前,设置并返回传输缓冲区中允许的最小字符数。
HandShaking:指定双方的通信交握协议。所谓“交握协议”是指通常意义上所称的流量控制。
CommEvent:只有有事件发生或出现错误就会产生OnComm事件,CommEvent属性存有该错误或事件的数值码,
SComm的操控原则
Windows的操作系统与DOS是完全不同的,Windows采用的是全新的对象化观念,把所有的程序都对象化,在设计VB串行通信的相关时,要遵循下四个四个步骤:1:对象,2:属性,3:事件,4:方法。Visual Basic 的串行通信对象乃是将对RS-232的初级操作予以封装,用户以高级语言的语法就可以实现利用RS-232与外界进行通信,并不需要了解其它初级操作【8】。
3.2.3串行通信的一般步骤
利用微机RS-232C口进行串行通信的一般步骤如下:
1. 打开串口
在32位Windows中,串口和其它通信设备都被作为文件进行处理,在使用前必须先将其打开。为了保证串口通信数据传输的可靠性,串口打开时一般都设置为非共享模式,串口一旦被打开后,其它的应用程序将无法打开或使用它。
2. 配置串口
在使用串口进行数据通信前必须对其进行配置,串口配置主要包括波特率、数据位数、停止位数、奇偶校验、发送缓冲区大小、接受缓冲区大小等。
3. 超时设置
在串口通信时如果数据传输突然中断,对串口的读写操作可能会进入无限期的等待状态,为避免这种情况发生,必须设置串口读写操作的等待时间,等待时间超过后,串口的读写操作将被主动放弃,这样即使数据传输突然中断程序也不会被挂起或阻塞。
4. 数据读写
串口打开并配置好后即可对其进行读写操作,对串口的读写操作可采用查询、同步、异步和事件驱动等方式。
5. 关闭串口
在串口使用完成后应将其关闭,否则如果没有关闭串口,该串口将始终处于打开状态,其它的应用程序就将无法打开或使用它。
RS-232串口通信这一章详细讲述了有关串口通信以及最长用的串口RS-232的有关问题包括通信方式,引脚定义等,依次讲述了Windows为VB所提供的串口编程接口――MSComm控件,
MSComm控件的引用,MSComm控件的使用方法,MSComm控件的常用属性等,以及用这个控件完成最基本的数据通信方法等,并且对串口通信的一班步骤给予了部分介绍【9】。
3.3 ACCESS数据库的设计
车辆的信息有很多,为了能高效,清晰的对数据进行管理,所以我们要用一个功能强大的数据库。数据库是依照某种数据模型组织起来并存放二级存储器中的数据集合。这种数据集合具有如下特点:尽可能不重复,以最优方式为某个特定组织的多种应用服务,其数据结构独立于使用它的应用程序,对数据的增、删、改和检索由统一软件进行管理和控制。从发展的历史看,数据库是数据管理的高级阶段,它是由文件管理系统发展起来的。数据库管理(Database Administration)是有关建立、存储、修改和存取数据库中信息的技术,数据库管理的主要内容有,数据库的建立、数据库的调整、数据库的重组、数据库的重构、数据库的安全控制、数据的完整性控制、数据库的备份与恢复、数据库的优化和对用户提供技术支持。以下是对我要采用的数据库ACCESS的基本介绍。
3.3.1 ACCESS数据库的基本介绍
简单地说ASSESS就是一些关于某个特定主题或目的的信息集合。使用 Microsoft Access,可以在单一的数据库文件中管理所有的信息。在这个文件中,用户可以将自己的数据分别保存在各自独立的存储空间中,这些空间称作表;可以使用联机窗体来查看、添加及更新表中的数据;使用查询来查找并检索所要的数据;也可以使用报表以特定的版面布置来分析及打印数据。 如果要保存数据,请为每一种类型的信息创建一个表。如果要从查询、窗体或报表中的多个表中将数据合并在一起,就要定义各个表之间的关系。如果要搜索并检索符合指定条件的数据,包括来自多个表中的数据,就要创建查询。查询的同时也可以更新或删除多条记录,并对数据执行内嵌或自定义的计算。如果要简单地直接在某个表中查看、输入及更改数据,请创建一个窗体。在打开一个窗体时,Microsoft Access 将从一个或多个表中检索数据,并使用用户在“窗体向导”选择的版面布局或所创建的版面布局,将窗体显示在屏幕上。如果要分析数据或将数据以特定的方式打印出来,请创建一个报表。例如,可以打印一份将数据分组并计算数据总和的报表,也可以打印另一份带有各种数据格式的打印邮件标签的报表。
3.3.2 ACCESS数据库基本操作
数据库的结构创建好了,接下来我们需要做的就是对数据库进行一系列的基本操作。增加记录:在“数据表”视图或“窗体”视图中打开相应的窗体,单击工具栏上的“新记录“按钮 ,键入所需数据,然后按 TAB 键转至下一个字段,在记录末尾,按 TAB 键转至下一个记录。
编辑记录:如果要编辑字段中的数据,单击要编辑的字段,如果要替换整个字段的值,指向字段的最左边,在鼠标变为加号时,单击该字段,键入要插入的文本。
复制或移动数据:在其它应用程序,如Excel、Word中,选择要复制或移动的一至多行。如果是从Word中复制数据,应确保记录在选择之前已经在表中排列好或已经使用制表符分隔开,如果粘贴数据到数据表中,应确保数据表中的列与要复制或移动的数据的顺序一致,如果粘贴数据到窗体上,而窗体上相应的控件名称与复制数据的列名相同,Access 将粘贴数据到名称相同的控件上。在Access 中,打开要向其中粘贴记录的数据表或窗体,如果要替换现有记录,选择要替换的记录,然后单击工具栏上的“粘贴追加”或“粘贴”按钮 ;如果窗体中的记录选定器不可用,要选择当前记录,可单击“编辑”菜单中的“选择记录”命令。
删除记录:单击要删除的记录,单击工具栏上的“删除记录”按钮 。
排序记录:在“窗体”视图或“数据表”视图中,单击要用于排序记录的字段。单击鼠标右键,你就可以选择该字段的升序排序或降序排序。在数据表中,可以同时选择两个或更多相邻近字段进行分别排序。Microsoft Access 从选择的最左边的列开始排序记录。在保存窗体或数据表时,Microsoft Access 将保存该排序次序。
创建查询:利用查询可以通过不同的方法来查看、更改以及分析数据。也可以将查询作为窗体和报表的记录源,最常见的查询类型是选择查询。选择查询将安装指定的准则,从一个或多个表中获取数据,并按照所需的排列次序显示。
具体操作:单击数据库视图的“查询”,按“新建”,选择设计视图,“确定”,选择表和查询,添加表,然后按“添加”,在“选择查询”表中选择“字段”,并确定排序要求,最后保存查询,这样,一个选择查询就完成了。你也可以在“新建”中选择简单查询向导、交叉表查询向导、查找重复项查询向导、查询不匹配查询向导来建立查询【8】。
3.3.4 ACCESS在本系统中的应用
上一节对ACCESS有了大概的介绍,本系统要通过ACCESS完成数据的插入、查询、删除等功能,以下是我对本系统的具体设计过程。
1.系统功能介绍
建立Microsoft Access数据库,建立一个列表包含车辆信息,司机信息等插入多两车的信息,同时也可以删除没用的信息并且完成任意方式的查询,能进行最后的读取并且显示,完成这些功能基本上就能达到该系统的要求了。
2.ACCESS数据库的建立过程【10】
1)创建一个数据库
在启动 Microsoft Access 时,将自动显示对话框,上面有新建数据库或打开已有数据库的选项,请单击“空数据库”,然后单击“确定”。如果已经打开了数据库或当Access 打开时显示的对话框已经关闭,请单击工具栏上的“新建数据库”按钮,然后双击“常用”选项卡上的空数据库图标。指定数据库的名称及位置,并单击“创建”按钮。
2)连接至数据库
建立与数据库的连接非常简单,使用数据库的连接对象ADO.Connect,具体语法如下:
1:实例化一个连接对象:
Public aa_con ADODB.Connection
2:用连接对象属性设置连接参数:
aa_con.ConnectionString = “Provider=Microsoft.Jet.OLEDB.4.0;”_ & “Data Source=E:\db1.mdb;” & “Mode=ReadWrite”
aa_con.ConnectionTimeout = 30
3:建立连接
aa_con.Open
3)数据库的初始化
关键字:Create,具体语法如下:
aa_con.Execute (“create table cc(Mname char(32) ,MPWD_ CHAR(16))”)
aa_con.Execute(“create table dd(ENumber char(32)primary key,Ename_ char(16),Eage int,Edate char(32),Eadress char(128))”)
4)数据库的数据添加
关键字:Insert Into,具体语句如下:
1:整合要添加的语句:
ee= “INSERT INTO EMPLIST (ENumber,Ename,Eage,Edate,Eadress) values (”
ee = ee & “‘” & Trim(Text1.Text) & “‘,”
ee = ee & “‘” & Trim(Text2.Text) & “‘,”
ee = ee & Val(Text3.Text) & “,”
ee = ee & “‘” & Trim(Text4.Text) & “‘,”
ee = ee & “‘” & Trim(Text5.Text) & “‘)”
2:执行添加命令:
ExecuteSQL(ee)
5)数据的读取及显示
本设计使用VB开发环境中的MSFlexgrid控件进行数据显示,具体语法如下:
1:建表
msflexgrid1.Cols = 7
msflexgrid1.Row = 0
msflexgrid1.Col = 0
msflexgrid1.Text = “Enamber”
msflexgrid1.Col = 1
msflexgrid1.Text = “Ename”
msflexgrid1.Col = 2
msflexgrid1.Text = “Eage”
msflexgrid1.Col = 3
msflexgrid1.Text = “Edate”
msflexgrid1.Col = 4
msflexgrid1.Text = “adress”
2:输出数据:
Do While Not ff_dbrct.EOF
msflexgrid1.AddItem (Empty)
msflexgrid1.Row = msflexgrid1.Rows – 2
msflexgrid1.Col = 0
msflexgrid1.Text = CStr(ff_dbrct.Fields(“ENumber”).Value)
msflexgrid1.Col = 1
msflexgrid1.Text = CStr(ff_dbrct.Fields(“Ename”).Value)
msflexgrid1.Col = 2
msflexgrid1.Text = CStr(ff_dbrct.Fields(“Eage”).Value)
msflexgrid1.Col = 3
msflexgrid1.Text = CStr(ff_dbrct.Fields(“Edate”).Value)
msflexgrid1.Col = 4
msflexgrid1.Text = CStr(ff_dbrct.Fields(“Eadress”).Value)
ff_dbrct.MoveNext
Loop
3.3.4数据库在本程序中的应用
上边我们已经介绍了数据库的功能和优势了,这里主要说明一下数据库在我们这个系统的应用。
1.数据发送端
主要是在进出的车辆上,数据库承载了车辆的信息,然后从中提取通过501发送到接收端上,完成信息的无线传输。
2.数据接收端
通过501接收数据并且对接收到的数据进行相应的处理,就是上边提到的,插入,查询等
3.4系统流程图

3.5系统部分界面及系统功能程序实现

图 3.3 系统程序界面

图3.4系统程序界面

1:汽车端发送-检测重传-确认结束过程的代码实现:
Call QueryEmpInfo(aa) ‘从数据库中获取数据
car_dbrct.MoveFirst
strinsertsql = “INSERT INTO door (车牌号,司机代号,司机姓名) values (”
strinsertsql = strinsertsql & “‘” & CStr(car_dbrct.Fields(“车牌号”).Value) & “‘,”
strinsertsql = strinsertsql & “‘” & CStr(car_dbrct.Fields(“司机代号”).Value) & “‘,”
strinsertsql = strinsertsql & “‘” & CStr(car_dbrct.Fields(“司机姓名”).Value) & “‘)”
Text1.Text = strinsertsql

Line1:
MSComm1.Output = strinsertsql ‘发送数据
Timer1.Enabled = True

line2:
InPutMember = MSComm1.Input ‘读取确认数据

Text2.Text = InPutMember ‘查看确认数据

If InPutMember = Empty Then ‘没有确认数据继续接收
GoTo line2
End If

If InPutMember = Fail Then ‘有错误从新发送
GoTo Line1
End If

If InPutMember <> Success Then ‘报错

MsgBox “错误”
End If

Call DisConnect ‘关闭数据库
MSComm1.PortOpen = False
2:门卫端检测信号-差错检验-信号入库过程的代码实现:
Success = “success” ‘定义确认信号
Fail = “fail” ‘定义错误信号

aa = “select*from temp where(车牌号<>‘0′)”
dd = “select*from door where (车牌号=bb)”

Line1:

InPutMember = MSComm1.Input ‘检测汽车端信号

If InPutMember = Empty Then ‘判断是否为空
GoTo Line1
End If

Timer1.Enabled = True ‘打开计时器1
Delay = 1

line2:
If Delay = 1 Then
GoTo line2
End If

MSComm1.Output = Success ‘发送确认信号

Private Sub Timer1_Timer() ‘计时器1超时处理
Timer1.Enabled = False
Delay = 2
End Sub

Call ExecuteSQLTemp(InPutMember) ‘信息入库

Call QueryTemp ‘信息查询

temp_dbrct.MoveLast
bb = temp_dbrct.Fields(“车牌号”).Value

Call QueryEmpInfo(dd)

If ((door_dbrct.EOF) And (door_dbrct.BOF)) Then
Frmshow.Show
Else
MsgBox “请进” ‘模拟开门动作
Call ExecuteSQL(InPutMember)
GoTo Line1 ‘继续检测
End If

第四章 结束语
4.1结论总结
本设计利用了RFID技术,通过利用上海桑锐公司的SRWF-501无线模块与RS232共同实现, 辆出入无线管理与调度系统提供信息采集功能.设计同时用了VB语言对RS232通信和ACESS数据库进行编程,取得了良好的试验效果.
系统实现了进出车辆到达门前确认信息,通过RS232上的桑锐501把信息放送往门卫控制端,控制端桑瑞501接收车辆信息并作奇偶校验把数据传给RS232,系统会接收RS232的信息并存入数据库,控制端的数据库能查询所有信息包括车牌号司机号等(陌生车辆由有一个询问控制端的过程,由控制端决定是否让其进入)
本系统尽管在系统的优化,设计思想,界面等方面还有很多需要改进的地方,经过作者三个多月的设计、运行、调试,现已基本完成,并且己通过了测试,本系统实现了上述的功能,证明了硬件的连接及软件的设计思想和方法是可行的.
4.2未来展望
车辆的无线管理与调度系统正是基于这种技术是RFID技术最成功的应用之一。目前中国的车辆发展非常快,国家和私人的车辆拥有量越来越多,车辆管理的先决条件就是有高效的车辆管理方法,RFID技术应用在车辆管理上能够充分体现它非接触识别的优势。让车辆高速通过门口解决了交通堵塞的问题,同时也安全的对整个停车厂有了更安全的管理。本系统的使用了桑锐501实现了无线数据的传输,使得司机无需下车自动就能把车辆信息传送到控制台,控制台电脑能迅速的核对信息做出相应的动作,大部分工作是由电脑完成的,他的效率和安全性上都有了很大的提高。因此我相信本系统的设计完成会对车辆管理做出很大的贡献,它在中国的前景必然是一片光明的。
但由于时间、硬件条件、技术水平的限制,系统还有许多不够完善的地方.硬件的供电问题,发送正确信息的稳定性上都需要在以后的研究中进行改进.

参考文献

[1]王力奇.清华同方RIDF远距离车辆进出管理系统[N].Card World杂志,2002.5.
[2]王桂涛.基于RFID的远距离车辆进出管理系统[M].北京:北京工业大学出版社,2003.
[3]余平.小区智能管理停车系统方案[R].长沙:国防科大研究所,2003.
[4]Want,Roy.RFID:A Key to Automating Everything][N].Scientific American,2003.3.
[5]上海桑锐电子科技有限公司.SRWF-501模块使用说明书[EB/OL],2005
[6]李群芳,黄建.单片微型计算机与接口技术[M].北京:电子工业出版社,2001
[7]刘文波、张弓.《解决RS-232长距离串行通信的一种实用方法》[J].国外电子元器件,2000.5
[8]范逸之,陈立元.Visual Basic与RS-232串行通信控制[M].北京:中国青年出版社, 2002.
[9]李旭,数据通信技术教程[M].北京:机械工业出版社,2001 .
[10]李禹生,向云柱.数据库应用技术—Access及其应用系统开发[M].北京:中国水利水电出版社,2001.5.

附录
本程序VB程序代码:
1:汽车端:
Option Explicit

2:门卫端