(动力机械及工程专业论文)asp环境下远程故障诊断服务器端功能开发.pdf_第1页
(动力机械及工程专业论文)asp环境下远程故障诊断服务器端功能开发.pdf_第2页
(动力机械及工程专业论文)asp环境下远程故障诊断服务器端功能开发.pdf_第3页
(动力机械及工程专业论文)asp环境下远程故障诊断服务器端功能开发.pdf_第4页
(动力机械及工程专业论文)asp环境下远程故障诊断服务器端功能开发.pdf_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

东南大学硕士论文 中文摘要 当前, 由 于电 力事业的 发展, 汽轮发电 机组正朝着大型化,自 动化的方向发 展,这样会带来各种经济上的 好处, 例如:提高效率、节约能源、降低成本等。 但同时也会对机组运行的可靠性, 安全性提出更高的要求。 如何对机组振动进行 有效的诊断己 经成为一项重要的课题。 互联网 络技术的发展, 通信传输技术和智 能诊断技术的进步都使得远程进行故障诊断成为可能。 本文主要研究了 远程诊断 中 心 服务 器 端部分 功能的 开 发与 实 现。 论文主要包括三方面内容: 1 : a c t i v e x数据对象( a d o , a c t iv e x d a t a o b j e c t s ) 和动态服务网 页( a s p , a c t iv e s e r v e r p a g e s ) 的 介 绍 。 2 : 远程故障诊断 服务器端功能开发:部分网 络功能 ( 留 言本, b b s 论坛, 聊天室和刚性转子动平衡计算)的实现和远程数据访问的实现。 3 :最后的总结介绍了尚需完善和补充的部分。 关键词: a c t iv e x数 据 对 象( a d o , a c t iv e x d a t a 啊e c t s ) , a c t i v e s e r v e r p a g e s ) , 远 程 数 据 访问 , 远 程 数 据 服务 ( r d s 故障诊断 动态服务网页 ( a s p , r e m o t e d a t a s e r v i c e s ) , 东南大学硕士论文 abs tract a s t i m e g o e s b y , t u r b o u n i t s a r e d e v e l o p e d t o b e m o r e p o w e r f u l . p e o p l e c a n b e n e f i t m u c h m o r e t h a n b e f o r e fr o m t h i s t r e n d b e c a u s e o f t h e h i g h e r e f f i c i e n c y , w h e r e a s t h e y m u s t f a c e o t h e r p r o b l e m s t h a t r e s u lt fr o m t h i s c h a n g e . o n e o f t h o s e i s h o w t o m o n it o r t h e s t a t e o f v i b r a t i o n a n d h o w t o d i a g n o s e t h e t r o u b l e im m e d i a t e l y . l u c k i l y , t h e w i d e u s e o f i n t e rn e t a n d t h e i m p r o v e m e n t o f c o m m u n i c a t i o n t e c h n o l o g y m a k e t h e r e m o t e d i a g n o s i s s y s t e m t ru e . t h e p a p e r m a i n l y f o c u s e s o n h o w t o r e a l i z e p a r t f u n c t i o n o f t h e r e m o t e d i a g n o s i s s e r v i c e , i n c lu d i n g : 1 : i n t r o d u c e t h e a c t iv e x d a t e o b j e c t s a n d a c t i v e s e r v e r p a g e s . 2 : i n t r o d u c e t h e d e s i g n i n d e t a i l , i n c l u d in g t h e d e s i g n o f n o t e b o o k , b b s , c h a tt i n g r o o m , c a l c u l a t i o n a n d t h e r e m o t e d a t e a c c e s s . 3 : d r a w a c o n c lu s i o n a n d p o i n t o u t t h e d e f e c t o f t h e d e s i g n . k e y w o r d s : a c t i v e x d a t e o b j e c t s a c t i v e s e r v e r p a g e s . r e m o t e d a t a s e r v i c e s f a u l t d i a g n o s i s y 5 8 2 3 5 2 学位论文独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得 的研究成果。 尽我所知, 除了文中特别加以 标注和致谢的地方外, 论文中不包含 其他人且经发表或撰写过的 研究成果, 也不包含为获得东南大学或其他教育机构 的学位或证书而使用过的 材料。 与我一同 工作的同 志 对本研究所做的 任何贡献均 已 在论文中作了明确的说明并表示了谢意. 签 名 永幻良日 期: 0 2 0 好. 多 . - z 关于学位论文使用授权的说明 东南大学、 中国 科学技术信息 研究所、 国家图书 馆有权保留 本人所交的学位 论文的复印件和电子文档, 可以 采用影印、 缩印或其他复制手段保存论文。 本人 电 子文档的内 容和纸质论文的内 容一致。 除在保密期内的 保密论文外, 允许论文 被 查阅和借阅, 可以 公 布( 包括刊登) 论文的 全部内 容或部 分内 容。 论文的公布 ( 包括刊登) 授权东南大学研究生院办理。 签名导师签 日 期:o l p o 多 . 少 . , 东南大学硕士论文 第一章绪论 第一节 背景 当前, 由于电力事业的发展, 汽轮发电机组正朝着大型化,自 动化的方向发 展, 这样会带来各种经济上的好处, 例如:提高效率、节约能源、降低成本等。 但同时也会对机组运行的可靠性, 安全性提出更高的要求。 其中, 发展和推广汽 轮发电机组振动的监测和诊断技术尤其显得重要。 在运行中, 通过振动监测, 可 以 对汽轮发电 机组转轴裂纹、 汽轮机叶片脱落、 转轴套装零件松脱, 转轴径向 摩 擦、 发电机转子通风孔堵塞等多种故障做出明确诊断, 及时发现隐患和预防更大 的事故发生。 随 着工业技术的 进步和测量通信技术的发展, 振动监测和诊断系统 经历了 单机监测诊断系统, 分布式检测诊断系统 ( d m d s ) 和网络监测诊断系统 等模式, 特别是由 于计算机技术和互联网的 应用, 使得资源共享变得更直观和更 容易实现。这些都为把远程故障诊断的实现提供了基础。 开始采用的远程故障诊断 模型是基于客户枷服务器的结构体系,且绝大多数 充当 服务器的是大型数据库管理系统。 具有交互性强等特点, 但也存在维 护较为 困 难, 用户界面风格不一等缺陷。 随着基于we b的 信息发布和检索技术的 发展, 体系结构开始转向灵活的多级分布式。 这种新型的结构体系就是浏览器 / 服务器 系统。 数据和应用程序都放着服务器上, 用户可以通过浏览器对服务器进行访问。 这种结构体系下, 用户界面完全通过浏览器实 现。 一部分事务逻辑在前端实 现。 这样的模式因为采用了 标准的t c p / i p , h t t p 协议, 具有良 好的 扩展性, 且信息 共享度比较高。 以上两种应用模式采用两层方式:客户直接与服务器进行通信。客户端从服 务器端取来原始的或者是不完全处理过的数据, 然后在本地桌面对这些数据进行 处理。这些应用程序主 要是由 第三代语言, 例如: d e l p h i , v i s u a l c + 十 或是v i s u a l b a s i c 编写完成的。 通过大量的 代码, 这种应用程序可以 提供相当 强的 处理功能。 尽管如此, 人们却发现这些应用程序通过i n t e rn e t 进行发布和安装却并不理想。 其中一个主要原因 就是下载这些安装程序的时间太长, 而且, 通常很难知道客户 机上会使用什么样的操作系统。 由 mi c r o s o ft公司提出的分布式网际应用程序体系结构 ( w i n d o w s d n a d i s t ri b u t e d i n t e rn e t a p p l i c a t i o n a r c h it e c t u r e ) 就问 题的 解决 提 供了 较好的 途径。 w i n d o w s d n a体系结构使用了三层体系结构: 包括数据层、事务逻辑层以 及用 户层。 根据其向应用程序的其他部分所提供的事务的特性, 每一层都封装了一个特 东南大学硕士论文 殊类型的功能模块; 并且每一层都能独立实现。 通常情况下, 每一层都位于不同 的 机器上, 从而提供最高层的 可扩展性和性能, 同时也为后续开发和维护提供了 灵活性。 其中, 数据层包括了 所有的应用程序或是为应用程序提供数据的数据存 储过程。 事务逻辑层提供事务规则, 此层的绝大部分都与其他的 应用程序进行交 互, 它负责接受来自 表示层的 请求并为该层提供数据, 而它则靠其与数据层的 交 互中 获得数据。本层使用组件对象模型( c o m c o m p o n e n t o b j e c t m o d e l ) 的 标准来 创建为一个多个动态链接库的形式。 通过使用c o m标准, 应用程序的各层就可 以与所创建的动态链接库 ( d l l ) 进行交互, 而且, 甚至这些动态链接库与其他 的 层可以 是由 不同的语言创建的。 表示层也称为用户层, 代表所有与用户的交互 活动所发生的这一层, 本层由 所有h t ml 、 组件、 图形等内容组成。 这些内容通 常用于浏览器中,浏览器中可以包括可执行代码 ( 如 j a v a s c ri p t 脚本) 、动态 h t m l . j a v a a p p l e t s 以 及a c t iv e x 控 件。 客 户 方 代码 则 用于 数 据 验证 这 样的 情 况,还可以用于对经常使用的用户数据进行缓冲以助于减少对其他层的访问。 第二节 数据存储访问技术介绍 本文主要介绍用a s p 进行远程故障诊断服务端的搭建, 其中数据存储和访问 是关键, 因 此先在此介绍一下数据存储访问 技术的发展。 在早期的 大型机中, 绝 大部分的 处理能力来自 于单一的 功能强大的机器。 数据和源代码往往是由 简单的 磁带设备或穿孔卡输入设备来 提供的。 程序依赖于唯一的数据访问 形式, 而所访 问的数据则存在与主机相连的设备上。 访问主机的工作站是简单的终端, 除了交 付用于输入的 文本表格外, 几乎不做别的事。 而需要在终端上运行的数据也是非 常的少, 是典型的瘦客户. 主机和其外围设备之间的通信相对较为简单, 这是由 于其命令主要是限于启动程序, 依据某些本地数据源对数据进行读写, 并将结果 送到打印机或显示终端上。 当一个程序需要对数据进行读写时,它使用其例程来执行数据访问,这些例 程是使用该程序专有的 技术和自 定义文件格式而创建的。 由 于缺乏广泛认可的标 准, 因 此这时只能使用自 定义的文件格式。 最后, 随着计算机的普及, 逐步完善 了标准。同样,数据库的标准也就这样建立起来。 现今而言, 数据库是唯一一种最具有影响力的 应用程序类型。数据库系统为 开发人员提供了 用来存储和检索数据的 工具集。 使得开发人员可以 将精力 集中于 如何处理数据这个问题上.目 前, 应用的最为广泛的数据库系统就是关系型数据 库。 这种类型的数据库表格的 一个集合来存储数据。 但是, 在访问 存储在各种数 据库中的数据时往往意味着要涉及到专有的数据访问接口。 这也就意味着这些数 据库的构件和维护费用通常比 较高。 随着p c在工作中的 广泛使用, 人们己经意 东南大学硕士论文 识到从后端数据库导入数据并在台式机上执行额外处理的优势。 这时, 远程访问 工具和仿真程序就开始发布了。 数据库厂商开始提供一些接口, 用来通过编程实 现对数据的访问。这种方法创建了客户机/ 服务器的开端,但同时,数据访问接 口 和文件格式的增值部分创建、 维护的复杂性, 降 低了该模型的效率。 于是,出 现了 开放式 数据互 联 ( o d b c , o p e n d a t a b a s e c o n n e c t i v i t y ) 的 概念。 用 户可以 通 过加载连接到数据库的驱动程序来建立与各种数据库的 连接。更让人欣喜的是, 通过o d b c不仅可以 访问a c c e s s , s q l s e r v e r , o r a c l e 等关系数据库, 而且可以 访问e x c e l 电子表格以 及a s c ii数据文件等非数据库对象。继o d b c之后, 微 软公司又连接发布了 数据访问 对象( d a o , d a t a a c c e s s o b j e c t s ) 和远程数据对象 ( r d o , r e m o t e d a t a o b j e c t s ) a 在后来推出的w i n d o w s d n a体系结构中, 通常使用a c t i v e x数据对象( a d o , a c t iv e x d a t e o b j e c t s ) 作为 数 据 访问 技术, 它 也是 通 用 数 据 访问( u d a , u n iv e r s a l d a t a a c c e s s )的核心技术。a d o并不依赖于任何一种特定的编程语言。它可以 在许多编程语言中 使用, 例如c / c + + , j a v a , v i s u a l b a s i c 等。 本文将在第二章着重 介绍a d o技术。 东南大学硕士论文 第二章 a c t iv e x数据对象与 动态服务网 页 第一节 a c t i v e x数据对象 2 . 1 . 1 a d o的发展 正 如 前 面提 到的, a c t iv e x 数 据 对象 ( a d o , a c t i v e x d a t a o b j e c t s ) 是 通 用 数据 访问( u d a , u n i v e r s a l d a t a a c c e s s ) 的 核 心技术。 但是 最初a d o的 发展却 并非顺利。 a d o l 0在 1 9 % 年作为一个对象库与 o l e d b捆绑在一起,它是 mi c r o s o ft i n t e rn e t i n f o r m a t i o n s e r v e r ( i i s )的一个组成部分。 最初版本的a d o 并没有引起人们太多的好奇,它虽然引入了 远程数据服务 ( r d s , r e m o t e d a t a s e r v i c e s ) , 但在其他功能上甚至不如原来的d a o和r d o 。 直到a d 0 2 .0 版本的 发布, 才使得大家对它产生 较大兴趣。 在这个版本中, a d o在功能上已 经和r d o 和d a o相近,而且在性能和灵巧方面略胜一筹, 然而,它追主要的特征是支持 o l e d b 。所有的a d o数据访问都通过o l e d b ,甚至在明确声明使用o d b c 的情况下也是如此。 后来又有a d o 2 . 1 和a d o 2 .5 版本。 a d o 2 .5 版本是随着 w i n d o w s 2 0 0 0 一起发布的, 它的 特征是增加了 一对新对象, r e c o r d 和s t r e a m , 这 些 使 得 它 增 加 了 处 理 单 个 字 段 中 内 容 的 方 法 , 而 且 , a d o 弄 5 允 许 使 用 统 一 资 源定位器 ( u r l ) 来作为一个特定的a d o c o n n e c t i o n 对象指定数据源。 a d o + 则是a d o的最新版本,它被设计用来提高平台的互用性, 并且是构成网络平台 的 一 部 分。 它的 特 性 是 广 泛 的 应 用 强 壮的 类 型 编 程 s tr o n g ly t y p e d p r o gr a m m in g ) , 这种方法中 显著的出 现了事务对象 ( b u s i n e s s o b j e c t ) . a d o 十 中的一个关键概念 是数据集 ( d a t a s e t ) ,它是数据库数据在内存的一个备份。因为数据集存在内存 中, 使得运行速度加快。 数据集通过一个中间层的 事务对象, 从数据库传送到用 户接口, a d o +应用x m l 来确保数据传输的稳定 性和持久 性。 2 . 1 . 2 o l e d b和 a d o a d o的基本原理很简单, 那就是使用一种编程方式获得任何数据源上的数 据。 a d o 和o l e d b 实 际 上同 一 种 技 术的 两种 表 现形 式。 u d a 的 最 核 心 技 术 是 o l e d b , 它是一个基于c o m的 规范, 定义了 数据显示的 方法和客户访问它的 方法。 它是一个低级层, 在客户应用程序与数据提供者封装的数据源之间起着中 间件的作用。 o l e d b基于c o m并广泛的 使用接口 ,与 接口 打交道相对来说是 比 较困 难的 编 程 任务, 只 有高 级c + 程序 员 才能 承 担, 然 而, 许多 应 用 程 序是 用v i s u a l b a s i c 或者a s p编写的, 这些语言不能直接实现o l e d b接口。 正是因 为这样, 微软推出了a d o , a d o提供了一个对象模型, 简化了 应用程序中 使用 o l e d b获取数据的过程。 为了便于理解, 我们可以 认为o l e d b 是针对数据库 的汇编语言,而a d o是架构在这个汇编语言上的高级语言。图 1 显示了d n a 东南大学硕士论文 模型下的数据访问结构图。 应用程序 一 a.栗班噩一 asp 1m iy1t-mdac.s i i i c o m i匕一一一尘竺竺翌坚兰丝址一一一 _ _ d c o m /!一 s u a p r -一一 一 一一二丁 i一 一 一 一7 cow 立二亡 de-z 亡 s q l 数 据半 结 构化 数 据通 用 数 据 s q l s e rv er消 息存储器i m s a”目录v s 人 m o r 司e文档 人 s p 应用程序 i e浏览器你的应用程序 a c r iv e x数据对象 ( a d o ) o l e d b提供者 通用数据 i m s vsam 半结构化数据 消息存储器 目录 文档 s q 数据 s q l s e rve r a“e s sc r or a c l e 图1 数据访问结构 从图中 可以看出,客户端可以 是任何w i d 3 2 应用程序或w e b 应用程序。中 间层由 事务对象组成,事务对象使用a d o或者o l e d b从数据源处获得数据。 c o m , d c o m ( d i s t r i b u t e d c o m ) 、 以 及最近出 现的s o a p ( s i m p l e o b j e c t a c ce s s p r o t o c o l ) 则提供了一种方式, 通过使用这种方式将d n a系统的 所有部分紧密结 合在一起。 1 : o l e d b的体系结构 从下图 2可以看到,o l e d b一共有三个模块:分别是消费者模块 ( 。 o n s ume r ) 、 提供者模块 ( p r o v i d e r ) 和服务模块 ( se rvic e s ) 。 o l e d b消费者是应用程序,它是作为一个纯 o l e d b环境中的客户出现 的。 编写o l e d b消费者的 方式有两种: 一个是用c + + 源程序编写, 包含适当 的头文件、 初始化适当的c o m组件, 并不断对对这些组件进行查询以 获得所需 的 接口 。 另 一 个 更 好的 方 法 就是 使 用 活 动 模 板 库( a t l , a c t iv e t e m p l a t e l i b r a ry ) , 通过模板库中间 插入。 o r s u m e r 对象, 来编写a t l 消费者程序。 在c + 十 领域之外, a d o是目 前访问o l e d b数据源最容易的方法 本文就是采用的a d o方法进 行数据源的访问。 o l e d b 提 供者 ( p r o v i d e r ) 是向 消费 者 提供 标 准的o l e d b 接口 集的组件。 提供者负责将从消费者那里接收到的命令转化为能被数据库识别 的格式,负责更新数据,返回 选择的记录子集。 c + + 是唯一一种可以用来开发 o l e d b提供者的编程语言。 东南大学硕士论文 4p mm f wrm vi (ado,mrt) f i le n a m e = v a l u e ; r e m o t e p r o v i d e r = v a l u e ; r e m o t e s e r v e r - - v a l u e ; u r l = v a l u e ; p r o v i d e r 项显示了要使用的o l e d b提供者的名称。 f i l e n a m e 值表示了一个包含了 连接信息的 文件, 例如: 一个o d b c文件数 据源。如果要使用f i l e n a m e 项,就必须忽略p ro v i d e r 项。 r e m o t e p r o v i d e 值表示打开一个客户端连接时, 服务器上要使 用的提供者的 名字, 这个选项只是提供r e m o t e d a t e s e r v i c e ( r d s ) 连接。 r e m o t e s e 值表示使用r d s 从服务器上获取数据的 那台 服务 器的 名称。 u r l 值表示一个可选作u r l 的连接字符串, 它不是一个o d b c 类型的字符 串。 c o m m a n d对象:在数据源中,c o m m a n d对象是一个独立的结构,它将产 生过程数据。为了能有返回 值, 所以 它可能 是一个s q l查 询, 一个已 经存储好 的过程或是一些其他的东西。 使用c o m m a n d 对象最简单的方法就是创建一个独立的命令对象,设置它的 属性, 然后设置它的a c t i v e c o n n e c t i o n 属性, 使之成为 有效的连接字符串。 这样 只要运行这个c o m m a n d 对象就会促使a d o创建一个内置的c o n n e c t i o n 对象。 如果你需要在一个单独的c o n n e c t i o n 对象中 执行多 个c o m m a n d 对 象, 那就最好 不要使用这种技术,因为对于每个 c o m m a n d对象来说只能创建一个独立的 对象,但是可以 通过设置a c t i v e c o n n e c t i o n 属性使之成为一个已经存 在的c o n n e c t i o n 对象。 c o m m a n d对象有两点主要用途:执行拒绝 o l e d b连接的语句。 东南大学硕士论文 通过s q l 语句 或是己 经 存储 好 的 过 程 获 取记 录 集。 r e c o r d s e t 对象: r e c o r d s e t 对象代表着从数据提供者那里获取的记录集。由 于这个对象允许用户直接获取数据,所以r e c o r d s e t 对象与a d o访问 过程是无 关的。 a d o允许用户直接打开一个r e c o r d s e t 对象, 或者是从c o n n e c t i o n 对象或 是c o m m a n d 对象中创建一个r e c o r d s e t 对象。 a d o r e c o r d s e t 对象支持四种类型的临时表: d y n a m i。 允许 用户 看到由 其 他 用户 完成的 对 数据的 改 变过 程。 支 持 所 有不 依赖于标签类型的数据移动。如果数据提供者支持这种依赖于标签的数据移动, 那么这种类型的r e c o r d s e t 对象也就支持书签。 k e y s e t 动态的 但是不允 许用户看到由 其他用户 完成的 删除 或是添 加过 程,只是允许看到修改后的结果。 s t a t i 。在记录集打开的同时提供数据的静态备份。由于其他用户完成的 增加或是删除操作在记录集里并没有被压缩, 所以 直到这种类型的临时 表创建之 后也不会被刷新。 f o r w a r d - o n l y是 一 种 静 态 表, 仅 仅 允 许 用 户 在 记录 集中 向 前 移 动 数 据, 这是 a d o的缺省临时表。 p a r a m e t e r 对象: p a r a m e t e r 对象表示c o m m a n d 对象的一个独立参数。 这个 对象是s q l查询时的一个运行参数,或是一段已 经存在的过程中 输入或输出的 参数。 大多数情况下, 参数下用于各种类型的 参数化命令中, 在命令中 一个动作 被定义一次, 但是这个动作引起的 变化要取决于设置的有效参数值。 如果知道一 个特定的 p a r a m e t e r 对象的属性,那么则可以使用 c r e a t e p a r a m e t e r方式来为 c o m m a n d 对象确定正确的p a r a m e t e r 对象, 这种方式允许用户初始化没有任何服 务器端进程的 参数。否则, 就必须在 c o m m a n d对象中p a r a m e t e r s 集合里调用 r e f r e s h 方式, 从服务器也就是资源集中的 操作中 获取参数信息。 f i e l d 对象: f i e l d 对象表示记录集中数据的某个单独的列。 一旦获取了一个 记录集, 那么通常是使用f i e l d s 集合来读取记录集中的 数据,由 于f i e l d 集合是 r e c o r d s e t 对象的缺省属性, 所以用户在代码中不是经常能看到它的名称。 例如: 下面这两 行代码就会产生相同的结果。 r e c o r d s e t . f i e l d s ( 0 ) .v a l u e r e c o r d s e t ( 0 ) r e c o r d对象: r e c o r d对象有两层意义。它可以 是记录集中的一行,也可以 是文件系统中的一个文件或是文件夹。 但是最重要得一点是r e c o r d 对象中实际 上并没有自 己 独特的功能。当 底层的o l e d b提供者本身支持异构数据仓时, r e c o r d对象就代表着记录集的一行。例如:r e c o r d对象可以 被提供者用来从文 件系统或是电 子邮 件仓库中 提取信息。 但是它们不能被提供者用来从标准的关系 东南大学硕士论文 数据库中提取信息。 将r e c o r d , s t r e a m和r e c o r d s e t 对象结合起来可以 帮助用户在异构数据中导 航: 可以在仓库的根层次下打开一个 r e c o r d对象。使用 r e c o r d对象的 g e t c h i l d r e n 方式, 打开一 个包含了 结点中所有子目 录的r e c o r d s e t 对象, 用户可 以 依次设置r e c o r d 对象, 使它相当于一个子目 录。 使用与r e c o r d 对象相关的s t r e a m对象, 可以 从记录中获取实际的二进制数 据。 用户可以将r e c o r d 对象作为根目 录, 将s t r e a m作为这些目 录指向的文件中 包含的数量。 s t r e a m对象:s t re a m对象表示二进制。我们可以打开一个s t r e a m对象从与 之相关的r e c o r d 对象中获取数据。 当然也可以 创建我们自己的独立的s t r e a m对 象,并使用这些s tr e a m对象手动来存储二进制。 e r ro r 对象: e r r o r 对象表示一个单独的错误信息。 由 于一个数据访问操作可 以引 起多个错误,所以e r r o r 对象是包含在一个e r r o r s 集合里的。如果最后一次 的 操作成功了, 那么这个集合就为空,否则,可以 使用f o r e a c h 编译器依次来 检查错误。 p r o p e r t y 对 象: p r o p e rt y 对 象 是由 其 他a d o对 象的 结 构 组 成。 也 就是 说 属 性描述的是其他对象。 第二节 动态服务网页 2 . 2 . 1 a s p 简介 a s p ( a c t iv e s e r v e r p a g e s ) 是 微软 公司) 是 微软 公 司 推出 的 新型w e b 服务 器端程序开发技术,它使程序开发人员能够综合利用 h t m l标记、服务器脚本 以 及c o m组件进行动态的、 交互式的w e b 服务器端的应用程序快速开发。 随 着 w e b 应用程序使用的 推广 和普及, a s p技术的 地位也越来越重要。 a s p成功的 关键在于它的简单、高效以 及和m ic r o s o ft的组件技术、 服务器技术、 数据库的 高度集成。 a s p 并 不是 一种语 言, 而 是一种服务器端脚本程序执行的 环境。 也就 是说, a s p 程序的开发是独立于语言的。 从理论上来说, 任何支持组件和对象的语言都 可以用来开发a s p 程序。前提是具有该语言相对应的解释器。 a s p内部就设置 了v b s c r i p t 和j a v a s c r i p t 两 种脚本程序的 解释器。 通过a s p 还可以 轻松的 使用 可重用的c o m组件, 这使得a s p 功能大大增强。 可以 说, a s p 把传统的h t m l 、客户端脚本、 服务器端s c r i p t 代码和c o m 组件融合了在一起,下面是它的一些主要特点: 东南大学硕士论文 1 : 运行在服务器端, 在服务器端动态生成h t ml 代码,并可以 接受和处理 客户端提交的数据, 然后将结果返回到客户端。 因此, a s p 可以 生成动态的、 交 互式的网页,并使得 w e b程序能够充分得利用服务器端的丰富资源和服务,例 如:访问数据库,处理邮件等。 2 : 使用v b s c r ip t 和7 a v a s c r i p t 等 简单的 脚 本语言 编写, 这使得 程序的 管理、 维护和修改都非常方便。 3 :采用将脚本嵌入到h t ml的方法,这使得用户可以轻松的从h t ml的 知识进阶到服务器端程序的开发上来,使得开发过程相对容易。 4 :与客户端平台无关,因为a s p在服务器端被处理后返回的是h t m l代 码,所以基本能保持运行的稳定。 5 : 代码隐藏: a s p 生成的网 页和普通的h t m l 网 页在客户端看来并无差别, a s p 源程序也不用下载到客户端执行,因 此,安全性较高。 _ 6 :内 置强大的 对象和组件, 这使得开发人员能够利用它们快速的建立w e b 应用程序。 7 :使用a d o数据访问技术,并和c o m组件技术紧密结合,使得a s p具 有较好的扩展性。 2 .2 . 2服务器端应用程序的发展 在传统的 非 交互式的网 络 应用中 , 网 络 管理 人员 把 制作的网 页文 件放在w e b 服务器可访问的 硬盘里。 这样,当客户在浏览器的 地址栏输入网 页的u r l地址 或是点击一个相应的 链接时, 浏览器便向 服务器请求这个地址所对应的 盯m l 文件,服务器会寻找到这个文件把它发给浏览器, 浏览器再根据h t m l的 描述 将整个网页显示出来。如图4 显示: 文件 图4普通w e b 的工作原理 这种传统网页的工作方式在不需要交互和频繁更新的情况下是比 较理想的。 并且, 服务器在整个过程中 所起的 作用只是简单的 将浏览器请求的文件发给客户 端, 它并不真正具有任其他功能。 因此, 使用这种方式创建起来的只是类似文件 共享的简单服务, 而无法真正构建交互的、 动态的w e b 应用。 通用网管接口( c g i , c o m m o n g a t e w a y i n t e r f a c e ) 是w e b 服务器程序传统 的解决方案,它为w e b 服务器定义了一种和其他应用程序共享信息的方法,当 服务器接受到某一客户机的 请求并要求启动一个 c g i 程序时,服务器便把有关 东南大学硕士论文 请求的信息综合到一个环境变量中交给 c g i 程序。c g i 程序从这些变量中找出 重要信息, 对它们进行处理, 然后把结果生成标准的h t m l 文件, 再返回到w e b 服务器, 服务器又将h t m l 文件传给浏览器, 浏览器解释执行h t m l 后把we b 页的内 容显是在客户前, 这样就完成了 一次客户和服务器的交互。 工作原理如下 图 5 所示。 图5 c g i 工作原理 c g i 与静态网页的不同 之处就在于存放在服务器硬盘上的 文件不是固定的 h t ml 文件, 而是可执行的程序或是能被解释的 代码, 它们在服务器上运行或被 解释并生成h t m l文件 ( 还可以 是别的东西) , 然后h t m l又被送到浏览器端 解释并显示,这意味着一个服务器端程序能够在每次被请求时动态的生成代码。 在引入c g i 后, w e b的功能被大大增强,服务器不仅可以简单的访问 文件,还 可以通过 c g i 程序使用服务器端各种丰富资源。获取客户端的请求信息并根据 具体的需求和需要对它们进行处理。 这使得服务器不在被局限于各种简单的文件 共享,而成为we b 应用程序的通用平台。 尽管c g i 可以 很好的 解决交互问 题, 但是由 于每当 一个访问 者激活一个c g i 程序的时候, 在服务器端都要启动一个新的 进程, 这使得它的效率大打折扣, 当 网站的访问量过大时, 服务器的效率将会变得难以忍受。 为了 解决c g i 效率问 题, 微软推出了 互联网 服务器应用程序接口( i s a p i , i n t e r n e t s e r v e r a p p l ic a t io n p r o g r a m m in g i n t e r f a c e ) . i s a p i 使 用 动 态 链 接 来改 进 c g i 技术,使用多线程代替了c g i 的多进程,这样,无论多少用户同时访问该 程序, 都使用一个单独的进程来处理用户的 请求, 这就大大降 低了 服务器的负荷。 i s a p i 很 好 的 解 决 了w e b 服 务 程 序 的 效 率问 题, 然 后 它 也 并 非 完 美 : 首 先, 开发相应得程序不是件容易的事,它需要把程序编制成d l l文件,有时候,用 户不得不为一个小功能而作大量的工作。 这使得开发成本非常昂 贵。 有时候, 如 果想对程序的内容作小小的改动, 又得重新编译代码, 这使得开发的速度也成一 大问题。 a s p 的前身是互联网数据库连接 ( i d c , i n t e rn e t d a t a b a s e c o n n e c t ) 技术, 东南大学硕士论文 这是一种主要用来进行数据库查询的 简单技术,一 个完整的i d c页由 一个* .i d c 和一个* .h t x文件组成。前一个文件简单描述了与与数据库创建连接的必须内容 和s q l 语言; 后一个文件则 是一个h t m l 模板, 用来返回 数据 库查询的结 果。 但是, i d c的简单使它丧失了 数据查询和显示的灵活性。 为了解决i s a p i 和i d c存在的问题,微软推出了全新的a s p技术。自 发布 以来,一共推出了三个版本:a s p 1 .0 ,a s p 2 . 0 ,a s p 3 .0 。其中, a s p 3 .0是随着 wi n d o w s 2 0 0 0 发布而带出的。 2 . 2 .3 a s p的内 部对象和内 部组件 1 : a s p 的内 部对象a s p 的内 部 对象包括r e q u e s t 对 象, r e s p o n s e 对象, s e s s i o n 对象, a p p l i c a t i o n 对象, s e r v e r 对象, a s p e r r o r 对象和o b j e c t c o n t e x t 对 象。这些对象是 a s p环境中固有的,不需要用户自己 去创建它们。直接就可以 使用对象的方法和属性。 r e q u e s t 对象: 当 单 击一 个 超链 接或 是 提交 一 个 表 单时, 就 会 给 服 务 器发 出一个 u r l请求,当a s p s e r v e r 接受到客户端的u r l请求时, a s p可利用 r e q u e s t 对 象获 得 客户 端的 信 息。 r e q u e s t 对象 共 有五 种 获 取 方 法: q u e r y s tr in g , f o r m , c o o k i e s , s e r v e r v a r ia b l e s , c l i e n t c e r t i f i c a t e 。 其中 , 最常 用的 就是q u e r y s tr i n g 和 f o r m. 上网时常会碰到填写注册信息一类的界面, 这就是由h t m l提供的f o r m 表单实现的。 通常包括文本框、按钮、单选框、复 选框等基本元素, 填写完毕, 单击“ 确定” 或是“ 提交” 就可以 将输入的信息传送到服务器上, 然后再调用相 应的程序处理该信息。 在h t ml 中,完整的f o r m语法如下: f o r m元素 . . . . . . . . . . . . . 使用q u e r y s t r i n g 主要是用来获取u r l后面跟的 字符串。 如果f o r m中的 m e th o d 用的 是g e t 方 法, 也 必 须 用q u e ry s t r in g 来 获 取 表 单中 信息 。 r e s p o n s e 对象: 过 去 用静态网 页的时候,向 客户 端输出 信息 很简单, 直 东南大学硕士论文 接用h t m l 语言就可以了, 但a s p 是要生成动态网页, 根据客户端的不同请求 输出 相应的 信息, 这就要靠r e s p o n s e 对象来实现。 r e s p o n s e 对象可以 使用的方 法有三个:wr i t e , r e d i r e c t , c o o k i e s . 其中, w r i t e 是最普遍的方法,它可以 把信息从服务器直接送给客户端,实际上 就是在客户端动态显示信息。 语法:r e s p o n s e . w ri t e变量数据或者字符串 也可以 用这样的 方法代替:, r e d ir e c t 方法主要是将客户领至另一页面,语法如下: r e s p o n s e . r e d ire c t 网 址 变 量 或是 字 符串 s e s s i o n对象:在w e b 页面中利用超链接,可以 很方便的从一个网页进 入另一个网页, 但是, 这就带来一个问 题, 该怎样记载客户的信息呢? 就象在普 通程序中 有全局变量一样, a s p虽然无法让各个页面都使用全局变量来记载信 息, 它却提供了s e s s i o n 对象来满足上述要求。 s e s s i o n 对象可以 用来记载一位客 户端信息, 即 使是该客户从一个页面跳到另外一个页面, 此信息仍然存在。 但是 要 注意的 是, s e s s i o n 是 针对 一个 客户而言的, 不同的 客户 必需 要用不同的s e s s i o n 信息记载。 而且, s e s s i o n 信息存在有效期的问 题, 我们可以到a s p 的 注册表中 修改系统默认值,也可以 用a s p的t i m e o u t 属性来进行更改。 s e s s i o n 的 工 作原 理比 较 复 杂: 在 一 个 应 用 程 序中 , 当 客 户 端 启 动 一 个s e s s i o n 时, a s p 会自 动产生一个长整数s e s s i o n i d , 并且把这个s e s s i o n l d送回到客户端 的浏览器, 浏览器会把这个s e s s i o n l d存放在c o o k i e s 内,当客户再次向 服务器 送出h t t p 请求时, a s p 会去检查申 请表头的s e s s i o n l d , 并回应该s e s s i o n l l ) 对 应的s e s s i o n 信息。 a p p li

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论