在Siebel应用里数据在多个层次上使用了不同的定义方式,每一个层次侧重于数据的不同的特征,主要分为数据用户界面层定义(UI),业务逻辑层定义(Business Layer,可以是业务含义层)以及数据存储层定义,如图:

UI展示层主要定义用户界面接口,它包含的主要对象是我们以前已经交代过的Screen,View以及Applet(View里当前显示的部分就是一个Applet,而不是JAVA里applet的含义,可以是当前View的数据的列表或者当前某一条记录的详细的FORM展示),展示层也分为两个部分,展现部分是一个HTML的模板,它的定制可以通过一个HTML编辑器进行CSS,公司图片等各种HTML元素的客户化,而UI定义层则和逻辑层和数据层一样,都是使用Siebel Tools进行定义。数据存储层定义主要定义数据存储的逻辑结构,主要以表和列的形式来体现,在这层同时还屏蔽了不同厂商数据库的差别,从而对业务层提供一个统一的数据视图,一个典型的例子就是,在Siebel的数据结构完全不使用特定关系数据库的约束方式,而是在Siebel Tool里进行各种关系的建立,比如主键约束使用了自己的一个rowid,而不是使用关系数据库的通常的主键的定义,Siebel Tools的输出是一个*.srf(Siebel Repository File,也就是被编译后的UI/BOBC/DATA的定义文件)文件,由AOM来使用。
业务逻辑层是Siebel应用里最重要的一个部分,主要包含Business Object(BO)和Business component(BC),在这一层需要把下层的关系数据以一种业务容易理解的形式(如账户信息BC)提供给上层消费者。熟悉BIEE的用户可能会发现,Siebel应用也使用了类似于BIEE里结构分层的定义方式(物理层,逻辑业务层,展现层等),这种特点还是比较Siebel的。

数据结构层次
整个Siebel的数据的层次结构分为三个层次,每一个层次都对应了下一个层次的相应的元素,一个层次的改动不影响另一个层次的稳定性,一张表现他们层次的经典图如下:

可以看到,一个BC其实对应的就是一个逻辑的表(可以是一个基表也可以是几个关联的表的一个逻辑的表),BC里的field就是对应了数据表的列,多个相关主题的BC则组成了BO前面的文章已经交代了View,Screen等屏幕元素,这些屏幕元素和BC,BO也存在一定关系,从BO和BC的观点来重新定义这些概念就是,View其实对应的就是一个BO,而Applet则对应着一个BC,所谓Control则是屏幕上对应于关系数据字段的显示。多个相关的View则组成了一个Screen,而多个相关的Screen则组成了一个Siebel应用(如Call Center应用)。

需要注意的是一个BO需要有个一个主要的BC(该BC表示了自己关注的业务实体),如下图:

Siebel应用数据结构层次相关推荐

  1. 数据结构层次遍历二叉树

    2022.11.19 计算二叉树的深度和节点个数 任务描述 相关知识 编程要求 测试说明 C/C++代码 任务描述 本关任务:给定一棵二叉树,借助队列实现层次遍历二叉树. 相关知识 为了完成本关任务, ...

  2. CRM的客户数据模型:Siebel Party Data Model (VI)

    关于Siebel CRM Thomas Siebel和 Patricia House 在1993成立了Siebel公司.起先由销售自动化产品起家,然后在扩展到更大的CRM市场.在20世纪90年代末,S ...

  3. python提取pdf表格数据并保存到excel中

    pdfplumber操作pdf文件 python开源库pdfplumber,可以较为方便地获取pdf的各种信息,包含pdf的基本信息(作者.创建时间.修改时间-)及表格.文本.图片等信息,基本可以满足 ...

  4. 以下数据结构中,()是非线性数据结构

    以下数据结构中,()是非线性数据结构 A:树(二叉树) B:字符串 C:队列 D:栈 E:线性表 F:二维数组 G:多维数组 H:堆 数据的逻辑结构分为线性结构和非线性结构. 常用的线性结构有:线性表 ...

  5. fluidity详解

    fluidity详解 1.fluidity编译过程 1.1.femtools库调用方法 编译fluidity/femtools目录下所有文件,打包为libfemtools.a静态库文件: 通过-lfe ...

  6. 上线随想之2011-03-26

    3月26号. 原定是28号上线.这个周末应该以向SIEBEL同步数据为主,特别是订单数据,数量比较大, 需要的时间会比较多. 问题是,这几天时间,几乎一直都是在等,在排错.服务器环境出现问题,数据不能 ...

  7. 什么是堆什么是栈以及两者区别特点

    什么是堆什么是栈以及两者区别特点 一 英文名称 堆和栈是C/C++编程中经常遇到的两个基本概念.先看一下它们的英文表示: 堆――heap 栈――stack 二 从数据结构和系统两个层次理解 在具体的C ...

  8. ECC有关DER文件的解析(Java)

    ECC有关DER文件的解析(Java) 本篇博客提供有关ECC的DER文件的Java解析方式,如ECC公钥和ECC签名值对应DER文件的解析,PEM文件也能够使用本博客中提供的解析方式进行解析,PEM ...

  9. 01 Redis源码起航

    源码解读 Redis 源码文件分布大致如下: redisDb结构介绍 首先看下redisDb的结构,在server.h文件中: typedef struct redisDb {dict *dict; ...

  10. lua中面向对象(class)

    lua中面向对象(class) Lua中类的简单实现 Lua的设计初衷并非意图构建完整的应用,而是嵌入在应用程序中为应用提供灵活的扩展和定制功能,所以Lua仅提供了基本的数学运算和字符串处理等函数库, ...

最新文章

  1. 剑指offer:面试题38. 字符串的排列
  2. 简单读!tomcat源码(一)启动与监听
  3. Python 安装cx_Oracle模块折腾笔记
  4. SQL语句 怎么把从一个表中查出来数据插入到另一个表中
  5. Docker镜像常用命令(三)
  6. 梅特勒托利多xk3124电子秤说明书_托利多电子秤使用说明
  7. Cocos2d-x精灵详解
  8. 微信小程序实时定位的要做的那些事,你学废了吗?(附示例)
  9. angular6添加子路由_如何将Ionicons添加到Angular 6应用
  10. [NSSCTF][羊城杯2020]WEB复现
  11. 转录组RNA-seq分析前沿进展综述
  12. 考研数学复习笔记——行列式1
  13. pcf8563c语言程序,IIC的PCF8563实用时钟程序(iccavr)
  14. 基于R语言或Matlab直接读取压缩包中的数据
  15. linux系统漏洞升级方法,OpenSSL “Heartbleed”心脏流血漏洞升级方法
  16. lego-loam代码分析(3)-激光里程计
  17. diqu地区市的wheel样式
  18. QQ号、微信号java正则表达式
  19. [leetcode] 77. Combinations @ python
  20. 知识备忘phpcms 简单解析一 数据表字段

热门文章

  1. 人力资源管理-输入、输出、工具和技术
  2. 入秋的第一篇数据结构算法:看看归并与快排的风采
  3. 标准盒模型和怪异盒模型的区别
  4. IDM与其他下载器加速器优缺点介绍
  5. oceanbase基于mysql吗_OCEANBASE整体架构
  6. 前搜房网副CTO曹艳白干了件大事!
  7. 2016年U盘启动盘制作工具哪个好用?看U盘启动盘排行榜!
  8. html发短信模版,短信模板管理.html
  9. openstack policy机制
  10. 使用squid内网代理百度地图