软件工程硕士论文基于Web2.0的知识社区的设计和实现.doc
密级: 工程硕士专业学位论文(设计)题目: 基于Web 2.0的知识社区的设计和实现 作者: 完成时间:2010年10月9日 培养单位: 四 川 大 学 指导教师: 工程领域: 软 件 工 程 授予学位日期: 2010年 月 日基于Web 2.0的知识社区的设计和实现软件工程 领域研究生 指导老师 当今时代已步入信息化时代。网络技术与计算机技术的飞速发展,使得人们面对海量信息的同时,不得不花费大量时间进行信息筛选。高校图书馆作为高校的信息资源服务中心,面临同样问题即如何充分利用新技术帮助读者提高对信息资源的利用效率。图书馆需要在传统信息服务的基础上,为读者提供更具个性化的信息服务。一方面,图书馆应向读者提供构建个人信息资源的工具,另一方面,图书馆为读者提供相互间沟通交流的工具,实现知识共享和转移。基于Web2.0的学科知识社区较好地体现了图书馆个性化信息服务的需求,具有十分重要的现实意义和实用价值。论文按照软件工程的思想,首先对学科知识社区的需求进行了仔细的分析,在此基础上,针对基于Web2.0特点的系统实现进行了概要和详细设计,系统在逻辑上分为界面、控制、实体三层,全部业务逻辑均在控制层实现,在用户数据库设计、系统实现、系统测试等方面做了大量的工作。“基于Web2.0的学科知识社区”使用PHP动态编程语言编写、MySQL作为后台数据库,服务器操作系统平台是Windows。整体开发技术成熟可靠,扩展性强。系统对客户端的要求比较宽松,仅要求能够支持JavaScript技术的互联网浏览器即可,便于读者使用。“基于Web2.0的学科知识社区”是图书馆开展个性化信息服务工作的基础,为读者构建自己的信息资源库、将自己的隐形知识转化为显性知识提供了有效途径,在某种程度上实现了读者间知识的共享和转移。关键词:Web2.0 图书馆 个性化信息服务Design and Implement of Knowledge Community Based on Web 2.0Field: Software EngineeringGraduate Student: Advisors:We have now entered the informationization times. With the fast development of networking and computer technology, we have to spend a great deal of time screening information while we are faced with large amount of information. University library, as the information resource service center, is facing the same problem, that is, how to make full use of the new technology to improve the efficiency of using information resources. University library needs to provide more personalized information service which is based on the traditional information service. On the one hand, the tool of constructing individual information resource should be provided by the library. On the other hand, the library ought to supply for the reader the tool that can make them exchange mutually, realizing the sharing and shifting of knowledge. The discipline knowledge community based on Web 2.0 can better meet the librarys needs of personalized information service.According to the thought of software engineering, the thesis has firstly analyzed carefully the needs of the discipline knowledge community and then outlined and designed in great detail the system realization with the characteristics of Web 2.0. The system is logically divided into contact surface, control and entity. The complete service logic, realized on the contact surface, plays an important role in users database design, system realization, system test, and so on. The discipline knowledge community based on Web 2.0 uses PHP dynamic programming language to compile MySQL as the backstage database. The operating system platform of the server is Windows. The whole development technology is mature, reliable and extended. The request on the client side is not so high and the Internet browser that can support JavaScript is ok, which is very convenient for the reader to use.The discipline knowledge community based on Web 2.0, as the bases for the library developing personalized information service, provides an efficient way for the reader to construct their own information resource storehouse and transform their stealth knowledge into dominant knowledge, realizing the sharing and shifting of knowledge to some extent.Key words: Web 2.0, Library, Personalized Information Service目 录1绪论11.1研究背景11.2国内外研究现状21.3本文的研究内容和结构安排52学科知识社区系统的开发技术研究82.1开发模式的选择82.2Web2.0技术122.3Session技术142.4Ajax技术152.5可扩展标记语言XML152.6脚本语言JavaScript163设计方案173.1系统需求分析173.2体系结构分析213.3软件功能结构设计293.4数据库设计323.5系统的生命周期和开发模型344系统实现364.1建立数据库364.2系统文件和主要功能514.3读者登录模块554.4读者“我的首页”模块554.5读者“我的网络书签”模块574.6读者“我的自建资源”模块574.7读者“我的微博”模块584.8读者“我的关注”模块604.9读者“我的好友”模块624.10读者“我的搜索”模块654.11读者“我的账户”模块664.12馆员登录模块674.13馆员“参数管理”模块684.14馆员“读者管理”模块695系统测试715.1系统测试方案715.2系统运行评价73参考文献74声 明76致 谢771 绪论1.1 研究背景20世纪90年代以来,以计算机和互联网为代表的信息技术快速发展并得到广泛应用。人类的生活方式也因而改变,迈进了一个崭新的信息时代。在这个科技创新的时代,社会对信息产生巨大需求。人们通过网络获取大量信息的同时,也不得不花费大量时间去整理无序而繁杂的网上信息。如何提高信息的可利用性、可靠性和有用性,解决“信息过载”、“信息迷航”等问题,成为一个亟待解决的问题。高校图书馆作为高校中信息资源主要提供者,面临同样困境。一方面,高校图书馆已经步入传统资源和数字资源相结合的复合图书馆时代,为读者提供的资源丰富而全面;另一方面,广大读者在使用这些资源的同时,迫切希望图书馆提供更快捷的信息查找方式,以便把更多的精力放在信息的加工、处理和应用上。于是,如何为读者提供个性化信息服务,提高广大读者的信息获取能力,成为当今图书馆发展的重要课题。Web2.0是互联网世界的一个技术概念。它提出于2004年,并在全球迅速发展。Web2.0借助Blog、Tag、 SNS、RSS、Wiki等工具,使每一个人成为网络社会的真正主体,允许用户充分发挥自己的创造潜能。同时Web2.0为用户之间创建有效的联系,实现了信息的有序分享。因此,将Web2.0技术充分应用到图书馆的信息服务中,可以有效实现个性化服务的目标,并将成为当前图书馆个性化服务的主要途径。建立基于Web2.0的知识社区,作为将Web2.0技术应用于图书馆个性化服务中的一种新的形式,不仅可以提高读者的信息获取能力,而且可以为图书馆的发展带来新的契机,具有重要的意义,表现在以下几个方面。首先是有利于促进读者主观能动性的发挥,促进读者参与资源建设,提高读者的信息获取能力。长期以来,图书馆和读者之间缺乏有效的交互渠道,读者自身的信息资源没有得到有效的开发和利用。基于Web2.0的知识社区,为读者提供了个人展示和交流的平台,激发读者共享信息资源的意识和积极性,有力推动图书馆的资源建设。其次是有利于确立以读者需求为中心的信息服务思想。近十年来,培训用户如何使用图书馆服务一直是一项重要的信息服务内容。但在新的形势下,图书馆需要改变观念,处处以读者为中心,让用户比较容易地获取到自己所需要的信息资源。基于Web2.0的知识社区的建立,将充分肯定读者的主导地位,满足读者的需求。第三是有利于提高图书馆的社会影响力,为图书馆的发展带来新的契机。随着现代信息技术的快速发展,图书馆面临越来越多的竞争。对此,图书馆可以借助Web2.0技术,积极变革服务方式,变被动为主动,争取读者认同。学科知识社区贴近读者需求,功能独特,对读者具有很大的吸引力,可以作为图书馆拓展服务的基础,其前景可观。总之,基于Web2.0的学科知识社区,将为读者提供了一个更加方便灵活的使用平台,在模式上实现了从单纯“获取”到“共同建设,共同使用,共同发展”的进步。在这个平台中,读者可以创建自己的信息资源,查询他人的信息资源,相互建立好友关系并保持联系,从而使图书馆真正做到个性化的信息服务。1.2 国内外研究现状在图书馆,基于信息用户的信息使用行为、习惯、偏好和特点,向用户提供满足其各种个性化需求的服务形式被称为个性化信息服务1。它是一个双向的概念,一方面,读者根据自身的兴趣、爱好和需求定制自己所需要的服务和信息;另一方面,图书馆通过分析读者属性和行为,有针对性主动为读者提供所需信息和服务,并根据需求的动态调整。当前,在新的形势下,如何利用先进技术实现图书馆个性化服务,已经成为国内外图书馆人的研究热点。1.2.1 国外相关研究现状国外较早开展对Web2.0技术如何运用于图书馆的个性化信息服务领域的研究,并产生了大量理论和实践成果。理论方面,国外学者将Web2.0在图书馆的信息服务中的应用命名为Library2.0,即图书馆2.0。但目前关于图书馆2.0还没有一致认同的概念。维基百科的解释是:图书馆2.0是一种图书馆服务模式,这一模式反映了图书馆服务方式向用户的转变;这种转变特别表现在电子服务上,如OPAC,在线图书馆服务,以及表现在用户信息流的回馈增长;图书馆2.0的概念借用自Web2.0,并遵循Web2.0哲学理念2。实践方面,国外主要集中在SNS以外的Web2.0技术在图书馆的应用,并取得了一定的成果。Martin Ebner等对blog(博客)在格拉茨工业大学研究生远程教学中应用进行了论述,认为学生除了按照传统待在学校撰写论文,也可以在网上通过写博客的方式来撰写论文3。哥伦比业大学图书馆的“新书通知服务”,则将图书馆每周动态,如新进图书和电子资源以及读者感兴趣的资料通过E-mail发送给读者。美国莱斯大学的Information Session也是按照教师和学生的个人需求定做的4。下面主要介绍两套典型系统。5(1)美国北卡罗莱纳州立大学图书馆的MyLibraryNCState信息服务系统该系统是Web2.0技术在图书馆个性化信息服务中应用的典型范例。它以读者需求为导向,由读者自行定制的所需要的信息服务,是基于网页的信息服务平台67。具体地说,MyLibraryNCState有以下特点:1.便捷的使用方式和灵活的定制功能。该系统使用B/S架构,读者可以通过任何支持SSL协议的网页浏览器登录系统。登录后可以灵活定制许多内容。例如选择为自己服务的图书馆员,定制书目数据库和电子期刊,定制自己的页面布局等。系统允许读者定制自己经常使用的网络链接为个人链接部分。这样,读者就可以选定自己喜欢的入口点来检索网络资源。2.建立读者和图书馆间便捷地联系方式。系统中为读者列出了图书馆员的名字、电话、电子邮件地址等以便联系;为读者提供本馆的信息资源的超文本链接列表;提供包括字典、百科全书、手册、年鉴、指南、地图等资源的参考咨询台;以电子公告板或电子邮件的形式将本馆的最新信息传递给读者。特别是北卡罗莱纳州立大学图书馆的MyLibrary系统还与图书馆的学科馆员制度相结合,既有利于将图书馆信息服务工作与学校教学科研活动紧密结合在一起,也便于为读者提供专业信息管理人员的指导服务。(2)康纳尔大学图书馆MyLibraryMyLibrary系统于2000年开始使用,主要为该校学生、教工提供个性化服务。康纳尔大学图书馆的MyLibrary使用B/S架构,后台使用Oracle数据库,页面大量使用JavaScript技术实现动态更新。由于读者使用浏览器登录即可使用,并且可定制的内容丰富,获得了读者的一致好评。系统主要包括个性化链接(MyLinks)、个性化更新(MyUpdates)、个性化内容(MyContents)、个性化目录(MyCatalogs)和个性化文献传递( MyDocumentDelivery)五个栏目78。MyLinks主要为读者提供存储和管理个人喜好的信息资源的超链接的工具。用户可以在这里创建多个文件夹来为自己的信息资源分类,并将自己喜好的信息资源的超链接分别存储。这些链接可以是图书馆网站提供的馆藏数字资源,也可以是互联网上的各种网络资源的链接。此功能类似于“网络收藏夹”,读者可以非常方便地在任何一台联网的电脑上使用自己的常用链接并查询信息资源。MyLinks默认为读者提供2个文件夹,一个文件夹包含康纳尔大学图书馆服务的链接,另一个文件夹包含各种搜索引擎的链接。类似的,MyCatalogs则为读者提供了一个存储空间。读者可以将自己喜欢的检索结果、外部资源存储在服务器端以供随时调用。MyUpdates用于将符合读者的检索请求的新资源动态推送给读者。读者向系统提供自己的信息需求范围和检索表达式,系统将自动定期对图书馆新到资源(书目、期刊目录)进行检索,当有符合条件的新资源检出时,由系统定期自动通知用户。MyContents提供定制期刊功能。读者将需要定制的期刊信息或其他要求输入后,系统将在该期刊到馆后自动提醒读者,或向读者提供指定的摘要信息以供使用。MyDocumentDelivery则提供指定文献的原文传递服务。读者提供所需文献的相关信息,图书馆员在查找到相关内容后发送给读者。以上几部分共同构成MyLibrary系统,为用户提供基于Web2.0的图书馆个性化信息服务。1.2.2 国内相关研究现状国内对Web2.0的研究起步较晚。孙茜于2005年12月所作Web2.0对数字图书馆服务创新的启示一文最早开始探讨Web2.0如何与图书馆信息服务的结合方式9。2006年1月,范并思、胡小著的图书馆2.0:构建新的图书馆服务最早提出“图书馆2.0”概念10。此后相关理论研究如雨后春笋,发展迅速。由于各种原因,国内高校图书馆对Web2.0技术在信息服务中的实践应用相对较少。但以图书评论服务起家的“豆瓣网”却从另外角度为我们提供了许多可供借鉴的信息。豆瓣是一个集Blog、交友、小组、收藏于一体的新型社区网络。它同时提供了书目推荐和以共同兴趣交友等多种服务功能。它的特点在于向用户提供对图书、影视和音乐评论功能,并以它们为媒介,将有共同兴趣的人集合到一起,构成一个个的主题社区。豆瓣的页面布局由成员产生和决定,用户也由此获得自身价值的体现。豆瓣用户通过Bookmark表达喜好,通过Blog生成内容和评论,通过Tag实现分类,通过SNS构建社会关系。这种与用户的利益捆绑、“相裹挟而前进”的方式正是Web2.0应用的最高境界11。1.3 本文的研究内容和结构安排1.3.1 本文的研究内容本文所论述的“基于Web2.0的学科知识社区”是一种应用了Web2.0的个性化信息服务系统。它由图书馆建立,以全体读者为最终用户,意图帮助读者实现对信息资源的快速使用;同时以信息资源为纽带,帮助读者建立虚拟社会关系,进而实现知识的转移。具体地说,有如下特点:1.为读者提供建立自己的信息资源的功能。读者使用本系统,可以将感兴趣的网页链接分类收藏,制作成“我的网络书签”,类似于“网络收藏夹”。读者也可以将各种电子资源分类上传,制作成“我的自建资源”,实现对信息的多种格式存储。读者还可以将自己的一些个人思考写成小文章上传,即“我的微博”,实现个人主观信息的描述,为隐性知识向显性知识的转化提供可能。2.为读者提供发现他人的信息资源并建立虚拟社会关系的功能。系统向读者提供“我的搜索”功能,检索范围是系统中所有读者的“我的网络书签”、“我的自建资源”和“我的微博”。对感兴趣的检索结果,可以向其拥有者发出建立好友关系的邀请。经对方同意,两者即可建立好友关系并在页面中交流。读者也可以选择一些特定的读者,列入“我的关注”名单。当这些读者的“我的网络书签”、“我的自建资源”和“我的微博”内容出现更新时,系统将进行提醒。3.为读者提供与图书馆员交流的新渠道,密切图书馆和读者之间关系。系统将图书馆员内置为每一位读者的好友,并为图书馆员提供独立的服务界面。读者通过与馆员这位好友的交流,实现虚拟式参考咨询服务。4.易于使用。系统的易用性是吸引读者使用的一个重要因素。本系统将使用B/S结构,读者仅需使用安装有互联网浏览器的电脑即可使用;通过运用大量Ajax技术,系统将实现无刷新的网页互动;此外,本系统还集成信息资源的搜索与保存、微博、图书馆虚拟参考咨询、建立读者间好友关系并交流等各种功能,使用Tag标签技术实现对信息资源内容的有效揭示,初步实现一站式服务。本文主要的研究内容就是如何充分运用软件工程学的知识,在计算机系统和网络环境下开展图书馆信息服务,为读者的个性化信息服务提供了有力的支撑。具体的说,构建基于Web2.0的学科知识社区,能够为读者提供构建个性化首页的功能,提供对信息资源的自我组织功能和以此为基础的构建社会关系功能。标签(Tag)、微博(Microlog)、社会网络服务(SNS)和Ajax等Web2.0技术综合运用于图书馆信息服务中,将构建一个全新的个性化服务平台。1.3.2 本文的结构安排本论文主要由五章组成,各章的主要内容如下:第一章,即本章,阐述了图书馆开展个性化信息服务的背景和含义;介绍了本文所论述的社区系统的特点;分析了目前国际、国内的相关研究现状;阐明了对此的研究意义和主要创新点。第二章,介绍了研发学科知识社区系统所使用的开发技术,包括开发模式的选择、Web2.0技术、Session技术、Ajax技术、可扩展标记语言XML和脚本语言JavaScript。第三章,分析了本论文的系统需求、体系结构、软件功能结构;具体阐述了六个数据库的设计;说明了系统的生命周期和开发模型。第四章,按系统实现的步骤,依次介绍了如何建立数据库、各系统文件和主要功能,按顺序介绍了读者使用的八个模块、馆员使用的三个模块。第五章,介绍了软件测试的概念、基本方法,本软件的测试方法、测试过程和结论,并讲解了本软件的系统运行。2 学科知识社区系统的开发技术研究2.1 开发模式的选择当今,信息系统的开发主要有两种开发模式:客户机(Client)/服务器(Server)模式,浏览器(Browser)/服务器(Server)模式。C/S模式是历史较长的模式,成熟度高。B/S模式兴起于20世纪90年代,并迅速得到计算机信息工作者,特别是开发人员的极大关注。2.1.1 C/S模式C/S模式,即Client/Server(客户机/服务器)模式。它通常采用两层结构,如图2-1所示。其中服务器负责数据的具体管理,客户机客户机(Client)服务器(Server)数据库管理系统SQL请求负责完成服务器和用户间的交互任务。图2-1 C/S结构简图客户机和服务器通常处于同一局域网。用户的请求通过客户机,经过网络实现对服务器的请求,即实现对数据库的操作。服务器接受客户机的请求后,做出相应处理,将数据提交给客户机。客户机再将接收到的数据进行处理,以合适的方式呈现给用户。此外,服务器还提供安全保护及对数据完整性的处理等功能。通常,服务器的硬件处理能力较高,可以同时接受多个客户机的访问。在C/S模式中,应用程序分为两个部分:服务器部分和客户机部分。服务器部分的程序用于实现多个用户共享的信息、数据的后台处理;客户机部分程序供用户直接调用,具体负责信息的显示以及出错提示、在线帮助等辅助信息的显示。C/S模式的优点在于技术比较成熟,交互性强,数据存储安全性高,响应速度快,目前在业界已经得到广泛应用,做出了很大贡献。但C/S架构也具有许多缺点。首先是维护困难。例如客户端软件的一次升级,就意味着所有客户端软件全部必须升级,工作量巨大。其次是软件培训费用高。对计算机操作水平不高的应用人员,需要对各种应用界面做细致培训。不同软件应用的培训内容也不相同,造成用户无所适从。第三是系统生命周期短,移植和升级困难。2.1.2 B/S模式B/S模式(Browser/Server,浏览器/服务器模式),是基于Internet环境的信息系统,采取标准的TCP/IP协议,以Web为平台实现数据处理。B/S模式是对C/S模式的一种变化和改进。从物理角度看,分为三个层次:客户机、WEB服务器、数据服务器(如图2-2所示)。客户机WEB服务器数据服务器图2-2 B/S的物理层次在逻辑上,B/S模型也划分为三层,并且这三层可以在物理上放置到同一台服务器上。将应用程序划分为三层体系结构,实际上是将数据访问、业务规则和数据合法性校验等任务独立出来,单独放置在中间层运行。这时,客户端首先与中间层建立通讯连接,并通过中间层间接与后台数据库进行数据处理,不需要直接操作数据库。在基于B/S的三层体系结构中,表示层、中间层和数据层形成了三个相对独立的部分。表示层(Browser)位于客户端,由互联网浏览器实现。在浏览器中借助于JavaApplet、JavaScript、VbScript和Ajax等技术实现一些简单的客户端处理逻辑。它的功能是由Web浏览器向网络上的Web服务器(即中间层)发出服务请求,把接收来的结果编译显示在Web浏览器上供用户使用。中间层(WebServer)是承担用户服务与数据服务间的逻辑关系。它一方面接收用户从本地或远程发起的Web服务请求,通过运用服务器脚本验证用户身份、把请求通过中间件发送到数据库服务器(即数据层),并将数据库服务器返回的数据进行逻辑处理,编码为HTML格式及各种脚本反馈给客户端。数据层(DBServer)位于逻辑层次结构的最底层,它负责直接操作数据库本身,根据接收到的Web服务器对数据库服务器的操作请求,对数据库实施查询、修改和更新等数据库操作,然后将操作后的结果数据反馈给中间层(即WebServer)。在三层结构中,数据计算与业务处理集中在中间层,它负责正式的进程和逻辑规则。基于B/S的三层体系结构示意图如下所示:图2-3 B/S的逻辑层次B/S三层结构相比传统的C/S二层结构具有以下的独特优点:(1)B/S三层结构的三个部分模块各自相对独立。这种与模块化类似的设计,将使得系统改进的难度大大降低,某一部分模块的改变不影响其它模块。类似合法性校验、业务规则和逻辑处理等操作利用中间层实现。这样设计的好处是,当业务发生变化时,只需更改中间层中相应的某个组件即可,表示层由于只负责显示等操作,不需要做任何处理。个别情况下,通过修改数据库中的某个存储过程,而不修改中间层组件,也可以满足业务变化的需要。这种分层设计,一方面减少了程序设计的复杂性,另一方面也缩短了系统开发的周期。(2)B/S三层结构的数据访问是通过中间层,而不是直接对数据库进行操作。这样间接操作的做法的优点是大大减少了建立在数据库服务器上的连接数量。客户端数量只受中间层的服务能力限制。另一方面,利用连接池控制中间层与数据库服务器之间的数据连接,可以动态分配、释放数据连接,实现负载均衡。(3)相比C/S ,B/S三层结构利用中间层实现一些事务处理,客户端不直接操作数据库,仅负责显示数据库操作部分。这样客户端从功能上就象瘦客户机一样,充分发挥了服务器的强大作用。(4)B/S三层结构的用户界面基于统一的互联网浏览器上。浏览器易于操作、界面友好。用户有现成的使用经验,不须再学习即可使用新系统。软件的投入应用更加方便。2.1.3学科知识社区系统的开发模式的选择在开发软件的过程中,选择开发模式,主要根据以下几个方面:l 系统的性能。B/S模式对客户端的要求很低,只要具有互联网浏览器,就可以在任何时间、任何地点,使用任何系统成为B/S系统的终端;但同时该模式对服务器的要求很高。C/S模式中,客户端和服务器端都能够处理数据,相对来说服务器性能要求并不象B/S模式那样高。l 系统的开发。C/S模式的技术历史悠久,成熟度和可靠性高。但其应用程序的维护、移植和互操作性较复杂。B/S模式虽然历史较短,但跨平台能力强,已经成为发展趋势;但目前相关技术纷繁复杂,还没有统一的标准,。l 系统的升级维护。C/S模式中,各部分模块关联度高,特别是系统升级时常涉及各客户端,成本很高。但B/S模式中,系统维护时仅需操作服务器端即可,维护成本低。对于点多面广的应用是很有价值的。同时,客户端只需要简单的浏览和少量信息的录入即可。“基于Web2.0的学科知识社区”系统,是一个典型的客户端不可控性强的应用环境。读者可能使用不同系统,在不同地点和时间使用这套系统。如果选用C/S模式,当系统升级时,要求所有客户端用户同时升级自己的客户端,具有非常大的难度。如果选用B/S模式,除了可以解决上面的问题,还大大降低了读者的使用难度,用户仅需具有基本的Web使用经验即可入门。所以,“基于Web2.0的学科知识社区”系统将使用B/S模式。2.2 Web2.0技术2004年3月,O'Reilly媒体公司的副总裁Dale Dougherty在公司的一次筹备会上第一次提出了Web2.0概念。2005年9月,Tim O'Reilly在其公司网站的个人栏目中发表了文章12,对Web2.0的概念及特征进行了概括,Tim O'Reilly和他的这篇文章被视为Web2.0领域的典范。此后,Web2.0以不可思议的速度在全球传播开来。随后,Tim O'Reilly组织相关人员在2005年10月给出了Web2.0的定义:Web2.0是一个作为平台的网络,跨越了所有连接的设备;发布软件成为一个持续更新的服务,并使更多的人更好地使用这种服务;获取并重组那些包括其他个人用户在内的各种来源的数据,并向他人提供自己的数据及服务,以便他们以同样的方式使用;通过一种共享网络架构的方式高效地创建网络,并提供比Web 1.0页面更加丰富的用户体验13。关于Web2.0的特征,国内外有许多讨论。例如,Tim O'Reilly提出Web2.0应该具备以下七个特征:互联网作为平台;利用集体智慧;数据是下一个Intel Inside;软件发布周期的终结;轻量级编程模型;软件超越单一设备;丰富的用户体验14。互联网实验室认为,无论如何表述,其核心都是个性化和自组织,而其它如分享、参与等都是这两个核心特点的亚特性15。Web2.0包括一些典型的技术和工具,就本文涉及的一些技术,简要介绍如下:(1)博客(Blog)。博客最初的名称是Weblog,由web和log两个单词组成,按字面意思就为网络日记,后演绎成Blog。它是一种通常由个人管理的网站。网站的内容是个人发表的一些资料。资料按特定类别排列,一般是按发表时间由新到旧排序。一般博客多专注于某一领域,例如新闻、摄影、娱乐等各种主题,或者是私人性质的日记。大部分的博客内容都以文字为主,也可以含有图片、音乐等。博客已经成为社会媒体网络的一部分16。微博(Micro-blogging,Microlog)是一种允许用户及时更新简短文本(通常少于200字)并可以公开发布的博客形式。微博客的代表性网站是Twitter,这个词甚至已经成为了微博客的代名词17。(2)标签(Tag)。它是新的组织和管理信息资源的方式。它类似于传统的、针对文件本身的关键词,但由用户根据自己的认知程度自行标识,有很大的随意性。它的出现使得内容之间的相关性得以增强,相关用户之间的交互性变得更加容易。(3)社会网络服务(SNS)。SNS在互联网领域有3层含义,Social Network Service,社会交往服务;Social Network Software,社会交往软件;Social Network Site,社会交往网站。广义的SNS概念是这三者的结合,即一种用于拓展社会关系的应用服务,其基础是建立一个平台,即社会交往网站一个依据相关理论,利用社会交往软件和分布式技术等工具所建立和运作的网络站点。通常SNS专指旨在帮助人们建立社会性网络的互联网应用服务。近年SNS网站发展速度非常快,目前注册用户超过千万的有41个,注册用户过亿的有6个:Facebook, Qzone, Habbo, MySpace, Windows Live Space, Orkut。我国以人人网(原校内网)、开心网为代表的SNS网站更是蓬勃发展,获得了网民,特别是大学生们的青睐。它们都在一定程度上依赖于真实社交,依据某些利益关系或共同的爱好来建立和拓宽个人社交网。可以说,基于Web2.0的SNS网站将网络与真实世界紧密地联系起来,代表了社会关系的飞跃,必将有着广阔的发展前景。此外,Web2.0还包括RSS、维基(Wiki)、P2P等技术。这些技术都为用户参与网络资源的建设提供了可能。大量个人化的内容,借助人与人之间的分享,可以形成了丰富多彩的Web2.0世界。2.3 Session技术在Web服务器端编程中,使用Session实现客户端与服务器之间的会话,是一个很重要的技术。HTTP是一种无状态(Stateless)的协议,它无法区分当前的一连串请求是来自相同的客户端还是不同的客户端,或者客户端是出于连接状态还是断开状态。正是由于HTTP协议的无状态特点,因此,在实际开发过程中,必须借助Session技术实现对客户端状态的检测。Session,中文译为“会话”,指用户访问网页到与服务器断开连接的一个时间段。Session的功能是跟踪用户状态,存储这个会话过程中保持器状态的信息。此外,使用Cookie也可以实现客户端与服务器间会话,但由于Cookie存储在客户端,存在一定的安全隐患,特别是本系统涉及用户众多,数据库读写量大,权限存在一定重复,使用Session实现客户端与服务器端的会话更显安全。Session所指的会话发生在访问者从到达某个特定主页到离开为止那段时间。每一个访问者都会单独获得一个Session,该Session存储在服务器端。在Web应用程序中,当一个用户访问该应用时,Session类型的变量可以供这个用户在该Web应用的所有页面中共享数据。此时,如果另一个用户也同时访问该Web应用,他也拥有自己的Session变量,而且两个用户之间无法通过Session变量共享信息。当用户退出网页时,Session将失效。在PHP中,Session由一种能够存储用户发出的请求状态信息的方法组成。当用户每次访问网站时,都会为每个访问者创建一个唯一的标识符来区分客户的身份,这个标识符被称为会话ID(SID)。其实SID就是Session文件的文件名。它具有唯一性和随机性,并以确保了Session的安全。2.4 Ajax技术Ajax是当前比较流行的交互式网页技术。传统Web应用中,用户对网页的表单进行填写,提交表单后对Web服务器发送一个请求。服务器接收并处理请求,返回一个新的网页。当大量用户发出请求时,服务器有可能为了极小的服务请求返回整个网页。这种做法会造成响应时间过长的问题。Ajax就是为了解决这个问题而出现的。它全称为“Asynchronous JavaScript and XML”,即异步JavaScript和XML,是一种结合了XML及JavaScript等编程技术,用于创建交互式网页应用的Web开发技术。它不是指一种单一的技术,而是有机地利用了一系列相关的技术。其典型的技术特征是使用XHTML+CSS来表示信息;使用JavaScript操作DOM(Document Object Model)进行动态显示及交互;使用XML