Web存储格式语言的发展
很难想象,仅仅经过短短十年的发展,world wide web就已经走入了千家万户,便利了信息的共享和交流、改变了商业运作模式、影响着每个人的生活方式。十年前,当html初次面世时,它还只是一些欧洲物理学家们为了便于交换学术资料而定义的一种文档标记语言。当第一个html图文浏览器mosaic由一个二十出头的年轻人开发出来并向外界开放时,全世界为之耳目一新,从此开始了web技术的迅速普及发展,成为一股不可逆转的潮流,开辟了全新的视野,创造了新的市场和新的机遇,鼓舞着敢于创新的人们树立出一个又一个的成功典范。十年来,web存储格式语言,从html发展到dhtml,再到最新的xml,发展的每一步,都是为了适应web应用发展的需求。本文简要介绍这几种基于文本的web存储格式语言的特征,以及各自的优缺点,最后引入一种全新的基于结构的存储格式。
1.html 作为web最初也是最重要基础的html(hypetext markup language)来源于sgml(standard generalized markup language)。sgml是用于定义电子文档内容和结构描述的国际化标准。尽管从字面意思上sgml是一种语言,但实际上sgml自身并不是一种语言,而是用于根据它的一般规则定义其它标记语言,因而可以称之为元语言。sgml通过指定组成标记语言的元素和属性的语法来定义一种标记语言。sgml确立的是一套严格一致的、独立于平台之间表达信息的格式,以避免不同的私有信息格式带来的信息交换的障碍。尽管sgml是现有所有标记语言的前身,但它本身并没有得到普及推广,其中最重要的原因就是sgml格式过于复杂,难以作为一种通用的、大众型的信息存储表达格式。 今天,以html为基础的网络浏览器成为人们日常上网的主要工具,大多数的web应用都是基于html,所有这些都证明了html是一种成功的信息存储、表达、交流的语言。html以一组固定的、简单的标签集为任何公司、政府机构、个人表达各自的信息提供了极大的便利。html是信息出版语言,它通过特定的标签来显示不同形式的内容,比如‘’这一组标签指定显示文字的字体,通过众多这样的标签,使用html,就可以排版出丰富多彩的页面。html同时也是信息存储语言,现有internet上的信息绝大部分是以html表示的页面文件。可以说html的产生是internet普及繁荣的真正开端。 2.dhtml html从本质上来说是一种静态的信息表达语言,随着web技术的发展,对动态的的信息表达的需求日益迫切,dhtml(dynamic hypetext markup language)就应运而生。 dhtml使用标准html标记来显示和操纵页面内容,但它对html进行了创新性的补充,它允许页面作者和开发人员动态地改变html页面的任何一个元素的风格和属性,并且在页面已经装载之后还可以插入、删除、修改页面元素和文本。 dhtml基于world wide web consortium(w3c)制定的文档对象模型,为页面开发人员提供一种创建动态web页面的方法。在一个dhtml页面内,页面的结构、风格、内容等都可以在浏览器装载该页面以后改变,而不需要从服务器重新请求一个新的页面。通过dhtml,你可以创建一个页面,同用户交互,而不需额外的控制并且也不需要通过与服务器之间的多次往复来更新页面。 在web技术普及发展的同时,另一项软件技术也得到了广泛的应用,这就是面向对象技术。dhtml的最重要的特征就是它将对象技术引入进来,指定了一种文档对象模型(dom),通过这种文档对象模型,页面上的每一个元素都视为一个对象,从而可以通过调用方法和设置属性来操纵这些对象。用另外的话来说,当你在浏览器内浏览一个页面时,你所看到的每样都是一个可以被通过书写脚本来操纵的对象。对文档对象模型的支持带来好处有: l 动态内容 文本或图形可以动态地添加、删除和修改。例如web页面可以显示一个更新过的标题,而不需要刷新页面,标题周围的文本会自动重新排列。 l 动态风格 css(cascading style sheets)的任何属性,包括颜色和字体,都可以即时更新,而不需要有对web服务器的请求过程。例如,当鼠标指针经过文本时,文本的颜色和大小可以同时变化以表示一个动态效果。多媒体过滤和转换效果可以简单地通过添加css属性应用到html页面元素上。 l 绝对定位 页面元素的位置可以随时更改以产生动画效果,这一动态改变过程不需要重新装载页面。 dhtml的一个很关键的特征是数据绑定,通过数据绑定,数据驱动的应用程序前端可以在客户端显示、操纵、更新数据,而不需要与服务器的多次往复。 dhtml的另一个关键特征是脚本件。脚本件是一个用dhtml制作的web页面,它可以被当作组件使用在web应用程序中。有了脚本件,内容提供者可以只制作一次内容,然后就可以很容易地使用在web页面或应用程序中。脚本件是组件技术在web上的一个应用。 dhtml的出现,使得web页面变得生动起来,用户界面也变得更为友好,交互性有了很大的提高。丰富多彩、生动有趣的网站吸引更多的人上网,网上生活因此逐渐成为人们日常生活的一部分。 尽管dhtml有众多的优点,它也有很大的缺陷:它使页面源文件内容变得纷繁复杂,使得页面的维护和阅读变得更加困难。 3.xml 互联网协议(ip),超文本标记语言(html),和超文本传输协议(http)已经给信息的发布、显示、搜索方式带来了革命性的变革,使我们能够在任何地方同任何人交流信息、表达思想,但是过去几年,internet在很大程度上还只是文本和图片信息的载体。internet不应该只是定义信息存取和显示的标准,还应该定义一种信息理解标准,一种通用的数据显示方法以使得软件能更好地搜索、移动、显示、操纵那些隐含在上下文中的信息。html不能做到这一点,因为它只描述一个web页面应该如何显示,它不能用来表示数据;dhtml也不能做到这一点,因为它除了是页面生动起来之外,与html并没有太多的不同。一种好的数据表示标准将能象html扩展internet显示一样扩展internet。这样的数据标准将会是交易处理、自动协作、数据库共享等的有力工具。这种数据标准就是xml和xml扩展。 xml(extensible markup language)是一种元标记语言,它提供描述结构化数据的格式。它有利于内容的更精确的描述,以及跨多平台的更有意义的搜索。xml是world wide web consortium(w3c)专为web作优化的sgml的子集,它被设计来通过web传递sgml类型的信息,它使结构化的数据统一并且独立于应用程序或开发商。xml具有sgml的大部分功能,但却比sgml简单得多,因此避开了sgml普及的障碍。对xml来说,很关键的一点是信息保存在xml文档内,而显示指令却在别处。相比html,xml是web上的数据交换语言,而html是web上的信息显示语言。xml的最重要的目标是使web应用具有统一的数据交换格式,它将开启新一代的web电子商务应用。 xsl(extensible stylesheet language)是一种用来将基于xml的数据转换成html或其它显示格式,从而在web浏览器中将数据信息显示出来的xml的辅助语言。将xml转换成html这样的格式是通过描述性方法,因此比通过脚本方法更为简单和可理解。此外,xsl采用xml作为其语法,因此xml开发人员就不必再学习另一种新的标记语言。相比css这样一种用格式化属性将xml“装饰”起来的方法,xsl将xml树转换成一种新的树,允许重排顺序,生成文本,并且加以计算,而不会改变xml源。xml源可以保持内容的纯净,并且可以同时不同的通道和目标接收者,只需简单地切换风格表单。 xll(extensible linking language)为xml提供类似html中的超链接方式,但具有更多的功能。除了提供基于url的超链接和锚点,xll还支持链接到文档的任意位置以及多方向链接。xll的这些特征使它适合许多新的应用包括许多用纯html难以做到的应用,这些应用包括:交叉索引、脚注、尾注、数据环接。在xml文档中,链接可以在对象这一级别进行,而不仅仅在页面级别。 xml名字空间(name space)让开发人员按一种公认的方式限定元素的名称以避免不同元素具有相同的名称。名字空间确保元素名称不冲突,并且阐明它们的来源,但并不定义如何处理这些元素。解析器必须知道元素的意义以及如何处理它们。 xml的良好的数据存储格式、可扩展性、高度结构化、便于网络传输等特性为基于web的应用程序带来了更强的功能和更多的灵活性,此外,它还为开发人员和用户提供更多引人注目的好处: l 灵活的web应用程序开发 通过xml,数据可以传送给其它应用程序、对象、中间层服务器以进行更进一步的处理,或者也可以传送到桌面浏览器显示出来。xml,连同用于显示的html,用于逻辑处理的脚本,以及用于在数据和显示之间相互操作的一般对象模型,为灵活的三层web应用程序开发提供必要的技术支撑。 l 来自不同源的数据集成 对多重的、互不兼容的数据库进行搜索在以前事实上是不可能的。xml使来自不同源的结构化数据能很容易地组合在一起。软件代理可以用来在中间层服务器上将来自后台数据库的数据和其它应用程序结合起来。这些数据可以传送到客户端或者其它服务器以进行进一步的集成、处理、和分发。 l 本地计算和处理 以xml格式表示的数据在传送到客户端以后,可以在本地解析、编辑、处理、计算。用户可以以多种方式操纵数据,而不仅仅是显示数据。xml文档对象模型允许通过脚本或其它编程语言操纵数据。数据计算可以直接进行而不必要再通过服务器。 l 数据的多重查看方式 一旦数据被传送到桌面,就可以以多种不同的方式查看。通过以简单、开放、强壮、和可扩展的方式描述结构化数据,xml是html这样的用户界面描述语言的补充。html描述数据的外部显示,而xml描述数据自身。因为显示和数据内容分开, xml定义的数据可以指定不同的查看方式,从而使数据能以适当的方式显示出来。本地数据可以动态地按客户端配置、用户偏爱、或者其它规则来显示。 l 分块更新 使用xml,数据可以分块更新,当小部分数据改动时,不需要重新发送整个结构化数据。只有改动过的元素才需要从服务器端重新传送到客户端,改动过的数据可以在不重新刷新整个用户界面的情况下显示出来。良好的web应用遵循这样一条基本原则:尽量避免不必要的数据来回在服务器和客户端之间传送。xml的分块更新正是遵循这条原则。 4.基于结构的存储方式 xml的所有这些优点,将使它成为未来几年的web技术的明星,但是,无论是html,dhtml,还是xml,它们都是基于文本格式的语言,都是通过标签来区分语言的成份和内容,在处理过程中首先都必须读入文本文件,然后扫描每一个文本字符,找出其中的标签,最后通过这些标签来区分页面内容。最初设计html语言时假定的使用对象除了计算机软件以外,主要还是要便于人工编写与阅读。当html发展之后,为了适应应用的发展,除了引入dhtml,还引入了各种脚本语言,人工编写和阅读html文件变得越来越困难,因此出现了许多网页制作工具,从而使网页制作人员编辑排版时不必直接面向html源文件,但是为了编写复杂的应用,比如访问数据库,在html源文件中编写脚本语言又是不可避免的,因此web应用开发效率远远比不上利用象visual basic、delphi这样的第四代语言开发工具的应用开发效率。在开发复杂的web应用时,人工直接编写和阅读存储格式语言是不必要的,同时也是不现实的。现实的情况应该是由软件工具来操纵存储格式语言,开发人员只需关心应用程序本身,而不必去了解应用程序的存储形式。最初采用标签的主要原因就是为了能使存储内容可阅读,现在既然存储内容用软件工具来管理,那么基于文本标签的存储方式就应该让位于更好的基于结构的存储方式。下面介绍一种基于结构的存储方式:kcom space 的hkb存储方式。 kcom space是一种web快速应用开发平台,它采用了一种很独到的hkb存储方式,它管理kcom组件的存储空间。 hkb存储将连续的存储介质管理成可分配、可回收的存储空间,它不限定存储介质的类型,内存空间、磁盘文件等等都可以是hkb存储介质。组件在hkb中表现为一段地址空间,组件之间的圈套组合关系由8字节长的指针来指明。通过地址指针,就可以在hkb空间中建立复杂的结构以真实地反映组件以及组件之间的相互关系。 与html一样,hkb也是一种存储格式,相比之下,hkb格式有众多的优越性。 html是web页面的基础,它为internet上的信息出版立下了汗马功劳,但是它有许多缺陷使它不能适应动态和交互的需求,而hkb文件格式正是表达动态和交互的组件页面的最佳格式。 html的局限性明显地体现在: l 它有一个复杂的标签集,但这个集合是固定的,不能用自己的特定应用标签来扩展它。 l 它是一种界面显示技术,它把数据和数据的表现形式混在了一起,这使得分开两者变得相当的困难。 l 它是平面型的文本结构,不能指定数据的层次结构来表现数据间诸如从属关系、链接关系、重要性等细节。 l 它不能把数据传送给客户端让客户端自行进行进一步的处理。事实上,html总是在服务器端产生,客户端只是一个显示机器,这样的方式使得服务器端要处理的数据量过大,网络速度降低,效率不高。 l 它对特定数据只能提供一种显示方式。如果想提供不同的显示方式,就不得不在服务器端重新产生这些数据和完整的html页,重新通过网络传送到客户端,然后才能在客户端显示出来。如果数据和显示形式是分离的话,那就可以把数据下载到客户端,之后根据需要随意产成数据的不同的显示方式。 l 它的可读性不强,无论是人读还是计算机读都是一样。html也不是很严谨,有些标签需要匹配开始符和结束符,但是也有一些只有开始符没有结束符。html解释器,当然包括人眼,不得不处理这些有点随机的格式。 相比之下,hkb格式有许多明显的优点: l 它不需要用标签来标明数据,每个组件的属性在组件的地址空间范围内的位置是固定的。带来的好处就是节省了标签所占用的空间。 l 它是结构型的,通过地址指针,在hkb存储空间内可以建立复杂的结构,比如链表结构、树形结构、网状结构等,以表示复杂的组件关系。 l hkb文件是压缩存储的,它对组件数据进行压缩,同时又保持了主要的组件结构。在组件数据压缩之前又对关键数据进行加密处理。应用于internet环境,压缩存储的hkb文件在很大程度上减少了数据传输量,为应用程序的快速运行打下基础。 l hkb文件放在服务器端,浏览运行时根据需要将hkb内相应的数据代码下载的客户端显示运行,客户端不仅仅是显示机器,它还负责处理交互性操作的运算逻辑。 l 显示内容是在客户端运算之后决定的,可以是原有的内容,也可以是处理后的内容。 l hkb文件对人眼来说是不可读的,因为它经过了压缩和加密处理,但是对hkb解析器来说却是具有良好的可读性的,因为hkb存储的是结构化的数据,可以不经解释而直接调入计算机内存。 从html,到dhtml,再到最新的xml,作为web基础的存储格式语言不断地发展以适应新的应用需求。web存储格式语言的发展很大程度上又重复了一次计算机语言半个世纪的发展过程。此外,web存储格式语言在短短十年能有这么快速的发展,这么高的普及率,还得益于一个常被忽视的因素:以web存储格式语言表示的web页面可以很容易复制。所有主要网络浏览器都有‘查看源文件’这一功能,通过这一功能,任何人都可以学习、借鉴别人的web页面制作技巧,这为html的普及起了催化作用。 该文章在 2010/5/12 23:48:46 编辑过 |
关键字查询
相关文章
正在查询... |