大纲:
应用框架概述,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: Kingdeeeasclient:存放EAS客户端所有文件;
D: Kingdeeeasclientlogs:存放日志输出,开发人员应当重点关注并通过日志分析错误。
D: Kingdeeeasclientlib:存放代码Jar包;
D: Kingdeeeasclientmetas存放元数据Jar包;
D: Kingdeeeasclientin存放执行文件;
客户端移植:可以把安装目录整个拷贝到其他目录或计算机直接使用,需要修改文件:【安装目录】easclientinset-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的抽象父类