last modified: 2003.04.27
jboss开放源代码的ejb服务器
(来源:http://www.swm.com.cn)
j2ee在sun和ibm等公司的努力下逐渐成为工业标准,现在大约有几十家j2ee应用服务器提供商。最流行的j2ee服务器报价为50000美元(中等规模的安装)。中小企业和普通开发者是无力承担的。
j2ee主要包含以下规范:
* 中间件(middleware) 包括enterprise java bean (ejb)和java message service (jms)等分布式企业计算的构件(component)。
* 名称和目录 jndi(java naming and directory interface)api用于查找服务和构件。
* 表示(presentation) 服务器端小程序(servlet)和java 服务器页(jsp)支持web/http浏览器访问
* 事务(transaction) java transaction api(jta)/java transaction service(jts)。
关于j2ee的详细资料请参阅其凯发k8网页登录主页http://java.sun.com/j2ee/。
ejb作为j2ee架构中最重要的构件,是服务器端分布式计算模型的核心。ejb服务器是ejb的容器,控制ejb的运行,并且为它提供重要的系统级的服务—事务处理、安全、远端访问、数据库访问等。由此带来的是应用开发的简化,按照ejb的规范开发ejb,运行时由ejb容器负责事务处理,安全,生命周期。典型的j2ee多层应用的结构见图
1,中间层就是j2ee应用服务器,包含web服务器和ejb服务器。web服务器包含web容器和web构件(servlet和jsp),ejb服务器包含ejb容器和ejb部件。客户程序包含各种web浏览器和应用程序,eis为传统的数据库和企业应用(erp等)。客户程序与中间层通过http,https,rmi,corba等协议进行数据交换,中间层与eis通过jdbc等方法实现通讯。
ejb服务器是j2ee应用服务器的一个重要部分。sun的j2ee sdk,ibm的websphere,bea的weblogic等j2ee实现均内含ejb服务器。也有一些j2ee规范是独立实现的。像本系列第一篇所提及的tomcat就是web服务器的实现,本文介绍的jboss是一个独立的ejb服务器的实现(jboss的目标是一个源代码开放的j2ee环境,然而现在它只是一个完整的ejb服务器,与其他的web服务器tomcat、jetty的整合也是一个方向)。
ejb(规范1.0-2.0)可以分成两类,会话bean (session bean) 和实体bean(entity bean)。
一般来讲会话bean是用于商业逻辑计算,实体bean是用于封装数据库访问。必须根据不同的情况选择这两类ejb。
jboss介绍
jboss是开放源代码的,遵从j2ee规范的,100%纯java的ejb服务器。jboss的开发团队有500多人,核心开发人员有50多个,均为j2ee专家。jboss的用户数以万计,遍及世界。jboss采用java manage extension api 实现软件模块的集成与管理(见图2)。
jboss的详细资料请参阅其凯发k8网页登录主页http://www.jboss.org。
jboss suite由以下几个模块(或者api)组成:
jboss/server jboss服务器,核心是一个ejb容器,全面支持ejb1.1规范。
jboss/spydermq jms的 纯java实现,支持jms 1.0.2规范。
jboss/jaws just another web storage的缩写,jaws api实现java对象和关系数据库的映射,jboss用它实现ejb的连续化(persistence)。jaws还增加了minerva jdbc 连接池(connection pooling)模块,以提高访问数据库的效率。
jboss/zola zola提供jboss例程序,来说明j2ee应用的开发和在jboss中的实施(deploy)。zola中包含一个例子zol webstore,可以作为web商店,基于jsp、servlet、ejb,实现在线购物,支持web和wap访问。
jboss/zoap 支持simple object access protocol (soap) 访问,soap是由microsoft和ibm提出的一个支持世界范围分布式的松耦合的信息交换协议。
soap规范的凯发k8网页登录主页位于http://www.w3.org/tr/2000/note-soap-20000508/。
jboss/castor 与castor的整合,提供java data object(jdo)支持,实现新的ejb连续化方法。
jboss/tomcat 与tomcat的整合,提供完整的j2ee环境。
tomcat的凯发k8网页登录主页位于http://jakarta.apache.org/。
jboss/jetty 与jetty的整合,提供完整的j2ee环境。
jetty的凯发k8网页登录主页位于http://jetty.mortbay.com/。
jboss/test jboss测试环境。
jboss使用
jboss的运行需要jdk 1.2.2 或者1.3。sun的jdk 1.3位于http://java.sun.com/j2se。安装和使用纯java的jboss非常简单,从jboss的凯发k8网页登录主页下载二进制的版本,
jboss-2.0_final.zip windows 32
jboss-2.0_final.tar.gz unix/linux
直接解压缩后,呈现下述目录结构:
* bin ——包含可自举的jar文件run.jar和操作系统相关的启动脚本。run.bat为windows脚本,run.sh 为unix/linux脚本。
* conf ——包含jboss自身和其他模块需要的配置文件。
*db——数据库存储所用的目录或配置文件db.properties。
* deploy ——放置ejb-jar 文件到本目录,实施ejb应用。
* docs——包含jboss/server的文档。
* docs/api——包含jboss/server的javadoc文档。
* lib——包含自举jar文件所需的jmx文件。
* lib/ext——jboss/server运行所需要的其他(jar)文件 。无需配置,server启动脚本会自动把它们添加到classpath中。
* log——存储日志文件或配置文件log.properties。
* tmp——存储临时文件或配置文件tmp.properties。
下面以jboss/test为基础,介绍ejb应用的实施过程。
关于ejb的书籍,你可以参考ed roman的master enterprise javabeans - and the java 2 platform, enterprise edition(willy, 1999,电子版可以在网站http://theserverside.com下载), 以及richard monson-haefel的enterprise javabeans, second edition (oreilly, 2000)。
下载jboss/test的源代码jbosstest-cvs-sources.zip,解压缩到目录${jbtpath}中。设置java_home指向jdk的安装目录,并且添加${java_home}/bin到系统path变量中。进入目录${jbtpath}/src/build,运行相应的脚本编译ejb应用。
【win32】
set jbtpath=c:\jbosstest
set java_home=c:\jdk1.3
set path=%java_home%\bin;%path%
cd %jbtpath%\src\build
build
【unix/linux bash】
jbtpath=/usr/local/jbosstest
java_home=/usr/local/jdk1.3
path=$java_home/bin:$path
cd $jbtpath/src/build
build.sh
如果成功的话,就会在${jbtpath}中创建一个dist目录,其结构如下:
bin:包含ejb客户程序的脚本。
deploy:包含编译生成的ejb-jar,可以在jboss中实施。
lib:包含客户程序运行所需的文件。
复制deploy目录的ejb-jar到${jboss_home}/deploy目录就完成了实施过程。
确认java_home指向jdk的安装路径,启动jboss服务器,然后运行${jbtpath}/dist/bin中相应的测试脚本,就可以观察到客户程序的输出。
jboss与web 服务器(tomcat和jetty)
tomcat与jetty均为支持html/jsp/servlet的web服务器,与jboss集成为完整的产品级的j2ee服务器。用户可以直接实施j2ee-ear,而不是以前分别实施ejb-jar和web-war,非常方便。jboss与web服务器在同一个java虚拟机中运行,servlet调用ejb不经过网络,从而大大提高运行效率,提升安全性能。
小结
jboss作为 “第三代”应用服务器,对于j2ee开发人员和用户而言是难得的教材。与linux等开放源代码的系统相结合,在服务器端企业级应用方面更是一股不可低估的力量。
posted @ 小石头 阅读(536) | |