将 Siebel 应用程序中存储的数据提供给企业中的其他应用程序时,通常需要遵循以下两种基本模式之一:

  1. 发布-订阅
  2. 阅读

“发布-订阅”是一种机制,根据该机制,一个系统(发布者)将更改或更新的数据提供给其他系统;其他系统(订阅者)注册以示它们希望接收数据更改以及数据事件的通知。

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

这两种模式都具有自己的优点和缺点,都具有自己关于特定集成以及整个企业集成基础架构的需要和假设。Siebel(或任何其他应用程序)的需要和约束通常会与融合中间件平台截然不同,有时可能是对一方直观而对另一方不直观。

发布-订阅

“发布-订阅”模式的基本概念是,订阅者接收数据集 更新,这暗示每个订阅者必须拥有一份要使用的数据的副本。因此,如果使用“发布-订阅”模式的企业有 n 个订阅者,就会有 n 个记录。

对于小型数据集,该数量不会过大;但是对于大型数据集,例如销售报价或订单,该数量很快就会影响整个企业的容量规划。

“发布-订阅”模型另一个要考虑的问题是主数据问题,即“您对复制的数据有多信任?”,或许应该是“ Blade Runner”问题!如果使用“发布-订阅”模式的企业有多个数据副本,那么每个系统从哪里获取数据?当然,正确答案是从中间件以及数据的主系统获取,但是如果下游系统直接访问众多副本中的一个,会发生什么情况呢?如果访问的副本并不是最新数据副本,会发生什么情况?
,太可怕了。因此,如果需要事务数据,使用“发布-订阅”模式需要慎重考虑。

那么,从应用程序的角度来看,“发布-订阅”模式的优点是什么?对于易变性相对较低的参考数据集(例如,“联系人”或“帐户”),使用“订阅-发布”模式可以很好地将数据复制到下游系统,以允许它们使用数据集并以“接近实时”的方式进行更新(我只是喜欢“接近实时”这种表达,事物或者是实时的,或者不是实时的……“接近”毫无意义)!

阅读

“阅读”模式和“发布-订阅”模式最基本的差异是效率。假设某个帐户以“发布-订阅”模式进行了更新并且该更改将传送到
10 个下游系统,则将从 Siebel 传递一个消息到中间件,然后再传出 10 个消息,分别到达各个订阅系统。使用“阅读”模式时,如果这 10
个下游系统需要访问该帐户,则 每次请求该数据时 都需要总共 40 个消息。

“阅读”模式的数据传输“低效性”是集成架构师更喜欢采用“发布-订阅”模式的首要原因。但是有些情况下,确实需要使用“阅读”模式。“发布-订阅”模式出现问题时就需要“阅读”模式大显身手了,如以下情况:不需要复制数据,否定整个企业的数据完整性问题,以及避免整个订阅系统的容量“复杂化”。对于易变性较高的事务数据,“阅读”模式通常是不错的选择。

因此,总的来说,没有任何一种方法是执行集成的“正确”方法,每个客户情况都不一样,在各个阶段,都需要慎重考虑技术和组织双方面的驱动因素,然后再给出一致的策略。我个人认为,应该始终对采取决策所涉及的相关事项加以试验和考虑,因为孤立地进行
Siebel 集成甚至 Oracle 部署的时代已经过去了。

Siebel 集成中的“发布-订阅”与“阅读”的更多相关文章

  1. Javascript中理解发布--订阅模式

    Javascript中理解发布--订阅模式 阅读目录 发布订阅模式介绍 如何实现发布--订阅模式? 发布---订阅模式的代码封装 如何取消订阅事件? 全局--发布订阅对象代码封装 理解模块间通信 回到 ...

  2. 【转】Javascript中理解发布--订阅模式

    Javascript中理解发布--订阅模式 阅读目录 发布订阅模式介绍 发布---订阅模式又叫观察者模式,它定义了对象间的一种一对多的关系,让多个观察者对象同时监听某一个主题对象,当一个对象发生改变时 ...

  3. [转] Javascript中理解发布--订阅模式

    发布订阅模式介绍 发布---订阅模式又叫观察者模式,它定义了对象间的一种一对多的关系,让多个观察者对象同时监听某一个主题对象,当一个对象发生改变时,所有依赖于它的对象都将得到通知. 现实生活中的发布- ...

  4. redis中的发布订阅(Pub/Sub)

    这里使用nodejs的redis模块说明,具体可见https://www.npmjs.com/package/redis,先来通过一个简单的例子了解下redis中的Pub/Sub具体怎么实现吧.. v ...

  5. javascript中的发布订阅模式与观察者模式

    这里了解一下JavaScript中的发布订阅模式和观察者模式,观察者模式是24种基础设计模式之一. 设计模式的背景 设计模式并非是软件开发的专业术语,实际上设计模式最早诞生于建筑学. 设计模式的定义是 ...

  6. python开发-实现redis中的发布订阅功能

    Python3学习(二十七):python实现Redis的订阅与发布(sub-pub机制) 先介绍一下redis的pub/sub功能: Pub/Sub功能(means Publish, Subscri ...

  7. Vue中的发布订阅分析(Vue2/3中的 emit 实现)

    Vue中的发布订阅模式分析 模块:instanceEventEmiiter.ts(在下方有简单实现和解析) 在Vue3中,已经取消了对这个模块的引用,故而不再支持 $on.$off.$once相关的方 ...

  8. 【spring boot】【redis】spring boot 集成redis的发布订阅机制

    一.简单介绍 1.redis的发布订阅功能,很简单. 消息发布者和消息订阅者互相不认得,也不关心对方有谁. 消息发布者,将消息发送给频道(channel). 然后是由 频道(channel)将消息发送 ...

  9. OrcharNoCMS中的发布订阅使用

    对于Orchard里面的EventBus,没有太多的文章去介绍说明.它最好的应用是发布订阅的应用. 使用介绍: 在Car模块中,我们定义一个接口,继承IEventHandler接口. 当我们在创建一条 ...

随机推荐

  1. python学习之路---day03

    一:数据类型转换 1:bool-->int 将bool转成 int型 True 是1 False是0 a=True c=int(a) print(c) b=False d=int(b) prin ...

  2. Wscript的popup

    Dim WSHShell Set WSHShell = WScript.CreateObject("WScript.Shell") WshSHell.popup "枚举主 ...

  3. 前端页面 script 事件总结

    1. input  失去焦点是触发事件 $("#sn").blur(function(){ alert("sdfasdf"); }); 2.  获取文本框中的 ...

  4. Spark (Python版) 零基础学习笔记(一)—— 快速入门

    由于Scala才刚刚开始学习,还是对python更为熟悉,因此在这记录一下自己的学习过程,主要内容来自于spark的官方帮助文档,这一节的地址为: http://spark.apache.org/do ...

  5. PIE SDK存储格式转换

      1.算法功能简介 影像存储格式转换可以实现栅格数据存储格式的自由转换,其中存储格式可以是 BSQ. BIP. BIL 三种格式. 遥感数字图像数据的存储与分发,通常采用以下三种数据格式: BSQ( ...

  6. enum学习

    https://www.cnblogs.com/hyl8218/p/5088287.html

  7. xsd表示byte[]的类型

    byte[]对应xs:base64Binary http://stackoverflow.com/questions/5912526/representing-byte-array-as-an-xsd ...

  8. 6个Unity 开源项目分享!

    http://gad.qq.com/article/detail/38279?sessionUserType=BFT.PARAMS.249034.TASKID&ADUIN=991655778& ...

  9. Struts2中Action对象的set方法和get方法调用规则

    Struts的Action是采用的是多实例多线程设计,而不是像Servlet那样采用单实例多线程设计,因此在struts中,一个请求就对应一个Action对象,个对象之间的数据相互之间互不干扰.没接到 ...

  10. java并发编程 - Exexctors 工具类

    Executors 类提供了一系列静态工厂方法用于创建各种线程池. newFixedThreadPool 创建固定大小的线程池.每次提交一个任务就创建一个线程,直到线程达到线程池的最大大小.线程池的大 ...