9.开源技术与开源软件

上传人:第*** 文档编号:49201962 上传时间:2018-07-25 格式:PPT 页数:36 大小:900KB
返回 下载 相关 举报
9.开源技术与开源软件_第1页
第1页 / 共36页
9.开源技术与开源软件_第2页
第2页 / 共36页
9.开源技术与开源软件_第3页
第3页 / 共36页
9.开源技术与开源软件_第4页
第4页 / 共36页
9.开源技术与开源软件_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《9.开源技术与开源软件》由会员分享,可在线阅读,更多相关《9.开源技术与开源软件(36页珍藏版)》请在金锄头文库上搜索。

1、* *c第九章 开源技术与开源软件IT服务科学与工程 your family siteyour site here本章内容v开源软件与自由软件 v开源技术 v开源软件许可协议* *c开源技术与开源软件开源软件与自由软件your family siteyour site here开源软件v简单来说,“开源软件”就是源代码开放的软件。n1999 年,Eric S. Raymond 在自由软件的范畴下 提出了开源软件的概念,并出版了大教堂和集市 一书,这是开源软件发展的标志事件。n著名开源项目网站SourceForge 在1999 年还只有 数百个开源项目,到2008 年初,其开源项目数已经 超过1

2、7 万个,几乎覆盖软件应用的所有领域。your family siteyour site here开源软件的意义v对普通用户来说n开不开源其实意义不是很大,他们更在乎收不收费n由于开源软件大多都是免费下载的,所以一提起开源 软件,很多人的第一反应就是免费软件。 v对于商业用户来说n可以减少开发周期,因为源代码开放了,只需要稍做 修改就可以嵌入到产品中去;n可以降低成本;n但免费午餐不一定就不好吃(也有些开源软件需要收 费,但价格都比较低廉)。your family siteyour site here开源软件成功的原因v开源社区的协同模式改变和颠覆了软件业的工作 方式,可以创造出高质量的软件产

3、品。n商业模式得到了验证:RedHat、MySQL、 Asterisk 都是非常成功的开源公司。n真正释放了软件开发人员的创造力和生产力:全世界 有上百万的程序员在参与开源软件的产品开发。n国际软件巨头也纷纷加入开源阵营:IBM 投资10 亿 美元支持Linux,Sun 也斥巨资收购MySQLyour family siteyour site here自由软件v自由软件是指用户运行、拷贝、研究、改进软件 的自由,更准确地说,是指三种层次的自由:n研究程序运行机制,并根据你自己的需要修改它的自 由;n重新分发拷贝,以使其他人能够共享软件的自由;n改进程序,为使他人受益而散发它的自由。your f

4、amily siteyour site here自由软件的精神领袖v查德斯托曼n他被人称为最后的真正黑客,他认为一个好的软件, 便该自由自在的让人取用,而不应该拿来做为相互倾 轧、剥削的工具。n他起草了GNU通用公共许可证来保障自由软件的自由 ,并创办了自由软件基金会来贯彻他的理念。 your family siteyour site here开源软件 vs 自由软件v严格地说来,开源软件与自由软件是两个不同的 概念,只要符合开源软件定义的软件就能被称为 开放源代码软件。n自由软件是一个比开源软件更严格的概念,因此所有 自由软件都是开放源代码的,但不是所有的开源软件 都能被称为“自由”。n但在

5、现实上,绝大多数开源软件也都符合自由软件的 定义。your family siteyour site here开源软件的优势v较低的成本n大多数开源软件是免费下载的,软件公司并不靠出售 软件来取得利润n软件后期的维护和支持是需要付费的your family siteyour site herev开源带来的可靠性、耐久性和安全性n任何人都可以对代码进行检察并发现其中的安全隐患 ,任何人都可以修改代码中的问题,使用者不需要等 待软件提供商对软件bug进行修正n成熟的、并且通过长时间同级评审的开源软件是非常 可靠的your family siteyour site herev开放标准和摆脱供应商依赖

6、n开放标准的用户,不论是个人还是政府,都拥有在不 同的软件、平台和供应商之中选择的灵活性和自由n私有的、保密的标准使得用户只能使用一个供应商的 软件,并且因为他们的数据都存储为私有格式,转换 代价高昂而在此后继续受供应商的摆布your family siteyour site here开源软件面临的挑战v知识产权问题n对自由/开源软件性质和特征的界定n对开源软件各类知识产权保护法律规定的强度和范围 的理解n对各种开源许可协议的内容或条款以及其解释的认知n对自由软件运动发展中迄今尚存的一些争议问题或在 法律上出现的灰色地带在执行中的处置等your family siteyour site her

7、ev管理和维护问题n与使用商业软件相比,使用开源软件往往会带来一些 潜在的成本n使用开源软件的学习曲线比较长n管理方面的成本也会增加,因为使用开源软件要求系 统管理人员具有多种技能:熟悉命令行接口、精通脚 本语言、能够编写设备驱动程序等等n没有完善的技术支持,即使有也需要额外的费用* *c开源技术与开源软件开源技术your family siteyour site hereWEB框架v目前流行的Web 框架不再仅是一个MVC 实现, 而是几乎可以满足日常工作中的大多数需求的“一 站式”框架,上至表现层,下至持久层,涉及了企 业级应用中的方方面面。 v这些“一站式”框架可以很方便地同其他框架进行

8、 整合,比如Struts、Spring 与Hibernate 的 组合就很不错。 v目前使用频率比较高的WEB框架:Struts、 WebWork、Spring 和Seam。your family siteyour site here编程语言v静态语言:数据类型在编译期间检查,也就是说 在写程序时要声明所有变量的数据类型,如C、 C+、C# 和Java等。n优点在于结构规范、便于调试、类型安全n缺点是为此需要写更多类型相关的代码,最终导致代 码不便于阅读。 v动态语言:在运行期间才去做数据类型检查的语 言,也就是说,在用动态语言编程时,不需要给 任何变量指定数据类型,如Python、Ruby

9、和 Groovy等。n优点是方便阅读,不需要写非常多的类型相关的代码n缺点是不方便调试,当命名不规范时会造成对代码的 理解困难等。your family siteyour site hereAJAX 框架vAJAX是一种创建交互式网页应用的网页开发技 术。n使用XHTML+CSS来表示信息;n使用JavaScript操作DOM进行动态显示及交互;n使用XML和XSLT进行数据交换及相关操作;n使用XMLHttpRequest对象与Web服务器进行异步 数据交换;n使用JavaScript将所有的东西绑定在一起。your family siteyour site herev优秀的AJAX框架nB

10、uffalonDojonPrototypenjQuerynDWRyour family siteyour site here版本控制v软件版本管理系统的功能n对软件项目代码和文档进行统一管理;n帮助项目开发小组成员进行有效的分工与协调;n将团队成员对代码和文档做的修改进行统一汇总;n保存历史修改记录,以便随时回馈到之前的版本之中;n对开发过程中形成的软件的各个版本分支进行标识和管 理;n必要的权限和安全机制来保证版本存储库易于管理控制 ;n为代码版本冲突提供有效解决方式。your family siteyour site herev常见的存储库管理工具nCVSnSubversionnGitnC

11、learCasenStarTeamyour family siteyour site here项目管理v软件缺陷与问题跟踪系统的功能n支持多个项目管理;n问题录入和反馈;n问题查询和关键词检索;n问题更新订阅;n问题讨论面板;n个人显示和E-mail通知设定;n集成版本控制工具;n消息发布;n统计分析、报表生成和输出;n用户分级别管理;n自定义的面板;n系统设置。your family siteyour site herev基于Web 的软件缺陷管理工具nMantisnBugzillanScarabnTeamworknTracnGNATSnITrackernTrackItnBugFreeyou

12、r family siteyour site here面向方面编程(AOP)vAOP打破对象层次的界限,将一些共通的关切点 集中到一起,让程序的结构更加清晰。nAOP 为系统在面对某种特定情况时应采取何种行为提 供“指示”n当触发某个事件时,比如当某个方法调用发生的时候 ,“指示”就会被自动执行。your family siteyour site herevAOP框架的例子:nAspectJnSpring AOPnJBoss AOPyour family siteyour site here面向服务架构(SOA)vSOA实施中遇到的困难nSOA的目标非常宏大,但是与之配套的标准规范制定 的速度

13、并没有跟上节奏;nSOA的实施方法论和一般的软件开发实施的方法论不 完全一样,而且尚处于不断的发展完善之中;n人的因素尤其突出;n缺乏高生产力的工具。your family siteyour site herevSOA的开源工具n服务务基础设础设 施:Apache CXF、Axis等nBPEL引擎:Apache ODE、ActiveBPEL等your family siteyour site here典型开源组合LAMPv由Linux、Apache、MySQL和 Perl/PHP/Python组成的开放的搭建动态网站 的平台,每个组件都是自由或开源软件。nLAMP已经与J2EE和.Net商业软

14、件形成三足鼎立之势 ,受到整个IT界的关注n虽然这些开放源代码程序本身并不是专门设计成同另几 个程序一起工作的,但由于它们的廉价和普遍,这个组 合开始流行your family siteyour site here开源网站:SourceForgeyour family siteyour site here开源网站:中国开源项目* *c开源技术与开源软件开源软件许可协议 your family siteyour site here通用公共许可协议v通用公共许可协议 (GPL) 是在开源项目中使用 最广泛的一种协议,它允许用户对软件进行合法 的拷贝,传播和修改。这意味着你可以:n随意复制n随意传播

15、n随意修改n收费传播:你必须将一份GNU GPL 协议和你卖出的 软件一起给买主,以让买主知道这种软件是可以通过 其它途径免费获得的n要想使用 GPL 保护下的代码,必须把自己的软件也置 于 GPL 协议之下your family siteyour site here次通用公共许可协议v次通用公共许可协议 (LGPL) 对作品的使用保留 了更少的权利nLGPL 适用于一些类库,它允许这些类库能够被非 GPL或非开源软件引用nLGPL 不要求其它程序也必须使用相同的协议才能使 用这些代码程序your family siteyour site hereBSD 许可协议vBSD 协议有很多分支,相对

16、其它协议(例如 GPL),对软件的传播给予了更少的限制。n无任何限制的允许以任何目的二次分发这种软件n必须保留拷贝权的声明和协议里的软件权利放弃条款your family siteyour site hereMIT 许可协议vMIT 协议应该是在流行的开源协议中最简短的、 使用最广泛的一种协议。协议内容如下:n特此授权,任何人都可免费获得这个软件以及相关文 档(the Software)的拷贝,可以无限制的使用这 个软件,包括无限制的权利去使用、复制、修改、合 并、发布、附加从属协议,以及/或者出售软件的拷贝 , 同时,为了让软件的提供者有权利做到这些,下面 的条件必须遵守:n上面的拷贝权声明和许可声明必须包含在所有的这个 软件拷贝里和实际分署部分里。your family siteyour site hereApache 许可协议vApache 许可协议授予了用户大量的权利,这些 权利可以应用于拷贝权,也可以用于专利权。n权利永恒 n权利无疆界 n授权无需付费和支付酬劳 n权利不排他 n权利不可变更

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 工程造价

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号