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

下载本文档

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

文档简介

第九章开源技术与开源软件 IT服务科学与工程 本章内容 开源软件与自由软件开源技术开源软件许可协议 开源技术与开源软件 开源软件与自由软件 开源软件 简单来说 开源软件 就是源代码开放的软件 1999年 EricS 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等 优点是方便阅读 不需要写非常多的类型相关的代码缺点是不方便调试 当命名不规范时会造成对代码的理解困难等 AJAX框架 AJAX是一种创建交互式网页应用的网页开发技术 使用XHTML CSS来表示信息 使用JavaScript操作DOM进行动态显示及交互 使用XML和XSLT进行数据交换及相关操作 使用XMLHttpRequest对象与Web服务器进行异步数据交换 使用JavaScript将所有的东西绑定在一起 优秀的AJAX框架BuffaloDojoPrototypejQueryDWR 版本控制 软件版本管理系统的功能对软件项目代码和文档进行统一管理 帮助项目开发小组成员进行有效的分工与协调 将团队成员对代码和文档做的修改进行统一汇总 保存历史修改记录 以便随时回馈到之前的版本之中 对开发过程中形成的软件的各个版本分支进行标识和管理 必要的权限和安全机制来保证版本存储库易于管理控制 为代码版本冲突提供有效解决方式 常见的存储库管理工具CVSSubversionGitClearCaseStarTeam 项目管理 软件缺陷与问题跟踪系统的功能支持多个项目管理 问题录入和反馈 问题查询和关键词检索 问题更新订阅 问题讨论面板 个人显示和E mail通知设定 集成版本控制工具 消息发布 统计分析 报表生成和输出 用户分级别管理 自定义的面板 系统设置 基于Web的软件缺陷管理工具MantisBugzillaScarabTeamworkTracGNATSITrackerTrackItBugFree 面向方面编程 AOP AOP打破对象层次的界限 将一些共通的关切点集中到一起 让程序的结构更加清晰 AOP为系统在面对某种特定情况时应采取何种行为提供 指示 当触发某个事件时 比如当某个方法调用发生的时候 指示 就会被自动执行 AOP框架的例子 AspectJSpringAOPJBossAOP 面向服务架构 SOA SOA实施中遇到的困难SOA的目标非常宏大 但是与之配套的标准规范制定的速度并没有跟上节奏 SOA的实施方法论和一般的软件开发实施的方法论不完全一样 而且尚处于不断的发展完善之中 人的因素尤其突出 缺乏高生产力的工具 SOA的开源工具服务基础设施 ApacheCXF Axis等BPEL引擎 ApacheODE ActiveBPEL等 典型开源组合LAMP 由Linux Apache MySQL和Perl PHP Python组成的开放的搭建动态网站的平台 每个组件都是自由或开源软件 LAMP已经与J2EE和 Net商业软件形成三足鼎立之势 受到整个IT界的关注虽然这些开放源代码程序本身并不是专门设计成同另几个程序一起工作的 但由于它们的廉价和普遍 这个组合开始流行 开源网站 SourceForge 开源网站 中国开源项目 开源技术与开源软件 开源软件许可协议 通用公共许可协议 通用公共许可协议 GPL 是在开源项目中使用最广泛的一种协议 它允许用户对软件进行合法的拷贝 传播和修改 这意味着你可以 随意复制随意传播随意修改收费传播 你必须将一份GNUGPL协议和你卖出的软件一起给买主 以让买主知道这种软件是可以通过其它途径免费获得的要想使用GPL保护下的代码 必须把自己的软件也置于GPL协议之下 次通用公共许可协议 次通用公共许可协议 LGPL 对作品的使用保留了更少的权利LGPL适用于一些类库 它允许这些类库能够被非GPL或非开源软件引用LGPL不要求其它程序也必须使用相同的协议才能使用这些代码程序 BSD许可协议 BSD协议有很多分支 相对其它协议 例如GPL 对软件的传播给予了更少的限制 无任何限制的允许以任何目的二次分发这种软件必须保留拷贝权的声明和协议里的软件权利放弃条款 MIT许可协议 MIT协议应该是在流行的开源协议中最简短的 使用最广泛的一种协议 协议内容如下 特此授权 任何人都可免费获得这个软件以及相关文档 theSoftware 的拷贝 可以无限制的使用这个软件 包括无限制的权利去使

温馨提示

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

评论

0/150

提交评论