开源技术与开源软.ppt_第1页
开源技术与开源软.ppt_第2页
开源技术与开源软.ppt_第3页
开源技术与开源软.ppt_第4页
开源技术与开源软.ppt_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

* * c 第九章 开源技术与开源软件 IT服务科学与工程 your family site your site here 本章内容 v开源软件与自由软件 v开源技术 v开源软件许可协议 * * c开源技术与开源软件 开源软件与自由软件 your family site your site here 开源软件 v简单来说,“开源软件”就是源代码开放的软件。 n1999 年,Eric S. Raymond 在自由软件的范畴下 提出了开源软件的概念,并出版了大教堂和集市 一书,这是开源软件发展的标志事件。 n著名开源项目网站SourceForge 在1999 年还只有 数百个开源项目,到2008 年初,其开源项目数已经 超过17 万个,几乎覆盖软件应用的所有领域。 your family site your site here 开源软件的意义 v对普通用户来说 n开不开源其实意义不是很大,他们更在乎收不收费 n由于开源软件大多都是免费下载的,所以一提起开源 软件,很多人的第一反应就是免费软件。 v对于商业用户来说 n可以减少开发周期,因为源代码开放了,只需要稍做 修改就可以嵌入到产品中去; n可以降低成本; n但免费午餐不一定就不好吃(也有些开源软件需要收 费,但价格都比较低廉)。 your family site your site here 开源软件成功的原因 v开源社区的协同模式改变和颠覆了软件业的工作 方式,可以创造出高质量的软件产品。 n商业模式得到了验证:RedHat、MySQL、 Asterisk 都是非常成功的开源公司。 n真正释放了软件开发人员的创造力和生产力:全世界 有上百万的程序员在参与开源软件的产品开发。 n国际软件巨头也纷纷加入开源阵营:IBM 投资10 亿 美元支持Linux,Sun 也斥巨资收购MySQL your family site your site here 自由软件 v自由软件是指用户运行、拷贝、研究、改进软件 的自由,更准确地说,是指三种层次的自由: n研究程序运行机制,并根据你自己的需要修改它的自 由; n重新分发拷贝,以使其他人能够共享软件的自由; n改进程序,为使他人受益而散发它的自由。 your family site your site here 自由软件的精神领袖 v查德斯托曼 n他被人称为最后的真正黑客,他认为一个好的软件, 便该自由自在的让人取用,而不应该拿来做为相互倾 轧、剥削的工具。 n他起草了GNU通用公共许可证来保障自由软件的自由 ,并创办了自由软件基金会来贯彻他的理念。 your family site your site here 开源软件 vs 自由软件 v严格地说来,开源软件与自由软件是两个不同的 概念,只要符合开源软件定义的软件就能被称为 开放源代码软件。 n自由软件是一个比开源软件更严格的概念,因此所有 自由软件都是开放源代码的,但不是所有的开源软件 都能被称为“自由”。 n但在现实上,绝大多数开源软件也都符合自由软件的 定义。 your family site your site here 开源软件的优势 v较低的成本 n大多数开源软件是免费下载的,软件公司并不靠出售 软件来取得利润 n软件后期的维护和支持是需要付费的 your family site your site here v开源带来的可靠性、耐久性和安全性 n任何人都可以对代码进行检察并发现其中的安全隐患 ,任何人都可以修改代码中的问题,使用者不需要等 待软件提供商对软件bug进行修正 n成熟的、并且通过长时间同级评审的开源软件是非常 可靠的 your family site your site here v开放标准和摆脱供应商依赖 n开放标准的用户,不论是个人还是政府,都拥有在不 同的软件、平台和供应商之中选择的灵活性和自由 n私有的、保密的标准使得用户只能使用一个供应商的 软件,并且因为他们的数据都存储为私有格式,转换 代价高昂而在此后继续受供应商的摆布 your family site your site here 开源软件面临的挑战 v知识产权问题 n对自由/开源软件性质和特征的界定 n对开源软件各类知识产权保护法律规定的强度和范围 的理解 n对各种开源许可协议的内容或条款以及其解释的认知 n对自由软件运动发展中迄今尚存的一些争议问题或在 法律上出现的灰色地带在执行中的处置等 your family site your site here v管理和维护问题 n与使用商业软件相比,使用开源软件往往会带来一些 潜在的成本 n使用开源软件的学习曲线比较长 n管理方面的成本也会增加,因为使用开源软件要求系 统管理人员具有多种技能:熟悉命令行接口、精通脚 本语言、能够编写设备驱动程序等等 n没有完善的技术支持,即使有也需要额外的费用 * * c开源技术与开源软件 开源技术 your family site your site here WEB框架 v目前流行的Web 框架不再仅是一个MVC 实现, 而是几乎可以满足日常工作中的大多数需求的“一 站式”框架,上至表现层,下至持久层,涉及了企 业级应用中的方方面面。 v这些“一站式”框架可以很方便地同其他框架进行 整合,比如Struts、Spring 与Hibernate 的 组合就很不错。 v目前使用频率比较高的WEB框架:Struts、 WebWork、Spring 和Seam。 your family site your site here 编程语言 v静态语言:数据类型在编译期间检查,也就是说 在写程序时要声明所有变量的数据类型,如C、 C+、C# 和Java等。 n优点在于结构规范、便于调试、类型安全 n缺点是为此需要写更多类型相关的代码,最终导致代 码不便于阅读。 v动态语言:在运行期间才去做数据类型检查的语 言,也就是说,在用动态语言编程时,不需要给 任何变量指定数据类型,如Python、Ruby 和 Groovy等。 n优点是方便阅读,不需要写非常多的类型相关的代码 n缺点是不方便调试,当命名不规范时会造成对代码的 理解困难等。 your family site your site here AJAX 框架 vAJAX是一种创建交互式网页应用的网页开发技 术。 n使用XHTML+CSS来表示信息; n使用JavaScript操作DOM进行动态显示及交互; n使用XML和XSLT进行数据交换及相关操作; n使用XMLHttpRequest对象与Web服务器进行异步 数据交换; n使用JavaScript将所有的东西绑定在一起。 your family site your site here v优秀的AJAX框架 nBuffalo nDojo nPrototype njQuery nDWR your family site your site here 版本控制 v软件版本管理系统的功能 n对软件项目代码和文档进行统一管理; n帮助项目开发小组成员进行有效的分工与协调; n将团队成员对代码和文档做的修改进行统一汇总; n保存历史修改记录,以便随时回馈到之前的版本之中; n对开发过程中形成的软件的各个版本分支进行标识和管 理; n必要的权限和安全机制来保证版本存储库易于管理控制 ; n为代码版本冲突提供有效解决方式。 your family site your site here v常见的存储库管理工具 nCVS nSubversion nGit nClearCase nStarTeam your family site your site here 项目管理 v软件缺陷与问题跟踪系统的功能 n支持多个项目管理; n问题录入和反馈; n问题查询和关键词检索; n问题更新订阅; n问题讨论面板; n个人显示和E-mail通知设定; n集成版本控制工具; n消息发布; n统计分析、报表生成和输出; n用户分级别管理; n自定义的面板; n系统设置。 your family site your site here v基于Web 的软件缺陷管理工具 nMantis nBugzilla nScarab nTeamwork nTrac nGNATS nITracker nTrackIt nBugFree your family site your site here 面向方面编程(AOP) vAOP打破对象层次的界限,将一些共通的关切点 集中到一起,让程序的结构更加清晰。 nAOP 为系统在面对某种特定情况时应采取何种行为提 供“指示” n当触发某个事件时,比如当某个方法调用发生的时候 ,“指示”就会被自动执行。 your family site your site here vAOP框架的例子: nAspectJ nSpring AOP nJBoss AOP your family site your site here 面向服务架构(SOA) vSOA实施中遇到的困难 nSOA的目标非常宏大,但是与之配套的标准规范制定 的速度并没有跟上节奏; nSOA的实施方法论和一般的软件开发实施的方法论不 完全一样,而且尚处于不断的发展完善之中; n人的因素尤其突出; n缺乏高生产力的工具。 your family site your site here vSOA的开源工具 n服务务基础设础设 施:Apache CXF、Axis等 nBPEL引擎:Apache ODE、ActiveBPEL等 your family site your site here 典型开源组合LAMP v由Linux、Apache、MySQL和 Perl/PHP/Python组成的开放的搭建动态网站 的平台,每个组件都是自由或开源软件。 nLAMP已经与J2EE和.Net商业软件形成三足鼎立之势 ,受到整个IT界的关注 n虽然这些开放源代码程序本身并不是专门设计成同另几 个程序一起工作的,但由于它们的廉价和普遍,这个组 合开始流行 your family site your site here 开源网站:SourceForge your family site your site here 开源网站:中国开源项目 * * c开源技术与开源软件 开源软件许可协议 your family site your site here 通用公共许可协议 v通用公共许可协议 (GPL) 是在开源项目中使用 最广泛的一种协议,它允许用户对软件进行合法 的拷贝,传播和修改。这意味着你可以: n随意复制 n随意传播 n随意修改 n收费传播:你必须将一份GNU GPL 协议和你卖出的 软件一起给买主,以让买主知道这种软件是可以通过 其它途径免费获得的 n要想使用 GPL 保护下的代码,必须把自己的软件也置 于 GPL 协议之下 your family site your site here 次通用公共许可协议 v次通用公共许可协议 (LGPL) 对作品的使用保留 了更少的权利 nLGPL 适用于一些类库,它允许这些类库能够被非 GPL或非开源软件引用 nLGPL 不要求其它程序也必须使用相同的协议才能使 用这些代码程序 your family site your site here BSD 许可协议 vBSD 协议有很多分支,相对其它协议(例如 GPL),对软件的传播给予了更少的限制。 n无任何限制的允许以任何目的二次分发这种软件 n必须保留拷贝权的声明和协议里的软件权利放弃条款 your family site your site here MIT 许可协议 vMIT 协议应该是在流行的开源协议中最简短的、 使用最广泛的一种协议。协议内容如下: n特此授权,任何人都可免费获得这个软件以及相关文 档(the Software)的拷贝,可以无限制

温馨提示

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

最新文档

评论

0/150

提交评论