版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、,第1章 軟件開(kāi)發(fā)方法(三)軟件開(kāi)發(fā)技術(shù),計(jì)算機(jī)教學(xué)實(shí)驗(yàn)中心,第2|46頁(yè),問(wèn)題的提出,什么是軟件復(fù)用?構(gòu)件、中間件?什么是CORBA、DOM和JEB?什么是C/S?B/S?C/S和B/S的區(qū)別?……,第3|46頁(yè),1.了解目前主要的軟件開(kāi)發(fā)技術(shù)2.了解構(gòu)件技術(shù)3.了解軟件復(fù)用技術(shù)4.了解CORBA、DCOM和J2EE技術(shù)5.了解C/S和B/S技術(shù)及開(kāi)發(fā)基礎(chǔ),第4|46頁(yè),軟件工程技術(shù),構(gòu)件技術(shù)軟件復(fù)用技術(shù)C/S技
2、術(shù)B/S技術(shù),第5|46頁(yè),1.3.1構(gòu)件技術(shù),軟件產(chǎn)業(yè)和軟件工程技術(shù)正面臨著新的挑戰(zhàn)。而傳統(tǒng)的軟件設(shè)計(jì)思想根本無(wú)法應(yīng)對(duì)。在這一背景下,構(gòu)件技術(shù)應(yīng)運(yùn)而生。構(gòu)件技術(shù)是基于OO技術(shù)上的更高級(jí)的抽象。它把底層的對(duì)象集合打成包,組成功能“插件”?;跇?gòu)件技術(shù)的軟件生產(chǎn)就是把已存在的構(gòu)件組裝(集成)到當(dāng)前軟件系統(tǒng)的框架結(jié)構(gòu)中,從而生產(chǎn)出新的軟件產(chǎn)品。可以預(yù)見(jiàn),構(gòu)件技術(shù)是軟件產(chǎn)業(yè)化革命的必然發(fā)展趨勢(shì)。,第6|46頁(yè),構(gòu)件技術(shù)概述,OO技術(shù)
3、是在“數(shù)據(jù)十算法”的基礎(chǔ)上提升了對(duì)事物的認(rèn)識(shí)方法。而構(gòu)件技術(shù)則在“對(duì)象+算法”的基礎(chǔ)上將認(rèn)識(shí)事物的角度從對(duì)象個(gè)體本身提升到個(gè)體在群體中的作用。從抽象程度來(lái)看,OO技術(shù)已達(dá)到了類級(jí)重用(以類為封裝單位);而構(gòu)件技術(shù)是對(duì)一組類的組合進(jìn)行封裝,可以將底層的多個(gè)邏輯組合成高層次上的粒度更大的新構(gòu)件,甚至直接封裝到一個(gè)系統(tǒng),使模塊的重用從代碼級(jí)、對(duì)象級(jí)、架構(gòu)級(jí)到系統(tǒng)級(jí)都可能實(shí)現(xiàn)。顯然,構(gòu)件技術(shù)將抽象的程度提到了一個(gè)更高的層次。,第7|46頁(yè),
4、實(shí)現(xiàn)構(gòu)件技術(shù)的必備條件,有標(biāo)準(zhǔn)軟件體系結(jié)構(gòu),保證構(gòu)件間通信協(xié)議統(tǒng)一,實(shí)現(xiàn)同步和異步操作控制,突破本地空間限制,充分利用網(wǎng)絡(luò)環(huán)境。構(gòu)件有標(biāo)準(zhǔn)接口,保證系統(tǒng)可分解成多個(gè)功能獨(dú)立的單元,用構(gòu)件組裝而成。構(gòu)件獨(dú)立于編程語(yǔ)言。構(gòu)件提供版本兼容,來(lái)實(shí)現(xiàn)應(yīng)用系統(tǒng)的擴(kuò)展和更新。,第8|46頁(yè),構(gòu)件設(shè)計(jì),構(gòu)件依賴于平臺(tái)環(huán)境,所以設(shè)計(jì)時(shí)有特殊要求:⑴ 以接口為核心,使用開(kāi)放標(biāo)準(zhǔn)。 ⑵ 構(gòu)件語(yǔ)義的描述要形式化。⑶ 提煉封裝構(gòu)件過(guò)程要嚴(yán)格記錄。
5、⑷ 設(shè)計(jì)模式可以重用。⑸ 利用開(kāi)發(fā)工具。,例如,開(kāi)放標(biāo)準(zhǔn)有:CORBA、DCOM、EJB等。,例如,Jbuilder、EJBMaker等。,優(yōu)點(diǎn);代碼、設(shè)計(jì)、解決方案都能重用。,要保證第三方用戶能正確地理解、使用構(gòu)件。,如EJB中有會(huì)話Bean和實(shí)體Bean事務(wù)描述符等。,第9|46頁(yè),中間件,構(gòu)件是依賴于平臺(tái)環(huán)境的。那么在分布式異構(gòu)環(huán)境中如何應(yīng)用構(gòu)件呢?中間件就是基于跨環(huán)境的構(gòu)件應(yīng)用而發(fā)展起來(lái)的。中間件是介于應(yīng)用層和網(wǎng)絡(luò)層之
6、間的一個(gè)功能層次,是使應(yīng)用系統(tǒng)獨(dú)立于由異構(gòu)操作環(huán)境(操作系統(tǒng)、硬件平臺(tái)及通信協(xié)議等)組成的開(kāi)發(fā)環(huán)境。中間件擴(kuò)展了客戶/服務(wù)器結(jié)構(gòu),形成了一個(gè)包括客戶、中間件和服務(wù)器在內(nèi)的三層次結(jié)構(gòu)及多層次結(jié)構(gòu),為開(kāi)發(fā)可靠的、可擴(kuò)展的、復(fù)雜的事物密集型應(yīng)用提供了有力的支持。,第10|46頁(yè),構(gòu)件和中間件,中間件是構(gòu)件技術(shù)的一種實(shí)現(xiàn),是構(gòu)件存在的基礎(chǔ),它的本質(zhì)是對(duì)分布式應(yīng)用的抽象,應(yīng)用是在中間件提供的環(huán)境中以構(gòu)件的形式存在。中間件將應(yīng)用構(gòu)件與系統(tǒng)資源隔
7、離,使得構(gòu)件開(kāi)發(fā)者不用考慮下層的系統(tǒng)平臺(tái)。中間件提供了構(gòu)件封裝、構(gòu)件交互規(guī)則、構(gòu)件與環(huán)境隔離等機(jī)制,為軟件重用提供了解決方案。中間件可實(shí)現(xiàn)互操作。,第11|46頁(yè),中間件分類,① 基于遠(yuǎn)程過(guò)程調(diào)用RPC(Remote Procedure Call)中間件 被調(diào)用的對(duì)象可以在分布系統(tǒng)中的任何物理平臺(tái)上。SunSoft的ONC+屬于這種中間件。② 面向消息的中間件 支持基于消息機(jī)制的進(jìn)程間通信方式。例如,SunSoft的T
8、oolTalk。③ 基于對(duì)象請(qǐng)求代理ORB(Object Request Brokers)中間件 消息通過(guò)ORB進(jìn)行路由選擇,ORB同時(shí)處理集成和安全方面問(wèn)題。如Microsoft的COM、OMG的CORBA等。④ 數(shù)據(jù)庫(kù)中間件 支持對(duì)異構(gòu)的關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)的透明訪問(wèn)。例如Sybase的Open Server、Oracle的SQL Connect等。,第12|46頁(yè),J2EE技術(shù)簡(jiǎn)介,Java平臺(tái)的第一個(gè)參考實(shí)現(xiàn)是 JDK
9、(Java Development Kit),但JDK不支持服務(wù)器端構(gòu)件開(kāi)發(fā)。為提供服務(wù)器端的企業(yè)級(jí)服務(wù),Sun公司開(kāi)發(fā)了一些Enterprise API。 Sun公司提出了三個(gè)不同的Java平臺(tái):J2ME(Java 2 Platform,Micro Edition) 可用于Java設(shè)備(如呼機(jī)、手表等)的開(kāi)發(fā)平臺(tái)。J2SE(Java 2 Platform,Standard Edition) 支持標(biāo)準(zhǔn)JDK編程,包含基本
10、的Java語(yǔ)言支持、JFC庫(kù)及其對(duì)applet和application的支持。J2EE(Java 2 Platform,Enterprise Edition) 一個(gè)基于Java的完整企業(yè)級(jí)應(yīng)用開(kāi)發(fā)平臺(tái),它與Java Enterprise API有機(jī)地結(jié)合、適合服務(wù)器端構(gòu)件體系結(jié)構(gòu)的開(kāi)發(fā)。,第13|46頁(yè),J2EE的核心技術(shù),EJB(J2EE規(guī)約中最重要的部分) RMI-IIOPJava 名字及目錄接口JNDI
11、數(shù)據(jù)庫(kù)訪問(wèn)接口JDBC消息服務(wù)JMSJava Server Papes(JSP)Java 接口定義語(yǔ)言IDLJava Mail,基于Java的電子郵件API。,,通過(guò)建立遠(yuǎn)程接口支持Java和CORBA應(yīng)用通信。,用于編寫(xiě)動(dòng)態(tài)網(wǎng)頁(yè)。,與消息驅(qū)動(dòng)的中間件進(jìn)行通信的API。,實(shí)現(xiàn)跨平臺(tái)訪問(wèn)各種DB。,EJB提供了使客戶端使用遠(yuǎn)程分布式對(duì)象的框架,規(guī)定了EJB構(gòu)件如何與EJB容器進(jìn)行交互等服務(wù)。,用于實(shí)現(xiàn)Java和CORBA應(yīng)用
12、之間互操作。,是客戶端代碼連接EJB構(gòu)件必需的關(guān)鍵技術(shù)。,第14|46頁(yè),J2EE的核心技術(shù)示意圖,,第15|46頁(yè),COM+技術(shù)簡(jiǎn)介,,COM(構(gòu)件對(duì)象模型)是Microsoft提出的第一個(gè)構(gòu)件模型。起源于OLE(對(duì)象連接和嵌入),OLE使用DDE(動(dòng)態(tài)數(shù)據(jù)交換)機(jī)制來(lái)支持程序間通信,由于DDE穩(wěn)定性和效率很差,由此誕生了COM。,第16|46頁(yè),Windows DNA,為了使Windows真正成為企業(yè)應(yīng)用平臺(tái),Microsof公司又
13、推出了Windows DNA(分布式互聯(lián)網(wǎng)應(yīng)用體系結(jié)構(gòu))。它是一個(gè)完整的、多層的新一代企業(yè)應(yīng)用體系結(jié)構(gòu)及服務(wù)器端的開(kāi)發(fā)平臺(tái),它包含以下主要產(chǎn)品:Windows NT/2000:DCOM:支持分布式構(gòu)件的核心技術(shù)。MSMQ:消息隊(duì)列產(chǎn)品,支持構(gòu)件間的異步通信。MTS:管理構(gòu)件的應(yīng)用服務(wù)器。Microsoft Wolfpack:支持集群服務(wù)器的軟件。Microsoft SQL Server:一種關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)。Micro
14、soft IIS:Web服務(wù)器。Microsoft Management Console:部署和管理工具。,第17|46頁(yè),COM+,為了把COM、DCOM和MTS統(tǒng)一起來(lái),形成真正適合于企業(yè)級(jí)應(yīng)用的構(gòu)件技術(shù),誕生了COM+。COM+是一種中間件技術(shù)的規(guī)約,其要點(diǎn)是提供建立在操作系統(tǒng)上的、支持分布式企業(yè)級(jí)應(yīng)用的“服務(wù)”。COM+與Windows DNA一起,使得用戶可以采用Microsoft公司的技術(shù)開(kāi)發(fā)服務(wù)器端的構(gòu)件。COM+的
15、核心是改進(jìn)的COM/DCOM和MTS的集成,但是COM+增加了一些非常重要的構(gòu)件服務(wù),比如負(fù)載平衡、駐留內(nèi)存數(shù)據(jù)庫(kù)、事件模型、隊(duì)列服務(wù)等。,第18|46頁(yè),COM+主要特點(diǎn),真正的異步通信。COM+底層提供了隊(duì)列構(gòu)件服務(wù),允許客戶和構(gòu)件進(jìn)行異步通信。事件服務(wù)。新事件機(jī)制利用系統(tǒng)服務(wù)簡(jiǎn)化了事件模型,避免了COM可連接對(duì)象機(jī)制的瑣碎細(xì)節(jié),使事件源和事件接收方實(shí)現(xiàn)事件功能更加靈活。靈活性。動(dòng)態(tài)負(fù)載平衡以及駐留內(nèi)存數(shù)據(jù)庫(kù)、對(duì)象池等系統(tǒng)服務(wù)為
16、COM+的靈活性提供了技術(shù)基礎(chǔ)。可管理和可部署性易于開(kāi)發(fā),COM+以前的COM構(gòu)件開(kāi)發(fā)更為簡(jiǎn)化。,支持應(yīng)用系統(tǒng)在開(kāi)發(fā)完成后的管理和部署。,第19|46頁(yè),COM+的基本結(jié)構(gòu),,第20|46頁(yè),CORBA技術(shù)簡(jiǎn)介,CORBA(Common Object Request Broker Architecture,公共對(duì)象請(qǐng)求代理體系結(jié)構(gòu))是OMG制定的、體系結(jié)構(gòu)最完整、最清晰、跨越平臺(tái)最多的分布對(duì)象模型。通過(guò)CORBA接口定義語(yǔ)言IDL
17、 定義接口,使用不同編程語(yǔ)言、不同編譯器實(shí)現(xiàn)的構(gòu)件,可以通過(guò)對(duì)象請(qǐng)求代理ORB進(jìn)行連接,形成一個(gè)跨平臺(tái)的應(yīng)用。CORBA一般有兩層意思:一是指對(duì)象管理組織OMG提出的分布式對(duì)象體系結(jié)構(gòu)標(biāo)準(zhǔn);另一層意思是按這種體系結(jié)構(gòu)開(kāi)發(fā)的中間件產(chǎn)品。CORBA作為一種應(yīng)用級(jí)的互聯(lián)標(biāo)準(zhǔn)得到了廣泛的認(rèn)同和應(yīng)用。CORBA是一套規(guī)約,而不是一個(gè)產(chǎn)品,開(kāi)發(fā)商可以開(kāi)發(fā)不同的產(chǎn)品來(lái)實(shí)現(xiàn) CORBA規(guī)約。例如,IBM公司的ComponentBroker等。,第2
18、1|46頁(yè),1.3.2 軟件復(fù)用技術(shù),軟件復(fù)用是指在軟件開(kāi)發(fā)過(guò)程中重復(fù)使用相同或相似軟件元素的過(guò)程。軟件復(fù)用是在軟件開(kāi)發(fā)中避免重復(fù)勞動(dòng)的解決方案,它使得應(yīng)用系統(tǒng)的開(kāi)發(fā)不再采用一切從零開(kāi)始的模式,而是以已有的工作模式為基礎(chǔ),充分利用過(guò)去應(yīng)用系統(tǒng)開(kāi)發(fā)中積累的知識(shí)和經(jīng)驗(yàn),從而將開(kāi)發(fā)的重點(diǎn)集中于應(yīng)用的特有構(gòu)成成分。為了能夠在軟件開(kāi)發(fā)過(guò)程中重用已有的復(fù)用件,必須不斷地進(jìn)行復(fù)用件的積累,并將它們組織成復(fù)用件庫(kù)。因此,軟件復(fù)用不僅要解決如何檢索所需
19、的復(fù)用件,還要解決如何選取復(fù)用件、如何組織復(fù)用件庫(kù)等問(wèn)題。這類項(xiàng)目通常稱為軟件復(fù)用項(xiàng)目。軟件重用過(guò)程可借助于支持軟件重用的CASE工具,其主要任務(wù)是:用某種組織結(jié)構(gòu)實(shí)現(xiàn)復(fù)用件庫(kù)的存儲(chǔ),提供友好的人機(jī)界面,幫助用戶瀏覽、檢索和修改復(fù)用件庫(kù),并且對(duì)用戶感興趣的復(fù)用件進(jìn)行解釋。,第22|46頁(yè),軟件復(fù)用方式分類,⑴ 依據(jù)復(fù)用的對(duì)象分類;可以分為:產(chǎn)品復(fù)用指復(fù)用已有的軟件構(gòu)件,通過(guò)構(gòu)件集成得到新系統(tǒng)。產(chǎn)品復(fù)用是目前現(xiàn)實(shí)的、主流的途徑。過(guò)程
20、復(fù)用指復(fù)用已有的軟件開(kāi)發(fā)過(guò)程,過(guò)程復(fù)用依賴于軟件自動(dòng)化技術(shù)的發(fā)展。⑵ 依據(jù)對(duì)可復(fù)用信息進(jìn)行復(fù)用的方式分類,可分為:白盒復(fù)用 指已有構(gòu)件并不能完全符合用戶要求,需要根據(jù)用戶需求進(jìn)行適應(yīng)性修改后才能使用。黑盒復(fù)用 指對(duì)已有構(gòu)件不需作任何修改,通過(guò)構(gòu)件組裝的方式直接進(jìn)行復(fù)用。這是目前的研究熱點(diǎn),也是將來(lái)的發(fā)展趨勢(shì)。,第23|46頁(yè),可復(fù)用的復(fù)用件,Caper Jones定義了可候選的十種復(fù)用件:⑴ 項(xiàng)目計(jì)劃:計(jì)劃的基本結(jié)構(gòu)和內(nèi)容(如,
21、SQA計(jì)劃)。⑵ 成本估計(jì):有可能復(fù)用對(duì)某個(gè)功能的成本估計(jì)。⑶ 體系結(jié)構(gòu):可能創(chuàng)建一組類屬的體系結(jié)構(gòu)模板(例如,事務(wù)處理體系結(jié)構(gòu)),并將模板作為可復(fù)用的設(shè)計(jì)框架。⑷ 需求模型和規(guī)約:類和對(duì)象的模型和規(guī)約是可復(fù)用的,用傳統(tǒng)軟件工程方法開(kāi)發(fā)的分析模型(例如,數(shù)據(jù)流圖)也是可復(fù)用的。⑸ 設(shè)計(jì):用傳統(tǒng)方法開(kāi)發(fā)的體系結(jié)構(gòu)、數(shù)據(jù)、接口和過(guò)程化設(shè)計(jì)是復(fù)用的候選者,更常見(jiàn)的是,系統(tǒng)和對(duì)象設(shè)計(jì)是可復(fù)用的。⑹ 源代碼:驗(yàn)證過(guò)的程序構(gòu)件(用兼容的程
22、序設(shè)計(jì)語(yǔ)言書(shū)寫(xiě)的)。⑺ 用戶和技術(shù)文檔:對(duì)特定的不同應(yīng)用,可復(fù)用大部分用戶和技術(shù)文檔。⑻ 用戶界面:可能是最廣泛被復(fù)用的(例如GUI)。⑼ 數(shù)據(jù):包括:內(nèi)部表、列表和記錄結(jié)構(gòu),以及文件和完整的數(shù)據(jù)庫(kù)。⑽ 測(cè)試用例:一旦設(shè)計(jì)或代碼構(gòu)件將被復(fù)用,相關(guān)的測(cè)試用例也可復(fù)用。,第24|46頁(yè),軟件復(fù)用面臨的問(wèn)題,⑴ 管理問(wèn)題。沒(méi)有相應(yīng)的鼓勵(lì)機(jī)制等。⑵ 復(fù)用的障礙。⑶ 技術(shù)方面的問(wèn)題⑷ 法律問(wèn)題顯然,很多其他相關(guān)問(wèn)題對(duì)復(fù)用也有影響,
23、政治的、文化的、財(cái)政的、市場(chǎng)的、以及產(chǎn)品化等方面的問(wèn)題也必須考慮。,第25|46頁(yè),復(fù)用的障礙,自負(fù);太多的開(kāi)發(fā)人員認(rèn)為不是他們親自編寫(xiě)的程序不可能是好程序;檢索問(wèn)題。如何從龐大的復(fù)用件庫(kù)中所需要的復(fù)用件;幾乎沒(méi)有相應(yīng)的復(fù)用培訓(xùn);復(fù)用代價(jià)昂貴。有人估計(jì),僅使一個(gè)構(gòu)件可復(fù)用,就將至少增加60%的成本;雖然存在軟件復(fù)用的CASE工具或構(gòu)件,但大多數(shù)軟件開(kāi)發(fā)者并不使用它們;經(jīng)濟(jì)利益方面。一些開(kāi)發(fā)人員盡力避免編寫(xiě)那些太通用的例程,唯恐
24、使自己失業(yè)。,第26|46頁(yè),技術(shù)方面的問(wèn)題,采用軟件復(fù)用可以降低開(kāi)發(fā)成本,但如果其原件存在的某些問(wèn)題代碼,可能會(huì)導(dǎo)致其他采用該代碼的系統(tǒng)具有相同的問(wèn)題代碼;這種情況稱之為繼承性缺陷。因此當(dāng)原件的問(wèn)題代碼被修改后,往往無(wú)法自動(dòng)更新實(shí)用軟件中相應(yīng)的代碼;最終導(dǎo)致實(shí)用軟件中的問(wèn)題代碼依舊存在。這種非但沒(méi)有降低開(kāi)發(fā)成本,反而增加維護(hù)消耗的復(fù)用技術(shù)顯然是失敗的。,第27|46頁(yè),法律問(wèn)題,合同軟件帶來(lái)的法律問(wèn)題。有些軟件合同規(guī)定軟件產(chǎn)品是屬
25、于客戶的。因此,當(dāng)軟件開(kāi)發(fā)人員為另一個(gè)客戶開(kāi)發(fā)一個(gè)新產(chǎn)品時(shí),如果他復(fù)用了另一個(gè)客戶產(chǎn)品中的一個(gè)構(gòu)件,在本質(zhì)上是侵犯第一個(gè)客戶的版權(quán)。,第28|46頁(yè),1.3.3 C/S技術(shù),客戶機(jī)/服務(wù)器系統(tǒng)也稱C/S(Client/Server)系統(tǒng),它是基于局域網(wǎng)/廣域網(wǎng)的系統(tǒng)。在C/S中存在著服務(wù)器和客戶端。為了充分利用客戶機(jī)的計(jì)算能力,計(jì)算和事務(wù)處理在服務(wù)器和客戶機(jī)之間分配。服務(wù)器承擔(dān)數(shù)據(jù)的集中管理、通信和客戶管理的任務(wù),因?yàn)閿?shù)據(jù)在服務(wù)
26、器端,對(duì)數(shù)據(jù)的處理和計(jì)算都在服務(wù)器端執(zhí)行。而人機(jī)界面和一些需要實(shí)時(shí)響應(yīng)的事件或人機(jī)交互的處理等在客戶端進(jìn)行,這些程序都運(yùn)行在客戶端。C/S系統(tǒng)往往需要數(shù)據(jù)庫(kù)服務(wù)器。,第29|46頁(yè),C/S系統(tǒng)體系結(jié)構(gòu)特征,計(jì)算和處理分布在服務(wù)器和客戶機(jī)之間。數(shù)據(jù)管理集中在服務(wù)器端。軟件駐留在服務(wù)器和客戶機(jī)。,第30|46頁(yè),C/S應(yīng)用系統(tǒng)的特征,分布數(shù)據(jù)。出于安全性和負(fù)載平衡的考慮,數(shù)據(jù)庫(kù)可以分布在多個(gè)數(shù)據(jù)庫(kù)服務(wù)器上。分布過(guò)程。不同的過(guò)程(事
27、務(wù)處理、數(shù)據(jù)庫(kù)連接等)可以在不同服務(wù)器上進(jìn)行??蛻魹橹行摹0研枰诳蛻舳藞?zhí)行的程序和定制的程序放在客戶端,以使客戶快速得到響應(yīng)。把對(duì)數(shù)據(jù)進(jìn)行處理的過(guò)程放在數(shù)據(jù)庫(kù)服務(wù)器端,以加快數(shù)據(jù)處理速度。異構(gòu)硬件和軟件。在C/S體系結(jié)構(gòu)中很容易加入多層結(jié)構(gòu),屏蔽不同的硬件和軟件。例如,加入應(yīng)用服務(wù)器可以基于不同的操作系統(tǒng)和計(jì)算機(jī)主機(jī),同樣客戶端安裝的中間件可以基于不同的客戶端系統(tǒng),例如,Linux,Windows。,第31|46頁(yè),C/S技術(shù)目標(biāo)
28、,集成處理資源。把客戶和服務(wù)器端的處理能力集成。降低開(kāi)發(fā)資源要求。在客戶端和服務(wù)器端運(yùn)行的程序分別存放,使得程序調(diào)試方便,開(kāi)發(fā)比較簡(jiǎn)單,所需資源也減少。降低硬件和軟件的要求。在 C/S系統(tǒng)中,客戶機(jī)既有部分處理能力,價(jià)格相對(duì)較低,可以降低系統(tǒng)軟硬件成本。降低系統(tǒng)維護(hù)成本。在服務(wù)器端的處理和計(jì)算程序只需在服務(wù)器端維護(hù),與客戶機(jī)無(wú)關(guān),而客戶端程序比較簡(jiǎn)單,所以系統(tǒng)維護(hù)較方便,成本較低。可擴(kuò)充能力強(qiáng)。C/S應(yīng)用容易擴(kuò)充,只要C/S聯(lián)入
29、網(wǎng)絡(luò)即可。,第32|46頁(yè),C/S系統(tǒng)構(gòu)成,C/S結(jié)構(gòu)發(fā)展經(jīng)歷了兩個(gè)階段:兩層結(jié)構(gòu)和三(多)層結(jié)構(gòu)。,第33|46頁(yè),兩層結(jié)構(gòu)C/S系統(tǒng),第一層是客戶端軟件。由應(yīng)用程序和相應(yīng)的數(shù)據(jù)庫(kù)鏈接程序組成,企業(yè)的業(yè)務(wù)過(guò)程都在程序中表現(xiàn)。第二層包括數(shù)據(jù)庫(kù)服務(wù)器。根據(jù)客戶端軟件的請(qǐng)求進(jìn)行數(shù)據(jù)庫(kù)操作,然后將結(jié)果傳送給客戶端軟件。導(dǎo)致“肥胖”客戶機(jī)。兩層應(yīng)用軟件的開(kāi)發(fā)工作主要集中在客戶端,使得客戶機(jī)要管理復(fù)雜的軟件。缺點(diǎn):不能進(jìn)行有效擴(kuò)展,使這些系
30、統(tǒng)不能支持大量用戶的訪問(wèn)和高容量事務(wù)處理的應(yīng)用。,第34|46頁(yè),三(多)層結(jié)構(gòu)C/S系統(tǒng),客戶機(jī)上只安裝具有用戶界面和簡(jiǎn)單的數(shù)據(jù)處理功能的應(yīng)用程序,負(fù)責(zé)處理與用戶的交互和與應(yīng)用服務(wù)器的交互。而將商業(yè)和應(yīng)用邏輯的處理功能移到中間層——應(yīng)用服務(wù)器上。應(yīng)用服務(wù)器負(fù)責(zé)處理商業(yè)和應(yīng)用邏輯,接受客戶端應(yīng)用程序的請(qǐng)求,然后根據(jù)商業(yè)和應(yīng)用邏輯將這個(gè)請(qǐng)求轉(zhuǎn)化為數(shù)據(jù)庫(kù)請(qǐng)求后與數(shù)據(jù)庫(kù)服務(wù)器交互,并將與數(shù)據(jù)庫(kù)服務(wù)器交互的結(jié)果傳送給客戶端應(yīng)用程序。數(shù)據(jù)庫(kù)服
31、務(wù)器軟件根據(jù)應(yīng)用服務(wù)器發(fā)送的請(qǐng)求進(jìn)行數(shù)據(jù)庫(kù)操作,并將操作的結(jié)果傳送給應(yīng)用服務(wù)器。,第35|46頁(yè),三層C/S結(jié)構(gòu)優(yōu)點(diǎn),整個(gè)系統(tǒng)被分成不同的邏輯塊,層次清晰,一層的改動(dòng)不會(huì)影響其他層次;能夠使“肥胖”的客戶機(jī)變“瘦”;開(kāi)發(fā)和管理工作向服務(wù)器端轉(zhuǎn)移,使得分布的數(shù)據(jù)處理成為可能;管理和維護(hù)變得相對(duì)簡(jiǎn)單。,第36|46頁(yè),C/S結(jié)構(gòu)的局限性,第一,C/S結(jié)構(gòu)的計(jì)算能力過(guò)于分散,網(wǎng)絡(luò)中服務(wù)器和客戶機(jī)的數(shù)目正發(fā)生“細(xì)胞”分裂,使得系統(tǒng)的管理費(fèi)
32、用以幾何級(jí)數(shù)的方式增長(zhǎng)。第二,C/S結(jié)構(gòu)中數(shù)據(jù)庫(kù)信息的使用只限于局域網(wǎng)的范圍內(nèi),無(wú)法利用Internet的網(wǎng)絡(luò)資源。第三,在C/S結(jié)構(gòu)中,無(wú)論多小的企業(yè)都必須安裝自己的服務(wù)器,而服務(wù)器和服務(wù)器軟件的管理和維護(hù)都是非常復(fù)雜的工作,需要專門(mén)人員負(fù)責(zé),小企業(yè)往往無(wú)力購(gòu)買高性能的服務(wù)器和聘用專門(mén)人員。因此,C/S結(jié)構(gòu)不利于小企業(yè)計(jì)算機(jī)應(yīng)用的發(fā)展。,第37|46頁(yè),應(yīng)用子系統(tǒng)設(shè)計(jì)的指導(dǎo)原則,⑴ 表示/交互子系統(tǒng)通常放置在客戶端?;趫D形界面的
33、應(yīng)用及程序駐留在客戶端,這可快速響應(yīng)用戶的交互請(qǐng)求。尤其是在實(shí)現(xiàn)圖形圖像等復(fù)雜應(yīng)用時(shí),對(duì)于需要與本地資源(如調(diào)用本地磁盤(pán)文件等)進(jìn)行交互性的操作,更是需要駐留在客戶端的程序。這樣做還可以降低網(wǎng)絡(luò)流量。⑵ 如果需要多個(gè)客戶共享數(shù)據(jù),則數(shù)據(jù)庫(kù)及數(shù)據(jù)庫(kù)管理系統(tǒng)應(yīng)該放在服務(wù)器端。⑶ 對(duì)DB進(jìn)行操作的存儲(chǔ)過(guò)程放在DB服務(wù)器上。對(duì)數(shù)據(jù)庫(kù)進(jìn)行插入、更新、刪除的存儲(chǔ)過(guò)程或觸發(fā)器程序最好放在相應(yīng)的DB服務(wù)器上,以減少DB連接、網(wǎng)絡(luò)傳輸?shù)臅r(shí)間消耗,降低
34、DB連接過(guò)載發(fā)生的可能性。⑷ 用于引用的靜態(tài)數(shù)據(jù)應(yīng)該分配到客戶端。把數(shù)據(jù)存放在需要它的最近地方,不必在網(wǎng)絡(luò)中傳輸,減少服務(wù)器壓力。,第38|46頁(yè),1.3.4 基于Web工程設(shè)計(jì)基礎(chǔ),基于 Web技術(shù)的 Intranet近年來(lái)正受到廣泛的關(guān)注,這種以TCP/IP協(xié)議為基礎(chǔ)、以Web技術(shù)為中心的應(yīng)用正吸引著越來(lái)越多的企業(yè)以更快的速度、更低的費(fèi)用去創(chuàng)建企業(yè)的應(yīng)用系統(tǒng)。Web技術(shù)吸引人的地方是采用超鏈接和多媒體信息。Web服務(wù)器使用HTM
35、L描述網(wǎng)絡(luò)的資源,創(chuàng)建網(wǎng)頁(yè),并以HTML數(shù)據(jù)文件的形式保存,以供Web瀏覽器閱讀。Web 瀏覽器是一個(gè)用于文檔檢索和顯示的客戶應(yīng)用程序,并通過(guò)HTTP協(xié)議與Web服務(wù)器相連。目前,流行的IE和Netscape Navigator除提供基本的文檔檢索、顯示和導(dǎo)航特性外,還支持HTML的高級(jí)顯示以及Active X、Java、JavaScript等特性。,第39|46頁(yè),B/S技術(shù),瀏覽器/服務(wù)器系統(tǒng)也稱B/S(Browser/Serv
36、er)系統(tǒng),它也是基于局域網(wǎng)/廣域網(wǎng)的系統(tǒng)。它的客戶端是標(biāo)準(zhǔn)的瀏覽器(如IE等),服務(wù)器端為標(biāo)準(zhǔn)的Web服務(wù)器,可協(xié)同應(yīng)用服務(wù)器響應(yīng)瀏覽器的請(qǐng)求。B/S是一種三層結(jié)構(gòu)的系統(tǒng):第一層客戶機(jī)是用戶與整個(gè)系統(tǒng)的接口??蛻魬?yīng)用程序就是一個(gè)通用的瀏覽器。第二層是Web服務(wù)器,它負(fù)責(zé)啟動(dòng)相應(yīng)的進(jìn)程來(lái)響應(yīng)處理請(qǐng)求,并動(dòng)態(tài)生成一串嵌入了處理結(jié)果的HTML代碼,并返回給客戶端的瀏覽器。如果客戶機(jī)提交的請(qǐng)求包括數(shù)據(jù)的存取,Web服務(wù)器還需與DB服務(wù)器
37、協(xié)同完成這一處理工作。第三層數(shù)據(jù)庫(kù)服務(wù)器的任務(wù)類似于C/S模式,負(fù)責(zé)協(xié)調(diào)不同的Web服務(wù)器發(fā)出的SQL請(qǐng)求,管理數(shù)據(jù)庫(kù)。,第40|46頁(yè),B/S系統(tǒng)的特點(diǎn),⑴ B/S系統(tǒng)采用B/W/D結(jié)構(gòu)。即客戶端只安裝一個(gè)瀏覽器(Browser)。中間層是Web服務(wù)器。再根據(jù)需要安裝小支持庫(kù),如Java 或VB的DDL以處理特殊應(yīng)用。⑵ B/S結(jié)構(gòu)簡(jiǎn)化了客戶端??蛻魴C(jī)上只需安裝通用的瀏覽器軟件。節(jié)省客戶機(jī)的硬盤(pán)空間與內(nèi)存.⑶ 簡(jiǎn)化了系的開(kāi)發(fā)和維
38、護(hù)。系統(tǒng)的開(kāi)發(fā)者只需把所有的功能都實(shí)現(xiàn)在Web服務(wù)器上,并就不同的功能為各個(gè)組別的用戶設(shè)置權(quán)限就可以了。相對(duì)于C/S模式,B/S的維護(hù)具有更大的靈活性。如果一個(gè)公司有上千臺(tái)客戶機(jī),并且分布在不同的地點(diǎn),那么便于維護(hù)將顯得更加重要。⑷ 用戶操作更簡(jiǎn)單。客戶端只用瀏覽器。不用培訓(xùn)即可使用。⑸ 無(wú)紙辦公,降低成本,提高工作效率。,第41|46頁(yè),B/S系統(tǒng)設(shè)計(jì)要點(diǎn),⑴ 設(shè)計(jì)目標(biāo)。首先要確定目標(biāo)、用戶以及內(nèi)容范圍。包括:信息目標(biāo):向終端用
39、戶提供哪些特定的信息內(nèi)容?應(yīng)用目標(biāo):在網(wǎng)站上完成哪些任務(wù)?用戶目標(biāo):網(wǎng)站的用戶群,他們的背景、愛(ài)好和知識(shí)。商業(yè)目標(biāo):網(wǎng)站靠什么賺錢(qián)?如何實(shí)現(xiàn)商業(yè)目標(biāo)?⑵ 計(jì)劃和分析。內(nèi)容分析:標(biāo)識(shí)要處理的信息、它們相互關(guān)系及信息的層次結(jié)構(gòu)。交互分析:描述交互方式,例如哪些需要用戶提交。功能分析:給出用戶交互界面、定義系統(tǒng)功能等。配置分析:要描述網(wǎng)站的基礎(chǔ)設(shè)施和服務(wù)器環(huán)境。例如它是Internet還是Intranet?是否需要數(shù)據(jù)庫(kù)服務(wù)器
40、?采用什么Web服務(wù)器?客戶端需要配置什么樣的瀏覽器?網(wǎng)站是托管還是租用虛擬服務(wù)器等。在硬件方面需要那些設(shè)備?是否需要防火墻?⑶ 工程、發(fā)布和用戶評(píng)價(jià)。工程即網(wǎng)站的設(shè)計(jì)和開(kāi)發(fā)。發(fā)布包括本地調(diào)試、測(cè)試、建立網(wǎng)站,網(wǎng)站試運(yùn)行。用戶評(píng)價(jià)就是進(jìn)行用戶測(cè)試,最后驗(yàn)收,正式發(fā)布。,第42|46頁(yè),選擇Web服務(wù)器考慮因素,與企業(yè)現(xiàn)有網(wǎng)絡(luò)的配合性;與數(shù)據(jù)庫(kù)服務(wù)器的結(jié)合性;開(kāi)發(fā)Web頁(yè)面的難易程度;安全性;穩(wěn)定性;與企業(yè)現(xiàn)有的系統(tǒng)密切配合。
41、如果現(xiàn)有的企業(yè)網(wǎng)絡(luò)系統(tǒng)是Window NT,則可考慮選擇Microsoft IIS;如果企業(yè)的數(shù)據(jù)庫(kù)是Oracle,那么Oracle WebServer是一個(gè)適當(dāng)?shù)倪x擇。,第43|46頁(yè),B/S 和C/S的比較,近年來(lái),對(duì)于B/S、C/S兩種結(jié)構(gòu)軟件的優(yōu)劣,國(guó)內(nèi)基本已經(jīng)達(dá)成共識(shí),普遍認(rèn)為B/S結(jié)構(gòu)軟件將全面取代C/S結(jié)構(gòu)軟件。下面從技術(shù)特性和商業(yè)特性兩個(gè)方面進(jìn)行比較。,第44|46頁(yè),技術(shù)特性比較,1、數(shù)據(jù)安全性比較由于C/S結(jié)構(gòu)的
42、數(shù)據(jù)分布特性,客戶端的數(shù)據(jù)易攻擊。對(duì)大型企業(yè)的異地軟件應(yīng)用,數(shù)據(jù)要在多個(gè)服務(wù)器之間進(jìn)行數(shù)據(jù)同步,每個(gè)數(shù)據(jù)點(diǎn)上的數(shù)據(jù)安全都影響整個(gè)應(yīng)用的數(shù)據(jù)安全。對(duì)于B/S結(jié)構(gòu)的軟件來(lái)講,由于其數(shù)據(jù)集中存放在數(shù)據(jù)庫(kù)服務(wù)器,客戶端不保存任何業(yè)務(wù)數(shù)據(jù)和數(shù)據(jù)庫(kù)連接信息,安全問(wèn)題好多了。2、數(shù)據(jù)一致性比較在C/S結(jié)構(gòu)的解決方案中,在異地經(jīng)營(yíng)點(diǎn)都采用區(qū)域級(jí)服務(wù)器。由于局部網(wǎng)絡(luò)故障造成個(gè)別數(shù)據(jù)庫(kù)不能同步,或即使可同步,各服務(wù)器數(shù)據(jù)也有時(shí)差,數(shù)據(jù)無(wú)法一致,不能用
43、于決策。對(duì)于B/S結(jié)構(gòu)來(lái)講,其數(shù)據(jù)是集中存放的,客戶端發(fā)生的每一筆業(yè)務(wù)單據(jù)都直接進(jìn)入到中央數(shù)據(jù)庫(kù),不存在數(shù)據(jù)一致性的問(wèn)題。3、數(shù)據(jù)實(shí)時(shí)性比較C/S結(jié)構(gòu)不隨時(shí)隨地看到當(dāng)前業(yè)務(wù)的情況,看到的都是事后數(shù)據(jù);而B(niǎo)/S結(jié)構(gòu)可以實(shí)時(shí)看到當(dāng)前發(fā)生的所有業(yè)務(wù),方便了快速?zèng)Q策,有效地避免了企業(yè)損失。,第45|46頁(yè),技術(shù)特性比較(續(xù)),4、數(shù)據(jù)溯源性比較由于B/S結(jié)構(gòu)的數(shù)據(jù)集中存放,總公司可以直接追溯到各級(jí)分支機(jī)構(gòu)的原始業(yè)務(wù)單據(jù),即結(jié)果可溯源。
44、C/S結(jié)構(gòu)則不同,為了減少數(shù)據(jù)通信量,僅上傳中間報(bào)表數(shù)據(jù),在總部不可能查到各分支機(jī)構(gòu)的原始單據(jù)。5、服務(wù)響應(yīng)及時(shí)性比較對(duì)C/S結(jié)構(gòu)軟件,由于應(yīng)用是分布的,所以即使非常小的更新都需要很長(zhǎng)的重新部署時(shí)間,為保證程序版本的一致性,必須暫停一切業(yè)務(wù)進(jìn)行更新。而B(niǎo)/S結(jié)構(gòu)軟件,如若更新,僅在總部服務(wù)器段操作。6.網(wǎng)絡(luò)應(yīng)用限制比較C/S結(jié)構(gòu)軟件僅適用于局域網(wǎng)內(nèi)部用戶或?qū)拵в脩簦欢鳥(niǎo)/S結(jié)構(gòu)軟件可以適用于任何網(wǎng)絡(luò)結(jié)構(gòu)(包括撥號(hào)入網(wǎng)方式)
45、,特別適于寬帶不能到達(dá)的地方。,第46|46頁(yè),商業(yè)特性比較,1.投入成本比較B/S結(jié)構(gòu)軟件一般只有初期一次性投入成本。而C/S結(jié)構(gòu)軟件則隨著應(yīng)用范圍擴(kuò)大,投資會(huì)連綿不絕。2.硬件投資保護(hù)比較當(dāng)應(yīng)用擴(kuò)大,系統(tǒng)負(fù)載上升時(shí),C/S結(jié)構(gòu)的解決方案是購(gòu)買更高級(jí)的中央服務(wù)器,這是由于C/S軟件的兩層結(jié)構(gòu)造成的,這類軟件的服務(wù)器程序必須部署在一臺(tái)計(jì)算機(jī)上;而B(niǎo)/S結(jié)構(gòu)則不同。隨著服務(wù)器負(fù)載的增加,可通過(guò)增加服務(wù)器數(shù)并在各服務(wù)器之間均衡負(fù)載
46、來(lái)解決。有效地保護(hù)原有硬件投資。3.企業(yè)快速擴(kuò)張支持上的比較對(duì)于C/S結(jié)構(gòu)軟件來(lái)講,由于必須同時(shí)安裝服務(wù)器和客戶端、建設(shè)機(jī)房、招聘專業(yè)管理人員等,所以無(wú)法適應(yīng)企業(yè)快速擴(kuò)張的特點(diǎn)。而B(niǎo)/S結(jié)構(gòu)軟件,只需一次安裝,以后只需設(shè)立賬號(hào)、培訓(xùn)即可。其次,隨著軟件應(yīng)用的擴(kuò)張,對(duì)系統(tǒng)維護(hù)人才的需求有可能成為企業(yè)快速擴(kuò)張的制約瓶頸。如果企業(yè)開(kāi)設(shè)許多站點(diǎn),對(duì)計(jì)算機(jī)專業(yè)人才的需求就將是企業(yè)面臨的巨大挑戰(zhàn)之一。,第47|46頁(yè),歡迎參加計(jì)教中心網(wǎng)站的
溫馨提示
- 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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 軟件開(kāi)發(fā)崗位舉證模板_軟件開(kāi)發(fā)
- 軟件開(kāi)發(fā)崗位舉證模板_資深軟件開(kāi)發(fā)
- 軟件開(kāi)發(fā)崗位舉證模板_助理軟件開(kāi)發(fā)
- 軟件開(kāi)發(fā)崗位舉證模板_高級(jí)軟件開(kāi)發(fā)
- 軟件開(kāi)發(fā)
- 軟件開(kāi)發(fā)設(shè)計(jì)外文翻譯--軟件開(kāi)發(fā)概念和設(shè)計(jì)方法
- 軟件開(kāi)發(fā)技術(shù)手冊(cè)
- 軟件開(kāi)發(fā)技術(shù)基礎(chǔ)
- 軟件開(kāi)發(fā)方法及流程
- 軟件開(kāi)發(fā)模型
- 軟件開(kāi)發(fā)合同
- 軟件開(kāi)發(fā)合同
- 軟件開(kāi)發(fā)規(guī)范
- 軟件開(kāi)發(fā)協(xié)議
- 軟件開(kāi)發(fā)合同
- 軟件開(kāi)發(fā)合同
- 軟件開(kāi)發(fā)合同
- 軟件開(kāi)發(fā)合同
- 軟件開(kāi)發(fā)合同
- 軟件開(kāi)發(fā)協(xié)議
評(píng)論
0/150
提交評(píng)論