Siebel 集成中的“发布-订阅”与“阅读”
将 Siebel 应用程序中存储的数据提供给企业中的其他应用程序时,通常需要遵循以下两种基本模式之一:
- 发布-订阅
- 阅读
“发布-订阅”是一种机制,根据该机制,一个系统(发布者)将更改或更新的数据提供给其他系统;其他系统(订阅者)注册以示它们希望接收数据更改以及数据事件的通知。

“阅读”机制实际是大量其他模式(如事件驱动的客户、点对点、选择性客户、事务客户端等)的混合。任何符合“使用者请求数据,提供者发送数据”这一原则的模式都可视为该超集的一部分。与“阅读-发布”模式不同,“阅读”模式不需要使用某种中间件(或者在
Siebel 应用程序中进行大量编码),因此该模式无疑可被视为点对点模式。

这两种模式都具有自己的优点和缺点,都具有自己关于特定集成以及整个企业集成基础架构的需要和假设。Siebel(或任何其他应用程序)的需要和约束通常会与融合中间件平台截然不同,有时可能是对一方直观而对另一方不直观。
发布-订阅
“发布-订阅”模式的基本概念是,订阅者接收数据集 更新,这暗示每个订阅者必须拥有一份要使用的数据的副本。因此,如果使用“发布-订阅”模式的企业有 n 个订阅者,就会有 n 个记录。
对于小型数据集,该数量不会过大;但是对于大型数据集,例如销售报价或订单,该数量很快就会影响整个企业的容量规划。
“发布-订阅”模型另一个要考虑的问题是主数据问题,即“您对复制的数据有多信任?”,或许应该是“ Blade Runner”问题!如果使用“发布-订阅”模式的企业有多个数据副本,那么每个系统从哪里获取数据?当然,正确答案是从中间件以及数据的主系统获取,但是如果下游系统直接访问众多副本中的一个,会发生什么情况呢?如果访问的副本并不是最新数据副本,会发生什么情况?
啊,太可怕了。因此,如果需要事务数据,使用“发布-订阅”模式需要慎重考虑。
那么,从应用程序的角度来看,“发布-订阅”模式的优点是什么?对于易变性相对较低的参考数据集(例如,“联系人”或“帐户”),使用“订阅-发布”模式可以很好地将数据复制到下游系统,以允许它们使用数据集并以“接近实时”的方式进行更新(我只是喜欢“接近实时”这种表达,事物或者是实时的,或者不是实时的……“接近”毫无意义)!
阅读
“阅读”模式和“发布-订阅”模式最基本的差异是效率。假设某个帐户以“发布-订阅”模式进行了更新并且该更改将传送到
10 个下游系统,则将从 Siebel 传递一个消息到中间件,然后再传出 10 个消息,分别到达各个订阅系统。使用“阅读”模式时,如果这 10
个下游系统需要访问该帐户,则 每次请求该数据时 都需要总共 40 个消息。
“阅读”模式的数据传输“低效性”是集成架构师更喜欢采用“发布-订阅”模式的首要原因。但是有些情况下,确实需要使用“阅读”模式。“发布-订阅”模式出现问题时就需要“阅读”模式大显身手了,如以下情况:不需要复制数据,否定整个企业的数据完整性问题,以及避免整个订阅系统的容量“复杂化”。对于易变性较高的事务数据,“阅读”模式通常是不错的选择。
因此,总的来说,没有任何一种方法是执行集成的“正确”方法,每个客户情况都不一样,在各个阶段,都需要慎重考虑技术和组织双方面的驱动因素,然后再给出一致的策略。我个人认为,应该始终对采取决策所涉及的相关事项加以试验和考虑,因为孤立地进行
Siebel 集成甚至 Oracle 部署的时代已经过去了。
Siebel 集成中的“发布-订阅”与“阅读”的更多相关文章
- Javascript中理解发布--订阅模式
Javascript中理解发布--订阅模式 阅读目录 发布订阅模式介绍 如何实现发布--订阅模式? 发布---订阅模式的代码封装 如何取消订阅事件? 全局--发布订阅对象代码封装 理解模块间通信 回到 ...
- 【转】Javascript中理解发布--订阅模式
Javascript中理解发布--订阅模式 阅读目录 发布订阅模式介绍 发布---订阅模式又叫观察者模式,它定义了对象间的一种一对多的关系,让多个观察者对象同时监听某一个主题对象,当一个对象发生改变时 ...
- [转] Javascript中理解发布--订阅模式
发布订阅模式介绍 发布---订阅模式又叫观察者模式,它定义了对象间的一种一对多的关系,让多个观察者对象同时监听某一个主题对象,当一个对象发生改变时,所有依赖于它的对象都将得到通知. 现实生活中的发布- ...
- redis中的发布订阅(Pub/Sub)
这里使用nodejs的redis模块说明,具体可见https://www.npmjs.com/package/redis,先来通过一个简单的例子了解下redis中的Pub/Sub具体怎么实现吧.. v ...
- javascript中的发布订阅模式与观察者模式
这里了解一下JavaScript中的发布订阅模式和观察者模式,观察者模式是24种基础设计模式之一. 设计模式的背景 设计模式并非是软件开发的专业术语,实际上设计模式最早诞生于建筑学. 设计模式的定义是 ...
- python开发-实现redis中的发布订阅功能
Python3学习(二十七):python实现Redis的订阅与发布(sub-pub机制) 先介绍一下redis的pub/sub功能: Pub/Sub功能(means Publish, Subscri ...
- Vue中的发布订阅分析(Vue2/3中的 emit 实现)
Vue中的发布订阅模式分析 模块:instanceEventEmiiter.ts(在下方有简单实现和解析) 在Vue3中,已经取消了对这个模块的引用,故而不再支持 $on.$off.$once相关的方 ...
- 【spring boot】【redis】spring boot 集成redis的发布订阅机制
一.简单介绍 1.redis的发布订阅功能,很简单. 消息发布者和消息订阅者互相不认得,也不关心对方有谁. 消息发布者,将消息发送给频道(channel). 然后是由 频道(channel)将消息发送 ...
- OrcharNoCMS中的发布订阅使用
对于Orchard里面的EventBus,没有太多的文章去介绍说明.它最好的应用是发布订阅的应用. 使用介绍: 在Car模块中,我们定义一个接口,继承IEventHandler接口. 当我们在创建一条 ...
随机推荐
- 网络瓶颈、线程死锁、内存泄露溢出、栈堆、ajax
网络瓶颈:网络传输性能及稳定性的一些相关元素 线程死锁:多个线程因竞争资源造成的一种僵局 下面我们通过一些实例来说明死锁现象. 先看生活中的一个实例,2个人一起吃饭但是只有一双筷子,2人轮流吃(同时拥 ...
- javascript JSON. 转换 注意事项
JSON.stringify() 会舍弃 方法..只有属性才会转换成 json 字符串,所以 用 JSON.stringify()=='{}' 来判断对象是否为空 是错误的!!!! 正确的做法 是 ...
- abp + angular 项目 图标字体注意事项
用的字体建议下载到本地,否则部署环境没有网络的话,则图片字体会不正常显示.
- 洛谷 P3267 [JLOI2016/SHOI2016]侦察守卫(树形dp)
题面 luogu 题解 树形\(dp\) \(f[x][y]表示x的y层以下的所有点都已经覆盖完,还需要覆盖上面的y层的最小代价.\) \(g[x][y]表示x子树中所有点都已经覆盖完,并且x还能向上 ...
- 合唱团---DP
https://www.nowcoder.com/practice/661c49118ca241909add3a11c96408c8?tpId=85&tqId=29830&tPage= ...
- ubuntu18.04 与 python
Ubuntu安装pycharm专业破解版方法 首先我们要下载pycharm的安装包, 地址为https://www.jetbrains.com/pycharm/download/#section=li ...
- 01-oracle限定查询-20190404
关系型数据库和半结构化数据(xml文件) oracle12c:c代表云计算 PDB,CDB sql语句执行顺序: 第一步:from子句控制数据来源: 第二步:where子句使用限定符对数据行过滤: 第 ...
- Manacher算法(马拉车)
学习博客:https://www.cnblogs.com/love-yh/p/7072161.html 首先,得先了解什么是回文串(我之前就不是很了解,汗).回文串就是正反读起来就是一样的,如“abb ...
- AQS的数据结构及实现原理
接下来从实现角度来分析同步器是如何完成线程同步的.主要包括:同步队列.独占式同步状态获取与释放.共享式同步状态获取与释放以及超时获取同步状态等. 1.同步队列 同步器依赖内部的一个同步队列来完成同步状 ...
- JS中彻底删除json对象组成的数组中的元素
只是分享一个小知识~ 在JS中,对于某个由json对象组成的数组,例如: var test = [{ "a": "1", "b": &quo ...