企业应用快速开发平台

企业应用快速开发平台

 

 

TU1需求UT 2

TU2目标UT 2

TU3技术方案UT 3

TU4技术线路UT 4

TU4.1AOP技术UT 4

TU4.2IOC技术UT 5

TU4.3企业功能组件UT 5

TU4.4模板和向导规则UT 6

TU5技术难点和目标UT 6

TU5.1技术难点1UT 6

TU5.2技术难点2UT 6

TU5.3技术难点3UT 6

TU5.4预期目标UT 6

TU5.5主要创新UT 7

TU

1需求

       企业构建自己的信息系统,有两种途径,一是购买现有产品,而是自主开发。即使购买现有产品的企业,因为所购买产品不是针对自身需求进行开发的,往往也需要进行二次开发。而企业应用系统的开发总是一个非常复杂的过程。因为企业应用需求的不确定性、开发工具和支撑平台的多样性、可用技术资源的匮乏性,导致企业应用开发常常投入大量资金确收效甚微。利用现有的开发平台,不管是微软的Visual StudioIBMWSADSunSun One,还是第三方独立软件供应商如borlandjBuilderDephi,进行一个典型的企业应用开发,都是非常困难的事情,因为这些开发工具的出发点都是面向技术层面的(更确切地说是面向软件工程师的),而不是面向企业需求的,因此,即使高级软件工程师和经验丰富的系统架构师也不能在短时间内快速构建出一个能满足通常应用的系统。

       是否能有一种面向企业需求的快速开发平台,可以满足各种规模企业应用的快速构建呢?

       总结一个典型的企业应用,不管它是企业资源计划(ERP)、客户关系管理(CRM)、电子政务(E-Government)、电子商务(E-Business)、工作流(WorkFlow)或是内容管理系统(CMS),都可能会具有如下特征:

Ø         安全:限制使用该系统的角色(Role)及相应权限(Permission),保护受限的资源(Resource),可能还需要对同类角色分组(Group)进行管理。

Ø         事务:对典型的电子交易或审批流程来说,事务是至关重要的一环,可保证一系统活动的全部完成或全部回滚。

Ø         对象关系映射:现有的主要编程模式多是OOP,而主要的数据存储方式都是RDBMS,因此几乎每种应用都涉及到对象关系映射O/R Mapping

Ø         消息服务:每个活动、每个子系统之间如何传递消息。消息的传递方式应该是一种统一的模型,与所选用的平台和所构建的系统无关。

Ø         缓存和及时更新:对高并发、大访问量的系统,需要增加缓存策略,缓存最常访问的信息,同时要保证这些信息及时更新。

Ø         日志:对操作流程进行记录,保证操作的不可抵赖性;对错误信息进行记录,便于对系统进行调试和监控。

对于各种企业应用来说,这些特征不是必须的,而是可选配置。我们需要的是一种设计良好可插入式企业功能组件,每个组件满足一个特定的企业需求,然后可使用这些组件来快速构建企业应用。

2目标

       构建一个企业应用快速开发平台,需要这么几个部分:

Ø         企业功能组件组件:包括安全、事务、对象关系映射、消息服务、缓存机制、日志管理等。每种组件使用AOP技术实现,对外提供统一接口,可横向插入系统,不具侵入性,不会影响其它子系统的设计实现。

Ø         抽象容器层:企业应用遵循标准的J2EE标准,但是运行在一个抽象容器层之上,以便于将系统与底层的中间件服务器分离,这样可使企业应用独立于J2EE应用服务器。

Ø         模板和向导:为每种组件提供一个模板,以描述该组件的功能和提供的接口。向导则使用模板定义的规则将该组件构建为子系统。

Ø         构建系统:构建系统应该独立于各种集成开发环境IDE,自动地将各种组件、各个子系统构建为完整的企业应用。

 

企业应用快速开发平台应该使用开放的标准如javaXML和得到广泛使用的开源工具如antxdoclet等进行构建,尽量不依赖于操作系统和应用服务器。

3技术方案

企业应用快速开发平台的整体结构如下:

 

       在该图中,粉红色的部分是企业快速应用开发平台的核心。

       首先是企业功能组件。所有的企业功能组件,不管是既有的还是重新设计的,都必须遵循IOCInversion of control)和AOPAspects-Oriented Programming)设计范式,可以动态地插入到IOC/AOP Container中运行。组件与组件之间应该是链状的关系,彼此不相互依赖,如下图:

每个组件还必须提供自描述的基于XML的模板文件(templates),该模板文件定义了这个组件实现的功能,所提供的接口,所需的资源。在构建系统时,将根据这个模板文件来组装(或插入)这个组件。

       第二是IOC/AOP Container容器。该容器将提供各个组件运行所需的最小运行时环境(Runtime Context),一经实现,它将是稳定的内核,对每一个新的企业应用开发来说,它是内部底层的东西,不需要开发人员去注意和了解。

       第三是向导Wizards。使用Wizards来定义一些典型应用的封装过程(即如何将既有组件组合为一个特定的企业应用),在更高一级抽象层次上描述企业应用的快速开发过程。开发人员可以使用向导逐步构建一个系统,并且在每一步向导中所做的设置在向导完成后都可以再更改。向导的实现可以有两种方式,一是基于XML的模板使用命令行完成,类似于unixmake工具。第二是开发eclipse插件,使用图形界面的形式完成。

       最后是构建系统Build System。这一步将完成整个企业应用的构建,前提是存在可用企业功能组件,每个功能组件都有完善的自我描述模板,并使用向导对这些组件的封装进行了设置。在此基础上,使用ANTXDOCLET技术或其扩展形式完成系统的构建。构建系统应该完成编译、部署、运行和测试的工作。

 

4技术线路

4.1AOP技术

面向 Aspect 的编程(AOPAspect-Ooriented Programming)是一种新型编程技术。UML的创始人Grandy Booch认为AOP会是下十年最重要的编程技术。传统的程序经常表现出一些不能自然地适合单个程序模块或者几个紧密相关的程序模块的行为,因此面向 Aspect 的编程(AOP)应运而生。Aspect 的先驱将这种行为称为横切(Crosscuts),因为它跨越了给定编程模型中的典型职责界限。例如,在面向对象的编程中,模块性的天然单位是类,横切关系是一种跨越多个类的关系。典型横切关系包括日志记录、对上下文敏感的错误处理、性能优化以及设计模式。

       面向方面编程AOP是一个令人兴奋的新模式。面向对象编程(OOPObject-Oriented Programming)是过去十年最重要的编程技术,主要用于为同一对象层次的公用行为建模。它的主要弱点是对象之间的关系必须是静态的,一个公用的功能模块也不得不由多个对象模型来实现,因此,任一需求的变化、任一对象模型的变化都可能导致软件工程的延期。而这恰恰是AOP适合的地方。AOP技术允许我们动态地设计新的模型来满足变更的需求,而不必修改原有的静态模型。另外,我们可以将这些模型的代码统一放置在一个地方,仅提供一个接口为外界服务,而不是将代码分散在很多包和类中。AOPOOP式互为补充的开发技术。AOP可以从原来分散在包、类、方法里面的功能模块抽象出来,封装为更易于维护和为外界提供调用接口的拦截器Interceptor,每个Interceptor专注于完成自己的功能而不与无关的模块交互,每个Interceptor都是可插拔的。AOP技术可以将完成特定功能的相关对象组合在一起,使得代码有更好的可读性并便于维护。

    目前AOP具体实现有以下几个项目:

AspectJ (TM):创建于Xerox PARC. 有近十年历史,技术成熟,目前和eclipse结合了。缺点是过于复杂;破坏封装;需要专门的Java编译器。

动态AOP:使用JDK的动态代理API或字节码Bytecode处理技术。

基于动态代理API的具体项目有:JBoss4nanning

基于字节码的项目有:aspectwerkzspring

    后三种AOP技术均可直接运行于java平台。目前国内还没有可用的AOP产品。

4.2IOC技术

       IOCInversion of Control的简称。它的原理是基于OO设计原则的好莱坞原则(The Hollywood Principle):不要访问我,我们将访问你。也就是说,所有的组件都是被动的(Passive),所有的组件初始化和调用都由容器负责。IOC有几种实现的类型,包括基于方法参数调用的Method-based (M) IoC,它把组件传递给每个方法调用;基于接口的Interface-based (I) IoC(通常称为类型1),它使用接口来声明组件之间的依赖性,例如,Serviceable, Configurable;基于Setter方法的Setter-based (S) IoC(通常称为类型2),它使用setter方法来设置组件之间的依赖性;基于构造函数的Constructor-based (C) IoC(通常称为类型3)。IOC是框架开发的一个基本原理。在开源软件中,不少的容器类框架都采用了IOC的思路。例如PicoContainer采用了类型3IOC技术,Spring主要采用了类型2IOC技术,而apacheAvalon则主要采用了类型1IOC技术。国内目前还没有基于IOC技术的产品。

4.3企业功能组件

       基于AOP技术和IOC技术的企业功能组件,主要是按企业应用需求进行划分的。许多企业应用所需的功能如安全和用户验证模块,几乎在所有的系统里都需要重新开发一遍,这是对软件资源的极大浪费。而采用AOPIOC技术来设计这个功能模块,就完全可以在不同的系统里复用这个功能组件,极大地提高软件的复用率和生产效率。目前国内外都还没有对该课题进行专门的研究,没有现成的产品可用。

4.4模板和向导规则

       每个企业功能组件需要有一个自描述的模板来定义该组件的功能和接口,以及所需资源。该模板基于XML技术,由企业功能组件供应者提供。向导规则则描述如何使用功能组件的模板来组合这些组件以成为一个完整的系统,向导规则最终体现为可视化的eclipse插件。模板和向导的技术标准为JSR175 METADATA,可借鉴的工具有XDocletANT。可视化的向导将遵循eclipse插件开发技术,并提供中文操作界面。

5技术难点和目标

5.1技术难点1

    遵循J2EE标准的应用开发框架。J2EE是一个基于Java语言的企业级应用开发的国际标准,使得应用开发只需要完成业务逻辑的对象封装,系统逻辑将由J2EE应用服务器自动承担。然而,从业务需求到应用框架的建立和代码实现之间有着很大的鸿沟,要求技术人员不仅非常了解J2EE标准,而且具有应用系统建模的高超技能。企业应用框架是在J2EE实现企业应用快速开发的基础,为业务逻辑的系统建模提供了基础模扳和应用架构的基本框架。

5.2技术难点2

    通常的集成开发平台都是从技术层次纵向划分一个企业应用的开发过程,而不是从需求角度横向划分企业应用的功能模块。企业应用快速开发平台将从企业应用的需求特征出发,构建可复用的企业功能组件,所有功能组件具有自描述性的模板,使用向导工具动态组装所需功能组件以构建企业应用系统。

5.3技术难点3

    使用企业应用快速开发平台开发的系统将运行于设计精巧的IOC/AOP容器之上,使得所设计的系统将不依赖于具体的中间件服务器,具有跨平台的特征。同时,运行于IOC/AOP容器之上的系统将不随底层中间件服务器的升级而变化,可以延长系统的使用寿命。

5.4预期目标

我们的快速开发平台主要为构建企业应用服务。企业应用范围包括典型的ERP系统、CRM系统、PDM系统等传统企业信息化系统和含行业应用系统提供通用的快速开发工具。该工具建立在Linuix操作系统之上,将扩大国产Linux操作系统在广大企业中的使用范围。

主要技术指标和水平:

实现应用框架和快速开发平台的基础:IOC/AOP容器,

使用AOP技术实现可复用用的企业功能组件如安全、事务、分布式、缓存、消息等,使用基于XML技术的模板来自描述其功能和接口。

实现基于Eclipse通用开发工具的快速应用开发插件,包括业务模型的编辑器、模板订制向导、和程序自动化生成的插件。

5.5主要创新

    可复用的企业功能组件:包括安全、事务、对象关系映射、消息服务、缓存机制、日志管理等。每种组件使用AOP技术实现,对外提供统一接口,可横向插入系统,不具侵入性,不会影响其它子系统的设计实现。

    独立的抽象容器层IOC/AOP容器:企业应用遵循标准的J2EE标准,但是运行在一个抽象容器层之上,以便于将系统与底层的中间件服务器分离,这样可使企业应用独立于J2EE应用服务器。该容器采用IOC/AOP技术,是一个轻量级的容器,负责组件的生命周期管理并提供运行环境Runtime Context

    模板和向导:为每种组件提供一个模板,以描述该组件的功能和提供的接口。向导则使用模板定义的规则将该组件构建为子系统。

    构建系统:构建系统应该独立于各种集成开发环境IDE,具有自动化代码生成的功能,自动地将各种组件、各个子系统构建为完整的企业应用。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
极致管理软件开发平台基于Microsoft .Net开发技术和模型驱动的技术架构,是面向业务应用的管理软件开发平台。极致管理软件开发平台提供数据实体定义工具、界面设计工具、系统发布工具和运行时框架组件,帮助软件开发人员突破技术瓶颈,实现少写代码或不写代码、快速开发应用软件的目的。 极致管理软件开发平台基于模型驱动的技术架构,不仅能够快速开发应用软件,而且开发的软件系统具有高度的扩展性和可维护性,能够根据的用户需求快速地对软件系统进行调整,降低了软件实施和维护过程中的成本和风险,使软件系统能够充分满足用户的个性化需求,以及用户不断发展和完善信息系统的长期目标。 极致管理软件开发平台体现了极致公司充分把握目前管理软件平台开发的新趋势,融合了极致公司在管理软件领域的行业经验和主流的开发技术,能够帮助软件企业实现“快速开发、随需而变”的目标,从而帮助软件企业在激烈的市场竞争中赢得先机并获得前所未有的高回报。 极致管理软件开发平台的基本思想 一、模型驱动的技术架构 极致管理软件开发平台基于模型驱动的技术架构,通过元数据来保存数据实体、用户界面和业务流程的模型。应用软件系统通过运行时框架根据元数据描述的模型来访问数据、加载用户界面并驱动业务流程。 以模型驱动的方式,而不是编程的方式,使软件系统更加易于理解,并且有更好的扩展性和可维护性。 数据实体元数据 使用极致数据实体定义工具进行数据实体定义时,一方面对数据实体的定义进行了描述,另一方面建立了数据实体之间的关系,这两方面的数据都作为元数据保存到数据库中。极致管理软件开发平台通过OR Mapping(对象-关系映射)的方式封装了对数据库的访问,以对象的方式来访问数据库中的数据,避免了通过写SQL语句来创建或维护数据表,或通过写SQL语句实现对数据的新增、修改、删除和查询的传统编程方式。 元数据的建立和OR Mapping的数据访问方式实现了面向对象的数据访问方式,能够简化编程并实现对业务逻辑的扩展,同时还为实现多数据库的支持建立了良好基础。极致管理软件开发平台简化了以数据为中心的应用程序中与数据持久化相关的编程任务,使开发人员能够将开发重点专注于实现面向对象的业务模型和商业逻辑。 用户界面元数据 极致管理软件开发平台突破了传统的用户界面编程方式,通过定义界面元数据的方式,而不是编程方式来设计用户界面。极致界面设计工具能够根据数据实体的属性以及数据实体之间的关系快速地设计单据、序时薄、报表、菜单、工具栏等用户界面,同时支持通用表单的设计。通过极致界面设计工具设计的用户界面以界面元数据的方式保存在数据库中,运行时框架组件动态加载界面元数据并创建用户界面。通过元数据来描述用户界面的方式实现的界面的动态构造,使用户界面易于调整和维护。 业务流程元数据 极致管理软件开发平台集成工作流引擎,能够对业务流程进行建模。业务流程建模的结果以元数据的方式保存在数据库中,运行时由工作流引擎根据元数据的描述驱动业务流程。 二、成熟的软件基础结构 极致管理软件开发平台集成了诸多的管理软件基础结构,例如对于互联网直联的支持、对多种数据库的支持、集成的工作流引擎、短信平台和邮件系统等。 极致管理软件开发平台预置了大量的基本操作,例如单据的新增、修改、删除、复制、审核、套打等操作,报表的过滤、打印、预览、联查、导出、快速查找、图表分析等操作。 极致管理软件开发平台还提供了基于以上管理软件基础结构开发的诸多的标准组件,例如用户数据库管理、组织机构管理、用户管理、权限管理、文档管理、数据导入导出等,在通过极致管理软件开发平台开发软件系统能够直接使用。 通过使用极致管理软件开发平台提供的基础结构,在开发软件系统时能够极大地缩短软件的开发周期,降低软件开发成本

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值