大纲:
    应用框架概述,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应用框架的更多相关文章

  1. .NET领域驱动设计—初尝(一:疑问、模式、原则、工具、过程、框架、实践)

     .NET领域驱动设计—初尝(一:疑问.模式.原则.工具.过程.框架.实践) 2013-04-07 17:35:27 标签:.NET DDD 驱动设计 原创作品,允许转载,转载时请务必以超链接形式标明 ...

  2. Python第三方常用工具、库、框架等

    Python ImagingLibrary(PIL):它提供强大的图形处理的能力,并提供广泛的图形文件格式支持,该库能进行图形格式的转换.打印和显示.还能进行一些图形效果的处理,如图形的放大.缩小和旋 ...

  3. android码农神器 偷懒工具 android懒人框架 LoonAndroid 3 讲解

    LoonAndroid 3.0 Loonandroid是一个注解框架,不涉及任何UI效果,目的是一个功能一个方法,以方法为最小颗粒度对功能进行拆解.把功能傻瓜化,简单化,去掉重复性的代码,隐藏复杂的实 ...

  4. [转] .NET领域驱动设计—初尝(原则、工具、过程、框架)

    阅读目录: 1.原则 1.1.精简聚合 1.2.分离用例与接口功能(设计模式的用武之地) 2.工具.框架.组件 3.过程 1]原则 原则对于任何一项技术实现来说都是至关重要的,在设计某一个系统功能的时 ...

  5. Python3漏洞扫描工具 ( Python3 插件式框架 )

    目录 Python3 漏洞检测工具 -- lance screenshot requirements 关键代码 usage documents README Guide Change Log TODO ...

  6. 基于Python3的漏洞检测工具 ( Python3 插件式框架 )

    目录 Python3 漏洞检测工具 -- lance screenshot requirements 关键代码 usage documents Any advice or sugggestions P ...

  7. 开源工具 | 手游自动化框架GAutomator,新增iOS系统和UE4引擎支

    WeTest 导读 GAutomator是腾讯WeTest推出的手游自动化测试框架,已用于腾讯多个手游项目组的自动化测试. 1.GAutomator诞生背后 研究过手游自动化测试的同学都知道,虽然市场 ...

  8. sqlite表结构动态读取工具(Chole ORM框架)

    Chole ORM框架 sqlIte于嵌入式数据库读取比较有利,不需要安装office也可以进行,可以在服务器系统当中使用. 所以我开发了这款工具,然后就是为了动态的读取表结构,然后根据表结构加载所有 ...

  9. 利用代码生成工具生成基于ABP框架的代码

    在前面随笔,我介绍了整个ABP优化过框架的分层模型,包括尽量简化整个ABP框架的各个层的关系,以及纳入一些基类的辅助处理,使得我们对应业务分层类或者接口尽可能减少代码,并具有生产环境所需要的基类接口, ...

随机推荐

  1. vs2010+cuda5.0+qt4.8

    在进行CUDA处理的时候,总是在控制台程序下,于是就想要通过qt进行界面处理. 一开始先测试一下qt的环境,新建一个qt项目,不过在运行的时候提示平台不对,换成64位 出现 这个是qt的版本问题,在右 ...

  2. Unity查找脚本被哪些Perfab或场景引用

    Unity中查找脚本被哪些Prefab或场景引用 Unity中有个Find References In Scene的功能,可是仅仅能查找在当前场景中的引用. 假设发现某个脚本不知道被挂在哪个Prefa ...

  3. linux 获取经过N层Nginx转发的访问来源真实IP

    linux 获取经过N层Nginx转发的访问来源真实IP 学习:http://blog.csdn.net/zhenzhendeblog/article/details/49702575 学习:http ...

  4. CSS学习(十四)-CSS颜色之中的一个

    一.理论: 1.RGB色彩模式  a.CMYK色彩模式  b.索引色彩模式 (主要用于web) c.灰度模式  d.双色调模式 2.opacity: a.alphavalue:透明度 b.inheri ...

  5. Android 高亮指示层提示

    此库出自翔神之手   用起来绝对方便 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0J ...

  6. NOIP2013--火柴排队(树状数组)

    转载: 树状数组,具体的说是 离散化+树状数组.这也是学习树状数组的第一题. 算法的大体流程就是: 1.先对输入的数组离散化,使得各个元素比较接近,而不是离散的, 2.接着,运用树状数组的标准操作来累 ...

  7. poj 2288 Islands and Bridges ——状压DP

    题目:http://poj.org/problem?id=2288 状压挺明显的: 一开始写了(记忆化)搜索,但一直T: #include<iostream> #include<cs ...

  8. [JavaEE] JBoss主要版本下载链接一览

    URL: http://teddysun.com/260.html JBoss在2006年被 RedHat 收购.在各种 J2EE 应用服务器中,JBoss 是最受欢迎而且功能最为强大的应用服务器.不 ...

  9. Android开发中的日期格式化

    下面的转换符来自Java,但是在android中同样可用.(以下表格内容来自互联网.) 常见日期格式化转换符 转换符 说 明 示 例 %te  一个月中的某一天(1-31)  2 %tb  指定语言环 ...

  10. Python-操作符和表达式

    //: 除后向下取正  -3//2=-2 **: 幂 3**3 = 27 not: ! and: && or: || 除了以上几个之外,其余与C++相同 length = 3 widt ...