『壹』 Web Spider网络蜘蛛,是什么意思

[摘要]当“蜘蛛”程序出现时,现代意义上的搜索引擎才初露端倪。它实际上是一种电脑“机器人”(Computer Robot),电脑“机器人”是指某个能以人类无法达到的速度不间断地执行某项任务的软件程序。由于专门用于检索信息的“机器人”程序就象蜘蛛一样在网络间爬来爬去,反反复复,不知疲倦。所以,搜索引擎的“机器人”程序就被称为“蜘蛛”程序。

关键词:网络蜘蛛 起源 原理 优化

目录

什么是网络蜘蛛

网络蜘蛛的起源

网络蜘蛛的工作原理

正文开始

1、什么是网络蜘蛛

----什么是网络蜘蛛呢?网络蜘蛛即Web Spider,是一个很形象的名字。把互联网比喻成一个蜘蛛网,那么Spider就是在网上爬来爬去的蜘蛛。网络蜘蛛是通过网页的链接地址来寻找网页,从 网站某一个页面(通常是首页)开始,读取网页的内容,找到在网页中的其它链接地址,然后通过这些链接地址寻找下一个网页,这样一直循环下去,直到把这个网 站所有的网页都抓取完为止。如果把整个互联网当成一个网站,那么网络蜘蛛就可以用这个原理把互联网上所有的网页都抓取下来。

----这样看来,网络蜘蛛就是一个爬行程序,一个抓取网页的程序。

2、网络蜘蛛的起源

----要说网络蜘蛛的起源,我们还得从搜索引擎说起,什么是搜索引擎呢?搜索引擎的起源是什么,这和网络蜘蛛的起源密切相关。

----搜索引擎指自动从英特网搜集信息,经过一定整理以后,提供给用户进行查询的系统。英特网上的信息浩瀚万千,而且毫无秩序,所有的信息象汪洋上的一个个小岛,网页链接是这些小岛之间纵横交错的桥梁,而搜索引擎,则为你绘制一幅一目了然的信息地图,供你随时查阅。

----搜索引擎从1990年原型初显,到现在成为人们生活中必不可少的一部分,它经历了太多技术和观念的变革。
----十四年前1994年的一月份,第一个既可搜索又可浏览的分类目录EINetGalaxy上线了。在它之后才出现了雅虎,直至我们现在熟知的Google、网络。但是他们都不是第一个吃搜索引擎这个螃蟹的第一人。从搜索FTP上的文件开始,搜索引擎的原型就出现了,那时还未有万维网,当时人们先用手工后用蜘蛛程序搜索网页,但随着互联网的不断壮大,怎样能够搜集到的网页数量更多、时间更短成为了当时的难点和重点,成为人们研究的重点。

----搜索引擎原型初显

----如果要追溯的话,搜索引擎的历史比WorldWideWeb 还要长。早在Web出现之前,互联网上就已经存在许多旨在让人们共享的信息资源了。这些资源当时主要存在于各种允许匿名访问的FTP 站点。为了便于人们在分散的FTP资源中找到所需的东西,1990年,加拿大麦吉尔大学(McGillUniversity)的几个大学生开发了一个软件Archie。它是一个可搜索的FTP文件名列表,用户必须输入精确的文件名搜索,然后Archie会告诉用户哪一个FTP地址可以下载这个文件。Archie实际上是一个大型的数据库,再加上与这个大型数据库相关联的一套检索方法。Archie虽然还不是搜索引擎,但是从它的工作原理上看,它是所有搜索引擎的祖先。

----当万维网(WorldWideWeb)出现后,人们可以通过 html传播网页信息,网络上的信息开始成倍增长。人们纷纷使用各种方法将网络上的信息搜集来,进行分类、整理,以方便查找。现在人们很熟悉的网站雅虎(Yahoo)就是在这个环境下诞生的。还在Stanford大学读书的美籍华人杨致远和他的同学迷上了互联网。他们将互联网上有趣的网页搜集过来,与同学一起分享。后来,1994年4月,他们俩共同办了雅虎。随着访问量和收录链接数的增长,雅虎目录开始支持简单的数据库搜索。但是因为雅虎的数据是手工输入的,所以不能真正被归为搜索引擎,事实上只是一个可搜索的目录。

----当“蜘蛛”程序出现时,现代意义上的搜索引擎才初露端倪。它实际上是一种电脑“机器人”(Computer Robot),电脑“机器人”是指某个能以人类无法达到的速度不间断地执行某项任务的软件程序。由于专门用于检索信息的“机器人”程序就象蜘蛛一样在网络间爬来爬去,反反复复,不知疲倦。所以,搜索引擎的“机器人”程序就被称为“蜘蛛”程序。

----这种程序实际是利用html文档之间的链接关系,在Web上一个网页一个网页的爬取(crawl),将这些网页抓到系统来进行分析,并放入数据库中。第一个开发出“蜘蛛”程序的是Matthew Gray,他于1993年开发了World Wide Web Wanderer,它最初建立时是为了统计互联网上的服务器数量,到后来发展到能够捕获网址。现代搜索引擎的思路就来源于Wanderer,后来很多人在此基础上对蜘蛛程序进行了改进。

----1994年7月20日发布的Lycos网站第一个将 “蜘蛛”程序接入到其索引程序中。引入“蜘蛛”后给其带来的最大优势就在于其远胜于其它搜索引擎的数据量。自此之后几乎所有占据主导地位的搜索引擎中,都靠“蜘蛛”来搜集网页信息。Infoseek是另一个重要的搜索引擎,于1994年年底才与公众见面。起初,Infoseek只是一个不起眼的搜索引擎,它沿袭Yahoo!和Lycos的概念,并没有什么独特的革新。但是它友善的用户界面、大量附加服务使它在用户中赢得了口碑。1995年12月,它与Netscape的战略性协议,使它成为一个强势搜索引擎:当用户点击Netscape浏览器上的搜索按钮时,弹出Infoseek的搜索服务,而此前由Yahoo!提供该服务。 1995年12月15日,Alta Vista正式上线。它是第一个支持高级搜索语法的搜索引擎,成功地整合了此前人类所有的信息检索技术,解决了包括字根处理、关键词检索、布尔逻辑,以及通过向量空间模型的查询排名等关键问题。正式公开之前,Alta Vista就已经拥有20万访问用户,在短短三个星期之内,到访人数由每天30万次增加到200万次。它的成功在于满足了用户三个方面的需求:网上索引范围超过了此前任何一家搜索引擎;短短几秒钟内便可从庞大的数据库中为用户返回搜索结果;Alta Vista小组从一开始就采用了一种模块设计技术,能够跟踪网站的流行趋势,同时不断扩大处理能力。在当时许多搜索引擎之中,Alta Vista脱颖而出,成为网络搜索的代名词。Google就是站在这样的巨人的肩膀上颠覆并创造着。“上网即搜索” 改变了人们上网方式的,就是现在鼎鼎大名的Google。Google并不是搜索引擎的发明者,甚至有点落后,但是它却让人们爱上了搜索。

----1998年9月,在佩奇和布林创建Google之时,业界对互联网搜索功能的理解是:某个关键词在一个文档中出现的频率越高,该文档在搜索结果中的排列位置就要越显著。这就引出了这样一个问题,如果一个页面充斥着某一个关键字的话,那么它将排在很显著的位置,但这样一个页面对于用户来说,却没有任何意义。佩奇和布林发明了“网页级别”(PageRank)技术,来排列搜索结果。即考察该页面在网上被链接的频率和重要性来排列,互联网上指向这一页面的重要网站越多,该页面的位次也就越高。当从网页A链接到网页B时,Google 就认为“网页A投了网页B一票”。Google根据网页的得票数评定其重要性。然而,除了考虑网页得票数的纯数量之外,Google还要分析投票的网页,“重要”的网页所投出的票就会有更高的权重,并且有助于提高其他网页的“重要性”。 Google以其复杂而全自动的搜索方法排除了任何人为因素对搜索结果的影响。没人能花钱买到更高的网页级别,从而保证了网页排名的客观公正。除此之外,动态摘要、网页快照、多文档格式支持、地图股票词典寻人等集成搜索也都深得网民的喜爱。其他众多搜索引擎也都紧跟Google,推出这些服务。Fast(Alltheweb)公司发布的搜索引擎AllTheWeb,总部位于挪威,其在海外的风头直逼Google。Alltheweb的网页搜索支持Flash和pdf搜索,支持多语言搜索,还提供新闻搜索、图像搜索、视频、MP3、和FTP搜索,拥有极其强大的高级搜索功能。而中国的网络更是凭借“更懂中文”而吸引着中国的网络受众,它拥有超过10亿的中文网页数据库,并且,这些网页的数量每天正以千万级的速度在增长。

----搜索引擎越来越成为人们生活中重要的一部分,找资料、查地图、听音乐,只有想不到的,没有搜索不到的。
----搜索引擎的三个基本原理

----1.利用蜘蛛系统程序,自动访问互联网,并沿着任何网页中的所有URL爬到其它网页,重复这过程,并把爬过的所有网页收集回来。

----2.由分析索引系统程序对收集回来的网页进行分析,提取相关网页信息,根据一定的相关度算法进行大量复杂计算,得到每一个网页针对页面内容中及超链中每一个关键词的相关度(或重要性),然后用这些相关信息建立网页索引数据库。

----3.当用户输入关键词搜索后,由搜索系统程序从网页索引数据库中找到符合该关键词的所有相关网页。相关度数值排序,相关度越高,排名越靠前。最后,由页面生成系统将搜索结果的链接地址和页面内容摘要等内容组织起来返回给用户。

----说到这里,你可能对搜索引擎和网络蜘蛛有了一个初步的了解了吧!
3、网络蜘蛛的工作原理

----对于搜索引擎来说,要抓取互联网上所有的网页几乎是不可能的,从目前公布的数据来看,容量最大的搜索引擎也不过是抓取了整个网页数量的百分之四十左右。这 其中的原因一方面是抓取技术的瓶颈,无法遍历所有的网页,有许多网页无法从其它网页的链接中找到;另一个原因是存储技术和处理技术的问题,如果按照每个页 面的平均大小为20K计算(包含图片),100亿网页的容量是100×2000G字节,即使能够存储,下载也存在问题(按照一台机器每秒下载20K计算, 需要340台机器不停的下载一年时间,才能把所有网页下载完毕)。同时,由于数据量太大,在提供搜索时也会有效率方面的影响。因此,许多搜索引擎的网络蜘 蛛只是抓取那些重要的网页,而在抓取的时候评价重要性主要的依据是某个网页的链接深度。

----在抓取网页的时候,网络蜘蛛一般有两种策略:广度优先和深度优先(如下图所示)。

----广度优先是指网络蜘蛛会先抓取起始网页中链接的所有网页,然后再选择其中 的一个链接网页,继续抓取在此网页中链接的所有网页。这是最常用的方式,因为这个方法可以让网络蜘蛛并行处理,提高其抓取速度。深度优先是指网络蜘蛛会从 起始页开始,一个链接一个链接跟踪下去,处理完这条线路之后再转入下一个起始页,继续跟踪链接。这个方法有个优点是网络蜘蛛在设计的时候比较容易。两种策 略的区别,下图的说明会更加明确。

----由于不可能抓取所有的网页,有些网络蜘蛛对一些不太重要的网站,设置了访问的层数。例如,在上图中,A为起始网页,属于0层,B、C、D、E、F属于第1 层,G、H属于第2层,I属于第3层。如果网络蜘蛛设置的访问层数为2的话,网页I是不会被访问到的。这也让有些网站上一部分网页能够在搜索引擎上搜索 到,另外一部分不能被搜索到。对于网站设计者来说,扁平化的网站结构设计有助于搜索引擎抓取其更多的网页。
----网络蜘蛛在访问网站网页的时候,经常会遇到加密数据和网页权限的问题,有些网页是需要会员权限才能访问。当然,网站的所有者可以通过协议让网络蜘蛛不去抓 取(下小节会介绍),但对于一些出售报告的网站,他们希望搜索引擎能搜索到他们的报告,但又不能完全免费的让搜索者查看,这样就需要给网络蜘蛛提供相应的 用户名和密码。网络蜘蛛可以通过所给的权限对这些网页进行网页抓取,从而提供搜索。而当搜索者点击查看该网页的时候,同样需要搜索者提供相应的权限验证。

----每个网络蜘蛛都有自己的名字,在抓取网页的时候,都会向网站标明自己的身份。网络蜘蛛在抓取网页的时候会发送一个请求,这个请求中就有一个字段为User -agent,用于标识此网络蜘蛛的身份。例如Google网络蜘蛛的标识为GoogleBot,Bai网络蜘蛛的标识为BaiDuSpider, Yahoo网络蜘蛛的标识为Inktomi Slurp。如果在网站上有访问日志记录,网站管理员就能知道,哪些搜索引擎的网络蜘蛛过来过,什么时候过来的,以及读了多少数据等等。如果网站管理员发 现某个蜘蛛有问题,就通过其标识来和其所有者联系。

----网络蜘蛛进入一个网站,一般会访问一个特殊的文本文件Robots.txt,这个文件一般放在网站服务器的根目录下,如:[url][/url]。 网站管理员可以通过robots.txt来定义哪些目录网络蜘蛛不能访问,或者哪些目录对于某些特定的网络蜘蛛不能访问。例如有些网站的可执行文件目录和 临时文件目录不希望被搜索引擎搜索到,那么网站管理员就可以把这些目录定义为拒绝访问目录。Robots.txt语法很简单,例如如果对目录没有任何限 制,可以用以下两行来描述: User-agent: *
Disallow:

----当然,Robots.txt只是一个协议,如果网络蜘蛛的设计者不遵循这个协议,网站管理员也无法阻止网络蜘蛛对于某些页面的访问,但一般的网络蜘蛛都会遵循这些协议,而且网站管理员还可以通过其它方式来拒绝网络蜘蛛对某些网页的抓取。

---- 网络蜘蛛在下载网页的时候,会去识别网页的HTML代码,在其代码的部分,会有META标识。通过这些标识,可以告诉网络蜘蛛本网页是否需要被抓取,还可 以告诉网络蜘蛛本网页中的链接是否需要被继续跟踪。例如:表示本网页不需要被抓取,但是网页内的链接需要被跟踪。

---- 搜索引擎建立网页索引,处理的对象是文本文件。对于网络蜘蛛来说,抓取下来网页包括各种格式,包括html、图片、doc、pdf、多媒体、动态网页及其 它格式等。这些文件抓取下来后,需要把这些文件中的文本信息提取出来。准确提取这些文档的信息,一方面对搜索引擎的搜索准确性有重要作用,另一方面对于网 络蜘蛛正确跟踪其它链接有一定影响。对于doc、pdf等文档,这种由专业厂商提供的软件生成的文档,厂商都会提供相应的文本提取接口。网络蜘蛛只需要调用这些插件的接口,就可以轻松的提取文档中的文本信息和文件其它相关的信息。但HTML等文档不一样,HTML有一套自己的语法,通过不同的命令标识符来表示不同的字体、颜色、位置等版式,如:、、等, 提取文本信息时需要把这些标识符都过滤掉。过滤标识符并非难事,因为这些标识符都有一定的规则,只要按照不同的标识符取得相应的信息即可。但在识别这些信 息的时候,需要同步记录许多版式信息,例如文字的字体大小、是否是标题、是否是加粗显示、是否是页面的关键词等,这些信息有助于计算单词在网页中的重要程 度。同时,对于HTML网页来说,除了标题和正文以外,会有许多广告链接以及公共的频道链接,这些链接和文本正文一点关系也没有,在提取网页内容的时候, 也需要过滤这些无用的链接。例如某个网站有“产品介绍”频道,因为导航条在网站内每个网页都有,若不过滤导航条链接,在搜索“产品介绍”的时候,则网站内 每个网页都会搜索到,无疑会带来大量垃圾信息。过滤这些无效链接需要统计大量的网页结构规律,抽取一些共性,统一过滤;对于一些重要而结果特殊的网站,还 需要个别处理。这就需要网络蜘蛛的设计有一定的扩展性。

---- 对于多媒体、图片等文件,一般是通过链接的锚文本(即,链接文本)和相关的文件注释来判断这些文件的内容。例如有一个链接文字为“张曼玉照片”,其链接指 向一张bmp格式的图片,那么网络蜘蛛就知道这张图片的内容是“张曼玉的照片”。这样,在搜索“张曼玉”和“照片”的时候都能让搜索引擎找到这张图片。另 外,许多多媒体文件中有文件属性,考虑这些属性也可以更好的了解文件的内容。

---- 动态网页一直是网络蜘蛛面临的难题。所谓动态网页,是相对于静态网页而言,是由程序自动生成的页面,这样的好处是可以快速统一更改网页风格,也可以减少网 页所占服务器的空间,但同样给网络蜘蛛的抓取带来一些麻烦。由于开发语言不断的增多,动态网页的类型也越来越多,如:asp、jsp、php等。这些类型 的网页对于网络蜘蛛来说,可能还稍微容易一些。网络蜘蛛比较难于处理的是一些脚本语言(如VBScript和JavaScript)生成的网页,如果要完 善的处理好这些网页,网络蜘蛛需要有自己的脚本解释程序。对于许多数据是放在数据库的网站,需要通过本网站的数据库搜索才能获得信息,这些给网络蜘蛛的抓 取带来很大的困难。对于这类网站,如果网站设计者希望这些数据能被搜索引擎搜索,则需要提供一种可以遍历整个数据库内容的方法。

对于网页内容的提取,一直是网络蜘蛛中重要的技术。整个系统一般采用插件的形式,通过一个插件管理服务程序,遇到不同格式的网页采用不同的插件处理。这种 方式的好处在于扩充性好,以后每发现一种新的类型,就可以把其处理方式做成一个插件补充到插件管理服务程序之中。

---- 由于网站的内容经常在变化,因此网络蜘蛛也需不断的更新其抓取网页的内容,这就需要网络蜘蛛按照一定的周期去扫描网站,查看哪些页面是需要更新的页面,哪些页面是新增页面,哪些页面是已经过期的死链接。

---- 搜索引擎的更新周期对搜索引擎搜索的查全率有很大影响。如果更新周期太长,则总会有一部分新生成的网页搜索不到;周期过短,技术实现会有一定难度,而且会 对带宽、服务器的资源都有浪费。搜索引擎的网络蜘蛛并不是所有的网站都采用同一个周期进行更新,对于一些重要的更新量大的网站,更新的周期短,如有些新闻 网站,几个小时就更新一次;相反对于一些不重要的网站,更新的周期就长,可能一两个月才更新一次。

---- 一般来说,网络蜘蛛在更新网站内容的时候,不用把网站网页重新抓取一遍,对于大部分的网页,只需要判断网页的属性(主要是日期),把得到的属性和上次抓取的属性相比较,如果一样则不用更新。

---- 现在大家对网络蜘蛛的工作原理有了初步的了解了吧,了解后就要在以后的网站制作中考虑蜘蛛的爬行规律,比如制作网站地图就很重要,好了,如果你有更好的见解,请到这里发表,火鸟非常愿意与你交流,共同研究网站制作技巧,尽量将自己的网站制作的符合标准,符合用户的习惯!

『贰』 DOA的DOA主要内容

DOA 主要包括以下内容:面向数据的体系结构的机制、面向数据的体系结构的组成、数据注册中心的机制、 数据权限中心的机制、数据异常控制中心的机制、数据应用单元的机制等。
(1)面向数据的体系结构的机制
包括: 面向数据和以数据为核心的指导思想;大数据时代对体系结构的需求;数据的定义和分类;数据的载体及与云计算的关系;数据生态系统的含义及 DOA作用; DOA 与数据和应用的关系; DOA 对数据的管理和服务模式; DOA 与应用的业务逻辑和数据逻辑关系; DOA 下数据安全的基本原理;等。面向数据和以数据为核心的指导思想。 数据是有生命的,具有生命周期,生命过程需要全记录。数据是有属性的,具有安全属性、身份属性、时间和空间属性。数据要天生加密,穿戴盔甲,加密呈现,具有不同的加密级别和深度。数据是独立于系统的,数据是应用的基础,不依赖于特定的硬件环境和软件环境。同一数据可以支撑不同的应用。数据的访问和应用是基于授权的,特定的访问者,特定的场合(环境),特定的时间(时段),数据的使用和用户适合于网络安全的授权、认证和计帐( AAA, Authorization, Authentication, Accounting)机制。数据是加密存储与传输的(数据态),授权后解密使用(应用态)。数据系统是生态的,变化和发展的,是可持续发展的,自生长、自管理、自适应的。虚拟世界由数据组成,是真实世界的映射。建立数据生态系统,就要面向数据和一切以数据为核心。数据生态系统包括生态的各种应用,是“肥沃的数据土壤上生长着茂盛的应用森林”。数据生态系统需要构建逻辑的数据资源池,支持数据大平台与碎片化和不断增长的应用,支持数据共享和系统可扩展。基于数据:一切可测,一切可联,一切可操作,一切可实现。
大数据时代对体系结构的需求。 大数据时代,我们从信息技术(IT,Information Technology) 时代来到了数据技术( DT, Data Technology) 时代。从关注技术(T)到关注信息(I),再到关注数据(D)。信息是因人而异的,是功利性的、利己的,强调的是我,信息技术是为自己的;数据具有普适性,可以产生信息,是公益性的、利他的,强调的是我们,数据技术是为大家的。 马云提出,人类已经从 IT 时代走向 DT 时代, IT 时代是以自我控制、自我管理为主,而DT时代,它是以服务大众、激发生产力为主的技术。 数据技术包括信息技术,数据技术范围更广,内涵更丰富;信息技术更具体,针对性更强。数据系统包括信息系统,信息系统是数据系统的子集。云计算为数据技术时代的到来提供了可能:云存储具有几乎无限的海量数据存储能力。数据技术时代,需要新的世界观,即数据世界观,数据安全观。数据技术时代,也就是大数据时代,需要相适应的软件体系结构,支持数据安全,支持一切业务数据化,管理海量、异构、复杂、变化和爆发式增长的大数据,并提供挖掘有价值信息的支持。现有系统架构大都是小数据时代遗留和发展的技术架构,现有安全体系也是建立在小数据时代技术架构之上的。以信息技术(小数据时代)发展而来的技术和信息安全技术,不能适应大数据时代的要求。 Hadoop、MapRece 等技术,只解决了大数据的静态和量大的一部分问题。需要重新审视数据,站在数据的角度审视技术、架构、安全体系。
数据的定义和分类。 网络和维基网络分别给出的“数据”定义是: “数据就是数值,也就是我们通过观察、实验或计算得出的结果。数据有很多种,最简单的就是数字。数据也可以是文字、图像、声音等。数据可以用于科学研究、设计、查证等”, “数据,或称资料,指描述事物的符号记录,是可定义为意义的实体,它涉及到事物的存在形式。它是关于事件之一组离散且客观的事实描述,是构成信息和知识的原始材料。数据可分为模拟数据和数字数据两大类。数据指计算机加工的‘原料’,如图形、声音、文字、数、字符和符号等”。我们研究的大数据时代的数据是广义数据: 就是真实世界映射成虚拟世界的内容。 除了我们理解的计算机可以直接处理的数据外,还可以是能被注册的各类事物:如设备,服务,APP,人,物等。这就需要研究大数据时代下的数据定义或广义数据定义。可以从不同角度来分类数据:结构化/非结构化数据,关系型数据库/NoSQL,动态数据/静态数据,变化的数据/历史数据,简单数据/复杂数据,自有数据/共享数据/公开数据,不断变化和不断积累增长的大数据,等。
数据的载体及与云计算的关系。 云计算可以从弹性计算和存储服务两个方面来划分类型,典型如亚马逊的弹性计算云( EC2, Elastic Compute Cloud)和简单存储服务(S3, Simple Storage Service)。在架构上习惯上分为基础设施作为服务(IaaS, Infrastructure as a Service)、平台作为服务(PaaS, Platform as a Service)和软件作为服务(SaaS,Software as a Service)三层,本质上云计算就是云服务,但还应有数据作为服务(DaaS, Data as a Service)这重要的一层。从数据角度,云计算更多是数据的存储服务,是 IaaS 和DaaS,通过分布式和虚拟化技术,将基础设施与数据融为一体( I+D, Infrastructure plus Data),为终端用户提供弹性的、可计量的、个性化的数据和计算服务,可以简称“云”。一切皆在云中,包括所有的基础设施,如网络、服务器、存储设备等,更重要的是包括所有的数据,网络世界和物理世界的数据等。以数据为内容定义云,可以分为存储云、网络云和物理云。存储云数据举例:基础数据,影像数据,历史数据,行业数据等;网络云数据举例: QQ,微信,网络,博客,短信,淘宝,电子邮件, APP 软件等;物理云数据举例:雨量,温度,视频,PM2.5,交通流量,设备,人员等。数据生态系统的含义及 DOA 作用。 数据生态系统,是“肥沃的数据土壤上生长着茂盛的应用森林”, DOA 是数据与应用之间可持续发展的关系描述。一个数据生态系统能够成立,关键是要建立一种有效的作用机制,这就是面向数据的体系结构(DOA)。 DOA, “是一个信息系统的体系结构,针对任何数据类型,基于云服务的概念,与具体的硬件平台和软件系统无关,通过以数据为核心和面向数据的理念来建立构建复杂信息系统的机制,以数据标识作为数据的识别和定位标记,建立数据的分类体系和访问权限,通过数据注册和登记中心实现数据的管理和交换,通过建立各种数据功能单元,可以由简到繁、由易到难地构建复杂应用系统,实现多系统间的数据共享、访问和协同”。DOA 与数据和应用的关系。 人类通过包含计算机网络在内的计算机硬件和软件系统建立了虚拟世界,通过虚拟世界去认识、建设、改造和适应真实世界,于是产生了大量的数据和各种应用。 DOA 就是建立在云计算支撑的数据和各种应用之间的、分别可以对数据和应用进行管理和服务的一种机制、一个平台,形成一个以这种机制和平台的相对不变来应对数据和应用万变的数据和应用的生态系统。这种关系和机制,也可以实现从实时数据到实时应用的支持。数据、DOA 平台和应用所构成的三层架构如右图所示。
DOA 对数据的管理和服务模式。 DOA 面对的数据是广义数据。要对广义数据进行管理和服务,首先要解决对各种类型数据的统一标识和管理问题。其次,要考虑数据的价值保护,要对数据进行属性管理,对数据进行权限和授权管理。再次,在分布式应用和有数据冗余的情况下,要考虑数据的一致性问题。据此提出数据注册中心( DRC)、数据权限中心( DAC)和数据异常控制中心( DEC),互相配合实现对各种类型数据的统一管理,并为应用提供数据服务。
DOA 与应用的业务逻辑和数据逻辑关系。 传统的应用信息系统构建逻辑大都是面向业务的逻辑,即根据需求,按照业务流程进行需求分析,就事论事地对系统进行设计和开发。按照业务逻辑,要求信息处理流程、数据结构等都按照业务过程的要求进行设计,好处是信息流程与业务流程比较一致,但缺点是,在今后一旦业务流程发生变化,信息处理流程、数据结构等都要做相应的变化,给系统开发和维护带来不可预测的困难。 DOA 要求面向数据,即要将应用的业务逻辑转换为数据逻辑,这样,就要求将业务流程按照对数据资源池访问的周期梳理成一个个小的面向数据的流程,最后再将这些面向数据的流程整合成面向业务的流程,完成应用信息系统的开发。这样做的好处是一旦构建了数据资源池,构建面向数据的业务流程会比较便捷,而且业务流程发生变化,不会影响整个数据逻辑和数据流程,只需增加变化的部分或调整一些数据流程去适应新的变化即可。缺点是,要将业务逻辑转换为数据逻辑,需要做一个思想转变。
DOA 下数据安全的基本原理。 传统的信息安全,首先是建立一个封闭和相对安全的环境,通过各种方式来保证这个封闭环境是安全的或可信的,但在这里面的数据却大多是“裸露”的。一旦有不速之客通过漏洞进入到这个环境, “裸露”的数据就面临着极大的危险。在互联网和云计算的开放环境下,按照这种封闭环境下的信息安全策略进行数据保护,将面临着极大的挑战。
DOA 是面向数据和以数据为核心的。数据是有属性的,具有安全属性、身份属性、时间属性和空间属性。要明确数据的主人、朋友和敌人。从数据角度考虑安全问题,要保证数据的完整性、机密性和可用性。数据要“天生加密,授权使用”。数据具有自保护功能,要穿戴盔甲,以加密方式呈现,具有不同的加密级别和深度。数据的使用要经过授权。数据具有两种状态:存储和传输时的“数据态”以及授权使用中的“应用态”。 “数据态”是加密状态, “应用态”是解密状态。一旦完成“应用”或离开了应用环境,数据应立即“变”为加密的“数据态”。 DOA 提供一种加解密机制和授权使用机制,使得数据在存储和传输时是不可访问和使用的,而经过授权的用户在访问数据或通过应用使用数据时,是透明的,即感觉不到数据的加密和解密过程。因此, DOA 下的数据安全策略是, “数据态”的数据,既适合于封闭环境,也适合于开放环境,而“应用态”的数据,仅适合于“封闭”环境。这样,数据安全问题就化解为数据加密和授权使用机制、数据自我保护和自动加解密机制、应用环境安全等几个关键问题了。
(2)面向数据的体系结构的组成
包括: DOA 的组成及完备性;数据注册中心( DRC)基本功能;数据权限中心( DAC)基本功能;数据异常控制中心( DEC)基本功能;数据应用单元( DAUs)的基本功能;面向数据的软件工程原理初步探索;等。
DOA 的组成及完备性。 DOA 是一种构建在云计算环境之上的软件体系结构,不涉及直接对具体硬件的控制和访问。作为协调数据和应用之间的关系以及构建数据生态系统的一种机制, DOA 应具有对广义数据进行全面管理和服务的功能,以及对各类应用进行全面管理和服务的功能。初步考虑的 DOA 组成包括:对广义和各类数据进行登记注册管理的数据注册中心( DRC),对数据进行授权、认证和计帐(授权及访问过程记录)管理的数据权限中心( DAC),对数据的一致性进行管理的数据异常控制中心( DEC),以及对各类应用进行管理、服务提供支持的数据应用单元( DAUs)。这些中心和应用单元,构成了 DOA 的基本框架,它们之间既相互独立,又相互关联,形成一个有机的整体。相互独立,体现在它们的任务和功能互不相同;相互关联,体现在它们之间的互为依赖。例如,DAC、 DEC 和 DAUs,都要依赖于 DRC。
数据注册中心(DRC)基本功能。 数据注册中心对各种类型的数据和广义数据进行登记注册,形成逻辑的数据资源池,方便应用对数据的访问。其功能涉及但不限于:数据注册信息定义,数据属性信息,数据分类,元数据标准,元数据分类,不同类型数据的注册方法,数据索引,元数据索引,数据检索,广义数据模式识别,分布式部署,数据注册内容随需自适应机制,数据生成自动注册机制,历史数据注册与管理,等。
数据权限中心( DAC)基本功能。 数据权限中心对数据进行权限管理,功能涉及但不限于:数据安全属性定义,数据合法性鉴别,数据访问权限定义,用户权限认证,应用授权,用户授权,数据授权与 PKI,计帐算法及机制,数据透明加解密机制,高效数据加解密算法等。
数据异常控制中心(DEC)基本功能。 数据异常控制中心对分布式环境下有数据冗余时的数据一致性进行处理,功能涉及但不限于:数据维护,自适应管理,异常探测与处理,巡检,异常与冲突发现,同步处理,冗余处理,负载均衡等。数据应用单元( DAUs)的基本功能。 数据应用单元是在数据资源池之上的一系列应用单元模块,针对应用管理和服务,通过类似于基于构件的软件开发模式( COA)的搭积木方式和应用程序接口( API, Application Programming Interface)调用,以“数据驱动应用”,快速满足用户的各种应用功能需求。其功能应根据各种具体应用的需求,涉及但不限于:根据不同数据类型提供不同功能的数据功能单元( DFU, Data Function Unit),以推送方式提供服务的数据服务单元( DSU,Data Service Unit),数据加解密单元( DEU, Data Encryption Unit),数据授权调用单元( DIU, Data Invocation Unit),数据应用组合单元( DCU, Data CombinationUnit),数据可视化单元( DVU, Data Visualization Unit),数据处理单元( DPU,Data Processing Unit),等。
面向数据的软件工程原理初步探索。 面向数据的体系结构 DOA 为软件开发提供了新的方法。区别于传统的面向业务的软件工程,新的面向数据的软件工程具有新的活力。拟开展以下研究:具有生命周期的应用软件与数据生态系统的关系研究;业务逻辑转化为数据逻辑的开发过程研究;逻辑的数据资源池建设和运行维护机制研究;基于成长型数据生态系统的应用软件开发模式研究;基于DAUs 的面向数据的应用软件快速构建机制研究;已有系统的数据整合方法研究;等。
(3)数据注册中心(DRC)的机制
包括:数据注册内容定义及元数据标准;数据属性信息定义;数据分类及分类标准;数据注册方法;元数据索引和检索方法;广义数据模式识别;数据注册中心分布式部署模式;数据注册内容随需自适应机制;数据生成自动注册机制;历史数据注册与管理;等。
数据注册内容定义及元数据标准。 广义数据包括云中存储的各种类型的数据,也包括互联网中传递的实时变化的数据,还包括物理世界存在的实体对象和状态所表征的数据,如果用云的概念来表达数据,就是存储云(数据)、网络云(数据)与物理云(数据)。对这些数据进行注册,就要针对这些数据的特征定义注册内容,最重要的是要指出这些数据的名称和存在的位置,作为统一管理数据的唯一标识。此外,还需要有数据的描述、数据的属性、数据的权限等内容。这些内容体现为元数据,需要制定统一的数据注册元数据标准。数据属性信息定义。 数据具有属性,不同的数据具有不同的属性。数据都具有价值, DRC 需要管理数据的共性属性。例如,数据权人(数据主人),数据的生命周期,数据的权限,数据的状态,数据的性质,数据的合法性,数据的质量等。
数据分类及分类标准。 数据可以分为不同的大类和子类,对于分类的标准、分类的方法、分类的类别和分类的应用等,需要开展研究。为了提高数据检索效率,还需对元数据进行进一步的分类研究。数据注册方法。 根据不同的数据类型,不同的数据性质,要采用相适应的数据注册方法,可以分为手动注册、半自动注册和全自动注册方法。在数据注册的同时,建立数据索引。应用产生数据,应用产生的数据应该自动进行注册。
元数据索引和检索方法。 数据注册中心是为应用提供数据访问服务的,访问效率取决于索引和检索方法。由于数据注册中心的体量可以很大,根据不同系统,其规模可以达到TB级甚至PB级。因此,建立高效的元数据索引和检索机制和研究高效的索引和检索方法,是非常必要的。广义数据模式识别。 数据注册中心注册的内容可以是广义数据,例如物理世界的实体。要快速检索这些广义数据,需要采取新的识别技术。例如可以采用基于模糊理论的模式识别技术来建立索引等方法。数据注册中心分布式部署模式。 数据注册中心的数据虽然是数据的注册信息,其体量和实体数据相比约占千分之一,当实体数据达到 PB 量级,注册中心的数据将达到 TB 级,因此,数据注册中心也要部署到云的分布式环境中。为高效地运行数据注册中心,需要对其进行分布式部署模式研究。
(4)数据权限中心(DAC)的机制
DOA 意在从架构角度对未来数据系统进行全方位设计,包括数据安全在内。DAC 通过数据权限的管理对数据进行保护,并提供数据授权使用的机制,也可以保护数据拥有者的利益。因此,DAC 的机制涉及但不限于:开放环境下数据安全基本理论;数据的状态机制;数据固有安全属性;数据访问控制权限及管理机制;数据合法性鉴定;数据权限中心的作用和运作机制;用户认证机制及证书授权( CA, Certificate Authority)技术;数据授权机制及与公共密钥基础设施( PKI,Public Key Infrastructure)关系;数据使用记录及其溯源机制;计帐机制;多级授权及认证机制;单个数据与批量数据或大数据量授权使用机制;密钥体系;数据透明加解密策略和算法;加解密效率与安全性及授权过程的妥协关系;传统数据传输加密技术适应性;应用环境安全保障;数据非法使用识别及数字水印技术;数据权人权利和知识产权相关问题;等。
开放环境下数据安全基本理论。 开放环境下,要做到数据本身的安全,并能够安全使用,首先就是数据要进行加密,数据应该具有“天生加密,授权使用”的特性。不妨假设数据在使用中是不加密状态,那么数据不在使用中就应该保持加密状态。因此,设定数据具有两种状态:存储和传输时处于加密状态的“数据态”以及授权使用中处于解密状态的“应用态”。 DOA 作为一种机制,就要保证数据能够在这两种状态中与授权和加解密技术关联起来。目前有关数据安全的理论和方法体系、网络的授权、认证和计帐的 AAA 技术、CA技术、PKI技术、密钥体系、加解密技术等,以及网络安全技术、系统安全技术、应用环境安全技术等,都是适用的,但要从面向数据和以数据为核心的角度进行重新梳理,从数据安全的理念、理论、方法和受保护数据的应用机制等方面,进行适应性研究和更进一步的探讨。
数据的状态机制。 可以以面向对象的观点来看待数据,数据除了其自身应具有的价值外,还具有内部属性和外部状态。从外部看,数据应具有“数据态”和“应用态”两种状态。要研究数据状态的定义,数据状态的设置和获取,数据状态的转化,数据状态的作用,数据状态对环境的要求,数据状态与数据加解密关系及作用机制,等。
数据固有安全属性。 数据的内部属性包括关键的数据安全属性。要研究数据安全属性的定义,数据安全属性的内容,数据具有的访问权限,数据安全性说明,数据状态,数据的主人(数据权人)、朋友(被授权人)、陌生人(未授权人)和敌人(不受权人),数据读写权利,数据追加历史记录,数据的数字水印与防伪鉴别,数据授权记录,等。
数据访问控制权限及管理机制。 数据访问控制依赖于数据安全属性,又与数据的加解密关系密切。过去的数据访问控制权限是由软件所控制,由访问软件控制数据的访问,而数据本身则有可能加密也有可能不加密。当另外的软件访问数据时,有可能绕过权限控制,例如越权访问数据,造成数据的非法访问和重要信息泄露。本项研究立足于数据“天生加密,授权使用”的观念,数据的访问依据数据的安全属性和访问者的身份,通过应用授权、用户授权,再确定数据授权,依据授权的方式和应用的环境,提供解密密钥或解密算法,实现数据的安全使用。涉及数据的使用,还有数据的读写权限、修改权限、追加权限、数据的获取及数据权人的确定,以及按照数据权人的身份信息进行数据自动加密和自动注册等。依照不同的应用类型、不同的应用场景、不同的用户表现方式,这种数据访问控制方法及权限管理机制,需要深入开展研究。
数据权限中心的作用和运作机制。 数据权限中心负责对数据进行安全保护,并对数据的使用进行授权管理和应用安全管理。因此,数据权限中心要管理数据安全属性,鉴别数据的合法性,设定数据的访问权限,认证用户和应用,对数据进行用户和应用授权,对授权过程进行记录和计帐,对数据进行加解密,等。数据权限中心要与数据注册中心配合,有关数据的属性和权限等数据,需要在数据注册中心进行注册和登记,数据权限中心根据注册的信息,对数据进行监控、授权、回收权利、认证、计帐、加解密和新数据安全属性注册等操作。从内部看,数据的使用过程就是数据的授权和不断扩大授权范围的过程,计帐就是对这些授权的记录,可以为后续的商业应用奠定基础。未来任何一个 DOA 平台,在提供数据管理和服务的同时,也具备了数据商业运作的基本能力。
用户认证机制及证书授权(CA)技术。 数据应用授权是建立在用户认证的基础上的。用户认证与用户的属性相关,认证过程是用户注册和管理维护过程。登记用户信息是数据注册中心(DRC)重要的数据注册内容,也是数据权限中心(DAC)需要用到的重要数据。用户认证技术,可以采用传统的 CA 技术,需要有第三方权威中心或局部中心向用户颁发用户证书(私钥)。同时,数据和用户之间通过数据安全属性建立关联关系。
数据授权机制及与公钥基础设施(PKI)关系。 向用户授权使用数据,就需要将经数据权人(数据的主人)公钥加密的数据转变成用被授权用户(数据的朋友)公钥加密的数据,再提供给被授权用户下载使用。当遇到体量较大的数据,为提高加解密效率,用公钥加密的应该是对数据进行对称加密的密钥,而不是数据本身。数据权限中心(DAC)要提供这种基于 PKI 的加解密授权机制和方法。
(5)数据异常控制中心(DEC)的机制
DEC对数据资源池(数据注册中心注册的数据)进行一致性管理,对数据资源进行维护,保证数据的唯一性和一致性。因此,DEC的机制涉及但不限于:数据一致性维护机制,数据动态变化自适应管理机制,数据一致性异常探测与处理机制,数据巡检算法,数据异常与冲突发现算法,数据同步处理算法,数据冗余处理算法,热数据自动复制技术,冷数据自动删除技术,系统负载均衡,等。
(6)数据应用单元(DAUs)的机制
DAUs在数据注册中心DRC以及数据权限中心DAC的基础上,建立一系列应用单元模块,通过类似于基于构件的软件开发模式(COA)的搭积木方式和应用程序接口(API)调用,以“数据驱动应用”,快速满足用户的各种应用功能需求,对各类应用进行管理和服务。因此,DAUs的机制涉及但不限于:数据应用单元的结构规范,程序调用参数规范,数据访问规范,应用注册管理规范,应用扩展机制,授权数据访问机制,非授权数据访问识别,数据功能单元,数据服务单元,数据加解密单元,数据授权调用单元,数据应用组合单元,数据可视化单元,数据处理单元,等。