http://www.infoq.com/cn
参见《开源技术选型手册》
第1章 闲话开源社区篇
1.1开源软件定义:自由的重新发布
开源软件“源代码”: 在提供软件的同时也要提供程序源代码,也必须允许其他人对代码进行编辑或修改,如果发行没有待源代码 那么源代码必须能够很容易且低成本地获得。
1.2 几个重要人物:
1 Richard Stallman理查德: GNU 贡献GCC编译器和Emacs编辑器 自由软件基金会创始人之一 “自由软件”
2 Eric S. Raymond 埃里克 雷蒙德 :自由软件基金会创始人之一 “Eric S. Raymond五步曲”
文章 大教堂与集市 “开放源代码(Open Source)”
3 Linus Torvalds 莱纳斯: 芬兰小伙子, 21岁推出Linux 现是linux内核负责人之一
4 Brian Behlendort 布莱恩:Apache核心人物和创始人之一 Apache占web市场的50%
网站类:自由&开源软件: http://blog.sina.com.cn/galen
维基百科: http://zh.wikipedia.org
百度百科: http://baike.baidu.com
开源软件文集:http://cvsbook.red-bean.com/
http://www.ourlinux.net/
http://www.linuxpk.com/
http://rl.rockiestech.com/node/101
http://rl.rockiestech.com/node
第2章Ajax开发篇 (JavaScript XML CSS DOM XMLHttpRequest)
2.1 Buffalo
2.2 Dojo
2.3 Prototype:基础类库
2.4 JQuery
2.5 DWR
第3章用户界面篇(UI)
BS:
3.1 Scriptcaculocus 基于 Prototype开发的
3.2 YUI (Yahoo! User Interface Library)
3.3 Ext
3.4 Echo2
Moo Dojo
CS:
.Net
AWT/Swing
SWT
第4章 富互联网应用篇(RIA)
4.1 AdobecFLEX
4.2 OpenLaszlo
注:AWT/Swing and SWT Eclipse RCP
第5章 Web框架篇
5.1 Struts2 Struts1 and webwork xwork 表现层: JSP Velocity and FreeMarker
http://cwiki.apache.org/WW/home.html
http://struts.apache.org/2.x/docs
5.2 Spring
5.3 Seam
第6章面向方面编程篇(AOP)
6.1 AspectJ
6.2 SpringcAOP
6.3 JBosscAOP
(自己增加的)
6.4 XFire
6.5 axis
第7章反向控制容器篇(IOC)
7.1 NanoContainer: IoC Type3代表
7.2 Equinox : OSGi Declarative Service 代表下一代IoC Container
7.3 HiveMind
7.4 Guice : google
7.5 JBoss MicroContainer: Jboss 核心产品
第8章对象关系映射篇(ORM)
8.1 Hibernate
8.2 TopLink Essentials
8.3 iBATIS
jdbc基础上的封装
第9章商业智能篇(BI)
9.1 分析工具——Mondrian:java OLAP(Online Analytical Processing)引擎
9.2 分析工具——JPivot
9.3 报表工具——BIRT -- Eclipse杰出报表工具 有超过 JasperReport迹象
9.4 ETL工具——Kettle 是一种Java实现的 ETL(Extract, Transform and Load,抽取,转化,装载)工具
9.5 开源商业智能解方案——Pentaho (JFreeReport, BIRT, Mondrian, Kettle)
ETL(Extract, Transform and Load,抽取,转化,装载)
第10章开源Web服务器
10.1 Apache: 多进程模型 并发800-1000
10.2 Lighttpd: IO多路复用,还可以使用Linux内核级别的事件驱动模式 单台物理设备 支持并发上万路 比Apache快3-5倍
官方网站:http://www.lighttpd.net
Jan Kneschke的博客:http://blog.lighttpd.net
Lighttpd的wiki: http://trac.lighttpd.net
10.3 Nginx :俄国人 比 Lighttpd快10%-15%,缺点文档缺乏,较适合做Proxy
http://wiki.codemongers.com/NginxModules
注:MS IIS and FastCGI Google Web Server
10.4 LVS
第11章 应用服务器篇
11.1 JBoss:
11.2 Geronimo: 有IBM支持
http://geronimo.apache.org
http://www.ibm.com/developerworks/cn/opensource/topprojects/gernimo.html
11.3 JFox:
http://www.huihoo.org 国产
轻量级webContainer
11.4Tomcat
11.5Resin
11.6Jetty
11.7 商业软件:WebLogic and WebShpere
第12章 开发平台篇(IDE)
12.1 Eclipse ibm
12.2 NetBeans sun
12.3 注:.Net平台 Vistual Studio
第13章 动态语言篇
13.1 Python
13.2 Ruby
13.3 Groovy
13.4 JavaScript
13.5 php,
13.6 ActionScript,
13.7JavaScript,
13.8 Erlang,
13.9 Perl,
13.10 shell
13.11 lua
第14章 版本控制篇
14.1 CVS
14.2 Subversion
14.3 Git linux代码的版本控制工具
第15章 项目管理篇
15.1 Mantis 技术框架:php + apache + mysql
15.2 Bugzilla : perl
15.3 Scarab : Servlet
15.4 Teamwork : Java
15.5 注:redmine: ruby + mysql + apache
第16章 建模工具篇
16.1 ArgoUML :
16.2 Poseidon
16.3 Jude
16.4 StarUML 韩国
16.5 Trufun 国产
16.6 EclipseUML
16.7 Rational
16.8 Together
第17章数据库篇(DB)
17.1 PostgreSQL
17.2 MySQL MySQL AB
17.3 Firebird
17.4 SQLlite 嵌入式数据库
17.5 Berkeley DB 是一种key,value 映射类型的数据库,哈希(散列)数据库
17.6 Oracle
第18章软件测试篇
18.1 JUnit
18.2 JMock
18.3 Selenium:web应用程序的自动验收测试工具
注: Rational测试工具系列:软件生命周期见长
Mercury测试工具系列:HP, 黑盒测试:Mercury TestSuite 自动测试工具:WinRunner and LoadRunner
Compuware测试工具系列:白盒测试:Numega
Segue测试工具系列: Borland SQO(Software Quality Optimization) ALM(Application Lifecycle Management)
第19章面向服务架构篇(SOA)
19.1 Apache CXF: 服务基础设施 ; ObjecWeb Celtix Codehaus XFire
19.2 Apache ODE:BPEL引擎 Apache ODE(Orchestration Director Engine,编制指导引擎)是基于Java的开源WS-BPEL(BPEL)引擎
WS-BPEL(简称BPEL)被用来描述业务流程,它是Web Services Business Process Execution Language
(Web服务业务过程执行语言)的缩写
19.3 Apache Tuscany: SCA(服务组件架构)/SDO(服务数据对象)的第一个参考实现
19.4 Restful (Jersey)
第20章工作流篇(Workflow)ERP EAI BI 以BPM(业务流程管理)
20.1 jBpm工作流系统:定位解决 1 解决人工交互和处理问题 2 解决跨组织跨系统交互问题 3 解决服务的编排问题 Eclipse + Jboss
20.2 OSWorkflow工作流系统:仅定位于通过简易的模型和灵活的扩展来解决人工交互: Swing
20.3 Tempo工作流系统: 更多地偏重于服务编排下的人工交互处理
第21章 内存数据库
20.1 Sqlite:
支持简单sql,支持事务,支持top n的sql语句,有嵌入式和Client/Server的部署方案,锁级别采用表锁。
支持方面:Adobe公司周一已经正式表示将帮助并赞助开源项目SQLite数据库。此前该项目已经得到了两个大公司的支持,它们分别是Mozilla和Symbian
20.2 Hsqldb:
比较老的产品,最新的版本是1.8,sun的office使用它作为桌面的后台数据库
20.3 Derby :
没有LIMIT和OFFSET子句(或相同功能的子句),不利于分页,IBM合并了Solid后将老的项目贡献到apache,
个人不太看好,需要测试。如果确实好的话,个人认为没有必要合并Solid
20.4 h2:
可以支持sql语句,hibernate中可以使用(配置为h2的引擎),性能、小巧,同时支持网络版和嵌入式版本,另外还提供了内存版,有比较好的兼容性,支持相当标准的sql标准(实际上也不存在一个数据库能够100%符合标准),提供了非常友好的基于web的数据库管理界面,支持hibernate,表级锁
20.5 berkey db:
支持事务,不支持sql,使用key+value的方式,支持根据key来进行简单检索的方式,比较简单,数据量支持也还可以,没有直接当可以当服务器的产品,另外,后续产品本身被oracle所收购(平安E家使用)。网上评价打开事务的情况下有很大的消耗。
20.6 memory cache:
使用key+value的方式,有成熟的服务器,不支持sql,不支持事务(百外级架构中使用)
20.7 memory cache+ berkey db:
新浪的根据二个产品,合并到一个产品中,没有使用过,网上评价成熟度不高
个人建议:
对单独的缓存的部分,使用memory cached
对业务统计的部分,建议使用beryky db,有一定的查询功能,并且有java版本,好集成。Oracle收购后支持sql,但是这个需要付费。
第22章 常用软件 OA ERP CRM EAM HR
22.1 OA: Joffice
第23章 消息中间件
23.1 Rabbit MQ
23.2 ActiveMQ
23.3 WebShpere MQ Serial
第24章 NoSQL
24.1 HBase
24.2 BigTable\ GFS
第25章 并行计算:
25.1 MapReduce
第26章 BigData/云计算
26.1 Hadoop
第27章 执行引擎
27.1 JRULE
27.2 YACC/LEX/ANTIAR ANTLR—Another Tool for Language Recognition http://www.antlr.org/
第28章 Java字节码处理
27.3 Javasist bcel,asm
参见《开源技术选型手册》
第1章 闲话开源社区篇
1.1开源软件定义:自由的重新发布
开源软件“源代码”: 在提供软件的同时也要提供程序源代码,也必须允许其他人对代码进行编辑或修改,如果发行没有待源代码 那么源代码必须能够很容易且低成本地获得。
1.2 几个重要人物:
1 Richard Stallman理查德: GNU 贡献GCC编译器和Emacs编辑器 自由软件基金会创始人之一 “自由软件”
2 Eric S. Raymond 埃里克 雷蒙德 :自由软件基金会创始人之一 “Eric S. Raymond五步曲”
文章 大教堂与集市 “开放源代码(Open Source)”
3 Linus Torvalds 莱纳斯: 芬兰小伙子, 21岁推出Linux 现是linux内核负责人之一
4 Brian Behlendort 布莱恩:Apache核心人物和创始人之一 Apache占web市场的50%
网站类:自由&开源软件: http://blog.sina.com.cn/galen
维基百科: http://zh.wikipedia.org
百度百科: http://baike.baidu.com
开源软件文集:http://cvsbook.red-bean.com/
http://www.ourlinux.net/
http://www.linuxpk.com/
http://rl.rockiestech.com/node/101
http://rl.rockiestech.com/node
第2章Ajax开发篇 (JavaScript XML CSS DOM XMLHttpRequest)
2.1 Buffalo
2.2 Dojo
2.3 Prototype:基础类库
2.4 JQuery
2.5 DWR
第3章用户界面篇(UI)
BS:
3.1 Scriptcaculocus 基于 Prototype开发的
3.2 YUI (Yahoo! User Interface Library)
3.3 Ext
3.4 Echo2
Moo Dojo
CS:
.Net
AWT/Swing
SWT
第4章 富互联网应用篇(RIA)
4.1 AdobecFLEX
4.2 OpenLaszlo
注:AWT/Swing and SWT Eclipse RCP
第5章 Web框架篇
5.1 Struts2 Struts1 and webwork xwork 表现层: JSP Velocity and FreeMarker
http://cwiki.apache.org/WW/home.html
http://struts.apache.org/2.x/docs
5.2 Spring
5.3 Seam
第6章面向方面编程篇(AOP)
6.1 AspectJ
6.2 SpringcAOP
6.3 JBosscAOP
(自己增加的)
6.4 XFire
6.5 axis
第7章反向控制容器篇(IOC)
7.1 NanoContainer: IoC Type3代表
7.2 Equinox : OSGi Declarative Service 代表下一代IoC Container
7.3 HiveMind
7.4 Guice : google
7.5 JBoss MicroContainer: Jboss 核心产品
第8章对象关系映射篇(ORM)
8.1 Hibernate
8.2 TopLink Essentials
8.3 iBATIS
jdbc基础上的封装
第9章商业智能篇(BI)
9.1 分析工具——Mondrian:java OLAP(Online Analytical Processing)引擎
9.2 分析工具——JPivot
9.3 报表工具——BIRT -- Eclipse杰出报表工具 有超过 JasperReport迹象
9.4 ETL工具——Kettle 是一种Java实现的 ETL(Extract, Transform and Load,抽取,转化,装载)工具
9.5 开源商业智能解方案——Pentaho (JFreeReport, BIRT, Mondrian, Kettle)
ETL(Extract, Transform and Load,抽取,转化,装载)
第10章开源Web服务器
10.1 Apache: 多进程模型 并发800-1000
10.2 Lighttpd: IO多路复用,还可以使用Linux内核级别的事件驱动模式 单台物理设备 支持并发上万路 比Apache快3-5倍
官方网站:http://www.lighttpd.net
Jan Kneschke的博客:http://blog.lighttpd.net
Lighttpd的wiki: http://trac.lighttpd.net
10.3 Nginx :俄国人 比 Lighttpd快10%-15%,缺点文档缺乏,较适合做Proxy
http://wiki.codemongers.com/NginxModules
注:MS IIS and FastCGI Google Web Server
10.4 LVS
第11章 应用服务器篇
11.1 JBoss:
11.2 Geronimo: 有IBM支持
http://geronimo.apache.org
http://www.ibm.com/developerworks/cn/opensource/topprojects/gernimo.html
11.3 JFox:
http://www.huihoo.org 国产
轻量级webContainer
11.4Tomcat
11.5Resin
11.6Jetty
11.7 商业软件:WebLogic and WebShpere
第12章 开发平台篇(IDE)
12.1 Eclipse ibm
12.2 NetBeans sun
12.3 注:.Net平台 Vistual Studio
第13章 动态语言篇
13.1 Python
13.2 Ruby
13.3 Groovy
13.4 JavaScript
13.5 php,
13.6 ActionScript,
13.7JavaScript,
13.8 Erlang,
13.9 Perl,
13.10 shell
13.11 lua
第14章 版本控制篇
14.1 CVS
14.2 Subversion
14.3 Git linux代码的版本控制工具
第15章 项目管理篇
15.1 Mantis 技术框架:php + apache + mysql
15.2 Bugzilla : perl
15.3 Scarab : Servlet
15.4 Teamwork : Java
15.5 注:redmine: ruby + mysql + apache
第16章 建模工具篇
16.1 ArgoUML :
16.2 Poseidon
16.3 Jude
16.4 StarUML 韩国
16.5 Trufun 国产
16.6 EclipseUML
16.7 Rational
16.8 Together
第17章数据库篇(DB)
17.1 PostgreSQL
17.2 MySQL MySQL AB
17.3 Firebird
17.4 SQLlite 嵌入式数据库
17.5 Berkeley DB 是一种key,value 映射类型的数据库,哈希(散列)数据库
17.6 Oracle
第18章软件测试篇
18.1 JUnit
18.2 JMock
18.3 Selenium:web应用程序的自动验收测试工具
注: Rational测试工具系列:软件生命周期见长
Mercury测试工具系列:HP, 黑盒测试:Mercury TestSuite 自动测试工具:WinRunner and LoadRunner
Compuware测试工具系列:白盒测试:Numega
Segue测试工具系列: Borland SQO(Software Quality Optimization) ALM(Application Lifecycle Management)
第19章面向服务架构篇(SOA)
19.1 Apache CXF: 服务基础设施 ; ObjecWeb Celtix Codehaus XFire
19.2 Apache ODE:BPEL引擎 Apache ODE(Orchestration Director Engine,编制指导引擎)是基于Java的开源WS-BPEL(BPEL)引擎
WS-BPEL(简称BPEL)被用来描述业务流程,它是Web Services Business Process Execution Language
(Web服务业务过程执行语言)的缩写
19.3 Apache Tuscany: SCA(服务组件架构)/SDO(服务数据对象)的第一个参考实现
19.4 Restful (Jersey)
第20章工作流篇(Workflow)ERP EAI BI 以BPM(业务流程管理)
20.1 jBpm工作流系统:定位解决 1 解决人工交互和处理问题 2 解决跨组织跨系统交互问题 3 解决服务的编排问题 Eclipse + Jboss
20.2 OSWorkflow工作流系统:仅定位于通过简易的模型和灵活的扩展来解决人工交互: Swing
20.3 Tempo工作流系统: 更多地偏重于服务编排下的人工交互处理
第21章 内存数据库
20.1 Sqlite:
支持简单sql,支持事务,支持top n的sql语句,有嵌入式和Client/Server的部署方案,锁级别采用表锁。
支持方面:Adobe公司周一已经正式表示将帮助并赞助开源项目SQLite数据库。此前该项目已经得到了两个大公司的支持,它们分别是Mozilla和Symbian
20.2 Hsqldb:
比较老的产品,最新的版本是1.8,sun的office使用它作为桌面的后台数据库
20.3 Derby :
没有LIMIT和OFFSET子句(或相同功能的子句),不利于分页,IBM合并了Solid后将老的项目贡献到apache,
个人不太看好,需要测试。如果确实好的话,个人认为没有必要合并Solid
20.4 h2:
可以支持sql语句,hibernate中可以使用(配置为h2的引擎),性能、小巧,同时支持网络版和嵌入式版本,另外还提供了内存版,有比较好的兼容性,支持相当标准的sql标准(实际上也不存在一个数据库能够100%符合标准),提供了非常友好的基于web的数据库管理界面,支持hibernate,表级锁
20.5 berkey db:
支持事务,不支持sql,使用key+value的方式,支持根据key来进行简单检索的方式,比较简单,数据量支持也还可以,没有直接当可以当服务器的产品,另外,后续产品本身被oracle所收购(平安E家使用)。网上评价打开事务的情况下有很大的消耗。
20.6 memory cache:
使用key+value的方式,有成熟的服务器,不支持sql,不支持事务(百外级架构中使用)
20.7 memory cache+ berkey db:
新浪的根据二个产品,合并到一个产品中,没有使用过,网上评价成熟度不高
个人建议:
对单独的缓存的部分,使用memory cached
对业务统计的部分,建议使用beryky db,有一定的查询功能,并且有java版本,好集成。Oracle收购后支持sql,但是这个需要付费。
第22章 常用软件 OA ERP CRM EAM HR
22.1 OA: Joffice
第23章 消息中间件
23.1 Rabbit MQ
23.2 ActiveMQ
23.3 WebShpere MQ Serial
第24章 NoSQL
24.1 HBase
24.2 BigTable\ GFS
第25章 并行计算:
25.1 MapReduce
第26章 BigData/云计算
26.1 Hadoop
第27章 执行引擎
27.1 JRULE
27.2 YACC/LEX/ANTIAR ANTLR—Another Tool for Language Recognition http://www.antlr.org/
第28章 Java字节码处理
27.3 Javasist bcel,asm