新聞中心
復(fù)用是一個很不錯的概念,深得“不要重復(fù)制造輪子”的思想精髓。然而具體實施起來一定會遇到很多問題,就好像那個DRY理論一樣,不是隨隨便便就可以做到的。下面對開發(fā)過程中的兩種復(fù)用形式:組件復(fù)用與服務(wù)復(fù)用進行了簡單的分析。

我們經(jīng)常談到復(fù)用,在一個企業(yè)中,根據(jù)不同的場景,復(fù)用的形態(tài)和方式是不同的,大體可以分為組件復(fù)用和服務(wù)復(fù)用兩種方式。組件是按照一定的標準封裝的軟件實體,可以是為完成某種功能提供的API的集合,也可以是完成某一個技術(shù)和業(yè)務(wù)功能的實體;服務(wù)是通過組件暴露出來的供外部調(diào)用的接口和協(xié)議信息。服務(wù)不包括具體功能邏輯實體,靠組件來實現(xiàn)。
企業(yè)架構(gòu)中通常提到的技術(shù)復(fù)用和業(yè)務(wù)復(fù)用,可以簡單地映射到組件和服務(wù)上。技術(shù)層面的復(fù)用一般是一些API、或者抽象出的框架,比如日志,它可以稱之為組件,但是日志組件提供了記錄日志的API,并沒有包括具體的日志內(nèi)容,我們在使用的時候是通過日志組件提供的API來記錄相應(yīng)的日志內(nèi)容;再比如業(yè)界提供的一些框架,它是對應(yīng)用的高度抽象,自身也不包括具體的應(yīng)用或業(yè)務(wù)邏輯,這些需要我們在軟件實施過程中自己灌輸進去。并且技術(shù)層面的復(fù)用往往是每個系統(tǒng)中都有該組件的相應(yīng)實體,比如A系統(tǒng)中會有日志組件、B系統(tǒng)中也會有日志組件。業(yè)務(wù)層面的復(fù)用通常采用調(diào)用服務(wù)的方式,是一種遠程訪問,業(yè)務(wù)服務(wù)通常在一個企業(yè)中物理上只有一個實體,其他的系統(tǒng)通過服務(wù)來調(diào)用,比如銀行目前的渠道有網(wǎng)上銀行、ATM、手機銀行、電話銀行、柜臺等,這些系統(tǒng)中是沒有存取款業(yè)務(wù)邏輯實體的,存取款的交易都是通過調(diào)用主機相應(yīng)的服務(wù)來實現(xiàn)的。
所以,對于組件和服務(wù)的管理其實也有不同的策略,組件要管理的是軟件實體,服務(wù)管理的是服務(wù)的接口和協(xié)議信息,并且服務(wù)有一系列的特征,這個網(wǎng)上也有很多描述,可以根據(jù)不同需求調(diào)整服務(wù)的實現(xiàn)。當(dāng)前服務(wù)的協(xié)議通常有WebService、HTTP、EJB等,對應(yīng)其組件的實現(xiàn)可以采用不同的技術(shù),比如Java、C/C++等等。
以上對組件復(fù)用與服務(wù)復(fù)用的一些淺談,希望對大家有所幫助。
【編輯推薦】
- 初探敏捷開發(fā)
- 理解敏捷開發(fā):需求處理與齊頭并進
- 討論:敏捷開發(fā)真的對架構(gòu)設(shè)計不利嗎?
- 再談敏捷開發(fā)的好處及敏捷外包的前景
- 再談敏捷開發(fā) 從成本到收益的優(yōu)化
網(wǎng)頁題目:淺談組件復(fù)用與服務(wù)復(fù)用
路徑分享:http://www.5511xx.com/article/ccoggos.html


咨詢
建站咨詢
