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),請進行舉報或認領(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)品對分布式計算和負載平衡提供超強的支持。 -內(nèi)置在Delphi組件中使你能很容易地使用DCOM、Socket或 OLE nterprise連接兩臺機器,并在兩者之間來回傳輸數(shù)據(jù)集。 OL

3、E nterprise工具提供DCOM的選擇方法簡化了連接兩臺機器的 任務(wù),尤其是對兩臺運行Windows95的機器更是如此。 OLEnterprise使用戶能訪問ObjectBroker,它允許在幾個服務(wù) 器中隨機分配任務(wù)負載。此外,還可以在幾臺機器上裝載服務(wù)器 工具,每次實行連接時,Broker會選擇其中一臺機器。例如,如 果你有100個客戶端和3臺服務(wù)器,ObjectBroker會隨機分配負 載給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ù)庫工具的情況下讀取遠程數(shù)據(jù)。有些用戶可能會有這樣的疑問:通過瀏覽器和Web服務(wù)器也能在客戶端沒有任何數(shù)據(jù)庫工具的情況下觀察遠程機器上的數(shù)據(jù)集,為什么還要采用分布式數(shù)據(jù)集呢?這是因為瀏覽器的功能遠不如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)用中使用所有標準的Delphi組件,包括數(shù)據(jù)庫工具,但是客戶端無須裝載BDE、ODBC或者任 何數(shù)據(jù)庫類庫(例如OracleSQLNET、SybaseCTLib等等)。當 然網(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ò)上。   -另外,當客戶端從網(wǎng)絡(luò)上斷開時,仍然可以利用“briefcasemodel"訪問數(shù)據(jù)。其操作步驟如下:先把一個遠程數(shù)據(jù)庫復(fù)制到磁盤上,然后關(guān)閉計算機,再重新引導它、斷開網(wǎng)絡(luò)連接、編輯數(shù)據(jù),接著重新聯(lián)網(wǎng)并修改數(shù)據(jù)庫。所有這些都可以在沒有大型數(shù)據(jù)庫工具的客戶端完成。這說明為了操作數(shù)據(jù),客戶端不必每時每刻都與服務(wù)器連接。這對于膝上型計算機用戶和想要保持數(shù)據(jù)庫通信量最小的站點是非常理想的。   -MIDAS技術(shù)的另一方面是提供訪問數(shù)據(jù)庫約束條件。當從服 務(wù)器上卸載數(shù)據(jù)時,可以同時

7、卸載一套自動執(zhí)行的約束條件。約 束條件可以幫助程序員確保用戶輸入合法的數(shù)據(jù)。當重新連到網(wǎng) 絡(luò)上時,數(shù)據(jù)可以被正確地修改。如果你在更改數(shù)據(jù)庫時偶然發(fā) 生了一個錯誤,那么內(nèi)建的機制會幫助程序員報告和處理錯誤。 例如,如果另一個用戶已經(jīng)更改了你正試圖更改的那條記錄,那么你將看到一個提示你如何處理的選項表。在DelphiObjectRepository中的一個預(yù)建表單可以使你的應(yīng)用程序簡單地實現(xiàn)錯誤處理。   -Borland多層計算的另一個重要功能是將數(shù)據(jù)庫的負載分散到多個服務(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)用程序做適當?shù)膭澐?,并?fù)制重要的業(yè)務(wù)規(guī)則到每一個區(qū)間,以達到速度的要求。 實現(xiàn)工具 -Borland提供了四種De

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

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

11、ientDataSet組件扮演了與TQuery或TTable同樣的角色,只不過它是為遠程站點提供數(shù)據(jù)服務(wù)。如同在許多標準的Delphi應(yīng)用程序中傳統(tǒng)TDatabase、TTable、TDataSource、TDBGrid組件的配置結(jié)構(gòu)一樣,在遠程數(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)相當麻煩。MTS:MTS能夠為分布式的系統(tǒng)提供數(shù)據(jù)庫連結(jié)池、事務(wù)支持,便于分發(fā)等優(yōu)點,在它基礎(chǔ)之上的COM+(Windows2000已經(jīng)提供了這個服務(wù))組合了COM和MTS的功能。MTS的缺點就是對處理使用BDE的多用戶應(yīng)用的事務(wù)處理支持很弱。當然ADO不在這個范圍啦CORBA:CORBA是一個跨平臺的開放式標準(特別是在很多的JAVA應(yīng)用中,因為他們都是跨平臺的產(chǎn)品),通過VisiBroker(很著名的ORB系統(tǒng)),配置比DCOM方便多了。Borland不久前發(fā)布的IDL2Pas的產(chǎn)品使得我們可以編寫Delphi的客戶端輕松的訪問CORBA組件。CORBA本身的負

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ù)庫. 當應(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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論