2017-04-19 116 views
0

我在SOA(面向服務架構),我有以下情形一個問題新學:縮放服務邊界(SOA)

在公司(MyCompany的),銷售團隊是有(這是一個技術權威業務能力 - 銷售就是業務能力)。該公司決定創建2個產品,稱Mycompany.Photos.com和Mycompany.Grocery.com。對於這兩個網站他們都需要銷售能力,即訂單接受能力

因此,銷售團隊必須爲這兩個網站工作。因爲,這兩個網站都需要銷售能力。

現在的問題是銷售團隊應該爲每個網站和2個不同的終端創建2個不同的數據庫嗎?

例如:

如果銷售團隊最初有一個隊列 「Mycompany.Sales.Endpoint」,它接收CreateOrderCommand。它處理CreateOrderCommand,在銷售數據庫中創建訂單併發布OrderAcceptedEvent。當他們只支持一個網站時。如果他們開始支持具有相同端點的兩個網站,那麼Sales將如何區分這個訂單是Mycompany.Grocery.com還是Mycompany.Photos?我們應該將Mycompany.Sales.Endpoint分成2個嗎?銷售團隊是否應該瞭解照片網站訂單和雜貨網站訂單?

一個答案,我能想到的是:

  1. 銷售團隊可以建立各2個不同的數據庫爲Mycompany.Grocery.com 和Mycompany.Photos.com
  2. 部署2個不同的業務組件(BC)爲每個網站。
  3. 對於MycompanyPhotos,銷售將有2個終端對Mycompany.Grocery.com BusinessComponent和「Mycompany.Photos.Sales.Endpoint」說「Mycompany.Grocery.Sales.Endpoint」 。

    即使它們處於相同的銷售限制環境下,它是否可以有2個業務組件(BC)?我是否正確,這是我們規模的銷售團隊將支持這兩種產品的銷售能力嗎?

對於長信息我很抱歉。我找不到解釋這個問題的捷徑。

回答

2

服務是企業能力的技術權威。

如果您應該能夠區分來自任一系統的訂單,但不能,您可能正在爲多種業務功能構建「技術權威」。

除此之外,服務可以有很多組件。不要專注於技術問題,而應關注業務問題,看看您是否可以解釋這一點。但是像Stackoverflow這樣的平臺,在問題&答案中與1比1的比率可能不是這樣的問題的正確媒介。

+0

嗨@丹尼斯感謝您的回覆。我編輯了我的問題,並刪除了個人一對一的問題。但我仍然認爲這是一個有效的SOA問題。 –

+0

服務不應該有「許多」業務組件 - 2可能是最應該有的。 –

+0

@RupeshKumarTiwari這當然是一個很好的問題,但是討論在StackOverflow上比在論壇中更難,在論壇中你可以繼續提問並在單個線程中回答問題。我認爲論壇更適合這類問題。 –

2

我認爲更好的方法來思考這種情況,你有效地擁有兩家公司 - 一家在食品雜貨店,具備所有相關功能,另一家在照片行業。即使這兩家「公司」碰巧共享相同的公司文件,您也不應將其視爲單一實體。

+0

謝謝@Udi Dahan!如果我理解正確,那麼在公司內,我們可以有許多基於公司的銷售部門(有限上下文/服務)。所以這裏Photo Company將有自己的銷售服務和訂單,而雜貨店則有自己的。 –