1、用 ASP 技术开发基于 B/S 模式的学科导航系统王 昕(上海交通大学 图书馆参考咨询部 上海,200030)摘要 本文分析了 Browser/Client 结构的特点,认为导航系统运用该结构是可行的。同时列举了把 B/S 结构应用到导航系统设计的优点。 ASP 作为流行的动态网站开发工具,很适合开发导航系统,可以完成数据更新的动态操作。文中介绍了 ASP 的工作流程,运用ASP 开发 WEB 应用程序的关键技术和访问数据库的方法。介绍了整个系统的设计规划,系统结构、数据库设计时元数据的应用、系统功能的分析以及系统各功能模块的详细设计和部分代码。关键词 ASP、 Browser/Client
2、、学科导航、导航技术、Development of a Subject Navigation System based on B/S mode with ASPWang Xin(Shanghai Jiao Tong University library 200030)Abstract The features of the Browser/Client structure are analyzed. It is feasible to design a navigation system by adopting this structure with demonstration of seve
3、ral advantages. As a popular solution of developing a dynamic web site, ASP is very suitable for developing a navigation system. In this article, the working flow of ASP is introduced. The key point and method of designing web database of application are described in detail. The design plan and syst
4、em structure of the navigation system are introduced. At last, the author describes an approach of how to use core data in designing the data table of the system and how to analyze the functions of the navigation system and some code of it.Key words ASP Browser/Client Subject Navigation Navigation T
5、echnology引言因特网是个浩瀚的信息海洋,目前 WEB 上的文献检索手段还不能完全适应科技学术信息检索的需求。特别是对于初次进入某一领域的研究人员来说,得不到系统的学科知识体系的指导,他们对该领域的一些认识还是模糊的。面对这一背景,图书馆在数字化建设过程中,主动承担学科导航系统建设的任务,向研究型读者提供学科导航数据库,以提高重点学科学术文献信息的质量。本文探讨了用ASP 开发 B/S 模式有数据库作后台支持的学科导航的原理和具体实践。1 基于 B/S 结构的数据库访问模式1.1 三层 Browser/Server 结构B/S 结构是真正的三层结构,它以访问 WEB 数据库为中心,HTT
6、P 为传输协议,客户端通过浏览器(Browser)访问 WEB 服务器和与其相连的后台数据库,我们称之为B/S(Browser/Server)模式。其三级结构组成如下图所示:客户端WEB 服务器 后台数据库客户端图中从左到右,分为三个层次:第一层是客户端即浏览器,主要完成客户和后台的交互及最终查询结果的输出功能。在客户端向指定的 Web 服务器提出服务器请求,Web 服务器用 HTTP 协议把所需文件资料传给用户,客户端接受并显示在 WWW 浏览器上;第二层 Web 服务器是功能层,完成客户的应用功能,即 Web 服务器接受客户请求,并与后台数据库连接,进行申请处理,然后将处理结果返回 Web
7、 服务器,再传至客户端;第三层数据库服务器是数据层。数据库服务器应客户请求独立地进行各种处理。与传统的 C/S 模式相比,B/S 结构把处理功能全部移植到了服务器端,用户的请求通过浏览器发出,无论是使用和数据库维护上都比传统模式更加经济方便。而且使维护任务层次化:管理员负责服务器硬件日常管理和维护,系统维护人员负责后台数据库数据更新维护。由以上的比较分析可知,三层结构也可以理解为增加 WEB 服务器的 C/S 模式。1.2 B/S 模式应用到学科导航系统的设计采用 B/S 模式,突破传统的文件共享模式,为学科导航的设计提供新的解决方案。借助 ASP 的 WEB 应用程序,用户通过 Browse
8、r 软件连接后台数据库并完成做操作,将原有学科导航静态网页的形式升级到动态更新数据的方式。B/S 模式的学科导航,数据维护方便客户端无需专用的软件,有较好的网络扩展性,支持 TCP/IP 协议直接接入 Internet, 。同时对于 B/S 模式而言,程序和数据的物理位置已经不再是那么重要了,访问者所关心的只是它们的 URL 就可以了。良好的安全性能,防火墙技术可以保证后台数据库的安全性,如果结合 Windows 2000 与 Internet Information Server 的高度安全性,使用户可以实现系统的安全。2 用 ASP 开发 WEB 数据库应用程序ASP 是( Active
9、Server Pages)的简称,它是一个 WEB 应用程序环境,应用于WINDOWS 系统。通过 ASP,开发人员可以使用多种开发工具来组合 HTML 代码,可以利用本地服务器或远程服务器上运行的组件来存取数据库、应用程序或处理信息,实现强大的 WEB 应用。考虑到导航系统需要对数据库操作以及动态更新的特点,ASP 是理想的开发方式。ASP 工作流程是:先由客户端发出 HTML 请求到 WEB 服务器,WEB 服务器根据客户请求向数据库服务器发出数据查询请求,数据库服务器将返回查询结果到 WEB 服务器,再由 WEB 服务器返回给客户端。 ASP 的强大功能都可通过调用内建对象来实现。2.1
10、 ASP 的内建对象和调用ASP 提供的内建对象使用户更容易收集通过浏览器请求发送的信息、响应浏览器以及存储用户信息。有了这些对象可以使 ASP 的功能更强大。所谓对象就是一段封装的完整的软件模块。这些对象之间通过属性来传递参数,在设计 ASP 时经常需要调用各种对象来实现开发动态数据库访问的功能。ASP 有六个内建对象:Application、Request 、Response、Server 、Session 和 ObjectContext。2.1.1 HTTP 的客户请求/服务器响应在 B/S 层次的结构体系中,客户端的请求都是通过浏览器发出 HTTP 的请求,而服务器是将后台数据库根据客
11、户端请求运行的结果返回给客户端的浏览器环境中。调用Request 和 Response 对象可以实现 HTTP 客户请求/服务器响应的机制。HTML 表单是收集 Web 信息最常用的方法,是在 Web 页上提供用户界面控件的特殊的 HTML 标记的排列。文本框、按钮和复选框都是典型的控件,这些控件使用户和 Web 页实现交互,并且将信息提交给 Web 服务器。具体的引用方式实例如: password=Request.Form(“password”)调用 Request 对象的 Form 集合,将表单中值域名为 password 的值赋给变量password,以便后续的操作可以方便将变量 pas
12、sword 中的值传递给后台数据库中。通过调用 Request.Form 就实现了 FORM 表单的信息提取。当服务器端向客户端发送数据时,可以调用 Response 对象。它与 Request 对象形成了客户请求/服务响应的模式。而且 Response 对象示必须的发送给客户端浏览器的唯一对象。常用的 Response 响应方法有以下两种:(1) Response.Write 方法: 这是一种最常用的 Response 的响应方法。可以简写为,当后台数据库经过 SQL语言的处理后的结果要返回到客户端的浏览器时,在编写 ASP 文件时,就可以使用这个方法显示出相应的记录。例如,在设计导航系统中
13、修改学科信息模块中,对于处理修改信息表单的 ASP 文件就用到这一方法。通过它来实现将数据库中原来的记录内容返回到客户端浏览器并显示,这样用户就可以在读取原来数据并根据需要作出修改。(2) Response.Redirect 方法:这一方法的作用时将指示客户端浏览器重定向到另一WEB 页上。语法如下: “Request.Redirect URL”。通过这样的方法可以方便的引导用户进入正确的 WEB 页面。2.1.2 Server 对象Server 对象提供了服务器端的服务功能。常用的方法有:(1) CreateObject 方法:用来创建服务器组件的实例。该方法可以很方便地扩展WEB 服务器的
14、功能,引入了 ActiveX 后,这使得 ASP 的功能可以无限制地被扩展。同时,IIS 还提供了若干各可安装的 ASP 组件。大大增强了 ASP 的功能。比如:Set Conn=Server.CreateObject(ADODB.Connection)(2) MapPath 方法:用于返回虚拟目录在 WEB 服务器上的真实的物理路径。语法: Server.MapPath ( VirtualPath)该方法只是返回物理路径2.1.3 Session 对象在 Internet 上 HTTP 协议是基于无连接的通信协议。当用户浏览器发送一个 HTTP 请求后,WEB 服务器将用户请求的数据返回给请
15、求用户,然后断开连接,不记录这次连接的状态。这给为实现特定用户服务功能的程序带来了困难。为了克服这个缺点,ASP 提供了Session 对象用于实现对特定用户的管理。同一个用户在不同页面间浏览,使用传统的HTTP 协议是无法确定用户连接状态和不能数据共享的;而使用 Session 对象可以实现这个功能,可以判断用户连接是否超时,页可以使用在以前页面定义的属于该用户绘画的数据实现了数据的共享。2.2 ASP 访问数据库2.2.1 数据库操作语言(DML)DML 包含了对数据进行操作的所有指令。操作数据库的指令通常有四种:检索、插入、删除和更新。DDL 语句是创建数据库和表时使用,那么 DDL 语
16、句将在开发 ASP 程序特别是实现对数据库操作的部分频繁的使用。这也是整个系统开发过程中一个及其重要的部分。2.2.2 ADO 对象访问数据库ADO 是一组实现访问数据库操作的专用对象集,它为 ASP 提供了完整的房屋数据库解决方案。ADO 对象在服务器端执行,并向客户端提供含有数据库信息的内容,客户端也可以根据指定的权限返回参数来对数据库进行读写等操作。ADO 中包含许多对象,其中 Connection 对象和 Recordset 对象主要用于控制数据库存取,要建立一次数据库访问首先要创建一个 Connection 对象,然后用基于这个Connection 对象的 Recordset 对象来
17、完成对数据库从操作。3 学科导航系统的设计规划3.1 工作流程和系统结构导航系统以专业学科作为父类,在下一级中扩展若干子类如研究机构、电子出版物、学术会议、产品市场、资源站点等。在建立系统数据库时,按照各子类的内容收集资源信息,同时还注意对信息元数据的保存。下图是学科导航的系统结构图。入库、发布系统工作流程中,要对资源信息数据做好元数据抽取及标识,并按照系统定义的分类标准规类。采用 B/S 结构,馆员数据入库和发布的操作都在客户端浏览器上完成,馆员对系统数据库需要一定的操作权限,为了系统安全,馆员通过用户登录验证后进入系统,完成对数据库的操作。3.2 数据库表的设计设计数据库表的字段时,需要考
18、虑到元数据概念的引入。仅仅有一个简单的网络信息资源 URL,是不够的。引入 DC 元数据概念后,可以用一套规范化的数据结构来描述在学科导航中出现的数字化信息资源。DC 元数据作为简单描述网络信息资源的元数据集,简单易于理解,扩展性好,而且众多项目采用 DC 元数据元素。DC 元数据元素一共是 15 个,而学科导航系统主要提供的是网络资源导航和链接,选择 DC 元数据中的以下几个元素作为学科导航资源的描述字段:(1) 资源名称(title):由资源创建者或出版者给定的资源名称。(2) 语种(Language ):资源知识内容的主要语言。(3) 关键词(Subject):资源的主题或内容关键词。(
19、4) 标识(Identifier):用来唯一标识资源的字串或数字,在导航系统中此处采用统一资源定位器 URL。(5) 描述(Discription):对于资源内容的简单描述。(6) 出版者(Publisher):描述资源的责任者,如出版社、大学院系、科研机构等。这六个元素基本都按照 DC 元数据核心元素的语义定义学科导航库中记录的字段内容和含义。同时这些元素给出了网络资源的名称、内容、主题、URL 地址、范围等方面的信因特网资源馆员采集数据元数据抽取、评估、整理 数据库 WEB 服务器用 户息,反映了资源的基本情况以及可靠性、权威性,较全面的提供资源选择参考 ,完全能起到导航作用。3.3 系统
20、功能概述用 ASP 作为编程语言,引入后台数据库的支持,开发能实现动态更新的学科导航系统。系统采用 Browser/Server 结构,客户端用户使用浏览器完成操作。系统向工作人员提供简单易操作的界面,工作人员登录系统后,可对数据库做添加、修改、删除操作。建库时,根据要求添加学科大类和各个学科的子类,在每个子类中加入整理好的 URL 数据和相应的元数据。普通用户可以浏览和查询系统数据,此外系统还提供用户交互功能,可以在线评论系统内的数据质量或者推荐有价值的资源。4 系统功能详细设计和实现4.1 数据库的连接Access 是文件型数据库,一个文件就是一个数据库,可以利用 ASP 中的语法直接连接
21、。在连接数据库之前,必须先声明一个对象来当作数据库与 ASP 程序之间的媒介,具体连接方式如下:set conn1 = Server.CreateObject(“ADODB.Connection”) DBPath = Server.MapPath(“nav.mdb”) conn1.Open “driver=Microsoft Access Driver (*.mdb);dbq=“ driver=microsoft access driver(*.mdb);”在打开数据库并完成相应的操作后,应关闭数据库连接。当不再需要连接时将其关闭,可以减少对数据库服务器的要求并可以使其他用户能够使用该连接。用
22、 Connection 对象的 Close 方法终止 Connection 对象和数据库之间的连接。下面的脚本打开连接,然后将其关闭:4.2 用户登录的验证通过从用户登录页上收集到的用户名和密码信息,调用用户登录验证的 ASP 文件,查询表中同时满足用户名和密码的条件的记录,通过记录指针 re.bof 和 rs.eof 的位置来判断该记录是否存在于表中,如果正确则进入系统,不正确则显示相应的错误信息。验证过程的具体实现算法如下:4.3 数据添加向数据库添加数据:运用 SQL 语句中的 insert 实现数据的添加。sql1=“insert into nav(x1,x2,x3) values (
23、“&x1&”,“&x2&”,“&x3&”)”set rs1=conn1.Execute(sql1)4.4 数据修改修改数据时,通过表单传递数据,用 recordset 对象的 update 方法更新数据库内的数据。set rs=server.createobject(“adodb.recordset“)sql=“select * from zhu where zhuid=“&Request.QueryString(“zhuid“)rs.open sql,conn,1,3rs(“zhu“)=request.form(“zhu“)rs.updaters.close4.5 数据删除运用数据库操作语言
24、,完成删除数据的操作。如:delsql=“delete from learning where typeid=“&rs(“typeid“)5 总结和展望本文提出基于 B/S 结构的学科导航系统,并介绍了用 ASP 开发该系统的原理以及系统主要功能模块具体实现和部分代码。建立这样的导航系统后,图书馆可以更快更及时的作好系统数据的维护工作并借助系统实现与用户之间的互动交流。建立专业化的学科导航系统,对网络资源的二次开发共享和教学科研水平的提高都具有实际的应用意义。将来在现有基础上,导航系统更要注重功能上的拓展,向学科门户网站的方向发展。学科导航收集各学科的专业信息,是一个信息门户,增加系统和用户间
25、的互动交流后,成为集成信息和相关内容的知识平台,在用户应用方面增加学科信息定制功能,提高积极的文献服务。将这几点有机整合成为导航门户网站,可以成为具有权威学术专业信息的知识导航库。参考文献1徐佳宁DC 元数据在网络资源学科导航体系中的应用研究 ,图书馆建设,2002(1)2汪洋,董宝田, 利用 ASP 技术实现企业管理信息系统向 3 层结构移植 , 微计算机应用 ,第 22 卷第 5 期,2001 年 9 月3洪锡军等, 利用 ASP 进行 WEB 动态信息发布的关键技术 , 计算机应用 ,Vol.21,No.8, 2001.84刘冬杰, 利用 ASP 向 WEB 数据库添加修改删除数据 ,Application of the computer system,2001.65重点学科网上资源,http:/ 昕,男,上海交通大学参考咨询部工作,助理馆员。本文发表在上海交通大学学报2003 年增刊