开源知识管理子系统的设计与实现硕士论文.pdf_第1页
开源知识管理子系统的设计与实现硕士论文.pdf_第2页
开源知识管理子系统的设计与实现硕士论文.pdf_第3页
开源知识管理子系统的设计与实现硕士论文.pdf_第4页
开源知识管理子系统的设计与实现硕士论文.pdf_第5页
已阅读5页,还剩68页未读 继续免费阅读

开源知识管理子系统的设计与实现硕士论文.pdf.pdf 免费下载

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

文档简介

i 北京邮电大学t 程硕上论文 独创性( 或创新性) 声明 本人声明所呈交的论文是本人在导师指导下进行的研究工作及取得的研究 成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不 包含其他人已经发表或撰写过的研究成果,也不包含为获得北京邮电大学或其他 教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任 何贡献均已在论文中作了明确的说明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切相关责任。 本人签名: 垒宅盈显聋 f tl i : 皇! 望二至二翻 关于论文使用授权的说明 学位论文作者完全了解北京邮电大学有关保留和使用学位论文的规定,即: 研究生在校攻读学位期间论文工作的知识产权单位属北京邮电大学。学校有权保 留并向国家有关部门或机构送交论文的复印件和磁盘,允许学位论文被查阅和借 阅;学校可以公布学位论文的全部或部分内容,可以允许采用影印、缩印或其它 复制手段保存、汇编学位论文。( 保密的学位论文在解密后遵守此规定) 本学位论文不属于保密范围,适用本授权书。 本人签名: 导师签名: 日期:幽= ! 二蛰 i ! ! tg l :迦罕:翌:里孕 北京邮电大学工程硕士论文 、 知识管理已经日益成为企业积累知识财富、提高竞争力的有力武 器,建立知识管理系统已经成为很多企业的一项重要工作。本文总结 企业对知识管理系统的需求,在本企业现有的r e d m i n e 项目管理的基 础上设计和实现了一套知识管理子系统,并决定将知识管理子系统作 为开放源代码项目发布。 为了将知识管理子系统更好的作为开放源代码项目发布,我们认 真研究和分析了开放源代码的软件开发方法学,并将其作为知识管理 子系统设计与实现的指导原则。 r e d m i n e 是一套基于r u b yo nr a il s 技术开发的开放源代码的项 目管理系统,它提供了一套灵活的插件机制以方便用户扩展自己的功 能,知识管理子系统就是通过其插件机制与r e d m i n e 系统实现了无缝 融合。为了实现这一目标,我们研究和分析了r e d m i n e 所使用的r u b y o nr a i l s 开发技术及其基于r a i l se n g i n e s 的插件机制。 本文详细阐述了知识管理子系统的两个重要模块一e z f a q 常见 问题解决方案管理模块和e z f t p s e a r c h 文件服务器搜索模块的设计 与实现,以及这两个模块作为开放源代码项目发布的过程。这两个模 块在企业投入使用后取得了良好的运行效果,作为开放源代码发布后 也获得了广泛的认可。 关键词知识管理系统开放源代码r e d m i n er u b yo i lr a i l s 北京邮电大学t 程硕十论文 北京邮电人学工程硕士论文 d e s i g na n di m p l e m e n t a t i o no fa no p e n s o u r c ek n o w l e d g e i a n a g e m e n ts u b s y s t e m a b s t r a c t k n o w l e d g em a n a g e m e n th a sb e c o m et ob eap o w e r f u lw e a p o nf o r e n t e r p r i s et og a t h e rk n o w l e d g ea n dt oe n h a n c ec o m p e t i t i v e n e s s t h e i m p l e m e n t a t i o no fk n o w l e d g em a n a g e m e n ts y s t e mh a sb e c o m et ob ea n i m p o r t a n tt a s k f o rm a n yc o m p a n i e s ,t o o t h i sp a p e rs u m m a r i z e st h e c o m p a n y sn e e d so ft h ek n o w l e d g em a n a g e m e n ts y s t e ma n dd e s i g n sa k n o w l e d g em a n a g e m e n ts u b s y s t e mb a s e do nt h ee x i s t i n gr e d m i n e p r o j e c tm a n a g e m e n ts y s t e m w ed e c i d e t or e l e a s et h ek n o w l e d g e m a n a g e m e n ts u b - s y s t e ma sa no p e ns o u r c ep r o j e c t i no r d e rt om a k et h eo p e ns o u r c er e l e a s ep r o c e d u r eo ft h ek n o w l e d g e m a n a g e m e n ts u b s y s t e mb e t t e r , w eh a v ec a r e f u l l ys t u d i e da n da n a l y z e d t h eo p e ns o u r c es o f t w a r ed e v e l o p m e n tm e t h o d o l o g y , a n du s ei ta st h e g u i d i n gp r i n c i p l e so ft h ed e s i g na n di m p l e m e n t a t i o no ft h ek n o w l e d g e m a n a g e m e n ts u b s y s t e m r e d m i n ei sa no p e ns o u r c ep r o j e c t m a n a g e m e n ts y s t e mb a s e do n r u b yo nr a i l s i tp r o v i d e saf l e x i b l ep l u g i nm e c h a n i s mf o ru s e rt oe x p a n d t h e i ro w nf e a t u r e s t h e k n o w l e d g em a n a g e m e n ts u b s y s t e mu s e s r e d m i n e sp l u g i nm e c h a n i s mt om a k ei ts e a m l e s s i n t e g r a t e di n t ot h e r e d m i n es y s t e m t oa c h i e v et h i sg o a l ,w eh a v es t u d i e da n da n a l y z e d r u b yo nr a i l sf r a m e w o r ka n dr e d m i n e sp l u g i nm e c h a n i s mb a s e do n r a i l se n g i n e s t h i sp a p e ri l l u s t r a t e st h ed e s i g na n di m p l e m e n t a t i o no ft w o i m p o r t a n t m o d u l e so ft h ek n o w l e d g em a n a g e m e n ts u b s y s t e m t h ee z f a qf a q m a n a g e m e n tm o d u l ea n dt h ee z f t p s e a r c hf t ps e r v e rs e a r c hm o d u l e t h i sp a p e ra l s oi l l u s t r a t e st h eo p e ns o u r c er e l e a s ep r o c e d u r eo ft h et w o m o d u l e s 北京邮电大学t 程硕士论义 t h et w om o d u l e so ft h ek n o w l e d g em a n a g e m e n ts u b s y s t e mh a v e a c h i e v e dg o o dr e s u l t sa f t e rt h e yw e r ep u ti n t ou s ei nt h ec o m p a n y t h e y h a v ea l s ob e e nw i d e l yr e c o g n i z e da f t e rt h e yw e r er e l e a s e da so p e ns o u r c e p r o j e c t s k e yw o r d s : k n o w l e d g em a n a g e m e n ts y s t e m ,o p e ns o u r c e , 7 、 r e d m i n e ,r u b y o nr a i l s 1 1 课题背景1 1 2 主系统r e d m i n e 项目管理系统概述2 1 3 知识管理系统概述3 1 4 论文的研究内容4 1 5 本人所作工作及文章结构4 第二章开源码的软件开发方法学6 2 1 开放源代码的定义6 2 2 开放源代码许可及其对比分析7 2 2 1 开放源代码许可概述7 2 2 2a p a c h e 许可8 2 2 3b s d 许可8 2 2 4g p l 许可8 2 2 5l g p l 许可9 2 2 6m i t 许i j q 9 2 3 开放源代码与自由软件的关系9 2 4 开放源代码的开发方法学10 2 3 1 确定开放源代码的意图1 l 2 3 2 用户的重要性1 1 2 3 3 确定软件的功能1 1 2 3 4 创建开放源代码社区1 2 2 3 5 早发布、常发布1 3 2 3 6 版本策略13 2 3 7 善用问题跟踪系统1 4 2 3 8 听取用户的意见1 5 2 3 9 国际化的重要性1 5 2 3 1 0 发起者的最后职责1 6 第三章系统总体设计 3 1 项目范围界定17 3 2 系统设计原则l7 3 3 系统需求分析l8 3 4 系统软件体系架构2 l 3 5 系统功能定义2 2 3 5 1e z f a q 常见问题解决方案管理模块的功能定义2 2 3 5 2e z f t p s e a r c h 文件服务器搜索模块的功能定义2 6 第四章r e d m i n e 开发技术及其插件机制分析 4 1r u b y 语言概述2 8 北京邮电大学t 程硕j j 论文 4 2r u b yo nr a i l s 开发框架概述2 8 4 2 1r a i l s 框架的设计原则2 8 4 2 2r a i l s 框架的m v c 架构2 9 4 2 3r a i l s 应用程序的目录结构3 0 4 2 4r a i l s 的数据库迁移任务31 4 2 5r a i l s 应用程序的运行效果3l 4 3r e d m 眦系统的插件机制分析3 3 4 3 1r e d m i n e 系统的功能模型3 3 4 3 2r a i l se n g i n e s 插件概述3 4 4 3 - 3r e d m i n e 系统的插件机制3 4 第五章系统实现4 1 5 1 系统运行环境4 l 5 2e z f a q 常见问题解决方案管理模块的实现4 1 5 2 1 数据结构设计4 1 5 2 2 页面流程设计4 4 5 3e z f t p s e a r c h 文件服务器搜索模块的实现4 5 5 3 1 数据结构设计4 5 5 3 2 页面流程设计4 7 5 3 3f t p 扫描器的实现。4 8 5 4 系统运行效果5 0 5 4 1e z f a q 模块的实际运行界面5 1 5 4 2e z f t p s e a r c h 模块的实际运行界面5 7 5 5 作为开放源代码发布5 9 第六章总结。6 1 6 1 论文工作总结6 1 6 2 需进一步完善的工作6 1 参考文献。6 3 致谢 在学期间研究成果6 5 h 子系统的主系统和 节结构和本人所作 大师彼得德鲁克 性工作逐渐发展起 重要成果,在学术 界和管理技术产业界得到了广泛的研究,特别是随着信息技术的进步,知识管理 的i t 实现有了技术手段,知识管理系统已经日益成为企业积累知识财富、创造 更多竞争力的有力武器。 每个企业都在运行过程中不断收集和产生着各种类型的知识,例如图书、期 刊、常见问题解决方案、电子文档、资料备份、论文等。在没有施行知识管理的 企业中,这些宝贵的知识财富往往散落在书架、储藏柜、个人电脑、光盘、以及 员工的头脑中,时间一长就会逐渐丢失,需要用到的时候往往找不到保存在哪里, 对其中的重要部分又要重头开始整理,浪费了大量的人力物力。更重要的是,在 没有知识管理系统的企业中,最善于整理知识、传播知识和进行知识创新的员工 所作出的辛勤劳动没有衡量的手段,他们的努力得不到认可和合理的奖励,最终 将可能会降低员工为企业贡献聪明才智、促进企业科技创新的热情,给企业造成 无形的损失。 本企业很早就意识到了知识管理的重要性,决定要逐步在企业内施行知识管 理,并将建立本企业的知识管理系统( k m s ,k n o u l e d g em a n a g e m e n ts y s t e m ) 作 为其中最重要的一项工作来进行。经过多方面的调查与分析,我们确定了依托现 有的r e d m i n e 项目管理系统、在其上开发一套知识管理子系统的方案。这样不仅 使用户的使用习惯得到了延续,更重要的是使我们新开发的知识管理子系统与原 来的项目管理系统运行于同一个平台,可以很方便的在知识管理子系统与项目管 理子系统之间共享信息和建立关联。 r e d m i n e 项目管理系统是一套开放源代码的系统,原作者j e a n - p h i l i p p e l a n g 无私的将他的辛勤工作成果开放出来,供大家免费使用和研究,从而聚集 起了一个活跃的r e d m i n e 开源社区。我们不仅免费的使用着功能强大的r e d m i n e 北京邮电人学工程硕 :论文 系统,也从r e d m i n e 开源社区吸取了很多宝贵经验,对j e a n p h i l i p p el a n g 和 所有的贡献者充满了感激之情。因此,我们也郑重决定将我们开发的知识管理子 系统作为开放源代码回馈给r e d m i n e 社区,促进r e d m i n e 系统与社区的发展和持 续繁荣,同时也使我们有机会从更深的层次去认识和理解开放源代码运动,另外 我们开放的源代码对于本企业也具有一定的市场宣传意义。 1 2 主系统- r e d min e 项目管理系统概述 | 、 r e d m i n e 项目管理系统是一套使用r u b yo nr a il s 技术开发的开放源代码的 系统,它提供了多项目、多用户、多语言支持、基于角色的权限控制、灵活的问 题跟踪、时间跟踪、进度管理、以及新闻、w i k i 、讨论区、r s s 订阅等丰富的功 能。 自从2 0 0 6 年6 月份发布第一个版本v 0 1 0 以来,r e d m i n e 经历了2 0 多次 大大小小的版本发布,平均1 5 月升级一次,目前最新版本是于2 0 0 9 年5 月发 布的v 0 8 4 ,共计进行了2 2 0 0 多项功能改进和错误修正。正是由于有原作者 j e a n p h i l i p p el a n g 和r e d m i n e 社区的辛勤工作,才有了现在功能非常丰富的 r e d m i n e 供大家免费使用。 磁墟辘甄焉嬲i j 舞g 弦弱焉甚荔荔臻历缀溺易弱彩臻爨嬲彩麓搿缓荔缀甥嬲臻戳弱霸缀缀戮翳缀蓊瓣彰飘搦爱翳缓甥臻嚣黝嬲掰豺缓獭淄i 煳t 岳翻 i 黼“菇cx 垒 a ! h t ”,- ,n ! ,二誓,r j c t i ,n - i u 。”一一固: 强:。j :i 一 , 移b i i n 忍c o o h :tc s s f s - oh 蝇t 。多i n f a n 4 t i 姐 - is e 1 1 n t - o t h n 4e ! 7t o o l s ,一;h 竹s c a r o p t ,- 矿 l & 磊l5 l ;i li 孺d 蕊l l 磁翳黝缓骥骝爨麟黝缀缵磁缀糊黼鞠掰嬲嬲鳓黝缀磷鬃糍爝簸翳黧黝爨幽蕴鞠戮。一二月”4r - “ 魁#1 p “馘* “* 张毓,口 。;蝌薅a ,毽 篝勉磁;。黝j 尹燃,掰二逝锪数躺h 渤阪王;j 二笼笼琵笺菱竺薹墓三芝 橇述_i,伽啦 藏磐 耄 r e d m 7 i r i o 研p c i b l e p r o j o o cm a n a g e m e n t 岫。p p 嘶。“ 薅戚舜 脚篇。嘶icemsowritten u s l n 0r u b yo nr a i l sf r a m e w o r k i f l o u s i1 恤帅” l a d r n m l s t r a t o r :3 e a n 中h i h p p el a r t g m a n a g e m e n tf o r c r i t i c a l 霪 、 壤闷题i 蹙蓐 c o n t n d t 。r = 地a m * h ac l , :m o v , c h a o q u nz u je n cd a v i s , 掣:嚣:m f a b r 槐p h u r , o ,1 e a m - 8 a p 臼 妇b a 咒h ,j mm u l h o l l a n d ,k a d d e f e c t :2 2 9 打开,1 2 2 2 h e i n zm a ? b a i c eb w l u s zo c e d a ,m a r b nh e r r ,m x l r n f e a t u r s :# 5 4 打并1 5 0 5m i n 3 m i ! c h at h ee v dp l i c 3 i a sc h u ( :h , e o au ir w t e r 墨n 塾! 塑! i 曼盟 。p 破。h :蛆7 打开6 j 1 r u 5 5 。hh2 “d ,t h 。m 。5l e 。9 i 呲 t m c e p n 7 a 删m m a k e ei n g i i e 重所喜目鼍 呈7 0 j e c t ,$ a n d h o w t o a v 廿州 最近的薪闻= 燃然:乳。 出j e 神巾h m p p ol 3 n 韬在:i :葑一千月z 髓蘑抽苦兰苎是j :j 竺。i 。j ar e d m i n eb i d eb ye n co 删s ( 3 事、讦诧) 譬竺吣1 望 击j e a n - p h j l i p p el a n qz e 大约干曼:前:i 抽:紫毹吣“e 。p 。“d y o “。 知d m l , n e0 , 8 3r e l e a s e d ( 2 条蹴) 。”“”“ 由3 e a n 4 h d i p p el a n g 在2 个异之n 蹈抽 麴g 卫! 剑凹 r e d m r n e0 3 2r e l e a s e d 侣誊评论, 趟q 燮啦! i ! n 盘 e a n , p h :h p p el a n ( j 在3 千勇z 蘸器加 a d v a n c e df e a t u r e s e a s y t os e t u p6 m o n t h r a = l s2 2a n di l s r , ( 4 参评论)e v a l u a t i o np e n o d 由3 e a n - p h d = o p el a n q 茬3 个胃之前精加 时恤* 1 谚 糍 矽麓瞰一3 0 5 8 移辔, 图1 - 1r e d m i n e 项目管理系统界面图 2 0 0 7 年1 0 月,在r e d m i n ev o 5 1 版发布之后,r e & n i n e 系统自身的开发工 作也开始使用r e d m i n e 来管理,其项目管理网站就是咖r e & n i n e o r g ,图卜1 2 北京邮电大学t 程硕上论文 是r e d m i n e 系统官方网站上的r e d m i n e 项目管理系统的界面抓图。 目前r e d m i n e 管理系统共支持3 4 种语言,在全世界软件爱好者中得到了广 泛的应用,使用g o o g l e 搜索r e d m i n e 可以得到1 3 0 多万条记录( 其中中文记录 1 1 万条) 。r u b yo nr a i l s 开发技术的基础r u b y 语言的开发工作也使用r e d m i n e 系统来管理。 从开始接触和使用r e d m i n e 系统后,作者本人也参与了r e d m i n e 系统的错误 修正和语言文件本地化工作,v 0 8 版r e d m i n e 系统的简体中文语言文件就是由 本人负责维护的,在图i - i 上的c o n t r i b u t o r 列表中可以看到本人的在r e d m i n e 网站的用户账号“c h a o q u nz o u ”。 1 3 知识管理系统概述 在全球化和知识化的背景下,知识资产在企业竞争和提高其盈利水平方面发 挥着越来越重要的作用。按照世界银行在世界发展报告中的定义,数据是指 经过组织的数字、词语、声音和图像;信息是指以有意义的形式加以排列和处理 的数据;知识则是用于生产的有价值的信息。知识的价值来源于对知识的有效管 理,缺少知识管理,就像坐拥宝藏却不知道如何使用一样,无法让企业闲置的知 识资产发挥应有的作用。知识管理是将知识转化为企业竞争力的唯一途径。 对于什么是知识管理,很多研究机构和学者都提出了自己的见解,但目前还 没有一个标准的定义,例如美国生产力与质量研究中心a p c q ( a m e r i c a n p r o d u c t i v i t y q u a l i t yc e n t e r ) 认为:“知识管理是指为了提高企业竞争力而, 对知识进行识别、获取和充分发挥其作用的过程川。而国内则有学者认为:“知 识管理是借助现代网络化技术、组织系统和企业文化等手段,通过对组织中的知 识供给与需求的测量、对隐性知识的发现、获取、传播、共享、转化、保护、创 新活动进行组织,实现价值链的再造与提升,最终实现利润和竞争优势最大化的 整个过程 n 1 。尽管不同定义中对什么是知识管理的表述各不相同,但都认为知 识管理是为了让企业的知识资产充分发挥其作用,涵盖了知识识别、获取、传播、 创新等很多方面的一个非常复杂的过程。 由于知识管理的复杂性,它需要系列的支持作为基础,这些支持包括企业战 略和领导层的支持、企业文化的支持、以及信息技术平台的支持等。而知识管理 系统就是用来支持知识管理活动的信息技术系统,以及该信息系统所承载的知识 管理的内容、方法与工具。知识管理系统的服务对象应包括企业决策者、业务经 理和员工,以及与企业有密切关系的客户和合作伙伴乜】。 随着软件开发技术的不断进步,近几年来w e b 浏览器已经成为企业信息系统 的标准访问工具,而多层w e b 体系架构也已经成为主流知识管理系统的标准软件 北京邮电人学工程硕上论文 架构。以f 1 i c k r 、d e l i c i o u s 等网站为代表,以b l o g 、t a g 、s n s 、r s s 、w i k i 等应用为核心,依据六度分隔、x m l 、a j a x 等新理论和新技术实现的w e b2 0 新 一代互联网模式o ”,也为知识管理系统的发展带来了新的思路,t a g 、r s s 、w i k i 等技术都己在知识管理系统中得到了良好的应用。 从系统开发的角度来看,构建知识管理系统时需要考虑四个层次的问题h 1 : 一是基础层,要对企业业务流程有一个整体性认识并作为组织的发展目标;二是 过程层,要改造现有业务流程以适应知识管理带来的新要求;三是互动层,要把 知识从不同的地方收集并通过机器智能整理使其显性化;四是数据和信息层,重 点是对信息系统的各个组成部分的设计。 知识管理是一门新兴的管理科学,也是一门实践性非常强的学科,企业的知 识管理战略与企业文化、企业业务流程都有着非常密切的联系。企业的知识管理 系统必须根据企业的实际情况,在认真分析和总结企业战略及其业务流程的基础 上进行规划、设计和开发。在知识管理系统的运营过程中,也应不断的对知识管 理系统的应用情况进行评价和审计,从而更好的把企业组织与信息系统无缝的集 成起来,使企业的业务流程与知识管理系统不断的互相适应,从而实现知识管理 系统的目的:服务于企业的业绩目标,为提高企业竞争力服务。 1 4 论文的研究内容 根据本企业对知识管理系统的实际需求,设计了基于现有的开源码的 r e d m i n e 项目管理系统的知识管理子系统,并从设计阶段确定了将该子系统作为 开源码回馈给r e d m i n e 开源社区的原则。 分析了开源码的软件开发方法学,并在其指导之下进行了知识管理子系统的 开发与实现。 在分析r e d m i n e 系统的架构的基础上,利用其提供的插件机制,在不对 r e d m i n e 系统本身进行任何修改的前提下,实现了知识管理子系统与r e d m i n e 系 统的无缝融合,并实现了知识管理子系统的两个重要模块: e z f a q 常见问题解决方案管理模块 e z f t p s e a r c h 文件服务器搜索模块 1 5 本人所作工作及文章结构 本人作为该项目的负责人,承担了系统分析、设计、代码编写、文档制作等 全部工作。本文内容是本人在该项目中所做主要工作的总结,结合项目具体情况, 论文对其中的重点问题进行了详细论述,论文的各章结构如下: 第一章介绍了项目背景以及课题来源、研究意义。 4 北京邮电大学丁程顶t 论文 第二章对开源码的软件开发方法学进行了分析。 第三章在需求分析的基础上,提出了知识管理子系统的总体设计方案,包 括系统的架构设计及功能定义。 第四章对r e d m i n e 项目管理系统的架构及其提供的插件机制进行了分析。 第五章详细论述了知识管理子系统的实现,并介绍了e z f a q 、e z f t p s e a r c h 两个模块的具体实现。 第六章对论文内容进行了总结,并对该系统的下一步发展进行了展望。 5 北京邮电火学工程硕上论文 第二章开源码的软件开发方法学 开放源代码的历史是与u n i x 、互联网自由软件以及黑客文化( h a c k e r c u l t u r e ) 一脉相承的。e r i cr a y m o n d 在1 9 9 7 年发表的大教堂与集市则是 开放源代码促进会( o p e ns o u r c ei n i t i a t i v e ,o s i ) 成立的直接起因之一匝1 。 1 9 9 8 年2 月9 日,b r u c ep e r e n s 发表了“开放源代码定义( o p e ns o u r c e d e f i n i t i o n ,o s d ) ”,并宣布了由他和e r i cr a y m o n d 等人创立的开放源代码促进 会的成立哺1 ,这标志着开放源代码运动的开始。经过1 0 余年的发展,开放源代 码已经获得了广泛的认可,大多数封闭软件( p r o p r i e t a r ys o f t w a r e ) 公司都开 始在开发中使用开放源代码,很多公司还将开放源代码组件加入到了他们的产品 当中。 本章对开源码的定义、开源码许可的对比分析、开源码与自由软件的关系、 以及开源码的开发方法学进行了全面论述。 2 1 开放源代码的定义 “开放源代码定义 的第一个版本派生自“d e b i a n 自由软件指导方针( d e b i a n f r e es o f t w a r eg u i d e l i n e s ) ,在1 9 9 8 年开放源代码促进会成立时经过修订并 去掉了针对d e b i a n 的部分内容而成。现行的“开放源代码定义是由开放源代 码促进会在2 0 0 4 年加入了第1 0 项条款后的版本。 “开放源代码定义 的内容是口1 :开放源代码不仅仅是指可以查看源代码, 开放源代码软件的发布条款必须遵从以下标准: 1 自由再发布 许可证不能限制任何团体以综合软件( 综合软件包含了多个不同来源的程 序) 中的一个部件的形式销售或散布此软件,许可证不得要求向这种销售索取版 权费用或其他费用。 2 源代码 程序必须包含源代码,必须允许以源代码形式或编译后的形式发布。如果产 品的某种形式在发布时没有包含源代码,则必须可以通过一种众所周知的方式以 合理的复制费用来获得源代码,在互联网上提供免费下载是一种较好的方式。源 代码必须以程序员可以方便的进行修改的形式提供。故意模糊源代码的做法是不 允许的。也不允许给出预处理器或者翻译器输出的中间结果。 6 北京邮电大学工程硕j :论文 3 衍生作品 许可证必须允许修改和衍生作品,也必须允许它们按照与原始软件许可证相 同的条款发布。 4 作者源代码的完整性 只有许可证允许与源代码一起发布补丁文件( 用于在程序创建时修改程序) , 它才可以限制源代码以修改的形式发布。许可证必须明确的允许发布由修改后的 源代码生成的软件。许可证可以要求衍生作品使用与原始软件不同的名称或版本 号。 5 不得歧视对待个人或群体 许可证不得歧视对待任何个人或群体。 6 不得歧视对待程序应用的领域 许可证不能限制任何人在某一特定领域使用程序。例如,它不能限制程序在 商业领域或遗传研究领域的应用。 7 许可证的发布 附于程序上的权利必须适用于程序再发布的所有接收者,而无需获得其他 组织的附加许可。 8 许可证不能专属于某个特定产品 附于程序上的权利不得依赖于该程序是否是某个特定软件发布的一部分。如 果程序从该发布中抽取出来,在该程序许可证下使用或者发布,那么该程序再发 布的所有接收者也具有了与原始软件发布的接收者相同的权利。 9 许可证不能限制其它软件 许可证不得对其它与许可软件一起发布的软件施加限制。例如,许可证不得 要求所有其它通过相同媒介发布的程序都必须是开放源代码软件。 1 0 许可证必须保持技术中立 许可证的任何条款都不能基于某一项特定的技术或接口样式。 2 2 开放源代码许可及其对比分析 2 2 1 开放源代码许可概述 根据版权法律赋予软件开发人员的权利,软件的作者是软件的唯一所有者, 可以全权控制代码如何复制、销售和重用。作者不能放弃版权提供的任何权利, 但可以根据作者自己的意愿选择转移或者许可任何现有的权利。术语“许可 ( 1 i c e n s e ) 本质上就是允许( p e r m i s s i o n ) ,版权持有者或许可方授予另一个 人或实体( 即被许可方) 以特定的权限来使用其作品协1 。 术语“许可 也通常指规定许可方与被许可方之间协定的( 法律) 文档。因 7 北京邮电大学丁程硕卜论文 此,软件许可( s o f t w a r el i c e n s e ) 是一个协定,指出软件可以如何被使用。例 如,一个专有软件许可可能允许用户运行程序,但不能查看源代码。 2 2 2a p a c h e 许可 a p a c h e 许可是著名的非盈利丌源组织a p a c h e 采用的协议,鼓励源代码共享 和尊重原作者的著作权,允许对源代码进行修改并可将修改结果作为开源或商业 软件再发布。 a p a c h e 许可是对商业应用友好的许可,使用者可以在需要的时候修改源代 码来满足需要并作为开源或商业产品再发布和销售。 2 2 3b s d 许可 b s d 许可是一个给予使用者很大自由的协议,使用者可以自由的使用、修改 源代码,也可以将修改后的代码作为开源或者专有软件再发布。 b s d 许可鼓励源代码共享,但需要尊重源代码作者的著作权。由于b s d 许可 允许使用者修改和重新发布源代码,也允许在其源代码基础上开发商业软件,因 此是对商业应用友好的协议。 2 2 4g p l 许可 在所有的开放源代码许可中,g p l 许可是使用最广泛、影响最大的。g p l 许 可由自由软件基金会的r i c h a r ds t a ll m a n 编写,它要求软件开发人员同意并向 其他软件开发人员提出一个契约:“您可以自由地使用该源代码,但是如果您修 改它并选择以任何形式发布您的修改,那么您必须在该契约的条款下将您的源代 码提供给其他人。 整个g p l 许可的内容很多,它的基本思想是: 被许可的软件以源代码的形式提供( 根据其他条款,也可能以其他形式 提供) 被许可的软件可以被用于任何目的 被许可的软件可以被自由的修改以及与其他软件组合,以创建派生的作 品 被许可的软件可以被重新发布 g p l 许可并不排斥商业应用,它唯一的要求是必须在再发布时提供软件的源 代码。但由于g p l 许可规定使用了g p l 源代码之后的所有衍生作品( 包括通过类 库引用方式使用g p l 库) 也必须使用g p l 许可再发布,也就是说一旦在软件中使 用了g p l 许可的源代码,那么整个软件都必须使用g p l 许可开放源代码,对于商 业应用来说就不像a p a c h e 许可或b s d 许可那么友好了。不过对于像l i n u x 或者 u y s q l 那样非常复杂的软件系统来说,用户自行从源代码开始构建可以运行的系 统是非常困难的,所以r e d h a t 、m y s q l 等公司即使在提供源代码的同时销售其软 北京邮电大学工程硕上论文 件,其软件产品仍然大有市场,用户选择他们的产品反而可以节省大量的用于构 建及配置系统的成本。 在2 0 0 7 年g p l 许可第3 版发布之前,通行的g p l 许可是在1 9 9 1 年发布的第 2 版。第3 版的g p l 许可主要是为了解决软件专利等新出现的问题而进行的修订。 由于第3 版g p l 许可对专利管理的修改,以及在处理数字版权管理( d r m ) 等问 题时要求厂商公布硬件设计,而引发了广泛的争议。目前g p l 许可第2 版和第3 版是并行的,也就是说我们可以自由选择使用g p l 许可第2 版或是第3 版。本节 对于g p l 许可的介绍主要是针对其第2 版的内容。 2 2 5l g p l 许可 l g p l 许可是g p l 许可的一个变种,是为类库使用设计的许可协议。与g p l 要求任何使用、修改或衍生自g p l 类库的的软件必须采用g p l 许可发布不同,l g p l 允许商业软件通过类库引用( 1 i n k ) 的方式使用l g p l 许可的类库而不需要将商 业软件开放源代码。这使得采用l g p l 许可的开放源代码可以被商业软件作为类 库引用并发布和销售。 l g p l 许可是为了得到更多的甚至是商业软件开发商的支持而提出的,使用 l 6 p l 许可发布的类库允许被用于封闭软件,因此可以吸引更多的用户。对于那 些很容易被其它软件和类库取代的开放源代码软件来说,使用l g p l 许可发布更 合适一些。 与g p l 许可相同,l g p l 许可也是第2 版和第3 版并行的。 2 2 6m i t 许可 m i t 许可是一个十分宽松的许可协议,作者只想保留版权声明,而无任何其 它的限制。也就是说,只需要在软件再发布中包含原始许可协议的声明即可。 m i t 许可摘要如下嘲: 权限被免费授予给任何获得该软件副本及相关文档文件( 简称为 “s o f t w a r e ) 的人,以无限制的处理s o f t w a r e ,包括没有限制使用、复制、修 改、合并、出版、发布、再次许可和或销售s o f t w a r e 副本的权利,并允许 s o f t w a r e 被提供给的人这样做,但必须遵守以下条件: 上面的版权注意和这个权限注意都应该包含在s o f t w a r e 的所有副本和固 有部分中。 2 3 开放源代码与自由软件的关系 开放源代码运动是在自由软件( f r e es o f t w a r e ) 运动的基础上发展起来的, 尽管很多人将开放源代码软件与自由软件视为相同,而且他们展示出来的效果也 9 北京邮i 乜人学工程硕j j 论文 很相似,但从本质上来说开放源代码与自由软件是不同的。自由软件运动的发起 人和精神领袖r i c h a r ds t a l l m a n 对开放源代码软件与自由软件的区别的观点如 下n : “绝大多数开放源代码软件都是自由软件,这两个名词几乎代表了相同类型 的软件。但是它们所代表的价值观是不同的。开放源代码是一种软件开发方法学, 而自由软件是一项政治运动。对于自由软件运动来说,自由软件是一种道德义务, 因为只有自由软件才尊重用户的自由。而开放源代码的哲学则是如何将软件做的 更好,它所关心的都是实践层面的问题。 2 4 开放源代码的开发方法学 正如r i c h a r ds t a l l m a n 所说,开放源代码是一套软件开发方法学,自从l i n u x 在二十世纪9 0 年代随着互联网的发展而聚集起一个庞大的l i n u x 开源社区并迅 速发展壮大以来,数以百万计的软件开发人员发起了数十万个开放源代码的软件 开发项目,其中不乏像l i n u x 、m y s q l 、f i r e f o x 、r u b yo nr a i l s 等这样重量级 的优秀作品,这些开放源代码的项目开发过程始终在实践和完善着开放源代码的 开发方法学。 开放源代码促进会的创始人之一e r i cr a y m o n d 在其1 9 9 7 年发表的大教堂 与市集( t h ec a t h e d r a la n dt h eb a z a a r ) 一书中,以l i n u x 系统及其自己主 持开发的f e t c h m

温馨提示

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

评论

0/150

提交评论