鍍金池/ 問答/Java  PHP  Linux  網(wǎng)絡(luò)安全/ 哪位大牛能舉個(gè)實(shí)例講下SOA與傳統(tǒng)架構(gòu)的區(qū)別?

哪位大牛能舉個(gè)實(shí)例講下SOA與傳統(tǒng)架構(gòu)的區(qū)別?

知道SOA是為了解耦,但網(wǎng)上講的都太偏理論和抽象。哪位大神能基于自己熟悉的實(shí)際軟件系統(tǒng),講講區(qū)別:傳統(tǒng)的是分哪些模塊(按技術(shù)組件分?),用SOA又是怎么分模塊?

回答
編輯回答
九年囚

假設(shè)我要做幾道菜:

  1. 麻婆豆腐
  2. 素炒小青菜
  3. 西紅柿炒蛋

以前我的做法:
我要做麻婆豆腐,先洗豆腐,然后找到豆瓣醬,把豆瓣醬炸出香味,然后我想到還需要辣椒,我就去切辣椒,切完辣椒放進(jìn)去后,我發(fā)現(xiàn)還需要姜蒜,我去切了姜蒜,然后和燒好的豆瓣醬一起煎出香味,倒入豆腐翻兩圈開始燜。
燜好麻婆豆腐之后,我要素炒小青菜。
我立即去洗小青菜,然后燒好油后發(fā)現(xiàn)還少了姜蒜,我就去切姜蒜,一陣手忙腳亂,小青菜炒好了。
如此重復(fù)進(jìn)行炒西紅柿炒蛋。

有了SOA之后:
我先剁好一小碗姜末;
我先剁好一小碗蒜末;
先切好青菜
先找好豆瓣醬
先洗好豆腐
先切好西紅柿

然后,我想要什么服務(wù),直接取。(嗯,這里可能來說是一個(gè)人的SOA)
后來,我為了想提高效率,叫我老婆來一起幫忙準(zhǔn)備這些材料,后面,突然有10個(gè)朋友來我家,要做的菜式更多了,然后我叫幾個(gè)朋友一起幫準(zhǔn)備各種材料。

這里面的思想還可以發(fā)散。后面的不想說了。


我想了一下,再補(bǔ)充一下

對(duì)于第一種情況,假設(shè)我每種菜要做10份,那么再叫來9個(gè)人和我一起重復(fù)上面的事情(多個(gè)服務(wù)器部署同一套系統(tǒng))
而后面有了SOA,我每一個(gè)人就只關(guān)注自己的具體邏輯,比如切青菜的專門切青菜,洗青菜的專門洗青菜等等,對(duì)于廚師(用戶),想要做一份西紅柿炒蛋,那他就去拿西紅柿和打好的蛋就好了,如果想做個(gè)西紅柿燜大腸,那么他就取取切好的西紅柿和切好的大腸就好了,分工明確,各司其職。

2017年8月16日 05:12