BOS工具之BOS应用框架
大纲:
应用框架概述,bos应用框架总体,bos应用框架详细设计,代码结构以及常用应用,开发常用接口
框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象组件及组件实例间交互的方法;它规定了应用的体系结构,阐明了整个设计、协作组件之间的依赖关系、责任分配和控制流程,表现为一组抽象类以及其实例之间协作的方法
应用框架则是指实现了某应用领域与业务无关的通用基础功能和底层服务的可重用组件
元数据是用来描述业务数据模型结构的一种模型数据。BOS的元数据包括有解决方案、包、实体、关系、查询,数据表、功能、业务功能、枚举、异常等诸多元数据类型。
在EAS中,元数据即MDA模型,基于MOF理论建立起来的元数据体系,贯穿EAS建模/设计/开发/实施的全过程。元数据是EAS的心脏,EAS的质量首先是由元数据决定的。
BOS 设计器,编辑/维护元数据,发布Java代码
DEP 动态扩展平台,通过编辑/维护的元数据,对单据进行扩展开发
移动BOS,通过元数据设计移动端业务功能
J2EE框架,访问元数据获取事务属性并缓存
ORMapping,通过元数据生成sql语句
应用框架,通过元数据生成应用逻辑代码框架
权限/同步,通过元数据进行授权/权限通过/同步控制
工作流,通过元数据设计业务流程,流程属性
后台事务,通过元数据定义事务内容
BOTP/DAP,通过元数据定义转换规则
功能(Facade)与业务功能(Function)相似,区别在于功能的操作不绑定到实体,而业务功能的操作需要绑定到某个实体。因此在依赖于某个实体的处理,例如单据的审核操作,使用业务功能(Function),而不依赖于具体实体的处理,例如月末结账,使用功能(Facade)。
BOS元数据体系
BizData->MetaData->MetaMetaData->CoreMeta
HardCode/EntityObject.Relationship
-------------
Facade.entity/uiObject.entity/EntityObject.entity
-------------
Voucher.entity/Voucher.facade/VoucherListUI.ui
作用:
抽象通用的组件模型
提供标准的基础服务
统一规范的编程模型
降低大型应用软件系统的开发难度
缩短开发周期
提高开发效率和质量
抽象通用的业务逻辑;如新增,修改,删除等。
集成标准的基础服务;如网络互斥,权限等。
规范统一的编程模型;如单据,基础资料等。
统一编码规范和接口;
降低开发的复杂度,提高开发效率。
最大限度的实现系统的设计重用和代码重用。
bos总体架构应用表现层-orm-rpc协议-业务逻辑层-持久对象层-数据层
bos应用框架详细设计
主业务组织模式是EAS中一种通用处理模式和规范
主业务组织表示单据的业务类型
主业务组织对于单据(包括基础资料)的作用
数据隔离,授权类型,业务流向,上下文环境
D:\ Kingdee\eas\client:存放EAS客户端所有文件;
D:\ Kingdee\eas\client\logs:存放日志输出,开发人员应当重点关注并通过日志分析错误。
D:\ Kingdee\eas\client\lib:存放代码Jar包;
D:\ Kingdee\eas\client\metas存放元数据Jar包;
D:\ Kingdee\eas\client\bin存放执行文件;
客户端移植:可以把安装目录整个拷贝到其他目录或计算机直接使用,需要修改文件:【安装目录】\eas\client\bin\set-client-env.bat,修改其中的变量“EAS_HOME、JAVA_HOME”为实际的路径。
更新解决方案
解决方案中保留了服务器上的元数据和代码Jar包副本,当服务器安装补丁或者升级以后,两边的元数据和代码就不再一致,可以通过更新解决方案的功能从服务器同步元数据和代码Jar包到解决方案中。
执行更新解决方案功能方法:菜单【方案】【更新解决方案】。更新解决方案操作同“导入解决方案”,更新前需要选中解决方案根节点。
元数据:
是描述数据(模型)的数据,用于记录保存模型的所有数据。BOS建立的模型数据并不是放在单一文件中,而是按照模型的内容进行分割存储在多个文件,所有模型(元数据)文件的格式为UTF-8编码的XML文件。
一个简单的模型包含的元数据文件有:编辑界面EditUI,列表界面ListUI,实体Entity,关系Relation,表Table,查询Query,功能Function,单元集成描述BizUnit,。此外还有为支撑模型及代码开发的元数据:枚举Enum,异常Exception,权限permission,日志Log,业务功能Façade,包Pakage。
客户端类继承体系
CoreUIObject:EAS中所有UI的基类,从KDPanel派生,这样UI可以方便地嵌入到其它UI中,不包括业务逻辑.
CoreUI:所有UI界面对象的父类,集中处理服务,通用ui页面
ListUI:所有序时薄UI界面对象的父类
EditUI:所有编辑UI界面对象的父类
CoreBillListUI,CoreBillEditUI:业务单据UI界面对象的父类
BillListUI,BillEditUI:CoreBillListUI,CoreBillEditUI的子类
TreeListUI,TreeDetailListUI:树形层次结构序时薄UI界面对象的父类
服务端值对象类继承体系
PropertyContainer:抽象定义了一个属性容器,EAS值对象的存储结构
IObjectValue,AbstractBaseObjectValue:EAS所有值对抽象父类
CoreBaseInfo:所有具有ID属性的值对象的抽象父类
服务端ORM对象类继承体系
IORMModel,ORMObject:ORM-RPC协议及服务的接口和实现
IBOSObject,AbstractBOSObject :获取BOS运行引擎所需的上下文的接口和实现
ICoreBase,CoreBase:所有ORM对象的抽象父类
ICoreBillBase,CoreBillBase:EAS中所有业务单据ORM对象的抽象父类
SessionBean:无状态会话Bean的一系列操作接口
AbstractBizControllerBean:EJB操作的基本实现,获取数据库连接
AbstractEntityControllerBean:ORMapping引擎中数据访问对象(DAO)的获取和调用
AbstractCoreBaseControllerBean:EAS中具体业务值对象对应EJB的抽象父类
BOS工具之BOS应用框架的更多相关文章
- .NET领域驱动设计—初尝(一:疑问、模式、原则、工具、过程、框架、实践)
.NET领域驱动设计—初尝(一:疑问.模式.原则.工具.过程.框架.实践) 2013-04-07 17:35:27 标签:.NET DDD 驱动设计 原创作品,允许转载,转载时请务必以超链接形式标明 ...
- Python第三方常用工具、库、框架等
Python ImagingLibrary(PIL):它提供强大的图形处理的能力,并提供广泛的图形文件格式支持,该库能进行图形格式的转换.打印和显示.还能进行一些图形效果的处理,如图形的放大.缩小和旋 ...
- android码农神器 偷懒工具 android懒人框架 LoonAndroid 3 讲解
LoonAndroid 3.0 Loonandroid是一个注解框架,不涉及任何UI效果,目的是一个功能一个方法,以方法为最小颗粒度对功能进行拆解.把功能傻瓜化,简单化,去掉重复性的代码,隐藏复杂的实 ...
- [转] .NET领域驱动设计—初尝(原则、工具、过程、框架)
阅读目录: 1.原则 1.1.精简聚合 1.2.分离用例与接口功能(设计模式的用武之地) 2.工具.框架.组件 3.过程 1]原则 原则对于任何一项技术实现来说都是至关重要的,在设计某一个系统功能的时 ...
- Python3漏洞扫描工具 ( Python3 插件式框架 )
目录 Python3 漏洞检测工具 -- lance screenshot requirements 关键代码 usage documents README Guide Change Log TODO ...
- 基于Python3的漏洞检测工具 ( Python3 插件式框架 )
目录 Python3 漏洞检测工具 -- lance screenshot requirements 关键代码 usage documents Any advice or sugggestions P ...
- 开源工具 | 手游自动化框架GAutomator,新增iOS系统和UE4引擎支
WeTest 导读 GAutomator是腾讯WeTest推出的手游自动化测试框架,已用于腾讯多个手游项目组的自动化测试. 1.GAutomator诞生背后 研究过手游自动化测试的同学都知道,虽然市场 ...
- sqlite表结构动态读取工具(Chole ORM框架)
Chole ORM框架 sqlIte于嵌入式数据库读取比较有利,不需要安装office也可以进行,可以在服务器系统当中使用. 所以我开发了这款工具,然后就是为了动态的读取表结构,然后根据表结构加载所有 ...
- 利用代码生成工具生成基于ABP框架的代码
在前面随笔,我介绍了整个ABP优化过框架的分层模型,包括尽量简化整个ABP框架的各个层的关系,以及纳入一些基类的辅助处理,使得我们对应业务分层类或者接口尽可能减少代码,并具有生产环境所需要的基类接口, ...
随机推荐
- PDF在线预览-pdfjs使用
请参考我的开源: https://github.com/wuyechun2018/itools/blob/master/src/main/webapp/WEB-INF/views/pdf/index. ...
- Java web如何定位工程路径
一 项目路径的获得 System.getProperty("user.dir"); 可以获得当前用户的工作目录,即在哪个地方启动的java程序,返回就是当前目录 二 web项目根目 ...
- gap lock/next-key lock浅析Basic-Paxos协议日志同步应用
http://www.cnblogs.com/renolei/p/4673842.html 当InnoDB在判断行锁是否冲突的时候, 除了最基本的IS/IX/S/X锁的冲突判断意外, InnoDB还将 ...
- PHP array_combine()
定义和用法 array_combine() 函数通过合并两个数组来创建一个新数组,其中的第一个数组是键(索引),第二个数组为值. 如果其中一个数组为空,或者两个数组的长度不同,则该函数返回 false ...
- footer在最低显示
footer在最低显示 http://stackoverflow.com/questions/585945/how-to-align-content-of-a-div-to-the-bottom
- ubuntu 关于sublime text3的一些应用
安装 如今能够通过ppa的方法来安装sublime text3 了,个人感觉就是有有点儿慢,毕竟要update一下. sudo add-apt-repository ppa:webupd8team/s ...
- ICMP报文类型
类型代码 类型描写叙述 0 响应应答(ECHO-REPLY) 3 不可到达 4 源抑制 5 重定向 8 响应请求(ECHO-REQUEST) 11 超时 12 參数失灵 13 时间戳请求 14 时间 ...
- Eclipse搭建maven开发环境
上一篇学习了maven开发环境的搭建,而且手动编写了一个mavenproject,可是这样子效率非常低下.今天带大家学习在eclipse下搭建maven开发环境. 经常使用的maven命令 mvn c ...
- iOS 基础类解析 - NSData、NSMutableData
iOS 基础类解析 - NSData.NSMutableData 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致& ...
- T4语法
阅读目录 阅读目录 1.什么是T4? 2.vs插件的安装 3.T4初体验 4.T4语法 其实对于“T4模板”的学习,讲得最详细的还是MSDN,下面给出对应的链接,可以点开深入的了解. 回到顶部 1 ...