站内搜索: 请输入搜索关键词

当前页面: 开发资料首页Java 专题Keel, 元框架 (Meta Framework)

Keel, 元框架 (Meta Framework)

摘要: Keel, 元框架 (Meta Framework)

开发应用程序时,不管是网络应用,企业还是科学应用,开发者经常需要依赖不同
的框架来作为开发的出发点。框架通常由一整套组件,函数和服务组成,用于某种
特定应用的开发。
目前已有很多种开源或商业的框架得到广泛应用,下面是一些常用的框架:
网络/用户界面: Struts, Cocoon, Velocity, Tapestry
商业逻辑:EJB
持续:JDBC, JDO, Hibernate
安全认证:JAAS
消息:JMS
每种框架都提供了用来创建应用程序或组件的所有东西,因此你可以很方便的使用
他们。但是如果需要将不同的框架集成起来,让它们一起工作,就会产生问题,最
常见的问题有两种:
1. 许多框架是和容器,服务器或其他框架捆绑在一起的,是紧耦合的,它们只能
在推荐的组合下工作良好。这种紧耦合限制了开发者对框架的选择。如果选择了一
种框架,出于成本,安全,易用性,性能方面的考虑,我们就无法使用其他框架。
2. 缺乏统一的接口,不同的框架之间无法通信。这增加了系统集成的难度,开发
者不得不编写非标准的代码来完成通信和集成,这种代码需要不断的升级维护。
Keel 框架可以帮助你克服这些问题。Keel 是一个高效,高扩展性的开源元框架,
是框架的框架。Keel用JAVA实现,目前的版本是2.0 RC 1。Keel基于Apache Avalon
项目,集成了许多的基于JAVA的框架,每个框架针对某种特定的应用,例如用户界
,集成良好的系统。Keel允许开发者随时从集成系统中加入或取出指定的框架,这
样开发者就可以从丰富的框架库中自由的选择完成不同功能的框架,同时又不必担
心这些框架之间紧耦合的问题。
Keel同时提供了一个统一的框架间通信接口,这个接口不会因框架的加入或取出而
改变。为了做到这一点,Keel把所有的组件都看成独立的单元,每个单元都基于不
同的框架。通过一个统一的接口使用每个独立的单元。这个接口同时也是调用单元
所提供服务的入口,其他的单元只与这个接口交互。当某个框架被替换时,只有相
应的单元接口需要少量的改变,其他的部分仍然保持不变。
三个核心概念:
1. COP(component oriented programming) 面向组件编程 每个应用程序由独立的
单元组成,通过标准的接口调用。这个概念为应用程序提供了可插拔的灵活性。
2. SOC(separate of concerns) 任务分离将每个组件尽可能的分成许多独立的任
务,每个任务由一个标准接口单独处理。这种方法可以使用户使用,控制,修改任
何一个函数却不会影响其他的函数。
3. IOC(inversion of control) 控制可逆在其生命周期中,组件在配置文件的帮
助下由外部控制。这种方法可以方便高效的从外部控制组件。
Keel的架构
Keel 遵循COP概念,定义了一套基本服务,可以作为构建集成系统的基本模块。
模型: 用于商务逻辑之间的交互
持续性: 用于管理,储存和重新得到对象的状态和数据
安全: 管理应用程序的安全,包括认证和授权
调度: 调度应用程序各种功能
加密: 加密需要传送的数据
这些服务也被称为角色,由集成在Keel中的各个组件提供。每个角色其实是一个接
口,与定义服务合同的组件一一对应。组件是角色的实现,执行所有实现相应角色
的任务。Keel为最常用的服务提供了缺省的实现,同时允许用户创建自己的基于特
殊框架的组件,但是这些组件必须隐藏在标准接口之后。
基于SOC 概念,组件被分成许多独立的任务,每个任务由一个标准接口单独处理。
例如:一个组件可以是可记录的,安全的,持续的和可配置的,这些任务由单独的
标准接口实现。
基于 IOC 概念,所有的角色和组件是外部可控的。Keel的配置文件有两个:
roles.xonf用来配置角色;system.xconf用来配置组件。可以在任何时候通过改变
这些文件来改变组件的配置。
目前Keel为大多数角色提供了缺省实现,同时还提供了一些可选的实现。用户可以
直接使用这些缺省的实现,也可以修改这些缺省实现以适应特殊的需求,或者开发
自己的实现然后加入Keel。下面是一些主要角色的列表:
¨ 模型:一个缺省的实现是org.keel.service.model.StandardModel,这
是一个实现了模型接口的抽象类,可以接受由用户界面产生的请求,处理请求,然
后返回信息到用户界面。
¨ 持续: 缺省实现是JDBC数据源。其他的选择有JDO,Hibernate, Entity
Beans of EJB, LDAP
¨ 调度: 缺省实现是QUARTZ。也可以选择Jcrontab。
Keel计划为所有定义的角色加入实现,从而可以给开发者提供更多的选择。综上所
述,Keel是一个强大的集成框架,它可以将各种不同类型的应用框架结合在一起,
却避免了由此带来的紧耦合问题。Keel允许开发者随时加入取出需要的框架,用户
可以根据需要自由的选择最适合的框架来满足不断变化的需求。可以在Keel's home
page 下载Keel. Keel Documentation Wiki 有很多关于Keel的信息和连接。
↑返回目录
前一篇: Mastering the Java CLASSPATH
后一篇: JUnit实战篇 (一)