操作简单,要求硬件配置低。 量级主要是看容器的依赖性所决定的,依赖性越小,越轻量, Jim Rivera是 BEA 公司的一位技术主管,负责通过技术传播推广BEA 产品的应用。Jim 于1999 年加入BEA,担任 BEA WebLogic Server 6、7 和8 版本的技术产品经理。在这个岗位上,Jim 负责各种服务器组件的策略和路线图,包括 EJB、Web services、XML 和集群。Jim 在dev2dev 上有一个blog。dev2dev 通过电子邮件采访了 Jim,获得他对轻量级Java、应用程序框架和持久性框架,以及它们与应用服务器上企业计算的关系的看法。 轻量级Java dev2dev: 您是如何定义“轻量级Java”的? Jim: 我认为,在Java 应用程序开发环境中,“轻量级Java”主要是指两个东西:简化的编程模型和更具响应能力的容器。轻量级Java 旨在消除与传统 J2EE API 有关的不必要的复杂性和限制。它也将缩短应用程序的部署时间,这对于支持开发最佳实践(比如频繁单元测试)非常重要。 dev2dev: 对您来说哪种轻量级技术是最重要的,轻量级Java 对终端用户有什么帮助? Jim: 很显然,控制反转 (IoC)模式在这个领域有着重大的影响。使用IoC,开发人员不需要编写复杂的代码来执行查询、处理基础架构异常或管理连接,就能够解决对象依赖性问题。这有助于简化代码、将业务逻辑与基础架构分离,从而使应用程序更易于维护。 轻量级Java 的另一个关键特征是,它不会强迫业务对象遵循平台特定接口。这允许开发人员在普通旧式Java 对象(POJO)中实现业务逻辑,从而提高生产率。 与具体的类相反,当把开发的最佳实践与界面相结合时,这些特性也使得对代码进行单元测试容易得多。由于业务逻辑实现在 POJO中,所以不再需要将对象部署到重量级容器中以在单元测试中练习它。因此,将对象宿主在诸如 JUnit 之类的简单测试环境中和为快速迭代单元测试“模拟”外部依赖性就变得微不足道了。 dev2dev: 作为一个技术传播者,您一定目睹了许多新的和已部署的技术。您是否看到了转向轻量级技术的趋势? Jim: 当然。在早期的采用者当中,明确地存在转向诸如 Spring、Hibernate 和Beehive 之类框架的趋势。它在应用程序的构建方式上有了明显的不同,对未来 J2EE技术的方向有着积极的影响。例如,EJB 3.0就基本上是以使得轻量级Java盛行的概念为基础的。 重量级 dev2dev:人们在想起应用服务器供应商时,通常把它们置于“重量级阵营”。我想您正在努力改变这种状况,对吧?换言之,许多人认为应用程序供应商已经在实现重量级组件(比如 EJB 2.0)上付出了很大的代价,它们不愿意轻易放弃这些成果。 Jim: 首先,我认为没有理由放弃在 EJB 上的现有投资,因为在某些场景中它仍然是最好的技术,例如当您希望通过 RMI远程公开业务服务时。当然,诸如 EJB 之类的开放标准在保护客户投资方面的价值也不能低估。 已经说过,我觉得人们经常过分强调 EJB在应用服务器中的实际价值。尽管这一点未必对所有的应用服务器供应商都适用,但是 BEA 只投入了相对较少的一部分开发资源来支持 J2EE API。我们工作最主要的目标是为宿主应用程序构建最可靠、可伸缩和容错的内核。这些品质以及分布式事务服务、高速消息传递、遗留系统集成、高级 Web 服务、配置管理、诊断和故障排除和高级安全性,代表了 WebLogic Server 的真正价值,而且对总体拥有成本(TCO)有着巨大的影响。幸运的是,这些附加值对基于Spring 或Beehive 的应用程序的相关性和适用性与采用EJB 构建的应用程序是一样的。虽然轻量级Java 技术使得应用程序的开发和维护更容易,但是它们不会代替真正高端应用服务器的品质。实际上,我们认为轻量级Java 与WebLogic Server 是一致的。 dev2dev: BEA 有没有一个轻量级 Java 策略?BEA 实现轻量级 Java 的方法是什么?
Jim: 我们的策略是接纳所有有利于提高开发人员生产率、在市场上为部署这些技术提供最佳平台的技术。轻量级 Java有助于降低开发成本,WebLogic Server 则有助于降低运营成本,它们是一个非常强大的组合。
E1B800 R800 PR121/P-LI WMP 3P NST E1B800 R800 PR121/P-LSI WMP 3P NST E1B800 R800 PR121/P-LSIG WMP 3P NST E1B800 R800 PR122/P-LI WMP 3P NST E1B800 R800 PR122/P-LSI WMP 3P NST E1B800 R800 PR122/P-LSIG WMP 3P NST E1B800 R800 PR123/P-LSI WMP 3P NST E1B800 R800 PR123/P-LSIG WMP 3P NST E1B1000 R800 PR121/P-LI WMP 3P NST E1B1000 R800 PR121/P-LSI WMP 3P NST E1B1000 R800 PR121/P-LSIG WMP 3P NST E1B1000 R800 PR122/P-LI WMP 3P NST E1B1000 R800 PR122/P-LSI WMP 3P NST E1B1000 R800 PR122/P-LSIG WMP 3P NST E1B1000 R800 PR123/P-LSI WMP 3P NST E1B1000 R800 PR123/P-LSIG WMP 3P NST E1B1000 R1000 PR121/P-LI WMP 3P NST E1B1000 R1000 PR121/P-LSI WMP 3P NST E1B1000 R1000 PR121/P-LSIG WMP 3P NST E1B1000 R1000 PR122/P-LI WMP 3P NST E1B1000 R1000 PR122/P-LSI WMP 3P NST E1B1000 R1000 PR122/P-LSIG WMP 3P NST E1B1000 R1000 PR123/P-LSI WMP 3P NST E1B1000 R1000 PR123/P-LSIG WMP 3P NST E1B1250 R400 PR121/P-LI WMP 3P NST E1B1250 R400 PR121/P-LSI WMP 3P NST E1B1250 R400 PR121/P-LSIG WMP 3P NST E1B1250 R400 PR122/P-LI WMP 3P NST E1B1250 R400 PR122/P-LSI WMP 3P NST E1B1250 R400 PR122/P-LSIG WMP 3P NST E1B1250 R400 PR123/P-LSI WMP 3P NST E1B1250 R400 PR123/P-LSIG WMP 3P NST E1B1250 R800 PR121/P-LI WMP 3P NST E1B1250 R800 PR121/P-LSI WMP 3P NST E1B1250 R800 PR121/P-LSIG WMP 3P NST E1B1250 R800 PR122/P-LI WMP 3P NST E1B1250 R800 PR122/P-LSI WMP 3P NST E1B1250 R800 PR122/P-LSIG WMP 3P NST E1B1250 R800 PR123/P-LSI WMP 3P NST E1B1250 R800 PR123/P-LSIG WMP 3P NST E1B1250 R1250 PR121/P-LI WMP 3P NST E1B1250 R1250 PR121/P-LSI WMP 3P NST E1B1250 R1250 PR121/P-LSIG WMP 3P NST E1B1250 R1250 PR122/P-LI WMP 3P NST E1B1250 R1250 PR122/P-LSI WMP 3P NST E1B1250 R1250 PR122/P-LSIG WMP 3P NST E1B1250 R1250 PR123/P-LSI WMP 3P NST E1B1250 R1250 PR123/P-LSIG WMP 3P NST E1B1600 R1600 PR121/P-LI WMP 3P NST E1B1600 R1600 PR121/P-LSI WMP 3P NST E1B1600 R1600 PR121/P-LSIG WMP 3P NST E1B1600 R1600 PR122/P-LI WMP 3P NST E1B1600 R1600 PR122/P-LSI WMP 3P NST E1B1600 R1600 PR122/P-LSIG WMP 3P NST E1B1600 R1600 PR123/P-LSI WMP 3P NST E1B1600 R1600 PR123/P-LSIG WMP 3P NST E2B1600 R1600 PR121/P-LI WMP 3P NST E2B1600 R1600 PR121/P-LSI WMP 3P NST E2B1600 R1600 PR121/P-LSIG WMP 3P NST E2B1600 R1600 PR122/P-LI WMP 3P NST E2B1600 R1600 PR122/P-LSI WMP 3P NST E2B1600 R1600 PR122/P-LSIG WMP 3P NST E2B1600 R1600 PR123/P-LSI WMP 3P NST E2B1600 R1600 PR123/P-LSIG WMP 3P NST E2B2000 R1250 PR121/P-LI WMP 3P NST E2B2000 R1250 PR121/P-LSI WMP 3P NST E2B2000 R1250 PR121/P-LSIG WMP 3P NST E2B2000 R1250 PR122/P-LI WMP 3P NST E2B2000 R1250 PR122/P-LSI WMP 3P NST E2B2000 R1250 PR122/P-LSIG WMP 3P NST E2B2000 R1250 PR123/P-LSI WMP 3P NST E2B2000 R1250 PR123/P-LSIG WMP 3P NST E2B2000 R2000 PR121/P-LI WMP 3P NST E2B2000 R2000 PR121/P-LSI WMP 3P NST E2B2000 R2000 PR121/P-LSIG WMP 3P NST E2B2000 R2000 PR122/P-LI WMP 3P NST E2B2000 R2000 PR122/P-LSI WMP 3P NST E2B2000 R2000 PR122/P-LSIG WMP 3P NST E2B2000 R2000 PR123/P-LSI WMP 3P NST E2B2000 R2000 PR123/P-LSIG WMP 3P NST E1N800 R800 PR121/P-LI WMP 3P NST E1N800 R800 PR121/P-LSI WMP 3P NST E1N800 R800 PR121/P-LSIG WMP 3P NST E1N800 R800 PR122/P-LI WMP 3P NST E1N800 R800 PR122/P-LSI WMP 3P NST E1N800 R800 PR122/P-LSIG WMP 3P NST E1N800 R800 PR123/P-LSI WMP 3P NST E1N800 R800 PR123/P-LSIG WMP 3P NST E1N1000 R800 PR121/P-LSIG WMP 3P NST E1N1000 R800 PR122/P-LI WMP 3P NST E1N1000 R800 PR122/P-LSI WMP 3P NST E1N1000 R800 PR122/P-LSIG WMP 3P NST E1N1000 R800 PR123/P-LSI WMP 3P NST E1N1000 R800 PR123/P-LSIG WMP 3P NST E1N1000 R1000 PR121/P-LI WMP 3P NST E1N1000 R1000 PR121/P-LSI WMP 3P NST E1N1000 R1000 PR121/P-LSIG WMP 3P NST E1N1000 R1000 PR122/P-LI WMP 3P NST E1N1000 R1000 PR122/P-LSI WMP 3P NST E1N1000 R1000 PR122/P-LSIG WMP 3P NST E1N1000 R1000 PR123/P-LSI WMP 3P NST E1N1000 R1000 PR123/P-LSIG WMP 3P NST E1N1250 R1250 PR121/P-LI WMP 3P NST E1N1250 R1250 PR121/P-LSI WMP 3P NST E1N1250 R1250 PR121/P-LSIG WMP 3P NST E1N1250 R1250 PR122/P-LI WMP 3P NST E1N1250 R1250 PR122/P-LSI WMP 3P NST E1N1250 R1250 PR122/P-LSIG WMP 3P NST E1N1250 R1250 PR123/P-LSI WMP 3P NST E1N1250 R1250 PR123/P-LSIG WMP 3P NST E1N1600 R1600 PR121/P-LI WMP 3P NST E1N1600 R1600 PR121/P-LSI WMP 3P NST E1N1600 R1600 PR121/P-LSIG WMP 3P NST E1N1600 R1600 PR122/P-LI WMP 3P NST E1N1600 R1600 PR122/P-LSI WMP 3P NST E1N1600 R1600 PR122/P-LSIG WMP 3P NST E1N1600 R1600 PR123/P-LSI WMP 3P NST E1N1600 R1600 PR123/P-LSIG WMP 3P NST E2N1000 R1000 PR121/P-LI WMP 3P NST E2N1000 R1000 PR121/P-LSI WMP 3P NST E2N1000 R1000 PR121/P-LSIG WMP 3P NST E2N1000 R1000 PR122/P-LI WMP 3P NST E2N1000 R1000 PR122/P-LSI WMP 3P NST E2N1000 R1000 PR122/P-LSIG WMP 3P NST E2N1000 R1000 PR123/P-LSI WMP 3P NST E2N1000 R1000 PR123/P-LSIG WMP 3P NST E2N1250 R1000 PR121/P-LI WMP 3P NST E2N1250 R1000 PR121/P-LSI WMP 3P NST E2N1250 R1000 PR121/P-LSIG WMP 3P NST E2N1250 R1000 PR122/P-LI WMP 3P NST E2N1250 R1000 PR122/P-LSI WMP 3P NST E2N1250 R1000 PR122/P-LSIG WMP 3P NST E2N1250 R1000 PR123/P-LSI WMP 3P NST E2N1250 R1000 PR123/P-LSIG WMP 3P NST E2N1250 R1250 PR121/P-LI WMP 3P NST E2N1250 R1250 PR121/P-LSI WMP 3P NST E2N1250 R1250 PR121/P-LSIG WMP 3P NST E2N1250 R1250 PR122/P-LI WMP 3P NST E2N1250 R1250 PR122/P-LSI WMP 3P NST E2N1250 R1250 PR122/P-LSIG WMP 3P NST E2N1250 R1250 PR123/P-LSI WMP 3P NST E2N1250 R1250 PR123/P-LSIG WMP 3P NST E2N1600 R1600 PR121/P-LSI WMP 3P NST E2N1600 R1600 PR121/P-LSIG WMP 3P NST E2N1600 R1600 PR122/P-LI WMP 3P NST E2N1600 R1600 PR122/P-LSI WMP 3P NST E2N1600 R1600 PR122/P-LSIG WMP 3P NST E2N1600 R1600 PR123/P-LSI WMP 3P NST E2N1600 R1600 PR123/P-LSIG WMP 3P NST E2N2000 R1250 PR121/P-LI WMP 3P NST E2N2000 R1250 PR121/P-LSI WMP 3P NST E2N2000 R1250 PR121/P-LSIG WMP 3P NST E2N2000 R1250 PR122/P-LI WMP 3P NST E2N2000 R1250 PR122/P-LSI WMP 3P NST E2N2000 R1250 PR122/P-LSIG WMP 3P NST E2N2000 R1250 PR123/P-LSI WMP 3P NST E2N2000 R1250 PR123/P-LSIG WMP 3P NST E2N2000 R2000 PR121/P-LI WMP 3P NST E2N2000 R2000 PR121/P-LSI WMP 3P NST E2N2000 R2000 PR121/P-LSIG WMP 3P NST E2N2000 R2000 PR122/P-LI WMP 3P NST E2N2000 R2000 PR122/P-LSI WMP 3P NST E2N2000 R2000 PR122/P-LSIG WMP 3P NST E2N2000 R2000 PR123/P-LSI WMP 3P NST E2N2000 R2000 PR123/P-LSIG WMP 3P NST E3N2500 R1600 PR121/P-LI WMP 3P NST E3N2500 R1600 PR121/P-LSI WMP 3P NST E3N2500 R1600 PR121/P-LSIG WMP 3P NST E3N2500 R1600 PR122/P-LI WMP 3P NST E3N2500 R1600 PR122/P-LSI WMP 3P NST E3N2500 R1600 PR122/P-LSIG WMP 3P NST E3N2500 R1600 PR123/P-LSI WMP 3P NST E3N2500 R1600 PR123/P-LSIG WMP 3P NST E3N2500 R2500 PR121/P-LI WMP 3P NST E3N2500 R2500 PR121/P-LSI WMP 3P NST E3N2500 R2500 PR121/P-LSIG WMP 3P NST E3N2500 R2500 PR122/P-LI WMP 3P NST E3N2500 R2500 PR122/P-LSI WMP 3P NST E3N2500 R2500 PR122/P-LSIG WMP 3P NST E3N2500 R2500 PR123/P-LSI WMP 3P NST E3N2500 R2500 PR123/P-LSIG WMP 3P NST E3N3200 R2000 PR121/P-LI WMP 3P NST E3N3200 R2000 PR121/P-LSI WMP 3P NST E3N3200 R2000 PR121/P-LSIG WMP 3P NST E3N3200 R2000 PR122/P-LI WMP 3P NST E3N3200 R2000 PR122/P-LSI WMP 3P NST E3N3200 R2000 PR122/P-LSIG WMP 3P NST E3N3200 R2000 PR123/P-LSI WMP 3P NST E3N3200 R2000 PR123/P-LSIG WMP 3P NST E3N3200 R3200 PR121/P-LI WMP 3P NST E3N3200 R3200 PR121/P-LSI WMP 3P NST E3N3200 R3200 PR121/P-LSIG WMP 3P NST E3N3200 R3200 PR122/P-LI WMP 3P NST E3N3200 R3200 PR122/P-LSI WMP 3P NST E3N3200 R3200 PR122/P-LSIG WMP 3P NST E3N3200 R3200 PR123/P-LSI WMP 3P NST E3N3200 R3200 PR123/P-LSIG WMP 3P NST