<dfn id="is4kg"></dfn>
  • <ul id="is4kg"></ul>
  • <abbr id="is4kg"></abbr>
  • <ul id="is4kg"></ul>
    <bdo id="is4kg"></bdo>

    曙海教育集團論壇開發(fā)語言培訓(xùn)專區(qū)Delphi程序設(shè)計 → 多層結(jié)構(gòu)設(shè)計觀念大討論


      共有7494人關(guān)注過本帖樹形打印

    主題:多層結(jié)構(gòu)設(shè)計觀念大討論

    美女呀,離線,留言給我吧!
    wangxinxin
      1樓 個性首頁 | 博客 | 信息 | 搜索 | 郵箱 | 主頁 | UC


    加好友 發(fā)短信
    等級:青蜂俠 帖子:1393 積分:14038 威望:0 精華:0 注冊:2010-11-12 11:08:23
    多層結(jié)構(gòu)設(shè)計觀念大討論  發(fā)帖心情 Post By:2010-12-14 11:32:03

    維護性高。物理分布靈活。開發(fā)的并行性高。

      舉個例子:在一個線纜銷售公司的訂單處理系統(tǒng)中要錄入訂單,并保存訂單。有以下要求:訂單的錄入界面要隨所訂線纜的種類不同而不同,以便于快速錄入。能否開放該新訂單取決于該訂單的總金額和該訂單的銷售員的金額授權(quán)以及庫存情況。如果銷售員金額權(quán)限不夠,要提示請銷售經(jīng)理進行授權(quán)審批。

      這里:
      訂單的錄入界面要隨所訂線纜的種類不同而不同,說明了界面的輸入輸出方式是多樣的,這是表示的多樣性,對應(yīng)于表示層。
    能否開放該新訂單取決于該訂單的總金額和該訂單的銷售員的金額授權(quán)以及庫存情況,這是商業(yè)規(guī)則,對應(yīng)于商務(wù)層。錄入訂單,并保存訂單,以及如果銷售員金額權(quán)限不夠,要提示請銷售經(jīng)理進行授權(quán)審批,是要實現(xiàn)的功能,這種功能是由客戶端組織的,在表示層實現(xiàn)。訂單,銷售員權(quán)限,這是數(shù)據(jù),對應(yīng)于數(shù)據(jù)層。

      但層的軟件實現(xiàn)基礎(chǔ)是什么呢?換句話說,層是如何實現(xiàn)的呢?

      層是通過多組軟件模塊之間的經(jīng)過規(guī)劃的調(diào)用來實現(xiàn)的。軟件模塊可以是源程序代碼級別上的子程序,函數(shù)過程,對象或二進制代碼級別上的組件。如果軟件模塊是源代碼級別上的,那么層就是依賴于源代碼的,其發(fā)揮作用的范圍也就只限于相應(yīng)的編譯后的應(yīng)用程序。如果軟件模塊是二進制代碼級別上的組件,如COM/DCOM對象或CORBAR對象,層就不依賴于源代碼而可以獨立地為調(diào)用者提供服務(wù)。而且可以為多個調(diào)用者提供服務(wù),不管這些調(diào)用者是不是同一個應(yīng)用。

      層次結(jié)構(gòu)是一種設(shè)計思想,適用于單獨的本機應(yīng)用程序設(shè)計,更適用于復(fù)雜的軟件系統(tǒng)。

      由于二進制代碼級別上的組件在開發(fā),維護,重用方面相對于基于源代碼的軟件模塊的優(yōu)勢,層更多地由二進制代碼級別上的組件來組成。例如Windows和Office的層次結(jié)構(gòu)。事實上,只有基于二進制組件的層次結(jié)構(gòu)(各層可以獨立存在)才能真正發(fā)揮多層結(jié)構(gòu)的威力。

      在實際的軟件系統(tǒng)中,每一層還可能由多個實現(xiàn)特定目標的子層構(gòu)成。在設(shè)計時,軟件模塊是基于源代碼級別的對象、函數(shù)過程還是基于二進制代碼級別上的組件取決于系統(tǒng)的復(fù)雜度和系統(tǒng)約束。

      層就是一群負有特定使命,提供特定服務(wù)的軟件模塊。
      例如,先前說提到的訂單處理系統(tǒng)中與訂單相關(guān)的處理可以在三層結(jié)構(gòu)中作如下分布:

      注:訂單商務(wù)對象和數(shù)據(jù)對象接口中的參數(shù)均已省略;接口并不完備,僅作示例用;各層上還有其他相關(guān)對象沒有列出)請仔細體會不同層次的對象在協(xié)同完成同一任務(wù)時的角色和思維的層次。

      另外一個多層結(jié)構(gòu)的一個典型例子是銀行的軟件系統(tǒng)。在銀行的軟件系統(tǒng)中,數(shù)據(jù)存放在大型機如AS/400上,后臺業(yè)務(wù)交易處理可能在AS/400上也可能在微機上處理(最后提交到AS/400),前端面對用戶的形式卻是多種多樣的:柜臺,ATM,Web,電話,手機。不同的前端都是使用同樣的后臺處理服務(wù)。(設(shè)想一下,如果不是這樣呢?)

      綜合以上的論述,我們可以畫出多層結(jié)構(gòu)系統(tǒng)在邏輯上和布局上的典型視圖如下:

      多層結(jié)構(gòu)中各類對象的含義與任務(wù)是什么呢?:

      數(shù)據(jù)存取對象 : 提供記錄的增刪改查方法,語義環(huán)境是在數(shù)據(jù)操作層次上

      商務(wù)實體對象:在一個或多個數(shù)據(jù)對象之上綁定商務(wù)實體的校驗規(guī)則,提供商務(wù)實體對外所應(yīng)展示的的方法,語義環(huán)境是在商務(wù)實體的相關(guān)操作層次上。例如:一個訂單是個商務(wù)實體,由訂單概要和所訂商品兩個數(shù)據(jù)對象組成,對一張訂單整體實施校驗規(guī)則,提供訂單的相關(guān)商務(wù)操作方法,如新增,修改,刪除,查詢。

      商務(wù)功能對象:通過一個或多個商務(wù)實體對象的協(xié)同工作,實現(xiàn)相關(guān)的某組功能。語義環(huán)境是在商務(wù)活動層次上。例如轉(zhuǎn)賬,可視為一個商務(wù)功能對象,通過按照一定順序和約定調(diào)用轉(zhuǎn)賬所涉及的各個商務(wù)實體對象提供的接口功能,在一個事務(wù)中來完成。

      表示層中,同一數(shù)據(jù),可能在同一個客戶端運行程序內(nèi)部就有不同的表現(xiàn)形式。也可能由不同的客戶端應(yīng)用程序使用同一商務(wù)層的功能。表示媒體也可能多種多樣。例如:WebServer就是一種提供將數(shù)據(jù)轉(zhuǎn)換為便于瀏覽器瀏覽的數(shù)據(jù)格式的表示服務(wù)程序。


      根據(jù)OMG 96年的定義,商務(wù)對象有如下定義:“商務(wù)對象代表在特定商務(wù)領(lǐng)域中活動的事物,商務(wù)對象至少包括它代表事物的商務(wù)名稱和商務(wù)定義,屬性,行為,關(guān)系,法則,政策和限制。例如商務(wù)對象可能代表一個人,地方,事件,商務(wù)流程或是觀念。實際的商務(wù)對象范例有:員工,產(chǎn)品,訂單,發(fā)票和付款等。”

      顯然,商務(wù)對象在多層結(jié)構(gòu)設(shè)計中處于核心地位,因此,在多層結(jié)構(gòu)系統(tǒng)中,最關(guān)鍵的就是設(shè)計好商務(wù)層,具體來說就是設(shè)計好商務(wù)層中需要存在哪些商務(wù)對象,各商務(wù)對象任務(wù)的分配和其接口的安排。

      商務(wù)層中的一個設(shè)計原則就是:分離商務(wù)對象,封裝商務(wù)處理與商務(wù)規(guī)則。


    總結(jié):

      軟件多層結(jié)構(gòu)是一種基于組件和基于服務(wù)的,將系統(tǒng)不同層次的功能對應(yīng)分散在不同軟件層次上的軟件系統(tǒng)結(jié)構(gòu)設(shè)計觀念。

      與社會化大分工為人類社會帶來極大好處相似,多層結(jié)構(gòu)設(shè)計也為軟件開發(fā)帶來極大好處:

      可重用性:由于商務(wù)層的獨立存在,那么商務(wù)層中的各種服務(wù)可以被不同的應(yīng)用程序使用。將組件的重用范圍從以前的的單個項目擴展到企業(yè)范圍內(nèi)的多個項目。

      配置的靈活性:由于軟件系統(tǒng)被分成了獨立的三層或多層,可以按照企業(yè)商務(wù)的功能需求和性能需求靈活配置各層次的物理位置,功能劃分,計算機數(shù)量等,為需求迅速增長的分布式應(yīng)用提供了實現(xiàn)基礎(chǔ)。例如不同的部門的不同應(yīng)用可以連接到不同的應(yīng)用服務(wù)器上。各個層次還可單獨選擇最恰當(dāng)?shù)拈_發(fā)工具。

      開發(fā)并行性:由于層與層之間是采用基于服務(wù)的存取(接口調(diào)用),并且是獨立存在的,所以各層可以在約定好的接口下并行開發(fā)。

      系統(tǒng)進化的容易度:當(dāng)軟件需求變更時或技術(shù)進步時,只需要更改相應(yīng)層中的組件,在保證接口不變的情況下,不會影響系統(tǒng)的其他部分,也不需重新測試系統(tǒng)的其他部分。而且層與層之間采用基于服務(wù)的調(diào)用方式,所以,當(dāng)商務(wù)規(guī)則變化時,只要更新單一的商務(wù)層,運行表示層的各個客戶端便自動地獲得按照新的商務(wù)規(guī)則處理的能力。在基于商務(wù)層服務(wù)的基礎(chǔ)上,可以采用漸增的方式增加客戶端應(yīng)用種類和接入媒體,因而系統(tǒng)可擴展性很好。



    支持(0中立(0反對(0單帖管理 | 引用 | 回復(fù) 回到頂部

    返回版面帖子列表

    多層結(jié)構(gòu)設(shè)計觀念大討論








    簽名
    主站蜘蛛池模板: 青青草国产精品| 久久天天躁狠狠躁夜夜2020一| 美女叫男人吻她的尿口道视频| 国产综合第一页| 中文字幕在线永久| 日韩欧美中文字幕一区二区三区 | 中文字幕在线播放| 日韩中文字幕在线播放| 亚洲精品在线电影| 福利小视频在线观看| 国产免费a级片| 2022国产成人福利精品视频| 天堂网www在线观看| 久久丫精品国产亚洲av| 日韩欧美卡一卡二卡新区| 亚洲熟妇无码爱v在线观看| 男朋友说我要冲你是什么意思| 国产午夜鲁丝片av无码免费| 67194成手机免费观看| 夜夜高潮天天爽欧美| 中文字幕热久久久久久久| 日本年轻的妈妈| 亚洲人成在线免费观看| 欧美日韩亚洲一区二区精品| 农村野战videossexjyzz| 美女露100%胸无遮挡免费观看| 国产日产精品系列推荐| 91视频第一页| 在线不卡一区二区三区日韩| 中国体育生gary飞机| 新视觉yy6080私人影院| 五月天精品在线| 极品馒头一线天粉嫩| 亚洲精品中文字幕无码蜜桃| 亚洲国产成人无码av在线影院 | 日韩精品欧美国产精品亚| 亚洲欧美日韩另类在线专区| 永久黄网站色视频免费观看| 制服丝袜第五页| 精品乱人伦一区二区| 国产一区在线电影|