[作者:coolriver 轉(zhuǎn)貼自:CSDN - 文檔中心 點擊數(shù):2567 更新時間:2004-8-26 文章錄入:
admin]
三層客戶/服務(wù)器
一:優(yōu)點:靈活性和可擴(kuò)展性。
應(yīng)用三層開發(fā)技術(shù)(分布式)的原因
(參考書目: Delphi 5.x分布式多層應(yīng)用系統(tǒng)篇)
一:解決客戶機/服務(wù)器結(jié)構(gòu)的維護(hù)成本問題,改善客戶機/服務(wù)器結(jié)構(gòu)延展性問題。
客戶機/服務(wù)器結(jié)構(gòu)支持的用戶人數(shù)有一定限度(200人以下)。則種結(jié)構(gòu)限制了Internet/Intranet及電子商務(wù)的發(fā)展。三層開發(fā)應(yīng)用Database Pooling, Object pooling,Resource Pooling,線程模式提供了高度延展性。
二:解決應(yīng)用邏輯重復(fù)使用的問題。
例如:當(dāng)企業(yè)要在原有的客戶機/服務(wù)器結(jié)構(gòu)上添加Web瀏覽服務(wù)時,就需要配置Web服務(wù)器,重新編寫所有應(yīng)用邏輯,并且更新MIS系統(tǒng)。在三層結(jié)構(gòu)中,用COM/DCOM, CORBA(Common Object Request Broker Architecture)對象,或Enterprise Java Bean等,封裝企業(yè)的邏輯程序代碼(稱之為企業(yè)對象),可以解決上述問題。大大降低開發(fā)和維護(hù)的成本。
三:整合不同系統(tǒng)結(jié)構(gòu)的需要,及時應(yīng)用新技術(shù)的需要。
二:Microsoft的三層服務(wù)模型
1:結(jié)構(gòu):是windows DNA(distributed internet applications,分布式內(nèi)部網(wǎng))COM(component object model ,構(gòu)件對象模型)構(gòu)件作為實現(xiàn)系統(tǒng)及應(yīng)用程序服務(wù)的工具。
l 用戶服務(wù)
l 業(yè)務(wù)服務(wù)
l 數(shù)據(jù)服務(wù)
(1)用戶服務(wù):windows DNA定義了四種可用于實現(xiàn)用戶服務(wù)層的客戶:
n 標(biāo)準(zhǔn)瀏覽客戶:依賴于簡單,基于頁面的HTML來管理數(shù)據(jù)表示和與用戶進(jìn)行交互.其兼容性 很好,功能不豐富。
n 增強型瀏覽器客戶:汲取某個特殊瀏覽器(ex: Dynamic HTML ,腳本及ActiveX控件)的優(yōu)點來最大化用戶接口的豐富性和功能 ,適用于公司intranet .
n 依賴型Internet客戶:能在客戶機器上將對Internet的訪問和對操作系統(tǒng)的訪問集成在一塊。
n 增強型Internet客戶:Microsoft Office 97和Microsoft Visual Studio.
(2)業(yè)務(wù)服務(wù):通過將基于服務(wù)器的Microsoft產(chǎn)品與定制的COM構(gòu)件運行環(huán)境集成在一塊來實現(xiàn)。
n Web服務(wù)( Microfsoft Internet Information Server與Active Server Pages ).
n 事務(wù)和構(gòu)件服務(wù) (Microsoft Transaction server和 COM) .
n 消息服務(wù)(Microsoft消息隊列服務(wù)器)。
n 通用數(shù)據(jù)訪問(universal data access)(Microsoft數(shù)據(jù)訪問過件)
l 大型機環(huán)境的互操作(Microsoft SNA服務(wù)器). 其詳細(xì)信息在下面的專題中列出。
(3)數(shù)據(jù)服務(wù):
n Microsoft SQL Server7數(shù)據(jù)庫。
n Microsoft Exchange server 5.5版本的目錄和信息庫。
專題:
業(yè)務(wù)服務(wù)
一:Web服務(wù)( Microsoft Internet Information Server與Active Server Pages ).
Web服務(wù)對象模型:
1,server對象:提供對服務(wù)器上方法和屬性的訪問.例:問(universal data access)(Microsoft數(shù)據(jù)訪問構(gòu)件) setobjmyobject=server.createobject(“businessserver.myruleobject”)
2:Session對象: 用來存儲一個特定用戶會話所必須的信息。
3:Application對象:用來使某個應(yīng)用程序的所有用戶共享息。
4:Request對象:略。
5:Response對象:略.
二:事務(wù)和構(gòu)件服務(wù) (Microsoft Transaction server和 COM)
1:Microsoft事務(wù)服務(wù)器(MTS)是基于構(gòu)件的事務(wù)處理系統(tǒng),用來滿足復(fù)雜事務(wù)處理。MTS支 持SQL Server和任
何基于X/open算法的XA協(xié)議的數(shù)據(jù)庫(見注釋)。
MTS提供的服務(wù)有:
n 對分布事務(wù)的支持。
n 用于控制實例化和使用對象安全的服務(wù)。
n 過程和線程的自動管理。
n 對象實例的管理。
n 數(shù)據(jù)庫連接管理(連接池)。
在應(yīng)用程序中可聲明相應(yīng)的構(gòu)件完成以上服務(wù)。
2:MTS和SQL server事務(wù)一樣,要求原子執(zhí)行,或整個成功,整個失敗。Transaction Server與Microsoft Distributed Transaction Coordinator(MSDTC)交互確認(rèn)事務(wù)滿足ACID(原子性Atomicity,一致性Consistency,分離性Isolatation和耐久性Durability)。
3:MTS和SQL server事務(wù)的區(qū)別.MTS可以用visual basic ,visual c++ 等封裝的MTS構(gòu)件實現(xiàn) , Recordset對
象的addnew方法添加新行。SQL server事務(wù)只能由Transact-SQL代碼編寫,如 (ADO).
4:Windows DNA(windows distributed internet application architecture):將客戶/服務(wù)模式開發(fā)與web和在一起的戰(zhàn)略 .
使用HTML,DHTML,Active server pages向用戶提供第一層(表達(dá)層), MTS和MTS的構(gòu)件, 如IIS(internet information server),IIS/ASP構(gòu)件及ASP腳本占據(jù)中間層(業(yè)務(wù)邏輯層),SQL server作為數(shù)據(jù)服務(wù)層。
5:MTS使用分布事務(wù)協(xié)調(diào)者(Distributed Transaction Coordinator , DTC)事務(wù)引擎.DTC使用兩級段交付標(biāo)準(zhǔn)。
關(guān)于DTC的信息可通過一下方法得到:用MMC(Microsoft Management Console)打開c:\winnt\system32\services.msc,
在右邊的列表中找到DTC服務(wù),察看其屬性。
6:使用MTS最大化系統(tǒng)性能。(注意事項)
n 避免傳遞或返回對象。
n 盡可能通過值(BY VAL)來傳遞參數(shù)。(By Val關(guān)鍵字使網(wǎng)絡(luò)間的旅程最小)
n 避免創(chuàng)建數(shù)據(jù)庫游標(biāo)。少用RecordSet對象。
n 通過使對象包容器線程化(Apartment Threaded),MTS可以在多個對象中執(zhí)行并發(fā)的客戶請求。
7:
注釋:XA是一種由X/Open組織定義的兩相提交協(xié)議,允許多個數(shù)據(jù)庫服務(wù)期間的事務(wù)協(xié)同,并將其看作一個事務(wù)。(Unix數(shù)據(jù)庫,