第 7章 超文本和 Web技术
? 超文本的 基本概念与 发展简史
? 超文本系统的结构
? 超文本的文献模型
? Web系统 的超文本标记语言
? Web系统的关键 技术
7.1 超文本的基本概念 及发展简史
? 超文本
? 超文本系统
? 发展简史与典型系统
? 文本 特点是它在组织上是线性的和顺序的。
? 人脑的记忆机制 一种联想式的记忆,它构成
了人类记忆的网状结构,对联想、记忆的探索
形成了人类思维概念化的基础。
7.1.1 超文本的概念
图 7.1 文本的线性结构
? 超文本结构 类似于人类这种联想记忆结构,它
采用一种非线性的网状结构组织块状信息。
? 超文本 是由信息结点和表示信息结点间相关性
的链构成的具有一定逻辑结构和语义的网络。
? 结点 是基本单位。 它是一个信息块,具体地说,
它可以是某一字符文本集合,也可以是屏幕中某
一大小的显示区。
图 7.2 6结点 9条链超文本结构
A………,
………,,
B……,,C……,
D………,,
………,
E……… F…,
超文本系统
超文本系统 对超文本进行管理和使用的系统。
超文本系统特点,
(1) 在用户界面中包括对超文本的网络结构的显式表示,即
向用户展示结点和链的形式;
(2) 向用户给出网络结构的动态总貌图,使用户在每一时刻
都可以得到当前结点的邻接环境;
(3) 超文本系统一般使用双向链,这种链应支持跨越各种
计算机网络,如 LAN和 Internet;
(4) 用户可以通过自己思想的联想及感知,根据自己的需要
动态地改变和访问网络中的结点和链;
(5) 尽可能不依赖它的具体特性、命令或信息结构,而更多
地强调的是它的用户界面的“视觉和感觉, 。
? 第二代超文本系统与多媒体技术结合起来, 为
强调系统处理多媒体信息的能力而称为超媒体
超媒体 =多媒体 +超文本
? 目前, 超文本与超媒体很难区别, 所以往往
不加区分地使用 。
7.1.2 发展历史
? 超文本思想最早由美国 V.Bush提出,他在 20世纪
30年代即提出了一种叫做 Memex(memory extender,
存储扩充器 )的设想,预言了文本的一种非线性结
构,1939年写成文章,As We May Think”,于
1945年在“大西洋月刊”发表。
? 1965年,Ted Nelson创造了“超文本”这个词,
而且开始实现这个想法,并在他的 Xanadu计划的
长远目标中,试图使用超文本方法把世界上文献
资料联机。
超文本发展 3个阶段
? 概念产生时期 (1945—1965), 标志性的事件是
Bush提出 Memex和 Nelson创造 Hypertext。
? 概念系统的研究时期 (1967—1985)
? 1967年,布朗大学 Andy van Dam等研制第一个可运行
超文本系统 The Hypertext Editing System;
? 1968年,Doug Engelbart在 FJCC(秋季联合计算机会议 )
上演示 NLS系统 (联机系统 );
? 1968年,布朗大学推出 FRESS(文件检索与编辑系统 );
? 1975年,CMU推出 ZOG(现为 KMS,知识管理系统 );
? 1978年,MIT建筑机械组推出第一个超媒体视频盘片
系统 Aspen Movie Map(白杨城影片地图 ) 。
? 成熟与发展时期 (1985—)
? 1985年,Janet Walker研制的 Symbolics Document Examiner
(符号文献检测器 );
? 1985年,布朗大学推出 Intermedia系统,在 Macintosh上运
行;
? 1986年,OWL(办公工作站有限公司 )引入 Guide,这是第一
个广泛应用的超文本;
? 1987年,Xerox公司推出 Notecards,苹果公司 Bill Atkinson
研制 Hypercard;
? 1991年,美国 Asymetrix公司推出 ToolBook系统 ;
? 1990年, 位于日内瓦的欧洲量子物理实验室 CERN开发的
运行于 Internet的 WWW系统, 对人类社会产生深远影响。
超文本的理论研究
? 1987年,ACM超文本专题讨论会 (Hypertext’87)
在北卡罗来纳大学召开;
? 1990年,第一届欧洲超文本会议 (ECOH)在法国
Inria召开;
? 这些活动都成了系列性会议延续下来。同时,
ISO等国际组织也开始制定超文本方面的标准,
推动其商品化发展。
7.2 超文本系统的结构
? 超文本系统结构模型
? 超文本的主要部分
7.2.1 超文本系统结构模型
1,HAM模型
? 1988年,Campbell和 Goodman提出 HAM(超文
本抽象机 )模型。 HAM模型把超文本系统划分
为 3个层次,用户界面层,HAM层,数据库
层。
用户界面层
超文本抽象机层
数据库层
图 7.3 HAM模型
数据库层
? 数据库层提供功能是存储、共享数据和网络访
问,处于 3层模型的最低层。
? 数据库层要保证信息的存取操作对于高层的超
文本抽象机来说是透明的。
? 数据库还要处理其他传统的数据库管理问题。
超文本 抽象机层
? 决定超文本系统结点和链的基本特点,记录了结点
之间链的关系,并保存有关结点和链的结构信息。
? HAM层就是实现超文本输入输出格式标准化转换
的最佳层次。因数据库层存储格式过分依赖机器,
用户界面层各系统风格差别很大,很难统一。
? HAM层可理解为超文本概念模式,它提供了对数
据库下层的透明性和对上层用户界面层的标准性。
用户界面层又称为表现层,
? 用户界面层涉及超文本抽象机层中信息的表现, 包括:
用户可以使用的命令, HAM层信息如何展示, 是否要
包括总体概貌图来表示信息的组织, 以便及时告知用
户当前所处的位置等等 。
? 目前流行的界面风格有以下几类,
(1)命令语言;
(2)菜单选项;
(3)表格填充;
(4)直接操作;
(5)自然语言。
表 7.1 各种界面风格的比较
界面 优 点 缺 点
命令
语言
灵活;支持用户创造性;便于建立用
户定义宏;对熟练用户有高效率。
较差的错误处理;要求好的训练
和记忆。
菜单
选项
缩短训练;减少击键;适合有结构的
决策;可用话对管理工个;容易处理
错误。
可能出现菜单层次过多及选项复
杂情况;对熟练用户太慢;占用
屏幕空间;要求快的显示速率。
表格
填充
简化数据输入;要求简单训练;便于
辅导;可用表格管理工具。
占用屏幕空间 。
直接
操作
直观方式提供任务操作;易学习;易
记住;可避免错误;适合探索;适合
设计者灵活创新。
程序设计有一定难度;要求图形
显示器及指点设备。
自然
语言
避免学习语法的负担。 要求清晰的对话;击键增多;受
限应用范围;短的, 限定的上下
文 。
2,Dexter模型
? 1988年 10月,在美国新罕布尔
州的 Dexter饭店发起组织了一个
研究超文本模型小组,致力于
超文本标准化的研究,以后逐
渐形成了一个超文本参考模型,
简称为 Dexter模型。
运 行 层
播放规范
存 储 层
定位机制
成员内部层
图 7.4 Dexter模型
存储层
? 描述成员之间的网状关系。
? 成员描述系统的基本对象,包括结点和链等。
? 原子成员是最小成员单位,也即超文本中的结
点,其内容可为不同媒体的信息。
? 复合成员是具有嵌套层次的成员,由原子成员
和链复合而成。
? 链是表示元素与元素之间关系的一种实体。
成员内部层
? 成员内部层描述超文本中成员的内容和结构,
对应于各个媒体单个应用成员。
? 存储层和成员内部层之间的接口称为定位机制,
其基本成分是锚, 锚由两部分组成,锚号和
锚值,锚号是每个锚的标识符,锚值用来指
定元素内部的位置和子结构。
运行层
? 运行层描述支持用户和超文本交互作用的机制,
它可直接访问和操作在存储层和成员内部层定
义的网状数据模型 。
? 介于存储层和运行层之间的接口 (播放规范 ),
提供确定各个成员在运行时表现的视图和操作
权限等内容 。
? 锚接口是 Dexter模型的主要贡献 。
7.2.2 超文本的主要成份
? 结点 (或节点 ) 超文本表达信息的一个基本单位,
其大小可变,结点的内容可以是文本、图形、
图像、音频、视频等,也可以是一段程序。
? 结点分为不同类型,不同类型的结点表示不同
的信息。
常见的结点的基本类型,
(1) 媒体结点 。
(2) 动作与操作结点。
(3) 组织结点。
(4) 推理结点。
? 链也是组成超文本的基本单位,形式上是
从一个结点指向另一个结点的指针,本质
上表示不同结点上存在着的信息的联系。
? 链的类型
(1)基本结构链 基本,交叉索引,节点内
注释,缩放,全景,视图。
(2)组织链 索引,IS-A,HAS-A,执行。
(3)推理链。
? 宏结点是链接在一起的结点群,就是超文本网
络的一部分 —即子网。
? 宏文本 (Macrotext)和微文本 (Microtext) 概念,
来表示不同层次的超文本。微文本又称小型超
文本,它支持对结点信息的浏览; 而宏文本
又称大型超文本,支持对宏结点的查找与索引。
? 宏结点的引入虽然简化了网络结构,却增加了
管理与检索的层次。
图 7.5 宏结点
7.3 超文本的文献模型
? 文献模型概述
? ODA 模型
? HyTime模型
7.3.1文献模型概述
? 文献是 文章或文本的组合,它比一般文章和文
本带有更多的存储、保留的意味,一旦定形后
静态性较强。
? 超文本的文献模型侧重于超文本的基本特征和
一般的层次性结构的描述。
1.文献的一般结构
? 文献的结构包括内容组织和版面安排两个方面 。
? 内容组织指如何组织和构造文献的信息内容; 版面
安排是相对内容的表现形式来说的, 即文献的各部
分内容如何安排在每一页面 (屏幕 )上 。
? 如把一本书当作文献来看其内容组织主层次结构是:
文献 (内容 )→ 章 → 节 → 小节 → 段落 (内容实体 )。内容
实体可以是一段文字或是一个图表。
? 可把版面安排也层次化,以便和内容组织对应,可
以分成:文献 (版面 )→ 页 /整屏 → 框架 /窗口 → 块 /子
窗口 (内容实体 )。
2.文献模型的基本任务
(1)能够表示多媒体文献的内容层次性;
(2)能够表示多媒体文献的版面布局;
(3)能够表示多媒体文献的时间布局;
(4)能够 将内容与布局对应起来。
7.3.2 ODA 模型
? ODA(the office/open document architecture)是
ISO在 1988年公布的一个标准化文献模型 (ISO
8613,1988),它为辅助办公文献的表示和交
互而设计的。
? 它提供了文献的静态描述,还提供了与其他
文献格式接口 。
? ODA文献结构是层次的和面向对象的。
? ODA文献由两对结构来描述,即,一般结构
和具体结构,逻辑结构和布局结构。前者体现
面向对象性质,后者体现内容与表现的关系
逻辑结构和布局结构
? 文献的内容层次性用逻辑结构描述, 它首先按
文献内容划分成逻辑目标, 逻辑目标可以是一
个一般项, 如书中的一节, 标题, 段落等 。
? 文献的版面安排 用布局结构描述。它按内容划
分为页集、页和页中方框区域,其中定义有嵌
套区域的方框区域称为框架, 最低层的区域
称为块。块是惟一有内容与之相联的区域。
图 7.6 逻辑结构和布局结构对应关系
节
标题 小节
子标题 段落 段落 段落
内容 内容 内容 内容 内容
块 块 块 块 块
框架 框架 框架
页 页
逻辑结构
布局结构
一般结构和具体结构
? 每个文献都有具体的 (specific)逻辑结构和布局结
构, 而具体结构的建立是由相应的一般 (generic)
结构控制的 。
? 一般结构是一系列关于对象的定义 (对象分为逻
辑对象集合和布局对象集合 )。
? 每个非页结点的对象定义都有一个属性“从属
产生器”, 用来说明对象如何由其子对象构成。
图 7.7 一般逻辑结构
论文
标题 作者 摘要 节
段落 子标题
段落 列表
项
SEQ
REQ REQ OPT SEQ
REP REQ SEQ
REP
REP CHO
图 7.8 一般布局结构
论文页集
标题页 继续页
继续
正文框架
SEQ
REQ OPT REP
AGG
正文框架 标题框架
从属产生器属性
? 可选的 (OPT) 0或 1次事件;
? 要求的 (REQ) 仅 1次事件;
? 重复 (REP) 1次或多次事件;
? 可选并且重复 (OPT REP) 0,1或多次事件;
? 顺序 (SEQ) 以固定顺序出现;
? 聚集 (AGG) 以任意次序出现;
? 选择 (CHO) 仅其中一个选中。
布局过程
? ODA的布局过程确切地决定文档中的每一项被放
置的位置。它使用特定的逻辑结构、一般结构、
内容体系以建立特定的布局结构。
? 它工作在两个层次上,
(1)内容布局处理内容部分,并将它们安排到块中。
(2)文献布局将块安排到框架或页中。这个阶段依
赖于称为布局风格的属性集。
7.3.3 HyTime模型
? HyTime全称时基超媒体结构化语言,它是一个
标准的中性标记语言,表示超文本和时基文献的
逻辑结构。
? HyTime由 ANSI的一个工作组开发,后被 ISO采纳,
其标准号为 ISO/IEC 10744,1992。
? HyTime基于 SGML,用 HyTime表示的文献与 ISO
SGML完全一致,HyTime扩展了 SGML,使
SGML更具抽象性、中立性,且增加了许多关于
多媒体应用方面的考虑。
? SGML元素
元素是一个可标记的逻辑体,以,book”为例,视
book为一类元素,将它可分为若干 Chapter,Chapter
还可分为 Title和若干 Section。 Chapter,Title和
Section也是元素。它们都是含有一定结构的逻辑体。
一个元素的标记实例,
〈元素名〉 数据 〈 /元素名〉
起始标签 结束标签
图 7.9 SGML元素
图 7.10 BOOK类的元素实例
SGML DTDs
? 在 SGML中,用 DTD(Document Type Definition)
来定义文献 (元素 )类型,描述其内部的一般逻
辑结构。如下 DTDs,
〈 !ELEMENT Book--(chapter +)>
〈 !ELEMENT Chapter--(Title,Section+)>
〈 !ELEMENT Title|Section--CDATA>
其中 +表示一个或多个。
SGML属性
? SGML用“属性”的方法来表示对某一个元素
的必要的非结构化的信息。属性由“属性名”
和“属性值”组成。属性名及其值包含在起始
标签里面,是标签的一部分,如下所示,
〈 Book author=“JOGN”〉 …(Chapters)… 〈 /Book〉
相应 DTD变为,
〈 !ELEMENT Book--(Chapter +)〉
〈 !ATTLIST Book author CDATA #REQUIRED〉
SGML标识符
? 有两种特殊的属性值,ID和 IDREF。
? 如果一个元素有一个 ID类型的属性,那么其值
必须是该元素的惟一名字。
? 如果元素 A要引用有惟一名字的元素 B,那么 A
的属性 IDREF的值就是 B的惟一名字。基于
SGML的超媒体系统就是用这种机制来表示文
献内部的超链。
SGML实体
? SGML中实体是任意数据资源,可以是文件、
硬件子系统、存储缓冲区等等。
? 实体定义形式为:〈 !ENTITY… 〉。
如〈 !ENTITY,Myentity”
SYSTEM“Usr/Local/text/myentity”〉,
则如果在文献中发现“& Myentity”,就会启动
SGML系统来引用该实体 。
HyTime/SGML,元 DTD
? HyTime利用称为,SGML结构形式”的形式,
提高了 SGML的抽象性和中立性,可以用来更好
地表示多媒体文献系统的特性。
? 元 DTD由一系列组织好了的包装好了的,SGML
结构形式”构成。 SGML DTDs中的一个
〈 !ELEMENT… 定义对应文献的类元素。
? 元 DTD是最抽象的结构,是独立于具体应用的。
HyTime其实就是一个元 DTD系统。
? SGML有 3种结构,
物理的实体结构; 逻辑的元素结构以及类似指
针的 ID-IDREF结构。
? 3种基本逻辑结构,
SGML层次性元素结构;
HyTime超链结构;
Hytime调度结构。
图 7.11 Hytime的 3种结构
7.4 Web系统的超文本标记语言
? 目前最成功或最流行的超文本系统是运行
于 Internet网上 WWW,它实现了在广域网
上多媒体信息动态查询,其中 HTML是其
使用的超文本标注语言 。
? HTML语言编写的网页超文本信息按多级标题
结构进行组织,其结构如下,
<HTML>
<HEAD><TITLE>标题名 </TITLE></HEAD>
<BODY>
<H1>一级标题名 </H1>
,....,Web页主体
</BODY>
</HTML>
7.4.1 HTML语言
? HTML标记包含包容标记和空标记 。 空标记用
于说明一次性指令, 如换行标记为 <BR>。 包
容标记由开始标记和结束标记构成, 结构如下,
<标记名 > 数据 </标记名 >
? HTML标记有些可以带有属性,如 <IMG
SRC=“GLOBE.GIF”>,其中 SRC为属性,该
属性告诉浏览器图像的文件名。
1,基本结构
2,超文本标记方法
? 字体
黑体 <B>文本 </B> 斜体 <I>文本 </I>
下划线 <U>文本 </U> 打字体 <TT>文本 </TT>
? 字号与颜色
设定基准字号的标记方法为,
<BASEFONT SIZE=#> # = 1 - 7
设定指定字号的标记方法为,
<FONT SIZE=#>文本 </FONT>
# = 1,2,3,4,5,6,7 表示指定的字体大小;
# = +(-)2,3,4,5,6 表示字体大小的相对改变 。
设定字体颜色可通过如下两种方式,
<FONT COLOR="hex_rgb"> 文本 </FONT>
<FONT COLOR="color name"> 文本 </FONT>
? 段落格式
包括换行符号 <BR>,分段 (换行加空行 )符号 <P>,分界尺符
号 <HR>等 。
? 文本链接
可通过点击文本检索浏览另一超文本网页, 如,
<A HREF=,Art.html”>Click Here for Art.</A>
? 图像链接
可通过点击一幅图像从而跳到另一超文本网页, 如
<A HREF=,Olddog.html”><IMG SRC=“Dog1.gif”> </A>
? FTP和 Email链接
HTML页面可实现与 FTP和 Email系统的链接, 例如,
<A HREF=,ftp,//ftp.myDomain.com/Pub/freeware.txt”> GetFreeware</A><A
HREF=,mailto,myName@myDomain.com”>Mailtome.</A>
? 非图像浏览器图像替换
如浏览器不能浏览图像, HTML可用 ALT指定其替代文
字, 例如,
<A HREF=,Olddog.html”><IMG SRC=,Dog1.gif” ALT=
“[picture of a dog]”></A>
3,多媒体信息
? 图像显示
显示图像的标记方式为,
<IMG SRC="file,///d,/html/jet.gif" WIDTH=? HEIGHT=?
VSPACE=? HSPACE=?>
其中, WIDTH,HEIGHT为图像的宽, 高; VSPACE,
HSPACE为垂直, 水平空格数 。
? 列表
有序 <OL> 无序 〈 UL〉
<LI> 〈 LI〉
<LI> 〈 LI〉
</OL> 〈 /UL〉
? 音频
? HTML中可指定背景音乐, 例如,
<BGSound SRC="Path/Filename.WAV" Loop=#>
#为循环次数 。
? 利用链接启动声音, 如当用户单击文本 link
text后, 声音才播放,
<A HREF="Path/Filename"> link text </A>
? 视频与动画
在 HTML页面上播放视频与动画标记格式如下,
<IMG dynsrc="user.avi" START=fileopen (or mouseover)
WIDTH=? HEIGHT=? VSPACE=? HSPACE=? LOOP=? >
<IMG dynsrc="user.flc" START=fileopen (or mouseover)
WIDTH=? HEIGHT=? VSPACE=? HSPACE=? LOOP=? >
除了 dynsrc属性,其他属性都可默认。 START=fileopen表示 Web页
一被装入便播放; START=mouseover表示鼠标从该区域滑过才播
放。
? Web页中背景的实现
? 用图像填充背景
<BODY BACKGROUND="Path/Filename">
? 用颜色填充背景
<BODY BGCOLOR="#RRGGBB">
RR,GG,BB分别表示红、绿、蓝分量,用十六进制表
示。例如,<BODY BGCOLOR=,#888888”>表示背景颜
色为灰色。还可用颜色的名字表示背景颜色,格式为
<BODY BGCOLOR="颜色名 ">
7.4.2 XML
? 可扩展的标记语言 XML是 1998年 2月正式公布的网络超
文本的元标记语言,由 W3C的 XML工作小组所定义的。
? 它和 HTML一样,是 SGML的一个子集。 XML保留了
SGML 80%的功能,并使复杂程度降低了 20%。
? XML兼取 HTML和 SGML之长,既通用全面又简明清晰,
并具有很强的可伸缩性和灵活性。
? XML是自描述的,显示样式可以从数据文档中分离出来,
放在样式单文件中。
? XML还具有遵循严格的语法要求、便于不同系统之间信
息的传输、有较好的保值性等优点。
? 描述举例见课本 P214。
7.4.3 动态网页生成技术
目前最常用的动态网页生成技术主要有,
? ASP(active server apages);
? PHP(personal hypertext preprocessor);
? JSP(Java server pages)。
它们都是应用于服务器端的技术,以便于快速开发
基于 Web的应用程序。
7.5 Web系统的关键技术
7.5.1 Web系统的结构
1,基本结构
Web系统是采用 HTTP(Hypertext Transfer Protocol)协议的超文
本系统, 其基本结构是一个客户机 /服务器模型, 如图所示 。
客户机 Web服务器
图 7.12 Web系统基本结构
用户通过客户端的浏览器发出访问请求, 如键入 http,//www.bupt.edu.cn,
通过 Internet网络进入网址为 www.bupt.edu.cn服务器 。 服务器下载页面
信息 (HTML格式 )作为请求的响应 。
2,扩展结构
(1) 网络服务器站点镜像 为了提高响应速度, 减少网
络负担, 增强系统的强壮性, 重要站点常常采用服
务器站点镜像的方法, 将网站服务器分布部署在不
同的地点, 而每个服务器具有相同的服务内容, 信
息动态地实时同步更新 。
这种结构分担服务器的负载, 提高了系统的服务质量 。
图 7.13 服务器站点镜像结构
(2) 代理服务器 在靠近客户端的合适位置缓存热点访问信息被认
为是缓解 Web服务瓶颈, 减少 Internet流量和改进 Web系统可扩
展性的一种有效方案 。 使用防火墙中的代理服务器来缓存防火
墙内用户访问的信息是自然可行的途径 。
当然这类缓存代理可以放置在客户机和服务器间的其他地方,而
文档可缓存在客户机、服务器和代理中的任一位置。
图 7.14 基于代理服务器的扩展结构
7.5.2 Web系统的关键问题
1.Web缓存设计的问题
Web服务质量性能参数包括准入延时, 媒体播放质量等, Web
缓存可显著改善 Web系统的服务性能, 表现在,
? Web缓存减少带宽消耗, 降低网络流量并缓解网络阻塞 ;
? 由于频繁访问的文档存放在离客户端近的代理, Web缓
存减少了用户访问延时 ;
? Web缓存通过分散数据在缓存代理中而减少了远程 Web服
务器的工作负荷 ;
? 如果远程服务器或网络不能访问时, 用户可获得在代理
中复制的信息, 因此 Web服务的强壮性加强 ;
? Web缓存的其他好处是它提供了分析一个机构的 Web服务
使用模式的机会 。 另外, 一组缓存的互相合作可进一步改
进缓存的有效性 。
在 Web服务中使用缓存系统可能会出现下述缺点,
? 由于缺乏缓存代理更新, 用户也许查看的是陈旧的数据 ;
? 由于额外的代理处理, 访问延时在缓存中查不到目标数据
的情况下可能增加 ;
? 单一的代理总是系统服务的瓶颈, 针对一个代理所服务的
客户数应有所限制 ;
? 使用代理缓存会减少原远程服务器的点击率从而引起多数
信息提供者的失望, 因为他们不能维持对他们页面点击的
管理 。
? 因此, Web缓存系统设计应解决下述问题,
缓存系统的体系结构, 代理的放臵, 缓存的内容,
代理间的合作, 数据共享, 缓存的路由选择, 预先
抽取, 缓存的放臵与替换, 缓存的一致性, 控制信
息的分布, 动态数据的缓存等 。
? 通过上述问题解决使 Web缓存系统具有以下特点,
快速访问, 强壮性, 透明性, 可伸缩性, 有效性,
自适应性, 稳定性, 负载平衡, 能处理异构性和简
单性 。
2.缓存系统的 体系结构
如何放置缓存代理来完成最优性能是 Web系统要考虑的重要问
题 。 这与客户群体大小和缓存系统体系结构有关 。
(1) 层次缓存结构
? 利用层次缓存结构, 缓存可以多级网络放置 。 为简单起见,
假设采用 4级缓存, 最底级, 部门级, 地区级和国家级 。
? 层次缓存结构有高的带宽使用效率, 尤其是一些合作的缓
存服务器没有高速连通性时 。
? 还应考虑层次缓存结构相关的问题, 诸如,
建立这样分层结构, 缓存服务器需要被放臵到网络中的关
键访问点, 这需要系统中缓存服务器间大量的协调 ; 每级
层次可能引入另外的延时;高层缓存可能变成瓶颈并具有
长的排队时延;相同文档的多个备份存放在不同层次的缓
存 。
(2) 分布式缓存结构
? 分布式缓存结构中只有底层缓存的存在, 没有其他中间层
次的缓存 。 为了决定从哪个部门级缓存中查找一个没有在
当前缓存找到的数据, 所有部门级缓存都保存有其他部门
级缓存的内容的元数据信息 。 为了使元数据信息更有效和
可伸缩, 应使用一个分层的分布机制 。
? 这个层次结构仅用来分布文档位置的目录信息, 而不是实
际数据备份 。 利用分布式缓存大多数流量在底层网络层,
在中间网络层次减少了阻塞也不需要另外磁盘空间 。 另外,
分布式缓存支持更好的负载共享和容错性能 。
? 大规模的分布式缓存的部署也许会遭遇诸如高连接时间,
较高的带宽消耗, 缓存管理等问题 。
(3) 混合的缓存结构
? 在混合的缓存机制中, 利用分布式缓存技术, 缓
存可与同一级的缓存也可与较高一级的缓存合作 。
? 例如在 Harvest项目中设计的 ICP(Internet Cache
Protocol)是一个典型例子 。 文档从父缓存 /邻接缓
存中具有最小全程访问时间的一个缓存中取出 。
目前常用的缓存方式有以下几种,
? 预装 (preload)技术 服务器主动把一些热点文档下推 (push)到
代理服务器, 以便用户能较快地访问缓存的最新文档 。
? 动态置换 缓存过程中常采用客户拉 (pull)的方法, 即用户
点击的文档自动进入缓存 。 缓存内容应保持目前最热点的
文档, 由于缓存容量限制, 缓存内容就需要一个动态置换
过程 。
? 部分缓存 为使缓存发挥最大的效率, 可采用将热点文档的
开始部分 (prefix)而非全部进行缓存, 这样既能达到提高
Web服务质量的效果又能通过缓存较多的文档尽可能提高
缓存的利用率 。
3,缓存 方式
7.5.3 缓存臵换策略
代理缓存的有效性主要在于具有高命中率的放
置 /置换算法。缓存置换算法可划分为 3类,
? 传统的置换策略及其直接扩展;
? 基于键的置换策略;
? 基于费用的置换策略。
1,传统的置换策略及其直接扩展
这类算法包括,
? LRU(least recently used)算法 为使一个最新访问的
对象进入缓存, 一些最久请求的缓存对象被臵换
出去, 即首先替换出上次访问请求以后时间最长
的没被请求的缓存对象;
? LFU(least frequently used)算法 当新对象进入时,
最不频繁访问或具有最小访问频率的对象先被臵
换出去;
? FIFO(first in first out)算法 按进入缓存的时间顺序
臵换出先进入的对象, 同一天进入的对象可按尺
寸 (size)排序, 较大者先被臵换 。
这类算法基于主键、二级键、三级键等来置换对象。算法有,
? Size算法 基于对象的尺寸, 每次臵换出最大的对象;
? LRU-MIN算法 该算法偏爱较小的对象 。 如果缓存中存在尺寸至少为 S的
对象, LRU-MIN从这些对象中臵换出最久使用的对象 。 如果没有尺寸
至少为 S的对象, 那么 LRU-MIN对尺寸至少为 S/2的对象按 LRU顺序臵
换 。 即, 具有最大的 log(size)的对象和具有相同 log(size)的所有对象中最
久使用的对象被首先臵换出去 ;
? LRU-阀值算法 相同于 LRU,但大于某个阀值尺寸的对象从不进入缓存 。
? 这类算法基于主键、二级键、三级键等来置换对象。算法有,
Size算法 基于对象的尺寸, 每次臵换出最大的对象;
LRU-MIN算法 该算法偏爱较小的对象。如果缓存中存在尺寸至少为 S的
对象, LRU-MIN从这些对象中臵换出最久使用的对象。如果没有尺寸
至少为 S的对象, 那么 LRU-MIN对尺寸至少为 S/2的对象按 LRU顺序臵
换。即, 具有最大的 log(size)的对象和具有相同 log(size)的所有对象中最
久使用的对象被首先臵换出去 ;
LRU-阀值算法 相同于 LRU,但大于某个阀值尺寸的对象从不进入缓存。
2,基于键的置换策略
? Hyper-G算法 是 LFU算法的细化, 将访问频率 ( 次数 )
作为主键, 最后一次访问的时间作为二级键, 对象尺
寸作为三级键排序来臵换缓存对象 。
? LLF(lowest latency first)算法 该算法通过首先臵换出
具有最低下载延时的文档来最小化平均延时 。
考虑诸如上次访问时间间隔、对象进入缓存时间、传输时间费
用、对象失效时间等因素,使用一个费用 (代价 )函数来找
出应该置换出去的对象,该类算法的目标是最优的置换策
略。主要的方法有,
? GD-Size(greedydual-size)算法 该算法对每个对象联系具体
费用, 并臵换出具有最低费用 /尺寸比来臵换对象 。
? LNC-R(least normalized cost replacement) 该算法使用一个考
虑访问频率, 传输时间费用和对象尺寸的有理函数来确定
臵换对象 。
? Bolot/Hoschka算法 该算法使用一个考虑传输时间费用, 对
象尺寸和上次访问时间的带权有理函数来确定臵换对象 。
3,基于费用的置换策略
? SLRU(size-adjusted LRU) 该算法按费用与对象尺寸的比
率来对对象排序,选择具有最佳费用尺寸比率的对象。
? Hybrid算法 该算法对每个对象联系一个利用函数,臵换
出对减少总的延迟具有最低利用值的对象。
基于费用的置换策略由于考虑角度不同, 选择参数不同,
方法多种多样。下面以 SLRU算法为例来介绍其具体过程。
C,Aggarwal等人提出的 SLRU算法使用下列符号,
N —— 对象个数;
Si —— 对象 i的尺寸;
C(k)——第 k次迭代后, 缓存中的对象集合;
ik ——第 k次迭代时访问的对象;
?Tik——自上次对象 i被访问以来缓存访问次数,1/?Tik称为
对象 i的动态频率 ;
R—— 缓存中为容纳对象 ik必须提供的空间尺寸 。
所考虑的问题形式化为求,
Min ? yi/?Tik
i?C(k)
使得 ? Si yi ? R 且 yi?{0,1}。
i?C(k)
该问题实际上是著名的 背包问题, 也是一个 NP问题 。
有效的启发式求解是使用贪心 算法,具体算法步骤如下,
( 1) 对所有对象按费用尺寸比率进行排序;
( 2) 选择具有最好的费用尺寸比率的对象, 直到 不能再放
入背包 。
本例中费用尺寸比率为 1/(Si?Tik)。 所以重新按 Si?Tik不减的
顺序重排对象, 使得,
S1?T1k? S2?T2k? … ? S|C(k)|?T\C(k)|k
然后, 逐个选择最高序号的对象并从缓存中去掉它们, 直
到我们为进入缓存的对象创建了有效的空间 。
本章小结
? 本 章简要介绍超文本和超文本系统的概念、发
展历史和典型系统;
? 对超文本文献模型进行了讨论,它是开发超文
本标记语言的基础;
? 介绍了 Web系统的超文本标准语言和方法;
? 讨论了 Web系统及其关键的技术问题 。
? 超文本的 基本概念与 发展简史
? 超文本系统的结构
? 超文本的文献模型
? Web系统 的超文本标记语言
? Web系统的关键 技术
7.1 超文本的基本概念 及发展简史
? 超文本
? 超文本系统
? 发展简史与典型系统
? 文本 特点是它在组织上是线性的和顺序的。
? 人脑的记忆机制 一种联想式的记忆,它构成
了人类记忆的网状结构,对联想、记忆的探索
形成了人类思维概念化的基础。
7.1.1 超文本的概念
图 7.1 文本的线性结构
? 超文本结构 类似于人类这种联想记忆结构,它
采用一种非线性的网状结构组织块状信息。
? 超文本 是由信息结点和表示信息结点间相关性
的链构成的具有一定逻辑结构和语义的网络。
? 结点 是基本单位。 它是一个信息块,具体地说,
它可以是某一字符文本集合,也可以是屏幕中某
一大小的显示区。
图 7.2 6结点 9条链超文本结构
A………,
………,,
B……,,C……,
D………,,
………,
E……… F…,
超文本系统
超文本系统 对超文本进行管理和使用的系统。
超文本系统特点,
(1) 在用户界面中包括对超文本的网络结构的显式表示,即
向用户展示结点和链的形式;
(2) 向用户给出网络结构的动态总貌图,使用户在每一时刻
都可以得到当前结点的邻接环境;
(3) 超文本系统一般使用双向链,这种链应支持跨越各种
计算机网络,如 LAN和 Internet;
(4) 用户可以通过自己思想的联想及感知,根据自己的需要
动态地改变和访问网络中的结点和链;
(5) 尽可能不依赖它的具体特性、命令或信息结构,而更多
地强调的是它的用户界面的“视觉和感觉, 。
? 第二代超文本系统与多媒体技术结合起来, 为
强调系统处理多媒体信息的能力而称为超媒体
超媒体 =多媒体 +超文本
? 目前, 超文本与超媒体很难区别, 所以往往
不加区分地使用 。
7.1.2 发展历史
? 超文本思想最早由美国 V.Bush提出,他在 20世纪
30年代即提出了一种叫做 Memex(memory extender,
存储扩充器 )的设想,预言了文本的一种非线性结
构,1939年写成文章,As We May Think”,于
1945年在“大西洋月刊”发表。
? 1965年,Ted Nelson创造了“超文本”这个词,
而且开始实现这个想法,并在他的 Xanadu计划的
长远目标中,试图使用超文本方法把世界上文献
资料联机。
超文本发展 3个阶段
? 概念产生时期 (1945—1965), 标志性的事件是
Bush提出 Memex和 Nelson创造 Hypertext。
? 概念系统的研究时期 (1967—1985)
? 1967年,布朗大学 Andy van Dam等研制第一个可运行
超文本系统 The Hypertext Editing System;
? 1968年,Doug Engelbart在 FJCC(秋季联合计算机会议 )
上演示 NLS系统 (联机系统 );
? 1968年,布朗大学推出 FRESS(文件检索与编辑系统 );
? 1975年,CMU推出 ZOG(现为 KMS,知识管理系统 );
? 1978年,MIT建筑机械组推出第一个超媒体视频盘片
系统 Aspen Movie Map(白杨城影片地图 ) 。
? 成熟与发展时期 (1985—)
? 1985年,Janet Walker研制的 Symbolics Document Examiner
(符号文献检测器 );
? 1985年,布朗大学推出 Intermedia系统,在 Macintosh上运
行;
? 1986年,OWL(办公工作站有限公司 )引入 Guide,这是第一
个广泛应用的超文本;
? 1987年,Xerox公司推出 Notecards,苹果公司 Bill Atkinson
研制 Hypercard;
? 1991年,美国 Asymetrix公司推出 ToolBook系统 ;
? 1990年, 位于日内瓦的欧洲量子物理实验室 CERN开发的
运行于 Internet的 WWW系统, 对人类社会产生深远影响。
超文本的理论研究
? 1987年,ACM超文本专题讨论会 (Hypertext’87)
在北卡罗来纳大学召开;
? 1990年,第一届欧洲超文本会议 (ECOH)在法国
Inria召开;
? 这些活动都成了系列性会议延续下来。同时,
ISO等国际组织也开始制定超文本方面的标准,
推动其商品化发展。
7.2 超文本系统的结构
? 超文本系统结构模型
? 超文本的主要部分
7.2.1 超文本系统结构模型
1,HAM模型
? 1988年,Campbell和 Goodman提出 HAM(超文
本抽象机 )模型。 HAM模型把超文本系统划分
为 3个层次,用户界面层,HAM层,数据库
层。
用户界面层
超文本抽象机层
数据库层
图 7.3 HAM模型
数据库层
? 数据库层提供功能是存储、共享数据和网络访
问,处于 3层模型的最低层。
? 数据库层要保证信息的存取操作对于高层的超
文本抽象机来说是透明的。
? 数据库还要处理其他传统的数据库管理问题。
超文本 抽象机层
? 决定超文本系统结点和链的基本特点,记录了结点
之间链的关系,并保存有关结点和链的结构信息。
? HAM层就是实现超文本输入输出格式标准化转换
的最佳层次。因数据库层存储格式过分依赖机器,
用户界面层各系统风格差别很大,很难统一。
? HAM层可理解为超文本概念模式,它提供了对数
据库下层的透明性和对上层用户界面层的标准性。
用户界面层又称为表现层,
? 用户界面层涉及超文本抽象机层中信息的表现, 包括:
用户可以使用的命令, HAM层信息如何展示, 是否要
包括总体概貌图来表示信息的组织, 以便及时告知用
户当前所处的位置等等 。
? 目前流行的界面风格有以下几类,
(1)命令语言;
(2)菜单选项;
(3)表格填充;
(4)直接操作;
(5)自然语言。
表 7.1 各种界面风格的比较
界面 优 点 缺 点
命令
语言
灵活;支持用户创造性;便于建立用
户定义宏;对熟练用户有高效率。
较差的错误处理;要求好的训练
和记忆。
菜单
选项
缩短训练;减少击键;适合有结构的
决策;可用话对管理工个;容易处理
错误。
可能出现菜单层次过多及选项复
杂情况;对熟练用户太慢;占用
屏幕空间;要求快的显示速率。
表格
填充
简化数据输入;要求简单训练;便于
辅导;可用表格管理工具。
占用屏幕空间 。
直接
操作
直观方式提供任务操作;易学习;易
记住;可避免错误;适合探索;适合
设计者灵活创新。
程序设计有一定难度;要求图形
显示器及指点设备。
自然
语言
避免学习语法的负担。 要求清晰的对话;击键增多;受
限应用范围;短的, 限定的上下
文 。
2,Dexter模型
? 1988年 10月,在美国新罕布尔
州的 Dexter饭店发起组织了一个
研究超文本模型小组,致力于
超文本标准化的研究,以后逐
渐形成了一个超文本参考模型,
简称为 Dexter模型。
运 行 层
播放规范
存 储 层
定位机制
成员内部层
图 7.4 Dexter模型
存储层
? 描述成员之间的网状关系。
? 成员描述系统的基本对象,包括结点和链等。
? 原子成员是最小成员单位,也即超文本中的结
点,其内容可为不同媒体的信息。
? 复合成员是具有嵌套层次的成员,由原子成员
和链复合而成。
? 链是表示元素与元素之间关系的一种实体。
成员内部层
? 成员内部层描述超文本中成员的内容和结构,
对应于各个媒体单个应用成员。
? 存储层和成员内部层之间的接口称为定位机制,
其基本成分是锚, 锚由两部分组成,锚号和
锚值,锚号是每个锚的标识符,锚值用来指
定元素内部的位置和子结构。
运行层
? 运行层描述支持用户和超文本交互作用的机制,
它可直接访问和操作在存储层和成员内部层定
义的网状数据模型 。
? 介于存储层和运行层之间的接口 (播放规范 ),
提供确定各个成员在运行时表现的视图和操作
权限等内容 。
? 锚接口是 Dexter模型的主要贡献 。
7.2.2 超文本的主要成份
? 结点 (或节点 ) 超文本表达信息的一个基本单位,
其大小可变,结点的内容可以是文本、图形、
图像、音频、视频等,也可以是一段程序。
? 结点分为不同类型,不同类型的结点表示不同
的信息。
常见的结点的基本类型,
(1) 媒体结点 。
(2) 动作与操作结点。
(3) 组织结点。
(4) 推理结点。
? 链也是组成超文本的基本单位,形式上是
从一个结点指向另一个结点的指针,本质
上表示不同结点上存在着的信息的联系。
? 链的类型
(1)基本结构链 基本,交叉索引,节点内
注释,缩放,全景,视图。
(2)组织链 索引,IS-A,HAS-A,执行。
(3)推理链。
? 宏结点是链接在一起的结点群,就是超文本网
络的一部分 —即子网。
? 宏文本 (Macrotext)和微文本 (Microtext) 概念,
来表示不同层次的超文本。微文本又称小型超
文本,它支持对结点信息的浏览; 而宏文本
又称大型超文本,支持对宏结点的查找与索引。
? 宏结点的引入虽然简化了网络结构,却增加了
管理与检索的层次。
图 7.5 宏结点
7.3 超文本的文献模型
? 文献模型概述
? ODA 模型
? HyTime模型
7.3.1文献模型概述
? 文献是 文章或文本的组合,它比一般文章和文
本带有更多的存储、保留的意味,一旦定形后
静态性较强。
? 超文本的文献模型侧重于超文本的基本特征和
一般的层次性结构的描述。
1.文献的一般结构
? 文献的结构包括内容组织和版面安排两个方面 。
? 内容组织指如何组织和构造文献的信息内容; 版面
安排是相对内容的表现形式来说的, 即文献的各部
分内容如何安排在每一页面 (屏幕 )上 。
? 如把一本书当作文献来看其内容组织主层次结构是:
文献 (内容 )→ 章 → 节 → 小节 → 段落 (内容实体 )。内容
实体可以是一段文字或是一个图表。
? 可把版面安排也层次化,以便和内容组织对应,可
以分成:文献 (版面 )→ 页 /整屏 → 框架 /窗口 → 块 /子
窗口 (内容实体 )。
2.文献模型的基本任务
(1)能够表示多媒体文献的内容层次性;
(2)能够表示多媒体文献的版面布局;
(3)能够表示多媒体文献的时间布局;
(4)能够 将内容与布局对应起来。
7.3.2 ODA 模型
? ODA(the office/open document architecture)是
ISO在 1988年公布的一个标准化文献模型 (ISO
8613,1988),它为辅助办公文献的表示和交
互而设计的。
? 它提供了文献的静态描述,还提供了与其他
文献格式接口 。
? ODA文献结构是层次的和面向对象的。
? ODA文献由两对结构来描述,即,一般结构
和具体结构,逻辑结构和布局结构。前者体现
面向对象性质,后者体现内容与表现的关系
逻辑结构和布局结构
? 文献的内容层次性用逻辑结构描述, 它首先按
文献内容划分成逻辑目标, 逻辑目标可以是一
个一般项, 如书中的一节, 标题, 段落等 。
? 文献的版面安排 用布局结构描述。它按内容划
分为页集、页和页中方框区域,其中定义有嵌
套区域的方框区域称为框架, 最低层的区域
称为块。块是惟一有内容与之相联的区域。
图 7.6 逻辑结构和布局结构对应关系
节
标题 小节
子标题 段落 段落 段落
内容 内容 内容 内容 内容
块 块 块 块 块
框架 框架 框架
页 页
逻辑结构
布局结构
一般结构和具体结构
? 每个文献都有具体的 (specific)逻辑结构和布局结
构, 而具体结构的建立是由相应的一般 (generic)
结构控制的 。
? 一般结构是一系列关于对象的定义 (对象分为逻
辑对象集合和布局对象集合 )。
? 每个非页结点的对象定义都有一个属性“从属
产生器”, 用来说明对象如何由其子对象构成。
图 7.7 一般逻辑结构
论文
标题 作者 摘要 节
段落 子标题
段落 列表
项
SEQ
REQ REQ OPT SEQ
REP REQ SEQ
REP
REP CHO
图 7.8 一般布局结构
论文页集
标题页 继续页
继续
正文框架
SEQ
REQ OPT REP
AGG
正文框架 标题框架
从属产生器属性
? 可选的 (OPT) 0或 1次事件;
? 要求的 (REQ) 仅 1次事件;
? 重复 (REP) 1次或多次事件;
? 可选并且重复 (OPT REP) 0,1或多次事件;
? 顺序 (SEQ) 以固定顺序出现;
? 聚集 (AGG) 以任意次序出现;
? 选择 (CHO) 仅其中一个选中。
布局过程
? ODA的布局过程确切地决定文档中的每一项被放
置的位置。它使用特定的逻辑结构、一般结构、
内容体系以建立特定的布局结构。
? 它工作在两个层次上,
(1)内容布局处理内容部分,并将它们安排到块中。
(2)文献布局将块安排到框架或页中。这个阶段依
赖于称为布局风格的属性集。
7.3.3 HyTime模型
? HyTime全称时基超媒体结构化语言,它是一个
标准的中性标记语言,表示超文本和时基文献的
逻辑结构。
? HyTime由 ANSI的一个工作组开发,后被 ISO采纳,
其标准号为 ISO/IEC 10744,1992。
? HyTime基于 SGML,用 HyTime表示的文献与 ISO
SGML完全一致,HyTime扩展了 SGML,使
SGML更具抽象性、中立性,且增加了许多关于
多媒体应用方面的考虑。
? SGML元素
元素是一个可标记的逻辑体,以,book”为例,视
book为一类元素,将它可分为若干 Chapter,Chapter
还可分为 Title和若干 Section。 Chapter,Title和
Section也是元素。它们都是含有一定结构的逻辑体。
一个元素的标记实例,
〈元素名〉 数据 〈 /元素名〉
起始标签 结束标签
图 7.9 SGML元素
图 7.10 BOOK类的元素实例
SGML DTDs
? 在 SGML中,用 DTD(Document Type Definition)
来定义文献 (元素 )类型,描述其内部的一般逻
辑结构。如下 DTDs,
〈 !ELEMENT Book--(chapter +)>
〈 !ELEMENT Chapter--(Title,Section+)>
〈 !ELEMENT Title|Section--CDATA>
其中 +表示一个或多个。
SGML属性
? SGML用“属性”的方法来表示对某一个元素
的必要的非结构化的信息。属性由“属性名”
和“属性值”组成。属性名及其值包含在起始
标签里面,是标签的一部分,如下所示,
〈 Book author=“JOGN”〉 …(Chapters)… 〈 /Book〉
相应 DTD变为,
〈 !ELEMENT Book--(Chapter +)〉
〈 !ATTLIST Book author CDATA #REQUIRED〉
SGML标识符
? 有两种特殊的属性值,ID和 IDREF。
? 如果一个元素有一个 ID类型的属性,那么其值
必须是该元素的惟一名字。
? 如果元素 A要引用有惟一名字的元素 B,那么 A
的属性 IDREF的值就是 B的惟一名字。基于
SGML的超媒体系统就是用这种机制来表示文
献内部的超链。
SGML实体
? SGML中实体是任意数据资源,可以是文件、
硬件子系统、存储缓冲区等等。
? 实体定义形式为:〈 !ENTITY… 〉。
如〈 !ENTITY,Myentity”
SYSTEM“Usr/Local/text/myentity”〉,
则如果在文献中发现“& Myentity”,就会启动
SGML系统来引用该实体 。
HyTime/SGML,元 DTD
? HyTime利用称为,SGML结构形式”的形式,
提高了 SGML的抽象性和中立性,可以用来更好
地表示多媒体文献系统的特性。
? 元 DTD由一系列组织好了的包装好了的,SGML
结构形式”构成。 SGML DTDs中的一个
〈 !ELEMENT… 定义对应文献的类元素。
? 元 DTD是最抽象的结构,是独立于具体应用的。
HyTime其实就是一个元 DTD系统。
? SGML有 3种结构,
物理的实体结构; 逻辑的元素结构以及类似指
针的 ID-IDREF结构。
? 3种基本逻辑结构,
SGML层次性元素结构;
HyTime超链结构;
Hytime调度结构。
图 7.11 Hytime的 3种结构
7.4 Web系统的超文本标记语言
? 目前最成功或最流行的超文本系统是运行
于 Internet网上 WWW,它实现了在广域网
上多媒体信息动态查询,其中 HTML是其
使用的超文本标注语言 。
? HTML语言编写的网页超文本信息按多级标题
结构进行组织,其结构如下,
<HTML>
<HEAD><TITLE>标题名 </TITLE></HEAD>
<BODY>
<H1>一级标题名 </H1>
,....,Web页主体
</BODY>
</HTML>
7.4.1 HTML语言
? HTML标记包含包容标记和空标记 。 空标记用
于说明一次性指令, 如换行标记为 <BR>。 包
容标记由开始标记和结束标记构成, 结构如下,
<标记名 > 数据 </标记名 >
? HTML标记有些可以带有属性,如 <IMG
SRC=“GLOBE.GIF”>,其中 SRC为属性,该
属性告诉浏览器图像的文件名。
1,基本结构
2,超文本标记方法
? 字体
黑体 <B>文本 </B> 斜体 <I>文本 </I>
下划线 <U>文本 </U> 打字体 <TT>文本 </TT>
? 字号与颜色
设定基准字号的标记方法为,
<BASEFONT SIZE=#> # = 1 - 7
设定指定字号的标记方法为,
<FONT SIZE=#>文本 </FONT>
# = 1,2,3,4,5,6,7 表示指定的字体大小;
# = +(-)2,3,4,5,6 表示字体大小的相对改变 。
设定字体颜色可通过如下两种方式,
<FONT COLOR="hex_rgb"> 文本 </FONT>
<FONT COLOR="color name"> 文本 </FONT>
? 段落格式
包括换行符号 <BR>,分段 (换行加空行 )符号 <P>,分界尺符
号 <HR>等 。
? 文本链接
可通过点击文本检索浏览另一超文本网页, 如,
<A HREF=,Art.html”>Click Here for Art.</A>
? 图像链接
可通过点击一幅图像从而跳到另一超文本网页, 如
<A HREF=,Olddog.html”><IMG SRC=“Dog1.gif”> </A>
? FTP和 Email链接
HTML页面可实现与 FTP和 Email系统的链接, 例如,
<A HREF=,ftp,//ftp.myDomain.com/Pub/freeware.txt”> GetFreeware</A><A
HREF=,mailto,myName@myDomain.com”>Mailtome.</A>
? 非图像浏览器图像替换
如浏览器不能浏览图像, HTML可用 ALT指定其替代文
字, 例如,
<A HREF=,Olddog.html”><IMG SRC=,Dog1.gif” ALT=
“[picture of a dog]”></A>
3,多媒体信息
? 图像显示
显示图像的标记方式为,
<IMG SRC="file,///d,/html/jet.gif" WIDTH=? HEIGHT=?
VSPACE=? HSPACE=?>
其中, WIDTH,HEIGHT为图像的宽, 高; VSPACE,
HSPACE为垂直, 水平空格数 。
? 列表
有序 <OL> 无序 〈 UL〉
<LI> 〈 LI〉
<LI> 〈 LI〉
</OL> 〈 /UL〉
? 音频
? HTML中可指定背景音乐, 例如,
<BGSound SRC="Path/Filename.WAV" Loop=#>
#为循环次数 。
? 利用链接启动声音, 如当用户单击文本 link
text后, 声音才播放,
<A HREF="Path/Filename"> link text </A>
? 视频与动画
在 HTML页面上播放视频与动画标记格式如下,
<IMG dynsrc="user.avi" START=fileopen (or mouseover)
WIDTH=? HEIGHT=? VSPACE=? HSPACE=? LOOP=? >
<IMG dynsrc="user.flc" START=fileopen (or mouseover)
WIDTH=? HEIGHT=? VSPACE=? HSPACE=? LOOP=? >
除了 dynsrc属性,其他属性都可默认。 START=fileopen表示 Web页
一被装入便播放; START=mouseover表示鼠标从该区域滑过才播
放。
? Web页中背景的实现
? 用图像填充背景
<BODY BACKGROUND="Path/Filename">
? 用颜色填充背景
<BODY BGCOLOR="#RRGGBB">
RR,GG,BB分别表示红、绿、蓝分量,用十六进制表
示。例如,<BODY BGCOLOR=,#888888”>表示背景颜
色为灰色。还可用颜色的名字表示背景颜色,格式为
<BODY BGCOLOR="颜色名 ">
7.4.2 XML
? 可扩展的标记语言 XML是 1998年 2月正式公布的网络超
文本的元标记语言,由 W3C的 XML工作小组所定义的。
? 它和 HTML一样,是 SGML的一个子集。 XML保留了
SGML 80%的功能,并使复杂程度降低了 20%。
? XML兼取 HTML和 SGML之长,既通用全面又简明清晰,
并具有很强的可伸缩性和灵活性。
? XML是自描述的,显示样式可以从数据文档中分离出来,
放在样式单文件中。
? XML还具有遵循严格的语法要求、便于不同系统之间信
息的传输、有较好的保值性等优点。
? 描述举例见课本 P214。
7.4.3 动态网页生成技术
目前最常用的动态网页生成技术主要有,
? ASP(active server apages);
? PHP(personal hypertext preprocessor);
? JSP(Java server pages)。
它们都是应用于服务器端的技术,以便于快速开发
基于 Web的应用程序。
7.5 Web系统的关键技术
7.5.1 Web系统的结构
1,基本结构
Web系统是采用 HTTP(Hypertext Transfer Protocol)协议的超文
本系统, 其基本结构是一个客户机 /服务器模型, 如图所示 。
客户机 Web服务器
图 7.12 Web系统基本结构
用户通过客户端的浏览器发出访问请求, 如键入 http,//www.bupt.edu.cn,
通过 Internet网络进入网址为 www.bupt.edu.cn服务器 。 服务器下载页面
信息 (HTML格式 )作为请求的响应 。
2,扩展结构
(1) 网络服务器站点镜像 为了提高响应速度, 减少网
络负担, 增强系统的强壮性, 重要站点常常采用服
务器站点镜像的方法, 将网站服务器分布部署在不
同的地点, 而每个服务器具有相同的服务内容, 信
息动态地实时同步更新 。
这种结构分担服务器的负载, 提高了系统的服务质量 。
图 7.13 服务器站点镜像结构
(2) 代理服务器 在靠近客户端的合适位置缓存热点访问信息被认
为是缓解 Web服务瓶颈, 减少 Internet流量和改进 Web系统可扩
展性的一种有效方案 。 使用防火墙中的代理服务器来缓存防火
墙内用户访问的信息是自然可行的途径 。
当然这类缓存代理可以放置在客户机和服务器间的其他地方,而
文档可缓存在客户机、服务器和代理中的任一位置。
图 7.14 基于代理服务器的扩展结构
7.5.2 Web系统的关键问题
1.Web缓存设计的问题
Web服务质量性能参数包括准入延时, 媒体播放质量等, Web
缓存可显著改善 Web系统的服务性能, 表现在,
? Web缓存减少带宽消耗, 降低网络流量并缓解网络阻塞 ;
? 由于频繁访问的文档存放在离客户端近的代理, Web缓
存减少了用户访问延时 ;
? Web缓存通过分散数据在缓存代理中而减少了远程 Web服
务器的工作负荷 ;
? 如果远程服务器或网络不能访问时, 用户可获得在代理
中复制的信息, 因此 Web服务的强壮性加强 ;
? Web缓存的其他好处是它提供了分析一个机构的 Web服务
使用模式的机会 。 另外, 一组缓存的互相合作可进一步改
进缓存的有效性 。
在 Web服务中使用缓存系统可能会出现下述缺点,
? 由于缺乏缓存代理更新, 用户也许查看的是陈旧的数据 ;
? 由于额外的代理处理, 访问延时在缓存中查不到目标数据
的情况下可能增加 ;
? 单一的代理总是系统服务的瓶颈, 针对一个代理所服务的
客户数应有所限制 ;
? 使用代理缓存会减少原远程服务器的点击率从而引起多数
信息提供者的失望, 因为他们不能维持对他们页面点击的
管理 。
? 因此, Web缓存系统设计应解决下述问题,
缓存系统的体系结构, 代理的放臵, 缓存的内容,
代理间的合作, 数据共享, 缓存的路由选择, 预先
抽取, 缓存的放臵与替换, 缓存的一致性, 控制信
息的分布, 动态数据的缓存等 。
? 通过上述问题解决使 Web缓存系统具有以下特点,
快速访问, 强壮性, 透明性, 可伸缩性, 有效性,
自适应性, 稳定性, 负载平衡, 能处理异构性和简
单性 。
2.缓存系统的 体系结构
如何放置缓存代理来完成最优性能是 Web系统要考虑的重要问
题 。 这与客户群体大小和缓存系统体系结构有关 。
(1) 层次缓存结构
? 利用层次缓存结构, 缓存可以多级网络放置 。 为简单起见,
假设采用 4级缓存, 最底级, 部门级, 地区级和国家级 。
? 层次缓存结构有高的带宽使用效率, 尤其是一些合作的缓
存服务器没有高速连通性时 。
? 还应考虑层次缓存结构相关的问题, 诸如,
建立这样分层结构, 缓存服务器需要被放臵到网络中的关
键访问点, 这需要系统中缓存服务器间大量的协调 ; 每级
层次可能引入另外的延时;高层缓存可能变成瓶颈并具有
长的排队时延;相同文档的多个备份存放在不同层次的缓
存 。
(2) 分布式缓存结构
? 分布式缓存结构中只有底层缓存的存在, 没有其他中间层
次的缓存 。 为了决定从哪个部门级缓存中查找一个没有在
当前缓存找到的数据, 所有部门级缓存都保存有其他部门
级缓存的内容的元数据信息 。 为了使元数据信息更有效和
可伸缩, 应使用一个分层的分布机制 。
? 这个层次结构仅用来分布文档位置的目录信息, 而不是实
际数据备份 。 利用分布式缓存大多数流量在底层网络层,
在中间网络层次减少了阻塞也不需要另外磁盘空间 。 另外,
分布式缓存支持更好的负载共享和容错性能 。
? 大规模的分布式缓存的部署也许会遭遇诸如高连接时间,
较高的带宽消耗, 缓存管理等问题 。
(3) 混合的缓存结构
? 在混合的缓存机制中, 利用分布式缓存技术, 缓
存可与同一级的缓存也可与较高一级的缓存合作 。
? 例如在 Harvest项目中设计的 ICP(Internet Cache
Protocol)是一个典型例子 。 文档从父缓存 /邻接缓
存中具有最小全程访问时间的一个缓存中取出 。
目前常用的缓存方式有以下几种,
? 预装 (preload)技术 服务器主动把一些热点文档下推 (push)到
代理服务器, 以便用户能较快地访问缓存的最新文档 。
? 动态置换 缓存过程中常采用客户拉 (pull)的方法, 即用户
点击的文档自动进入缓存 。 缓存内容应保持目前最热点的
文档, 由于缓存容量限制, 缓存内容就需要一个动态置换
过程 。
? 部分缓存 为使缓存发挥最大的效率, 可采用将热点文档的
开始部分 (prefix)而非全部进行缓存, 这样既能达到提高
Web服务质量的效果又能通过缓存较多的文档尽可能提高
缓存的利用率 。
3,缓存 方式
7.5.3 缓存臵换策略
代理缓存的有效性主要在于具有高命中率的放
置 /置换算法。缓存置换算法可划分为 3类,
? 传统的置换策略及其直接扩展;
? 基于键的置换策略;
? 基于费用的置换策略。
1,传统的置换策略及其直接扩展
这类算法包括,
? LRU(least recently used)算法 为使一个最新访问的
对象进入缓存, 一些最久请求的缓存对象被臵换
出去, 即首先替换出上次访问请求以后时间最长
的没被请求的缓存对象;
? LFU(least frequently used)算法 当新对象进入时,
最不频繁访问或具有最小访问频率的对象先被臵
换出去;
? FIFO(first in first out)算法 按进入缓存的时间顺序
臵换出先进入的对象, 同一天进入的对象可按尺
寸 (size)排序, 较大者先被臵换 。
这类算法基于主键、二级键、三级键等来置换对象。算法有,
? Size算法 基于对象的尺寸, 每次臵换出最大的对象;
? LRU-MIN算法 该算法偏爱较小的对象 。 如果缓存中存在尺寸至少为 S的
对象, LRU-MIN从这些对象中臵换出最久使用的对象 。 如果没有尺寸
至少为 S的对象, 那么 LRU-MIN对尺寸至少为 S/2的对象按 LRU顺序臵
换 。 即, 具有最大的 log(size)的对象和具有相同 log(size)的所有对象中最
久使用的对象被首先臵换出去 ;
? LRU-阀值算法 相同于 LRU,但大于某个阀值尺寸的对象从不进入缓存 。
? 这类算法基于主键、二级键、三级键等来置换对象。算法有,
Size算法 基于对象的尺寸, 每次臵换出最大的对象;
LRU-MIN算法 该算法偏爱较小的对象。如果缓存中存在尺寸至少为 S的
对象, LRU-MIN从这些对象中臵换出最久使用的对象。如果没有尺寸
至少为 S的对象, 那么 LRU-MIN对尺寸至少为 S/2的对象按 LRU顺序臵
换。即, 具有最大的 log(size)的对象和具有相同 log(size)的所有对象中最
久使用的对象被首先臵换出去 ;
LRU-阀值算法 相同于 LRU,但大于某个阀值尺寸的对象从不进入缓存。
2,基于键的置换策略
? Hyper-G算法 是 LFU算法的细化, 将访问频率 ( 次数 )
作为主键, 最后一次访问的时间作为二级键, 对象尺
寸作为三级键排序来臵换缓存对象 。
? LLF(lowest latency first)算法 该算法通过首先臵换出
具有最低下载延时的文档来最小化平均延时 。
考虑诸如上次访问时间间隔、对象进入缓存时间、传输时间费
用、对象失效时间等因素,使用一个费用 (代价 )函数来找
出应该置换出去的对象,该类算法的目标是最优的置换策
略。主要的方法有,
? GD-Size(greedydual-size)算法 该算法对每个对象联系具体
费用, 并臵换出具有最低费用 /尺寸比来臵换对象 。
? LNC-R(least normalized cost replacement) 该算法使用一个考
虑访问频率, 传输时间费用和对象尺寸的有理函数来确定
臵换对象 。
? Bolot/Hoschka算法 该算法使用一个考虑传输时间费用, 对
象尺寸和上次访问时间的带权有理函数来确定臵换对象 。
3,基于费用的置换策略
? SLRU(size-adjusted LRU) 该算法按费用与对象尺寸的比
率来对对象排序,选择具有最佳费用尺寸比率的对象。
? Hybrid算法 该算法对每个对象联系一个利用函数,臵换
出对减少总的延迟具有最低利用值的对象。
基于费用的置换策略由于考虑角度不同, 选择参数不同,
方法多种多样。下面以 SLRU算法为例来介绍其具体过程。
C,Aggarwal等人提出的 SLRU算法使用下列符号,
N —— 对象个数;
Si —— 对象 i的尺寸;
C(k)——第 k次迭代后, 缓存中的对象集合;
ik ——第 k次迭代时访问的对象;
?Tik——自上次对象 i被访问以来缓存访问次数,1/?Tik称为
对象 i的动态频率 ;
R—— 缓存中为容纳对象 ik必须提供的空间尺寸 。
所考虑的问题形式化为求,
Min ? yi/?Tik
i?C(k)
使得 ? Si yi ? R 且 yi?{0,1}。
i?C(k)
该问题实际上是著名的 背包问题, 也是一个 NP问题 。
有效的启发式求解是使用贪心 算法,具体算法步骤如下,
( 1) 对所有对象按费用尺寸比率进行排序;
( 2) 选择具有最好的费用尺寸比率的对象, 直到 不能再放
入背包 。
本例中费用尺寸比率为 1/(Si?Tik)。 所以重新按 Si?Tik不减的
顺序重排对象, 使得,
S1?T1k? S2?T2k? … ? S|C(k)|?T\C(k)|k
然后, 逐个选择最高序号的对象并从缓存中去掉它们, 直
到我们为进入缓存的对象创建了有效的空间 。
本章小结
? 本 章简要介绍超文本和超文本系统的概念、发
展历史和典型系统;
? 对超文本文献模型进行了讨论,它是开发超文
本标记语言的基础;
? 介绍了 Web系统的超文本标准语言和方法;
? 讨论了 Web系统及其关键的技术问题 。