優(yōu)惠活動(dòng) - 12周年慶本月新客福利
優(yōu)惠活動(dòng) - 12周年慶本月新客福利
優(yōu)惠活動(dòng) - 12周年慶本月新客福利

刪除事務(wù)處理中的商業(yè)智能

把業(yè)務(wù)系統(tǒng)和產(chǎn)品系統(tǒng)分開,刪除數(shù)據(jù)庫(kù)系統(tǒng)中的產(chǎn)品智能??紤]公司的內(nèi)部需求以及在產(chǎn)品內(nèi)或產(chǎn)品間傳翰數(shù)據(jù)的情況。從數(shù)據(jù)庫(kù)中刪除存儲(chǔ)過(guò)程,把它們放在應(yīng)用邏輯中。不要在企業(yè)系統(tǒng)和產(chǎn)品系統(tǒng)之間進(jìn)行同步調(diào)用。把應(yīng)用邏輯放在數(shù)據(jù)庫(kù)中成本很高且難以擴(kuò)展。把企業(yè)系統(tǒng)和產(chǎn)品系統(tǒng)綁定在一起,成本也很高,不僅難以擴(kuò)展,可用性也令人擔(dān)憂。

由于許可和單一系統(tǒng)的特性,數(shù)據(jù)庫(kù)和內(nèi)部企業(yè)系統(tǒng)的擴(kuò)展成本會(huì)很高。因此,我們希望它們能專注于執(zhí)行特定的任務(wù)。就數(shù)據(jù)庫(kù)而言,我們希望它們能夠?qū)W⒂谑聞?wù)而不是產(chǎn)品智能。就后臺(tái)辦公系統(tǒng)(商業(yè)智能)而言,我們不希望產(chǎn)品與系統(tǒng)的擴(kuò)展能力聯(lián)系在一起。對(duì)于業(yè)務(wù)系統(tǒng)的數(shù)據(jù),采用異步傳輸模式。



我們常常告訴客戶,要避免在關(guān)系數(shù)據(jù)庫(kù)中使用存儲(chǔ)過(guò)程。他們的第一反應(yīng)通常是:“你們?yōu)槭裁催@么討厭存儲(chǔ)過(guò)程呢?”其實(shí)我們并不討厭存儲(chǔ)過(guò)程,我們?cè)诤芏嗲闆r下也在用它們。但問(wèn)題在于,存儲(chǔ)過(guò)程經(jīng)常在解決方案中被過(guò)度使用,而這種過(guò)度使用有時(shí)會(huì)造成系統(tǒng)中的擴(kuò)展瓶。既然這個(gè)原則強(qiáng)調(diào)的是數(shù)據(jù)庫(kù)方面的問(wèn)題,那為什么不把這個(gè)原則放在數(shù)據(jù)庫(kù)那章中呢?事實(shí)上我們關(guān)注存儲(chǔ)過(guò)程的真正原因是,我們主張把商業(yè)智能和產(chǎn)品智能與事務(wù)處理區(qū)分開來(lái)。一般說(shuō)來(lái),這個(gè)主張可以進(jìn)一步概括為“把相似的事務(wù)放在一起(或者說(shuō)把不同的事務(wù)分開)以獲取最大的可用性和可擴(kuò)展性以及最低的成本”。這樣的表述可能不太好理解,因此讓我們?nèi)砸源鎯?chǔ)過(guò)程和數(shù)據(jù)庫(kù)為例,說(shuō)明為什么需要這種區(qū)分。

在你的架構(gòu)中、數(shù)據(jù)庫(kù)可能是最貴的系統(tǒng)或服務(wù)之一。即使采用的是開源數(shù)據(jù)庫(kù),這些系統(tǒng)所在的服務(wù)器也可能會(huì)連接到成本相對(duì)較高的存儲(chǔ)解決方案(相對(duì)于你其他的解決方案而言),它們具有最快、最大數(shù)量的處理器以及最大數(shù)量的內(nèi)存。在成熟的環(huán)境中中,這些系統(tǒng)通常都被用于做一件事情、即執(zhí)行關(guān)系操作,并把事務(wù)盡可能快地提交給穩(wěn)定的存儲(chǔ)引。這些系統(tǒng)上的每個(gè)計(jì)算周期的成本都比架構(gòu)中的其他解決方案或服務(wù)(如應(yīng)用服務(wù)器或web服務(wù)器)要高。這些系統(tǒng)是某些服務(wù)的匯集點(diǎn)、也是泳道的定義點(diǎn)。在極端情況下,如在架構(gòu)的初期,這些系統(tǒng)所占的比例可能更為巨大的,那么它們顯然是影響整個(gè)環(huán)境的擴(kuò)展的決定性因素。

出于以上這些原因,把這種昂貴的計(jì)算資源用于業(yè)務(wù)邏輯幾乎是毫無(wú)意義的。這時(shí)每個(gè)事務(wù)所花的成本會(huì)增加,因?yàn)樘幚磉@些事務(wù)的系統(tǒng)的操作成本更為昂貴了。同日時(shí)這個(gè)系統(tǒng)本身也可能是影響我們擴(kuò)展的決定性因素,那么為什么我們還要浪費(fèi)生產(chǎn)力在它上面運(yùn)行與事務(wù)處理不相關(guān)的操作呢?因此,我們應(yīng)該讓這些系統(tǒng)只處理與數(shù)據(jù)庫(kù)(或相關(guān)的存儲(chǔ)或 NOSQL)相關(guān)的事務(wù),以便讓它們做自己最擅長(zhǎng)的事情。這樣我們不僅提高了可擴(kuò)展性,還能減少擴(kuò)展成本。

在數(shù)據(jù)庫(kù)這個(gè)例子中,我們把不相似的服各區(qū)分開可以應(yīng)用到架構(gòu)中的其他環(huán)節(jié)。我們很可能會(huì)有后臺(tái)辦公系統(tǒng),諸如發(fā)送和接收電子郵件(與平臺(tái)無(wú)關(guān))的系統(tǒng)、做總賬和其他會(huì)計(jì)事務(wù)的系統(tǒng)、市場(chǎng)細(xì)分的系統(tǒng),以及支持客戶戶的運(yùn)維系統(tǒng),等等。我們很可能會(huì)把這些系統(tǒng)一股腦地放到我們的平臺(tái)上。我們可能希望電子商務(wù)系統(tǒng)中的一筆交易能立刻顯示在我們CFO的ERP系統(tǒng)中,或者我們想讓客戶支持代表能立刻看到它,以免這筆交易出問(wèn)題。同樣地,如果我們運(yùn)行的是一個(gè)廣告平臺(tái),那么我們可能想實(shí)時(shí)分析數(shù)據(jù)倉(cāng)庫(kù)中的數(shù)據(jù),以便給出更好的廣告建議。有很多原因促使我們想把業(yè)務(wù)流程與產(chǎn)品平臺(tái)中的系統(tǒng)混在一起。但是,我們的建議很簡(jiǎn)單:不要這樣做。

理想的情況是,讓這些系統(tǒng)都能根據(jù)自己的需要獨(dú)立地進(jìn)行擴(kuò)展。如果把這些系統(tǒng)綁定在一起,那么當(dāng)一個(gè)系統(tǒng)需要擴(kuò)展時(shí),所有系統(tǒng)都要同時(shí)擴(kuò)展。在某些情況下,如用數(shù)據(jù)庫(kù)執(zhí)行業(yè)務(wù)邏輯,系統(tǒng)的擴(kuò)展成本會(huì)更高。許可證是與CPU相關(guān)聯(lián)的ERP系統(tǒng)就經(jīng)常會(huì)發(fā)生這種情況。如果每個(gè)事務(wù)都同步調(diào)用ERP系統(tǒng),那么擴(kuò)展成本一定會(huì)提高。此外,把系統(tǒng)以串聯(lián)方式加入平臺(tái),也會(huì)降低產(chǎn)品的可用性,那么為什么我們還要如此做呢?

就像不應(yīng)該把產(chǎn)品智能放在數(shù)據(jù)庫(kù)中一樣,商業(yè)智能也不應(yīng)該綁定到產(chǎn)品事務(wù)上。在許多情況下,我們需要讓數(shù)據(jù)駐留在我們的產(chǎn)品中而且此時(shí)我們最好讓數(shù)據(jù)駐留在產(chǎn)品中。我們可以從其他系統(tǒng)中選擇數(shù)據(jù)集,在產(chǎn)品中正確地表示出來(lái)。通常,最好用一種新的或不同的方式表示這些數(shù)據(jù),有時(shí)是采用不同的范式。我們經(jīng)常需要把數(shù)據(jù)從產(chǎn)品移到后臺(tái)的業(yè)務(wù)系統(tǒng)中,如客戶支持系統(tǒng)、市場(chǎng)營(yíng)銷系統(tǒng)、數(shù)據(jù)倉(cāng)庫(kù)和ERP系統(tǒng)。在這些情況下,我們也希望能夠用不同的方式總結(jié)或表示數(shù)據(jù)。此外,為了提高可用性,我們希望以異步方式在系統(tǒng)間傳輸這些數(shù)據(jù)。為此可以采用ETL(提取、轉(zhuǎn)換、加載)系統(tǒng),甚至還有很多開源工具可以幫助你構(gòu)建自己的ETL過(guò)程。

記住,網(wǎng)站制作模式并不意味著是“舊”數(shù)據(jù)。沒(méi)有理由選擇過(guò)期的數(shù)據(jù)元素在系統(tǒng)間進(jìn)行傳輸。此外,還可以把數(shù)據(jù)發(fā)布到某種消息總線上,以供其他系統(tǒng)使用。成本最低的解決方案是批提取,不過(guò)如果時(shí)間有限不允許采用這種方法,那么消息總線絕對(duì)是個(gè)好選擇。

本文地址:http://m.cdrpkj.cn//article/3525.html
相關(guān)文章:
最新文章: