MIDAS三層體系結(jié)構(gòu)_第1頁
MIDAS三層體系結(jié)構(gòu)_第2頁
MIDAS三層體系結(jié)構(gòu)_第3頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

1、MIDAS多層分布式應(yīng)用程序服務(wù)器   -對MIDAS這個名字一般有兩種理解。MIDAS是Multi tier Distributed Application Services Suite(多層分布式應(yīng)用 程序服務(wù)包)的縮寫,這也詮釋了MIDAS技術(shù)的實質(zhì)。也許因為 這個本義太長,很多人更愿意把它理解成Multitier Made Easy, 這也是MIDAS的作用。多層計算(Multitiered computing)是 業(yè)界對此類技術(shù)通用的術(shù)語,而Multitier是Borland公司采用的技術(shù)術(shù)語Borland典型的三層結(jié)構(gòu)如下:第一層是數(shù)據(jù)庫 服務(wù)器,第二層是應(yīng)用服務(wù)器,第三

2、層是瘦客戶機。數(shù)據(jù)庫服務(wù)器是諸如Inter Base、Oracle、Sybase、 MSSQL Server等數(shù)據(jù)庫,應(yīng)用服務(wù)器和瘦客戶機由Delphi建立。 大多數(shù)情況下,數(shù)據(jù)庫訪問軟件(例如BDE,SQLNET等等)與 應(yīng)用服務(wù)器運行在同一臺機器上。 -應(yīng)用服務(wù)器主要基于Borland的分布式數(shù)據(jù)技術(shù),至少包括 兩方面的內(nèi)容:   -1.內(nèi)置在Delphi組件中; -2.OLEnterprise產(chǎn)品對分布式計算和負(fù)載平衡提供超強的支持。 -內(nèi)置在Delphi組件中使你能很容易地使用DCOM、Socket或 OLE nterprise連接兩臺機器,并在兩者之間來回傳輸數(shù)據(jù)集。 OL

3、E nterprise工具提供DCOM的選擇方法簡化了連接兩臺機器的 任務(wù),尤其是對兩臺運行Windows95的機器更是如此。 OLEnterprise使用戶能訪問ObjectBroker,它允許在幾個服務(wù) 器中隨機分配任務(wù)負(fù)載。此外,還可以在幾臺機器上裝載服務(wù)器 工具,每次實行連接時,Broker會選擇其中一臺機器。例如,如 果你有100個客戶端和3臺服務(wù)器,ObjectBroker會隨機分配負(fù) 載給3臺服務(wù)器,每臺服務(wù)器大約有33個客戶端。Broker會在 服務(wù)器異常關(guān)閉時提供支持。編寫幾行代碼可以提供服務(wù)器錯誤 處理,把客戶端從出現(xiàn)問題的服務(wù)器切換到另一臺正常運行的服務(wù)器。另外Broke

4、r不會試圖把一個新的客戶端連接到已經(jīng)關(guān)閉 的服務(wù)器上,相反它會自動連接到其中一臺正在運行的服務(wù)器 上。  -分布式數(shù)據(jù)集可以基于DCOM,在客戶端沒有任何數(shù)據(jù)庫工具的情況下讀取遠(yuǎn)程數(shù)據(jù)。有些用戶可能會有這樣的疑問:通過瀏覽器和Web服務(wù)器也能在客戶端沒有任何數(shù)據(jù)庫工具的情況下觀察遠(yuǎn)程機器上的數(shù)據(jù)集,為什么還要采用分布式數(shù)據(jù)集呢?這是因為瀏覽器的功能遠(yuǎn)不如Borland分布式數(shù)據(jù)集的功能。如果沒有一種強大的第三方工具(如IntraBuilder),要增強瀏覽器的約束條件,或者在瀏覽器中加入或建立一個一到多的關(guān)系表是非常困難的。但這些功能都可以在Delphi的多層應(yīng)用程序中簡單地實現(xiàn),D

5、elphi的編譯應(yīng)用程序比基于HTML的應(yīng)用更快速、更易于應(yīng)答。   -分布式數(shù)據(jù)集允許在客戶端的應(yīng)用中使用所有標(biāo)準(zhǔn)的Delphi組件,包括數(shù)據(jù)庫工具,但是客戶端無須裝載BDE、ODBC或者任 何數(shù)據(jù)庫類庫(例如OracleSQLNET、SybaseCTLib等等)。當(dāng) 然網(wǎng)絡(luò)上的某些地方需要BDE或類似的引擎,但是客戶端無須裝載。簡言之,現(xiàn)在只需要一套服務(wù)器端的數(shù)據(jù)庫工具,每一個客戶端就可以使用它。   -分布式數(shù)據(jù)集是縮減網(wǎng)絡(luò)通信量的一種方法。從服務(wù)器端下載數(shù)據(jù)后,在客戶端操作數(shù)據(jù)而無須初始化任何網(wǎng)絡(luò)交易,除非需要更改服務(wù)器端。這意味著在不啟動網(wǎng)絡(luò)交易的情況下,可以編輯

6、、插入、刪除多個記錄。更改服務(wù)器數(shù)據(jù)時,可以在預(yù)先選定的時間段內(nèi)把多個數(shù)據(jù)包送到網(wǎng)絡(luò)上。   -另外,當(dāng)客戶端從網(wǎng)絡(luò)上斷開時,仍然可以利用“briefcasemodel"訪問數(shù)據(jù)。其操作步驟如下:先把一個遠(yuǎn)程數(shù)據(jù)庫復(fù)制到磁盤上,然后關(guān)閉計算機,再重新引導(dǎo)它、斷開網(wǎng)絡(luò)連接、編輯數(shù)據(jù),接著重新聯(lián)網(wǎng)并修改數(shù)據(jù)庫。所有這些都可以在沒有大型數(shù)據(jù)庫工具的客戶端完成。這說明為了操作數(shù)據(jù),客戶端不必每時每刻都與服務(wù)器連接。這對于膝上型計算機用戶和想要保持?jǐn)?shù)據(jù)庫通信量最小的站點是非常理想的。   -MIDAS技術(shù)的另一方面是提供訪問數(shù)據(jù)庫約束條件。當(dāng)從服 務(wù)器上卸載數(shù)據(jù)時,可以同時

7、卸載一套自動執(zhí)行的約束條件。約 束條件可以幫助程序員確保用戶輸入合法的數(shù)據(jù)。當(dāng)重新連到網(wǎng) 絡(luò)上時,數(shù)據(jù)可以被正確地修改。如果你在更改數(shù)據(jù)庫時偶然發(fā) 生了一個錯誤,那么內(nèi)建的機制會幫助程序員報告和處理錯誤。 例如,如果另一個用戶已經(jīng)更改了你正試圖更改的那條記錄,那么你將看到一個提示你如何處理的選項表。在DelphiObjectRepository中的一個預(yù)建表單可以使你的應(yīng)用程序簡單地實現(xiàn)錯誤處理。   -Borland多層計算的另一個重要功能是將數(shù)據(jù)庫的負(fù)載分散到多個服務(wù)器上。這樣,一旦發(fā)生錯誤也能恢復(fù)。概括起來講,這些技術(shù)存在于三種Broker中: -第一種叫做RemoteData

8、Broker,RemoteDataBroker結(jié)構(gòu)的精髓是讓每一個客戶端不再需要BDE,取而代之的是一個中央化的BDE,以集中管理的方式降低每一個客戶在BDE上所需的開銷 和復(fù)雜度。 -第二種叫做ConstraintBroker,它所扮演的角色是保證所有客戶數(shù)據(jù)的一致性及數(shù)據(jù)的完整性。 -第三種是BusinessObjectBroker,它的目的是給一些關(guān)鍵性的商業(yè)應(yīng)用程序提供一個快速且可信賴的使用環(huán)境。為了滿足這種高層次的要求,BusinessObjectBroker會自動地將應(yīng)用程序做適當(dāng)?shù)膭澐?,并?fù)制重要的業(yè)務(wù)規(guī)則到每一個區(qū)間,以達(dá)到速度的要求。 實現(xiàn)工具 -Borland提供了四種De

9、lphi工具幫助用戶實現(xiàn)分布式數(shù)據(jù)集。前兩個在服務(wù)器端: -1.遠(yuǎn)程數(shù)據(jù)模塊像標(biāo)準(zhǔn)數(shù)據(jù)模塊一樣,它不但可以將數(shù)據(jù)傳播到當(dāng)前的應(yīng)用中,而且會傳到網(wǎng)絡(luò)上的特定區(qū)域中。特別是它們把簡單的數(shù)據(jù)模塊轉(zhuǎn)化成COM對象,允許你通過DCOM訪問遠(yuǎn)程服務(wù)器上的數(shù)據(jù)庫。   -2.TProvider組件就像可以駐留在標(biāo)準(zhǔn)數(shù)據(jù)模塊中的TTable組件一樣,駐留在遠(yuǎn)程數(shù)據(jù)模塊中,不同的是TProvider在網(wǎng)絡(luò)上發(fā)布數(shù)據(jù)表。TTable和TQuery組件都含有Provider屬性。但是如果把它作為一個獨立的組件訪問,會有更大的靈活性和力量。特別是把TProvider組件與TTable或TQuery組件建立連

10、接,網(wǎng)絡(luò)上的其它程序就可通過DCOM從TTable或TQuery訪問數(shù)據(jù)。遠(yuǎn)程數(shù)據(jù)模塊的任務(wù)就是使客戶端訪問服務(wù)器上特定的Provider。   -在客戶端可以利用兩個組件訪問服務(wù)器提供的數(shù)據(jù): -1.TRemoteServer組件把客戶端連到服務(wù)器上,特別是連到服務(wù)器的遠(yuǎn)程數(shù)據(jù)模塊上。更明確地說是連到遠(yuǎn)程數(shù)據(jù)模塊支持的COM接口上。TRemoteServer能瀏覽可用的服務(wù)器,一旦找到服務(wù)器,TRemoteServer就可與之連接。   -2.TClientDataSet與TRemoteServer組件連接在一起,在服務(wù)器上就得到一個特定的Provider。簡言之,TCl

11、ientDataSet組件扮演了與TQuery或TTable同樣的角色,只不過它是為遠(yuǎn)程站點提供數(shù)據(jù)服務(wù)。如同在許多標(biāo)準(zhǔn)的Delphi應(yīng)用程序中傳統(tǒng)TDatabase、TTable、TDataSource、TDBGrid組件的配置結(jié)構(gòu)一樣,在遠(yuǎn)程數(shù)據(jù)集中使用TRemoteServer、TClientDataSet、TDataSource和TDBGrid組件,它們的配置只是稍有不同。在這個新的方案中,TRemoteServer的作用類似于TDatabase的作用,而TClientDataSet組件與TTable或TQuery組件所起的作用又極其相似。   結(jié)論   -MIDA

12、S為多層結(jié)構(gòu)的應(yīng)用開發(fā)提供了強大的功能,這使得開發(fā)者再也無需為越來越龐大的數(shù)據(jù)及應(yīng)用發(fā)愁了。在Delphi Client/Server版中打包了MIDAS的開發(fā)版,它可以用于多層結(jié)構(gòu)應(yīng)用的開發(fā)及調(diào)試,在應(yīng)用分布時,還需要另外購買BorlandMIDASforDelphi。Borland公司的MIDAS讓我們能用Delphi構(gòu)建強大的多層分布式數(shù)據(jù)庫系統(tǒng),MIDAS提供了很多種的客戶程序和中間層的連接方式,如:Sockect,DCOM,Corba等等,這么多的方式,在開發(fā)多層體系的時候我們應(yīng)該如何選擇呢,下面我就簡單的介紹一下這幾種連結(jié)方式。Socket: Sockect無疑是最容易配置的連接方

13、式。而且Socket只使用一個端口來進行通訊,這樣如果在擁有防火墻的系統(tǒng)中,管理員會更樂意接受Socket因為配置通過防火墻的Dcom是相對麻煩的事情。在安裝中間層的機器上,只要運行SCKTSRVR.EXE就可以和客戶端建立Socket的連接了。但是Socket并不支持早聯(lián)編(early-binding) COM和DCOM:COM/DCOM 提供了核心的NTLM的安全性和驗證機制。在COM/DCOM里面我們可以很輕松地使用早聯(lián)編(early-binding)、 回調(diào)機制(callback)和連結(jié)點機制(ConnectionPoints)。 但是它的不利因素就是配置客戶端的DCOM和讓DCOM透

14、過防火墻(FireWall)相當(dāng)麻煩。MTS:MTS能夠為分布式的系統(tǒng)提供數(shù)據(jù)庫連結(jié)池、事務(wù)支持,便于分發(fā)等優(yōu)點,在它基礎(chǔ)之上的COM+(Windows2000已經(jīng)提供了這個服務(wù))組合了COM和MTS的功能。MTS的缺點就是對處理使用BDE的多用戶應(yīng)用的事務(wù)處理支持很弱。當(dāng)然ADO不在這個范圍啦CORBA:CORBA是一個跨平臺的開放式標(biāo)準(zhǔn)(特別是在很多的JAVA應(yīng)用中,因為他們都是跨平臺的產(chǎn)品),通過VisiBroker(很著名的ORB系統(tǒng)),配置比DCOM方便多了。Borland不久前發(fā)布的IDL2Pas的產(chǎn)品使得我們可以編寫Delphi的客戶端輕松的訪問CORBA組件。CORBA本身的負(fù)

15、載平衡、命名服務(wù)和事件服務(wù)可以讓開發(fā)者構(gòu)建更穩(wěn)定和擴展性強的分布式系統(tǒng)。缺點是我們在開發(fā)CORBA得系統(tǒng)中不能完全地使用早聯(lián)編;為了支持COBRA客戶端需要分發(fā)額外的文件如borlndmm.dll, cp3245mt.dll, midas.dll,orb_br.dll,orbpas50.dll;Delphi不是能夠使用全部的VisiBroker的功能,比如以服務(wù)方式運行的OAD和GateKeeper Delphi中MIDAS到底是什么呢?和他相關(guān)組件是什么呢? MIDAS(Multitiered Distributed Application Services)多層分布式應(yīng)用服務(wù) D

16、elphi所提出的Multi-Tier結(jié)構(gòu)是把原來的Two-Tier前臺應(yīng)用程序內(nèi)的dbExpress,ADO,BDE,SQL Link,DataMoule,拿到另外一臺NT服務(wù)器(就是所謂的應(yīng)用程序服務(wù)器),而前臺程序只剩下一 個可執(zhí)行文件及MIDAS.DLL,而移到NT服務(wù)器上的DataMoule則變成一個COM程序(Remote DataModule). 注:前臺一定要把MIDAS.DLL發(fā)布到系統(tǒng)目錄下. (1)前臺程序會通過調(diào)用應(yīng)用程序服務(wù)器提供的方法(接口)提出一個請求 應(yīng)用程序服務(wù)器會響應(yīng)這個請求,傳送一個相應(yīng)的SQL命令到后臺數(shù)據(jù)庫,而后臺數(shù)據(jù)庫會把執(zhí)行SQL命令產(chǎn)生的Data

17、Set返回給應(yīng)用程序服務(wù)器. 注:Delphi提供了Type Library來幫助應(yīng)用程序服務(wù)器定義COM方法(接口) (2)NT服務(wù)器上的COM程序是通過中間軟件(dbExpress,ADO,BDE,SQL Link)傳送SQL到后臺數(shù)據(jù)庫. 當(dāng)應(yīng)用程序服務(wù)器要把讀取到的DataSet傳送給前臺時,就必須利用DCOM的機制來進行.Delphi提供的TDataSetProvider組件就會把讀取到的DataSet壓縮并且分割成一段一段的數(shù)據(jù)包,通 過DCOM或TCP/IP傳給前臺. 注:Delphi提供了RemoteDataModule向?qū)韼湍惝a(chǎn)生COM程序的結(jié)構(gòu). 由于Delphi的程序具有傳送DataSet的特殊機制,所以Delphi也實現(xiàn)了一個接口叫做IProvider(即TDataSetProvider),來幫助應(yīng)用程序服務(wù)器上的COM程序發(fā)送DataSet數(shù)據(jù). (3)前臺程序與NT服務(wù)器上的COM程

溫馨提示

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

最新文檔

評論

0/150

提交評論