开源技术与开源软件.ppt

  1. 1、本文档共36页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
开源技术与开源软件.ppt

IT服务科学与工程 第九章 开源技术与开源软件 本章内容 开源软件与自由软件 开源技术 开源软件许可协议 开源技术与开源软件 开源软件与自由软件 开源软件 简单来说,“开源软件”就是源代码开放的软件。 1999 年,Eric S. Raymond 在自由软件的范畴下提出了开源软件的概念,并出版了《大教堂和集市》一书,这是开源软件发展的标志事件。 著名开源项目网站SourceForge 在1999 年还只有数百个开源项目,到2008 年初,其开源项目数已经超过17 万个,几乎覆盖软件应用的所有领域。 开源软件的意义 对普通用户来说 开不开源其实意义不是很大,他们更在乎收不收费 由于开源软件大多都是免费下载的,所以一提起开源软件,很多人的第一反应就是免费软件。 对于商业用户来说 可以减少开发周期,因为源代码开放了,只需要稍做修改就可以嵌入到产品中去; 可以降低成本; 但免费午餐不一定就不好吃(也有些开源软件需要收费,但价格都比较低廉)。 开源软件成功的原因 开源社区的协同模式改变和颠覆了软件业的工作方式,可以创造出高质量的软件产品。 商业模式得到了验证:RedHat、MySQL、Asterisk 都是非常成功的开源公司。 真正释放了软件开发人员的创造力和生产力:全世界有上百万的程序员在参与开源软件的产品开发。 国际软件巨头也纷纷加入开源阵营:IBM 投资10 亿美元支持Linux,Sun 也斥巨资收购MySQL… 自由软件 自由软件是指用户运行、拷贝、研究、改进软件的自由,更准确地说,是指三种层次的自由: 研究程序运行机制,并根据你自己的需要修改它的自由; 重新分发拷贝,以使其他人能够共享软件的自由; 改进程序,为使他人受益而散发它的自由。 自由软件的精神领袖 查德·斯托曼 他被人称为‘最后的真正黑客’,他认为一个好的软件,便该自由自在的让人取用,而不应该拿来做为相互倾轧、剥削的工具。 他起草了GNU通用公共许可证来保障自由软件的自由,并创办了自由软件基金会来贯彻他的理念。 开源软件 vs 自由软件 严格地说来,开源软件与自由软件是两个不同的概念,只要符合开源软件定义的软件就能被称为开放源代码软件。 自由软件是一个比开源软件更严格的概念,因此所有自由软件都是开放源代码的,但不是所有的开源软件都能被称为“自由”。 但在现实上,绝大多数开源软件也都符合自由软件的定义。 开源软件的优势 较低的成本 大多数开源软件是免费下载的,软件公司并不靠出售软件来取得利润 软件后期的维护和支持是需要付费的 开源带来的可靠性、耐久性和安全性 任何人都可以对代码进行检察并发现其中的安全隐患,任何人都可以修改代码中的问题,使用者不需要等待软件提供商对软件bug进行修正 成熟的、并且通过长时间同级评审的开源软件是非常可靠的 开放标准和摆脱供应商依赖 开放标准的用户,不论是个人还是政府,都拥有在不同的软件、平台和供应商之中选择的灵活性和自由 私有的、保密的标准使得用户只能使用一个供应商的软件,并且因为他们的数据都存储为私有格式,转换代价高昂而在此后继续受供应商的摆布 开源软件面临的挑战 知识产权问题 对自由/开源软件性质和特征的界定 对开源软件各类知识产权保护法律规定的强度和范围的理解 对各种开源许可协议的内容或条款以及其解释的认知 对自由软件运动发展中迄今尚存的一些争议问题或在法律上出现的灰色地带在执行中的处置等 管理和维护问题 与使用商业软件相比,使用开源软件往往会带来一些潜在的成本 使用开源软件的学习曲线比较长 管理方面的成本也会增加,因为使用开源软件要求系统管理人员具有多种技能:熟悉命令行接口、精通脚本语言、能够编写设备驱动程序等等 没有完善的技术支持,即使有也需要额外的费用 开源技术与开源软件 开源技术 WEB框架 目前流行的Web 框架不再仅是一个MVC 实现,而是几乎可以满足日常工作中的大多数需求的“一站式”框架,上至表现层,下至持久层,涉及了企业级应用中的方方面面。 这些“一站式”框架可以很方便地同其他框架进行整合,比如Struts、Spring 与Hibernate 的组合就很不错。 目前使用频率比较高的WEB框架:Struts、WebWork、Spring 和Seam。 编程语言 静态语言:数据类型在编译期间检查,也就是说在写程序时要声明所有变量的数据类型,如C、C++、C# 和Java等。 优点在于结构规范、便于调试、类型安全 缺点是为此需要写更多类型相关的代码,最终导致代码不便于阅读。 动态语言:在运行期间才去做数据类型检查的语言,也就是说,在用动态语言编程时,不需要给任何变量指定数据类型,如Python、Ruby 和Groovy等。 优点是方便阅读,不需要写非常多的类型相关的代码 缺点是不方便调试,当命名不规范时会造成对代码的理解

文档评论(0)

蝶恋花 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档