删除事务处理中的商业智能
把工作系统和产品系统离开,删除数据库系统中的产品智能。考虑公司的内部需求以及在产品内或产品间传翰数据的情况。从数据库中删除存储过程,把它们放在应用逻辑中。不要在公司系统和产品系统之间开展同步伐用。把应用逻辑放在数据库中成本很高且很难扩展。把公司系统和产品系统绑定在一起,成本也很高,不仅很难扩展,可用性也令人担忧。
由于许可和单一系统的特性,数据库和内部公司系统的扩展成本会很高。因此,咋们希望它们能专注于执行特定的任务。就数据库而言,咋们希望它们可以专注于事务而不是产品智能。就后台办公系统(商业智能)而言,咋们不希望产品与系统的扩展能力联系在一起。相对工作系统的数据,采用异步传输模式。
咋们经常告知客户,要防止在关系数据库中使用存储过程。他们的第一反应通常是:你们为什么这么讨厌存储过程呢?”其实咋们并不讨厌存储过程,咋们在好多情况下也在用它们。但问题在于,存储过程经常在解决方案中被过度使用,而这种过度使用有时会造成系统中的扩展瓶。既然这样的原则强调的是数据库方面的问题,那为什么不把这样的原则放在数据库那章中呢?事实上咋们关注存储过程的真正原因是,咋们主张把商业智能和产品智能与事务处置区离开来。一般说来,这样的主张可以进一步概括为把相似的事务放在一起(或者说把不同的事务离开)以获取最大的可用性和可扩展性以及最低的成本”。这样子的表述可能不太好理解,因此让咋们仍以存储过程和数据库为例,表明为什么必须要这种区分。
在你的架构中、数据库可能是最贵的系统或服务之一。即使采用的是开源数据库,这些系统所在的服务器也可能会连接到成本相对较高的存储解决方案(相相对你其他的解决方案而言),它们具有最快、最大数量的处置器以及最大数量的内存。在成熟的环境中中,这些系统通常都被用于做一件事情、即执行关系操作,并把事务尽可能快地提交给稳定的存储引。这些系统上的每个计算周期的成本都比架构中的其他解决方案或服务(如应用服务器或web服务器)要高。这些系统是某些服务的汇集点、也是泳道的定义点。在极端情况下,如在架构的初期,这些系统所占的比例可能更为巨大的,那么它们显然是决定整个环境的扩展的确定性要素。
出于以上这些原因,把这种昂贵的计算资源用于工作逻辑差不多是毫无意义的。这时每个事务所花的成本会增加,由于处置这些事务的系统的操作成本更为昂贵了。同日时这样的系统自身也可能是决定咋们扩展的确定性要素,那么为什么咋们还需要浪费生产力在它上面运行与事务处置不相应的操作呢?因此,咋们应该让这些系统只处置与数据库(或相应的存储或NOSQL)相应的事务,以便让它们做自个最擅长的事情。这样子咋们不仅提高了可扩展性,还能减少扩展成本。
在数据库这样的例子中,咋们把不相似的服各区离开可以应用到架构中的其他环节。咋们很可能会有后台办公系统,诸如发送和接收电子邮件(与平台无关)的系统、做总账和其他会计事务的系统、市场细分的系统,以及支持客户户的运维系统,等等。咋们很可能会把这些系统一股脑地放到咋们的平台上。咋们可能希望电子商务系统中的一笔交易能立刻显示在咋们CFO的ERP系统中,或者咋们想让客户支持代表能立刻看到它,以免这笔交易出问题。一样地,假如咋们运行的是一个广告平台,那么咋们可能想实时剖析数据仓库中的数据,以便给出更好的广告建议。有好多原因促使咋们想把工作流程与产品平台中的系统混在一起。不过,咋们的建议很简单:不要这样子做。
理想的情况是,让这些系统都能依据自个的必须要独立地开展扩展。假如把这些系统绑定在一起,那么当一个系统必须要扩展时,所有系统都要同时扩展。在某些情况下,如用数据库执行工作逻辑,系统的扩展成本会更高。许可证是与CPU相应联的ERP系统就经常会发生这种情况。假如每个事务都同步伐用ERP系统,那么扩展成本一定会提高。此外,把系统以串联方法加入平台,也会降低产品的可用性,那么为什么咋们还需要如此做呢?
就像不应该把产品智能放在数据库中一样,商业智能也不应该绑定到产品事务上。在很多情况下,咋们必须要让数据驻留在咋们的产品中而且此时咋们最好让数据驻留在产品中。咋们可以从其他系统中选择数据集,在产品中正确地表示出来。通常,最好用一种新的或不同的方法表示这些数据,有时是采用不同的范式。咋们经常必须要把数据从产品移到后台的工作系统中,如客户支持系统、市场营销系统、数据仓库和ERP系统。在这些情况下,咋们也希望可以用不同的方法总结或表示数据。此外,为了提高可用性,咋们希望以异步方法在系统间传输这些数据。为此可以采用ETL(提取、转换、加载)系统,乃至还有好多开源工具可以赞助你构建自个的ETL过程。
记住,网站制作模式并不意味着是旧”数据。没有理由选择过期的数据元素在系统间开展传输。此外,还能够把数据发布到某种消息总线上,以供其他系统使用。成本最低的解决方案是批提取,不过假如時间有限不允许采用这种方法,那么消息总线绝对是个好选择。
本文章由新概念互动原创,如没特殊注明,转载请注明来自:http://www.jianzhan0.com/zhiku/76714.html