2008年4月6日星期日

Meet Open Source Guys

9.10号,虽然上海突然下起了大雨,很多的朋友因为大雨而没有赶来,但是我还是在上海福州路的一家Coffee Bean的咖啡屋与10多位open source的爱好者见面,他们有:

SAP(Michael, Darth..) ,MySQL( Dr. Lars Thalmann CTO), ObjectWeb ( David Li)

HP(Jiao Jian), PagonSoft(Paul Qu), ShangHai FangBang Tech (Wang Qian) , Huihoo(Steven Cheng), 来自FreeBSD的台湾朋友,等等, 大家一起就开源在中国的发展,以及每个人对开源的看法,发展模式进行了交流。

让我们最高兴的是,MySQL 的Lars博士向我们介绍了MySQL的成功经验,并表示他们非常关注中国市场,也正在学习和了解中国,MySQL也非常希望在中国有更多的合作伙伴。

这里向ObjectWeb的David Li组织了这次有意义的活动表示感谢!

活动的精彩照片, :)

740)this.width=740" border="undefined">

740)this.width=740" border="undefined">

740)this.width=740" border="undefined">

Migrate JPetstore To JFox

1.介绍

1.1 JFox

JFox 应用服务器是一个开放源码的J2EE规范的实现,JFox应用服务器具备以下功能特性:

l Web 服务器,支持Servlet 2.3, JSP 1.2

l 基于JMX的管理

l 支持EJB 2.0

l 支持JTA 1.0.1

l 支持JNDI 1.2

l 支持Java Mail 1.3.1

l 支持JDBC 3.0

l 支持JavaRMI 1.0

JFox是由开放源码社区www.huihoo.org 的开发人员协同研发完成,现在是中国NO.1 的开放源码Java应用服务器,它已经被全世界的开发人员下载了2058个拷贝,并逐步被广泛的使用。

JFox 可以运行在不同的操作系统上,如Linux, Solaris, Windows, etc.同时JFox也支持多种数据库,包括:Oracle, DB2, SQL Server, 以及MySQL。

更多关于JFox的信息,可以访问:http://www.huihoo.org/jfox

1.2 JPetStore

JPetStore是一个基于iBATIS开源持久层组件的Web应用, iBATIS包括SQL Maps 2.0 和 Data Access Objects 2.0 frameworks. JPetStore是展现如何使用这些框架实现一个典型的J2EE Web应用的优秀范例. 更多关于JPetStore的信息,可以访问: http://www.ibatis.com/jpetstore/jpetstore.html

2.运行环境

2.1软件环境

名称

版本号

JDK

1.4.2_01 or Higher

Application Server : JFox

1.2 or Higher

Database: MySQL

4.0 or higher

Operation System: Windows

2000 Server, XP

3.系统安装

3.1 Java安装

1) 从http://java.sun.com/j2se/1.4.2/download.html 安装JDK 1.4.2或更高版本, 在我的电脑à 高级à 环境变量中设置%JAVA_HOME%;

3.2 JFox 安装

1) 从http://sourceforge.net/projects/JFox下载JFox 最新版本,解压缩到指定目录

2) 在JFox安装目录的bin目录下,运行startup.bat启动JFox

3) 连接http://localhost:8080,可以访问JFox的Web界面,在这里可以执行JFox提供的例子

4) 连接 http://localhost:8082/,可以看到正在运行的系统组件,并可以进行管理

3.3安装MySQL

1) 从http://dev.mysql.com/downloads/下载MySQL 4.0,解压缩并运行安装程序

2) 从http://dev.mysql.com/downloads/other/mysqlcc.html下载MySQL Control Center ,解压缩并运行安装程序

3) 启动MySQL, 并运行MySQL Control Center

4.JPetStore应用部署

4.1 JPetStore部署

1) 从http://sourceforge.net/projects/ibatisjpetstore/ 下载JPetStore 4.0, 解压缩到指定目录, JPetStore目录结构如下

JPetStore

/build

/ddl

/devlib

/doc

/lib

/src

/web

2) 从http://dev.mysql.com/downloads/connector/j/3.0.html 下载MySQL JDBC Driver mysql-connector-java-3.0.15-ga.zip ,解压缩并将mysql-connector-java-3.0.15-ga-bin.jar拷贝到上述JPetStore的lib目录下

3) 修改上述JPetStore的src/properties/database.properties文件

driver=com.mysql.jdbc.Driver

url=jdbc:mysql://localhost:3306/jpetstore

username=jpetstore

password=jpetstore

4)重新构建JPetStore, 在build目录下运行build.bat, 将会在build/wars/生成jpetstore.war

5) 安装数据库脚本,在ddl\mysql目录下可以找到

jpetstore-mysql-schema.sql

jpetstore-mysql-dataload.sql

jpetstore-mysql-create-user.sql

在MySQL Control Center SQL窗口中依次执行

5) 在MySQL CC中创建用户jpetstore,并设置密码为jpetstore ,并赋予jpetstore用户所有访问jpetstore schema的权限。

6) 将jpetstore.war拷贝到JFox安装目录的deploy目录下

4.2运行JPetStore

启动JFox, 在浏览器中地址栏中键入http://localhost:8080/jpetstore

您就可以看到如下的页面

740)this.width=740" border="undefined">

 运行在JFox 上的JPetStore在线演示可以从http://www.jfox.cn/jpetstore 访问到

期待有更多的成功应用被移植到JFox上,如果你有成功的案例,请分享给我们

请发送电子邮件到: jfox-developers@lists.sourceforge.net

5.参考

1. http://www.huihoo.org/jfox

2. http://prdownloads.sourceforge.net/ibatisjpetstore/JPetStore-1-2-0.pdf?download

3. http://www.ibatis.com/jpetstore/DevDays.pdf

OpenSource & OpenSource Software

"OpenSource"已经不断的被更多的人认识,接受, 很多人就会自然的产生这样一个概念
" OpenSource = OpenSource Software".

在几个星期前与ObjectWeb的Christophe Ney(Executive Director)的交流中,我留意到这样一句话"OpenSource is a process, OpenSource is not a product".

Eric Raymond在他的<<大教堂和市集>>中将这种开源的开发模式称之为"集市开发模式", 就是在
这种集市式的开发模式下,造就了今天著名的Linux操作系统. Linus Torvalds 使用这种开发风格
(尽早尽多的发布,委托所有可以委托的事,对所有的改动和融合开放),把Linux投入到社区中,
在各种不同的建议,方法,和问题的充实喜爱,一个一致而稳定的系统就奇迹般的从这个集市中产生.

1. 教堂式的开发和集市式的开发有些什么不同呢?

教堂开发: 在开发开始前,非常好的理解设计和功能. 架构,设计,开发,集成和测试的完成计划都非常明确和编入文档.在开发阶段中发布循环是很少的. 仅在Alpha和Beta测试循环中才能够看到外部的反馈.


集市开发: 维护者发布具有某些用途的功能,但是软件包公功能并不齐全, 有时也能发现缺陷. 频繁的进行版本的发布(有时候以天计算). 问题的反馈能够尽早的被公布出来并被很容易被大家看到.任何人都要有好的思想都可以贡献出来, 或增有意义的新功能.维护者在确定一切就绪时就宣布发布一个新的版本.


集市开发模式的优点:

. 快速的开发: 开放源码的开发人员是富有激情的,他们通过积极的合作,能够以快速,不断的推出新的版本

. 分布式的开发: 开源社区的开发人员都位于全球的各个不同地方,他们最大限度的利用Internet, 来进行沟通协作, 分布式的开发同时也充分利用了时区的优势, 每天24小时有会有人在开发,每天24小时都可以得到来自全世界各地开发人员的支持.

. 最佳的人才: 开放源代码社区是不能容忍劣质的贡献者的. 如果你想加入某一个开源项目开发,你必须持续的作出某种贡献,如文档, 设计,结构,测试等等, 如果你不能做到这些, 社区也不会吸纳你. 人才是现在公司竞争的焦点, 开源社区里激烈的竞争和开放的人才管理使社区总能拥有最佳的人才.

. 发展蓝图: 开放源码软件没有商业化软件上市的时间压力,也没有强制性的蓝图. "经过彻底的测试,准备好后才发布" 这种质量第一的思想,使得开放源码软件的质量远比商品化软件好, 内部隐藏的错误也比较少.

. 有效的人员管理模式: 开放源码社区并不像看上去的那么松散, 好的社区都会有专职的一个管理,协调团队来负责整个社区的发展,规划和协调. 比如ObjectWeb , 首先由一个理事会,在理事会下有一个5人执行团队,专职来负责ObjectWeb所有事务的协调.

上面谈到的这些用一句话简单来说就是: Open Source 是一个过程, Open Source是一种文化, OpenSource是一种人与人之间自由沟通,协作的方式.

2. 什么是开放源码软件(Open Source Software)?

开放源代码软件是一种公开源代码的软件,任何人都可以修改、使用、拷贝、分发软件的源代码。

开放源代码软件有如下特点:

1. 开放源代码软件一般是免费发布的,您可以在Internet上自由下载,用户无需缴纳License费用。


2. 开放源代码软件由一个核心组织领导, 通常由一个很大的社团在Internet上协作开发完成。这种“集市”式的开发模式使得其通常有着比封闭源代码软件更高的质量。


3. 用户可以得到软件的源代码,更容易根据自己的特殊要求,进行定制。


4. 开放源代码软件的生命周期不依附于某个公司,因此有更强的生命力。

740)this.width=740" border="undefined">


开放源代码软件,已经形成了一条完整的商业价值链,有了更加坚实的基础:

1. 开放源代码软件发起公司:启动开放源代码软件项目,他们为项目提供最初的资助,通常提供最基础的代码和开发人员。 发起公司,可凭借其领导地位的企业形象,更容易得到优质的客户,进而省去市场、销售等的巨大投入。 同时他们可以为其他的软件服务公司技术服务。


2. 开放源代码软件非营利核心开发团队:负责组织协调开放源代码软件的开发,建设软件社团。 他们通常由资深的软件专家组成。他们接受发起公司、捐赠人的资助。


3. 开放源代码软件社团:由开放源代码软件的开发人员、用户、志愿者在Internet上共同交流形成的社团。


4. 开放源代码软件服务公司:利用开放源代码软件,为最终用户提供服务。同时他们为软件进行测试, 代表用户提出软件改进意见或者特性请求。他们是开放源代码软件和最终用户之间的桥梁。 任何公司都可以利用开放源代码软件提供服务。


5. 开放源代码软件最终用户:最终用户得到丰厚的回报。 他们无需支付昂贵的license费用;他们选择服务有更大的自由度, 而不必和某个软件供应商锁死; 同时他们可以提出软件改进的新特性。
6. 志愿者:志愿者可从自由软件中学习到众多技能,同时他们参与软件的测试、捐献自己的代码。 广大的志愿者是开放源代码软件长久发展的重要基石。

6. 政府: 政府在整个生态系统中将起到指导性的作用,他将给开源码软件的使用提供有力的政策上的支持。


相信这种新的基于开放源码软件的商业模式将给我们带来很多的发展机会, 特别是对中小型的软件公司, 只有利用这种新的商业模式,打破已有的游戏规则, 才有可能获得发展.

参考:

1. Eric Raymond <<大教堂和市集>>

2. HP Linux文集