轻量级和企业级的区别

何谓”轻量级”?

既然是”轻”,那就是比较”重”的而言.”重”的典型代表就是EJB,EJB提供了一系列”重量级”企业级服务,并可以让你开发的组件可以很好的集成EJB容器所提供的企业级服务,如JTA等。
对于全面的EJB容器,虽然给了我们看起来完整的服务策略,但是,EJB不是雷锋,它也给我们带来了许多负面效果。有过EJB经验的人们
深有感触:
1,部署复杂,运行缓慢
2,内在服务多,启动慢
3, 规则特多,空间很小
4,难预测试(调试)

EJB容器的服务往往是”买一送三”,不要都不行。我只需要JTA,而真的不需要JMS.
所以,在这个”对我没用的都是垃圾”的世界里,我们就需要”可选择型”的服务容器,让那些对我们没用的服务不要站在这里碍事。 可选择性就是轻量级容器的目标之一。

“轻量级”在哪里?

容器的服务既然可以DIY了,那么确实看上去”轻”了许多。但是,事情并非如此简单。
在开始之前,先来回顾一下几个关键词

1,封装

Java本身在照顾到非java程序员接受程度和配合市场宣传的”running anywhere”,不得不将一些
非面向对象的特性语法加入其中。”是否破坏了封装?”,称为Java十年来争议最多的问题。

2,组件式开发

这个词在软件的圈子里显得技术含量很高,但是,在硬件范围里,哪个硬件不是组件式的呢?你的计算机里就是各式各样的组件,
他们靠各个接口(插槽)集成工作。甚至你正在看得数字电视机顶盒也是一个标准的组件。

3,Running Anywhere (翻译过来既:在任何位置运行)

这个词伴随着一杯黑咖啡进入我们的世界,虽然现在已经变成了”Debug Anywhere”(在任何位置调试),但是,这一直是我们的目标。

轻量级容器就是以这几个为目标的解决方案。

面对封装,组件粒度一直是SA的最大问题。根据EJB模型,EJB组件让我们把业务组件封装成粗粒度的业务组件。
轻量级容器这可以定义更为细粒度的组件,甚至这个组件只有一个对象.以依赖注入(Dependency Injection,DI)为代表的解耦模式,
可以让组件不去依赖容器(运行环境)的API。DI作为容器的管道,承担中间人的角色,让使用者(component)和提供者毫无关联。
对于以何种粒度去设计业务组件,这就是业务的具体需求所决定的,任何框架都帮不了你。
而轻量级容器提供技术方面的支持也绝对让你有的放矢。

面对组件,真正的组件就像你手里的U-disk,插到USB上就可以享受其功能。
轻量级容器通过反向控制(Inversion of Control,IoC)让容器具有主动权,去管理插进来的组件。只要组件是符合标准的,就可以被轻量级容器管理。

面对Running Anywhere,轻量级容器让组件以POJO的形式存在,只要你有java.exe就可以运行它。
这样,组件根本就是一个独立的功能集成类,根本不需要容器就可以实现测试行为。

以上三点,给我们带来的好处不仅如此,我们伴随着还将重用,生产力,测试(质量),移植性等各个方面受益,这里就不多啰嗦了。

轻量级容器的现状

目前,轻量级容器在open source范围已经得到了广泛的认可,而且,作为下一代J2EE构架的基础有着无法比拟的优势。
当前,已存在的轻量级容器框架中,有绝大部分来自open source社群,这给我们对这项技术的了解降低了门槛。

轻量级框架侧重于减小开发的复杂度,相应的它的处理能力便有所减弱(如事务功能弱、不具备分布式处理能力),比较适用于开发中小型企业应用。采用轻量框架一方面因为尽可能的采用基于POJOs的方法进行开发,使应用不依赖于任何容器,这可以提高开发调试效率;另一方面轻量级框架多数是开源项目,开源社区提供了良好的设计和许多快速构建工具以及大量现成可供参考的开源代码,这有利于项目的快速开发。例如目前Tomcat+Spring+Hibernate已经成为许多开发者开发J2EE中小型企业应用偏爱的一种架构选择。随着可供选择的框架层出不穷,开发者可以根据需要对应于企业应用三个层次的轻量级框架选择,本文第2节的内容可供选择参考。

而作为重量级框架EJB框架则强调高可伸缩性,适合与开发大型企业应用。在EJB体系结构中,一切与基础结构服务相关的问题和底层分配问题都由应用程序容器或服务器来处理,且EJB容器通过减少数据库访问次数以及分布式处理等方式提供了专门的系统性能解决方案,能够充分解决系统性能问题。

轻量级框架的产生并非是对重量级框架的否定,甚至在某种程度上可以说二者是互补的。轻量级框架在努力发展以开发具有更强大,功能更完备的企业应用;而新的EJB规范EJB3.0则在努力简化J2EE的使用以使得EJB不仅仅是擅长处理大型企业系统,也利用开发中小型系统,这也是EJB轻量化的一种努力。对于大型企业应用以及将来可能涉及到能力扩展的中小型应用采用结合使用轻量级框架和重量级框架也不失为一种较好的解决方案

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值