MDA (Model Driven Architecture) 的核心是模型与基于模型的软件开发。开发者使用 UML 进行建模,在模型中表现系统各方面的重要特征和细节,帮助架构师和开发者获取不同的系统透视图;基于模型的软件开发,要求定义的模型能够驱动软件的设计与实现的过程,在这个过程中,会涉及到不同模型架构的转换,由模型生成业务和数据代码,从而指导视图的生成和变化。
概述
EMF(Eclipse Modeling Framework) 是基于 MOF (Meta Object Facility) 的一个具体的实现工具,是一组结构化模型的 Java 框架和代码生成器,帮助开发者创建、查询、序列化、反序列化和监控模型实例变化。
在一些基于业务、数据分析的项目中,开发者选择使用轻量级的报告设计工具--- Business Intelligence and Reporting Tools (BIRT),生成丰富直观的分析报告。BIRT 是一组用于 Eclipse 的插件,它允许从数据源(包括关系数据库、XML文件和 Java Object)中抽取数据信息,分析并转换,然后生成各种风格的文档、图表及复杂的分析报告。但是,越来越多的项目,针对自身的程序逻辑、意图把 BIRT 更好融入到代码中,而不是单纯利用 BIRT 的设计工具创建报表。BIRT 具备了良好的扩展机制,为用户提供了集成的空间。
在本文实例中:作者把 EMF 集成到 BIRT 中,指导用户设计 EMF 模型,从模型实例中抽取数据信息,利用 BIRT API 生成报表,实现了模型 -- 代码 -- 视图的创建过程。同时,说明了利用 BIRT 工具创建报表的过程完全可以由程序控制和实现,结果使 BIRT 可以灵活的被集成到用户代码中。
关于本文
本文的应用程序是在 Eclipse 平台开发的,在阅读本文前,必须对 EMF、BIRT 等插件工具有所了解和应用,能使用 BIRT Design Report 抽取数据,创建报表。作者设计了一个基于服务报告的应用场景:使用 EMF model 描述业务模型,并生成对应的 API;使用 EMF API 从模型实例中获取数据信息,并进行分析,调用 BIRT Report API生成报表。信息抽取、分析和报表生成的过程,是由程序控制实现的,BIRT 的数据源从传统的关系数据库迁移到 EMF model,验证了 BIRT 对 Java Object 的扩展。下图描述了实现这个服务报告的应用程序的架构:
图1. 基于 EMF 和 BIRT 集成的设计框架
准备
本文的开发和运行环境是基于Microsoft Windows 操作系统。需要安装以下工具和插件:
Eclipse --- 使用Eclipse3.2,JDK使用J2SE1.5。
BIRT --- 使用BIRT2.1.1。
EMF --- 使用EMF2.2.0。
GEF --- 使用GEF3.2。