东软Unieap平台

东软Unieap平台

 

开发环境与技术栈

操作系统

WINDOS7

数据库

Oracle

开发语言

JAVA

版本控制工具

git

框架

Unieap是基于现在主流的JAVA开发框架(Hibernate,Strust,Spring),封装了一些方法。所以也可以认为后台技术栈其实就是Hibernate+Strust+Spring。前端的框架也封装在了Unieap中。

SOA

采用的是阿里的框架dubbox,该框架现在主要由当当网来维护。

软件开发过程

敏捷软件开发scrum

 

 

东软Unieap平台简介

 

 

平台是基于J2EE平台的应用开发框架,为用户提供一致的规范和统一的标准,"组件化"的架构特征为规划业务用用奠定基础。

UniEAP以资产库为核心的逻辑架构主要划分为表现层(Presentation Layer),业务逻辑层(Business Logic Layer),数据层(Data Source Layer),基础框架(Infrastructure Layer)四个层次。

层次分明的MVC框架

Unieap基于MVC框架进行扩展,通过工具能够辅助生成大量繁琐的代码和配置文件,与模型驱动架构的思想结合起来,极大地提供开发人员的编码效率以及减少代码出错的几率。强大的数据绑定机制把表现层组件及业务层组件很好地衔接在一起,能够及时把表现层数据的状态变化反映给业务层,根据这些状态变化,业务层就能很轻松地把数据的变化同步到数据库中,以保证数据的一致性。

元模型驱动的设计器和运行期架构

基于模型驱动开发的业务基础平台,是以元数据模型来定义和约束组件。基于元数据模型驱动开发的思想,提供稳定且与技术平台无关的各类元数据模型。通过元数据模型沉淀业务需求,通过模型配置适应需求变化。

统一的开发平台

借助统一的平台和工具的形式,固化技术框架,规范,屏蔽技术细节并支持敏捷开发方法,为IT人员提供业务开发、运行、管理的统一手段,确保架构和规范的落地,实现业务与技术的统一。在统一的架构和规范下,逐步固化下来的IT系统作为可复用的业务模块,帮组企业资产积累资产,提高开发效率降低开发难度,提供系统的质量和稳定性。

基于软件产品线的应用开发框架

产品线架构是实现系统化复用的基础,UniEAP公共的软件产品线架构对所有在不同的产品中使用的组件定义了单一的环境,保证了不需要考虑相关类似功能组件的重复开发,只需要考虑它们的工作环境。以资产库位核心的架构平台和完备的资产开发和管理工具,支持以复用为目的的组件设计,开发和维护,通过大粒度地组件装配完成产品建造。并且,Unieap提供了丰富的基础组件与业务组件。

 

 

我对东软Unieap平台的一些思考

项目的目录

一个UniEAP工程主要由软件组件(Software Component)和开发组件组成

软件组件(SC)工程结构如下图所示

开发组件(DC)工程结构如下图所示

工程中的每个开发组件都可以引用其他的开发组件,也就是说每个开发组件都可以复用

 

开发组件的Metamodel文件夹中包含本开发组件下的各类模型定义文件

BO模型就是传统软件设计中的Service层

DAO模型就是传统软件设计中的Dao层

ENTITY和DTO模型就是数据实体,其中ENTITY直接是数据库表的对应实体(就是JavaBean),DTO数据传输层,当单一的实体满足不了业务要求的时候就需要该模型。

VIEW模型就是传统MVC中的视图层

 

其实就是传统的MVC模型,MVC模型应该可以说是现在的业内标准了。

接着下去我说一下平台基于的框架在平台中所扮演的角色。

Hibernate或者现在将要整合上去的Mybatis在平台中扮演着持久层的角色,他们都是ORM框架,即通过他们把数据库的表和实体类关联起来,方便我们访问数据库。

Spring在平台中主要用来对JavaBean的管理

Strust主要用来对页面跳转进行控制

 

这些框架基本上都是基于配置的。其实刚开始的时候我也很疑惑为什么框架一般都要写很多配置文件,配置文件始终没有代码来得有逻辑性。但是当我在开发一个功能Excel导入的时候,我才觉得配置文件的好处。需求是多变的,这是无法避免的事实,可能你今天有这样的需求,明天有那样的需求,甚至有时还不知道自己的需求到底是什么。所以在做Excel导入的时候,如果你把每列的对应关系都写在逻辑代码中的话,后期维护起来是非常麻烦的,只要你的需求一改的话,就要改原代码。如果这时候你把对应关系写在配置文件中的话,维护起来相对就比较方便了。首先所有相关字段配置都在一起,一目了然。其次如果项目已经在运行了的话,你改配置文件项目也不用再从新启动。

 

在平台的学习中有"软件组件"和"开发组件"这种概念,在我的理解中组件是具有一定的独立功能也就是说组件和组件之间的耦合性比较小,并且是一种粒度比较大的复用。在CRM的开发中,有"线索","商机","样机"等模块,这每一个模块都可以开发为一个组件,而且组件之间是有关联的比如"线索"模块就是为了过滤一部分潜在用户再转到"商机"模块成为正式用户。这种关系用小时候玩积木的比喻是很恰当的,比如你要搭建一个房子,你就要通过一些个各式各样的积木进行搭建。不同的积木块是相对比较独立的,他的内部是比较结实的,耦合性比较强,但是你搭的一个房子,积木块之间就需要项目接触,这种接触就是积木块之间的关联,但是这种关联是松耦合的,可拆卸的。每个积木可能同时和好几个其他积木进行接触。积木就是映射组件,房子就是映射一个项目。软件工程有一个很重要的设计概念,高内聚低耦合,组件就很好应用了这种概念。至于如果定义组件的粒度,到时什么样的规模算是组件,这个就不好定义了,这个要看具体的项目。以生物系统来做比喻吧,如果是一个细胞的话,细胞膜,细胞壁,细胞质就算一个组件了。但是对于组织来说的话,神经细胞,淋巴细胞,血细胞...才算一个组件。对于消化器官来说,上皮组织,结缔组织,肌肉组织...才能算一个组件。所以组件的粒度要看你针对的是什么规模的代码。

 

 

我觉平台中的很多设计是很有借鉴意义的。这里我列举我学习时候认为很不错的思想。对于像OA等业务开发的系统,基本上是以数据为中心的。需求的变更基本上是围绕着表结构和字段的变更。所以平台基本上是围绕着数据来进行设计的。对于每一个VIEW或者VIEWC,VIEWC是可以嵌入到VIEW中的组件,都会绑定一个数据集或多个数据集。数据集是由实体的属性组成,即直接对应数据库中的表的字段。平台在设计的时候就已经很好的把这些封装好了。所以你在开发时候,就可以很方便的使用,好像什么都不用做。但是这种封装是基于一定的规则的,你必须要遵守这些规则。就像那些框架的使用一样,也是要遵守相应框架的规则的。其中最重要的规则之一就是命名规则,框架之所以可以帮你做很多自动化的事情,很关键一个就是它是根据字段的名字,进行映射的。我觉得每一个框架的诞生都是由程序员长期写相同的代码,然后思考如果把这些相同的代码提取出来,然后放在配置中只要进行简单配置就好了,这样既减少了重复的代码同时也方便项目的可维护性和可扩展性。VIEW中的数据集,具体绑定在form表单或者grid表单,这是两种最常用的展示数据的控件。后台取到的form或者grid的数据就直接是JavaBean对象,这样减少了一些繁琐的操作。刚才也说过平台的很多东西都是基于配置的,这样也方面部署,平台的表现层框架采用的是strust。

这样我们写页面的跳转就可以是基于配置文件来写的。而Unieap平台又对这一框架进行了封装,对于页面的跳转,平台直接在前台写脚本语句有可以了。

 

 

对于中间件的理解,由于之前也没有什么概念,网上对于中间件的定义也千奇百怪,这里我引用维基百科上面的定义:

Middleware is computer software that provides services to software application beyond those available from operating system. It can be described as "software glue". Middleware makes it easier for software developers to implement communication and input/output, so they can focus on the specific purpose of their application.

中间件是一种在操作系统之上的为应用软件提供服务的软件。它可以被描述为"软件胶水"。中间件可以为软件开发者提供更加容易的软件间的通信和输入\输出,这样开发者就可以把精力集中在这些为了满足特定需求的软件开发上面。

Database access services are often characterised as middleware. Some of them are language specific implementations and support heterogeneous features and other related communication features. Examples of database-oriented middleware include ODBC,JDBC and transaction processing monitors.

数据访问服务通常被描述为中间件。他们其中的一些是用特定的语言实现的并且支持各式各样的功能,而其他的一些和通信的功能紧密相连。例如数据库中间件包括ODBC,JDBC和事物进程监控。

这里我就把JDBC理解成一种数据库访问的中间件。在东软的Unieap平台中ORM框架使用的Hibernate,我就说一下Hibernate和JDBC之间的关系。

Hibernate是jdbc的轻量级封装,包括jdbc的与数据库的连接(用hibernate.property的配置文件实现当然本质是封装了jdbc的forname),和查询,删除等代码,都用面向对象的思想用代码联系起来,hibernate通过hbm 配置文件把po类的字段和数据库的字段关联起来比如数据库的id,在po类中就是pravite Long id; public Long getId() public setId(Long id);然后hql语句也是面向对象的,它的查询语句不是查询数据库而是查询类的,这些实现的魔法就是xml文件,其实hibernate=封装的jdbc+xml文件

以此来说的话,我觉得框架是对中间件的一种封装,使中间件更容易的被使用。

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
UniEAP®包含开发工具、技术框架、通用技术组件和件开发方法学,提供从需求、设计、开发、调试、部署到运维的应用全生命周期一站式服务,支撑IT应用的敏捷构建。 家族产品组成 UniEAP®家族产品围绕企业IT应用构建的两个核心业务“数据和流程”,关注应用构建的两个关键指标“效率和质量”,打造一个敏捷、高效的业务基础平台,家族产品包括: 平台优势 优秀的平台=卓越的技术+丰富的资产+科学的方法 应用全生命周期支撑 采用先进的技术架构,通过组件化、模型化、模板化、可变化和可视化的开发平台支撑应用全生命周期建设和管理,提供应用敏捷构建与灵活整合的一站式服务,全面提升用户对IT掌控能力。 丰富的件资产库 借助行业解决方案的多年积累,将众多领域最佳实践沉淀为大量可复用的件资产供用户选择借鉴,帮助用户在平台之上构建应用的同时不断积累自身核心的件资产。 敏捷开发管理体系 针对平台模式定制一套切实有效的实施管理体系,将敏捷方法贯穿平台和应用建设的全过程,让平台实施有条不紊、卓有成效,确保用户的件投资能够快速获得回报。 核心价值 创新与变革 通过面向件产品线的生产方式,让件开发成为规模化定制。突破传统件套件封闭、不易定制的瓶颈,根据需求量身定制业务基础平台,通过技术实现业务模式的创新与变革,提高差异化的业务竞争能力。 开放与整合 提供一系列开放技术架构的件产品:应用开发平台、业务流程管理平台、统计分析平台、数据集成平台和自动化测试平台,通过应用、流程和数据的整合有效利用信息资源,保持IT与业务目标一致。
UNIEAP(北大方正联智信息技术有限公司)是一家提供企业级应用开发平台和解决方案的公司。在使用UNIEAP进行应用开发时,可能需要使用一些插件来增强平台的功能和性能。 UNIEAP所需的插件列表根据具体的开发需求而有所不同。以下是一些常见的UNIEAP插件: 1. 数据库插件:如MySQL、Oracle、SQL Server等数据库的驱动插件,用于与数据库进行连接和操作。 2. 日志插件:用于记录系统运行时的日志信息,方便排查问题和分析性能。 3. 安全插件:用于实现用户身份认证和授权功能,例如登录验证、权限管理等。 4. 图表插件:用于绘制各类图表,如柱状图、折线图、饼图等,用于数据可视化和分析。 5. 导入导出插件:用于将数据导入到系统中或导出系统中的数据,常见的格式包括Excel、CSV等。 6. 地图插件:用于显示地理位置和地图信息,例如地图标注、地理位置搜索等。 7. 缓存插件:用于提高系统的性能和响应速度,常见的缓存插件有Redis、Memcached等。 8. 消息队列插件:用于实现异步消息处理,例如RabbitMQ、Kafka等,提高系统的并发处理能力。 9. 搜索引擎插件:用于实现全文搜索和检索功能,例如Elasticsearch、Solr等。 10. 文件上传插件:用于实现文件上传和管理,例如图片上传、附件管理等。 以上仅是一些常见的UNIEAP插件,具体的插件列表还需要根据实际项目需求和技术选型来确定。同时,UNIEAP也支持自定义插件开发,可以根据项目的特殊需求进行插件开发。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值