軟件質(zhì)量控制期中復(fù)習(xí)_第1頁(yè)
軟件質(zhì)量控制期中復(fù)習(xí)_第2頁(yè)
軟件質(zhì)量控制期中復(fù)習(xí)_第3頁(yè)
軟件質(zhì)量控制期中復(fù)習(xí)_第4頁(yè)
軟件質(zhì)量控制期中復(fù)習(xí)_第5頁(yè)
已閱讀5頁(yè),還剩15頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

V模型的特點(diǎn):

1)軟件開(kāi)發(fā)過(guò)程與軟件測(cè)試過(guò)程是并發(fā)進(jìn)行的;

2)軟件測(cè)試的目標(biāo)和計(jì)劃在系統(tǒng)實(shí)現(xiàn)(編碼)之前就已確定;

3)針對(duì)不同的測(cè)試目的和測(cè)試階段,采用的測(cè)試方法應(yīng)該合理選擇。

1.2軟件缺陷

軟件缺陷的定義:

只有至少滿足下列5個(gè)規(guī)則之一才稱(chēng)發(fā)生了一個(gè)軟件缺陷(Software

bug):

軟件未實(shí)現(xiàn)產(chǎn)品說(shuō)明書(shū)要求的功能;

軟件出現(xiàn)了產(chǎn)品說(shuō)明書(shū)指明不應(yīng)該出現(xiàn)的錯(cuò)誤;

軟件實(shí)現(xiàn)了產(chǎn)品說(shuō)明書(shū)未提到的功能;

軟件未實(shí)現(xiàn)產(chǎn)品說(shuō)明書(shū)雖未明確提及但應(yīng)該實(shí)現(xiàn)的目標(biāo);

軟件難以理解、不易使用、運(yùn)行緩慢或-從測(cè)試員的角度看-最終用

戶會(huì)認(rèn)為不好。

軟件缺陷的主要類(lèi)型/表現(xiàn)形式:

功能、特性沒(méi)有實(shí)現(xiàn)或部分實(shí)現(xiàn)

設(shè)計(jì)不合理,存在缺陷

實(shí)際結(jié)果和預(yù)期結(jié)果不一致

運(yùn)行出錯(cuò),包括運(yùn)行中斷、系統(tǒng)崩潰、界面混亂

數(shù)據(jù)結(jié)果不正確、精度不夠

用戶不能接受的其他問(wèn)題,如存取時(shí)間過(guò)長(zhǎng)、界面不美觀

軟件錯(cuò)誤的根本原因來(lái)源于下面幾個(gè)方面:

說(shuō)明不完整或說(shuō)明錯(cuò)誤

與客戶交流不夠所產(chǎn)生的誤解

故意與說(shuō)明偏離

違反編程標(biāo)準(zhǔn)

數(shù)據(jù)表示有錯(cuò)

模塊接口不一致

設(shè)計(jì)邏輯有錯(cuò)

不完整或錯(cuò)誤的測(cè)試

就就性(對(duì)白外特境它能適%地響應(yīng)嗎?)

軟件產(chǎn)品時(shí)

效率(完成預(yù)定功能時(shí)它需要的計(jì)尊機(jī)費(fèi)源名叫?)

的[產(chǎn)品轉(zhuǎn)移。

完誼性(它是安全的嗎?)

信可用性(我能使用它嗎?)

風(fēng)險(xiǎn)性(能恢修定計(jì)劃完成它嗎?)

1.4軟件質(zhì)量工程體系的構(gòu)成

1.6軟件質(zhì)量成本軟件質(zhì)量成本是為確保和保證滿意的質(zhì)量而發(fā)生的費(fèi)用

以及沒(méi)有達(dá)到滿意的質(zhì)量所造成損失的總和,即包括保證費(fèi)用和損失費(fèi)

用。

軟i牛質(zhì)量成本的構(gòu)成:軟件質(zhì)量成本=質(zhì)量預(yù)防成本+評(píng)價(jià)成本+失效

成本

,預(yù)防成本:預(yù)防產(chǎn)生質(zhì)量問(wèn)題(軟件缺陷)的費(fèi)用,是企業(yè)的計(jì)劃

性支出,專(zhuān)門(mén)用來(lái)確保在軟件產(chǎn)品交付和服務(wù)的各個(gè)環(huán)節(jié)不出現(xiàn)失

誤。

/評(píng)價(jià)成本:是指在交付和服務(wù)環(huán)節(jié)上,為評(píng)定軟件產(chǎn)品或服務(wù)是否

符合質(zhì)量要求而進(jìn)行的試驗(yàn)、軟件測(cè)試和質(zhì)量評(píng)估等所必需的支出。

/失效成本:分為內(nèi)部的和外部的,如果在軟件發(fā)布之前發(fā)現(xiàn)質(zhì)量問(wèn)

題,而要求重做、修改和問(wèn)題分析所帶來(lái)的成本屬內(nèi)部失效成本,

包括修正軟件缺陷、回歸測(cè)試等,以及因產(chǎn)品或服務(wù)不合要求導(dǎo)致

的延誤。

1.7軟件的項(xiàng)目度量?jī)?nèi)容1規(guī)模度量(sizemeasurement):以代碼行數(shù)、

功能點(diǎn)數(shù)、對(duì)象點(diǎn)或特征點(diǎn)等來(lái)衡量。軟件規(guī)模度量是工作量度量、進(jìn)度

度量的基礎(chǔ),用于估算軟件項(xiàng)目工作量、編制成本預(yù)算、策劃項(xiàng)目進(jìn)度的

基礎(chǔ)。

2復(fù)雜度度量(complexitymeasurement):確定程序控制流或軟件系

統(tǒng)結(jié)構(gòu)的復(fù)雜程度指標(biāo)。復(fù)雜度度量用于估計(jì)或預(yù)測(cè)軟件產(chǎn)品的可測(cè)試

性、可靠性和可維護(hù)性,以便選擇最優(yōu)化、最可靠的程序設(shè)計(jì)方法,來(lái)確

定測(cè)試策略、維護(hù)策略等。

3缺陷度量(defectmeasurement):幫助確定產(chǎn)品缺陷分布的情況、

缺陷變化的狀態(tài)等,從而幫助分析修復(fù)缺陷所需的工作量、設(shè)計(jì)和編程中

存在哪些弱點(diǎn)、預(yù)測(cè)產(chǎn)品發(fā)布時(shí)間、預(yù)測(cè)產(chǎn)品的遺留缺陷等。

4工作量度量(workloadmeasurement):任務(wù)分解并結(jié)合人力資源水

平來(lái)度量,合理地分配研發(fā)資源和人力,獲得最高的效率比。工作量度量

是在軟件規(guī)模度量和生產(chǎn)率度量的基礎(chǔ)上進(jìn)行。

5進(jìn)度度量(schedulemeasurement):通過(guò)任務(wù)分解、工作量度量、

有效資源分配等做出計(jì)劃,然后將實(shí)際結(jié)果和計(jì)劃值進(jìn)行對(duì)比來(lái)度量。6

風(fēng)險(xiǎn)度量(riskmeasurement):一般通過(guò)兩個(gè)參數(shù)“風(fēng)險(xiǎn)發(fā)生的概率”和

“風(fēng)險(xiǎn)發(fā)生后所帶來(lái)的損失”來(lái)評(píng)估風(fēng)險(xiǎn)。

其他的項(xiàng)目度量,如需求穩(wěn)定性或需求穩(wěn)定因子(RSI,Requirement

StabilityIndex),資源利用效率(ResourceUtilization),文檔復(fù)審水

平(Reviewlevel),問(wèn)題解決能力(Issue-resolvingability)、代碼

動(dòng)態(tài)增長(zhǎng)等。

1.8軟件需求工程

所有與需求直接相關(guān)的活動(dòng)統(tǒng)稱(chēng)為需求工程,需求工程分為了兩個(gè)部

分:需求開(kāi)發(fā)和需求管理。其中,需求開(kāi)發(fā)又分為了需求獲取、需求分析、

需求定義和需求驗(yàn)證4個(gè)部分,而需求管理則包含了變更控制、版本控制、

需求跟蹤和需求狀態(tài)跟蹤。

需求工程過(guò)程柢架和功能需求(也

包N映了組織機(jī)構(gòu)

或范圍文檔中予以

說(shuō)

明H一個(gè)業(yè)務(wù)前景。

業(yè)

務(wù)作用。用戶需求

(U壬務(wù)的集合,用

戶se

需為明。收集和分

用取,更難保證需

完行充分地交流。

能必須實(shí)現(xiàn)的軟件

在1要的部分之一,

中都起了重要的

作用操作等,包括要

遵從的業(yè)務(wù)規(guī)則、人機(jī)接口、安全性和可靠性等要求。

1.9系統(tǒng)分析與設(shè)計(jì)

L9.1面向?qū)ο蟮姆治鼋_^(guò)程

?誘導(dǎo)系統(tǒng)的客戶需求;

?標(biāo)識(shí)場(chǎng)景或用例(usecase);

?使用基本需求來(lái)確定類(lèi)和對(duì)象;

?為每個(gè)系統(tǒng)對(duì)象表示屬性和操作;

?定義組織類(lèi)的結(jié)構(gòu)和層次;

?建造對(duì)象-關(guān)系模型;

?建造對(duì)象-行為模型;

?依據(jù)use-case/場(chǎng)景來(lái)評(píng)審00A模型。

1.9.2設(shè)計(jì)模式重點(diǎn)看資料中的設(shè)計(jì)模式實(shí)現(xiàn)(單一模式和類(lèi)工廠模式)

設(shè)計(jì)模式有4個(gè)基本要素:

模式名稱(chēng):描述模式的問(wèn)題、解決方案和效果;

問(wèn)題:描述了應(yīng)該在何時(shí)使用模式;

解決方案:描述了設(shè)計(jì)的組成部分之間的相互關(guān)系、職責(zé)和協(xié)

作方式。

效果:描述了模式應(yīng)用的效果及使用模式應(yīng)權(quán)衡的問(wèn)題。

,設(shè)計(jì)模式在工程小組成員之間提供了通用的語(yǔ)義。

/設(shè)計(jì)模式可以更加簡(jiǎn)單方便的復(fù)用成功的設(shè)計(jì)和體系結(jié)

構(gòu)。

,設(shè)計(jì)模式有助于作出有利于系統(tǒng)復(fù)用的選擇,避免設(shè)計(jì)損

害系統(tǒng)復(fù)用性。

,設(shè)計(jì)模式可以幫助設(shè)計(jì)者更快更好的完成系統(tǒng)設(shè)計(jì)

1.9.3設(shè)計(jì)模式的分類(lèi)創(chuàng)建型模式

創(chuàng)建型模式抽象了實(shí)例化過(guò)程。它們幫助一個(gè)系統(tǒng)獨(dú)立于如何創(chuàng)建、

組合和表示它的那些對(duì)象。

②結(jié)構(gòu)型模式

結(jié)構(gòu)型類(lèi)模式采用繼承機(jī)制來(lái)組合按口或?qū)崿F(xiàn),描述了如何對(duì)一些對(duì)

象進(jìn)行組合,從而實(shí)現(xiàn)新功能的一些方法。

③行為模式

行為模式涉及到算法和對(duì)象間職責(zé)的分配。行為模式不僅描述對(duì)象或

類(lèi)的模式,還描述它們之間的通信模式。行為模式使用繼承機(jī)制在類(lèi)間分

派行為。

1創(chuàng)建型模式

抽象工廠:提供一個(gè)創(chuàng)建一系列相關(guān)或相互依賴(lài)對(duì)象的接口,而無(wú)需

指定它們具體的類(lèi)。

生成器:將一個(gè)復(fù)雜對(duì)象的構(gòu)建與它的表示分離,使得同樣的構(gòu)建過(guò)

程可以創(chuàng)建不同的表示。

工廠方法:定義一個(gè)用于創(chuàng)建對(duì)象的接口,讓子類(lèi)決定實(shí)例化哪一個(gè)

類(lèi)。FactoryMethod使一個(gè)類(lèi)的實(shí)例化延遲到其子類(lèi)。

原型:用原型實(shí)例指定創(chuàng)建對(duì)象的種類(lèi),并且通過(guò)拷貝這些原型創(chuàng)建

新的對(duì)象。

單一:保證一個(gè)類(lèi)僅有一個(gè)實(shí)例,并提供一個(gè)訪問(wèn)它的全句訪問(wèn)點(diǎn)。

2結(jié)構(gòu)型模式

適配器:將一個(gè)類(lèi)的接口轉(zhuǎn)換成客戶希望的另外一個(gè)接口。Adapter模

式使得原本由于接口不兼容而不能一起工作的那些類(lèi)可以一起工作

橋接:將抽象部分與它的實(shí)現(xiàn)部分分離,使它們都可以獨(dú)立的變化

組合:將對(duì)象組合成樹(shù)形結(jié)構(gòu)以表示“部分-整體”的層次結(jié)構(gòu)。

Composite使得用戶單個(gè)對(duì)象和組合對(duì)象的使用具有一致性

裝飾:動(dòng)態(tài)的給一個(gè)對(duì)象添加一些額外的職責(zé)。就增加功能來(lái)說(shuō),

Decorator模式相比生成子類(lèi)更為靈活

外觀:為子系統(tǒng)中的一組接口提供一個(gè)一致的界面,F(xiàn)apade模式定義

了一個(gè)高層接口,這個(gè)接口使得這一子系統(tǒng)更加容易使用

享元:運(yùn)用共享技術(shù)有效的支持大量細(xì)粒度的對(duì)象

代理:為其他對(duì)象提供一種代理以控制對(duì)這個(gè)對(duì)象的訪問(wèn)

3行為型模式

職責(zé)鏈:使多個(gè)對(duì)象都有機(jī)會(huì)處理請(qǐng)求,從而避免請(qǐng)求的發(fā)送者和接

收者之間的耦合關(guān)系。將這些對(duì)象連成一條鏈,并沿著這條鏈傳遞該請(qǐng)求,

直到有一個(gè)對(duì)象處理它為止。

命令:將一個(gè)請(qǐng)求封裝為一個(gè)對(duì)象,從而使你可用不同的請(qǐng)求對(duì)客戶

進(jìn)行參數(shù)化;對(duì)請(qǐng)求排對(duì)或記錄請(qǐng)求日志,以及支持可撤銷(xiāo)的操作。

解釋器:給定一個(gè)語(yǔ)言,定義它的文法的一種表示,并定義一個(gè)解釋

器,這個(gè)解釋器使用該表示來(lái)解釋語(yǔ)言中的句子。

迭代器:提供一種方法順序訪問(wèn)一個(gè)聚合對(duì)象中各個(gè)元素,而又不需

要暴露該對(duì)象的內(nèi)部表示。

中介者:用一個(gè)中介對(duì)象來(lái)封裝一系列的對(duì)象交互。中介者使各對(duì)象

不需要顯式的相互引用,從而使其耦合松散,而且可以獨(dú)立的改變它們之

間的交互。

備忘錄:在不破壞封裝性的前提下,捕獲一個(gè)對(duì)象的內(nèi)部狀態(tài),并在

該對(duì)象之外保存這個(gè)狀態(tài)。這樣以后就可將該對(duì)象恢復(fù)到原先保存的狀

態(tài)0

1觀察者:定義對(duì)象間的一種一對(duì)多的依賴(lài)關(guān)系,當(dāng)一個(gè)對(duì)象的狀態(tài)發(fā)

生改變時(shí),所有依賴(lài)于它的對(duì)象都得到通知并被自動(dòng)更新。

狀態(tài):允許一個(gè)對(duì)象在其內(nèi)部狀態(tài)改變時(shí)改變它的行為。對(duì)象看起來(lái)

似乎修改了它的類(lèi)。

萊略:允許々對(duì)象在其內(nèi)部狀態(tài)改變時(shí)改變它的行為。

模板方法:定義一個(gè)操作中的算法的骨架,而將一些步驟延遲到子類(lèi)

中。

訪問(wèn)者:表示一個(gè)作用于某對(duì)象結(jié)構(gòu)中的各元素的操作。

1.10數(shù)據(jù)庫(kù)設(shè)計(jì)數(shù)據(jù)庫(kù)設(shè)計(jì)步驟:

,需求分析

/概念設(shè)計(jì)

/邏輯設(shè)計(jì)

/物理設(shè)計(jì)

對(duì)數(shù)據(jù)庫(kù)進(jìn)行質(zhì)量控制方面劃分為:

/數(shù)據(jù)層的需求和構(gòu)建

/數(shù)據(jù)字典設(shè)計(jì)數(shù)據(jù)庫(kù)

,數(shù)據(jù)流設(shè)計(jì)

1.11關(guān)于B/S和C/S架構(gòu)的介紹

/jyy_1981/archive/2005/l0/12/500251.asp

X

一、什么是C/S和B/S

第一、什么是C/S結(jié)構(gòu)。C/S(Client/Server)結(jié)構(gòu),即大家熟知

的客戶機(jī)和服務(wù)器結(jié)構(gòu)。它是軟件系統(tǒng)體系結(jié)構(gòu),通過(guò)它可以充分利用兩

端硬件環(huán)境的優(yōu)勢(shì),將任務(wù)合理分配到Client端和Server端來(lái)實(shí)現(xiàn),降

低了系統(tǒng)的通訊開(kāi)銷(xiāo)。目前大多數(shù)應(yīng)用軟件系統(tǒng)都是Client/Server形式

的兩層結(jié)構(gòu),由于現(xiàn)在的軟件應(yīng)用系統(tǒng)正在向分布式的Web應(yīng)用發(fā)展,Web

和Client/Server應(yīng)用都可以進(jìn)行同樣的業(yè)務(wù)處理,應(yīng)用不同的模塊共享

邏輯組件;因此,內(nèi)部的和外部的用戶都可以訪問(wèn)新的和現(xiàn)有的應(yīng)用系統(tǒng),

通過(guò)現(xiàn)有應(yīng)用系統(tǒng)中的邏輯可以擴(kuò)展出新的應(yīng)用系統(tǒng)。這也就是目前應(yīng)用

系統(tǒng)的發(fā)展方向。

傳統(tǒng)的C/S體系結(jié)構(gòu)雖然采用的是開(kāi)放模式,但這只是系統(tǒng)開(kāi)發(fā)一

級(jí)的開(kāi)放性,在特定的應(yīng)用中無(wú)論是Client端還是Server端都還需要特

定的軟件支持。由于沒(méi)能提供用戶真正期望的開(kāi)放環(huán)境,C/S結(jié)構(gòu)的軟件

需要針對(duì)不同的操作系統(tǒng)系統(tǒng)開(kāi)發(fā)不同版本的軟件,加之產(chǎn)品的更新?lián)Q

代十分快,已經(jīng)很難適應(yīng)百臺(tái)電腦以上局域網(wǎng)用戶同時(shí)使用。而且代價(jià)高,

效率低。

第二、什么是B/S結(jié)構(gòu)。B/S(Browser/Server)結(jié)構(gòu)即瀏覽器和服

務(wù)器結(jié)構(gòu)。它是隨著Internet技術(shù)的興起,對(duì)C/S結(jié)構(gòu)的一種變化或者

改進(jìn)的結(jié)構(gòu)。在這種結(jié)構(gòu)下,用戶工作界面是通過(guò)WWW瀏覽器來(lái)實(shí)現(xiàn),極

少部分事務(wù)邏輯在前端(Browser)實(shí)現(xiàn),但是主要事務(wù)邏輯在服務(wù)器端

(Server)實(shí)現(xiàn),形成所謂三層3-tier結(jié)構(gòu)。這樣就大大簡(jiǎn)化了客戶端

電腦載荷,減輕了系統(tǒng)維護(hù)與升級(jí)的成本和工作量,降低了用戶的總體成

本(TC0)o以目前的技術(shù)看,局域網(wǎng)建立B/S結(jié)構(gòu)的網(wǎng)絡(luò)應(yīng)用,并通過(guò)

Internet/Intranet模式下數(shù)據(jù)庫(kù)應(yīng)用,相對(duì)易于把握、成本也是較低的。

它是一次性到位的開(kāi)發(fā),能實(shí)現(xiàn)不同的人員,從不同的地點(diǎn),以不同的接

入方式(比如LAN,WAN,Internet/Intranet等)訪問(wèn)和操作共同的數(shù)據(jù)

庫(kù);它能有效地保護(hù)數(shù)據(jù)平臺(tái)和管理訪問(wèn)權(quán)限,服務(wù)器數(shù)據(jù)庫(kù)也很安全。

二、C/S和B/S之比較

C/S和B/S是當(dāng)今世界開(kāi)發(fā)模式技術(shù)架構(gòu)的兩大主流技術(shù)。C/S是美

國(guó)Borland公司最早研發(fā),B/S是美國(guó)微軟公同研發(fā)。

I、C/S架構(gòu)軟件的優(yōu)勢(shì)與劣勢(shì)

(1)、應(yīng)用服務(wù)器運(yùn)行數(shù)據(jù)負(fù)荷較輕。最簡(jiǎn)單的C/S體系結(jié)構(gòu)的數(shù)據(jù)

庫(kù)應(yīng)用由兩部分組成,即客戶應(yīng)用程序和數(shù)據(jù)庫(kù)服務(wù)器程序。二者可分別

稱(chēng)為前臺(tái)程序與后臺(tái)程序。運(yùn)行數(shù)據(jù)庫(kù)服務(wù)器程序的機(jī)器,也稱(chēng)為應(yīng)用服

務(wù)器。一旦服務(wù)器程序被啟動(dòng),就隨時(shí)等待響應(yīng)客戶程序發(fā)來(lái)的請(qǐng)求;客

戶應(yīng)用程序運(yùn)行在用戶自己的電腦上,對(duì)應(yīng)于數(shù)據(jù)庫(kù)服務(wù)器,可稱(chēng)為客戶

電腦,當(dāng)需要對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行任何操作時(shí),客戶程序就自動(dòng)地尋找

服務(wù)器程序,并向其發(fā)出請(qǐng)求,服務(wù)器程序根據(jù)預(yù)定的規(guī)則作出應(yīng)答,送

回結(jié)果,應(yīng)用服務(wù)器運(yùn)行數(shù)據(jù)負(fù)荷較輕。

(2)、數(shù)據(jù)的儲(chǔ)存管理功能較為透明。在數(shù)據(jù)庫(kù)應(yīng)用中,數(shù)據(jù)的儲(chǔ)存

管理功能,是由服務(wù)器程序和客戶應(yīng)用程序分別獨(dú)立進(jìn)行的,前臺(tái)應(yīng)用可

以違反的規(guī)則,并且通常把那些不同的(不管是已知還是未知的)運(yùn)行數(shù)

據(jù),在服務(wù)器程序中不集中實(shí)現(xiàn),例如訪問(wèn)者的權(quán)限,編號(hào)可以重復(fù)、必

須有客戶才能建立定單這樣的規(guī)則。所有這些,對(duì)于工作在前臺(tái)程序上的

最終用戶,是“透明”的,他們無(wú)須過(guò)問(wèn)(通常也無(wú)法干涉)背后的過(guò)程,

就可以完成自己的一切工作。在客戶服務(wù)器架構(gòu)的應(yīng)用中,前臺(tái)程序不是

非常“瘦小”,麻煩的事情都交給了服務(wù)器和網(wǎng)絡(luò)。在C/S體系的下,數(shù)

據(jù)庫(kù)不能真正成為公共、專(zhuān)業(yè)化的倉(cāng)庫(kù),它受到獨(dú)立的專(zhuān)門(mén)管理。

(3)、C/S架構(gòu)的劣勢(shì)是高昂的維護(hù)成本且投資大。首先,采用C/S

架構(gòu),要選擇適當(dāng)?shù)臄?shù)據(jù)庫(kù)平臺(tái)來(lái)實(shí)現(xiàn)數(shù)據(jù)庫(kù)數(shù)據(jù)的真正“統(tǒng)一”,使分

布于兩地的數(shù)據(jù)同步完全交由數(shù)據(jù)庫(kù)系統(tǒng)去管理,但邏輯上兩地的操作者

要直接訪問(wèn)同一個(gè)數(shù)據(jù)庫(kù)才能有效實(shí)現(xiàn),有這樣一些問(wèn)題,如果需要建立

“實(shí)時(shí)”的數(shù)據(jù)同步,就必須在兩地間建立實(shí)時(shí)的通訊連接,保持兩地的

數(shù)據(jù)庫(kù)服務(wù)器在線運(yùn)行,網(wǎng)絡(luò)管理工作人員既要對(duì)服務(wù)器維護(hù)管理,又要

對(duì)客戶端維護(hù)和管理,這需要高昂的投資和復(fù)雜的技術(shù)支持,維護(hù)成本很

高,維護(hù)任務(wù)量大。

其次,傳統(tǒng)的C/S結(jié)構(gòu)的軟件需要針對(duì)不同的操作系統(tǒng)系統(tǒng)開(kāi)發(fā)不同

版本的軟件,由于產(chǎn)品的更新?lián)Q代十分快,代價(jià)高和低效率已經(jīng)不適應(yīng)工

作需要。在JAVA這樣的跨平臺(tái)語(yǔ)言出現(xiàn)之后,B/S架構(gòu)更是猛烈沖擊C/S,

并對(duì)其形成威脅和挑戰(zhàn)。

2、B/S架構(gòu)軟件的優(yōu)勢(shì)與劣勢(shì)

(1)、維護(hù)和升級(jí)方式簡(jiǎn)單。目前,軟件系統(tǒng)的改進(jìn)和升級(jí)越來(lái)越頻

繁,B/S架構(gòu)的產(chǎn)品明顯體現(xiàn)著更為方便的特性。對(duì)一個(gè)稍微大一點(diǎn)單位

來(lái)說(shuō),系統(tǒng)管理人員如果需要在幾百良至上千部電腦之間來(lái)回奔跑,效率

和工作量是可想而知的,但B/S架構(gòu)的軟件只需要管理服務(wù)器就行了,所

有的客戶端只是瀏覽器,根本不需要做任何的維護(hù)。無(wú)論用戶的規(guī)模有多

大,有多少分支機(jī)構(gòu)都不會(huì)增加任何維護(hù)升級(jí)的工作量,所有的操作只需

要針對(duì)服務(wù)器進(jìn)行;如果是異地,只需要把服務(wù)器連接專(zhuān)網(wǎng)即可,實(shí)現(xiàn)遠(yuǎn)

程維護(hù)、升級(jí)和共享。所以客戶機(jī)越來(lái)越“瘦”,而服務(wù)器越來(lái)越“胖”

是將來(lái)信息化發(fā)展的主流方向。今后,軟件升級(jí)和維護(hù)會(huì)越來(lái)越容易,而

使用起來(lái)會(huì)越來(lái)越簡(jiǎn)單,這對(duì)用戶人力、物力、時(shí)間、費(fèi)用的節(jié)省是顯而

易見(jiàn)的,驚人的。因此,維護(hù)和升級(jí)革命的方式是“瘦”客戶機(jī),“胖”

服務(wù)器。

(2)、成本降低,選擇更多。大家都知道windows在桌面電腦上幾乎

一統(tǒng)天下,瀏覽器成為了標(biāo)準(zhǔn)配置,但在服務(wù)器操作系統(tǒng)上windows并不

是處于絕對(duì)的統(tǒng)治地位。現(xiàn)在的趨勢(shì)是凡使用B/S架構(gòu)的應(yīng)用管理軟件,

只需安裝在Linux服務(wù)器上即可,而且安全性高。所以服務(wù)器操作系統(tǒng)的

選擇是很多的,不管選用那種操作系統(tǒng)都可以讓大部分人使用windows作

為桌面操作系統(tǒng)電腦不受影響,這就使的最流行免費(fèi)的Linux操作系統(tǒng)快

速發(fā)展起來(lái),Linux除了操作系統(tǒng)是免費(fèi)的以外,連數(shù)據(jù)庫(kù)也是免費(fèi)的,

這種選擇非常盛行。

(3)、應(yīng)用服務(wù)器運(yùn)行數(shù)據(jù)負(fù)荷較重。由于B/S架構(gòu)管理軟件只安裝

在服務(wù)器端(Server)上,網(wǎng)絡(luò)管理人員只需要管理服務(wù)器就行了,用戶

界面主要事務(wù)邏輯在服務(wù)器(Server)端完全通過(guò)WWW瀏覽器實(shí)現(xiàn),極少

部分事務(wù)邏輯在前端(Browser)實(shí)現(xiàn),所有的客戶端只有瀏覽器,網(wǎng)絡(luò)

管理人員只需要做硬件維護(hù)。但是,應(yīng)用服務(wù)器運(yùn)行數(shù)據(jù)負(fù)荷較重,一旦

發(fā)生服務(wù)器“崩潰”等問(wèn)題,后果不堪設(shè)想。因此,許多單位都備有數(shù)據(jù)

庫(kù)存儲(chǔ)服務(wù)器,以防萬(wàn)一。

1.12下一代軟件架構(gòu)——SOA

/CSDN_document/archive/2004/10/29/15831

1.aspx

Web服務(wù)的特點(diǎn)

?強(qiáng)自治:Web服務(wù)是可重用的軟件模塊。

?松耦合:只需要很簡(jiǎn)單的協(xié)調(diào),并允許更自由的配置。

?粗粒度:一個(gè)Web服務(wù)就是一個(gè)自包含的“小程序;完成單個(gè)的

任務(wù)。

一?。開(kāi)放性:Web服務(wù)所有公共協(xié)約完全使用開(kāi)放的標(biāo)準(zhǔn)協(xié)議進(jìn)行

描述、傳輸和交換。

?可集成:屏蔽了不同軟件平臺(tái)的差異。

Web服務(wù)作為炙手可熱的技術(shù),如何應(yīng)用到企業(yè)的IT系統(tǒng)和商業(yè)流程

之中、并給企業(yè)帶來(lái)直接的經(jīng)濟(jì)效益,一直備受?chē)?guó)內(nèi)外企業(yè)管理者的高度

關(guān)注和推崇。而在近兩年,出現(xiàn)了一種技術(shù)架構(gòu)被譽(yù)為下一代Web服務(wù)的

基礎(chǔ)架構(gòu),它就是SOA(Service-orientedarchitecture,面向服務(wù)架構(gòu))。

1996年,Gartner最早提出SOA。2002年12月,Gartner提出SOA是"現(xiàn)

代應(yīng)用開(kāi)發(fā)領(lǐng)域最重要的課題”,還預(yù)計(jì)到2008年,SOA將成為占有絕對(duì)

優(yōu)勢(shì)的軟件工程實(shí)踐方法,主流企業(yè)現(xiàn)在就應(yīng)該在理解和應(yīng)用SOA開(kāi)發(fā)技

能方面進(jìn)行投資。

更好支持商業(yè)流程

SOA并不是一個(gè)新事物,IT組織已經(jīng)成功建立并實(shí)施S0A應(yīng)用軟件很

多年了,BEA、IBM、等廠商看到了它的價(jià)值,紛紛跟進(jìn)。S0A的目標(biāo)在于

讓IT變得更有彈性,以更快地響應(yīng)業(yè)務(wù)單位的需求,實(shí)現(xiàn)實(shí)時(shí)企業(yè)

(Real-TimeEnterprise,這是Gartner為SOA描述的愿景目標(biāo))。而B(niǎo)EA

的CIORhonda早在2001年6月就提出要將BEA的IT基礎(chǔ)架構(gòu)轉(zhuǎn)變?yōu)镾OA,

并且從對(duì)整個(gè)企業(yè)架構(gòu)的控制能力、提升開(kāi)發(fā)效率、加快開(kāi)發(fā)速度、降低

在客戶化和人員技能的投入等方面取得了不錯(cuò)的成績(jī)。

SOA是在計(jì)算環(huán)境下設(shè)計(jì)、開(kāi)發(fā)、應(yīng)用、管理分散的邏輯(服務(wù))單

元的一種規(guī)范。這個(gè)定義決定了SOA的廣泛性。SOA要求開(kāi)發(fā)者從服務(wù)集

成的角度來(lái)設(shè)計(jì)應(yīng)用軟件,即使這么做的利益不會(huì)馬上顯現(xiàn)。SOA要求開(kāi)

發(fā)者超越應(yīng)用軟件來(lái)思考,并考慮復(fù)用現(xiàn)有的服務(wù),或者檢查如何讓服務(wù)

被重復(fù)利用。SOA鼓勵(lì)使用可替代的技術(shù)和方法(例如消息機(jī)制),通過(guò)把

服務(wù)聯(lián)系在一起而非編寫(xiě)新代碼來(lái)構(gòu)架應(yīng)用。經(jīng)過(guò)適當(dāng)構(gòu)架后,這種消息

機(jī)制的應(yīng)用允許公司僅通過(guò)調(diào)整原有服務(wù)模式而非被迫進(jìn)行大規(guī)模新的

應(yīng)用代碼的開(kāi)發(fā),使得在商業(yè)環(huán)境許可的時(shí)間內(nèi)對(duì)變化的市場(chǎng)條件做出快

速的響應(yīng)。

SOA也不僅僅是一種開(kāi)發(fā)的方法論一一它還包含管理。例如,應(yīng)用SOA

后,管理者可以方便的管理這些搭建在服務(wù)平臺(tái)上的企業(yè)應(yīng)用,而不是管

理單一的應(yīng)用模塊。其原理是,通過(guò)分析服務(wù)之間的相互調(diào)用,SOA使得

公司管理人員方便的拿到什么時(shí)候、什么原因、哪些商業(yè)邏輯被執(zhí)行的數(shù)

據(jù)信息,這樣就幫助了企業(yè)管理人員或應(yīng)用架構(gòu)師迭代地優(yōu)化他們的企業(yè)

業(yè)務(wù)流程、應(yīng)用系統(tǒng)。

SOA的一個(gè)中心思想就是使得企業(yè)應(yīng)用擺脫面向技術(shù)的解決方案的束

縛,輕松應(yīng)對(duì)企業(yè)商業(yè)服務(wù)變化、發(fā)展的需要。[11]企業(yè)環(huán)境中單個(gè)應(yīng)

用程序是無(wú)法包容業(yè)務(wù)用戶的(各種)需求的,即使是一個(gè)大型的ERP解

決方案,仍然不能滿足這個(gè)需求在不斷膨脹、變化的缺口,對(duì)市場(chǎng)快速做

出反應(yīng),商業(yè)用戶只能通過(guò)不斷開(kāi)發(fā)新應(yīng)用、擴(kuò)展現(xiàn)有應(yīng)用程序來(lái)艱難的

支撐其現(xiàn)有的業(yè)務(wù)需求。通過(guò)將注意力放在服務(wù)上,應(yīng)用程序能夠集中起

來(lái)提供更加豐富、目的性更強(qiáng)的商業(yè)流程。其結(jié)果就是,基于SOA的企業(yè)

應(yīng)用系統(tǒng)通常會(huì)更加真實(shí)地反映出與業(yè)務(wù)模型的結(jié)合。服務(wù)是從業(yè)務(wù)流程

的角度來(lái)看待技術(shù)的一一這是從上向下看的。這種角度同一般的從可用技

術(shù)所驅(qū)動(dòng)的商業(yè)視角是相反的。服務(wù)的優(yōu)勢(shì)很清楚:它們會(huì)同業(yè)務(wù)流程結(jié)

合在一起,因此能夠更加精確地表示業(yè)務(wù)模型、更好地支持業(yè)務(wù)流程。相

反我們可以看到以應(yīng)用程序?yàn)橹行牡钠髽I(yè)應(yīng)用模型迫使業(yè)務(wù)用戶將其能

力局限為應(yīng)用程序的能力。

企業(yè)流程(enterpriseprocess)是流經(jīng)企業(yè)框架的空氣,它賦予業(yè)

務(wù)模型里的組件以生命,并更加清晰地定義了它們之間的關(guān)系。流程定義

了同業(yè)務(wù)模型進(jìn)行交互操作的專(zhuān)門(mén)方法。例如,會(huì)計(jì)可能是企業(yè)服務(wù)系統(tǒng)

的一個(gè)組件一一但是將發(fā)票寄給客戶卻是一個(gè)業(yè)務(wù)流程。服務(wù)被定義用來(lái)

支持業(yè)務(wù)流程,因而貫穿整個(gè)流程始終的是:各種服務(wù)組件在流程和邏輯

實(shí)現(xiàn)過(guò)程中的裝配操作。理解業(yè)務(wù)流程是定制服務(wù)的關(guān)鍵所在。

有利于企業(yè)業(yè)務(wù)的集成

傳統(tǒng)的應(yīng)用集成方法(點(diǎn)對(duì)點(diǎn)集成、企業(yè)消息總線或中間件的集成

(EAI)、基于業(yè)務(wù)流程的集成)都很復(fù)雜、昂貴,并且不靈活。這些集成

方法難于快速適應(yīng)基于企業(yè)現(xiàn)代業(yè)務(wù)變化不斷產(chǎn)生的需求?;诿嫦蚍?wù)

架構(gòu)(SOA)的應(yīng)用開(kāi)發(fā)和集成可以很好的解決其中的許多問(wèn)題。

SOA描述了一套完善的開(kāi)發(fā)模式來(lái)幫助客戶端應(yīng)用連接到服務(wù)上。這

些模式定制了系列機(jī)制用于描述服務(wù)、通知及發(fā)現(xiàn)服務(wù)、與服務(wù)進(jìn)行通信。

不同于傳統(tǒng)的應(yīng)用集成方法,在SOA中,圍繞服務(wù)的所有模式都是

以基于標(biāo)準(zhǔn)的技術(shù)實(shí)現(xiàn)的。大部分的通信中間件系統(tǒng),如即C、CORBA、

DCOM、EJB和RMI,也同樣如此。可是它們的實(shí)現(xiàn)都不是很完美的,在權(quán)

衡交互性以及標(biāo)準(zhǔn)定制的可接受性方面總是存在問(wèn)題。SOA試圖排除這些

缺陷。因?yàn)閹缀跛械耐ㄐ胖虚g件系統(tǒng)都有固定的處理模式,如RPC的功

能、CORBA的對(duì)象等等。然而,服務(wù)既可以定義為功能,又可同時(shí)對(duì)外定

義為對(duì)象、應(yīng)用等等。這使得SOA可適應(yīng)于任何現(xiàn)有系統(tǒng),并使得系統(tǒng)

在集成時(shí)不必刻意遵循任何特殊定制。

SOA幫助企業(yè)信息系統(tǒng)遷移到“l(fā)eave-and-layer”架構(gòu)之上,這意

DT+工FlI/玄①/th力攵:3卜附不+日卞玄也可對(duì)外提供Web服

務(wù)

]的應(yīng)用層做了一層

可以將系統(tǒng)和應(yīng)用迅

轉(zhuǎn)

立用和遺留系統(tǒng)中的

IT架構(gòu)中的功能和

據(jù)

數(shù)

以務(wù)架構(gòu)中添加功能,

所1

\世業(yè)務(wù)部門(mén)設(shè)計(jì)開(kāi)發(fā)

見(jiàn)圖。與傳統(tǒng)的企業(yè)

應(yīng)用順務(wù),并包括過(guò)程/

數(shù)據(jù)內(nèi)集成點(diǎn)。服務(wù)的編

排和

圖示:使用基于服務(wù)集成的企業(yè)應(yīng)用

SOA服務(wù)粒度

可以按基于服務(wù)的功能及發(fā)送和接收的數(shù)據(jù)數(shù)量來(lái)定義服務(wù),如細(xì)粒

度服務(wù)、粗粒度服務(wù)或組合服務(wù)。

在SOA中服務(wù)粒度有兩種相關(guān)的意思:服務(wù)是如何實(shí)現(xiàn)的,服務(wù)使

用和返回了多少數(shù)據(jù)或多少消息。細(xì)粒度服務(wù)執(zhí)行了最小的功能,發(fā)送和

接收少量的數(shù)據(jù)。粗粒度服務(wù)執(zhí)行了較大的業(yè)務(wù)功能,并交換了更多的數(shù)

據(jù)。

細(xì)粒度服務(wù)是供粗粒度服務(wù)或組合服務(wù)使用的,而不是由終端應(yīng)用直

接使用的。如果應(yīng)用是使用細(xì)粒度服務(wù)建立的,則應(yīng)用將不得不調(diào)用網(wǎng)絡(luò)

上多個(gè)服務(wù),并且發(fā)生在每個(gè)服務(wù)上的數(shù)據(jù)量較少,因而會(huì)對(duì)對(duì)系統(tǒng)整體

性帶來(lái)影響。所以粗粒度服務(wù)的用戶不能直接調(diào)用他所使用的細(xì)粒度服

M

CR

據(jù)

圖?。悍?wù)粒度

通過(guò)一組有效設(shè)計(jì)和組合的粗粒度服務(wù),業(yè)務(wù)專(zhuān)家就能夠有效地組合

出新的業(yè)務(wù)流程和應(yīng)用程序了。

SOA與Web服務(wù)

SOA不是一定需要Web服務(wù)來(lái)實(shí)現(xiàn),并且一個(gè)基于Web服務(wù)開(kāi)發(fā)出

來(lái)的應(yīng)用也不代表就是一個(gè)基于SOA構(gòu)架應(yīng)用。Web服務(wù)只是服務(wù)實(shí)現(xiàn)

的一個(gè)典型,是實(shí)現(xiàn)企業(yè)SOA的一個(gè)組件(非必需組件)。SOA為基于服

務(wù)的分布式系統(tǒng)提供了概念上的設(shè)計(jì)模式。Web服務(wù)則是基于標(biāo)準(zhǔn)的、可

經(jīng)濟(jì)實(shí)惠地實(shí)現(xiàn)SOA的一項(xiàng)技術(shù)。[12]

SOA將IT資源透過(guò)服務(wù)這樣一個(gè)在業(yè)務(wù)上有重要涵義的概念來(lái)提供、

共享,把IT與業(yè)務(wù)的距離更加拉近了一步。服務(wù)在涉及的層次上要比組

件、函數(shù)、流程等更高,而且往往在業(yè)務(wù)上可以找到與之直接對(duì)應(yīng)的概念

或?qū)嶓w,例如報(bào)價(jià)、訂單。服務(wù)打破了IT系統(tǒng)間的藩籬,就像一家公司

的各個(gè)部門(mén),平常各自扮演特定對(duì)內(nèi)或?qū)ν夥?wù)的角色,但彼此間如果能

有效地通過(guò)共通的語(yǔ)言及文字,進(jìn)行良好的溝通,便能協(xié)力達(dá)成更大、更

局的目標(biāo)。

隨著SOA和Web服務(wù)的潮流,帶來(lái)了組合式應(yīng)用(composite

application)的開(kāi)發(fā)方式和觀念,開(kāi)始逐漸被大量應(yīng)用在Portal(門(mén)戶)

和Integration(集成)上。組合式Portal的做法,就是通過(guò)Portal界

面所提供的應(yīng)用,往往不是真的在Portal服務(wù)器上執(zhí)行,而是將Web服

務(wù)即時(shí)抓過(guò)來(lái),再加以呈現(xiàn),同時(shí)匯總給Portal的使用者。在整合方面

也是采用組合式的方式。通過(guò)高級(jí)工具來(lái)設(shè)定,使系統(tǒng)得以靈活地配合任

務(wù)的調(diào)整,對(duì)各項(xiàng)以Web服務(wù)方式提供的服務(wù)進(jìn)行不同形式的串聯(lián)和協(xié)作,

同時(shí)快速地加以部署。2004年3月,BEA發(fā)布了一個(gè)企業(yè)門(mén)戶合理化

(enterpriseportalrationalization,EPR)戰(zhàn)略,這個(gè)戰(zhàn)略用來(lái)平衡

BEAWebLogicPlatform的SOA能力,憑借最好的行業(yè)實(shí)踐和行業(yè)專(zhuān)家,

幫助客戶解決多年來(lái)形成的散亂的portal和Web應(yīng)用程序開(kāi)發(fā)。

如果說(shuō)Web服務(wù)等技術(shù)是SOA的血肉,那么正確的服務(wù)設(shè)計(jì)理念及系

統(tǒng)運(yùn)行平臺(tái)則是SOA的靈魂。SOA試圖讓IT能更快和業(yè)務(wù)同步,在規(guī)劃上

以提供彈性的業(yè)務(wù)服務(wù)為目標(biāo)。從CIO到負(fù)責(zé)規(guī)劃的系統(tǒng)分析人員,需要

和業(yè)務(wù)單位、策略伙伴間有充分的溝通。CIO必須認(rèn)識(shí)到,SOA的建立將

是一個(gè)為期數(shù)年的承諾,基礎(chǔ)建設(shè)需要按部就班地進(jìn)行,資助的模式也必

須在IT和各個(gè)業(yè)務(wù)部門(mén)間建立,來(lái)陸續(xù)支援基礎(chǔ)建設(shè)及各項(xiàng)業(yè)務(wù)服務(wù)的

開(kāi)發(fā)。

在中間件領(lǐng)域,SOA架構(gòu)日益成為中間件軟件供應(yīng)商爭(zhēng)奪的新焦點(diǎn)。

誰(shuí)都希望自己能夠先于競(jìng)爭(zhēng)對(duì)手提供最優(yōu)的SOA技術(shù)實(shí)現(xiàn)平臺(tái),BEA也不

例外。從技術(shù)上來(lái)說(shuō),Web服務(wù)、組件技術(shù)的采用將有助于SOA的進(jìn)一步

普及,從業(yè)務(wù)上來(lái)說(shuō),企業(yè)用戶要求性價(jià)比更高的應(yīng)用系統(tǒng),SOA恰恰適

應(yīng)了這樣的趨勢(shì)。

1.13RIA富互聯(lián)網(wǎng)應(yīng)用

/view/706341.htm?fr=alaO_l_l

什么是RIA?

RIA(RichInternetApplications)富互聯(lián)網(wǎng)應(yīng)用,是一種富客

戶端開(kāi)發(fā)技術(shù),它結(jié)合了C/S客戶端的強(qiáng)大功能和B/S結(jié)構(gòu)的低成本

高效率的優(yōu)點(diǎn)。具有高度互動(dòng)性、豐富用戶體驗(yàn)以及功能強(qiáng)大的客戶

端,屬于客戶端呈現(xiàn)技術(shù)。

1.13.1RIA的優(yōu)勢(shì)

RIA具有的桌面應(yīng)用程序的特點(diǎn)包括:在消息確認(rèn)和格式編排方

面提供互動(dòng)用戶界面;在無(wú)刷新頁(yè)面之下提供快捷的界面響應(yīng)時(shí)間;

提供通用的用戶界面特性如拖放式(draganddrop)以及在線和離線

操作能力。RIA具有的Web應(yīng)用程序的特點(diǎn)包括如:立即部署、跨平

臺(tái)、采用逐步下載來(lái)檢索內(nèi)容和數(shù)據(jù)以及可以充分利用被廣泛采納的

互聯(lián)網(wǎng)標(biāo)準(zhǔn)。RIA具有通信的特點(diǎn)則包括實(shí)時(shí)互動(dòng)的聲音和圖像。

客戶機(jī)在RIA中的作用不僅是展示頁(yè)面,它可以在幕后與用戶請(qǐng)

求異步地進(jìn)行計(jì)算、傳送和檢索數(shù)據(jù)、顯示集成的用戶界面和綜合使

用聲音和圖像,這一切都可以在不依靠客戶機(jī)連接的服務(wù)器或后端的

情況下進(jìn)行。

對(duì)于企業(yè)來(lái)說(shuō),部署RIA的好處在于:

1)RIA可以繼續(xù)使用現(xiàn)有的應(yīng)用程序模型(包括J2EE和.NET),

因而無(wú)需大規(guī)模替換現(xiàn)有的Web應(yīng)用程序。通過(guò)RichClient技術(shù),

可以輕松構(gòu)建更為直觀、易于使用、反應(yīng)更迅速并且可以脫機(jī)使用的

應(yīng)用程序。

2)RIA可以幫助企業(yè)提供多元化的重要業(yè)務(wù)效益,包括提高銷(xiāo)量、

提高品牌忠誠(chéng)度、延長(zhǎng)網(wǎng)站逗留時(shí)間、較頻繁的重復(fù)訪問(wèn)、減少帶寬

成本、減少支持求助以及增強(qiáng)客戶關(guān)系等。

L13.2發(fā)展態(tài)勢(shì)

在過(guò)去的兩到三年中,Web開(kāi)發(fā)人員一直是想構(gòu)建一種比傳統(tǒng)HT

ML更豐富的客戶端:這是一個(gè)用戶接口,它比用HTML能實(shí)現(xiàn)的接口

更加健壯、反應(yīng)更加靈敏和更具有令人感興趣的可視化特性。RIA技

術(shù)的出現(xiàn)允許我們?cè)谝蛱鼐W(wǎng)上以一種像使用Web一樣簡(jiǎn)單的方式來(lái)部

署富客戶端程序。無(wú)論將來(lái)RIA是否能夠如人們所猜測(cè)的那樣完全代

替HTML應(yīng)用系統(tǒng),對(duì)于那些采用C/S架構(gòu)的胖客戶端技術(shù)運(yùn)行復(fù)雜應(yīng)

用系統(tǒng)的機(jī)構(gòu)和采用基于B/S架構(gòu)的瘦客戶端技術(shù)部署Web應(yīng)用系統(tǒng)

地機(jī)構(gòu)來(lái)說(shuō),RIA確實(shí)提供了一種廉價(jià)的選擇。下面介紹一下目前出

現(xiàn)的幾種比較有實(shí)力或者有特點(diǎn)的RIA客戶端開(kāi)發(fā)技術(shù):

1)!MacromediaFlash/Flex

Flash從6.0開(kāi)始Flash就逐步具備建立窗體風(fēng)格的應(yīng)用程序的

功能。據(jù)Macromedia稱(chēng)已經(jīng)有98%以上的桌面系統(tǒng)的瀏覽器都安裝

了MacromediaFlashPlayero這使得以MacromediaFlashPlayer

為客戶端的RIA可以支持種類(lèi)廣泛的平臺(tái)和設(shè)備。

Flex是為滿足希望開(kāi)發(fā)RIA的企業(yè)級(jí)程序員的需求而推出的表

示服務(wù)器和應(yīng)用程序框架,它可以運(yùn)行于J2EE和.NET平臺(tái)。Flex表

示服務(wù)器提供基于標(biāo)準(zhǔn)的、聲明性的編程方法和流程,并提供運(yùn)行時(shí)

服務(wù),用于開(kāi)發(fā)和部署豐富客戶端應(yīng)用程序的表示層。Flex開(kāi)發(fā)者使

用直觀的基于XML的MXML來(lái)定義豐富的用戶界面。該語(yǔ)言由Flex服

務(wù)器翻譯成SWF格式的客戶端應(yīng)用程序,在FlashPlayer中運(yùn)行。

2)!Laszlo

Laszlo是一個(gè)開(kāi)源的RIA開(kāi)發(fā)環(huán)境。使用Laszlo平臺(tái)時(shí),開(kāi)發(fā)

者只需編寫(xiě)名為L(zhǎng)ZX的描述語(yǔ)言(其中整合了XML和Javascript),

運(yùn)行在J2EE應(yīng)用服務(wù)器上的Laszlo平臺(tái)會(huì)將其編譯成SWF格式的文

件并傳輸給客戶端展示。從這點(diǎn)上來(lái)說(shuō),Laszlo的本質(zhì)和Flex是一

樣的。Flash是任何瀏覽器都支持的展示形式,從而一舉解決了瀏覽

器之間的移植問(wèn)題。而且,在未來(lái)的計(jì)劃中,Laszlo還可以將LZX編

譯成Java或.NET本地代碼,從而大大提高運(yùn)行效率。(Red5使用)

3)Avalon

Microsoft的Avalon是下一版本的Windows(代號(hào)"Longhorn")

的一部分,是一個(gè)圖形和展示引擎,主要由新加到.NET框架中的一組

類(lèi)集合而成。Avalon定義了一個(gè)在Longhorn中使用的新標(biāo)記語(yǔ)言,

其代號(hào)為“XAML〃(可擴(kuò)展應(yīng)用程序標(biāo)記語(yǔ)言)??梢允褂肵AML來(lái)定義

文本、圖像和控件的布局,程序代碼可以直接嵌入到XAML中,也可以

將它保留在一個(gè)單獨(dú)的文件內(nèi)。這與Flex中的MXML或者Laszlo中的

LZX非常相似。不同的是:基于Avalon的應(yīng)用程序必須運(yùn)行在Longh

orn環(huán)境中,而Flex和Laszlo是不依賴(lài)于平臺(tái)的,僅僅需要裝有F1

ash播放器的瀏覽器即可。

4)!JavaSWT

Java已經(jīng)出現(xiàn)幾年了,并且完全支持創(chuàng)建基于窗體的用戶界面。

除了Java基礎(chǔ)類(lèi)(JFC/Swing)中的用戶界面組件之外,開(kāi)發(fā)人員還

可以使用來(lái)自于EclipseProject的SWT工具箱和許多第三方工具箱

進(jìn)行開(kāi)發(fā)。對(duì)于圖形來(lái)說(shuō),可以采用Java2DAPI:一個(gè)非常完整且

非常復(fù)雜的圖形API。你可以通過(guò)一個(gè)Web瀏覽器使用Java插件軟件,

或使用Java運(yùn)行時(shí)環(huán)境中較新的JavaWebStart技術(shù)來(lái)部署應(yīng)用程

序。使用Java建立RichClient的主要缺陷是它的復(fù)雜性(即使對(duì)簡(jiǎn)

單的窗體㈣圖形也要求編寫(xiě)非常煩瑣的代碼)和Java瀏覽器插件的低

市場(chǎng)占有率。

5)XUL

XUL(念作"zool")是一種基于XML的用戶界面語(yǔ)言,它來(lái)自于

Mozilla的開(kāi)放源碼項(xiàng)目。它可用于建立窗體應(yīng)用程序,這些應(yīng)用程

序不但可以在Mozilla瀏覽器上運(yùn)行,而且也可以運(yùn)行在其他描述引

擎上,如Zulu(一個(gè)FlashMX組件)和Thinleys(一個(gè)Java實(shí)現(xiàn))。

XUL描述引擎都非常小(100K以下),它可以使用XML數(shù)據(jù)也可以生成

XML數(shù)據(jù)。XUL的一個(gè)主要缺點(diǎn)在于它目前還沒(méi)有獲得一個(gè)主要商業(yè)實(shí)

體的支持。XUL最大的優(yōu)點(diǎn)在于它與Gecko引擎的集成(打開(kāi)了通向

大量Web標(biāo)準(zhǔn)的大門(mén)),以及與大多數(shù)其它XML用戶界面描述語(yǔ)言相比

它是一種非常具有表達(dá)力和簡(jiǎn)潔的語(yǔ)言。

6)Bindows

Bindow是用Javascript和DHTML開(kāi)發(fā)的Web窗體框架。Javasc

ript用于客戶端界面的顯示和處理,XMLHTTP用于客戶端與服務(wù)器的

信息傳輸。Javascript在客戶端的表現(xiàn)力不容置疑,利用Javascrip

t幾乎可以實(shí)現(xiàn)Windows應(yīng)用程序所能干的大部分事情,XMLHTTP—

直以來(lái)常被用于實(shí)現(xiàn)“無(wú)刷新〃的Web頁(yè)面,它和Javascript配合,

可以完成數(shù)據(jù)從服務(wù)器和客戶端的傳輸。Bindows的一個(gè)主要的缺點(diǎn)

是它采用一次全部載入的方式來(lái)實(shí)現(xiàn)腳本庫(kù),在窗口的加載期,需要

一個(gè)漫長(zhǎng)的等待過(guò)程,甚至瀏覽器的進(jìn)程會(huì)產(chǎn)生無(wú)響應(yīng)的情況。這點(diǎn)

Bindows根本沒(méi)有遵循〃用多少去多少〃的準(zhǔn)則。另外,內(nèi)部大量利用

了IE6的技術(shù),沒(méi)有考慮到非IE的瀏覽器,限制了Bindows的流行。

7)!JavaFX

2008年12月05日Sun微系統(tǒng)公司今天正式發(fā)布了基于Java語(yǔ)

言的平臺(tái)JavaFXlo0,這個(gè)平臺(tái)建立在其廣泛應(yīng)用的Java編程語(yǔ)言

的基礎(chǔ)上,旨在建立大量可在電腦和手機(jī)上運(yùn)行的網(wǎng)絡(luò)程序。Java

一直以來(lái)就是編程語(yǔ)言,但是隨著JavaFX的發(fā)布,Sun公司開(kāi)始允許

將編程內(nèi)容創(chuàng)新這一任務(wù)轉(zhuǎn)移到以設(shè)計(jì)藝術(shù)為重點(diǎn)而非編程科學(xué)為重

點(diǎn)的設(shè)計(jì)人員身上。

/我們的目標(biāo)群體是叫做創(chuàng)造者的人群';Sun公司Java平臺(tái)組的

高級(jí)副主任OctavianTanase對(duì)InternetN說(shuō),"隨著1.0版的

發(fā)布,我們將目標(biāo)鎖定在網(wǎng)頁(yè)開(kāi)發(fā)人員,這群可能拓展Java界面體驗(yàn)

的人。到2011年,主要的目標(biāo)是大量使用諸如Adobe系統(tǒng)等設(shè)計(jì)工具

的設(shè)計(jì)人員:

當(dāng)然,通向這個(gè)以設(shè)計(jì)為導(dǎo)向的工具還需要一些時(shí)間。Sun公司

最后打算提供自己的程序給設(shè)計(jì)人員來(lái)建立RIAS,但是直到如今,這

些設(shè)計(jì)人員還得使用程序員所使用的Netbeans或Eclipse集成開(kāi)發(fā)環(huán)

境(IDE)。新工具將在來(lái)年夏天面市。

8)Curl

Curl誕生于1995年的美國(guó),Curl是由美國(guó)國(guó)防部高級(jí)研究項(xiàng)目

代理資助,馬薩諸塞州科技學(xué)院的DavidA.Kranz開(kāi)發(fā)的Web開(kāi)發(fā)語(yǔ)

言,HTML語(yǔ)言的創(chuàng)建者TimBerners-Lee也參與其中,并扮演了重

要的角色。

該語(yǔ)言的目標(biāo)是用一種統(tǒng)一的面向?qū)ο蟮恼Z(yǔ)言代替HTML、Cascad

ingStyleSheets,JavaScript等;僅使用Curl便可開(kāi)發(fā)出Web應(yīng)

用的各種軟件;Curl程序在瀏覽器中運(yùn)行,并且因?yàn)樗灶?lèi)似JRE的

形式提供了客戶端運(yùn)行環(huán)境SurgeRTE,能夠輕松開(kāi)發(fā)出日益流行的R

ichClient應(yīng)用程序。

Curl是為了實(shí)現(xiàn)富客戶端(richclient)應(yīng)運(yùn)而生的Web開(kāi)發(fā)

語(yǔ)言,僅僅從其外觀的豐富性上就能體現(xiàn)其富客戶端理念。

為了實(shí)現(xiàn)真正有益的富客戶端,它能有效地實(shí)現(xiàn)各種復(fù)雜處理,

具備提供高信賴(lài)、高擴(kuò)展性、高維護(hù)性的應(yīng)用程序所應(yīng)擁有的各種編

碼能力。其擁有在Web環(huán)境上便利的分配、管理以及低廉的維護(hù)費(fèi)以

及在C/S環(huán)境上的用戶便利性、迅速的應(yīng)答,華麗的圖像顯示等重多

優(yōu)點(diǎn)于一身。

Curl語(yǔ)言于2002年在美國(guó)正式開(kāi)始商業(yè)化,在美國(guó)和日本擁有

重多的客戶和合作伙伴,現(xiàn)已進(jìn)軍北美及韓國(guó)市場(chǎng),發(fā)展勢(shì)頭迅猛。

9)!SilverLight

微軟在Mix07上發(fā)布一些重大通告,其中最值得關(guān)注的就是Silv

erLight的發(fā)布,SilverLight的前身就是WPF/E技術(shù)。

這是一種新的Web呈現(xiàn)技術(shù)的名稱(chēng),創(chuàng)建該技術(shù)的目的是使其能

夠在各種平臺(tái)上運(yùn)行。該技術(shù)支持創(chuàng)建豐富的、具有絢麗視覺(jué)效果的

交互式體驗(yàn),并且可以隨處實(shí)現(xiàn):無(wú)論是在瀏覽器內(nèi)、在多個(gè)設(shè)備上

還是在桌面操作系統(tǒng)(如AppleMacintosh)中??蓴U(kuò)展應(yīng)用程序標(biāo)

記語(yǔ)言(XAML)遵循Windows演示基礎(chǔ)(WPF),前者是“WPF/E”呈現(xiàn)

功能的基礎(chǔ)。XAML是Microsoft.NETFramework3.0(Windows編

程基礎(chǔ)結(jié)構(gòu))中的呈現(xiàn)技術(shù)。

1.13.3RIA未來(lái)的發(fā)展預(yù)測(cè)

就目前RIA的使用情況來(lái)說(shuō),離〃RIA時(shí)代〃還有很遠(yuǎn)的一段距離。

今后幾年時(shí)間內(nèi)傳統(tǒng)的Web應(yīng)用程序和RIA將會(huì)共存。筆者認(rèn)為真正

具有實(shí)力擔(dān)當(dāng)起普及豐富客戶端應(yīng)用重任的只有基于FlashPlayer

的Flash/Flex應(yīng)用程序和Microsoft的基于Avalon的應(yīng)用程序。短

期時(shí)間內(nèi)(估計(jì)2-3年時(shí)間)可能是Flash/Flex應(yīng)用程序在新興的

網(wǎng)絡(luò)應(yīng)用程序市場(chǎng)上占有主導(dǎo)地位。

目前Microsoft還在推廣一種叫做SmartClient(智能客戶端)

的客戶端程序技術(shù),Microsoft稱(chēng)SmartClient是比RichClient更

優(yōu)秀的客戶端,因而采用SmartClient的應(yīng)用程序算不算RIA目前我

個(gè)人還無(wú)法作答。這里我們之所以提及SmartClient,是因?yàn)镾mart

Client的特性跟我們談的RichClient有太多的相似之處。SmartCl

ient擁有自動(dòng)更新、離線狀態(tài)下的數(shù)據(jù)處理和可以使用本地資源等特

征,其中的可使用本地資源這一項(xiàng)無(wú)疑是一大賣(mài)點(diǎn),因?yàn)闉g覽器中的

Flash/Flex應(yīng)用程序目前還無(wú)法操作本地的一些資源,比如Flash/F

lex應(yīng)用程序無(wú)法將網(wǎng)上的文件保存到本地或者修改本地文件。雖然

Macromedia的Centrail.5已經(jīng)可以對(duì)本地文件進(jìn)行簡(jiǎn)單的操作,并

且Flexl.5開(kāi)發(fā)的RIA也能夠運(yùn)行于Central上,但是如何使Centra

1能夠得到大范圍推廣還是個(gè)問(wèn)題。相對(duì)于輕量級(jí)的RichClient,S

martClient更接近C/S架構(gòu)中的客戶端程序°RichClient和Smart

Client的定位還是有所區(qū)別的:RichClient更適合作為輕量級(jí)的基

于瀏覽器的網(wǎng)絡(luò)應(yīng)用程序客戶端;SmartClient更適合作為Windows

桌面應(yīng)用程序的智能客戶端。

不管我們今天稱(chēng)之為的RIA今后會(huì)不會(huì)成為主流應(yīng)用程序,人們

對(duì)開(kāi)發(fā)具有高度互動(dòng)性、豐富用戶體驗(yàn)以及功能強(qiáng)大的客戶端的追求

是不變的。有理由相信,擁有成熟技術(shù)和極高市場(chǎng)占有率的Flash客

戶端將會(huì)在RIA道路上越走越遠(yuǎn)。Microsoft未來(lái)的重量級(jí)武器:Ava

Ion和SmartClient能否后來(lái)者居上讓我們拭目以待。

L14MVC設(shè)計(jì)模型(體系)

/ANALYZE/200712291011101306.htm

http:〃作者:林善茂來(lái)源:賽迪網(wǎng)2007年12月

29日

1前言

用戶界面,特別是圖形用戶界面,承擔(dān)著向用戶顯示問(wèn)題模型和與用

戶進(jìn)行操作和I/O交互的作用。用戶希望保持交互操作界面的相對(duì)穩(wěn)定,

但更希望根據(jù)需要改變和調(diào)整顯示的內(nèi)容和形式。例如,要求支持不同的

界面標(biāo)準(zhǔn)或得到不同的顯示效果,適應(yīng)不同的操作需求。這就要求界面結(jié)

構(gòu)能夠在不改變軟件的功能和模型情況下,支持用戶對(duì)界面構(gòu)成的調(diào)整。

要做到這一點(diǎn),從界面構(gòu)成的角度看,困難在于:在滿足對(duì)界面要求

的同時(shí),如何使軟件的計(jì)算模型獨(dú)立于界面的構(gòu)成。模型-視圖-控制(MVC:

Model-View-ControIler)就是這樣的一種交互界面的結(jié)構(gòu)組織模型。

2MVC(Model-View-Control)

MVC由TrygveReenskaug提出,首先被應(yīng)用在SmallTalk-80環(huán)境中,

是許多交互和界面系統(tǒng)的構(gòu)成基礎(chǔ),Microsoft的MFC基礎(chǔ)類(lèi)也遵循了MVC

的思想。

對(duì)于界面設(shè)計(jì)可變性的需求,MVC把交互系統(tǒng)的組成分解成模型、視

圖、控制三種部件。

模型部件是軟件所處理問(wèn)題邏輯在獨(dú)立于外在顯示內(nèi)容和形式情況

下的內(nèi)在抽象,封裝了問(wèn)題的核心數(shù)據(jù)、邏輯和功能的計(jì)算關(guān)系,他獨(dú)立

于具體的界面表達(dá)和I/。操作。

視圖部件把表示模型數(shù)據(jù)及邏輯關(guān)系和狀態(tài)的信息及特定形式展示

給用戶。它從模型獲得顯示信息,對(duì)于相同的信息可以有多個(gè)不同的顯示

形式或視圖。

控制部件是處理用戶與軟件的交互操作的,其職責(zé)是控制提供模型中

任何變化的傳播,確保用戶界面于模型間的對(duì)應(yīng)聯(lián)系;它接受用戶的輸入,

將輸入反饋給模型,進(jìn)而實(shí)現(xiàn)對(duì)模型的計(jì)算控制,是使模型和視圖協(xié)調(diào)工

作的部件。通常一個(gè)視圖具有一個(gè)控制器。

模型、視圖與控制器的分離,使得一個(gè)模型可以具有多個(gè)顯示視圖。

匚口出IQQZUTTTK4?注:rnI占、殺h+FP二匚七?士才rrFMT/么"「些

欖型類(lèi)視圖類(lèi)

數(shù)據(jù)結(jié)構(gòu)和關(guān)系制小形式

狀太

程圖和控■,器的注圖大系顯示模式控器模

內(nèi)部政求和1E林ilR從模型狹打數(shù)據(jù)控控

向ft!圖和捽制器通然故抵登化膽留小》HM1控制現(xiàn)圖如斯

圖IYYC中的模型、視圖和控制類(lèi)

(1)模型包含了應(yīng)用問(wèn)題的核心數(shù)據(jù)、邏輯關(guān)系和計(jì)算功能,它封

裝了所需的數(shù)據(jù),提供了完成問(wèn)題處理的操作過(guò)程??刂破饕罁?jù)I/O的需

要調(diào)用這些操作過(guò)程。模型還為視圖獲取顯示數(shù)據(jù)而提供了訪問(wèn)其數(shù)據(jù)的

操作。

務(wù)種變化-傳播機(jī)制體現(xiàn)在各個(gè)相互依賴(lài)部件之間的注冊(cè)關(guān)系上。模

型數(shù)據(jù)和狀態(tài)的變化會(huì)激發(fā)這種變化-傳播機(jī)制,它是模型、視圖和控制

器之間聯(lián)系的紐帶。

(2)視圖通過(guò)顯示的形式,把信息轉(zhuǎn)達(dá)給用戶。不同視圖通過(guò)不同

的顯示,來(lái)表達(dá)模型的數(shù)據(jù)和狀態(tài)信息。每個(gè)視圖有一個(gè)更新操作,它可

被變化-傳播機(jī)制所激活。當(dāng)調(diào)用更新操作時(shí),視圖獲得來(lái)自模型的數(shù)據(jù)

值,并用它們來(lái)更新顯示。

在初始化時(shí),通過(guò)與變化-傳播機(jī)制的注冊(cè)關(guān)系建立起所有視圖與模

圖2MVC的實(shí)現(xiàn)過(guò)程

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論