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接口. 当我们在创建一条 ...
随机推荐
- git 各个区的区别
Git有三大区(工作区.暂存区.版本库)以及几个状态(untracked.unstaged.uncommited) 把文件往Git版本库里添加的时候,是分两步执行的: 第一步是用 git add 把文 ...
- list和tuple
1. 列表--list 列表用[]表示 l=[1,2,3,'zs'] print(l) 输出:[1,2,3,'zs'] 1.利用下标获取列表元素,下标从0开始 print(l[3]) 输出:zs pr ...
- MySQL 简洁 数据操作 增删改查 记不住的 看这里把
1.库操作====================== 1.创建 CREATE DATABASE DB2 charset utf8; 2.删除 DROP DATABASE db2; 3.使用(进入) ...
- 关于zipfile解压出现的字符编码问题
使用zipfile解压文件时,出现了中文乱码问题,具体解决方法有两个,直接上代码吧. def deco_zip(path, file_path): os.mkdir(file_path) # 方式一 ...
- [转] Jenkins Pipeline插件十大最佳实践
[From] http://blog.didispace.com/jenkins-pipeline-top-10-action/ Jenkins Pipeline 插件对于 Jenkins 用户来说可 ...
- (转)博弈 SG函数
此文为以下博客做的摘要: https://blog.csdn.net/strangedbly/article/details/51137432 ---------------------------- ...
- 微信小程序实现图片上传功能
前端: 微信开发者工具 后端:.Net 服务器:阿里云 这里介绍微信小程序如何实现上传图片到自己的服务器上 前端代码 data: { productInfo: {} }, //添加Banner bin ...
- GreenPlum 大数据平台--外部表(三)
一,外部表介绍 Greenplum 在数据加载上有一个明显的优势,就是支持数据的并发加载,gpfdisk是并发加载的工具,数据库中对应的就是外部表 所谓外部表,就是在数据库中只有表定义.没有数据,数据 ...
- html5中新增的语义化的标签
html5是html最新的修订版本,2014年10月由万维网联盟(W3C)完成标准制定.目标是取代1999年所制定的HTML 4.01和XHTML 1.0标准,以期能在互联网应用迅速发展的时候,使网络 ...
- 创建bat文件打开指定目录的cmd窗口
默认的 cmd打开的是用户目录,如下: 有时,这样非常不方便,还得不断的cd到我们要使用的目录,例如,我们想改成默认制定的目录是D盘的cmd窗口 代码如下: cmd /k cd/d " ...