吴治电 谌力    2005-6-16      阅读人次:11045
5月9日,本报推出了开源之旅的专题,并带您游览了第一站:开源数据库,这次请跟随我们进入开源之旅的第二站——开源应用服务器。
        目前,在企业级应用中不可或缺的应用服务器产品也出现了一些开源产品,以JBoss、JOnAS、JFox、Geronimo等为代表的应用服务器软件提供了丰富的特性,在商业软件激烈拼杀的环境中,撑起了另外一道亮丽的风景。
        尽管在J2EE应用服务器领域存在着BEA的WebLogic, IBM的WebSphere等业界巨头的平台软件,但是开源应用服务器仍然有着强大的生命力,尤其是JBoss J2EE应用服务器凭借着技术实力和优异的品质连续两年(2002年的JBoss2.4.4版、2003年的JBoss 3.0)被颇负盛名的JavaWorld评选为最佳Java应用服务器。
        究竟开源应用服务器夺走了商用产品多大市场蛋糕还不得而知,但开源产品确实让许多中小企业先尝到应用服务器的甜头,让更多的企业有机会使用应用服务器构建自己的应用系统。
        有意思的是,IBM最近收购了开源应用服务器厂商Gluecode公司,并表示会保持Gluecode产品开放源代码的特性,将为用户提供一个多样性的选择,用户可以在开始以较低的投入使用Gluecode的开源产品,当业务系统需要更大的扩展和升级,再转到WebSphere平台上来。
        下面从版权、规范支持、设计架构等几个方面介绍目前最有代表性开源应用服务器JBoss 4.0,一方面读者可以由此对开源应用服务器有一个初步的了解,另一方面也对自己选择相关产品有所参考。
         2004年11月,在经过了漫长的4轮开发测试版和2轮预览版的新产品试航阶段之后,JBoss组织最终发布了人们翘首以待的充满了新的功能特性的JBoss 4.0版。

君子爱财   取之有道
         JBoss 4.0服务器秉承了一贯的宗旨,采取开放源代码和免费授权使用的策略,向各种类型和各种规模的组织机构免费开放,同时由于采用了LGPL(Lesser GNU Public License)的授权协议,任何第三方独立软件开发商可以自由地将JBoss 4.0应用服务器作为开发平台或者嵌入自己的应用中。这种授权方式一方面极大地节省了最终用户的投入,提高了整体性价比,同时由于源代码的公开,可以使有专业背景的使用者不仅通过广告效应感受系统的优势,更有可能从其产品的设计等更深层次了解JBoss的质量特性,从而更有效地判别选用的系统是否和自身的业务相契合,尤其对于网络安全性比较关切的行业和应用,这种方式能够确保系统不会存在很多厂商所不为外人知道的小机关。
        当然,对于那些只想利用JBoss而又想节约资金的机构,JBoss组织的核心开发人员提供合理的收费服务,帮助他们进行正确的应用和开发。
        正可谓:君子爱财,取之有道。JBoss不是故意利用信息的不对称性获取利润,而是利用自身的技术和服务意识,获取合理的报酬。从这点来看,这是一种极富发展潜力的商业应用模式。这点对我国的软件产业尤其有很大的启发意义。

J2EE 1.4标准的兼容性
         JBoss的各个版本一直在J2EE业界标准的兼容性方面保持领先。而JBoss 4.0更是将这种标准兼容性达到了极致。JBoss 4.0是业界第一家取得正式J2EE 1.4认证的应用服务器,该认证保证了JBoss 4.0应用服务器完全符合规范的J2EE标准。而这一点对于大规模的企业级异构环境至关重要,它保证了开发人员所开发的J2EE组件(如 EJB等)能够在不同的应用服务器之间安全地使用和无缝迁移。作为企业CIO, J2EE 1.4标准的完全兼容性无疑是应用服务器选择的一个极其重要的砝码。

丰富的先进特性
         在J2EE标准特性方面, JBoss 4.0主要的改进包括: 提供了对J2EE类型的Web服务的支持(包括JAX-RPC方式和WS4EE架构方式),支持新的标准和协议(参考下表及JBOSS网站)。
         而在其他功能的改进继承方面,JBoss 4.0比较重要和创新性的功能包括:面向特性编程(AOP, Aspect-Oriented Programming)模式的支持, 对象存储(又称持久性)框架Hibernate的集成和通过TreeCache技术实现的集群功能的提升和分布式缓存的支持。
        关于这些新特性的详细解释和讨论不是本文的宗旨所在,需要指出的是AOP的支持,使得系统的公用特性能够以服务的形式存在,使得所有的Java对象都可以应用,从而提高面向对象编程的可读性、可维护性和代码的重用性。Hibernate的集成提供了数据库的访问实体Bean之外的另外一种简易和有效的方法。
         所有这些特性,正是J2EE应用服务器领域炙手可热的话题和研究领域,通过相关技术的采用,无疑会增加开发的效率和提升系统的整体性能。 因此从系统的功能特性而言,JBoss 4.0无疑代表了新的J2EE应用服务器的发展方向。

产品架构
         JBoss的架构一直为业界所津津乐道,其原因在于沿用了本身优秀的历史遗产:微内核机制和遵循SOA。 JBoss 4.0应用服务器的层次体系架构可以分为以下的主要层次。
        ● 微内核层:其核心是一个精巧的基于微内核的服务器进程,通过Java管理扩展(JMX, Java Management Extensions)协议,能够提供轻量级的组件模式,进行热部署、高级的类装载机制和生命周期的全程管理。
        ● 服务层: 该层位于微内核层之上,它由一系列通过JMX扩展所产生的服务组成,包括诸如事务处理、消息服务、连接池服务或者安全服务等,系统管理人员可以比较容易地构建、增加或者减少服务而达到最佳的效能,并进行热部署,从而使得系统很容易得到扩展。
        ● 特性层: 该层基于AOP模型,使得JBoss 4.0提供了广泛的通用服务,包括:对象存储、缓存、事务处理、安全和日志等,该框架允许开发人员构造相关的普通Java 对象,并将这些普遍存在的企业级服务运用到随后的开发周期中,而无需改变任何Java代码,极大提高了开发效率。
        ● 应用层:该层为业务应用所赖以存在和运行的所在。
         JBoss 4.0的这种独特的层次架构,使得系统的可伸缩性、可扩展性和灵活性得到极大的保证。
        当然,JBoss应用服务器同样存在一些比较明显的缺陷,如面向开发人员的倾向比较明显,缺乏比较系统的面向管理人员和用户的界面等,但是瑕不掩瑜,我们不能不说,这是一席免费的盛宴,如果你能够有足够的品味来品尝。

三款开源应用服务器产品比较<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
产品名称
JBoss4.0
JOnAS4.1
JFox2.0
产品网址
[url]www.Jboss.com[/url]
Jonas.objectweb.org
EJB的支持
EJB 2.1
EJB 2.1
EJB 2.0
Web-Container的支持
Servlet 2.3和JSP 1.2
Servlet 2.3和JSP 1.2
Servlet 2.3和JSP 1.2
J2EE规范的支持
J2EE 1.4
J2EE 1.3
J2EE 1.3
JMS的支持
JMS 1.1
JMS 1.1
实现部分JMS功能模块
Web服务的支持
JAX-RPC方式和WS4EE架构方式
透过整合AXIS,允许J2EE组件存取“Web服务”
通过XML-RPC支持Web服务

转载于:https://blog.51cto.com/opensource/8685

开源之旅——应用服务器篇相关推荐

  1. 开源之旅之开源企业软件采购指南

    开源之旅之开源企业软件采购指南 ( 2006-02-06 10:31:09)   [导读]:从开源数据库.应用服务器,到开源的Web服务器,我们已经带您领略开源软件世界的旖旎风光.此次的"开 ...

  2. React Native填坑之旅--动画篇

    React Native填坑之旅--Button篇 React Native填坑之旅--动画 React Native填坑之旅--HTTP请求篇 动画是提高用户体验不可缺少的一个元素.恰如其分的动画可 ...

  3. android 测试工具,Android开源项目第四篇:开发及测试工具篇

    本文为那些不错的Android开源项目第四篇--开发工具篇,**主要介绍Android开发工具和测试工具相关的开源项目**. Android开源项目系列汇总已完成,包括: 1.Buck faceboo ...

  4. Github-Client(ANDROID)开源之旅(二) ------ 浅析ActionBarSherkLock

    接上篇博文:Github-Client(ANDROID)开源之旅(一) ------ 初探GitHub 其中提到了Github-Client用到了很多开源的第三方库 首单其冲的便是ActionBarS ...

  5. Android开源框架Afinal第一篇——揭开圣女的面纱

    Android开源框架Afinal第一篇--揭开圣女的面纱 分类: Android开源框架哪点事2013-09-02 14:25 260人阅读 评论(0) 收藏 举报 Afinal 这是Afinal在 ...

  6. 可能是国内最火的开源项目 —— C/C++ 篇

    高性能 TCP/UDP/HTTP 通信框架 HP-Socket https://www.oschina.net/p/hp-socket 评分:9.8,收藏:1404 HP-Socket 是一套通用的高 ...

  7. 第一学期ACM之旅总结篇

    是我大一第一学期ACM之旅总结篇鸭,纪念逝去的青春: 自加入ACM集训队以来已有三个月之久,虽然一开始什么都不懂,但对ACM充满期待与向往.入队以后,通过和队员们一起学习以及各个学长的指导下,我慢慢地 ...

  8. Linux之旅----硬件篇

    linux之旅----硬件篇(DIY) 记得第一次接触电脑应该是小学三年级,那时候的它对我来说只是一个游戏机的概念:极品飞车.红色警戒.CS.热血传奇.......陪我度过了小学懵懂的时光:泡泡堂.梦 ...

  9. Github-Client(ANDROID)开源之旅(四) ------ 简介Roboguice

    Guice是Google开发的一个轻量级,基于Java5(主要运用泛型与注释特性)的依赖注入框架(IOC),Guice非常小而且快.Guice是类型安全的,它能够对构造函数,属性,方法(包含任意个参数 ...

  10. CTF之旅WEB篇(3)--ezunser PHP反序列化

    一.审题 对方朝你扔过来一串代码(当然这次又是蹭的题只说过程和思路): <?php highlight_file(__FILE__); class A{public $name;public $ ...

最新文章

  1. Kernel PCI总线框架
  2. Service 之间如何通信?- 每天5分钟玩转 Docker 容器技术(101)
  3. linux下载哪个python版本-Linux下升级安装Python-3.6.2版本
  4. 【一分钟了解】1em等于多少px,由什么决定?
  5. Qt for ios 设置程序图标(logo)和启动页(splash)
  6. 播放2.0:Akka,Rest,Json和依赖项
  7. 路由与交换技术(铺垫内容)
  8. Flask cookie API(response.set_cookie,request.cookies)
  9. ubuntu 16.0 CUDA 10.1卸载 CUDA 10.2 安装
  10. 医院耗材管理系统开发_8
  11. cada0图纸尺寸_a0图纸尺寸
  12. html 左侧固定导航栏,前端布局-固定导航栏与侧边栏
  13. JDBC的批处理和事务
  14. 尚学堂视频笔记三:容器
  15. 作为一名程序员未来的出路究竟在哪里?
  16. FreeIPA FreeRadius FreeOTP 实现双因素认证登录
  17. windows和linux双系统
  18. 芯海科技(深圳)股份有限公司实习生面经
  19. 安装NVIDIA驱动与CUDA教程(+cuDNN)(终极版)
  20. 深度学习 - 其本质是什么?

热门文章

  1. 苏宁易购工作怎么样_中原万达百货换上“苏宁易购”下一个会是家乐福吗
  2. C++基础:第八章 深入IO
  3. ajax动态的给表格添加数据,jQuery+ajax实现动态添加表格tr td功能示例
  4. 力扣-747 至少是其他数字两倍的最大数
  5. Flutter进阶第14篇:支付宝支付【下】
  6. 如何利用Google谷歌浏览器来查看GET或POST请求以及传递的数据
  7. Android BroadcastReceiver(三)
  8. USB接口的TP概率性不工作需重启才恢复问题定位
  9. 2 创建型模式之 - 工厂模式
  10. 移植opencv2.4.9到android过程记录