Keel, 元框架 (Meta Framework)

类别:Java 点击:0 评论:0 推荐:

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同时提供了一个统一的框架间通信接口,这个接口不会因框架的加入或取出而改变。为了做到这一点,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的信息和连接。

本文地址:http://com.8s8s.com/it/it16977.htm