




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
开源技术及应用Lecture-IV-使用开源软件许光全计算机科学与技术学院1感谢你的观赏2019-8-14开源技术及应用Lecture-IV-使用开源软件1感谢你的观目录正确使用开源软件语言和平台框架和库服务器软件开发工具桌面应用2感谢你的观赏2019-8-14目录正确使用开源软件2感谢你的观赏2019-8-14开源软件管理体制开源软件的应用战略哪些系统适宜采用开源软件:很多企业用户在非关键业务系统使用开源软件,但也有很多用在核心业务系统的哪些开源软件是允许引入:许可证类型界定可以与开源社区进行哪些方式的协作。引入流程参考商业软件引入根据开源软件的特点进行改造,特别是评估和批准步骤:加强对法律风险、软件成熟度和服务的考察,以便确定“使用该软件是否违法”“质量如何”“出了问题怎么办”单纯使用开源软件的风险小,但要在自己产品中包含一个开源软件则必须谨慎3感谢你的观赏2019-8-14开源软件管理体制开源软件的应用战略3感谢你的观赏2019-8开源软件管理体制日常管理最佳实践:建立一个中心目录,为每个已批准的开源软件建立档案,描述其重要信息:网站,下载地址,被批准的用途,当前部署情况,支持服务信息,内部联系人等,最好能够提供内部下载,保证版本的纯正。配套系统组织架构审计机制员工培训:开源并非“为所欲为”很多开源企业用户缺失管理体制:整理现状并对使用的开源软件重新评估和批准。4感谢你的观赏2019-8-14开源软件管理体制日常管理4感谢你的观赏2019-8-14开源软件之法律风险开源并非“为所欲为”:误导的现状著作权(著作权法):除公共领域外,著作权所有者通过软件许可证将部分权利授权给用户,同时给出用户约束;著作权来源复杂,风险高;移花接木,好心办坏事。如2003年SCO公司对IBM的诉讼案。许可证(合同法):权利和义务并存。OSI认证的有70多种许可证。案例很多:2002MySQL控告Nusphere,2008FSF诉讼Cisco。专利(专利法):部分开源许可证对包含的软件专利使用权未做出明示。即使遵守许可证,也有可能会被专利持有人起诉:2007.5声称Linux等侵犯了其235专利。5感谢你的观赏2019-8-14开源软件之法律风险开源并非“为所欲为”:误导的现状5感谢你的问题解析验证著作权,正本清源调查专利,借力打力解读许可证,明察秋毫。OSI网站列出了9种常用的开源许可证,分别是:GNU通用公共许可证,GPLGNU宽通用公共许可证,LGPLMozilla公共许可证,MPL通用开发和发布许可证,CDDLEclipse公共许可证,EPL新版BSD许可证,MIT许可证Apache许可证6感谢你的观赏2019-8-14问题解析验证著作权,正本清源6感谢你的观赏2019-8-147感谢你的观赏2019-8-147感谢你的观赏2019-8-14版本号:与专有软件一样此外,还有:优秀的领导者:通过开源软件主页等获悉多样化的开发者社区:雇用背景,技术领域,地域庞大的优质用户群健康的项目“脉动”:积极的邮件,论坛讨论,及时的缺陷修补,持续的代码更新,活跃的版本发布健全的安全补丁机制较完善的文档开源软件成熟度8感谢你的观赏2019-8-14版本号:与专有软件一样开源软件成熟度8感谢你的观赏2019-开源软件服务残酷的事实:绝大部分开源许可证免责条款!!并不是每个开源软件都有支持服务可买主流的开源软件都有第三方服务,如:Linux:RedHat、Novell等MySQL:Sun全方位支持:OpenLogic及SourceLabs第三方有偿服务:越来越多的SP提供多样化的服务9感谢你的观赏2019-8-14开源软件服务残酷的事实:9感谢你的观赏2019-8-14寻找合适的开源软件1983~,20多年洗礼,星星之火发展到燎原之势!!几乎每一款商业软件都可以找到开源的替代品寻找途径利器:谷歌、百度等搜索引擎专业网站:开源替代推荐:OSALT搜索商业软件的同时,匹配开源软件托管网站:SourceForge、GoogleProjects、Codehaus、GitHub等项目汇总:Freshmeat,/project,10感谢你的观赏2019-8-14寻找合适的开源软件1983~,20多年洗礼,星星之火发展到语言和平台-HarmonyHarmony:JavaJDKApache2005年5月,目标是开发一个独立并且与现有JDK兼容的JavaSE5实现。模块化架构,允许自由定制和替换特定的模块;实现:独立的两个接口层定义的运行时模块:虚拟机和类库。非官方JRT:Sun公司不肯授予Apache基金会一个可接受的TCK使用权,无法通过Java标准版TCK测试。使用指南许可证:对商业公司和开源社区都比较友好,可将Harmony和Java应用程序打包发布。邮件列表:4个,{dev,commits,alerts,private}@缺陷报告和功能需求管理:JIRA。11感谢你的观赏2019-8-14语言和平台-HarmonyHarmony:JavaJDK1Android:2005.7google收购了AndroidLinux内核底层,并搭建了一个类JavaJRT环境。目的和优势:打破垄断,手持设备业界、开发人员到最终用户都受益?架构语言和平台-Android12感谢你的观赏2019-8-14Android:2005.7google收购了Androi语言和平台-Android内核:Linux内核,解决手机平台硬件差异运行时:Davik-〉ART(二者区别)+核心类库应同程序框架:为应用程序提供基础服务,包括用户界面、资源管理器、消息通知机制等应用程序:常用程序都是google的产品,java编写使用指南许可证:Linux内核GPL+Apache许可证。讨论组:6个,初学者、开发细节、移植、发展、安全、漏洞发现和修复。/group/<group-name>13感谢你的观赏2019-8-14语言和平台-Android内核:Linux内核,解决手机平台14感谢你的观赏2019-8-1414感谢你的观赏2019-8-14语言和平台-Python特点:面向对象的动态编程语言跨平台性:几乎所有平台都有移植版本可扩展性:核心精简,提供丰富的标准函数库混合型语言:不需要编译,解释器实时解析运行。编译型和解释型语言?语法严谨:强类型动态类型:运行期间才确定数据类型,提高了编程效率语句块通过缩进来定义的。清晰美观,可读性强。与Perl比较:Perl多种方法完成一件事,Python只有一种方法。15感谢你的观赏2019-8-14语言和平台-Python特点:面向对象的动态编程语言15感谢16感谢你的观赏2019-8-1416感谢你的观赏2019-8-14语言和平台-Python使用指南许可证:Python许可证,GPL兼容,允许修改Python的源代码以非开源的方式再发布维护:Python基金会监管,众多活跃社区背景介绍1989年荷兰人GuidovanRossum为了打发圣诞节长假。用Python编写代码就像英语一样容易理解,且开发周期短。17感谢你的观赏2019-8-14语言和平台-Python使用指南17感谢你的观赏2019-8语言和平台-Ruby功能特点:“以人为本”,让开发成为程序员的乐趣,“执行效率”-〉“简单”完全面向对象:Java中原生类型的数据不是对象。有弹性的动态语言:修改定义过的类,定义实例特有方法(单例方法)。支持元数据编程-加入或修改标准库的方法。RubyonRails:站在巨人的肩膀上18感谢你的观赏2019-8-14语言和平台-Ruby功能特点:18感谢你的观赏2019-8-语言和平台-Ruby使用指南许可证:GPL+Ruby许可证,GPL兼容的自由软件邮件列表:4个,Ruby-{Talk,Core,Doc,CVS}背景:日本人松本行弘(Yukihiro)1995.12发明的目的:和Perl一样强大、比Python更面向对象的脚本语言2000年,Ruby传入美国,影响力由亚洲扩散到全世界。19感谢你的观赏2019-8-14语言和平台-Ruby使用指南19感谢你的观赏2019-8-1语言和平台-PHP功能特点用途:动态网页设计跨平台:运行在常见系统上,支持各种类型的数据库丰富的第三方库:支持加密、多媒体、界面、数学计算等各种扩展执行效率:PHP4后一直到了ZendEngine,效率大大提高使用指南许可证:PHP许可证,但和GPL不兼容Sites页面:/sites.php扩展管理:LAMP:
Linux,ApacheWeb服务器,MySQL,PHP2008.3,30%以上web服务器使用了PHP20感谢你的观赏2019-8-14语言和平台-PHP功能特点20感谢你的观赏2019-8-14语言和平台-Perl功能特点:弱类型的解释型动态语言擅长处理文本数据:原因?能调用C/C++编译的应用,有丰富的扩展跨平台:运行在常见和不常见系统上,支持各种类型的数据库系统管理:弥补了shell\awk\sed的不足。使用指南许可证:Artistic许可证+GPL综合Perl存档网络CPAN:几乎所有相关资料活跃社区:P,useperl,perlchina等邮件列表:L背景:1987年,拉里.沃尔,Pearl入门教程:拉里沃尔的骆驼书《Perl编程》21感谢你的观赏2019-8-14语言和平台-Perl功能特点:弱类型的解释型动态语言21感谢语言和平台-Flex功能特点:Adobe开发的web富客户端良好的用户体验:出色的用户界面提供功能强大方便易用的组件库:在Flash基础上做了一层封装,生成Flash文件跨平台:运行在绝大多数浏览器强大的可定制性:所有控制都是可定制的,重用和修改原有控件优秀的整合支持:与Java\PHP\.NET\Ruby\ColdFusion等实现整合支持全球化:默认使用行业标准Unicode,多语言支持,自动选择用户界面语言和显示风格使用指南许可证:Mozilla公共许可证MPL活跃社区和邮件列表等:F,商业支持:flexsolutions@22感谢你的观赏2019-8-14语言和平台-Flex功能特点:Adobe开发的web富客户框架和库开发模式的转变原因:软件开发规模不断扩大,构件思想的引领转变:白手起家-〉模式、设计和代码的复用如何选择合适自己的库和框架琳琅满目:各种编程语言、编程领域,开源社区:通信层的网络协议实现、中间层的企业信息总线、存储层的对象-关系映射、前台的AJAX23感谢你的观赏2019-8-14框架和库开发模式的转变23感谢你的观赏2019-8-14Spring功能特点:2004.3,RodJohnson,Spring1.0Java企业级平台,比JavaBean更轻量级子框架设计:子框架着重解决特定领域的问题,可独立和配合使用核心是称为反向控制的对象容器:提供统一方法管理和配置Java对象,管理对象生命周期。使用指南许可证:Apache许可证获取Spring代码:/cvs/?group_id=73357/svn/?group_id=73357问题提交:JIRA系统研讨会:SpringOne,官方最大规模的技术研讨会。24感谢你的观赏2019-8-14Spring功能特点:2004.3,RodJohnsonStruts功能特点:CraigMcClanahan2000.5捐赠给Apache基金会纯Java的web应用框架对JavaServlet编程接口扩展:引入MVC设计模式,构造以此为基础的开发框架,辅以标签库等前端技术规范使用MVC:即使开发人员不了解MVC分离的概念版本选择Struts1:最广泛使用的JavaWeb框架,成熟可靠,有完善的文档和广大的用户群Strut2:引入插件机制,编程接口与struts1不兼容25感谢你的观赏2019-8-14Struts功能特点:25感谢你的观赏2019-8-14Struts使用指南许可证:Apache许可证初学者:基础技术和概念/primer.html详细用户手册:/1.x/userGuide/index.htmlFAQ、HOWTO文档:/1.x/faqs/index.htmlStruts2:wiki形式,也有不错的教程/2.x/docs/tutorials.html邮件列表、用户群体缺陷报告:JIRA,security@26感谢你的观赏2019-8-14Struts使用指南26感谢你的观赏2019-8-14JbossSeam功能特点:RedHat的Jboss社区领导开发,GavinKing,他同时也是Hibernate(流行的对象-关系映射框架)的主要创始人,因此与Hibernate有良好的集成。Java语言的web应用开发平台集成了众多流程技术:异步JavaScript和XML(AJAX)、JavaServerFaces(JSF)、JavaPersistence(JPA)、EJB、业务流程管理BPM等最精简的整体架构和编程接口所见即所得(WYSIWYG)开发环境:以Eclipse为基础的Jboss开发工具,命令行代码生成工具,帮助用户最快开发系统原型。27感谢你的观赏2019-8-14JbossSeam功能特点:27感谢你的观赏2019-8-JbossSeam使用指南:许可证:LGPL,有完善的文档和活跃社区学习:下载样例程序、运行,然后学习其代码问题讨论和报告:用户论坛讨论,大部分问题都是用户配置问题,而非Seam本身的缺陷。如果是,可以报告给社区,先搜索Seam的缺陷追踪系统。避免重复报告。社区活动:包括功能介绍、案例演示等,不少在中国商业支持:RedHat28感谢你的观赏2019-8-14JbossSeam使用指南:28感谢你的观赏2019-8-Equinox功能特点:Equinox是Eclipse旗下的一个开源项目插件平台:在通用架构上组装模块方式搭建应用Eclipse3.0后,取代了原本的插件技术,成为Eclipse新的运行平台降低复杂度、提高重用性:模块化开发,每个模块由清晰定义的开放接口,同时隐藏内部实现---强制封装保证了模块间的松散耦合,易维护、不易出错动态更新:允许在运行时动态更新模块,启动和停止。这对于传统的Java程序来说近乎不可能,但却是存在这样的需求简单易用:核心API非常精简,只有一个包,不到30个类和接口;开发模块无须继承或者实现任何类和接口。29感谢你的观赏2019-8-14Equinox功能特点:29感谢你的观赏2019-8-14Equinox使用指南:许可证:Eclipse公共许可证底层架构:可用于任何Java系统的底层架构文档支持:/equinox/documents快速入门:发布形态JAR,方便地下载并运行最简单的程序/equinox/documents/quickstart.php常用资源:/equinox/resouces.php
邮件列表缺陷管理:Bugzilla系统30感谢你的观赏2019-8-14Equinox使用指南:30感谢你的观赏2019-8-14Hibernate功能特点:Hibernate是对象-关系映射框架(ObjectRelationalMapping,简称ORM)在Java上的典型代表之一关系映射:JavaBean与数据库之间、Java数据类型与SQL数据类型之间建立和维护映射关系—有何作用?HQL语言:帮助生成查询语句,将程序员从SQL解放以及数据库的可移植性使用指南:许可证:LGPL缺陷跟踪系统:社区报告问题,也可向社区贡献代码商业服务:RedHat,24小时全天候,2小时内解决服务31感谢你的观赏2019-8-14Hibernate功能特点:31感谢你的观赏2019-8-1Hibernate背景介绍:Hibernate2.1获得2005年Jolt奖。版本:最初只支持Java语言,后来.NET发明人:GavinKing领导的一个全球化的开发团队,后来JBoss雇佣了主要的开发人员,继续维护和支持Hibernate32感谢你的观赏2019-8-14Hibernate背景介绍:32感谢你的观赏2019-8-1iBATIS功能特点:2001ClintonBegin创始多语言的存储层框架,支持Java、.Net和Ruby,致力于高效地访问关系数据库是一个数据映射框架,简单易用,除了对象、XML和SQL外不需要学习其他独立的数据访问层:提供DataAccessObjects(DAO)抽象层,帮助应用封装存储层代码,并为应用的其他模块提供一个统一的调用接口包含Ibator:专用的代码生成器,从关系数据库反射表设计,然后自动生成整套iBATIS代码和配置文件,实现表的增、删、改、查等操作。33感谢你的观赏2019-8-14iBATIS功能特点:2001ClintonBegin创iBATIS使用指南:许可证:Apache简单易用,有完善的文档:Java:/dist/ibatis/ibatis.java/docs/iBATIS-SqlMaps-2-Tutorial_en.pdf.NET:O/confluence/oss/display/IBATIS/Quick+Start+Guide缺陷管理:JIRA34感谢你的观赏2019-8-14iBATIS使用指南:34感谢你的观赏2019-8-14Lucene功能特点:创始人DoughCuttingApache基金会的一个专注信息搜索的开源项目群,包含一系列子项目,其中LuceneJava是最早也是最著名的一个。LuceneJava:纯Java语言的信息搜索引擎,适用于所有需要全文检索的应用场合高效可延展的建立索引:每分钟处理20MB数据以上,低内存消耗(1MB),与批量索引建立一样高速的增量索引,索引大小为原文的20%-30%强大、准确且高速的查询:匹配度优先返回,各种查询方式(短语匹配、通配符、近似匹配、区间查询等),允许并发的更新和查询有其他语言的移植版本35感谢你的观赏2019-8-14Lucene功能特点:创始人DoughCutting35Lucene使用指南:许可证:Apache简单易用:二进制形式只有一个JAR,加入到类路径就可使用快速入门:发行版自带WIKI网站:邮件列表,缺陷追踪系统JIRA36感谢你的观赏2019-8-14Lucene使用指南:36感谢你的观赏2019-8-14Webkit功能特点:管理者MacosForgeWebkit是一个网页渲染引擎?,用于浏览器及富客户端应用很多重量级的应用:safari跟chrome(后来opera跟进),以及Adobe公司的富客户端运行平台AIR等都是基于Webkit跨平台性:起初只能用于linux平台,后来苹果公司apple对其源代码进行了扩展改造,使其能运行于mac跟windows平台,后起之秀chrome对其有进行了一些列扩充与推广,使其越来越成为标准流行的渲染网页引擎出色的用户体验使用指南许可证:LGPL+BSDWiki网站:提供具体信息,丰富的邮件列表IRC聊天室:InternetRelayChat的英文缩写,中文一般称为互联网中继聊天。37感谢你的观赏2019-8-14Webkit功能特点:管理者MacosForge37感谢服务器软件Web应用流行化趋势:web应用越来越流行,需要部署在web服务器上服务器软件丰富和多样化:从只支持静态页面的HttpServer,到JSP/Servlet容器Tomcat;从嵌入式Jetty到功能完备的J2EE容器Jboss和Geronimo,开源web服务器满足各种需求。除web服务器外,还有数据库服务器。38感谢你的观赏2019-8-14服务器软件Web应用流行化38感谢你的观赏2019-8-14ApacheHTTP服务器(AHS)功能特点:管理者Apache基金会开源HTTP服务器最著名的一个,是Apache的开山之作跨平台流行:绝大多数OS都可以运行成熟稳定,安全性高模块化架构:许多特性,大部分通过各个子模块实现39感谢你的观赏2019-8-14ApacheHTTP服务器(AHS)功能特点:管理者ApApacheHTTP服务器(AHS)使用指南许可证:Apache活跃社区邮件列表:用户邮件列表和开发类邮件列表Users-subscribe@Dev-subscribe@背景介绍开发者:美国国家超级电脑应用中心的RobertMcCool,可说没有AHS,就没有Apache基金会市场份额:1996.4以来,一直是最流行的HTTP服务器,2005.1170%,后来很多主机域名商转到微软的IIS,但仍是老大40感谢你的观赏2019-8-14ApacheHTTP服务器(AHS)使用指南40感谢你的观Tomcat功能特点:管理者Apache基金会易用、功能强大的web应用服务器运行时占用资源少,适合中小型应用只是一个web容器,不支持所有的Java企业版规范,如EJB可为Servlet/JSP提供动态页面支持,也支持静态HTML登陆方案可通过Tomcat动态替换:可用JNDIRealm配置并利用LDAP进行用户验证支持HTTP和HTTPS协议支持服务器集群和负载均衡,提高web应用的可靠性和可伸缩性使用指南许可证:Apache邮件列表:用户和开发者两个发明者:1999,sun的JamesDuncanDavidson41感谢你的观赏2019-8-14Tomcat功能特点:管理者Apache基金会41感谢你的JBoss功能特点:创始人MarcFleury最早的开源Java企业版服务器实现了Java企业版所有功能Web容器采用Tomcat或JettyPortal技术的支持:JbossPortal,包括界面、内容管理与发布、个人喜好设置使用指南许可证:LGPL邮件列表:Jboss包含很多项目,每个项目都有自己的邮件列表,包括Jboss开发列表。商业服务:Jboss公司2003年推出了专业级的产品支持服务42感谢你的观赏2019-8-14JBoss功能特点:创始人MarcFleury42感谢你MySQL功能特点:创始人MichaelWidenius,DavidAxmark目前最流行的开源关系型数据库管理系统体积小、速度快,易于使用跨平台支持为几乎所有主流编程语言提供API良好的伸缩性良好的工具支持:命令行工具mysql\mysqladmin以及图形化工具MySQLAdministraor和MySQLQueryBrowser,还有第三方工具使用指南许可证:GPL邮件列表:针对不同语言和操作系统提供不同的邮件列表商业服务:Sun公司推出了专业级的产品支持服务43感谢你的观赏2019-8-14MySQL功能特点:创始人MichaelWidenius44感谢你的观赏2019-8-1444感谢你的观赏2019-8-1445感谢你的观赏2019-8-1445感谢你的观赏2019-8-14开源技术及应用Lecture-IV-使用开源软件许光全计算机科学与技术学院46感谢你的观赏2019-8-14开源技术及应用Lecture-IV-使用开源软件1感谢你的观目录正确使用开源软件语言和平台框架和库服务器软件开发工具桌面应用47感谢你的观赏2019-8-14目录正确使用开源软件2感谢你的观赏2019-8-14开源软件管理体制开源软件的应用战略哪些系统适宜采用开源软件:很多企业用户在非关键业务系统使用开源软件,但也有很多用在核心业务系统的哪些开源软件是允许引入:许可证类型界定可以与开源社区进行哪些方式的协作。引入流程参考商业软件引入根据开源软件的特点进行改造,特别是评估和批准步骤:加强对法律风险、软件成熟度和服务的考察,以便确定“使用该软件是否违法”“质量如何”“出了问题怎么办”单纯使用开源软件的风险小,但要在自己产品中包含一个开源软件则必须谨慎48感谢你的观赏2019-8-14开源软件管理体制开源软件的应用战略3感谢你的观赏2019-8开源软件管理体制日常管理最佳实践:建立一个中心目录,为每个已批准的开源软件建立档案,描述其重要信息:网站,下载地址,被批准的用途,当前部署情况,支持服务信息,内部联系人等,最好能够提供内部下载,保证版本的纯正。配套系统组织架构审计机制员工培训:开源并非“为所欲为”很多开源企业用户缺失管理体制:整理现状并对使用的开源软件重新评估和批准。49感谢你的观赏2019-8-14开源软件管理体制日常管理4感谢你的观赏2019-8-14开源软件之法律风险开源并非“为所欲为”:误导的现状著作权(著作权法):除公共领域外,著作权所有者通过软件许可证将部分权利授权给用户,同时给出用户约束;著作权来源复杂,风险高;移花接木,好心办坏事。如2003年SCO公司对IBM的诉讼案。许可证(合同法):权利和义务并存。OSI认证的有70多种许可证。案例很多:2002MySQL控告Nusphere,2008FSF诉讼Cisco。专利(专利法):部分开源许可证对包含的软件专利使用权未做出明示。即使遵守许可证,也有可能会被专利持有人起诉:2007.5声称Linux等侵犯了其235专利。50感谢你的观赏2019-8-14开源软件之法律风险开源并非“为所欲为”:误导的现状5感谢你的问题解析验证著作权,正本清源调查专利,借力打力解读许可证,明察秋毫。OSI网站列出了9种常用的开源许可证,分别是:GNU通用公共许可证,GPLGNU宽通用公共许可证,LGPLMozilla公共许可证,MPL通用开发和发布许可证,CDDLEclipse公共许可证,EPL新版BSD许可证,MIT许可证Apache许可证51感谢你的观赏2019-8-14问题解析验证著作权,正本清源6感谢你的观赏2019-8-1452感谢你的观赏2019-8-147感谢你的观赏2019-8-14版本号:与专有软件一样此外,还有:优秀的领导者:通过开源软件主页等获悉多样化的开发者社区:雇用背景,技术领域,地域庞大的优质用户群健康的项目“脉动”:积极的邮件,论坛讨论,及时的缺陷修补,持续的代码更新,活跃的版本发布健全的安全补丁机制较完善的文档开源软件成熟度53感谢你的观赏2019-8-14版本号:与专有软件一样开源软件成熟度8感谢你的观赏2019-开源软件服务残酷的事实:绝大部分开源许可证免责条款!!并不是每个开源软件都有支持服务可买主流的开源软件都有第三方服务,如:Linux:RedHat、Novell等MySQL:Sun全方位支持:OpenLogic及SourceLabs第三方有偿服务:越来越多的SP提供多样化的服务54感谢你的观赏2019-8-14开源软件服务残酷的事实:9感谢你的观赏2019-8-14寻找合适的开源软件1983~,20多年洗礼,星星之火发展到燎原之势!!几乎每一款商业软件都可以找到开源的替代品寻找途径利器:谷歌、百度等搜索引擎专业网站:开源替代推荐:OSALT搜索商业软件的同时,匹配开源软件托管网站:SourceForge、GoogleProjects、Codehaus、GitHub等项目汇总:Freshmeat,/project,55感谢你的观赏2019-8-14寻找合适的开源软件1983~,20多年洗礼,星星之火发展到语言和平台-HarmonyHarmony:JavaJDKApache2005年5月,目标是开发一个独立并且与现有JDK兼容的JavaSE5实现。模块化架构,允许自由定制和替换特定的模块;实现:独立的两个接口层定义的运行时模块:虚拟机和类库。非官方JRT:Sun公司不肯授予Apache基金会一个可接受的TCK使用权,无法通过Java标准版TCK测试。使用指南许可证:对商业公司和开源社区都比较友好,可将Harmony和Java应用程序打包发布。邮件列表:4个,{dev,commits,alerts,private}@缺陷报告和功能需求管理:JIRA。56感谢你的观赏2019-8-14语言和平台-HarmonyHarmony:JavaJDK1Android:2005.7google收购了AndroidLinux内核底层,并搭建了一个类JavaJRT环境。目的和优势:打破垄断,手持设备业界、开发人员到最终用户都受益?架构语言和平台-Android57感谢你的观赏2019-8-14Android:2005.7google收购了Androi语言和平台-Android内核:Linux内核,解决手机平台硬件差异运行时:Davik-〉ART(二者区别)+核心类库应同程序框架:为应用程序提供基础服务,包括用户界面、资源管理器、消息通知机制等应用程序:常用程序都是google的产品,java编写使用指南许可证:Linux内核GPL+Apache许可证。讨论组:6个,初学者、开发细节、移植、发展、安全、漏洞发现和修复。/group/<group-name>58感谢你的观赏2019-8-14语言和平台-Android内核:Linux内核,解决手机平台59感谢你的观赏2019-8-1414感谢你的观赏2019-8-14语言和平台-Python特点:面向对象的动态编程语言跨平台性:几乎所有平台都有移植版本可扩展性:核心精简,提供丰富的标准函数库混合型语言:不需要编译,解释器实时解析运行。编译型和解释型语言?语法严谨:强类型动态类型:运行期间才确定数据类型,提高了编程效率语句块通过缩进来定义的。清晰美观,可读性强。与Perl比较:Perl多种方法完成一件事,Python只有一种方法。60感谢你的观赏2019-8-14语言和平台-Python特点:面向对象的动态编程语言15感谢61感谢你的观赏2019-8-1416感谢你的观赏2019-8-14语言和平台-Python使用指南许可证:Python许可证,GPL兼容,允许修改Python的源代码以非开源的方式再发布维护:Python基金会监管,众多活跃社区背景介绍1989年荷兰人GuidovanRossum为了打发圣诞节长假。用Python编写代码就像英语一样容易理解,且开发周期短。62感谢你的观赏2019-8-14语言和平台-Python使用指南17感谢你的观赏2019-8语言和平台-Ruby功能特点:“以人为本”,让开发成为程序员的乐趣,“执行效率”-〉“简单”完全面向对象:Java中原生类型的数据不是对象。有弹性的动态语言:修改定义过的类,定义实例特有方法(单例方法)。支持元数据编程-加入或修改标准库的方法。RubyonRails:站在巨人的肩膀上63感谢你的观赏2019-8-14语言和平台-Ruby功能特点:18感谢你的观赏2019-8-语言和平台-Ruby使用指南许可证:GPL+Ruby许可证,GPL兼容的自由软件邮件列表:4个,Ruby-{Talk,Core,Doc,CVS}背景:日本人松本行弘(Yukihiro)1995.12发明的目的:和Perl一样强大、比Python更面向对象的脚本语言2000年,Ruby传入美国,影响力由亚洲扩散到全世界。64感谢你的观赏2019-8-14语言和平台-Ruby使用指南19感谢你的观赏2019-8-1语言和平台-PHP功能特点用途:动态网页设计跨平台:运行在常见系统上,支持各种类型的数据库丰富的第三方库:支持加密、多媒体、界面、数学计算等各种扩展执行效率:PHP4后一直到了ZendEngine,效率大大提高使用指南许可证:PHP许可证,但和GPL不兼容Sites页面:/sites.php扩展管理:LAMP:
Linux,ApacheWeb服务器,MySQL,PHP2008.3,30%以上web服务器使用了PHP65感谢你的观赏2019-8-14语言和平台-PHP功能特点20感谢你的观赏2019-8-14语言和平台-Perl功能特点:弱类型的解释型动态语言擅长处理文本数据:原因?能调用C/C++编译的应用,有丰富的扩展跨平台:运行在常见和不常见系统上,支持各种类型的数据库系统管理:弥补了shell\awk\sed的不足。使用指南许可证:Artistic许可证+GPL综合Perl存档网络CPAN:几乎所有相关资料活跃社区:P,useperl,perlchina等邮件列表:L背景:1987年,拉里.沃尔,Pearl入门教程:拉里沃尔的骆驼书《Perl编程》66感谢你的观赏2019-8-14语言和平台-Perl功能特点:弱类型的解释型动态语言21感谢语言和平台-Flex功能特点:Adobe开发的web富客户端良好的用户体验:出色的用户界面提供功能强大方便易用的组件库:在Flash基础上做了一层封装,生成Flash文件跨平台:运行在绝大多数浏览器强大的可定制性:所有控制都是可定制的,重用和修改原有控件优秀的整合支持:与Java\PHP\.NET\Ruby\ColdFusion等实现整合支持全球化:默认使用行业标准Unicode,多语言支持,自动选择用户界面语言和显示风格使用指南许可证:Mozilla公共许可证MPL活跃社区和邮件列表等:F,商业支持:flexsolutions@67感谢你的观赏2019-8-14语言和平台-Flex功能特点:Adobe开发的web富客户框架和库开发模式的转变原因:软件开发规模不断扩大,构件思想的引领转变:白手起家-〉模式、设计和代码的复用如何选择合适自己的库和框架琳琅满目:各种编程语言、编程领域,开源社区:通信层的网络协议实现、中间层的企业信息总线、存储层的对象-关系映射、前台的AJAX68感谢你的观赏2019-8-14框架和库开发模式的转变23感谢你的观赏2019-8-14Spring功能特点:2004.3,RodJohnson,Spring1.0Java企业级平台,比JavaBean更轻量级子框架设计:子框架着重解决特定领域的问题,可独立和配合使用核心是称为反向控制的对象容器:提供统一方法管理和配置Java对象,管理对象生命周期。使用指南许可证:Apache许可证获取Spring代码:/cvs/?group_id=73357/svn/?group_id=73357问题提交:JIRA系统研讨会:SpringOne,官方最大规模的技术研讨会。69感谢你的观赏2019-8-14Spring功能特点:2004.3,RodJohnsonStruts功能特点:CraigMcClanahan2000.5捐赠给Apache基金会纯Java的web应用框架对JavaServlet编程接口扩展:引入MVC设计模式,构造以此为基础的开发框架,辅以标签库等前端技术规范使用MVC:即使开发人员不了解MVC分离的概念版本选择Struts1:最广泛使用的JavaWeb框架,成熟可靠,有完善的文档和广大的用户群Strut2:引入插件机制,编程接口与struts1不兼容70感谢你的观赏2019-8-14Struts功能特点:25感谢你的观赏2019-8-14Struts使用指南许可证:Apache许可证初学者:基础技术和概念/primer.html详细用户手册:/1.x/userGuide/index.htmlFAQ、HOWTO文档:/1.x/faqs/index.htmlStruts2:wiki形式,也有不错的教程/2.x/docs/tutorials.html邮件列表、用户群体缺陷报告:JIRA,security@71感谢你的观赏2019-8-14Struts使用指南26感谢你的观赏2019-8-14JbossSeam功能特点:RedHat的Jboss社区领导开发,GavinKing,他同时也是Hibernate(流行的对象-关系映射框架)的主要创始人,因此与Hibernate有良好的集成。Java语言的web应用开发平台集成了众多流程技术:异步JavaScript和XML(AJAX)、JavaServerFaces(JSF)、JavaPersistence(JPA)、EJB、业务流程管理BPM等最精简的整体架构和编程接口所见即所得(WYSIWYG)开发环境:以Eclipse为基础的Jboss开发工具,命令行代码生成工具,帮助用户最快开发系统原型。72感谢你的观赏2019-8-14JbossSeam功能特点:27感谢你的观赏2019-8-JbossSeam使用指南:许可证:LGPL,有完善的文档和活跃社区学习:下载样例程序、运行,然后学习其代码问题讨论和报告:用户论坛讨论,大部分问题都是用户配置问题,而非Seam本身的缺陷。如果是,可以报告给社区,先搜索Seam的缺陷追踪系统。避免重复报告。社区活动:包括功能介绍、案例演示等,不少在中国商业支持:RedHat73感谢你的观赏2019-8-14JbossSeam使用指南:28感谢你的观赏2019-8-Equinox功能特点:Equinox是Eclipse旗下的一个开源项目插件平台:在通用架构上组装模块方式搭建应用Eclipse3.0后,取代了原本的插件技术,成为Eclipse新的运行平台降低复杂度、提高重用性:模块化开发,每个模块由清晰定义的开放接口,同时隐藏内部实现---强制封装保证了模块间的松散耦合,易维护、不易出错动态更新:允许在运行时动态更新模块,启动和停止。这对于传统的Java程序来说近乎不可能,但却是存在这样的需求简单易用:核心API非常精简,只有一个包,不到30个类和接口;开发模块无须继承或者实现任何类和接口。74感谢你的观赏2019-8-14Equinox功能特点:29感谢你的观赏2019-8-14Equinox使用指南:许可证:Eclipse公共许可证底层架构:可用于任何Java系统的底层架构文档支持:/equinox/documents快速入门:发布形态JAR,方便地下载并运行最简单的程序/equinox/documents/quickstart.php常用资源:/equinox/resouces.php
邮件列表缺陷管理:Bugzilla系统75感谢你的观赏2019-8-14Equinox使用指南:30感谢你的观赏2019-8-14Hibernate功能特点:Hibernate是对象-关系映射框架(ObjectRelationalMapping,简称ORM)在Java上的典型代表之一关系映射:JavaBean与数据库之间、Java数据类型与SQL数据类型之间建立和维护映射关系—有何作用?HQL语言:帮助生成查询语句,将程序员从SQL解放以及数据库的可移植性使用指南:许可证:LGPL缺陷跟踪系统:社区报告问题,也可向社区贡献代码商业服务:RedHat,24小时全天候,2小时内解决服务76感谢你的观赏2019-8-14Hibernate功能特点:31感谢你的观赏2019-8-1Hibernate背景介绍:Hibernate2.1获得2005年Jolt奖。版本:最初只支持Java语言,后来.NET发明人:GavinKing领导的一个全球化的开发团队,后来JBoss雇佣了主要的开发人员,继续维护和支持Hibernate77感谢你的观赏2019-8-14Hibernate背景介绍:32感谢你的观赏2019-8-1iBATIS功能特点:2001ClintonBegin创始多语言的存储层框架,支持Java、.Net和Ruby,致力于高效地访问关系数据库是一个数据映射框架,简单易用,除了对象、XML和SQL外不需要学习其他独立的数据访问层:提供DataAccessObjects(DAO)抽象层,帮助应用封装存储层代码,并为应用的其他模块提供一个统一的调用接口包含Ibator:专用的代码生成器,从关系数据库反射表设计,然后自动生成整套iBATIS代码和配置文件,实现表的增、删、改、查等操作。78感谢你的观赏2019-8-14iBATIS功能特点:2001ClintonBegin创iBATIS使用指南:许可证:Apache简单易用,有完善的文档:Java:/dist/ibatis/ibatis.java/docs/iBATIS-SqlMaps-2-Tutorial_en.pdf.NET:O/confluence/oss/display/IBATIS/Quick+Start+Guide缺陷管理:JIRA79感谢你的观赏2019-8-14iBATIS使用指南:34感谢你的观赏2019-8-14Lucene功能特点:创始人DoughCuttingApache基金会的一个专注信息搜索的开源项目群,包含一系列子项目,其中LuceneJava是最早也是最著名的一个。LuceneJava:纯Java语言的信息搜索引擎,适用于所有需要全文检索的应用场合高效可延展的建立索引:每分钟处理20MB数据以上,低内存消耗(1MB),与批量索引建立一样高速的增量索引,索引大小为原文的20%-30%强大、准确且高速的查询:匹配度优先返回,各种查询方式(短语匹配、通配符、近似匹配、区间查询等),允许并发的更新和查询有其他语言的移植版本80感谢你的观赏2019-8-14Lucene功能特点:创始人DoughCutting35Lucene使用指南:许可证:Apache简单易用:二进制形式只有一个JAR,加入到类路径就可使用快速入门:发行版自带WIKI网站:邮件列表,缺陷追踪系统JIRA81感谢你的观赏2019-8-14Lucene使用指南:36感
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 化妆品经销商合同
- 数据分析与决策支持实战指南
- 装修阶段雨季施工方案
- 基础钢模板施工方案
- 全玻自由门施工方案
- 扶沟聚氨酯地坪施工方案
- TCSHB 0022-2024 全自动真空焊接炉过程质量管理规范
- 上海2025各区初三议论文阅读题选
- 景点矿山修复工程施工方案
- 新中式岩板背景墙施工方案
- 西师大版六年级数学下册全册知识点汇总
- 江西2023年分宜九银村镇银行社会招聘上岸提分题库3套【500题带答案含详解】
- 2023年知识产权保护公需课试题答案
- 《公司管理人员招聘问题研究16000字(论文)》
- JJG 370-2019在线振动管液体密度计
- GB/T 8162-2018结构用无缝钢管
- GB/T 36018-2018吹氧金属软管
- GB/T 22095-2008铸铁平板
- GB/T 1839-2008钢产品镀锌层质量试验方法
- 边坡稳定性计算书
- 教教技术cccp四种教练能力与技巧课件
评论
0/150
提交评论