S體系結(jié)構(gòu)開發(fā)應(yīng)用系統(tǒng)_第1頁
S體系結(jié)構(gòu)開發(fā)應(yīng)用系統(tǒng)_第2頁
S體系結(jié)構(gòu)開發(fā)應(yīng)用系統(tǒng)_第3頁
S體系結(jié)構(gòu)開發(fā)應(yīng)用系統(tǒng)_第4頁
S體系結(jié)構(gòu)開發(fā)應(yīng)用系統(tǒng)_第5頁
已閱讀5頁,還剩2頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

基于B/S體系結(jié)構(gòu)開發(fā)應(yīng)用系統(tǒng)這種結(jié)構(gòu)不僅把客戶機從沉重的負擔和不斷對其提高的性能的要求中解放出來,也把技術(shù)維護人員從繁重的維護升級工作中解脫出來。由于客戶機把事務(wù)處理規(guī)律部分分給了功能服務(wù)器,使客戶機一下子"苗條"了很多,不再負責處理簡單計算和數(shù)據(jù)訪問等關(guān)鍵事務(wù),只負責顯示部分,所以維護人員不再為程序的維護工作奔波于每個客戶機之間,而把主要精力放在功能服務(wù)器上程序的更新工作。這種三層結(jié)構(gòu)在層與層之間相互獨立,任何一層的轉(zhuǎn)變不會影響其它層的功能。3.2B/S三層體系結(jié)構(gòu)的不足經(jīng)過近一兩年的應(yīng)用,B/S體系結(jié)構(gòu)也暴露出了很多不足地方,詳細表現(xiàn)在以下幾個方面:(1)由于掃瞄器只是為了進行WEB掃瞄而設(shè)計的,當其應(yīng)用于WEB應(yīng)用系統(tǒng)時,很多功能不能實現(xiàn)或?qū)崿F(xiàn)起來比較困難。比如通過掃瞄器進行大量的數(shù)據(jù)輸入,或進行報表的應(yīng)答都是比較困難和不便的。(2)簡單的應(yīng)用構(gòu)造困難。雖然可以用ActiveX、Java等技術(shù)開發(fā)較為簡單的應(yīng)用,但是相對于進展已特別成熟C/S的一系列應(yīng)用工具來說,這些技術(shù)的開發(fā)簡單,并沒有完全成熟的技術(shù)供使用。(3)HTTP牢靠性低有可能造成應(yīng)用故障,特殊是對于管理者來說,采納掃瞄器方式進行系統(tǒng)的維護是特別擔心全與不便利的。(4)WEB服務(wù)器成為對數(shù)據(jù)庫的唯一的客戶端,全部對數(shù)據(jù)庫的連接都通過該服務(wù)器實現(xiàn)。WEB服務(wù)器同時要處理與客戶懇求以及與數(shù)據(jù)庫的連接,當訪問量大時,服務(wù)器端負載過重。(5)由于業(yè)務(wù)規(guī)律和數(shù)據(jù)訪問程序一般由JavaScript、VBScript等嵌入式小程序?qū)崿F(xiàn),分散在各個頁面里,難以實現(xiàn)共享,給升級和維護也帶來了不便。同時由于源代碼的開放性,使得商業(yè)規(guī)章很簡單暴露,而商業(yè)規(guī)章對應(yīng)用程序來說則是特別重要的。為克服以上不足,在原有B/S體系結(jié)構(gòu)基礎(chǔ)上,采納一種新的體系結(jié)構(gòu),如圖2所示。在該種結(jié)構(gòu)體系中,一些需要用WEB處理的,滿意大多數(shù)訪問者懇求的功能界面(如信息發(fā)布查詢界面)采納B/S結(jié)構(gòu)。后臺只需少數(shù)人使用的功能應(yīng)用(如數(shù)據(jù)庫管理維護界面)采納C/S結(jié)構(gòu)。組件位于WEB應(yīng)用程序中,客戶端發(fā)出HTTP懇求到WEBSERVER。WEBSERVER將懇求傳送給WEB應(yīng)用程序。WEB應(yīng)用程序?qū)?shù)據(jù)懇求傳送給數(shù)據(jù)庫服務(wù)器,數(shù)據(jù)庫服務(wù)器將數(shù)據(jù)返回WEB應(yīng)用程序。然后再由WEBSERVER將數(shù)據(jù)傳送給客戶端。對于一些實現(xiàn)起來困難的功能或一些需要豐富的HTML頁面,通過在頁面中嵌入ActiveX控件來實現(xiàn)。采納這種結(jié)構(gòu)優(yōu)點在于:(1)充分發(fā)揮了充分了B/S與C/S體系結(jié)構(gòu)的優(yōu)勢,彌補了二者不足。充分考慮用戶利益,保證掃瞄查詢者便利操作的同時也使得系統(tǒng)更新簡潔,維護簡潔敏捷,易于操作。(2)信息發(fā)布采納B/S結(jié)構(gòu),保持了瘦客戶端的優(yōu)點。裝入客戶機的軟件可以采納統(tǒng)一的掃瞄器。而且由于掃瞄器和網(wǎng)絡(luò)綜合服務(wù)器都是基于工業(yè)標準,可以在全部的平臺上工作。(3)數(shù)據(jù)庫端采納C/S結(jié)構(gòu),通過ODBC/JDBC連接。這一部分只涉及到系統(tǒng)維護、數(shù)據(jù)更新等,不存在完全采納C/S結(jié)構(gòu)帶來的客戶端維護工作量大等缺點。并且在客戶端可以構(gòu)造特別簡單的應(yīng)用,界面友好敏捷,易于操作,能解決很多B/S存在的固有的缺點。(4)對于原有基于C/S體系結(jié)構(gòu)的應(yīng)用,可以特別簡單地升級到這種體系結(jié)構(gòu),只需開發(fā)用于發(fā)布的界面,可以保留原有的C/S結(jié)構(gòu)的某些子系統(tǒng),充分地利用現(xiàn)有系統(tǒng)的資源。使得現(xiàn)有系統(tǒng)或資源無需大的改造即可以連接使用,愛護了用戶以往的投資(5)通過在掃瞄器中嵌入ActiveX控件可以實現(xiàn)在掃瞄器中不能實現(xiàn)或?qū)崿F(xiàn)起來比較困難的功能。比如通過掃瞄器進行報表的應(yīng)答。另外,在客戶端ActiveX控件的加盟,可以豐富HTML頁面,產(chǎn)生另人驚異的效果。(6)將服務(wù)器端劃分為WEB服務(wù)器和WEB應(yīng)用程序兩部分。WEB應(yīng)用程序采納組件技術(shù)實現(xiàn)三層體系結(jié)中的商業(yè)規(guī)律部分,達到封裝源代碼,愛護學問產(chǎn)權(quán)的目的。Internet應(yīng)用程序大部分屬于分布式應(yīng)用程序,采納組件技術(shù)一個重要特點就是它的處理力量能夠隨著用戶數(shù)量、數(shù)據(jù)量所需性能的提高而增加。COM的無逢擴展集COM+,有著如內(nèi)存數(shù)據(jù)庫、負載平衡等強大的功能。4實例下面以某學校同學管理系統(tǒng)為例說明B/S結(jié)構(gòu)軟件的設(shè)計方法,該系統(tǒng)采納B/S體系結(jié)構(gòu)與COM+技術(shù)相結(jié)合。通過該系統(tǒng)管理人員可以對同學的學籍、同學的日常表現(xiàn)、同學的學習成果、學校老師、學校的資產(chǎn)進行管理與維護。任課老師可以通過掃瞄器查詢所教班級同學各種相關(guān)信息。學校管理人員通過掃瞄器對學校的同學、老師等信息進行管理與維護以及有關(guān)查詢統(tǒng)計功能。學校資產(chǎn)管理人員通過C/S體系結(jié)構(gòu)實現(xiàn)對學校資產(chǎn)的管理維護。本系統(tǒng)結(jié)合了ASP技術(shù)和COM+技術(shù),是一個三層結(jié)構(gòu)。表示層由ASP頁面組成,用以實現(xiàn)WEB頁面顯示和調(diào)用COM+組件,業(yè)務(wù)規(guī)律和數(shù)據(jù)訪問由一組用VC實現(xiàn)的COM+組件構(gòu)成。為了便于維護、升級和實現(xiàn)分布式應(yīng)用,在實現(xiàn)過程中,又將業(yè)務(wù)規(guī)律層和數(shù)據(jù)訪問層分別開,ASP頁面不直接調(diào)用數(shù)據(jù)訪問層,而是通過業(yè)務(wù)規(guī)律層來調(diào)用數(shù)據(jù)庫。4.1COM組件技術(shù)應(yīng)用該系統(tǒng)的實現(xiàn)主要分為三個部分:數(shù)據(jù)庫、COM+組件和ASP頁面。其中數(shù)據(jù)庫與ASP頁面的實現(xiàn)與一般B/S結(jié)構(gòu)的WEB應(yīng)用相像。COM+實現(xiàn)可分為三個步驟:COM+組件的設(shè)計、COM+應(yīng)用程序的生成和組件注冊、基于屬性編程。該管理系統(tǒng)利用VC中的ATL開發(fā)COM+組件。下面是該系統(tǒng)中一個定制組件部分主要代碼在showscore.asp頁面中接受、辨別用戶的查詢懇求,做出不同的查詢處理。當客戶的身分為老師或教務(wù)員時,可以查詢?nèi)客瑢W的成果;當客戶的身分為同學時,只能查詢本人的成果。定制COM組件Score.dll進行查詢處理。首先設(shè)計該組件的接口,為組件設(shè)計四個屬性:SubjNo(課程號),Term(課程所屬學期),ClassNo(班級號)和StuNo(學號)。定義兩個方法RequeryScores和RequeryAllScores,分別對老師、教務(wù)部門和同學的懇求做出相應(yīng)的處理,并將查詢結(jié)果集返回給用戶。以下是實現(xiàn)該組件Score.dll接口描述以及實現(xiàn)方法的部分代碼,從中可以看到組件的接口是如何實現(xiàn)的:import"ocidl.idl";[object,uuid(46C01798-BE39-4FC0-A25D-718BA31DFADC),dual,helpstring("IStudentScoreInterface"),pointer_default(unique)]interfaceIStudentScore:IDispatch{[propget,id(1),helpstring("課程號")]HRESULTSubjNo([out,retval]BSTR*pVal);[propput,id(1),helpstring("課程號")]HRESULTSubjNo([in]BSTRnewVal);//其它接口部分從略[id(5),helpstring("methodRequeryScores")]HRESULTRequeryScores(([out,retval]LPDISPATCH*ppRecordset));};STDMETHODIMPCStudentScore::RequeryScores(){HRESULThr=S_OK;IobjectContext*m_spObjectContext=NULL;//利用ADO訪問數(shù)據(jù)庫::CoInitialize(NULL);_RecordsetPtrpRecordSet=NULL,pRecordSetClone=NULL;BSTRbstrDSN=::SysAllocString(L"Provider=SQLOLEDB.1;PersistSecurityInfo=True;Password=;InitialCatalog=pubs;DataSource=zhudamiing;UserID=sa");BSTRbstrSQL;try{GetObjectContext(m_spObjectContext);pRecordSet.CreateInstance(__uuidof(Recordset));//依據(jù)查詢要求(查詢?nèi)空n程、查詢特定學期全部課程、查詢指定課程、查詢//特定學期某一課程)進行不同操作生成相應(yīng)SQL語句,程序詳細處理從略pRecordSet-CursorLocation=adUseClient;pRecordSet-Open(bstrSQL,bstrDSN,adOpenKeyset,adLockOptimistic,adCmdText);pRecordSet-PutRefActiveConnection(NULL);pRecordSetClone=pRecordSet-Clone(adLockOptimistic);pRecordSetClone-QueryInterface(IID_IDispatch,(void**)ppRecordset);pRecordSet-Close();pRecordSet=NULL;::SysFreeString(bstrDSN);::SysFreeString(bstrSQL);//事物勝利完成,則提交該事物If(m_spObjectContext-)m_spObjectContext-SetComplete();}catch(_com_errore){if(m_spObjectContext)//事物失敗,回滾事物處理m_spObjectContext-SetAbort()//其他錯誤處理,從略}returnhr;}RequeryAllScores()實現(xiàn)部分從略。另外ASP調(diào)用實現(xiàn)部分比較簡潔從略。組件編譯結(jié)束后可以用COM+組件服務(wù)管理工具來管理COM+組件及其所在的應(yīng)用程序。COM+組件服務(wù)是個圖形界面的管理工具,利用它可以安裝和發(fā)布組件、配置組件及其所在應(yīng)用程序的屬性,以實現(xiàn)組件平安性、MTS支持、排對組件、設(shè)置組件構(gòu)造參數(shù)等。4。2ActiveX技術(shù)應(yīng)用在本系統(tǒng)中很多報表的打印如同學成果打印、學籍報表、學籍卡打印等需要特別的格式。而掃瞄器所供應(yīng)的打印功能無法實現(xiàn)。為此可采納ActiveX技術(shù),實現(xiàn)在WEB環(huán)境下的本地端打印和報表生成。詳細實現(xiàn)過程為:(1)服務(wù)器在接到用戶懇求后調(diào)用WEB應(yīng)用程序中的相應(yīng)組件,通過組件訪問數(shù)據(jù)庫,對數(shù)據(jù)處理生成報表數(shù)據(jù),以文件形式存儲于WEB服務(wù)器中相應(yīng)名目下。(2)服務(wù)器向用戶掃瞄器發(fā)送內(nèi)嵌ActiveX控件的HTML頁面,并在HTML頁面里的(OBJECT)標志中的param屬性里指明數(shù)據(jù)文件的URL地址。(3)HTML頁面依據(jù)所供應(yīng)的ActiveX標志從服務(wù)器上下載ActiveX控件到本地端,并在掃瞄器里執(zhí)行。ActiveX控件在客戶掃瞄器里完成初始化工作以后,則需直接與

溫馨提示

  • 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

提交評論