基于数据字典的通用开发平台的研究

2010-07-25 08:44王德广张军卒王超
微型电脑应用 2010年5期
关键词:开发人员字典语句

王德广,张军卒,王超

0 引言

一个 MIS软件的生命周期可以分为软件定义、软件开发和软件维护3个时期。MIS系统传统开发方法,往往将窗口程序与数据表结构紧紧绑定在一起,而一旦表结构发生了改变,与之对应的窗口界面也需改变,程序员就必须不厌其烦地更改代码;同时,由于 MIS系统自身比较复杂,表的数量繁多,如果需要编写大量的重复代码,即使一个高级程序员,也需要花费很长的时间完成界面的开发再者,在软件维护过程中,由于软件自适应性差,无形中增加了软件开发的成本[1]。

在不断地生产实践中,人们发现了在 MIS系统开发中功能存在共性的特点,系统的业务在数据库层面上,表现为最基本的操作:增加、删除、修改、查询。查询操作使用最为频繁,也最难处理。如果有一种通用的查询模块,在MIS系统开发时可以直接应用,而无需重新编写,那么问题就解决了。于是有了最早的一类通用综合查询模式的提出,这是通用开发平台的雏形,标志着通用平台技术的开端。

1 基于数据字典的通用平台

1.1 基本思想

根据对 MIS系统共性的分析,创建一个普遍适用的用户数据字典,由通用平台进行管理和维护,使通用平台具有部分DBMS的功能。通用平台将用户数据字典从数据层中提出来,作为高于数据层的单独一层。通过对数据字典的设计对用户数据表进行管理和控制,实现应用程序和表结构的分离,以此来实现动态通用查询,构建通用开发平台[2]。

基于数据字典的动态查询方法实现SQL的动态生成,使开发人员便可通过平台界面配置查询语句,而无需编写代码,平台将动态生成SQL语句和界面显示。无法通过平台实现的查询,需要单独编写[3]。图1为基于用户字典的通用动态查询结构图。

图1 基于用户字典的通用动态查询结构图

1.2 基于数据字典的通用平台的研究现状

目前,通用平台技术在C/S模式下的应用已经很成熟,可以较好的实现系统间的通用,基于数据字典的复用动态查询构件方面的研究成绩尤为突出,基本达到了通用平台预期的设想,但B/S模式下的研究仍处在初级阶段,主要研究工作仍集中在通用动态查询功能上,忽视其他重要功能的实现。通用平台技术在B/S模式下的研究还面临很多问题,同时也存在广阔的发展空间。

存在的两个有待解决的重要问题:

1. B/S模式下,仍局限于系统内的通用,还没有实现系统间的通用,平台还不具有单独开发MIS系统的能力。

2. 实现功能单一。目前,通用查询的功能已经很完善,但增加、删除、修改以及DDL语言的功能都没有实现[4]。

2 UDPDD平台

针对有现有平台的不足,本文提出一种基于数据字典的MIS系统通用开发平台(Universal Development Platform Based on Data Dictionary,即UDPDD平台),该平台针对在B/S模式下的应用,重点研究平台通用开发 MIS系统的能力。

2.1 基本思想

UDPDD平台以用户数据字典为核心,根据对MIS系统业务需求的分析,发现其功能的共性并以此为基础,创建一个普遍适用的用户数据字典,该用户数据字典由UDPDD平台自身进行管理和维护,用户数据字典作为高于数据层的单独一层。UDPDD平台保留了基于数据字典的动态查询方法,并实现了DBMS中数据定义语言(DDL)部分的功能,即CREATE、DROP、ALTER等操作。UDPDD平台通过通过对用户数据字典的设计和控制,实现SQL的动态生成,并结合了界面的动态自动生成技术,在使用平台开发 MIS系统时,开发人员只需了解业务逻辑,并把数据信息通过平台界面输入到数据字典中,平台将根据数据字典的设计和开发人员输入的配置信息自动生成表结构,完成建表。然后开发人员便可通过平台界面配置SQL语句,而无需编写代码,平台将动态生成SQL语句和界面显示。

UDPDD平台以C/S模式下通用平台的研究为基础,将应用扩展到B/S模式下,UDPDD平台定位成一种供MIS系统开发人员使用的二次开发平台,开发人员使用本平台可以高效地开发出MIS系统,MIS系统中有些特殊功能,无法通过平台实现,UDPDD平台为此预留了接口,开发人员需要单独编写程序,并通过平台接入到MIS系统中。

2.2 UDPDD平台的开发模式

UDPDD平台的开发模式是以通用的用户数据字典为基础,UDPDD平台已设计好用户数据字典,开发人员通用平台输入表信息,平台将自动生成表结构,创建用户数据表,并将用户数据填充到用户数据字典中,然后通过平台动态生成SQL以及Web界面,完成MIS系统的开发。UDPDD平台的开发模式实现了系统间的通用,突破了现有平台的局限,大大地提升了通用性,它的开发模式如图2所示。

2.3 UDPDD平台的特点

1.支持用户自定义动态查询,查询内容可以是任意表、任意字段的组合。查询条件完全取决于用户的需求,可以随意创建。涉及到多表的查询,平台自动实现表的连接。

2.能按语法规则动态正确地组合、生成SQL查询语句,并动态返回查询结果。

3.基于B/S模式,引入MVC思想,以J2EE技术实现。

4.实现 DDL语言功能,能够根据开发人员的设置自动建表,开发人员可以通过平台建表、删除表、以及修改表结构。

5.动态生成Web界面。

6.基于B/S模式,引入MVC思想,以J2EE技术实现。

图2 UDPDD平台开发模式示意图

3 设计与实现

3.1 系统架构设计

UDPDD平台在B/S模式下实现,基于轻量级J2EE规范,采用经典的3层架构,系统按功能共分为两大模块:1.系统设计模块:这个模块完成 MIS系统的设计工作,它由菜单设计、表设计、字段设计3个模块组成2. 系统管理模块:对平台的使用进行管理,它由包括开发者账号管理、用户权限管理、登录用户口令、用户日志管理4个模块组成。如图3所示。

图3 系统模块图

3.2 数据字典的设计

3.2.1 数据字典的总体结构设计

系统的数据字典共由12个字典表组成它们分别为:

1.数据库信息表(DD_DATABASE)。

2.数据表信息表(DD_TABLES)。

3.字段信息表(DD_COLUMNS)。

4.登录信息表(DD_LOGIN)。

5.模块信息表(DD_MODULE)。

6.权限信息表(DD_PURVIEW)。

7.用户信息表(DD_USER)。

8.菜单信息表(DD_MENU)。

9.风格选择信息(DD_STYLESELECT)。

10.存储结构信息表(DD_PROCEDURE)。

11.触发器信息表(DD_TRIGGER)。

12. DBMS信息表(DD_DBMS)。

其中DBMS信息表是为了实现系统与平台无关而建立的,使UDPDD平台能够支持多种主流的DBMS,它不参与到数据字典的总体结构中,数据字典的总体结构如图4所示。

图4 数据字典表关系图

3.2.2 数据字典表的设计

数据字典表较多,限于篇幅,这里只详细介绍其中比较重要的3张DD_TABLES、DD_MENU 、DD_COLUMNS,见表1至表3所示。表中一些字段的判定,如果不另加说明,默认取值为0,1,如表1中Is_view字段,1代表是,0代表不是。为了清晰地说明字段的属性与取值含义,突出UDPDD平台设计的思想,本文将在后面的章节中配合实例详细说明。

表1 数据表信息表

表2 菜单信息表

表3 字段信息表

3.2.3 动态SQL语句生成器的设计

SQL语句生成器的实现按照MVC设计模式将程序划分为模型(Model)、视图(View)、控制器(Controller)3个部分,这3部分分别应用不同的J2EE组件技术实现,在构建动态SQL时,首先根据用户要执行的操作类型,然后调用相应的JavaBean进行业务处理,根据SQL语句的4个基本操作,分别编写了 selectBean、insertBean、deleteBean、updateBean 4个JavaBean进行处理。然后对标准的SQL语句进行语义分析,将语句按语义分解成多个部分,在每个JavaBean中编写不同的类来处理相应的SQL部分。最后再按照用户自定义的要求动态地把分解的部分组合起来,形成一条完整的SQL语句。图5以查询为例说明了动态SQL的生产过程。

图5 动态生成SQL语句示意图

4 应用举例

该通用查询平台已经成功地应用到大众一汽发动机(大连)有限公司的设备故障维修系统的开发中,该系统以通用开发平台为开发工具,用户自定义页面使用JSP技术,数据库采用SQL Server 2005。图6为系统主界面。

图6 系统主界面

下面结合实例简要说明下创建表的过程,用户点击表设计菜单项,显示出目前用户数据表的信息,然后再点击表添加按钮,显示建表页面,如图8所示,在字典表DD_TABLES中对表的属性进行了设计,用户自定义这些属性,然后进入字段设计页面为表添加字段,如图8所示。

图7 表添加页面

图8 字段添加页面

5 结束语

本文着眼于以往研究的不足,并引入一些创新设计,提出了一种基于数据字典的通用平台,即UDPDD平台。该平台已通过测试,成功地应用于大众一汽发动机(大连)有限公司的设备故障维修系统的开发中,满足了通用开发的需求,实现了缩短软件周期、降低成本的目的。MIS系统的开发拥有广泛的市场需求,简单易行的特性和实际应用中的强大功能使得通用查询平台有着广阔的生存空间。

[1] 王献勇,刘树惠.基于数据字典的界面动态生成方法探讨[J] .软件导刊,2008,7(1):54-56.

[2] 郭胜辉,孙玉芳.基于数据字典库的信息系统的设计[J] .计算机学报.2000,23(4):414-417.

[3] 李磊,李一凡,郝明国.基于用户数据字典的通用动态查询组件的研究与实现[J] .微电子学与计算机,2005,22(3):17-19.

[4] 王德广,张军卒,李文.基于数据字典的通用查询平台的设计[J] .科学技术与工程,2008,9(19):5849-5851.

猜你喜欢
开发人员字典语句
重点:语句衔接
字典的由来
Semtech发布LoRa Basics 以加速物联网应用
大头熊的字典
正版字典
后悔了?教你隐藏开发人员选项
如何搞定语句衔接题
作文语句实录
三星SMI扩展Java论坛 开发人员可用母语