基于CS模式的輔助教學(xué)系統(tǒng)_第1頁
基于CS模式的輔助教學(xué)系統(tǒng)_第2頁
基于CS模式的輔助教學(xué)系統(tǒng)_第3頁
基于CS模式的輔助教學(xué)系統(tǒng)_第4頁
基于CS模式的輔助教學(xué)系統(tǒng)_第5頁
已閱讀5頁,還剩77頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、分類號(hào): 單位代碼: 密 級(jí): 學(xué) 號(hào): 碩 士 學(xué) 位 論 文論文題目: 基于C/S模式的輔助教學(xué)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) 作 者 姓 名 專 業(yè) 軟件工程指導(dǎo)教師姓名 專業(yè)技術(shù)職務(wù) 2006年 03 月 1日原創(chuàng)性聲明和關(guān)于論文使用授權(quán)的說明原 創(chuàng) 性 聲 明本人鄭重聲明:所呈交的學(xué)位論文,是本人在導(dǎo)師的指導(dǎo)下,獨(dú)立進(jìn)行研究所取得的成果。除文中已經(jīng)注明引用的內(nèi)容外,本論文不包含任何其他個(gè)人或集體已經(jīng)發(fā)表或撰寫過的科研成果。對(duì)本文的研究做出重要貢獻(xiàn)的個(gè)人和集體,均已在文中以明確方式標(biāo)明。本聲明的法律責(zé)任由本人承擔(dān)。論文作者簽名: 日 期: 關(guān)于學(xué)位論文使用授權(quán)的聲明本人完全了解山東大學(xué)有關(guān)保留、使用

2、學(xué)位論文的規(guī)定,同意學(xué)校保留或向國家有關(guān)部門或機(jī)構(gòu)送交論文的復(fù)印件和電子版,允許論文被查閱和借閱;本人授權(quán)山東大學(xué)可以將本學(xué)位論文的全部或部分內(nèi)容編入有關(guān)數(shù)據(jù)庫進(jìn)行檢索,可以采用影印、縮印或其他復(fù)制手段保存論文和匯編本學(xué)位論文。 (保密論文在解密后應(yīng)遵守此規(guī)定)論文作者簽名: 導(dǎo)師簽名: 日 期: 目 錄目 錄I摘 要IVABSTRACTIV第一章 引言61.1課題背景61.2項(xiàng)目介紹71.3主要工作8第二章 相關(guān)知識(shí)與技術(shù)分析92.1分布式應(yīng)用系統(tǒng)的結(jié)構(gòu)92.1.1客戶機(jī)/服務(wù)器模式92.1.2構(gòu)建多層分布式應(yīng)用系統(tǒng)的方法122.1.3多層結(jié)構(gòu)使用的技術(shù)132.2開發(fā)環(huán)境Delphi簡介16

3、2.2.1 MIDAS技術(shù)162.2.2 Delphi開發(fā)的三層分布式應(yīng)用系統(tǒng)的結(jié)構(gòu)172.2.3 Delphi下三層C/S應(yīng)用程序?qū)崿F(xiàn)的原理192.2.4 MIDAS的應(yīng)用程序工作流程202.2.5有關(guān)組件212.2.6自定義應(yīng)用服務(wù)器222.2.7調(diào)用服務(wù)器上的接口232.3 系統(tǒng)采用的相關(guān)技術(shù)252.3.1遠(yuǎn)程調(diào)用方式252.3.2系統(tǒng)的容錯(cuò)技術(shù)和網(wǎng)絡(luò)負(fù)載平衡技術(shù)252.3.3系統(tǒng)安全性技術(shù)26第三章 網(wǎng)上答疑系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)283.1概述283.2系統(tǒng)的軟件結(jié)構(gòu)設(shè)計(jì)293.3系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)303.4系統(tǒng)主要功能模塊的實(shí)現(xiàn)333.4.1用戶管理模塊333.4.2答疑板模塊333.4.3在

4、線答疑模塊353.5 FAQ查詢算法363.5.1提問與解答內(nèi)容的量化分析363.5.2 FAQ、關(guān)鍵詞及信息提取373.5.3實(shí)例分析393.6系統(tǒng)安全41第四章 網(wǎng)上作業(yè)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)424.1概述424.2系統(tǒng)的軟件結(jié)構(gòu)設(shè)計(jì)424.3系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)434.4作業(yè)處理過程464.5 其他功能模塊504.6防止某些惡意行為的功能51第五章網(wǎng)上考試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)525.1概述525.2系統(tǒng)的軟件結(jié)構(gòu)設(shè)計(jì)535.3系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)545.4學(xué)生考試子系統(tǒng)的實(shí)現(xiàn)585.4.1考試環(huán)境設(shè)計(jì)585.4.2考試流程595.4.3考試時(shí)鐘的設(shè)置與時(shí)間限制605.5教師管理子系統(tǒng)的實(shí)現(xiàn)615.5.1題庫管

5、理模塊615.5.2試卷管理模塊615.5.3自動(dòng)評(píng)卷模塊625.5.4成績管理模塊625.5.5用戶管理模塊635.6系統(tǒng)組卷方法635.6.1計(jì)算機(jī)組卷的原則635.6.2試卷生成方法645.6.3隨機(jī)組卷法655.6.4智能組卷法685.7系統(tǒng)安全74結(jié)束語76致 謝77參考文獻(xiàn)78摘 要目前,隨著互聯(lián)網(wǎng)時(shí)代的到來,信息技術(shù)的快速發(fā)展,已經(jīng)滲透到社會(huì)的各個(gè)領(lǐng)域,引起人們社會(huì)生產(chǎn)方式、工作方式、學(xué)習(xí)方式和生活方式的重大變革。基于Internet平臺(tái)開發(fā)的各種輔助教學(xué)系統(tǒng),已成為一種新興的教學(xué)媒體,學(xué)生可以根據(jù)自己的實(shí)際情況來安排自己的學(xué)習(xí)時(shí)間、共享優(yōu)秀的教育資源和教育方法。本文主要論述了基

6、于三層客戶/服務(wù)器結(jié)構(gòu)的分布式應(yīng)用系統(tǒng)的實(shí)現(xiàn)方法和技術(shù);闡明了利用Delphi的MIDAS技術(shù)開發(fā)多層分布式應(yīng)用系統(tǒng)的方法;最后闡述了基于C/S模式的輔助教學(xué)系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn),并對(duì)其實(shí)現(xiàn)過程中的關(guān)鍵技術(shù)進(jìn)行了詳細(xì)的討論?;贑/S模式的輔助教學(xué)系統(tǒng)包括網(wǎng)上作業(yè)系統(tǒng)、網(wǎng)上答疑系統(tǒng)和網(wǎng)上考試系統(tǒng)三個(gè)子系統(tǒng)。系統(tǒng)實(shí)現(xiàn)上采用三層客戶/服務(wù)器模式,三層客戶/服務(wù)器結(jié)構(gòu)將系統(tǒng)的表示邏輯、業(yè)務(wù)邏輯和數(shù)據(jù)邏輯分開,從而使系統(tǒng)具有良好的性能和安全性。系統(tǒng)后臺(tái)數(shù)據(jù)庫采用SQL Server2000, Delphi作為前臺(tái)應(yīng)用開發(fā)工具,中間層與數(shù)據(jù)庫采用ODBC連接。系統(tǒng)利用Delphi提供的MIDAS中的Tsim

7、ple ObjectBroker組件,提高了系統(tǒng)的容錯(cuò)性,并使系統(tǒng)具有負(fù)載平衡能力。關(guān)鍵詞:客戶/服務(wù)器、MIDAS、網(wǎng)上作業(yè)、網(wǎng)上答疑、網(wǎng)上考試RESEARCH AND IMPLEMENTATION OF ASSISTANT TEACHING SYSTEM BASING ON C/S PATTERNABSTRACTFor the present, Basing on the computer aided instruction system of Internet's terrace development, and has become one kind of new and de

8、veloping teaching medium, it surmount the unfavorable factor that student lack of use computer's time and fall short of teacher resources etc, in addition,student can arrange intimate study time according to the real circumstances of oneself and shared excellent education resources and the educa

9、tion method.This paper mainly gives account of method and technology of realizing distributed application system basing on three tier client/server;then narrates the method of developing multi-tiers application by Delphi's MIDAS; finally, introduces designation and realization of assistant teach

10、ing system basing on Us pattern, anddiscusses in detail key technology of this system.Assistant teaching system basing on Us pattern includes three subsystem: homework system on the net,answer system on the net and examination system on the net. Client/Server system basing on three tiers divides sys

11、tem into browser logical, application logical, data logical to make the system high performance high safety. System backstage database adopts SQL Server2000,Delphi to develop the tool as the proscenium application, and the intermediate strata adopt ODBC to link with the data base. TSimple0bjectBroke

12、r of MIDAS in Delphi is adopts to improve fault-tolerance and load balancing of this system.Keywords:Client/Server, MIDAS, Net-homework, Net-answer, Net-exam第一章 引言1.1課題背景隨著社會(huì)發(fā)展和科技進(jìn)步,教育在社會(huì)生活中扮演著越來越重要的角色,國家和社會(huì)對(duì)教育的期望也越來越高;為了更好地?fù)駱I(yè)和參與社會(huì)垂直流動(dòng),擁有更大自我發(fā)展前景,人們對(duì)受教育的需求也日益強(qiáng)烈。信息技術(shù)的快速發(fā)展,已經(jīng)滲透到社會(huì)的各個(gè)領(lǐng)域,引起人們社會(huì)生產(chǎn)方式、工作方式

13、、學(xué)習(xí)方式和生活方式的重大變革。一種新興的教育方式現(xiàn)代遠(yuǎn)程教育CAI正悄然興起;所謂現(xiàn)代遠(yuǎn)程教育CAI,就是通過計(jì)算機(jī)、多媒體與遠(yuǎn)程通訊技術(shù)相結(jié)合的形式實(shí)現(xiàn)的一種跨地區(qū)、跨學(xué)校的全新的教育體制與教學(xué)模式,它利用技術(shù)方式來替代教師和學(xué)生面對(duì)面的溝通和交流,通過聲音、視頻、數(shù)據(jù)流和系統(tǒng)平臺(tái)等完成教學(xué)活動(dòng)。人們憑借計(jì)算機(jī)網(wǎng)絡(luò)這個(gè)載體,通過Internet可以從容地走向每一個(gè)具有無限擴(kuò)展空間的“網(wǎng)絡(luò)課堂”,接受正規(guī)化的教育,它不僅是學(xué)生自主學(xué)習(xí)的天地,也是教師嘗試運(yùn)用現(xiàn)代化教學(xué)手法生動(dòng)講授課程的新途徑?,F(xiàn)代遠(yuǎn)程教育與傳統(tǒng)的教育相比,打破了地域和時(shí)間的限制,使學(xué)員可以根據(jù)個(gè)人情況充分利用遠(yuǎn)程教學(xué)的各種學(xué)

14、習(xí)資源,比如各種課件、各種自測考試、網(wǎng)上提交作業(yè)以及在線答疑等;同樣,也使教師完成各種教學(xué)任務(wù)和教學(xué)管理任務(wù)時(shí)不受嚴(yán)格的地域、時(shí)間的限制,提高了效率。在這種教育體制下,工作和學(xué)習(xí)完全融為一體,上班工作、下班學(xué)習(xí)的界線被打破,每個(gè)人可以在任意時(shí)間、任意地點(diǎn)通過網(wǎng)絡(luò)自由地學(xué)習(xí)、工作或娛樂,受教育者不僅可以親耳聆聽著名大師的授課,還可以向世界最權(quán)威的專家請(qǐng)教,成為真正意義上的開放大學(xué)!目前,美國己有60%的高校開展了以互聯(lián)網(wǎng)為主要手段的遠(yuǎn)程教育,遠(yuǎn)程教育開展的學(xué)歷、學(xué)位數(shù)己達(dá)到4.9萬個(gè),基本上覆蓋了美國高等學(xué)校的所有學(xué)科和專業(yè),通過網(wǎng)絡(luò)學(xué)習(xí)的人數(shù)正以每年3倍的速度增長。德國也有將近10000所學(xué)校

15、上網(wǎng),其中的1/4開設(shè)了網(wǎng)絡(luò)教育課程。英國政府甚至把普及網(wǎng)絡(luò)化教育作為保證英國人才培養(yǎng)緊跟世界潮流的戰(zhàn)略性舉措。韓國的教育網(wǎng)站已達(dá)到200多個(gè),而且仍在以每天一至兩個(gè)的速度增加。遠(yuǎn)程教育在我國經(jīng)歷了函授教育、廣播電視教育及以信息和網(wǎng)絡(luò)技術(shù)為基礎(chǔ)的現(xiàn)代遠(yuǎn)程教育三個(gè)階段?,F(xiàn)代遠(yuǎn)程教育市場潛力很大,前景廣闊,每年以150%的速度快速增長。由于我國的高校步入現(xiàn)代遠(yuǎn)程教育領(lǐng)域和計(jì)算機(jī)輔助教學(xué)工作起步較晚。在開設(shè)的課程種類、課程內(nèi)容質(zhì)量以及實(shí)時(shí)交互性等方面都還有很大差距。大多數(shù)高校的遠(yuǎn)程教育網(wǎng)站服務(wù)站點(diǎn)僅僅推出了WWW方式的課件教學(xué)服務(wù)。但近幾年發(fā)展很快,已經(jīng)取得了一大批成果。20世紀(jì)80年代初,我國只有

16、少數(shù)科研、教學(xué)人員著手開展這項(xiàng)工作;到了80年代后期,許多CAI課題列入國家重點(diǎn)科技攻關(guān)項(xiàng)目,許多科研機(jī)關(guān)、企業(yè)、學(xué)校開發(fā)了大量的教學(xué)軟件;進(jìn)入90年代,許多基于網(wǎng)絡(luò)、多媒體環(huán)境下的CAI系統(tǒng)研制課題在各高校開始進(jìn)行,CAI軟件取得了突飛猛進(jìn)的發(fā)展。各國政府為迎接信息化社會(huì)、知識(shí)經(jīng)濟(jì)的挑戰(zhàn),對(duì)遠(yuǎn)程教育倍加重視,并制定專門計(jì)劃加以支持、實(shí)施。在我國,教育部現(xiàn)代遠(yuǎn)程教育資源建設(shè)委員會(huì)于2000年制定了現(xiàn)代遠(yuǎn)程教育資源建設(shè)技術(shù)規(guī)范,許多高校都己開設(shè)了自己的遠(yuǎn)程教育站點(diǎn),但由于我國遠(yuǎn)程教育起步較晚,所以在管理上、技術(shù)上還有許多需要改進(jìn)的地方。高等職業(yè)教育作為高等教育的重要形式,在我國起步較晚,在遠(yuǎn)程教

17、育方面還剛剛開始,遠(yuǎn)程教育在職業(yè)教育中將發(fā)揮重要的作用。本文依托淄博職業(yè)學(xué)院計(jì)算機(jī)系列課程,研制了基于C/S模式的輔助教學(xué)系統(tǒng)。1.2項(xiàng)目介紹技術(shù)手段的大量使用使遠(yuǎn)程教育與傳統(tǒng)教育呈現(xiàn)了更多新的特點(diǎn)和發(fā)展趨勢。目前,針對(duì)計(jì)算機(jī)課程的網(wǎng)上作業(yè)系統(tǒng)、網(wǎng)上答疑系統(tǒng)、網(wǎng)上考試系統(tǒng)已發(fā)展的比較成熟,但對(duì)于其他課程的網(wǎng)上作業(yè)系統(tǒng)、網(wǎng)上答疑系統(tǒng)、網(wǎng)上考試系統(tǒng)卻很少,隨著互聯(lián)網(wǎng)時(shí)代的到來,互聯(lián)網(wǎng)為信息和技術(shù)的交流提供了更大、更廣闊的空間,使信息的地域差別逐漸消失?;ヂ?lián)網(wǎng)己經(jīng)成為一種新的社會(huì)媒介,也為計(jì)算機(jī)課程及其他課程的輔助教學(xué)的發(fā)展提供了廣闊的空間,從而產(chǎn)生了飛速發(fā)展的多學(xué)科的遠(yuǎn)程教學(xué),并且參加遠(yuǎn)程教育的學(xué)

18、生與教師也越來越多。本文結(jié)合計(jì)算機(jī)課程教學(xué)的特點(diǎn),研究并實(shí)現(xiàn)了基于C/S模式的輔助教學(xué)系統(tǒng)。本論文主要研究針對(duì)計(jì)算機(jī)課程的基于C/S(Client/Server,客戶機(jī)/服務(wù)器)模式的輔助教學(xué)系統(tǒng),包括網(wǎng)上作業(yè)系統(tǒng)、網(wǎng)上答疑系統(tǒng)、網(wǎng)上考試系統(tǒng)。該項(xiàng)目的基本架構(gòu)圖如下:1.3主要工作為實(shí)現(xiàn)該輔助教學(xué)系統(tǒng),完成的主要工作如下:(1)研究了兩層、三層客戶機(jī)/服務(wù)器模式,多層使用技術(shù),以及應(yīng)用三層結(jié)構(gòu)開發(fā)軟件的思路和方法。(2)研究了Delphi下三層C/S應(yīng)用程序?qū)崿F(xiàn)的原理,以及利用Inprise公司的MIDAS技術(shù)實(shí)現(xiàn)多層分布式應(yīng)用系統(tǒng)的技術(shù)思路和方法。(3)設(shè)計(jì)與實(shí)現(xiàn)了基于C/S模式的輔助教學(xué)系

19、統(tǒng)的開發(fā),該系統(tǒng)包括網(wǎng)上答疑系統(tǒng)、網(wǎng)上作業(yè)系統(tǒng)和網(wǎng)上考試系統(tǒng)三個(gè)子系統(tǒng)。第二章 相關(guān)知識(shí)與技術(shù)分析2.1分布式應(yīng)用系統(tǒng)的結(jié)構(gòu)2.1.1客戶機(jī)/服務(wù)器模式從邏輯上來說,一個(gè)典型的應(yīng)用可以分成三個(gè)組成部分:表示邏輯層、業(yè)務(wù)邏輯層和數(shù)據(jù)邏輯層。表示邏輯層:它是應(yīng)用中直接面向用戶的部分,主要完成應(yīng)用的前端界面處理,即人機(jī)界面處理。業(yè)務(wù)邏輯層:它實(shí)現(xiàn)應(yīng)用的業(yè)務(wù)規(guī)則處理,決定程序的流程。數(shù)據(jù)邏輯層:它是應(yīng)用中對(duì)數(shù)據(jù)進(jìn)行管理的部分,主要完成應(yīng)用對(duì)數(shù)據(jù)的存取、更新、管理等工作以及訪問數(shù)據(jù)的安全性、完整性、一致性。最初的集中式模型是一種基于主機(jī)/終端模式或PC機(jī)模式的計(jì)算,所有的任務(wù)都集中由主機(jī)來完成,終端只是

20、作為一種輸出設(shè)備,應(yīng)用的三個(gè)邏輯層都集中在一臺(tái)主機(jī)或PC機(jī)上,每個(gè)邏輯層都不能單獨(dú)存在,如圖2-1所示。隨著計(jì)算機(jī)及網(wǎng)絡(luò)技術(shù)的發(fā)展以及企業(yè)決策的分散化和信息來源及目的的多元化這種集中式模型越來越難以適應(yīng)現(xiàn)代社會(huì)的需要。業(yè)務(wù)邏輯數(shù)據(jù)邏輯數(shù)據(jù)庫表示邏輯圖2-1集中式管理模式1、三層C/S結(jié)構(gòu)在三層Client/Server計(jì)算模型中,表示邏輯位置不變,仍放在Client端,業(yè)務(wù)邏輯則放在一個(gè)獨(dú)立的中間服務(wù)器上,數(shù)據(jù)邏輯在另一個(gè)服務(wù)器上。整體結(jié)構(gòu)如圖2-2所示。圖2-2 Client/Server三層模型表示邏輯業(yè)務(wù)邏輯數(shù)據(jù)庫表示邏輯數(shù)據(jù)邏輯客戶端網(wǎng)絡(luò)應(yīng)用程序數(shù)據(jù)庫服務(wù)器 (1)客戶端應(yīng)用程序:提供

21、用戶接口,主要功能是操作人員利用界面,輸入數(shù)據(jù),輸出結(jié)果,并不具有業(yè)務(wù)邏輯,或只擁有部分不涉及企業(yè)核心的、機(jī)密的應(yīng)用邏輯。這樣客戶端就顯得很瘦,稱為“瘦”客戶。(2)應(yīng)用程序服務(wù)器:它是應(yīng)用的主體,提供業(yè)務(wù)邏輯、事務(wù)調(diào)度,并與數(shù)據(jù)庫連接,充當(dāng)客戶與數(shù)據(jù)庫之間的橋梁。(3)遠(yuǎn)程數(shù)據(jù)庫服務(wù)器:即數(shù)據(jù)庫管理系統(tǒng)(DBMS),負(fù)責(zé)管理對(duì)數(shù)據(jù)的讀寫和維護(hù),能迅速執(zhí)行大量數(shù)據(jù)的更新和檢索?,F(xiàn)在的主流是通常像Oracle Server. Microsoft SQL Server等關(guān)系數(shù)據(jù)庫系統(tǒng)(RDBMS)。二層結(jié)構(gòu)中的三層并不一定與網(wǎng)絡(luò)上的具體物理位置相對(duì)應(yīng),它們只是概念上的層,應(yīng)用服務(wù)器和數(shù)據(jù)庫服務(wù)器在

22、物理上也可以在同一臺(tái)服務(wù)器上。在實(shí)際應(yīng)用過程中,業(yè)務(wù)邏輯也可以分為2個(gè)以上的層次,或分別放在幾個(gè)服務(wù)器上,因此也可以實(shí)現(xiàn)多層C/S結(jié)構(gòu)。三層Client/Server計(jì)算模型具有以下優(yōu)點(diǎn):(1)在一個(gè)共享的中間層封裝了企業(yè)邏輯,不同客戶端應(yīng)用程序可以共享同一個(gè)中間層,而不必由每個(gè)客戶端應(yīng)用程序單獨(dú)實(shí)現(xiàn)企業(yè)邏輯。(2)客戶端應(yīng)用程序可以做得很“瘦”,因?yàn)楹芏鄰?fù)雜的工作都由應(yīng)用服務(wù)器代勞了,客戶端應(yīng)用程序只需要關(guān)注用戶界面本身?!笆荨笨蛻舳藨?yīng)用程序更易于發(fā)布、安裝、配置和維護(hù)。(3)實(shí)現(xiàn)分布式數(shù)據(jù)處理。把一個(gè)應(yīng)用程序分布在幾個(gè)機(jī)器上運(yùn)行,可以提高應(yīng)用程序的性能,通過冗余配置還可以保證不會(huì)因?yàn)榫植抗?/p>

23、障導(dǎo)致整個(gè)應(yīng)用程序的崩潰。經(jīng)過合理的布局,通過網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)量大大減少了,提高了網(wǎng)絡(luò)效率。(4)有利于安全。將一些敏感數(shù)據(jù)功能部分封裝在中間層,并授予不同訪問權(quán)限,可以保證對(duì)數(shù)據(jù)的訪問限制。(5)可伸縮性好??砂磻?yīng)用要求部署邏輯層次,適用于本地網(wǎng)和廣域網(wǎng)。(6)便于開發(fā)??蛻舳恕?yīng)用程序服務(wù)器和數(shù)據(jù)庫并行進(jìn)行開發(fā),大大加快了系統(tǒng)開發(fā)的速度。2、B/S結(jié)構(gòu)Browser/Server (B/S,瀏覽器/服務(wù)器)在本質(zhì)上也是一種Client/Serve:結(jié)構(gòu),它是一種由傳統(tǒng)的C/S結(jié)構(gòu)發(fā)展而來的在Web上的應(yīng)用。與三層C/S結(jié)構(gòu)不同的是,B/S系統(tǒng)的表示層為Web瀏覽器,功能層為Web服務(wù)器。We

24、b瀏覽器一般為專用的軟件,如Microsoft的IE,它的任務(wù)是由Web瀏覽器向網(wǎng)絡(luò)上的某一Web服務(wù)器提出服務(wù)請(qǐng)求,Web服務(wù)器對(duì)用戶身份進(jìn)行驗(yàn)證后用HTTP協(xié)議把所需的文件資料傳給客戶端,客戶機(jī)接受傳來的文件資料,并把它顯示在Web瀏覽器上。Web服務(wù)器也是專用的產(chǎn)品,軟件開發(fā)人員只需要開發(fā)基于Web服務(wù)器的應(yīng)用程序,實(shí)際所需要的商業(yè)邏輯,它包括了應(yīng)用中全部的業(yè)務(wù)處理程序,換句話說,除了輸入/輸出功能在表示層、數(shù)據(jù)庫在數(shù)據(jù)層以外,全部的統(tǒng)計(jì)、匯總、分析、打印功能全部存放在功能層。相對(duì)三層C/S結(jié)構(gòu)而言,B/S結(jié)構(gòu)是一次深刻的變革,它具有如下突出的優(yōu)點(diǎn):(1)它簡化了客戶端。只需安裝通用的瀏

25、覽器軟件。這樣不但可以節(jié)省客戶機(jī)的硬盤空間和內(nèi)存,而且使安裝過程更加簡便、網(wǎng)絡(luò)結(jié)構(gòu)更加靈活。(2)更易于維護(hù)、更易于升級(jí)。維護(hù)人員不再為程序的維護(hù)工作奔波于每個(gè)客戶機(jī)之間,而把土要的精力放在服務(wù)器上。由于客戶端無需專用的軟件,當(dāng)企業(yè)對(duì)網(wǎng)絡(luò)應(yīng)用進(jìn)行升級(jí)時(shí),只需更新服務(wù)器端的軟件,減輕了系統(tǒng)維護(hù)和升級(jí)的成本以及工作量。(3)用戶操作使用簡便。B/S結(jié)構(gòu)的客戶端只是一個(gè)提供友好界面的瀏覽器,通過鼠標(biāo)即可訪問文本、圖像、聲音、電影及數(shù)據(jù)庫等信息,用戶無需培訓(xùn)便可直接使用,利于推廣。(4)更適合于網(wǎng)上發(fā)布消息。B/S結(jié)構(gòu)使用的是Internet的Web技術(shù),因而更適合網(wǎng)上信息的發(fā)布,拓展了傳統(tǒng)的數(shù)據(jù)庫應(yīng)

26、用的功能,更適合Internet時(shí)代的需要。B/S模式的新穎與流行和在某些方面相對(duì)于C/S的巨大改進(jìn),使B/S成了MIS系統(tǒng)平臺(tái)的首選,也使人忽略了B/S不成熟的一面。B/S結(jié)構(gòu)相對(duì)C/S結(jié)構(gòu)也有其弱點(diǎn),主要表現(xiàn)在:(1)交互性弱。在C/S中,客戶端有一套完整的應(yīng)用程序,在出錯(cuò)提示、在線幫助等方面都有強(qiáng)大的功能,并且可以在子程序間自由切換。B/S雖然由JavaScript, VBScript提供了一定的交互能力,但與C/S的一整套客戶應(yīng)用相比就太有限了。(2)安全性低。由于采用開放的TCP/IP協(xié)議和解釋型的腳本語言編程,其安全性只能靠數(shù)據(jù)服務(wù)器上管理密碼來保證。(3)數(shù)據(jù)處理能力弱。由于We

27、b是一種新興的技術(shù),現(xiàn)在處在解釋腳本語言階段,無法開發(fā)出像用可視化_I幾具開發(fā)的功能強(qiáng)大的編譯型應(yīng)用程序。此外,由于傳統(tǒng)的C/S系統(tǒng)大量存在,積累了大量的信息和應(yīng)用,將這些應(yīng)用全部轉(zhuǎn)向B/S系統(tǒng)也是一項(xiàng)長期而艱巨的任務(wù),因此B/S系統(tǒng)并不會(huì)立即取代C/S系統(tǒng)而是將與其長期共存。2.1.2構(gòu)建多層分布式應(yīng)用系統(tǒng)的方法分布式多層應(yīng)用的良好而清晰的結(jié)構(gòu)源于對(duì)多層應(yīng)用中各個(gè)部分功能分割的正確設(shè)計(jì)與實(shí)現(xiàn)。多層應(yīng)用的關(guān)鍵在于應(yīng)用服務(wù)器和客戶端的設(shè)計(jì)和實(shí)現(xiàn)。1、分布式多層應(yīng)用的設(shè)計(jì)原則一般而言,客戶端和應(yīng)用服務(wù)器的設(shè)計(jì)遵循如下的功能分割原則。(1)客戶端應(yīng)用程序主要實(shí)現(xiàn)的功能: 處理圖形用戶界面; 用戶的輸

28、入處理; 進(jìn)行簡單的計(jì)算和檢查工作; 調(diào)用應(yīng)用程序服務(wù)器提供的服務(wù)。(2)應(yīng)用程序服務(wù)器主要實(shí)現(xiàn)的功能: 實(shí)現(xiàn)現(xiàn)實(shí)世界的實(shí)體對(duì)象的功能; 進(jìn)行業(yè)務(wù)邏輯的判斷; 協(xié)調(diào)不同的對(duì)象完成共同的工作; 進(jìn)行計(jì)算或提供公共服務(wù)。正是因?yàn)閼?yīng)用程序服務(wù)器擔(dān)負(fù)著如此重要的功能,因此在一個(gè)大型的系統(tǒng)中,應(yīng)用程序服務(wù)器不能由一個(gè)程序或者服務(wù)來完成,而是由若干個(gè)程序或者服務(wù)共同來完成。2、分布式多層應(yīng)用的實(shí)現(xiàn)方法開發(fā)多層應(yīng)用系統(tǒng),一般遵循下面的開發(fā)步驟:(1)先開發(fā)遠(yuǎn)程服務(wù)器,這個(gè)應(yīng)用服務(wù)器負(fù)責(zé)提供數(shù)據(jù)服務(wù)給客戶端應(yīng)用程序使用;(2)開發(fā)客戶端用戶界面應(yīng)用程序,客戶端應(yīng)用程序會(huì)向在第一個(gè)步驟建立的應(yīng)用程序服務(wù)器提出要

29、求;(3)連接客戶端應(yīng)用程序和遠(yuǎn)程服務(wù)器。2.1.3多層結(jié)構(gòu)使用的技術(shù)目前分布式結(jié)構(gòu)使用的核心技術(shù)大致上可以分為兩種不同的工業(yè)標(biāo)準(zhǔn),第一種是Microsoft制定的COM / DCOM以及COM+,第二種則是由700多個(gè)廠商共同提倡的CORBA(Common Object RequestBroker Architecture)。由于分布式結(jié)構(gòu)的廣泛流行,所以現(xiàn)在也有愈來愈多的分布式技術(shù)是根據(jù)這兩種分布式核心技術(shù)再加以演進(jìn)而產(chǎn)生的,例如EJB(Enterprise JavaBean)等。這兩種不同的分布式技術(shù)各有不同的優(yōu)缺點(diǎn),基本上Micosoft的COM/DCOM/COM+是以Windows為

30、中心的開發(fā)環(huán)境,而CORBA則是平臺(tái)中立的分布式技術(shù)。CORBA能夠執(zhí)行于Windows,UNIX以及Linux等操作系統(tǒng)之中。但是不管是哪一種分布式技術(shù),基本上這些分布式技術(shù)都允許軟件開發(fā)人員能夠在應(yīng)用程序中輕而易舉地使用企業(yè)對(duì)象所提供的服務(wù)。當(dāng)客戶端應(yīng)用程序在使用企業(yè)對(duì)象的服務(wù)時(shí),這些分布式技術(shù)都會(huì)讓應(yīng)用程序在調(diào)用企業(yè)對(duì)象時(shí)看起來就像是這些企業(yè)對(duì)象就存在于本地的機(jī)器之中一樣,應(yīng)用程序程序員并不需要編寫復(fù)雜的網(wǎng)絡(luò)程序代碼以便調(diào)用事實(shí)上是位于遠(yuǎn)程機(jī)器之中的企業(yè)對(duì)象?;旧线@兩種分布式技術(shù)都是在客戶端機(jī)器之中以一個(gè)特別的對(duì)象來仿真真正的遠(yuǎn)程企業(yè)對(duì)象。如此以來客戶端應(yīng)用程序就可以調(diào)用在客戶端機(jī)器中

31、仿真的對(duì)象來存取遠(yuǎn)程企業(yè)對(duì)象的服務(wù),而當(dāng)客戶端仿真對(duì)象被應(yīng)用過程調(diào)用時(shí),這個(gè)仿真對(duì)象再使用特定的通訊協(xié)議來真正的調(diào)用遠(yuǎn)程企業(yè)對(duì)象的服務(wù)以滿足客戶端應(yīng)用程序的要求。由于有了客戶端仿真對(duì)象,所以軟件開發(fā)人員在編寫客戶端應(yīng)用程序時(shí)便非常的方便,不需要了解或是編寫網(wǎng)絡(luò)通訊協(xié)議的程序代碼。如此以來可以大幅增加軟件開發(fā)人員的生產(chǎn)力。雖然COM /DCOM / COM+和CORBA都是使用類似的觀念來實(shí)現(xiàn)這種遠(yuǎn)程調(diào)用結(jié)構(gòu),但是這兩種分布式技術(shù)在仿真對(duì)象的名稱上卻有一些差異。圖2-3和2-4分別是這兩種分布式結(jié)構(gòu)使用的通訊協(xié)議以及在客戶端仿真對(duì)象,以及服務(wù)端仿真對(duì)象的名稱。除了基本的遠(yuǎn)程對(duì)象調(diào)用之外,一般來說

32、分布式技術(shù)也會(huì)提供一些核心服務(wù)來幫助軟件開發(fā)人員開發(fā)分布式應(yīng)用系統(tǒng)。這些核心服務(wù)會(huì)依據(jù)用戶對(duì)分布式應(yīng)用系統(tǒng)的安全強(qiáng)固的要求,安全性和延展性的要求而有所不同。但是有幾個(gè)最重要的核心服務(wù)幾乎每個(gè)分布式技術(shù)都會(huì)提供的,這些核心服務(wù)分別是:交易管理(transaction management):負(fù)責(zé)在分布式應(yīng)用系統(tǒng)中對(duì)數(shù)據(jù)完整性及一致性的保護(hù)。在Windows平臺(tái)中MTS(Microsoft Transaction Server)提供了這個(gè)核心服務(wù),在CORBA中則是由OTS(Object Transaction Service)提供。安全服務(wù)(Security):在分布式應(yīng)用系統(tǒng)中安全是很重要的,

33、因?yàn)榻^對(duì)不允許提供服務(wù)的企業(yè)對(duì)象能夠被任何人使用,只有經(jīng)過授權(quán)的人才能夠使用授權(quán)的企業(yè)對(duì)象。COM/DCOM使用WindowsNT的安全接口來提供分布式應(yīng)用系統(tǒng)基本的安全保護(hù),MTS以及COM+則提供了更為簡易的接口來提供安全能力。在CORBA中則以安全服務(wù)來提供應(yīng)用系統(tǒng)基本的保護(hù),此外COM/DCOM/COM+和CORBA也允許軟件開發(fā)人員使用SSL以SecureSocketLayer)對(duì)數(shù)據(jù)進(jìn)行加密和解密,讓只有被授權(quán)的人才能夠看到應(yīng)用系統(tǒng)的數(shù)據(jù)。2.2開發(fā)環(huán)境Delphi簡介2.2.1 MIDAS技術(shù)MIDAS (Multi-tier Distributed Application Se

34、rvices Suite多層分布式應(yīng)用程序服務(wù)包)是Delphi用來開發(fā)多層應(yīng)用系統(tǒng)使用的中介透明引擎。它為后端的應(yīng)用程序服務(wù)器和程序員之間提供了一種透明的連接,無論后端的應(yīng)用程序服務(wù)器是COM/DCOM應(yīng)用程序服務(wù)器,MTS中介軟件,還是CORBA應(yīng)用程序服務(wù)器,呈現(xiàn)在程序員面前的都是MIDAS提供的一致接口。此外,MIDAS提供了容錯(cuò)能力,負(fù)載平衡能力以及高執(zhí)行效率能力。MIDAS的出現(xiàn),使構(gòu)建三層分布式應(yīng)用變得容易。MIDAS是通過三個(gè)主要的中介者(Broker)作為核心技術(shù)來實(shí)現(xiàn)的,它們是: Remote Data Broker(遠(yuǎn)程數(shù)據(jù)中介者):提供客戶端存儲(chǔ)遠(yuǎn)程數(shù)據(jù)的能力。 Con

35、straint Broker(約束中介者):保證所有客戶數(shù)據(jù)的一致性及數(shù)據(jù)完整性,為開發(fā)者提供了一個(gè)簡單的自動(dòng)分發(fā)數(shù)據(jù)完整性規(guī)則的方法,動(dòng)態(tài)傳播規(guī)則的特性使得開發(fā)者能夠很容易地維護(hù)大量的應(yīng)用程序,從而減少網(wǎng)絡(luò)的流量。 Business Object Broker(企業(yè)對(duì)象中介者):允許應(yīng)用系統(tǒng)開發(fā)執(zhí)行企業(yè)邏輯的企業(yè)對(duì)象,并且提供容錯(cuò)能力和負(fù)載平衡的能力。MIDAS除了擁有前面討論的三個(gè)中介者提供的功能之外,也具備了兩個(gè)非常重要的功能。這兩個(gè)功能是開發(fā)關(guān)鍵性多層應(yīng)用系統(tǒng)不可或缺的能力。目前DCOM并沒有內(nèi)建這兩種功能。這兩個(gè)功能是:(1)容錯(cuò)能力(Fault Tolerance):當(dāng)一臺(tái)應(yīng)用程序

36、服務(wù)器發(fā)生故障時(shí),MIDAS能夠立刻找到另外一臺(tái)可供使用的應(yīng)用程序服務(wù)器提供客戶端應(yīng)用程序使用,而不致讓客戶端應(yīng)用程序無法繼續(xù)執(zhí)行。(2)負(fù)載平衡(Load Balancing):MIDAS能夠把客戶端應(yīng)用程序的需求分配到不同的應(yīng)用程序服務(wù)器之中執(zhí)行,以提升客戶端應(yīng)用程序和應(yīng)用程序服務(wù)器的執(zhí)行效率。MIDAS應(yīng)該說是Borland公司推出的一項(xiàng)在多層分布式服務(wù)中重要的戰(zhàn)略產(chǎn)品,它的優(yōu)勢可以總結(jié)為以下幾個(gè)方面:(1)MIDAS是一個(gè)跨平臺(tái)的中間件產(chǎn)品,允許開發(fā)人員使用單一界面和技術(shù)來存取各種分布式對(duì)象。(2)MIDAS簡化了各種分散式對(duì)象的開發(fā)工作,并且能夠大大簡化分布式對(duì)象異質(zhì)數(shù)據(jù)庫的工作。(

37、3)MIDAS在未來將會(huì)不斷強(qiáng)化它的效率和功能。(4)MIDAS為多層分布式結(jié)構(gòu)的應(yīng)用開發(fā)提供了強(qiáng)大的功能,這使得開發(fā)者再也無需為越來越龐大的數(shù)據(jù)及應(yīng)用發(fā)愁了。2.2.2 Delphi開發(fā)的三層分布式應(yīng)用系統(tǒng)的結(jié)構(gòu)Delphi6支持了許多重要的分布式技術(shù),因此軟件開發(fā)人員可以結(jié)合這些分布式技術(shù)而開發(fā)出先進(jìn)的分布式應(yīng)用系統(tǒng),以及適合各種不同結(jié)構(gòu)的分布式應(yīng)用系統(tǒng)。例如圖2-5是Windows平臺(tái)下最常使用的分布式結(jié)構(gòu),它結(jié)合Microsoft的NITS以及Web服務(wù)器構(gòu)建出分布式Internet / Intranet的應(yīng)用系統(tǒng)。在圖2-5中軟件開發(fā)人員可以先在NITS/MIDAS服務(wù)器中開發(fā)各種企

38、業(yè)對(duì)象,然后再使用Delphi開發(fā)客戶端的圖形用戶接口并且使用中介的企業(yè)對(duì)象。稍后當(dāng)企業(yè)決定走向Internet/Intranet提供的電子商務(wù)系統(tǒng)時(shí),便可以加入Web服務(wù)器,然后再串連到原先的MTS/MIDAS應(yīng)用程序服務(wù)器,讓W(xué)eb服務(wù)器能夠繼續(xù)使用在應(yīng)用程序服務(wù)器之中的企業(yè)對(duì)象。圖2-5 提供關(guān)鍵技術(shù)開發(fā)關(guān)鍵性分布式應(yīng)用系統(tǒng)圖25中有許多的關(guān)鍵技術(shù)是這種分布式應(yīng)用系統(tǒng)必須具備的,而Delphi6實(shí)現(xiàn)這些技術(shù),又非常容易。例如Delphi6的IntCrnetEXpress組件允許軟件開發(fā)人員以XML標(biāo)準(zhǔn)語言建制分布式電子商業(yè),并且使用ADO組件配合MTSMIDAS中介技術(shù)做出安全強(qiáng)固的分布

39、式應(yīng)用系統(tǒng)。圖26通過CORBA和UNIX應(yīng)用程序服務(wù)器串聯(lián)如果應(yīng)用程序服務(wù)器是以UNIX平臺(tái)為主,那么可以使用CORBA分布式技術(shù)作為應(yīng)用系統(tǒng)的骨架。在應(yīng)用程序服務(wù)器中可以執(zhí)行CORBA或是EJB應(yīng)用程序服務(wù)器,Delphi6可以作為客戶端圖形用戶按口的開發(fā)工具,也可以應(yīng)用InternetEXpfess組件提供XML的Internet/Intranet解訣方案。圖26說明了這種分布式應(yīng)用系統(tǒng)的結(jié)構(gòu)。從圖26中可以看出,在使用CORBA的應(yīng)用系統(tǒng)中,Delphi6可以作為在Windows平臺(tái)下非常良好的客戶端開發(fā)工具,此外由于Delphi也支持CORBA應(yīng)用系統(tǒng)的開發(fā)能力,所以能夠非常平順的和

40、UNIX或是Linux平臺(tái)之中的CORBA應(yīng)用程序服務(wù)器溝通。例如軟件開發(fā)人員使用Linux作為應(yīng)用程序服務(wù)器,并且在其中執(zhí)行CORBA應(yīng)用程序服務(wù)器提供服務(wù),而客戶端則可以執(zhí)行Delphi建立的圖形用戶接口應(yīng)用程序,和在Linux之中的應(yīng)用程序服務(wù)器溝通。2.2.3 Delphi下三層C/S應(yīng)用程序?qū)崿F(xiàn)的原理Delphi6實(shí)現(xiàn)三層C/S結(jié)構(gòu)的原理如圖2-7。應(yīng)用服務(wù)器主要包含一個(gè)遠(yuǎn)程數(shù)據(jù)模塊,它通過數(shù)據(jù)集組件負(fù)責(zé)與BDE的聯(lián)系,并利用TProvider組件提供Provide接口,在客戶程序與應(yīng)用服務(wù)器之間傳遞數(shù)據(jù)。在三層C/S結(jié)構(gòu)下,幾個(gè)客戶有可能同時(shí)與一個(gè)應(yīng)用服務(wù)器通訊,應(yīng)用服務(wù)器實(shí)際上充

41、當(dāng)了一個(gè)網(wǎng)關(guān)的作用??蛻舫绦蛲ǔ0瑑深惸K:一類是窗體模塊,它們?yōu)橛脩籼峁?shù)據(jù)維護(hù)的界面;另一類是數(shù)據(jù)模塊,它一般包括以下幾類組件:(1)連接組件,負(fù)責(zé)連接應(yīng)用服務(wù)器;(2)客戶數(shù)據(jù)集組件,它一般從應(yīng)用服務(wù)器接口獲取數(shù)據(jù);(3)數(shù)據(jù)源組件,負(fù)責(zé)連接數(shù)據(jù)集組件與數(shù)據(jù)控制組件。用戶界面元素?cái)?shù)據(jù)源組件連 接組 件客戶數(shù)據(jù)集BDE-cnableDatasetcomponentProviderBeriandDatabaseEngibc窗體 數(shù)據(jù)模塊 應(yīng)用程序服務(wù)器遠(yuǎn)程數(shù)據(jù)庫數(shù)據(jù)庫服務(wù)器圖2-7 Delphi下實(shí)現(xiàn)三層C/S結(jié)構(gòu)原理圖Delphi6的多層數(shù)據(jù)庫應(yīng)用系統(tǒng)結(jié)構(gòu)主要是由ClientDataSe

42、t, RemoteServer, DataSetProvider數(shù)據(jù)集組件和連接組件構(gòu)成的??蛻舳说膽?yīng)用程序在第一次執(zhí)行時(shí),RemoteServer首先會(huì)注冊(cè) MIDAS.DLL這個(gè)檔案,這個(gè)檔案包含了ClientDataSet使用的IAppServer接口。然后通過組件從MIDAS.DLL取得應(yīng)用程序服務(wù)器中遠(yuǎn)程數(shù)據(jù)模塊輸出的IAppServer接口,根據(jù)此接口建立一個(gè)DUAL接口,最后使用連接組件連接遠(yuǎn)程的應(yīng)用程序服務(wù)器。在RemoteServer建立lAppServer接口和連接了遠(yuǎn)程的應(yīng)用程序服務(wù)器之后,ClientDataSet便會(huì)使用RemoteServer取得的IAppServe

43、r接口向應(yīng)用程序服務(wù)器要求數(shù)據(jù),并存儲(chǔ)在Data的屬性值之中。當(dāng)客戶端處理數(shù)據(jù)時(shí),事實(shí)上所有的數(shù)據(jù)都存儲(chǔ)于ClientDataSet的一個(gè)屬性值(Delta)之中,都是暫時(shí)存儲(chǔ)在內(nèi)存之中。在客戶端進(jìn)行數(shù)據(jù)處理時(shí)不會(huì)造成任何網(wǎng)絡(luò)的負(fù)荷,執(zhí)行速度快。當(dāng)客戶端確定更新數(shù)據(jù)時(shí),應(yīng)用程序調(diào)用ClientDataSet的ApplyUpdates方法,ApplyUpdates再調(diào)用IAppServer接口的ApplyUpdates讓應(yīng)用程序服務(wù)器更新數(shù)據(jù)。此時(shí),網(wǎng)絡(luò)上傳輸?shù)闹皇切薷倪^的數(shù)據(jù),網(wǎng)絡(luò)資源消耗非常小。2.2.4 MIDAS的應(yīng)用程序工作流程在這種三層應(yīng)用程序結(jié)構(gòu)中,數(shù)據(jù)庫服務(wù)器主要由專門的數(shù)據(jù)庫管

44、理系統(tǒng)實(shí)現(xiàn)。Delphi主要用于應(yīng)用服務(wù)器和客戶應(yīng)用程序的開發(fā)。一般的處理過程如圖2-8所示。(1)用戶首先啟動(dòng)客戶端程序,客戶端程序?qū)⒃噲D連接應(yīng)用程序服務(wù)器,如果應(yīng)用程序服務(wù)器還沒有運(yùn)行,客戶端程序?qū)⒓せ顟?yīng)用程序服務(wù)器,并從中獲得一個(gè)IProvider接口,客戶提出的數(shù)據(jù)查詢和更新請(qǐng)求都是通過它來實(shí)現(xiàn)的。(2)客戶程序向應(yīng)用程序服務(wù)器發(fā)出數(shù)據(jù)請(qǐng)求。(3)應(yīng)用程序服務(wù)器收到請(qǐng)求后,從遠(yuǎn)程數(shù)據(jù)庫服務(wù)器檢索并獲取數(shù)據(jù),并根據(jù)選擇的通訊協(xié)議將數(shù)據(jù)封裝打包后傳輸給客戶端程序。(4)客戶端程序收到數(shù)據(jù)封包后,進(jìn)行數(shù)據(jù)包的分解,然后顯示或進(jìn)行處理。(5)用戶對(duì)數(shù)據(jù)進(jìn)行更新后,將數(shù)據(jù)連同數(shù)據(jù)變更日志一起封裝

45、成數(shù)據(jù)包,上傳到應(yīng)用程序服務(wù)器中請(qǐng)更新數(shù)據(jù)。(6)應(yīng)用程序服務(wù)器收到客戶端程序的申請(qǐng)后,就向遠(yuǎn)程數(shù)據(jù)庫服務(wù)器申請(qǐng)更新數(shù)據(jù)。(7)如果出錯(cuò),應(yīng)用程序服務(wù)器就把出錯(cuò)的記錄返回給客戶端程序去核對(duì)??蛻舳顺绦蚝藢?duì)并修改了數(shù)據(jù)后,既可以放棄此次更新,也可以再次提交數(shù)據(jù)更新請(qǐng)求。圖2-8多層應(yīng)用程序流程說明錯(cuò)誤客戶端初始化連接并激活服務(wù)器獲得IPRrovide客戶向服務(wù)器請(qǐng)求數(shù)據(jù)服務(wù)器接受請(qǐng)求并運(yùn)行檢索客戶接受并顯示數(shù)據(jù)客戶方編輯修改數(shù)據(jù),數(shù)據(jù)打包后提交服務(wù)器服務(wù)器向遠(yuǎn)程數(shù)據(jù)庫服務(wù)器更新數(shù)據(jù)處理數(shù)據(jù)結(jié) 束正確將錯(cuò)誤結(jié)果返回客戶方從上面的執(zhí)行過程可以知道,客戶端應(yīng)用程序的工作只是簡單的前臺(tái)應(yīng)用處理,而把復(fù)雜

46、的數(shù)據(jù)管理功能交給了應(yīng)用程序服務(wù)器,體現(xiàn)了分布式處理和集中式處理的結(jié)合及優(yōu)點(diǎn)。2.2.5有關(guān)組件(1)遠(yuǎn)程數(shù)據(jù)模塊(Remote Data Module)它與普通的數(shù)據(jù)模塊有些相似,不同的是它可以作為COM服務(wù)器或CORBA服務(wù)器,讓客戶程序訪問它的接口。它提供了IDataBroker接口,客戶程序與應(yīng)用服務(wù)器連接,就通過IDataBroke接口獲得IProvider接口。(2)提供器組件有兩種提供器組件:TProvider, TDatasetProvider。這兩個(gè)元件用在應(yīng)用服務(wù)器上,主要作用是提供IProvider接口,通過它直接控制數(shù)據(jù)包中所包含的信息,響應(yīng)客戶數(shù)據(jù)請(qǐng)求,更新數(shù)據(jù),定位

47、記錄,并將數(shù)據(jù)打包后傳送給客戶。(3)客戶數(shù)據(jù)集組件(TClientDataset )它是一個(gè)從TDataset繼承下來的,通常用于客戶端。它最大的特點(diǎn)是不依賴BDE,但它需要一個(gè)動(dòng)態(tài)鏈接庫(即DBCLIENTDLL)的支持。它支持諸如編輯、查詢、瀏覽、修改、過濾等功能。由于TClientDataset在內(nèi)存中建立了數(shù)據(jù)的本地副本,使數(shù)據(jù)操作的執(zhí)行速度非???。(4)MIDAS連接組件客戶與應(yīng)用服務(wù)器之間,可以根據(jù)選用通訊協(xié)議的不同,使用不同的連接方式。Delphi6提供了四種連接組件。分別是:TDCOMConnection按DCOM方式連接。不需要專門的運(yùn)行期軟件,但需安裝DCOM95程序。T

48、SOCKETConnection按TCPIIP方式連接。應(yīng)用服務(wù)器必須運(yùn)行一個(gè)專門的運(yùn)行期軟件SCKTSRVR.EXE. SCKTSRVR.EXE只適合于Windows NT,可以作為一個(gè)服務(wù)在后臺(tái)運(yùn)行。TWebConnection使用HTTP協(xié)議連接到遠(yuǎn)程應(yīng)用服務(wù)器;客戶機(jī)必須安裝Wininet.dil。服務(wù)器必須安裝IIS4或更高版本,或Netscape企業(yè)版3.6或更高版本。TWebConnection所連接的Web服務(wù)器必須安裝Httpsrvr.dll (Httpsrvr.dl)與Delphi一同發(fā)布)。TCORBAConnection按CORBA方式連接。需要ORB的支持。2.2.6

49、自定義應(yīng)用服務(wù)器遠(yuǎn)程數(shù)據(jù)模塊是應(yīng)用服務(wù)器的核心部件,它提供了應(yīng)用服務(wù)器和客戶程序通訊的接口。為了使客戶能方便地訪問數(shù)據(jù)模塊,可以對(duì)數(shù)據(jù)模塊接口進(jìn)行擴(kuò)展,添加一些方法讓客戶程序調(diào)用。要向接口中添加屬性和方法,首先應(yīng)打開類型庫編輯器;利用工具欄上的New Method或NewProperty命令,加入新的方法或?qū)傩?,并設(shè)置有關(guān)屬性;再用Interface Repository注冊(cè)接口。對(duì)于基于DCOM的遠(yuǎn)程數(shù)據(jù)模塊來說,新的成員將出現(xiàn)在接口的實(shí)現(xiàn)單元和類型庫的描述文件中。2.2.7調(diào)用服務(wù)器上的接口一般來說,對(duì)于應(yīng)用程序服務(wù)器提供的服務(wù),客戶端應(yīng)用程序有數(shù)種不同的調(diào)用方法,分別是:Later Bi

50、nding調(diào)用方式、Early Binding調(diào)用方式、Dispatch Table調(diào)用方式。下面分別加以介紹:1、Later Binding調(diào)用方式Later Binding是最方便的調(diào)用方式,但這是最沒有效率的方式。使用方法是:利用客戶端連接組件的AppServer屬性獲得遠(yuǎn)程應(yīng)用程序服務(wù)器,再調(diào)用其中的方法。例如:DCOMConnectionI.AppServer.GetSystemInfo(vTime,vRDM,vThread);AppServer屬性回傳的是一個(gè)Variant類型的變量,當(dāng)程序透過Variant調(diào)用遠(yuǎn)程方法時(shí),Delphi會(huì)以IDispatch接口動(dòng)態(tài)的和遠(yuǎn)程應(yīng)用程序

51、服務(wù)器通信,組合調(diào)用方法和參數(shù),最后再進(jìn)行調(diào)用。所以這種調(diào)用方式需要執(zhí)行非常多的額外工作,效率低。2、Early Binding調(diào)用方式Later Binding調(diào)用方式是在程序執(zhí)行時(shí)才動(dòng)態(tài)進(jìn)行遠(yuǎn)程調(diào)用,因此效率低。而Early Binding調(diào)用方式是在編譯應(yīng)用程序時(shí)便產(chǎn)生所有必要的執(zhí)行代碼,不需要應(yīng)用程序執(zhí)行時(shí)動(dòng)態(tài)地和遠(yuǎn)程應(yīng)用程序服務(wù)器通信,所以執(zhí)行效率要高,也安全,但使用上比較麻煩,且是適用于DCOM通信協(xié)議中。例如:(DCOMConnectionl.GetServeras rdmDemo3).GetSystemInfo(vTime,vRDM,vThread);3、Dispatch Ta

52、ble調(diào)用方式這是一種即有效率,又不是很麻煩的方法,并且它支持Socket通信協(xié)議。當(dāng)在Delphi中使用可視化Type Library編輯器定義應(yīng)用程序服務(wù)器的服務(wù)后,Delphi會(huì)在Type Library的wrapper類別中生成Dispatch Table的接口。例如,若應(yīng)用程序服務(wù)器有如下的Dispatch Table接口:IrdmDemo3Disp =dispinterfaceAFC25B93-37E0-1 I D3-AA94-0080C8518D04則采用Dispatch Table調(diào)用方式的方法:varaDisp:IrdmDemo3Disp;beginbeginaDisp:=I

53、rdmDemo3Disp(Idispatch(DCOMConnectionl.AppServer);aDisp.GetSystemlnfo(vTime,vRDM,vThread);end;end;二種調(diào)用方式的效率不同,據(jù)資料介紹,Early Binding比起Late Binding快了100%以上,Dispatch Table的方式比起Late Binding方式快70%??蛻舫绦蛑械腡ClientDataset通常通過IProvide接口從遠(yuǎn)程數(shù)據(jù)庫服務(wù)器獲取數(shù)據(jù)。調(diào)用IProvider接口有三種方式:(1)通過TClientDataset的Provider屬性獲取IProvider接口

54、,然后直接訪問IProvide接口。(2)通過調(diào)用TC I ientDataset的屬性和方法,間接調(diào)用IProvider接口。因?yàn)榇蟛糠謱?duì)IProvider接口的調(diào)用己封裝在TClientDataset的屬性和方法中。(3)通過MIDAS的連接組件的Appserver屬性可以獲得應(yīng)用服務(wù)器上的遠(yuǎn)程數(shù)據(jù)模塊接口,通過此接口可以調(diào)用遠(yuǎn)程數(shù)據(jù)模塊中的方法。2.3 系統(tǒng)采用的相關(guān)技術(shù)2.3.1遠(yuǎn)程調(diào)用方式在系統(tǒng)的開發(fā)過程中,應(yīng)該考慮系統(tǒng)的執(zhí)行效率問題。特別是我們的分布式三層系統(tǒng)是運(yùn)行在網(wǎng)絡(luò)上,經(jīng)常會(huì)有數(shù)據(jù)在網(wǎng)絡(luò)上傳送的情況,所以我們主要從減少數(shù)據(jù)流量來解決這個(gè)問題。在使用到業(yè)務(wù)邏輯層提供的服務(wù)時(shí),就

55、需要在程序中調(diào)用服務(wù)器的方法,而不適當(dāng)?shù)恼{(diào)用方式往往會(huì)降低系統(tǒng)的效率。一般來說,對(duì)于應(yīng)用程序服務(wù)器提供的服務(wù),客戶端應(yīng)用程序有三種不同的調(diào)用方法,分別是:Later Binding調(diào)用方式、Early Binding調(diào)用方式、Dispatch Table調(diào)用方式。在本系統(tǒng)中采用了支持Socket通信協(xié)議,而且即有效率,又不是很麻煩的方法Dispatch Table的調(diào)用方式。2.3.2系統(tǒng)的容錯(cuò)技術(shù)和網(wǎng)絡(luò)負(fù)載平衡技術(shù)在分布式計(jì)算環(huán)境中開發(fā)的系統(tǒng),除了必須能夠正確而且有效率的運(yùn)作之外,還應(yīng)該更為強(qiáng)固,不會(huì)因?yàn)橹虚g層服務(wù)器或數(shù)據(jù)庫服務(wù)器的故障而導(dǎo)致整個(gè)系統(tǒng)無法繼續(xù)運(yùn)行。所以,給系統(tǒng)加入容錯(cuò)和負(fù)載平

56、衡能力是非常必要的。在Delphi的MIDAS技術(shù)中,我們用客戶端應(yīng)用程序和TSimpleObjectBroker組件合作來提供容錯(cuò)和負(fù)載平衡能力。1、系統(tǒng)的負(fù)載平衡能力負(fù)載平衡是指在有多個(gè)能提供相同服務(wù)的應(yīng)用程序服務(wù)器的情況下,當(dāng)有許多客戶端應(yīng)用程序需要連接應(yīng)用程序服務(wù)器,MIDAS能夠分配不同的客戶端應(yīng)用程序到每個(gè)服務(wù)器中,以便平衡每一個(gè)應(yīng)用程序服務(wù)器的負(fù)載。系統(tǒng)利用了Delphi中的TSimpleObjectBroker組件,提供了系統(tǒng)的負(fù)載平衡功能。方法是將TSimpleObjectBroker組件的LoadBalanced屬性值設(shè)為True。2、系統(tǒng)的容錯(cuò)能力在一個(gè)執(zhí)行關(guān)鍵作業(yè)的多層應(yīng)用系統(tǒng)中,系統(tǒng)的穩(wěn)定度是非常重要的。尤其是當(dāng)客戶端應(yīng)用程序正在執(zhí)行一些重要的程序時(shí),不希望因?yàn)閼?yīng)用程序服務(wù)器的故障而造成多層應(yīng)用系統(tǒng)無法執(zhí)行。為提高系統(tǒng)的穩(wěn)定性,系統(tǒng)利用了Delphi中的TSimpleObjectBroker組件,提供了系統(tǒng)的容錯(cuò)能力。基本上容錯(cuò)能力就是讓應(yīng)用程序服務(wù)器在多個(gè)機(jī)器中執(zhí)行,當(dāng)客戶端應(yīng)用程序執(zhí)行時(shí)可以連結(jié)到任何一臺(tái)機(jī)器中的應(yīng)用程序服務(wù)器要求服務(wù)。如果客戶端應(yīng)用程序服務(wù)器連結(jié)的應(yīng)用程序服務(wù)器發(fā)生問題而無法繼續(xù)執(zhí)行,客戶端應(yīng)用程序可以立刻連接到其它機(jī)器中的應(yīng)用程序服務(wù)器繼續(xù)要求新的應(yīng)用程序服務(wù)器提供服務(wù)。容錯(cuò)能力的實(shí)現(xiàn)方法

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論