`
j2eetop
  • 浏览: 60128 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

《开源框架那点事儿24》:开着跑车换轮胎

 
阅读更多

开着跑车换轮胎,这样的情形您能想象吗?
最近,一段拍摄于沙特阿拉伯的视频就记录了这样的超牛特技。地址给大家分享一下:
http://www.douban.com/group/topic/52087839。从短片中可以看到,这辆汽车在沙漠中前进,一名男性就站在车门外,在几个大转弯之后,汽车成功地侧翻了约45度,仅靠2个轮子贴在地上行驶着。画面显示五个戴着头巾的男子探身从一辆正在行驶的银色跑车里爬出来,司机像F1赛车手那样让车子侧立起来,仅靠车身一侧的两个车轮行驶,他们则很麻利地更换了悬空的另一侧两个车轮。五名男子接下来的表现让人大跌眼镜——完成换轮胎特技表演后,他们并不急于回到车内,而是一脸兴奋的击掌和挥手庆祝,过路司机目瞪口呆地看完表演后纷纷加速超了过去。
据了解,这种汽车绝技表演在阿拉伯十分流行,运用两轮贴地面行驶的超高难度技巧,考验着驾驶者与乘客间的绝佳默契。在Java框架使用中,你能体验这种默契感吗?
带着思考,我们自然要联想到Java应用中比较常见的热部署。热部署是在不重启Java虚拟机的前提下,能自动侦测到class文件的变化,更新运行时class 的行为。Java类是通过Java虚拟机加载的,某个类的class文件在被classloader加载后,会生成对应的Class对象,之后就可以创建该类的实例。大多数基于Java的应用服务器,包括EJB服务器和Servlet容器,都支持热部署。类装入器不能重新装入一个已经装入的类,但只要使用一个新的类装入器实例,就可以将类再次装入一个正在运行的应用程序。
Tiny框架就是这样一部超牛的赛车,它支持在不停止应用的情况下,增加或删除业务单元。
Tiny构建者认为,一个完整的框架可能需要有许许多多个部分组成,但是对于实际应用的用户来说,它可能只需要其中的一部分功能。构架一定要有这种能力,可以由使用者进行点菜式,使用,避免只要用一点点功能,就要引入许许多多的内容。
TinyVFS把对各种各样的的文件系统的访问封装成统一的应用程序接口,这大大的简化了应用程序本身代码的复杂度。通过业务单元管理器,可以在不停止其它业务单元的情况下,增加新的业务单元,或把已经安装的业务单元停止或下卸载。这里所谓的业务单元,就是用来实现某种业务功能的完整集合,它包含了相关的Java Class文件、配置文件、媒体文件、界面展现文件(甚至支持把Jsp文件也放在Jar包中)等。利用业务单元,程序员可以进行软件开发、测试、发布,大大方便了业务的设计与发布。而且,业务单元之间也可以有依赖关系,如果某业务单元依赖的业务单元不存在或被停止时,则此业务单元也会被停止。
开着车换轮胎,使用Tiny来应用,这种灵活性还体现在多个地方。
(1)Tiny流程的执行位置十分灵活,可以从流程的任意节点开始执行,流程可重入的特性可以实现页面流、工作流等功能。
(2)Tiny模板引擎是一个基于Java技术构建的模板引擎,它具有体量小、性能高和扩展易的特点。适合于所有通过文本模板生成文本类型内容的场景,如:XML、源文件、HTML等等,可以说,它的出现就是为了替换Velocity模板引擎而来,因此在指令集上在尽量与Velocity接近的同时,又扩展了一些Velocity不能很好解决问题的指令与功能,在表达多方面则尽量与java保持一致,所以非常的易学易用。
(3)不管对象是否是在Spring等容器中托管,都可以使用缓冲逻辑,实现了缓冲逻辑无容器要求。
在UI引擎的组件包中,每个UI组件都是一个Jar工程,使得UI组件的集成由框架自动进行,而不必程序员进行干预。UI组件自发现功能,避免了大量配置工作。
(4)支持BigPipe模式。利用Web服务器和浏览器之间的并行执行能力,BigPipe首先把网页分解成多个可调用的Pagelet。多个Pagelet并行的在服务器端生成、网络传输、浏览器展现,从而大大提升展现效率与效果。
(5)在稳定性方面,Tiny框架是立足于在需要稳定、安全要求非常高的应用环境中使用的,因此其稳定性就是框架构建者首要思考目标,核心部分只使用经过充验证及广泛应用的第三方包。
总之,在这种灵活性基础上,Tiny正在形成一个成熟的开源生态圈,包含了Tiny框架、Tiny开源组件、Tiny商业组件、Tiny技术支持、Tiny咨询、Tiny培训等,具有较强市场竞争力和可持续发展的体系,展现了一种新的软件产业发展模式。

 

IT书友会:http://bbs.tinygroup.org/group-115-1.html

0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics