企业应用快速开发平台

目  录

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 Studio,IBM的WSAD,Sun的Sun One,还是第三方独立软件供应商如borland的jBuilder、Dephi,进行一个典型的企业应用开发,都是非常困难的事情,因为这些开发工具的出发点都是面向技术层面的(更确切地说是面向软件工程师的),而不是面向企业需求的,因此,即使高级软件工程师和经验丰富的系统架构师也不能在短时间内快速构建出一个能满足通常应用的系统。

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

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

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

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

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

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

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

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

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

2目标

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

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

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

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

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

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

3技术方案

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

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

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

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

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

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

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

4技术线路

4.1AOP技术

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

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

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

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

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

基于动态代理API的具体项目有:JBoss4和nanning。

基于字节码的项目有:aspectwerkz和spring。

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

4.2IOC技术

IOC是Inversion 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采用了类型3的IOC技术,Spring主要采用了类型2的IOC技术,而apache的Avalon则主要采用了类型1的IOC技术。国内目前还没有基于IOC技术的产品。

4.3企业功能组件

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

4.4模板和向导规则

每个企业功能组件需要有一个自描述的模板来定义该组件的功能和接口,以及所需资源。该模板基于XML技术,由企业功能组件供应者提供。向导规则则描述如何使用功能组件的模板来组合这些组件以成为一个完整的系统,向导规则最终体现为可视化的eclipse插件。模板和向导的技术标准为JSR175 METADATA,可借鉴的工具有XDoclet和ANT。可视化的向导将遵循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,具有自动化代码生成的功能,自动地将各种组件、各个子系统构建为完整的企业应用。

企业应用快速开发平台相关推荐

  1. 企业信息化快速开发平台JeeSite

    为什么80%的码农都做不了架构师?>>>    平台简介 JeeSite是基于多个优秀的开源项目,高度整合封装而成的高效,高性能,强安全性的开源Java EE快速开发平台. JeeS ...

  2. JeeSite 企业信息化快速开发平台

    点击打开链接 具体的请查看文档 有关使用jeesite开发笔记:http://m.blog.csdn.net/article/details?id=51251619

  3. 快速开发平台:企业信息化建设的不二选择

    随着计算机和信息化技术的发展,企业的信息化建设日趋完善,企业管理对信息化的依赖程度也越来越高.ERP.OA.BPM等系统,作为企业信息化的标配,一直以来占据着企业信息管理的核心地位. 由于这类应用涉及 ...

  4. 我们的开源项目-2013年度开源社区线下聚会《JEECG微云快速开发平台-SAAS企业应用在线开发与微信移动应用》PPT分享

    我们的开源项目-2013年度开源社区线下聚会<JEECG微云快速开发平台-SAAS企业应用在线开发与微信移动应用>PPT分享 下载地址:http://pan.baidu.com/s/1hq ...

  5. 浅谈快速开发平台:突破系统开发边界,赋能企业数字化!

    快速开发平台,简单地说就是指那些不用编码或通过少量代码,就可以快速开发应用程序的平台.既可以降低开发人力成本,又可以缩短开发时间,从而实现企业降本增效的价值. 今天为大家介绍4款成熟业务的快速开发平台 ...

  6. MyClouds-V1.0 发布,微服务治理及快速开发平台

    2019独角兽企业重金招聘Python工程师标准>>> 轻量级微服务治理及快速开发平台 MyClouds-V1.0 已发布. 更新如下 [优化]优化了进行主题设置时候当前页面相关组件 ...

  7. JEECG微云快速开发平台

    2019独角兽企业重金招聘Python工程师标准>>> JEECG微云快速开发平台 JEECG微云开发平台,是开元界内最主流的企业快速开发平台.集成完善的工作流平台,独创开发模式,代 ...

  8. 简易快速的开发,需要一个快速开发平台来支持

    力软快速开发平台是一款基于智能化可扩展组件式的软件系统项目,是一个带有代码生成器的.net平台,可以帮助解决.net项目中80%的重复代码.既能为公司节约人力,提升开发效率,又不失灵活性. 平台由众多 ...

  9. Learun对快速开发平台的基本认知与设定

    1 概述 随着软件行业日新月异的发展,使用传统的开发工具已经不能满足现有程序员的诉求,每个项目都要从零开始,代码无复用率:所有的基础功能需要一行一点的敲代码,一个预置基本功能模型,可以快速生成代码的开 ...

最新文章

  1. mysql 触发器判断不插入数据_mysql关于触发器怎么判断数据存在时更新不存在时添加呢!...
  2. synchronized 与 Lock 的那点事
  3. RGB转YUV 各种库的性能比较
  4. 消息队列--RabbitMQ简单使用
  5. 多媒体计算机技术19秋作业1,东师多媒体计算机技术19春在线作业1【标准答案】.doc...
  6. C++ 纯虚函数 虚函数 override
  7. IntelliJ IDEA使用技巧(四)——设置默认Maven的方法
  8. Python3入门机器学习经典算法与应用 第3章 更多相关操作
  9. 【ML小结10】集成学习
  10. 微信小程序怎么字体鼠标放上去变颜色?_【干货】CDR快捷键常识小技巧大全,记得收藏!...
  11. 【科研绘图第一期】六方蜂窝状分子绘图
  12. 用pip install pqi时报错:parse() got an unexpected keyword argument 'transport_encoding'
  13. Vodafone 移动终端声质量评价
  14. 深度学习之LSTM案例分析(二)
  15. 网站页面制作教程[纯萌新]
  16. 数据结构Python版--线性结构
  17. Leetcode 1436旅行终点站 拓扑排序 并查集与队列
  18. pythoncookie自动登录_Python爬虫连载6-cookie深入使用实例化实现自动登录
  19. android 键盘设置详解
  20. ORACLE之ora-01722和ORA-01403的错误测试

热门文章

  1. watch和watchEffect
  2. linux 无法创建文件,无法创建文件系统以及无法创建PV时怎么办?
  3. 基于磁链模型的非线性观测器
  4. 《给研究生的学术建议》13——研究设计
  5. 用TensorFlow和TFSlim实现图像分类与分割
  6. hive面试题——求连续活跃天数
  7. Nacos的下载安装
  8. 竞赛题目分享1:跳楼梯
  9. 欧几里德算法 扩展欧几里德算法
  10. 笔记本电脑(laptop)通常具备使用USB设备的功能.实现接口回调(使用面向对象思想编程:接口,多态等).