![關(guān)于Delphi開(kāi)發(fā)分布式多層應(yīng)用系統(tǒng)核心技術(shù)_第1頁(yè)](http://file4.renrendoc.com/view12/M01/28/07/wKhkGWa9iIOAX0B3AAJDS1WBn1k055.jpg)
![關(guān)于Delphi開(kāi)發(fā)分布式多層應(yīng)用系統(tǒng)核心技術(shù)_第2頁(yè)](http://file4.renrendoc.com/view12/M01/28/07/wKhkGWa9iIOAX0B3AAJDS1WBn1k0552.jpg)
![關(guān)于Delphi開(kāi)發(fā)分布式多層應(yīng)用系統(tǒng)核心技術(shù)_第3頁(yè)](http://file4.renrendoc.com/view12/M01/28/07/wKhkGWa9iIOAX0B3AAJDS1WBn1k0553.jpg)
![關(guān)于Delphi開(kāi)發(fā)分布式多層應(yīng)用系統(tǒng)核心技術(shù)_第4頁(yè)](http://file4.renrendoc.com/view12/M01/28/07/wKhkGWa9iIOAX0B3AAJDS1WBn1k0554.jpg)
![關(guān)于Delphi開(kāi)發(fā)分布式多層應(yīng)用系統(tǒng)核心技術(shù)_第5頁(yè)](http://file4.renrendoc.com/view12/M01/28/07/wKhkGWa9iIOAX0B3AAJDS1WBn1k0555.jpg)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
PAGE1關(guān)于Delphi開(kāi)發(fā)分布式多層應(yīng)用系統(tǒng)核心技術(shù)目錄TOC\o"1-3"\h\z第一章應(yīng)用背景 3§1.1應(yīng)用需求發(fā)展 3§1.2系統(tǒng)架構(gòu)變遷 3§1.3Delphi技術(shù)背景 4第二章MIDAS中間件技術(shù) 6§2.1透時(shí)中介引擎MIDAS 6§2.2MIDAS核心技術(shù) 8第三章高級(jí)分布式多層應(yīng)用系統(tǒng) 12§3.1高效率應(yīng)用服務(wù)器 12§3.2理想的負(fù)載均衡系統(tǒng) 14§3.3完善的容錯(cuò)系統(tǒng) 14§3.4先進(jìn)的插件系統(tǒng) 16第四章IE為用戶界面應(yīng)用系統(tǒng) 17§4.1ActiveForm技術(shù) 17§4.2InternetExpress技術(shù) 18第一章應(yīng)用背景§1.1應(yīng)用需求發(fā)展科學(xué)整合、配置企業(yè)資源,快速擴(kuò)大、響應(yīng)市場(chǎng),進(jìn)一步降低生產(chǎn)成本、提高效率,實(shí)現(xiàn)管理的現(xiàn)代化、利潤(rùn)的最大化,是每個(gè)現(xiàn)代化企業(yè)管理的目標(biāo)。在日常工作和管理中,傳統(tǒng)手工方式無(wú)法滿足這種現(xiàn)代發(fā)展的需要,這時(shí),企業(yè)信息化卻為企業(yè)目標(biāo)的實(shí)現(xiàn)提供了一條解決思路。企業(yè)信息化從管理信息系統(tǒng)、物料需求計(jì)劃進(jìn)一步發(fā)展到企業(yè)資源計(jì)劃,為企業(yè)目標(biāo)的實(shí)現(xiàn)提供了巨大的支持力度。每個(gè)企業(yè)都有自己的客戶、供應(yīng)商、業(yè)務(wù)合作伙伴,這樣將各企業(yè)的信息系統(tǒng)是內(nèi)部信息集成的外部環(huán)境,從方方面面影響內(nèi)部系統(tǒng)資源集成的效果,將外部信息與系統(tǒng)內(nèi)部信息進(jìn)行整合將有利于構(gòu)建真正面向市場(chǎng)的信息系統(tǒng),從面為企業(yè)的發(fā)展提供新動(dòng)力。圖1為處在供應(yīng)鏈上的用戶。用戶用戶企業(yè)用戶客戶用戶供應(yīng)商用戶業(yè)務(wù)合作伙伴圖1處在供應(yīng)鏈上用戶§1.2系統(tǒng)架構(gòu)變遷科學(xué)技術(shù)的發(fā)展總是日新月異,信息化系統(tǒng)實(shí)現(xiàn)技術(shù)更是這樣。在LAN內(nèi)C/S模式的發(fā)展經(jīng)歷了從兩層到三層及多層的過(guò)程;在Internet/Intranet上B/S模式的發(fā)展同樣也經(jīng)歷了這個(gè)過(guò)程。圖2及圖3分別為C/S典型的兩層和三層的結(jié)構(gòu):業(yè)務(wù)數(shù)據(jù)庫(kù)LAN客戶端業(yè)務(wù)數(shù)據(jù)庫(kù)LAN客戶端圖2C/S下兩層結(jié)構(gòu)業(yè)務(wù)數(shù)據(jù)庫(kù)業(yè)務(wù)數(shù)據(jù)庫(kù)LAN客戶端應(yīng)用服務(wù)器圖3C/S下三層結(jié)構(gòu)兩層與三層從結(jié)構(gòu)的角度上講只是多了個(gè)應(yīng)用服務(wù)器,但從軟件實(shí)現(xiàn)的框架上,卻實(shí)現(xiàn)了根本性的變化。兩層結(jié)構(gòu)主要存在以下幾個(gè)弱點(diǎn):(1)胖客戶,兩層結(jié)構(gòu)客戶端普遍出現(xiàn)臃腫的現(xiàn)狀,主要是因?yàn)榭蛻舳瞬粌H有用戶圖形化界面、業(yè)務(wù)模型、控制,而且還包括業(yè)務(wù)規(guī)則等。(2)業(yè)務(wù)規(guī)則不一致,所有的業(yè)務(wù)規(guī)則都分居在各個(gè)業(yè)務(wù)模塊之上,對(duì)于在不同業(yè)務(wù)模塊中同一個(gè)業(yè)務(wù)對(duì)象,在對(duì)實(shí)現(xiàn)業(yè)務(wù)規(guī)則時(shí)可能出現(xiàn)不一致。(3)軟件重用性差,對(duì)同一業(yè)務(wù)規(guī)則在不同的業(yè)務(wù)模塊中,若能將同一業(yè)務(wù)規(guī)則提取出來(lái)形成業(yè)務(wù)規(guī)則層,不僅可為一個(gè)軟件各個(gè)業(yè)務(wù)模塊來(lái)調(diào)用,而且可為其他軟件來(lái)使用。(4)維護(hù)性差,系統(tǒng)可維護(hù)性作為系統(tǒng)一個(gè)重要性能指標(biāo)在系統(tǒng)開(kāi)發(fā)中占重要地位。三層應(yīng)用系統(tǒng)將業(yè)務(wù)規(guī)則層抽取出來(lái),結(jié)合部分的系統(tǒng)控制功能形成應(yīng)用服務(wù)層,有效地解決了兩層的缺陷,并且在基礎(chǔ)之上還提供負(fù)載均衡機(jī)制和強(qiáng)大的容錯(cuò)機(jī)制,從整體上提高了系統(tǒng)各個(gè)方面的性能。B/S模式的情況也與此類似。業(yè)務(wù)數(shù)據(jù)庫(kù)LAN客戶端業(yè)務(wù)數(shù)據(jù)庫(kù)LAN客戶端應(yīng)用服務(wù)器HTML/XMLInternet圖4集成商務(wù)結(jié)構(gòu)業(yè)務(wù)合作伙伴WAN客戶端WEB服務(wù)器HTMLXML§1.3Delphi技術(shù)背景Delphi支持許多重要的分布式技術(shù),針對(duì)Windows平臺(tái),Delphi結(jié)合了Microsoft的MTS以及Web服務(wù)器建構(gòu)出分布式,Internet/Intranet的應(yīng)用系統(tǒng)。在圖5中,軟件開(kāi)發(fā)人員可以先在MTS/MIDAS服務(wù)器中開(kāi)發(fā)各種企業(yè)對(duì)象,然后再使用Delphi開(kāi)發(fā)客戶端的圖形用戶接口并且使用中價(jià)的企業(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ì)象。圖5中有許多的關(guān)鍵技術(shù)是這種分布式關(guān)鍵應(yīng)用系統(tǒng)必須具備的,例如,Delphi的InternetExpress組件允許軟件開(kāi)發(fā)人員以X ML標(biāo)準(zhǔn)語(yǔ)言建制分布式電子商業(yè),并且使用ADO組件配合MTS/MIDAS中介技術(shù)可做出安全強(qiáng)固的分布式應(yīng)用系統(tǒng)。DCOM/COM+DCOM/COM+MIDASInternet圖5Delphi在分布式系統(tǒng)開(kāi)發(fā)主要技術(shù)應(yīng)用程序客戶端IE客戶端NetScape客戶端業(yè)務(wù)數(shù)據(jù)庫(kù)ADOOLEDBBDE/IDAPIODBCMTS/MIDAS服務(wù)器WEB服務(wù)器IISCGIISAPI/NSAPIASPDelphiXML/HTMLXML/HTMLInternetExpress技術(shù)WebBroker技術(shù)XML/HTMLADO元件DCOM/COM+ObjectPascal元件Delphi不僅能夠開(kāi)發(fā)出執(zhí)行在Windows平臺(tái)的關(guān)鍵性應(yīng)用系統(tǒng),而且使用最新的軟件技術(shù),可以和Unix/Linux整合在一起以提供分布式服務(wù)。第二章MIDAS中間件技術(shù)§2.1透時(shí)中介引擎MIDASMIDAS是Delphi使用來(lái)開(kāi)發(fā)多層應(yīng)用系統(tǒng)使用的中介透明引擎。通過(guò)MIDAS,程序員可以使用相同組件存取不同的后端應(yīng)用程序服務(wù)器。這此后端應(yīng)用程序服務(wù)器可以是COM/DCOM應(yīng)用程序服務(wù)器,MTS中介軟件,或是CORBA應(yīng)用程序服務(wù)器。此外MIDAS也提供了容錯(cuò)能力和負(fù)載均衡以及高執(zhí)行效率等能力。一、MIDAS結(jié)構(gòu)MIDAS是由數(shù)種不同功能的模型組成的。其中有三個(gè)主要的中介者(Broker):(1)遠(yuǎn)程數(shù)據(jù)中介者(RemoteDataBroker):提供客戶端存取遠(yuǎn)程數(shù)據(jù)的能力。(2)Constraint中介者:允許客戶端應(yīng)用程序下載遠(yuǎn)程數(shù)據(jù)為對(duì)于數(shù)據(jù)設(shè)定的Constraint。讓數(shù)據(jù)在客戶端就被數(shù)據(jù)庫(kù)的Constraint檢查,無(wú)需把數(shù)據(jù)傳遞到遠(yuǎn)程數(shù)據(jù)庫(kù),而增加網(wǎng)絡(luò)負(fù)荷。(3)企業(yè)對(duì)象中介者(BusinessObjectBroker):允許應(yīng)用系統(tǒng)開(kāi)發(fā)招待企業(yè)邏輯的企業(yè)對(duì)象,并且提供容錯(cuò)能力和負(fù)載均衡能力。二、MIDAS通訊協(xié)議MIDAS可以使用的通訊協(xié)議也包括三種:分別是TCP/IP,DCOM和OLEEnterprise。這三種不同的通訊協(xié)議各有優(yōu)缺點(diǎn),使用的通訊協(xié)議結(jié)構(gòu)也不一樣。圖6、圖7、圖8是MIDAS使用的三種通訊協(xié)議結(jié)構(gòu)圖。從圖中可以看到不同的通訊協(xié)議使用的通訊層都是不一樣的。但是所的有通訊協(xié)議都必須使用TCP/IPSocket和MicrosoftRPC。ClientProcessClientProcessRemoteObjectProxyClientAppRemoteServerProcessRemoteServStubRemoteObjectMIDASMSRPCTCP/IP(必須存在)圖6MIDAS使用TCP/IP結(jié)構(gòu)圖DCOMDCOMClientProcessRemoteObjectProxyClientAppRemoteServerProcessRemoteServStubRemoteObjectMIDASMSRPCTCP/IP(必須存在)圖7MIDAS使用DCOM結(jié)構(gòu)圖DCOMRemoteServerProcessRemoteServerProcessRemoteServStubRemoteObjectClientProcessRemoteObjectProxyClientAppOLEMIDASOLEOLEMIDASOLEMSRPCMSRPCTCP/IP(必須存在)圖8MIDAS使用OLEEnterprise結(jié)構(gòu)圖圖8MIDAS使用OLEEnterprise結(jié)構(gòu)圖一般來(lái)說(shuō)DCOM應(yīng)用程序服務(wù)器會(huì)比Socket應(yīng)用程序服務(wù)器有5%到10%的運(yùn)行速度差異,實(shí)際的差距會(huì)根據(jù)應(yīng)用程序的類型和機(jī)器的組網(wǎng)結(jié)構(gòu)而有所差異。雖然DCOM應(yīng)用程序服務(wù)器在執(zhí)行速度上享有優(yōu)勢(shì),但是DCOM初次連接的速度卻與Socket有大的差異,見(jiàn)下表1:花費(fèi)時(shí)間使用DCOM初次連接2到5秒使用Socket初次連接小于1秒表1DCOMvs.Socket連接造成DCOM連接速度較慢有兩個(gè)原因:客戶端機(jī)器中所使用的網(wǎng)絡(luò)連接通訊協(xié)議;機(jī)器中DNS的設(shè)定大幅影響客戶端應(yīng)用程序服務(wù)器的速度。而DCOM運(yùn)行時(shí)速度較快則是因?yàn)椋篋COM通訊協(xié)議在傳送數(shù)據(jù)時(shí)會(huì)對(duì)傳遞的數(shù)據(jù)進(jìn)行壓縮。三、MIDAS功能MIDAS3.0MTSCORBA負(fù)載均衡●●容錯(cuò)能力●●CallBacks●●●DatabasePooling●●●ObjectPooling●〇〇線程模型●●●交易控制〇●●說(shuō)明●代表支持此項(xiàng)功能〇代表需要程序員的協(xié)助表2MIDAS3.0功能表§2.2MIDAS核心技術(shù)一、Data與Delta數(shù)據(jù)封包圖8說(shuō)明了作為包含MIDAS技術(shù)的TClientDataSet兩個(gè)數(shù)據(jù)封包:Data數(shù)據(jù)封包和Delta數(shù)據(jù)封包;TClientDataSet不管是向應(yīng)用服務(wù)器取得數(shù)據(jù)或是用戶在客戶端更新數(shù)據(jù)傳遞給應(yīng)用程序服務(wù)器,都是以數(shù)據(jù)封包形式。數(shù)據(jù)封包數(shù)據(jù)封包ClientDataSetData數(shù)據(jù)封包客戶端Delta數(shù)據(jù)封包運(yùn)程數(shù)據(jù)模塊ProviderResolver數(shù)據(jù)庫(kù)服務(wù)器圖8MIDAS應(yīng)用程序運(yùn)作的原理下面采用類型庫(kù)方法來(lái)舉例具體說(shuō)明Data和Delta數(shù)據(jù)封包的格式及關(guān)系:步驟一、剛?cè)?shù)據(jù)到客戶端時(shí),Data和Delta數(shù)據(jù)封包內(nèi)容如表3和表4:StateIDNameOValuedsBrowse1張三23dsBrowse2王五45表3Data數(shù)據(jù)封包UpdateStatusIDNameOValueNullNullNullNull表4Delta數(shù)據(jù)封包步驟二、編輯數(shù)據(jù),修改第一條記錄Value值為26,刪除第二條記錄,增加一條記錄后Data數(shù)據(jù)封包與Delta數(shù)據(jù)封包內(nèi)容如下表5和表6:StateIDNameOValuedsEdit1張三26dsInsert3趙二33表5Data數(shù)據(jù)封包UpdateStatusIDNameOValueusUnModified1張三23usModifiedNullNull26usDelete2王五45usInsert3趙二33表6Delta數(shù)據(jù)封包步驟三、用AppServer.UpdateXXX類型庫(kù)方法將表6的Delta數(shù)據(jù)封包傳遞給應(yīng)用服務(wù)器層UpdateXXX方法。步驟四、用AppServer.UpdateXXX類型庫(kù)方法負(fù)責(zé)將表6的Delta數(shù)據(jù)封包進(jìn)行解析,生成三條SQL語(yǔ)言如表7:SQL語(yǔ)言1UpdateXTableSetName=’張三’,OValue=26WhereID=12DeleteXTableWhereID=23InsertXTable(ID,Name,OValue)Values(3,’趙二’,33)步驟五、通過(guò)AdoConnection中ADO接口在一個(gè)事務(wù)中到數(shù)據(jù)庫(kù)中執(zhí)行。步驟六、更新出錯(cuò)時(shí),則返回一個(gè)信息給客戶端報(bào)錯(cuò),若用客戶選擇放棄,調(diào)用TClientDataSet.CancelUpdates則Data和Delta數(shù)據(jù)封包形式如表3和表4;更新成立時(shí),則返回一個(gè)信息給客戶端,客戶端則采用TClientDataSet.MergeChangeLog方法來(lái)更新Data和Delta數(shù)據(jù)封包,更新后Data和Delta數(shù)據(jù)封包內(nèi)容如表7和表8:StateIDNameOValuedsBrowse1張三26dsBrowse3趙二33表7Data數(shù)據(jù)封包UpdateStatusIDNameOValueNullNullNullNull表8Delta數(shù)據(jù)封包二、負(fù)載均衡機(jī)制圖9是兩個(gè)應(yīng)用程序服務(wù)器向BusinessObjectBroker注冊(cè),圖形10中有三個(gè)客戶端應(yīng)用程序向BusinessObjectBroker要求可以使用的應(yīng)用程序服務(wù)器,BusinessObjectBroker把注冊(cè)的兩個(gè)而且執(zhí)行正常的應(yīng)用程序服務(wù)器返回給客戶端應(yīng)用程序。由于客戶端應(yīng)用程序有三個(gè),比起應(yīng)用程序服務(wù)器多了一個(gè),所以MIDAS會(huì)分配其中兩個(gè)客戶端各使用一個(gè)獨(dú)立的應(yīng)用程序服務(wù)器,而另外兩個(gè)客戶端則共享一個(gè)應(yīng)用程序服務(wù)器,見(jiàn)圖11。由于沒(méi)有空閑的應(yīng)用程序服務(wù)器,而且也不會(huì)發(fā)生所有的客戶端應(yīng)用程序都使用一個(gè)應(yīng)用程序服務(wù)器,因此此時(shí)系統(tǒng)的應(yīng)用程序服務(wù)器是處于負(fù)載均衡的狀態(tài)。注冊(cè)注冊(cè)客戶端應(yīng)用程序客戶端應(yīng)用程序客戶端應(yīng)用程序OLEEnterprise應(yīng)用程序服務(wù)器1應(yīng)用程序服務(wù)器2BusinessObjectBroker圖9應(yīng)用服務(wù)器注冊(cè)請(qǐng)求服務(wù)對(duì)象并得到應(yīng)答請(qǐng)求服務(wù)對(duì)象并得到應(yīng)答客戶端應(yīng)用程序客戶端應(yīng)用程序客戶端應(yīng)用程序OLEEnterprise應(yīng)用程序服務(wù)器1應(yīng)用程序服務(wù)器2BusinessObjectBroker圖10客戶端請(qǐng)求服務(wù)對(duì)象并得到應(yīng)答客戶端客戶端應(yīng)用程序客戶端應(yīng)用程序客戶端應(yīng)用程序OLEEnterprise應(yīng)用程序服務(wù)器1應(yīng)用程序服務(wù)器2BusinessObjectBroker圖11客戶端與服務(wù)器進(jìn)行交互三、容錯(cuò)機(jī)制若圖11中的第二個(gè)應(yīng)用程序服務(wù)器不堪重負(fù)已癱瘓,則客戶端應(yīng)用程序會(huì)向BusinessObjectBroker注銷此應(yīng)用服務(wù)器,并請(qǐng)求新的應(yīng)用服務(wù),如圖12??蛻舳丝蛻舳藨?yīng)用程序客戶端應(yīng)用程序客戶端應(yīng)用程序OLEEnterprise應(yīng)用程序服務(wù)器1應(yīng)用程序服務(wù)器2BusinessObjectBroker圖12注銷并請(qǐng)求服務(wù)注銷應(yīng)用服務(wù)器2,請(qǐng)求服務(wù)對(duì)象并得到應(yīng)答原系統(tǒng)中只注冊(cè)了兩個(gè)應(yīng)用程序服務(wù)器,后應(yīng)用程序服務(wù)器2被注銷掉,系統(tǒng)只剩應(yīng)用程序服務(wù)器1,故系統(tǒng)返回應(yīng)用程序服務(wù)器,客戶端應(yīng)用程序得到服務(wù)器名后即與之進(jìn)行交互,如圖13??蛻舳丝蛻舳藨?yīng)用程序客戶端應(yīng)用程序客戶端應(yīng)用程序OLEEnterprise應(yīng)用程序服務(wù)器1應(yīng)用程序服務(wù)器2BusinessObjectBroker圖13客戶端與服務(wù)器正常交互第三章高級(jí)分布式多層應(yīng)用系統(tǒng)§3.1高效率應(yīng)用服務(wù)器一、應(yīng)用服務(wù)器類型Dll應(yīng)用服務(wù)器,即應(yīng)用服務(wù)器做成Dll文件,優(yōu)缺點(diǎn)如下:優(yōu)點(diǎn):方便,不需要啟動(dòng)就可提供服務(wù)。缺點(diǎn):難提供實(shí)現(xiàn)控制功能,如取消一個(gè)在線用戶。NT服務(wù)應(yīng)用服務(wù)器,采用ServiceApplication進(jìn)行開(kāi)發(fā),優(yōu)缺點(diǎn)如下:優(yōu)點(diǎn):方便,隨Windows啟動(dòng)而啟動(dòng)后即可提供服務(wù),能提供實(shí)現(xiàn)控制功能。缺點(diǎn):安裝卸載比較麻煩。應(yīng)用程序服務(wù)器,采用Application進(jìn)行開(kāi)發(fā),優(yōu)缺點(diǎn)如下:優(yōu)點(diǎn):方便,一般可手工啟動(dòng);安裝卸裁較易,能提供實(shí)現(xiàn)控制功能。缺點(diǎn):連接時(shí)啟動(dòng)連接速度較慢。應(yīng)用服務(wù)器類型一般選擇應(yīng)用程序服務(wù)器。二、服務(wù)器中Automation對(duì)象實(shí)例COM對(duì)象的Instance說(shuō)明Single只允許應(yīng)用程序服務(wù)器中的Automation對(duì)象同時(shí)讓一個(gè)客戶端應(yīng)用程序使用。也就是說(shuō)這個(gè)Automation對(duì)象會(huì)讓所有客戶端共享使用。Multiple允許應(yīng)用程序服務(wù)器中的Automation對(duì)象同時(shí)讓多個(gè)客戶端應(yīng)用程序使用。也就是說(shuō)每一個(gè)客戶端都會(huì)激活一個(gè)新的Automation對(duì)象,每一個(gè)客戶端都使用它自己的Automation對(duì)象。Internal使用nternal的Automation對(duì)象代表它只是在應(yīng)用程序服務(wù)器執(zhí)行時(shí)暫時(shí)存在的COM對(duì)象。也表示這個(gè)Automation對(duì)象不會(huì)在系統(tǒng)注冊(cè)器中注冊(cè)任何的數(shù)據(jù)。這種Automation對(duì)象通常是屬于特定應(yīng)用程序服務(wù)器的COM對(duì)象,只能由應(yīng)用程序服務(wù)器本身建立,使用之。而不能,或是不愿意讓外界程序建立,使用之。表9服務(wù)器中Automation對(duì)象實(shí)例三、應(yīng)用服務(wù)器線程模型COM/DCOM使用的線程模型如表9:COM線程模型說(shuō)明SingleThread單線程,只有一個(gè)線程服務(wù)任何客戶端的要求。ApartmentThread這種線程模型允許COM服務(wù)器擁有多個(gè)相同的Apartment在不同的服務(wù)器線程中執(zhí)行,如此一來(lái)就可以同時(shí)服務(wù)許多個(gè)客戶端。但是在每一個(gè)Apartment中只有一個(gè)單一線程可能執(zhí)行這個(gè)Apartment中任何的COM對(duì)象。由于在COM服務(wù)器中可能有數(shù)個(gè)線程同時(shí)在執(zhí)行,所以每一個(gè)線程必須小心保護(hù)全域變量的存取。FreeThreading這種線程模型允許客戶端應(yīng)用程序同時(shí)存取COM服務(wù)器之中的任何COM對(duì)象。BothThreading同時(shí)支持ApartmentModel和FreeThreading的線程模型。這意謂在這個(gè)COM服務(wù)器中可能有多個(gè)不同使用不同線程模型的COM對(duì)象。此外BothThreading也保證當(dāng)它通過(guò)接口回叫客戶端的應(yīng)用程序時(shí),所有的回叫是依序的,而且會(huì)回叫到正確的客戶端線程。NeutralThreading(無(wú)相關(guān)資料,應(yīng)該是更好的線程模型)表10COM/DCOM線程模型四、小結(jié)在假設(shè)客戶端應(yīng)用程序?yàn)閱尉€程模型下,應(yīng)用程序服務(wù)器應(yīng)采用Multiple類型的COM對(duì)象,而線程模型則采用Apartment線程模型,在這樣認(rèn)定下來(lái)討論以下事實(shí):每一個(gè)參加分布式多層的應(yīng)用程序,不管是客戶端應(yīng)用程序或是服務(wù)端的應(yīng)用程序服務(wù)器,在執(zhí)行前,都必須向操作系統(tǒng)的COM函數(shù)倉(cāng)庫(kù)初始化并且進(jìn)入特定的Apartment。有如下結(jié)論:(1)應(yīng)用程序的線程(不管是主線程或是其它的線程)都在一個(gè)特定的Apartment之中執(zhí)行。(2)COM對(duì)象是建立于特定的線程中。(3)Apartment是存在于Process之中。結(jié)合Delphi選項(xiàng)和語(yǔ)言,各種關(guān)系可以使用圖14來(lái)說(shuō)明。ProcessProcessApartment線程COM對(duì)象(遠(yuǎn)程數(shù)據(jù)模塊)Tthread對(duì)象Instancing選項(xiàng)CreateRemoteObjectCoInitializeEX圖14Delphi中COM的各種關(guān)系§3.2理想的負(fù)載均衡系統(tǒng)一、多應(yīng)用程序服務(wù)器原因系統(tǒng)容錯(cuò)的需要,不因一臺(tái)應(yīng)用服務(wù)器停止工作而系統(tǒng)癱瘓。應(yīng)用服務(wù)器連接數(shù)據(jù)原因,在Apartment線程模型下,一般一臺(tái)應(yīng)用服務(wù)器可以服務(wù)48臺(tái)客戶端,若再增加客戶端,速度有一定的下降(具體根據(jù)系統(tǒng)資源)。負(fù)載均衡的需要,一個(gè)應(yīng)用服務(wù)器負(fù)載過(guò)大時(shí),系統(tǒng)性能會(huì)有明顯的下降二、多應(yīng)用程序服務(wù)器負(fù)載均衡實(shí)現(xiàn)MIDAS能夠把客戶端應(yīng)用程序的需求分配到不同的應(yīng)用程序服務(wù)器之中執(zhí)行,以提高客戶端應(yīng)用程序和應(yīng)用程序服務(wù)器的執(zhí)行效率。業(yè)務(wù)數(shù)據(jù)庫(kù)業(yè)務(wù)數(shù)據(jù)庫(kù)LAN客戶端客戶端應(yīng)用服務(wù)器1應(yīng)用服務(wù)器2LAN客戶端客戶端WEB服務(wù)器隨機(jī)請(qǐng)求服務(wù)降低單個(gè)服務(wù)器上負(fù)載圖15負(fù)載均衡示意圖Delphi的TSimpleObjectBroker能提供負(fù)載均衡功能,將TSimpleObjectBroker與TADOConnection相連接,在TADOConnection中設(shè)置應(yīng)用程序服務(wù)器程序名以及ObjectBroker選項(xiàng),而以TSimpleObjectBroker中設(shè)置應(yīng)用程序服務(wù)器的機(jī)器名,再將LoadBalanced置為True,即可提供負(fù)載均衡功能。§3.3完善的容錯(cuò)系統(tǒng)在執(zhí)行關(guān)鍵性業(yè)務(wù)時(shí),系統(tǒng)的穩(wěn)定性是非常重要的,MIDAS在多層應(yīng)用系統(tǒng)中的提供了容錯(cuò)功能,關(guān)鍵是TSimpleObjectBroker組件,將TSimpleObjectBroker及TADOConnection組件按§3.2中設(shè)置,即可實(shí)現(xiàn)系統(tǒng)容錯(cuò)功能。容錯(cuò)系統(tǒng)功能流程圖16-圖18如下:圖16為為應(yīng)用服務(wù)器1正在為客戶端提供服務(wù)。應(yīng)用服務(wù)器應(yīng)用服務(wù)器2業(yè)務(wù)數(shù)據(jù)庫(kù)應(yīng)用服務(wù)器1圖16正在服務(wù)圖客戶端正在服務(wù)客戶端圖17說(shuō)明在應(yīng)用服務(wù)器1發(fā)生故障時(shí),系統(tǒng)主動(dòng)請(qǐng)求服務(wù),MIDAS給出其他應(yīng)用服務(wù)器,若此時(shí)給出的為應(yīng)用服務(wù)器2且應(yīng)用服務(wù)器2運(yùn)行正常,則應(yīng)用服務(wù)器2為客戶端提供服務(wù)。應(yīng)用服務(wù)器應(yīng)用服務(wù)器2業(yè)務(wù)數(shù)據(jù)庫(kù)應(yīng)用服務(wù)器1圖17服務(wù)出錯(cuò)后請(qǐng)求其他服務(wù)圖客戶端請(qǐng)求服務(wù)客戶端若此時(shí)應(yīng)用服務(wù)器2也發(fā)生故障,且系統(tǒng)中無(wú)其他正常運(yùn)行的應(yīng)用服務(wù)器,則系統(tǒng)客戶端自動(dòng)將其保存為本地交易文件,等下次要一個(gè)應(yīng)用服務(wù)器為其提供服務(wù)時(shí)提交系統(tǒng)處理。如圖18。應(yīng)用服務(wù)器應(yīng)用服務(wù)器2業(yè)務(wù)數(shù)據(jù)庫(kù)應(yīng)用服務(wù)器1圖18其他服務(wù)也出錯(cuò)后存為本地交易文件圖客戶端本地交易文件保存客戶端TSimpleObjectBroker提供了圖16-圖18的除本地交易文件之外的容錯(cuò)功能,而TClientDataSet則提供了本地交易文件的容錯(cuò)功能,這種本地交易文件是以Delta的形式保存在本地,TClientDataSet.SaveToFile方法,而TClientDataSet.LoadFromFile則提供了恢復(fù)數(shù)據(jù)為下一次服務(wù)器正常工作時(shí)提交應(yīng)用服務(wù)器執(zhí)行的功能?!?.4先進(jìn)的插件系統(tǒng)插件技術(shù)既有利于提供松散的框架系統(tǒng),也有利于提高軟件產(chǎn)品核心技術(shù)的保密性,系統(tǒng)插件的技術(shù)如下圖19:客戶端應(yīng)用程序客戶端應(yīng)用程序應(yīng)用服務(wù)器程序業(yè)務(wù)數(shù)據(jù)庫(kù)業(yè)務(wù)模塊插件A業(yè)務(wù)A數(shù)據(jù)庫(kù)表應(yīng)用服務(wù)插件A業(yè)務(wù)模塊插件B業(yè)務(wù)B數(shù)據(jù)庫(kù)表應(yīng)用服務(wù)插件B業(yè)務(wù)模塊插件C業(yè)務(wù)C數(shù)據(jù)庫(kù)表應(yīng)用服務(wù)插件C圖19系統(tǒng)插件技術(shù)示意圖在實(shí)現(xiàn)上主要是應(yīng)用服務(wù)器程序與應(yīng)用服務(wù)插件的集成和客戶端應(yīng)用程序與業(yè)務(wù)模塊插件的集成,在應(yīng)用服務(wù)程序中,主要提供主功為通訊和控制功能,即將客戶端應(yīng)用程序傳遞過(guò)來(lái)的數(shù)據(jù)封包Delta傳遞給相應(yīng)的應(yīng)用服務(wù)插件,并且實(shí)現(xiàn)對(duì)招
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 現(xiàn)代物流信息系統(tǒng)建設(shè)中的標(biāo)準(zhǔn)化問(wèn)題
- 掛繩高空作業(yè)施工方案
- 拆除臨時(shí)用電施工方案
- 生態(tài)文明教育在校園的實(shí)踐與推廣
- 現(xiàn)代企業(yè)綜合管理能力提升及領(lǐng)導(dǎo)力培訓(xùn)方案研究報(bào)告
- 國(guó)慶節(jié)營(yíng)銷活動(dòng)方案模板
- 2023三年級(jí)語(yǔ)文上冊(cè) 第一單元 習(xí)作:猜猜他是誰(shuí)說(shuō)課稿 新人教版
- Unit 2 AnimaIs Lesson 1 Enjoy the story(說(shuō)課稿)-2024-2025學(xué)年北師大版(三起)英語(yǔ)五年級(jí)上冊(cè)
- 2024秋八年級(jí)物理上冊(cè) 第1章 機(jī)械運(yùn)動(dòng) 第2節(jié) 運(yùn)動(dòng)的描述說(shuō)課稿2(新版)新人教版
- 2025仿石漆施工合同
- 數(shù)學(xué)-河南省三門峽市2024-2025學(xué)年高二上學(xué)期1月期末調(diào)研考試試題和答案
- 二零二五版電力設(shè)施維修保養(yǎng)合同協(xié)議3篇
- 最經(jīng)典凈水廠施工組織設(shè)計(jì)
- VDA6.3過(guò)程審核報(bào)告
- 《心臟血管的解剖》課件
- CAPP教學(xué)講解課件
- 自然環(huán)境的服務(wù)功能課件 高中地理人教版(2019)選擇性必修3
- 小耳畸形課件
- 機(jī)械制造有限公司組織架構(gòu)圖模板
- 精美唯美淡雅個(gè)人求職簡(jiǎn)歷模板 (7)
- 環(huán)保鐵1215物質(zhì)安全資料表MSDS
評(píng)論
0/150
提交評(píng)論