欢迎来到天天文库
浏览记录
ID:33183348
大小:1.13 MB
页数:73页
时间:2019-02-21
《基于mda的新型j2ee框架》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、申请上海交通大学工程硕士学位论文基于MDA的新型J2EE框架学校:上海交通大学学院:信息安全工程学院专业:计算机技术导师:李小勇,刘海涛作者:倪涛学号:1040362056班级:Z0403622上海交通大学摘要目前JAVA领域内,编程效率和运行效率是衡量J2EE框架产品优劣主要的两个标准,然而这两个标准从来都以一对矛盾体的方式存在,很难做到两全其美。即使单从两者之一去考虑,也很难给出一个良莠分明的答案。特别是运行效率这个标准,一些小规模系统上性能卓著的框架未必在较大规模系统上有同样优越的表现,仅根据某一套系统给出的概括评测往
2、往偏面而缺乏说服力。由此一个能够广泛使用的框架必须预留用以调整的空间。而本文的目的是在预留足够空间(针对于运行效率)的情况下,尽量做到提高编程效率。而编程效率和程序结构是密不可分的关系,JAVA领域经常用“开耦”(解除耦合关系)一词来表示程序结构的合理性。本文提出的框架简称DCO,意思就是“开耦”的框架。很多框架或者容器都提供了“开耦”的方法,目前流行的术语包括LoC,DI,AOP等等都代表了各种JAVA程序的“开耦”思想,本文所述的“开耦”延续于这些思想,不同的是,本文的“开耦”包含了两层含义:1.代码之间开耦;2.业务逻
3、辑和代码开耦;本文采用一种叫“方法衔接”的IoC(控制反转)机制来实现代码之间的开耦;采用基于类型属性的MDA(模型驱动)模式来实现业务逻辑和代码之间的开耦。“方法衔接”是一种把调用方法的控制权交给容器的IoC机制,不同于DI(依赖注入)机制,“方法衔接”并不属于对象管理范畴,而是让容器把相互调用的方法串联起来,依据是当一个方法返回的结果和另外一个方法所需要的参数类型相同或者相似时,就可以由容器完成两个方法的衔接。本文所提倡的MDA不属于常规的MDA模式,模型驱动的概念可以理解为:数据就是模型,代码就是驱动。本文采用关键字T
4、YPE的程序代码来实现PIM(平台无关模型),配合“数据模型”(针对于数据的描述设置)生成PSM(平台有关模型)的设计模型。如果说常规MDA中的UML图是静态的,那么本文MDA的数据模型就是动态的,甚至可以把数据模型存放于数据库中,实现数据建模,提高程序代码的灵动性。数据转换机制是DCO另外一个功能。DCO不希望使用者去关心数据的具体类型(这里的类型包括数据库中的字段类型和java代码中的实例类型),而设想用一种抽象的类型(一般指的是具体业务的数据类型)去代替,同时框架提供把抽象类型的数据装换到所需要的实例类型的功能,所以相
5、对于使用者而言,实例类型是透明的。DCO的最终目标是全部代码都可以重用,并且提供把它们封装为组件的方法,叫做组件的分离和级联机制。和滚雪球的效应一样,当可以重用的代码(组件)积累到一定的程度,应用开发就不必再写代码了,做一些配置就可以解决问题。DCO是一种新型的J2EE框架,也提供了新型的编程方式。它可以把易难分解,组件部分对于一般程序员来说具有一定难度,而对于习惯编写组件的程序员来说,又多了一种轻易完成组件的方式;应用部分实际上就是把组件连接起来。而当组件积累到一定程度,完成应用程序将变成简单而愉快的事情。关键词:模型驱动
6、,控制反转,反射,方法衔接,数据模型,DCOAbstractNowtimeinJavafield,theefficiencyofprogramandrunningperformanceisthemostimportantcriteriontoevaluateJavaframes,buttheyarealwaysambivalent.It’sahardjobtogiveanicechoicebetweenthem.AndEvenanyoneofthemcanalsonotbeevaluatedproperly,especial
7、lyrunningperformance.Wecann’treachconclusionthataframeisperfectforoursingletest,Becaucedifferentresultsmaybeconcludedfromthetestongreatsystemsengineeringoronasmallapplication.Sowehavetoadjustourframemoreagilely.Inthetext,astheproblemofrunningperformancelayedaside,w
8、eshalltrytomaketheprogrammoreeffective.Theefficiencyofprogramdependsonthestructureofthecode.InJavafield,‘couplingdecomposed’isusedtodescribearati
此文档下载收益归作者所有