基于MDA的BIRT Report的开发

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。

时间: 2024-09-26 21:22:55

基于MDA的BIRT Report的开发的相关文章

用BIRT实现高级图表:用基于Eclipse的BIRT创建具有专业外观的报告

开始之前 关于本教程 BIRT 提供了一个图表引擎,使我们能够把数据集显示为图表.还可以进一步 配置图表来支持交互操作,这样的话,当用户在图表元素(比如图表标题.图例 .轴.值系列等)上执行操作时,图表就会做出各种响应,比如显示工具提示. 弹出消息或跳到另一个报告.BIRT 可以显示以下格式的图表:PNG.JPG.BMP 或 SVG.SVG 是一种描述 2-D 矢量图形和脚本编程的 XML 规范,因此可以实现各种 交互式特性: 钻通 允许用户通过单击行.节点等图表元素从一个报告转到另一个报告.这

基于Windows环境下的PHP开发环境搭建

相信许多和人和我一样,都非常的喜欢学习PHP编程,同样有很多人因为无法搭建一个基于Windows环境下的PHP开发环境搭建而不得不放弃自己学习PHP的愿望.所以我想就这个问题将自己的心得体会写出来,一是可以帮助那些苦于无法搭建开发环境的人,二是可以让自己也有个总结的机会. 我写这篇文章的目的很简单,就是帮助那些刚刚开始学习PHP的朋友,所以我将尽量以最简单.明确的语言来进行描述,如果您已经就此问题非常熟练,大可以不看本文而去做更有意义的事情. 限于我本人的水平有限,本文难免有错误和不足之处,恳请

基于Grove的.NET应用程序开发提示

程序 基于Grove的.NET应用程序开发提示 1. 尽量避免新增映射实体类,主要表现在关系映射实体.当程序需要查询符合某种条件的记录时,往往需要通过关系映射实体进行查询,当该关系实体在其他调用者使用时,有时又因为缺少某些字段而需要向该关系映射实体新增查询字段或重新建立实体,所以在关系实体建立的时候,应尽量考虑其他调用者的需求,这样可以有效的避免关系映射实体的重复或因关系实体的改变而导致的其他不安定因素. 2. 避免在数据操作层中出现同样的功能(方法),尽管这些功能可能不属于同一个管理类.当调用

基于J2EE架构的企业应用开发新思维:Web应用以谁为中心

基于J2EE架构的企业应用开发新思维:Web应用以谁为中心?浏览器?服务器 企业Web应用,指的是企业内部使用B/S架构搭建的企业信息系统,用户一般局限在企业内部,为了适应企业某个业务流程而设计开发使用的系统. 出于跨地域部署升级的考虑,一般采用B/S模式进行开发,避免在每个客户端安装配置的麻烦. 一般情况下,前台浏览器特指IE浏览器,前台操作系统选择Windows操作系统. 非Windows操作系统的客户机与非IE的浏览器不在本文讨论范围之内. 本文主要讨论以J2ee架构为基础的Web应用,其

基于唯一状态的前端组件开发

facebook的react的框架提出了一个基于唯一状态来渲染前端组件的想法,什么是唯一状态,采用唯一状态渲染到底有什么好处.希望大家看到这篇文章以后不用任何框架也可以写出基于唯一状态渲染的前端组件. 基于唯一状态的组件的开发模式就是组件内部永远只存在一份数据来表示组件的状态,并且更新组件时只只使用这一份数据. 这种开发模式的好处,主要体现在以下两个方面 减少事件与Dom元素的联系 便于保存和恢复组件的状态 减少事件与Dom元素的联系 我们先来看一段传统开发页面交互逻辑时写的代码: <span

基于php的微信公众平台开发入门实例_php实例

本文实例讲述了基于php的微信公众平台开发方法.分享给大家供大家参考.具体如下: 最近在做微信公众平台开发,一口气写了二十几个功能,挺有意思的- 今天来分享一下开发经验~ 微信公众平台提供的接口很简单,先看看消息交互流程: 说的通俗一些,用户使用微信发送消息 -> 微信将数据发送给开发者 -> 开发者处理消息并返回数据至微信 -> 微信把返回数据发送给用户,期间数据交互通过XML完成,就这么简单.   下面写个实例,开发微信智能聊天机器人:  1. 注册微信公众平台账号 微信公众平台:

基于kettle的数据ETL系统开发与设计

问题描述 基于kettle的数据ETL系统开发与设计 关于kettle的二次开发:功能包括,基于正则表达式的数据检查,实现数据转换,并且能自动入库.因为使用这个软件的特别少,可以学习的资料特别少.希望会用这个软件的大神能回答一下,CS学妹万分感谢O(∩_∩)O 解决方案 数据迁移ETL之kettle一

cad-求各位大神解决:基于VBA的CAD二次开发的一个编程小习题

问题描述 求各位大神解决:基于VBA的CAD二次开发的一个编程小习题

Ubuntu 搭建基于Docker的LNMP+Redis的开发环境(图文)_docker

Ubuntu 搭建基于Docker的LNMP+Redis的开发环境 服务器环境:Ubuntu 14.04 1.安装Docker 1.1 执行update命令,和服务器同步软件包,执行apt-get install * 时可以下载最新的软件.   1.2 安装Docker和创建软链接   1.3 启用Docker服务 2. 获取搭建环境所需镜像 2.1 MySQL镜像 2.2 Redis镜像    2.3 nginx-php-fpm镜像    2.4 查看已下载的镜像 对于Docker初学者来说,