《开源软件报告》由会员分享,可在线阅读,更多相关《开源软件报告(66页珍藏版)》请在金锄头文库上搜索。
1、2019/9/22,开源软件技术及发展趋势专题分析报告,报告内容,开源软件简介 开源软件核心技术 企业开发和应用开源软件现状调查 开源软件存在问题分析及解决方案 开源软件发展趋势分析,2019/9/22,开源软件简介,定义 特点 发展历程 开源软件与闭源软件,定义,开源软件促进会OSI(Open Source Initiative)对开源软件有着明确的定义,业界公认只有符合这个定义的软件才能被称作为开放源代码软件,简称开源软件(Open Source Software)。OSI对开源软件的定义一共有十个条款,2019/9/22,定义,1.自由再发布(Free Redistribution) 2
2、.源代码(Source Code) 3.派生作品(Derived Works) 4.作者源代码的完整性(Integrity of The AuthorSource Code) 5.不能歧视任何个人或团体(No Discrimination Against Persons or Groups),2019/9/22,定义,6.不能歧视任何领域(No Discrimination Against Fields of Endeavor) 7.许可证的发布(Distribution of License) 8.许可证不能只针对某个产品(License Must Not Be Specific to a
3、Product) 9.许可证不能约束其他软件(License Must Not Restrict Other Software) 10.许可证必须独立于技术(License Must Be Technology-Neutral),2019/9/22,OSI实际上是在定义一种软件许可证,即授权条款。,特点,高质量 免费(零许可证费) 开放和自由 灵活可定制 公开透明 良好的学习平台,2019/9/22,发展历程,2019/9/22,发展历程,2019/9/22,发展历程,2019/9/22,开源软件和闭源软件,2019/9/22,开源软件核心技术,Collective Intelligence
4、开源社区 开源产品之语言 开源产品之开发平台 开源产品之框架和库 开源产品之服务器软件 开源产品之开发工具 开源产品之桌面应用,Collective Intelligence,可翻译为群体智慧、集体智慧、集体智能 多种定义 George P r:通过分化与整合、竞争与协作的创新机制,人类社区朝更高的秩序复杂性以及和谐方向演化的能力 维基百科:是一种共享的或者群体的智能, 它是从许多个体的合作与竞争中涌现出来的。 我们的总结:是由组成群体的个人贡献出自己的知识、技能、经验,通过个体间的协作、灵感互动、相互启迪等共享机制,产生的优于任何个人的智慧。,2019/9/22,群体智慧特征,多样性 群体里
5、的每个人都有一些独占信息; 独立性 群体内成员不会因为其他人人的意见而改变自己的意见; 民主性 成员的决策行为不会受到外在压力的强迫,而整个群体的决策则是由所有成员的决策汇聚而成。,2019/9/22,群体智慧作用,实现大规模的协作以解决复杂问题。 注重用户的广泛参与,充分利用群体智慧解决复杂问题。 大规模协作充分调动和利用个体的智慧, 集思广益, 极大地提高了解决问题的效率, 降低了知识生产和创新的成本, 使得各种复杂棘手的问题能够迎刃而解。 开源社区的各个成员,利用自己的知识与能力,对开源软件进行开发和利用,利用集体的智慧推动软件的更新和发展。,2019/9/22,开源社区,社区是开源运动
6、的重要环节 开源社区又称开放源代码社区,一般由拥有共同兴趣爱好的人所组成,根据相应的开源软件许可证协议公布软件源代码的网络平台,同时也为网络成员提供一个自由学习交流的空间。由于开放源码软件主要被散布在全世界的编程者所开发,开源社区就成了他们沟通交流的必要途径,因此开源社区在推动开源软件发展的过程中起着巨大的作用。,开源社区分类,社区基础设施,社区基础设施(续),项目托管网站,项目托管网站(续),知识共享网站,知识共享网站(续),开源产品之语言,开源产品之开发平台,开源产品之开发平台(续),开源产品之框架和库,开源产品之框架和库(续),开源产品之服务器软件,开源产品之服务器软件(续),开源产品之
7、服务器软件(续),开源产品之开发工具,开源产品之开发工具(续),开源产品之桌面应用,开源产品之桌面应用,开源软件应用现状调查,开源软件分类分析图表 开源软件应用调查表,开源软件应用现状调查,2019/9/22,开源软件分类柱状图,2019/9/22,开源软件应用现状调查,开源软件分类饼图,2019/9/22,开源软件应用现状调查,开源软件编程语言柱状图,2019/9/22,开源软件应用现状调查,开源软件编程语言饼图,2019/9/22,系统软件应用现状调查,2019/9/22,应用软件应用现状调查,开源软件存在问题分析及解决方案,安全问题 安全问题解决策略 开源许可证 知识产权问题 知识产权问
8、题解决策略,2019/9/22,安全问题,开源软件的检查机制难以严格执行 检查者的技能不高 缺乏专业安全测试 软件维护成难题 系统的安全性依赖于系统的具体实现,2019/9/22,安全问题解决策略,提供完整的开源软件文档 对开源系统进行全方位的安全测试 软件升级需主动及时 清除多余源代码 增加额外的安全方式,2019/9/22,开源许可证,许可证即授权条款。开源许可证是对开源软件的散布授权条款,即若软件再散布,是否需要承认发起人的著作权和所有参与人的贡献。目前,国际上通行的开源许可证数量繁多,但主要是的以下三种 自由软件许可证GPL 学院开放许可证BSD 商业开放许可证,2019/9/22,知
9、识产权问题,软件的源代码、目标代码都享有版权法保护 是否公开源代码取决于软件权利人的选择 开源软件开发过程中的版权归属问题 GPL许可证对开源软件商业化的阻碍 BSD许可证模式下的开源软件商业化问题,2019/9/22,知识产权解决策略,充分了解主要开源软件许可证内容,严格遵守其条款规定 谨慎使用开源软件的商标和标识 建立核心软件专利库,为开源软件开发者提供指引 提高开源软件企业知识产权保护意识 适时可考虑建立我国自己的开源软件许可证,2019/9/22,开源软件发展趋势分析,典型开源产品发展趋势分析 开源软件未来发展趋势展望,开源软件发展趋势分析,由于开源软件数目众多,种类繁杂,整体统计调查
10、的难度较大,故本次调查报告采用抽样统计的方法,选取开源项目中有代表性的几个项目进行趋势说明与分析。,Android,Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发,Android发展历程,Android 1.0 Astro,Android 1.5 Cupcake,Android 1.6 Donut,Android 2.0 Eclair,Android 2.2 Froyo,Android发展历程,Android 2.3 Gingerbread,Android 3.0 Honeycomb,Andr
11、oid 4.0 Ice Cream Sandwich,Android 4.1 Jelly Bean,Android 4.4 KitKat,Apache软件基金会,Apache软件基金会(也就是Apache Software Foundation,简称为ASF),是专门为支持开源软件项目而办的一个非盈利性组织。在它所支持的Apache项目与子项目中,所发行的软件产品都遵循Apache许可证(Apache License)。 目前ASF运营着近150个顶级项目,以及与这些项目相关的子项目。,Struts,Struts 是Apache软件基金会(ASF)赞助的一个开源项目。它最初是Jakarta项目
12、中的一个子项目,并在2004年3月成为ASF的顶级项目。它通过采用JavaServlet/JSP技术,实现了基于Java EEWeb应用的MVC设计模式的应用框架,是MVC经典设计模式中的一个经典产品。,Struts2,Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。其全新的Struts 2的体系结构与Struts 1的体系结构差别巨大。,Struts1到Struts2,Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开
13、,所以Struts 2可以理解为WebWork的更新产品。虽然从Struts 1到Struts 2有着太大的变化,但是相对于WebWork,Struts 2的变化很小。,Struts1历年更新,Struts2历年更新,Maven,Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。,Maven历年更新,Tomcat,Tomcat是ASF的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tom
14、cat 5支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。目前最新版本是8.0。,Tomcat更新历程,Tomcat更新历程(续),开源软件未来发展趋势展望,趋势一:软件标准化 固话已有的最佳实践,避免不同厂商发布的开源软件产品出现基本功能的缺失和不必要的分化; 代表用户需求,引导开源软件的开发; 指导和协调开发者,避免重复性的开发造成新的不兼容。 趋势二:开源软件与商业软件的结合 技术层面 商业模式层面,开源软件未来发展趋势展望(续),趋势三:推动大数据发展 趋势四:与云计算技术共发展 趋势五:开源软件开发人员素质的提高,