大音希聲、大象無形

          Java企業(yè)級應用軟件開發(fā)探討

          企業(yè)級應用為什么要分層?

          首先,需要知道什么是企業(yè)級應用。

          企業(yè)級應用(enterprise applications),其實是一個軟件行業(yè)內(nèi)部通用的一個術語。如果解釋成通俗易懂的話來說,那就是一個企業(yè)范圍內(nèi)所使用的、基于計算機的穩(wěn)定的、安全的和高效的分布式信息管理系統(tǒng)。
          對于企業(yè)級應用而言它的分布式有兩種形式:B/S結(jié)構(gòu)和C/S結(jié)構(gòu)。由于瀏覽器的功能日益強大、網(wǎng)頁技術的日益流行和應用服務器軟件和中間件產(chǎn)品的逐步成 熟,B/S結(jié)構(gòu)的企業(yè)級應用已經(jīng)成為一種流行的趨勢,所以在下面的討論中所謂的企業(yè)級應用統(tǒng)一為基于B/S結(jié)構(gòu)的分布式企業(yè)信息系統(tǒng)。

          一般說來企業(yè)級應用都可以分為三層持久層(Persistence Layer)業(yè)務邏輯層(Business Logic Layer)展現(xiàn)層(Presentation Layer )
          為什么要分這么幾個層次呢?
          歸根結(jié)底主要原因只有一個——那就是提高軟件開發(fā)生產(chǎn)力,降低軟件開發(fā)成本,提高軟件產(chǎn)品質(zhì)量。
          因為軟件公司也是資本公司,公司的主要目標是盈利而不是科技發(fā)展。所以,公司的技術架構(gòu)的優(yōu)劣主要應該體現(xiàn)在公司的生產(chǎn)成本和產(chǎn)品的質(zhì)量上。
          對于降低軟件產(chǎn)品的開發(fā)成本是軟件產(chǎn)品出現(xiàn)以來所有軟件公司所追求的目標。到目前為止,達到這個目標的方式有這么幾種:
          1. 把 軟件產(chǎn)品根據(jù)功能進行分解,分別開發(fā):對于大的復雜系統(tǒng),如果沒有很好的分解開發(fā)的話,其結(jié)果是不可想象的。現(xiàn)實中企業(yè)需要分開各個職能部門,它們的職責 和業(yè)務是不同的,這樣開發(fā)中需要根據(jù)業(yè)務進行任務分解,把大的系統(tǒng)分解成為小的業(yè)務系統(tǒng)。這樣才能夠?qū)崿F(xiàn)系統(tǒng)開發(fā)過程中的并行開發(fā),并且會培養(yǎng)業(yè)務專精人 員,提高開發(fā)的效率。
          2. 業(yè)務系統(tǒng)根據(jù)技術架構(gòu)進行分層開發(fā):分層的開發(fā)方式實現(xiàn)了人類對復雜事物的普遍處理方式——分而治之。通過把復雜的系統(tǒng)分解成為相對簡單的獨立系統(tǒng),低耦 合的分解既可以實現(xiàn)開發(fā)人員的并行工作,又可以實現(xiàn)開發(fā)人員的任務分工。而且通過分層,對組件拼裝和流水化作業(yè)提供了理論和事實的基礎。
          3. 組件拼裝實現(xiàn)社會化分工:不必自己去創(chuàng)造輪子,直接付錢去買想要的輪子即可。這是從傳統(tǒng)的制造行業(yè)借鑒來的經(jīng)驗。J2EE得到的廣泛認同從實質(zhì)上體現(xiàn)了業(yè)界對這種方式的肯定。
          4. 過去經(jīng)驗的積累和積累資源的重復利用:重用一直是一個爭議比較大的東西,爭論的雙方各執(zhí)一詞,各有道理也各有大師助陣,但是那更多的是在理論上和技術層面 上。理論和技術上的爭論對商業(yè)軟件開發(fā)是無用的。因為商業(yè)化的軟件開發(fā),最重要的是提供優(yōu)質(zhì)的產(chǎn)品和服務并且能夠最大可能的獲取利潤。所以,拋開具體實現(xiàn) 方式不談,我個人覺得公司過去經(jīng)驗的積累和積累資源的重復利用是有商業(yè)價值的。因為軟件公司必須得面對開發(fā)人員流動的問題,不管是升遷還是調(diào)動還是跳槽, 軟件公司總會面對業(yè)務專精人員的流失問題。業(yè)務專精人員的流失造成的成本是要計算在開發(fā)成本中的,所以怎樣以固化的形式積累業(yè)務人員的經(jīng)驗,和過去解決問 題的方案的可重復利用以及新員工職業(yè)培訓成本的降低在降低開發(fā)成本的方面是值得考慮的。
          綜上所述,對于一個企業(yè)級應用框架(還有人開發(fā)企業(yè)級應用不用框架嗎?)而言,分層是提高開發(fā)效率、降低開發(fā)和培訓成本的最佳實踐方案之一。
          但是,為什么要分為持久層(Persistence Layer)業(yè)務邏輯層(Business Logic Layer)展現(xiàn)層(Presentation Layer ) 3層呢?
          其實這三層不過就是從三個不同的視角去看這個企業(yè)信息系統(tǒng)罷了。從數(shù)據(jù)的角度看,企業(yè)信息系統(tǒng)不外乎就是對數(shù)據(jù)的存取。從功能的角度看,企業(yè)信息系統(tǒng)就是 對現(xiàn)實中的業(yè)務邏輯操作的信息化抽象而從用戶的角度上看,它是一個人機接口,它可以接受輸入并且會對所做的輸入做出相應的反應。這三層從底向上實現(xiàn)了底層 計算機數(shù)據(jù)和頂層人的業(yè)務操作的跨越,一般說來,從概念上講,所有的企業(yè)級應用框架都可以分成這三層,因為這三個視角是客觀的。但是這并不保證所有的企業(yè) 級應用都能保證這三個層之間不發(fā)生耦合。

          posted on 2006-03-20 17:29 guitarpoet 閱讀(1703) 評論(0)  編輯  收藏 所屬分類: 綜述


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導航:
           
          主站蜘蛛池模板: 城口县| 芜湖市| 无为县| 南涧| 砀山县| 陆丰市| 钟祥市| 马尔康县| 桑日县| 册亨县| 南投县| 绥德县| 石棉县| 潜山县| 横山县| 嘉祥县| 沙河市| 永胜县| 扶余县| 冕宁县| 唐海县| 高台县| 乌拉特中旗| 高淳县| 息烽县| 赞皇县| 莆田市| 南澳县| 安塞县| 阿图什市| 泰来县| 五常市| 射阳县| 莒南县| 咸丰县| 大庆市| 永昌县| 自贡市| 龙川县| 沽源县| 楚雄市|