2006年11月13日,Sun宣布决定开始在GPL v.2许可下开放Java SE和ME的源代码的进程。该决定受到了广泛的欢迎,尽管Sun因此损失了两位高级执行官(他们都以开放源码策略作为其离开的主要原因)。副总裁及老前辈Graham Hamilton,他帮助建立了JCP并领导过Java SE团队一段时间,在宣布该消息几星期之内就离开了。就在最近,全球信息系统策略副总裁Larry Singer也离开了,并再次表明Sun的开源策略是其离开的重要因素。
头一年的确没有什么进展。由于开发者对发布补丁到OpenJDK中的进程感到不满,Roman Kennke被淹没在开发者们不悦的抱怨声中。针对JCK(Java兼容性工具——Java Comparability Kit)依然未定的许可约束已导致了Sun和Apache公开的争吵,Apache需要JCK认证他们Java SE的Harmoy实现。这一回合已经在JCP成员中间导致了一些不好的情绪,从最近的投票评论中可以看到这一点。Harmony本身已经引发了大家对 Java SE领域可能分裂的关注,而Google最新宣布的Android平台,使用了一些Harmony类库,这使大家进一步确信Java的分裂,因为它只支持 Java SE/ME类库的一小部分子集,而且为它开发的应用程序使用了一种适当的二进制格式而非Java字节码。这种格式只能用Google自己的Dalvik虚拟机执行。
Java管理委员会同样受到越来越多的关注。这个临时性团体打算为OpenJDK社区起草一个新的章程并监视用一个永久性组织取代自身的选举过程。然而,从最初开始的六个月里,委员会只有一次面对面的会议,在为形成一个用户选举的管理委员会需要做的工作方面和关于Java的章程方面没有什么显著进展。
然而,该策略也开始导致一些分裂。在SE方面,Red Hat已经宣布同意与Sun在Java开发上进行合作。该交易的首批好处之一是在IcedTea项目上的紧密合作,该项目在一个Linux环境中将Fedora和JBoss技术集成在一起。IcedTeat为OpenJDK项目当中的保留所有权部分(估计占当前代码库的4%左右)提供了自由软件备选,并有希望在如字体光栅和密码技术库方面产出产品可用实现。另外,值得注意的是,IcedTea已经把Java 6引入到Fedora包中,预期Java将会是Red Hat Enterprise Linux的一部分。同时,从Java SE社区上已经能看到对Apple的OSX上缺乏可用的Java 6的反应了——正在进行移植。
在手机和嵌入式领域,phoneME社区已经把Java ME移植到基于Linux的Nokia N800 Internet Tablet上了,还有一项将Java ME移植到Windows CE设备的工作正在进行中。英国最大的移动运营商Vodafone出台了Bvine项目,致力于将地图程序(如Google map)关联到手机的GPS组件上。Telenor还贡献了iLabs mobile项目,以及有着迷人相貌的Bug Labs,它是使用Java ME来为他们的用户装配Linux小部件提供软件栈。此外,Sun的Java ME技术传道士Terrence Barr,引用他的话说他相信Apple在2008年早期为iPhone发布一款SDK的计划将导致Java ME的开源版本phoneME在Apple的iPhone上掀起一股热浪。
Sun决定清除曾经困扰Java应用程序许可问题的主要障碍,无疑将会提高Java在开源开发者中间的声望,而且一个社区正在建立。他们已经声明,自从5月份开源JDK发布以来,截至10月底,已经有将近12700个完整下载。还有迹象表明,该策略可能会填平Sun和它的竞争对手在开发者和中间件工具上的鸿沟。然而,在我们确实了解开源方式能为Sun和Java带来多大好处之前,很难预计有多少困难需要面对,需要经过多长时间。 (infoq中文站)
IBM于开发日中展示最新Jazz协同框架,使用Jazz的API组件,可在Eclipse开发环境中,建立协同开发与项目管理的工具。IBM已使用Jazz打造出第一个Eclipse整合协作模块Rational Team Concert测试版,预估明年中推出正式版。
Eclipse是开放架构,不乏有各种开发协同的功能模块,但大多是各自独立未整合。开发人员必须自行安装所需的版本控制、事件管理、开发流程等模块,各自处理开发过程中不同的协作需求,相当复杂,因此而提高了协同开发的门坎。
IBM软件产品处亚太区Rational业务总监Mike Rhoads表示:「 Jazz框架是针对群组合作的中介技术,提供许多应用组件,可以用来建置群组合作的开发环境。」Jazz包括服务器端和客户端的中介框架,可让Eclipse的各种模块,透过Jazz框架所提供的协作与沟通API组件,彼此传递讯息,将开发过程的异动,储存到Jazz服务器中共享。
目前Jazz框架提供的组件包括群组提醒(Team Awareness)、工作流程(Workflow)、版本控管(Versioning)、安全性(Security)、事件通知(Events Notification)、协作(Collaboration)、搜寻(Search&Query)、持续性(Persistence)等API组件。IBM已使用Jazz组件开发出实际的Eclipse管理模块Rational Team Concert,供开发人员对进行开发流程控管、版本控制、Build管理等。
相较复杂庞大的Rational产品,不同产品需要不同服务器,Team Concert显得精简。联邦网通科技工程师赖旸育表示:「台湾多数企业规模不大,我们需要较小型、简单好用,全部整合的开发协作工具。Team Concert看起来是可考虑的选择。」
不只是Java,连Ruby或其他能透过Eclipse开发的语言,都能透过Team Concert进行协同开发。台湾IBM软件产品处专业顾问张向升表示:「任何开发语言,只要开发模块透过Jazz框架提供的组件与Team Concert的变更管理沟通,就能够使用Team Concert管理。」他强调:「可以将自己的开发程序,打包成Eclipse的模块,像供货商贩卖ERP系统时,也能同时提供具有客制化know how的开发工具。(ITHome)
现在,Web 站点已经成了业务的重要部分,而用来创建和部署 Web 站点的工具也变得更加灵活和容易使用。但是,复杂 Web 应用程序的开发并不轻松,它们需要的不只是标准的交互和更新方法(比如 blog)。组织中的每个应用程序常常还需要进行定制。
开放源码社区提供了各种工具,结合使用这些工具可以为复杂的 Web 应用程序创建一个有用的开发和生产环境。这个系列文章来自 IBM Internet Technology Group 团队,他们将展示如何把开放源码软件作为基础,并提供一种方法和一些改进来帮助简化 Web 站点的开发过程。尽管定制仍然是有必要的,但是这个系列讲解了如何使用开放源码工具和技术快速建立和运行复杂的 Web 站点。
在这个系列中,Internet Technology Group 团队通过一个虚构的组织,International Business Council(IBC),来展示如何更有效地尽可能地扩展 Web 站点的功能,这些功能包括文档存储、讨论组、专门的工作组、研讨会日程安排、日程议题描述、会话过期和其他任务。他们举例说明了创建这个 Web 站点需要用到下列开放源码工具:
- Drupal - 开放源码的内容管理系统
- MySQL - 开放源码的数据库
- PHP - 可以使用 PHPMyAdmin 和 SQLBrowse 创建动态 Web 内容的开发语言
- Apache - 开放源码的 Web 服务器
- Eclipse - 开放源码的开发环境
- CVS - 用于跟踪代码变更的代码管理系统
Internet Technology Group 团队会首先介绍业务场景以及选择开源工具的决定因素,他们还通过描述一个灵活的开发方法来讲解了应用程序的设计流程。这个流程可以用来设计 Web 站点或者应用程序的用户体验。接着,他们会一步一步地指导如何安装和使用前面所提到的开发工具套件。这些步骤包括:
- 建立开发环境
- Drupal 入门
- 着重介绍 Drupal 与其它软件工具的交互(如 MySQL, Ajax 和 PHP)
- 构建 Drupal 定制模块
- 部署和调整安装
沿着这条道路,Internet Technology Group 团队同其他可选方案进行了对比,并讨论了如何通过集成其它软件组件来尽可能地增强这些工具。
全部文章列表:http://www.ibm.com/developerworks/cn/web/osource/index.html
最新出炉的2007年度最佳开源CMS(内容管理)系统名单已经发布.
Joomla不负众望再次获得第一,并不意外,它的系统效率很高,虽然初次上手有些繁琐,可熟悉后,是非常强大的.
而根据Joomla的说明,此次评比获奖所采用的版本是仍在测试中的v1.5rc版.希望它能尽快的发布.这个最佳开源CMS系统的头衔中要加一个定语,就是基于PHP的开源CMS系统.
名单如下:
1. Joomla!
2. Drupal
3. e107
另外还有
Best Open Source Social Networking Content Management System:
最佳开源社会化网络CMS
1. WordPress
2. Drupal, Elgg
Best Other Open Source Content Management System:
最佳其他开源CMS
1. mojoPortal
2. Plone
3. Silva
查看具体获奖名单
(7yan.com.cn)
当去年Novell和Red Hat在中国设立开源社区时,大部分中国公司视而无睹。然而最近,中国本土软件公司已经开始对创立它们自己的开源社区表示出极大的兴趣。 TurboLinux和Red Flag分别建立了Whitefin和Linux-Ren。Red Flag还计划在年底前创立另外两个开源社区——UMPC(与Intel合作)和OpenAsianux。为什么中国公司突然改变了声音呢?
TurboLinux总经理Zhou Qun表示:有两个原因促使TurboLinux设立Whitefin:缺少开源人才使公司的发展受到了阻碍,所以他们希望通过社区发现更多的人才;另外他们也希望通过Whitefin推广公司的桌面系统。
这个改变的部分动力源自中国政府,政府当下将开源社区视作其软件工业的核心,并将在“十一五”期间(2006-2010)投入大量资源。“作为中国 Linux产业的一个标志,Red Flag无疑有更多的责任来提倡政府的新战略。对于一个政府支持的中国企业来说,站一个好位置是至关重要的。”一位不愿透露姓名的中国Linux专家如是 说。这些新的企业支持的开源社区是幸运的,他们从企业获得支持,同时,这些企业又从政府获得支持。
直接由政府支持的社区同样幸运。比如说,开源大学推广联盟领袖,由浙江省政府支持,在成立之初取得了1,250,000美元的推广基金。三成以上来自政府,而其余的大部分都来自政府支持的企业。
与此相比,一些志愿者开源社区困境缠身。像LinuxSir,ChinaJavaWorld,JavaUnion和Huihoo这样的社区很活跃,但没有政府作后盾,所以为了开源理想而奉献的程序员们才是他们的“骨干”。
然而,骨干是脆弱的。许多中国程序员信仰苦干与挣钱,对开源没有任何贡献。许多程序员每周为公司工作五、六十小时以上,不可能为开源社区作贡献。“在中国,生存压力只允许少部分程序员有意愿、时间和可能性去为开源发展出力”来自中国政府软件部门的专家Yang Wei如是说。结果,在一些社区里可能只有一小部分“骨干”,如果他们因为钱的问题而陷入繁忙之中,他们的社区就可能消失。
尽管如此,这些“骨干”看起来并不担心他们面临的困难。“我认为这些政府支持的社区很好。如果可能我愿意去那里。毕竟,他们有更多的金钱与力量给我们一个好的环境去推动开源产业。”一位经常访问LinuxSir的中国程序员Chen Jiong如是说。
但是Chen也认为新的开源社区无法在短期内改善这个产业,“毕竟,中国开源产业的瓶颈是缺少奉献型人才。社区不可能一夜之间诞生出许多新的程序员,这是一个长期的工作。”
另一位LinuxSir的固定访问者,Zhang说新的开源社区也许会产生负面的冲击。“太多的新社区会打破本来就稀少的中国开源程序员之间的合作关系,所以我认为社区间的合作是非常重要的,至少现在如此。”
甲骨文公司今天在美国总部推出了其面向PHP语言、增强型的Oracle呼叫界面(Oracle Call Interface,简称OCI8)数据库驱动的预览版软件,并宣布把它捐献给开源社区。
此举再次表明甲骨文继续履行着其对开源社区的长期承诺。此举不但有助于给PHP应用产品带来突破性的可扩展性,而且将进一步增强PHP作为关键任务应用产品的可行开发环境的地位。面向PHP的OCI8数据库驱动支持重要的Oracle数据库功能,如连接池及快速应用通知等,使一个业界标准服务器就能够支持成千上万个数据库连接,同时又能提供高度的可用性。
甲骨文公司服务器技术产品战略副总裁Ken Jacobs表示:“利用甲骨文带给PHP社区的新型企业级功能,我们希望能进一步增强PHP作为首选工具的地位,扩大Oracle数据库在Web 2.0及关键任务企业应用部署方面的使用。”
面向PHP的增强型OCI8数据库驱动软件提供了PHP与Oracle数据库11g 之间新型的、改善的集成,使服务器端连接池能在各个网页服务器及不同语言之间共享,从而大大增强了以网页为基础的系统的可扩展性。该软件的亮点包括:
突破性的可扩展性 – 利用Oracle数据库11g的数据库驻留连接池功能,可帮大量用户大大降低存储功耗。运行于不同系统之上的多个网页服务器可以共享一个数据库连接池,有助于进一步降低系统资源的消耗。
高度的可用性 – 利用Oracle实时应用集群以及Oracle数据灾难防护,支持Oracle数据库的高级功能,如快速应用通知等。这个功能有助于降低PHP应用软件的宕机时间,提供其可用性水平。
扩展的兼容性 – 现有的PHP应用软件可以利用数据库驻留连接池与快速应用通知功能而不必改变应用代码,从而可以立即提高其可扩展性,可以更有效地利用硬件并降低总体拥有成本。
三年多来,甲骨文一直不懈努力,为PHP开发人员提供企业级功能,包括与Zend 科技公司在开发面向PHP的OCIB数据驱动以及Zend Core for Oracle方面进行协作。Zend Core for Oracle是一个预置的软件包,具有PHP 5 分配以及Oracle数据库客户资料库,使在一个强壮、可扩展、可靠的基础设施上开发、部署应用产品变得更加容易。
Zend科技公司共同创始人兼联合首席技术官Andi Gutmans表示: “对于甲骨文最近向开源社区捐献的举措,以及新的PHP OCI8驱动会给PHP社区带来的诸多益处,我们感到非常兴奋。利用这个增强型驱动,PHP开发人员,以及架构师和数据库管理人员,都将受益于突破性的可扩展性及高度的可用性,而现有的PHP应用产品也可以利用这些益处而无需改变应用代码。”
甲骨文与开源
作为开源社区的长期核心捐献者,甲骨文公司致力于开发、支持并普及开源软件。甲骨文一直并将继续致力于为最终用户提供多样选择、高度的灵活性以及更低的计算成本。通过在开发、测试、优化及支持Linux、 PHP、 Apache、 Eclipse、 Berkeley DB和 InnoDB等开源技术上进行大量投资,甲骨文显然在支持开源解决方案,并把它们作为开发和部署的可行选择提供给客户。今天,很多客户都在关键业务环境中使用甲骨文及其他得到支持的开源技术,以获得更低成本、更轻松的可管理性、更高的可用性及可靠性方面的诸多益处,以及绩效与可扩展性优势。(csdn)
Spring Framework 【Java开源 J2EE框架】
Spring 是一个解决了许多在J2EE开发中常见的问题的强大框架。 Spring提供了管理业务对象的一致方法并且鼓励了注入对接口编程而不是对类编程的良好习惯。Spring的架构基础是基于使用JavaBean属性的 Inversion of Control容器。然而,这仅仅是完整图景中的一部分:Spring在使用IoC容器作为构建完关注所有架构层的完整解决方案方面是独一无二的。 Spring提供了唯一的数据访问抽象,包括简单和有效率的JDBC框架,极大的改进了效率并且减少了可能的错误。Spring的数据访问架构还集成了 Hibernate和其他O/R mapping解决方案。Spring还提供了唯一的事务管理抽象,它能够在各种底层事务管理技术,例如JTA或者JDBC事务提供一个一致的编程模型。 Spring提供了一个用标准Java语言编写的AOP框架,它给POJOs提供了声明式的事务管理和其他企业事务--如果你需要--还能实现你自己的 aspects。这个框架足够强大,使得应用程序能够抛开EJB的复杂性,同时享受着和传统EJB相关的关键服务。Spring还提供了可以和IoC容器 集成的强大而灵活的MVC Web框架。【SpringIDE:Eclipse平台下一个辅助开发插件】.
WebWork 【Java开源 Web框架】
WebWork 是由OpenSymphony组织开发的,致力于组件化和代码重用的拉出式MVC模式J2EE Web框架。WebWork目前最新版本是2.1,现在的WebWork2.x前身是Rickard Oberg开发的WebWork,但现在WebWork已经被拆分成了Xwork1和WebWork2两个项目。 Xwork简洁、灵活功能强大,它是一个标准的Command模式实现,并且完全从web层脱离出来。 Xwork提供了很多核心功能:前端拦截机(interceptor),运行时表单属性验证,类型转换,强大的表达式语言(OGNL – the Object Graph Notation Language),IoC(Inversion of Control倒置控制)容器等。 WebWork2建立在Xwork之上,处理HTTP的响应和请求。WebWork2使用ServletDispatcher将HTTP请求的变成 Action(业务层Action类), session(会话)application(应用程序)范围的映射,request请求参数映射。WebWork2支持多视图表示,视图部分可以使用 JSP, Velocity, FreeMarker, JasperReports,XML等。在WebWork2.2中添加了对AJAX的支持,这支持是构建在DWR与Dojo这两个框架的基础之上. 【EclipseWork:用于WebWork辅助开发的一个Eclipse插件】
Struts 【Java开源 Web框架】
Struts 是一个基于Sun J2EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的。由于Struts能充分满足应用开发的需求,简单易用,敏捷迅速,在过去的一 年中颇受关注。Struts把Servlet、JSP、自定义标签和信息资源(message resources)整合到一个统一的框架中,开发人员利用其进行开发时不用再自己编码实现全套MVC模式,极大的节省了时间,所以说Struts是一个 非常不错的应用框架。【StrutsIDE:用于Struts辅助开发的一个Eclipse插件】
Hibernate 【Java开源 持久层框架】
Hibernate 是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序实用,也可以在Servlet/JSP的Web应用中使用,最具革命 意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。Eclipse平台下的Hibernate辅助开发工 具:【Hibernate Synchronizer】【MiddlegenIDE】
Quartz 【Java开源 日程安排(Job Schedulers)】
Quartz 是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个, 甚至是好几万个Jobs这样复杂的日程序表。Jobs可以做成标准的Java组件或 EJBs。Quartz的最新版本为Quartz 1.5.0。
Velocity 【Java开源 模板引擎】
Velocity 是一个基于java的模板引擎(template engine)。它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象。当Velocity应用于web开发时,界面设计人员可以和java程序开发人员同步开发一个遵循 MVC架构的web站点,也就是说,页面设计人员可以只关注页面的显示效果,而由java程序开发人员关注业务逻辑编码。Velocity将java代码 从web页面中分离出来,这样为web站点的长期维护提供了便利,同时也为我们在JSP和PHP之外又提供了一种可选的方案。 Velocity的能力远不止web站点开发这个领域,例如,它可以从模板(template)产生SQL和PostScript、XML,它也可以被当 作一个独立工具来产生源代码和报告,或者作为其他系统的集成组件使用。Velocity也可以为Turbine web开发架构提供模板服务(template service)。Velocity+Turbine提供一个模板服务的方式允许一个web应用以一个真正的MVC模型进行开发。 【VeloEclipse :Velocity在Eclipse平台下的一个辅助开发插件】
IBATIS 【Java开源 持久层框架】
使 用ibatis 提供的ORM机制,对业务逻辑实现人员而言,面对的是纯粹的Java对象, 这一层与通过Hibernate 实现ORM 而言基本一致,而对于具体的数据操作,Hibernate 会自动生成SQL 语句,而ibatis 则要求开发者编写具体的SQL 语句。相对Hibernate等 “全自动”ORM机制而言,ibatis 以SQL开发的工作量和数据库移植性上的让步,为系统设计提供了更大的自由空间。作为“全自动”ORM 实现的一种有益补充,ibatis 的出现显 得别具意义。
Compiere ERP 【Java开源 ERP与客户关系管理】
这一高价值的商业应用程序,易于安装、易于实 施、易于使用。只需要短短几个小时,您就可以使用申购-采购-发票-付款、报价-订单-发票-收款、产品与定价、资产管理、客户关系、供应商关系、员工关 系、经营业绩分析等强大功能了!功能未减,实施时间缩减到 4 小时。最重要的是:这一高价值的商业应用程序是免费的!可以自行安装和实施这套系统(如果您略懂 Oracle 和 Java 技术)。
中文站点:http://www.compiere-china.com/
Roller Weblogger 【Java开源 博客(Blog)】
这 个weblogging 设计得比较精巧,源代码是很好的学习资料。它支持weblogging应有的特性如:评论功能,所见即所得HTML编辑,TrackBack,提供页面模 板,RSS syndication,blogroll管理和提供一个XML-RPC 接口。
displytag 【Java开源 Jsp标签库】
与Struts结合使用最出名的一个tag主要是显示表格数据很漂亮、完善。
JFreeChart 【Java开源 报表制作】
JFreeChart它主要是用来制作各种各样的图表,这些图表包括:饼图、柱状图(普通柱状图以及堆栈柱状图)、线图、区域图、分布图、混合图、甘特图以及一些仪表盘等等。
Eclipse 【Java开源 开发工具】
Eclipse平台是IBM向开发源码社区捐赠的开发框架,它之所以出名并不是因为IBM宣称投入开发的资金总数 —4千万美元,而是因为如此巨大的投入所带来的成果:一个成熟的、精心设计的以及可扩展的体系结构。
Liferay 【Java开源 门户系统】
代 表了完整的J2EE应用,使用了Web、EJB以及JMS等技术,特别是其前台界面部分使用Struts 框架技术,基于XML的portlet配置文件可以自由地动态扩展,使用了Web Services来支持一些远程信息的获取,使用 Apahce Lucene实现全文检索功能。
主要特点:
1、提供单一登陆接口,多认证模式(LDAP或SQL);
2、管理员能通过用户界面轻松管理用户,组,角色;
3、用户能可以根据需要定制个性化的portal layout;
4、能够在主流的J2EE应用服务器上运行,如JBoss+Jetty/Tomcat,JOnAS;
5、支持主流的数据库,如PostgreSQL,MySQL;
6、使用了第三放的开源项目,如Hibernate, Lucene, Struts;
7、支持包括中文在内的多种语言;
8、采用最先进的技术 Java, EJB, JMS, SOAP, XML;
JetSpeed 【Java开源 门户系统】
Jetspeed 是一个开放源代码的企业信息门户(EIP)的实现, 使用的技术是Java和XML. 用户可以使用浏览器, 支持WAP协议的手机或者其它的设备访问Jetspeed架设的信息门户获取信息. Jetspeed扮演着信息集中器的角色, 它能够把信息集中起来并且很容易地提供给用户.
Jetspeed具有如下的特征:
* 即将成为标准化的Java Portlet API
* 基于模板的布局, 包括JSP和Velocity
* 通过开放的内容同步技术支持远程XML内容交换
* 定制默认的主页
* 使用数据库进行用户认证
* 内存缓存技术, 加快页面的响应
* 通过Rich Site Summary技术, 支持同步内容
* 和Cocoon, WebMacro, Velocity集成.
* Wireless Markup Language (WML) 支持
* 使用XML格式的配置文件注册portlet.
* 完整的Web Application Archive (WAR) 支持
* Web应用程序开发的基础设施
* 可以在本地缓存远程内容
* 与Avantgo同步
* 可移植到所有支持JDK1.2和Servlet 2.2的平台
* 与Turbine模块和服务集成
* 可以根据用户, 安装媒体类型和语言的不同设定, 产生不同的个性化服务
* 持续化服务使得所由的portlet能够容易的存储每个用户的状态, 页面和portlet
* 使用皮肤技术使得用户可以选择portlet的颜色和显示属性
* 自定义功能是的管理员可以选择portlet以及定义个人页面的布局
* 在数据库中存储PSML
* 通过Jetspeed的安全portlets管理用户, 组,角色和权限
* 基于角色对访问portlet进行控制
JOnAS 【Java开源 EJB服务器】
JOnAS 是一个开放源代码的J2EE实现,在ObjectWeb协会中开发。整合了Tomcat或Jetty成为它的Web容器,以确保符合Servlet 2.3和JSP 1.2规范。JOnAS服务器依赖或实现以下的Java API:JCA、JDBC、JTA 、JMS、JMX、JNDI、JAAS、JavaMail 。
Turbine 【Java开源 Web框架】
Turbine是基 于Servlet的框架包,也是开放源代码Jakarta项目。目前还没有关于Turbine的大量文档。它类似于Struts,但是有一些主要区别。突 出的一点就是它并没有与JSP耦合。Turbine的特点是它提供了大量可重用的组件。此框架包中包含了大量组件,但是这些组件是离散的。它似乎应该给出 更多的组件库,但是由于它缺少文档,所以很难掌握完整的体系结构。
Tapestry 【Java开源 Web框架】
Tapestry 是一个开源的基于servlet的应用程序框架,它使用组件对象模型来创建动态的,交互的web应用。一个组件就是任意一个带有jwcid属性的html 标记。其中jwc的意思是Java Web Component。Tapestry使得java代码与html完全分离,利用这个框架开发大型应用变得轻而易举。并且开发的应用很容易维护和升级。 Tapestry支持本地化,其错误报告也很详细。Tapestry主要利用javabean和xml技术进行开发。【Spindle:Tapestry 辅助开发Eclipse插件】.
Lucene 【Java开源 搜索引擎】
Apache Lucene是一个开放源程序的搜寻器引擎,利用它可以轻易地为Java软件加入全文搜寻功能。Lucene的最主要工作是替文件的每一个字作索引,索引 让搜寻的效率比传统的逐字比较大大提高,Lucen提供一组解读,过滤,分析文件,编排和使用索引的API,它的强大之处除了高效和简单外,是最重要的是 使使用者可以随时应自已需要自订其功能。
iText 【Java开源 PDF类库】
iText是一个能够快速产生PDF文件的java类库。iText的java类对于那些要产生包含文本,表格,图形的只读文档是很有用的。它的类库尤其与java Servlet有很好的给合。使用iText与PDF能够使你正确的控制Servlet的输出。
Beanshell 【Java开源 脚本语言】
Beanshell 是用Java写成的,一个小型的、免费的、可以下载的、嵌入式的Java源代码解释器,具有对象脚本语言特性。BeanShell执行标准Java语句和 表达式,另外包括一些脚本命令和语法。它将脚本化对象看作简单闭包方法(simple method closure)来支持,就如同在Perl和JavaScript中的一样。 它具有以下的一些特点:使用Java反射API以提供Java语句和表达式 的实时解释执行;可以透明地访问任何Java对象和API;可以在命令行模式、控制台模式、小程序模式和远程线程服务器模式等四种模式下面运行;与在应用 程序中一样,可以在小程序中(Applet)正常运行(无需编译器或者类装载器);非常精简的解释器jar文件大小为175k
OpenCms 【Java开源 内容管理系统(CMS)】
OpenCms 是一个J2EE的产品,它是用Java写成的。它和Tomcat捆绑在一起。但是也能够使用ATG Dynamo、WebLogic和WebSphere。OpenCms支持多种RDBMS来保存内容,包括Oracle、SQL Server、Sybase和mySQL。新版本提供了一个新的模板引擎,JSP支持,一种新的连接管理系统,提高了稳定性。
JUnit 【Java开源 Java测试工具】
JUnit 是由 Erich Gamma 和 Kent Beck 编写的一个回归测试框架(regression testing framework)。Junit测试是程序员测试,即所谓白盒测试,因为程序员知道被测试的软件如何(How)完成功能和完成什么样(What)的功 能。Junit是一套框架,继承TestCase类,就可以用Junit进行自动测试了。
opencrx 【Java开源 ERP与客户关系管理】
opencrx 很容易与你现存的系统集成 (ERP, IVR, CTI, ...)是你对你以前投资的最大保护而且openCRX支持大多数通用技术,例如 RMI, CORBA, JMS, SOAP, 以及 JCA; openCRX也包括了支持典型插件的智能前台,例如文档管理,库存跟踪, 设备管理,等. openCRX 可以运行于任意J2EE兼容的应用服务器 (e.g. JBoss, BEA WebLogic or IBM WebSphere) 和主流数据库 (e.g. MaxDB, Firebird, PostgreSQL, MS SQL, Oracle, or IBM DB2). 容易定制 基于 XML 的定制:径直的,迅速的以及可行的(包括多语言特性) 容易扩展写下你自己的工作流,或者发展可扩展的—得益于openCRX的基于组件的体系和像 J2EE,MDA 等的开放标准,这是一个很简单的任务。(摘自http://www.opencrx.com.cn/crx/)
BlueJ 【Java开源 开发工具】
BlueJ是一个专门为入门级教学设计的JavaTM 开发环境。它是由澳大利亚墨尔本Monash大学BlueJ小组设计并开发的。
XWiki 【Java开源 Wiki引擎】
XWiki是一个强大的Java开源的Wiki引擎。它支持一些受欢迎的特性如:
* 内容管理(浏览/编辑/预览/保存),
* 支持附件,
* 版本控制,
* 全文本搜索,
* 权限管理
* 使用Hibernate进行数据存储,
* RSS输出与显示外部的RSS feeds,
* 多语言支持,
* 提供XML/RPC的API,
* WYSIWYG HTML编辑器,
* 导出为PDF
* Groovy脚本支持等等....。
EJBCA 【Java开源 网络服务器】
EJBCA是一个全功能的CA系统软件,它基于J2EE技术,并提供了一个强大的、高性能并基于组件的CA。EJBCA兼具灵活性和平台独立性,能够独立使用,也能和任何J2EE应用程序集成。
Laszlo 【Java开源 XML用户界面工具包】
利用OpenLaszlo免费平台可以快速地,简单地开发漂亮Web 应用程序。这些Web应用程序可以运行在当前任何流行的浏览器与桌面操作系统。它只需要一个XML文件。【IDE4Laszlo:Eclipse下的辅助开发工具】
JXTA 【Java开源 其它开源项目】
Sun微系统公司公开了旨在建立P2P(Peer to Peer)通用技术基础的JXTA计划。JXTA技术是网络编程和计算的平台,用以解决现代分布计算尤其是点对点(P2P)计算中出现的问题。
JXTA 将建立核心的网络计算技术,提供支持在任何平台、任何地方以及任何时间实现P2P计算的一整套简单、小巧和灵活的机制。JXTA首先将归纳目前P2P的功 能特别,而后建立核心的技术来表达目前的P2P计算的局限性。其重点是创建基本的机制,而具体的策略选择权则交给应用的开发者。JXTA将充分利用 XML、Java等开放技术,使得UNIX操作系统更强大和灵活,比如利用管道(Pipes)传输Shell命令实现复杂的计算任务。JXTA支持P2P 应用的基本功能来建立一个P2P系统,还将努力证实这些可以成为建立更高层功能的基础构造模块。JXTA架构可以分为三个层面:JXTA核心层、JXTA 业务层和JXTA应用层。
首先,要对几个概念有所了解:
1. Contributors 和 Recipients
Contributors 指的是对某个开源软件或项目提供了代码(包括最初的或者修改过的)发布的人或者实体(团队、公司、组织等),Contributors 按照参与某个软件开源的时间先后,可以分为 an initial Contributor 和 subsequent Contributors .
Recipients指的是开源软件或项目的获取者,显然,subsequent Contributors 也属于 Recipients之列.
2. Source Code 和 Object Code
Source Code 指的是各种语言写成的源代码,通过Source Code,结合文档, 可以了解到整个软件的体系结构及具体到某个功能函数的实现方法等.
Object Code 指的是Source Code 经过编译之后,生成的类似于“类库”一样的,提供各种接口供他人使用的目标码,按我的理解,它就是像常见的DLL、ActiveX、OCX控件性质的东西.(不知道这样理解对不对)
分清楚这两个概念的目的在于,有些开源,只发布Object Code ,当然,大多数发布的是Source Code.很多协议也对 “你发布的是哪种Code的时候应该怎样”,有着明确的约束.
3. Derivative Module 和 Separate Module
Derivative Module 指的是,依托或包含“最初的”或者“从别人处获取的”开源代码而产生的代码,是原“源代码”的增强(不等于增加)、改善和延续的模块,意为“衍生模块”.
Separate Module 指的是,参考或借助原“源代码”,开发出的独立的,不包含、不依赖于原“源代码模块”,意为“独立的模块”.理解这两个概念的目的在于,很多协议对涉及到商业发布的时候,会有哪些是衍生的,哪些是独立的,有着明确的商业发布规定.
现今存在的开源协议很多,而经过Open Source Initiative组织通过批准的开源协议目前有58种.我们在常见的开源协议如BSD, GPL, LGPL,MIT等都是OSI批准的协议.如果要开源自己的代码,最好也是选择这些被批准的开源协议.
这里我们来看四种最常用的开源协议及它们的适用范围,供那些准备开源或者使用开源产品的开发人员/厂家参考.
BSD开源协议(Berkeley Software Distribution )
BSD开源协议是一个给予使用者很大自由的协议.基本上使用者可以“为所欲为”可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件 再发布.但“为所欲为”的前提当你发布使用了BSD协议的代码,或则以BSD协议代码为基础做二次开发自己的产品时,需要满足三个条件:
1. 如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议.
2. 如果再发布的只是二进制类库/软件,则需要在类库/软件的文档和版权声明中包含原来代码中的BSD协议.
3. 不可以用开源代码的作者/机构名字和原来产品的名字做市场推广.
其实这几个规则约定的目的也只是达到一个目的:是他人的东西,别人以BSD开源了,你就不能不做任何声明而占为己有,更不能用他人的名义来做商业推广.你只对你自己的东西拥有绝对控制权.
举个例子,你用开源代码(A)修改或做其他增添之后,产生了产品B,这时候,你对B的控制由你自己决定,你可以用任何协议再开源,也可以闭源商业发布. 但,因为如果B中包含了A或A的一部分(一点都不包含就不叫修改了),那你在B产品的版权声明中,必须有提到你有使用到 A ,并且附带上 A 的开源协议.而且不能做商业推广的时候将B 冠以原开源作者的名义以促进商业推广.
BSD代码鼓励代码共享,但需要尊重代码作者的著作权.BSD由于允许使用者修改和重新发布代码,也允许使用或在BSD代码上
开发商业软件发布和销售,因此是对商业集成很友好的协议.而很多的公司企业在选用开源产品的时候都首选BSD协议,因为可以完全控制这些第三方的代码,在必要的时候可以修改或者二次开发.
Apache Licence 2.0
Apache Licence是著名的非盈利开源组织Apache采用的协议.该协议和BSD类似,同样鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布(作为开源或商业软件).需要满足的条件也和BSD类似:
1. 需要给代码的用户一份Apache Licence
2. 如果你修改了代码,需要再被修改的文件中说明.
3. 在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议,商标,专利声明和其他原来作者规定需要包含的说明.
4. 如果再发布的产品中包含一个Notice文件,则在Notice文件中需要带有Apache Licence.你可以在Notice中增加自己的许可,但不可以表现为对Apache Licence构成更改.
Apache Licence也是对商业应用友好的许可.使用者也可以在需要的时候修改代码来满足需要并作为开源或商业产品发布/销售.
GPL (Gun General Public License)vesion 2.0 1991
我们很熟悉的Linux就是采用了GPL.GPL协议和BSD, Apache Licence等鼓励代码重用的许可很不一样.GPL的出发点是代码的开源/免费使用和引用/修改/衍生代码的开源/免费使用,但不允许修改后和衍生的代 码做为闭源的商业软件发布和销售.这也就是为什么我们能用免费的各种linux,包括商业公司的linux和linux上各种各样的由个人,组织,以及商 业软件公司开发的免费软件了.
GPL协议的主要内容是只要在一个软件中使用(“使用”指类库引用,修改后的代码或者衍生代码) GPL协议的产品,则该软件产品必须也采用 GPL协议,既必须也是开源和免费.这就是所谓的“传染性”.GPL协议的产品作为一个单独的产品使用没有任何问题,还可以享受免费的优势.
由于GPL严格要求使用了GPL类库的软件产品必须使用GPL协议,对于使用GPL协议的开源代码,商业软件或者对代码有保密要求的部门就不适合集成/采用作为类库和二次开发的基础.
最常见的开源协议,使用它作为授权协议的有大名鼎鼎的 Linux .GPL最显著的两个特点就是网上称为的“病毒性传播”和“不允许闭源的商业发布”.
所谓的“病毒性传播”,指的是,GPL规定,所有从GPL协议授权的源码衍生出来的(即上面提到的Derivative Module),或者要跟GPL授权的源码混着用的Project,都要遵循GPL协议,就像病毒一样,粘上了关系,就“中毒”了.GPL这样规定的目的 是,保证在GPL协议保护下的产品,不会再受到其他协议或者授权的约束.即让跟GPL有关系的源码都能免费获取.举个例子,如果你的改进的Linux中使 用了GPL授权下的开源模块(也必须使用,你不可能自己重新去做个内核吧,如果做出来了,你也没必要叫Linux了.),那么你整个Linux产品也必须 遵循GPL协议去开源,不能以其他方式去开源发布,更不允许闭源发布.这样一来,就不会出现这样一个Linux--这个功能是GPL协议授权的,可以免费 获取源码,而另外一个功能是其他协议下的,拿不到源码.这点规定对使用或者研究该产品的人来说,是一个极大的便利.
而“不允许闭 源商业发布”指的是,在GPL授权下,你的软件产品可以商业发布,拿去卖钱,但是在这同时,你也必须将该产品的源码以GPL协议方式开源发布出去,供他人 免费获取.也许有人会迷惑,拿去卖,又同时开源,那谁来买阿?这个产品怎么赚钱呢??这就涉及到开源产品的商业模式的问题了,想了解相关一些信息的话,可 以看看以上我给出链接的一些文章.至于后面,可能会写一篇关于开源项目的商业模式的随笔.
GPL协议下的商业发布的一个关键点就 像 Java 视线论坛的 Robbin所说的,GPL是针对软件源代码的版权,而不是针对软件编译后二进制版本的版权.你有权免费获得软件的源代码,但是你没有权力免费获得软件的 二进制发行版本.GP对软件发行版本唯一的限制就是:你的发行版本必须把完整的源代码一同提供.
它细节如再发布的时候需要伴随GPL协议等和BSD/Apache等类似.
LGPL
LGPL是GPL的一个为主要为类库使用设计的开源协议.和GPL要求任何使用/修改/衍生之GPL类库的的软件必须采用GPL协议不同. LGPL允许商业软件通过类库引用(link)方式使用LGPL类库而不需要开源商业软件的代码.这使得采用LGPL协议的开源代码可以被商业软件作为类 库引用并发布和销售.
但是如果修改LGPL协议的代码或者衍生,则所有修改的代码,涉及修改部分的额外代码和衍生的代码都必须采 用LGPL协议.因此LGPL协议的开源代码很适合作为第三方类库被商业软件引用,但不适合希望以LGPL协议代码为基础,通过修改和衍生的方式做二次开 发的商业软件采用.
GPL/LGPL都保障原作者的知识产权,避免有人利用开源代码复制并开发类似的产品.
CPL(Common Public Liecense) vesion 1.0
CPL是IBM 提出的并通过了OSI(Open Source Initiative)批准的开源协议.主要用于一些IBM或跟IBM相关的开源软件/项目中.如很著名的Java开发环境 Eclipse 、RIA开发平台Open Laszlo等.
CPL也是一项对商业应用友好的协议.它允许 Recipients 对源码进行任意的使用、复制、分发、传播、展示、修改以及改后做闭源的二次商业发布,这点跟 BSD 很类似,也属于自由度比较高的开源协议.但是,需要遵循:
1. 当一个Contributors将源码的整体或部分再次开源发布的时候,必须继续遵循 CPL开源协议来发布,而不能改用其他协议发布.除非你得到了原“源码”Owner 的授权.
2. CPL协议下,你可以将源码不做任何修改来商业发布.但如果你要将修改后的源码其开源,而且当你再发布的是Object Code的时候,你必须声明它的Source Code 是可以获取的,而且要告知获取方法.
3. 当你需要将CPL下的源码作为一部分跟其他私有的源码混和着成为一个 Project 发布的时候,你可以将整个Project/Product 以私人的协议发布,但要声明哪一部分代码是CPL下的,而且声明那部分代码继续遵循CPL.
4. 独立的模块(Separate Module),不需要开源.
对于喜欢用开放源码软 件架设入口网站或讨论区的爱好者而言,著名的 PHP CMS (Content Management System, CMS) 如 PHP-Nuke、XOOPS都已经耳熟能详,但另一套同样采用PHP语言撰写的 Joomla!却以后起新秀之势搏得使用者关爱的眼神。
如 同其它入口网站架站软件,Joomla! 同样有管理系统、多国语言接口、简单但功能强大的样版系统、阶层式的用户存取群组、内容评等系统、支持多种所视即所得 (WYSIWYG) 内容编辑程序、支持 RSS、简单的文件审核、内容显示排程、资源管理功能、访客统计与投票功能、广告广告牌管理、在线说明文件等。
相较于其它入口网站系统,Joomla!具有以下特色:
·易用功能与丰富外挂
Joomla! 中文化计划主持人 Eddy Chang 表示,Joomla! 为了体贴新手,将简单与进阶管理功能分开,让人不至于一进到管理接口后,便因繁复的接口而慌了手脚;内容自动化程序技术 (mambots) 让使用者更容易插入 Youtube 等外挂程序;网页快取机制可解决服务器端数据库忙碌问题,提升 local 端点击网页的效能;SEO 搜寻引擎最佳化则可让使用者在浩瀚网海中,更易透过搜寻引擎寻找到以 Joomla! 架设的网站。
但让 Eddy 觉得Joomla!对使用者乃至于企业最重要的功能,可能在于其超过 1000 种丰富齐全的外挂程序。从项目管理乃至于 CRM 都有外挂程序,即使该程序要付费,价格也非常低廉,使用者因此可以省下再造轮子的麻烦直接使用,非常方便。Eddy 认为,Joomla! 的目的在创造类似像Windows 那样对使用者而言容易安装与使用的平台,嘉惠了许多无法自行撰写程序的使用者,并鼓励使用者撰写外挂程序,也由于Joomla! 多样化的功能、且有完整的支持体系,让当初单纯只想架设游戏网站的Eddy Chang一接触后便不可自拔而投身其中,进一步成为 Joomla! 中文化计划主持人,甚至成立公司、用 Joomla! 为客户架设网站与提供技术咨询等服务。
·Joomla! 中文化社群现况
Joomla! 中文化计划主要开发内容包括 Joomla! 接口中文化、使用手册翻译、解决中文版使用问题等。因为大陆地区目前无人主导简体中文翻译,故正体与简体翻译均由 Eddy 和几位成员着手翻译,Eddy 表示,翻译的好处是一来可以统一专有名词避免出现歧义、创造共通的语言,再者可以自行决定该使用何种语汇、一旦决定后使用者均须遵守。
会员间的意见交流与错误汇报主要均在 TaiwanJoomla 官方网站上的讨论区进行,目前已经有五千名注册会员、其中亦包括许多大陆使用者。
由 于其简单易用的安装与操作方式、众多价美物廉的商业模块支持,使得 Joomla! 在近两年的时间内快速崛起。根据估计,中国台湾地区与大陆的使用人数应该已经有五万人之多。日前 Joomla! 在中国台湾地区下载数已突破三万两千次,登上项目下载排行第七名,现在在两岸间估计更有约五万名使用者社群,成为PHP社群中一颗不容忽视的新星。
·Joomla!应用实例
Joomla! 不只受到社群玩家的青睐,更有人将之用在商业运用或日常生活,进一步改善他人生活或增进工作效能。
例 如任职于 BenQ 的林先生则是利用 Joomla! 为自己所属的部门(约一百多人)架设内部网站,作为交换信息与文件的平台,如放置专业术语等。由于部门的同仁工作地点遍布中国台湾地区、大陆与印度,新同 仁进来时,常不清楚一些专业术语要如何得知,因此架设该内部网站方便各地的同仁搜寻。林先生表示,他之所以采用 Joomla!,是因为有众多模块可供选择,且后台管理非常华丽且方便,也有较多的支持,当他在 Joomla! 管理上遇到问题时,Joomla! 中文使用手册与讨论区就给他非常多的帮忙。此外,亦有不少商业公司采用 Joomla! 架设公司入口网站,如光宝电子、麒麟啤酒、多芬自信基金会……等,TaiwanJoomla 还细心整理采用 Joomla! 的酷站列表,提供有兴趣的网友参考。
就读于中原资管所的 melody,去年暑假跟随该所的吴肇铭老师到非洲马拉威当信息志工,教导当地大学生如何维修计算机、架设网络与设计网站,期待可以为该国培育第一批青年 信息志工。因为教学课程中包含 CMS 架设,她搜集各种架站程序数据后,决定采用同时具有中英文版说明手册的 Joomla!,且 Joomla! 源于非洲语,也能让当地人感觉亲切,果然去当地教学时造成学员的回响,melody 回国后还不停收到学员的询问信件,让她非常感动。除了应用于缩减数字落差的信息教学,melody 平日也使用 joomla 帮老师架教学网站,她认为Joomla! 除了易用、易学、易操作、稳定度高的特点,也有许多样板可供选择,且软件版本更新迅速。
·未来展望
展望 Joomla! 新的一年的发展,当属全球社群的 Joomla! 1.5 版即将推出最为重要,Eddy 表示 Joomla! 1.5 版没有太多新功能推出,但程序源码经过大幅翻修,使用起来会更有效率。
至 于 TaiwanJoomla 在未来的一年除了将推出pre-configuration 版本(预载)、写专书介绍 Joomla! 使用外,亦将推出 Joomla!Day 以提升各界认知,看来经过一年多的发展,Joomla! 已经摆脱过去开发上的种种不顺,今年将会是 Joomla!向外界证明实力。(CNET)
SUN与GlassFish社区今日发表开源应用服务器第2版GlassFish--第5版Java平台企业版应用服务器(Java Platform Enterprise Edition, Java EE 5);而对应之商业化版本:Sun Java System Application Server 9.1也同时推出。
新版本以GlassFish V1为基础更纳入了企业所需的功能特点,诸如集群技术(Clustering)、高级管理、以及破纪录的效能等新增功能包括:
集 群技术(Clustering)能让企业能够将群组服务器,以满足扩充及于内存中复制数据的复原保护功能与高可用度的需求。中央控管功能让企业透过中央管 理接口管理应用服务器集群,以及应用程序部署。Project Metro则是平台互通技术,允许Java技术以及Windows环境下的网络服务(Web Services)之互通。
Open ESB使让网络服务与既存之企业资源能够轻易整合。Java商业整合 (Java Business Integration, JBI)提供标准化方式传递SOA架构以使用网络服务。NetBeans IDE整合让研发人员能够透过设计BPEL (Business Process Execution Language)流程,部署SOA应用程序。
SUN大幅减少其商业化Sun Java System Application Server授权执照与支持成本,降低其主控权,让企业有更多的选择。使用者可以从http://glassfish.java.net下载支持Solaris、Linux、Windows与Mac OS X之GlassFish V2,在所有主流操作系统上导入具更生产力质量之应用服务器。
此外,新推出的NetBeans 6.0 IDE Beta (http://www.netbeans.org) 透过一整合且可配置之IDE,提供了更优良的效能,让研发人员能够轻松选择其所需之工具组、调整其环境设定。NetBeans 6.0 Beta同时新加入了强大的编辑工具,并强化对动态语言(诸如Ruby与JavaScript(TM))之支持;NetBeans 6.0 Beta Ruby亦纳入支持JRuby,让研发人员能够在既存的JAVA程序代码中使用Ruby;其它的特点还包括了:监测与引导功能、本地端历史记录、整合支持 Subversion、与各种整合标准多语系企业应用之功能,让企业应用更快速、成本更经济。
NetBeans最近发布之 NetBeans 6.0未来将同时提供 Common Development and Distribution License (CDDL)与GNU General Public License version 2 (GPLv2)授权。
SUN同时还提供软件开发包,支持其软件服务,从单一附件到完整的研发计划都在其中。