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框架的各个层的关系,以及纳入一些基类的辅助处理,使得我们对应业务分层类或者接口尽可能减少代码,并具有生产环境所需要的基类接口, ...
随机推荐
- MYSQL 字符集 MYSQL 源码
http://blog.csdn.net/maray/article/details/46504621
- Hard模式题目
先过一下Hard模式的题目吧. # Title Editorial Acceptance Difficulty Frequency . 65 Valid Number 12.6% Ha ...
- JCE, Java Cryptography Extension
JCE, Java Cryptography Extension Java 8 JCE下载地址: http://www.oracle.com/technetwork/java/javase/downl ...
- Equals和==的差别
java中的数据类型.可分为两类: 1.基本数据类型 包含:byte,short,char,int,long,float,double,boolean .基础数据类型比較大小的时候使用的是双等号(= ...
- 3D数学读书笔记——多坐标系和向量基础
本系列文章由birdlove1987编写,转载请注明出处. 文章链接: http://blog.csdn.net/zhurui_idea/article/details/24662453 第一个知识点 ...
- Myeclipse中解决spring配置文件无提示问题
相信非常多人都遇到过在部署spring框架写spring的配置文件时无提示内容的问题,都是仅仅能提示一些标签 名,而无法提示属性值,bz我本人今天也遇到了这种问题.在网上找了非常久答案,非常多方法都不 ...
- Android 输入管理服务-输入事件到达之后的处理流程
接上一篇博客"Android 输入管理服务启动过程的流程".这两天分析了Android 输入管理服务接收到输入事件之后的处理流程,详细流程例如以下面两图所看到的: 接下图
- 64位oracle数据库用32位plsql developer无法连接问题(无法载入oci.dll)
在64位操作系统下安装oracle数据库,新下载了64位数据库(假设是32位数据库安装在64位的操作系统上,无论是client还是server端.都不要去选择C:\Program Files (x86 ...
- 实例介绍Cocos2d-x中Box2D物理引擎:碰撞检測
在Box2D中碰撞事件通过实现b2ContactListener类函数实现,b2ContactListener是Box2D提供的抽象类,它的抽象函数:virtual void BeginContact ...
- 卸载了 TortoiseGit,问题太多
电脑里面同一时候安装TortoiseGit 和 TortoiseSVN,使用tortoiseGIT来跟踪git项目,有一个非常无语的问题,git status显示都是clean的.可是目录图标却始终显 ...