回覆列表
  • 1 # ygccghcc

    1. 基於外部訊息標準(該行業的標準是MISMO)來構建內部訊息格式。雖然此訊息集合很臃腫,但它是成熟的,支援大多數業務域,並且具有擴充套件性,可為該公司及其流程擴充套件一些特有的屬性。

    2. 根據企業資料模型建立一個基於XML的訊息集合。該公司在企業資料模型上已經投入了很大資金,其模型已經包含了業務所需的絕大多數屬性。籠統地說,我們已經透過ER Studio中生成了XML模式,並將對此模式基礎上進行調整以定義訊息負載(payload)。

    3. 將MISMO主要用作實體的定義,然後簡化其結構以提高使用性。我們可利用MISMO豐富的通用詞彙,但在接下來的幾年裡我們可能需要定義出幾十種交易的訊息格式,而它們在MISMO中已經定義了。領域資料是一些類(class),它們封裝了實現服務所需的資訊。這裡應該使用經典的物件/關係對映(ORM)方法。ORM與服務語義(semantics)或SOA一點關係也沒有,而且“領域資料是一些封裝了實現服務所需資訊的類”的提法也稍顯隨意。資料和類是完全不同的兩個事物,一個是結構化元素(類),而另一個則是例項(資料)。我推薦Coad和De Luca等人的建議,使用四種顏色的建模原型和原型域圖形(archetype domain shape,ADS,又稱領域中立元件,domain neutral component或DNC),這是久經驗證的技術/模式。ADS將提示你,那些松耦合的邏輯元件(一組類)將變成“實體”服務,它們將成為“業務元件”,而且,從這裡生成XSD(避免XSD限制、將一切設定成可選的、透過import和include合理地打包)也是相當直觀的。你的SOA訊息就是CDM的檢視,其中包含業務元件以及其他與SOA基礎設施相關的元資料/上下文。每個業務元件的中心有一個核心實體SOA是一個功能性模型,不是物件模型。僅此而已!正因為如此,在設計時,需要特別地關注模型,因為功能模型更加接近於人的行為,並且附帶了一些以技術為中心的OO方法所不能承載的資訊。 當你做容器設計時,第一步不是OO或DDD(領域驅動的設計),而應該先DOSOM,而後才是OO/DDD。

  • 中秋節和大豐收的關聯?
  • 新鮮板栗怎樣去皮?