<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          關(guān) 閉

          新聞中心

          EEPW首頁(yè) > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > 基于B/S體系結(jié)構(gòu)開發(fā)應(yīng)用系統(tǒng)

          基于B/S體系結(jié)構(gòu)開發(fā)應(yīng)用系統(tǒng)

          作者: 時(shí)間:2012-10-10 來源:網(wǎng)絡(luò) 收藏

          摘要 本文介紹了組件以及ActiveX技術(shù),分析了Browser/Server體系結(jié)構(gòu)開發(fā)應(yīng)用軟件的特點(diǎn)和不足。提出了克服該不足的一種方法。最后給出了一個(gè)應(yīng)用實(shí)例。

          本文引用地址:http://www.ex-cimer.com/article/202164.htm

          關(guān)鍵詞 WEB ,COM ,應(yīng)用軟件,服務(wù)器

          1 引言

          由于客戶服務(wù)器兩層結(jié)構(gòu)存在靈活性差、升級(jí)困難、維護(hù)工作量大等缺陷,已較難適應(yīng)當(dāng)前信息技術(shù)與網(wǎng)絡(luò)技術(shù)發(fā)展的需要。隨著WEB技術(shù)的日益成熟,Browse/Server(簡(jiǎn)稱B/S)結(jié)構(gòu)已成為取代Browser/Server(簡(jiǎn)稱C/S)結(jié)構(gòu)的一種全新技術(shù)。采用該結(jié)構(gòu)軟件的優(yōu)勢(shì)在于:(1)無須開發(fā)客戶端軟件,維護(hù)和升級(jí)方便;(2)可跨平臺(tái)操作,任何一臺(tái)機(jī)器只要裝有WWW瀏覽器軟件,均可作為客戶機(jī)來訪問系統(tǒng);(3)具有良好的開放性和可擴(kuò)充性;(4)可采用防火墻技術(shù)來保證系統(tǒng)的安全性,有效地適應(yīng)了當(dāng)前用戶對(duì)管理信息系統(tǒng)的新需求。因此該結(jié)構(gòu)在管理信息系統(tǒng)開發(fā)領(lǐng)域中獲得飛速發(fā)展,成為應(yīng)用軟件研制中一種流行的體系結(jié)構(gòu)。

          本文在對(duì)B/S體系結(jié)構(gòu)分析的基礎(chǔ)上,提出了一種新的體系結(jié)構(gòu),把B/S與C/S相結(jié)合,將組件技術(shù)和ActiveX技術(shù)分別應(yīng)用在服務(wù)器端和客戶端,開發(fā)高效、安全的。最后給出了一個(gè)應(yīng)用實(shí)例。

          2 . COM組件技術(shù)和ActiveX技術(shù)

          COM是一種技術(shù)標(biāo)準(zhǔn)。它是由微軟公司創(chuàng)建,提供了使多個(gè)應(yīng)用程序或組件對(duì)象協(xié)同工作并相互通信的能力。COM組件是遵循COM規(guī)范編寫、以WIN32動(dòng)態(tài)鏈接庫(kù)(DLL)或可執(zhí)行文件(EXE)的形式發(fā)布的可執(zhí)行的二進(jìn)制代碼。遵循COM的規(guī)范標(biāo)準(zhǔn),使組件與應(yīng)用、組件與組件之間可以相互操作,極其方便地建立可伸縮的。從工程的角度看,組件在應(yīng)用開發(fā)方面具有以下特點(diǎn):

          (1) 組件與開發(fā)的工具語言無關(guān)。開發(fā)人員可以根據(jù)需要和愛好選擇特定語言工具實(shí)現(xiàn)組件的開發(fā)。常用的開發(fā)工具是VB、VC和Delphi。將組件編譯成DLL或EXE置于服務(wù)器端??捎行ПWo(hù)商業(yè)秘密。

          (2) 通過接口有效保證了組件的復(fù)用性。一個(gè)組件具有若干個(gè)接口,每個(gè)接口代表組件的某個(gè)屬性或方法。其它組件或應(yīng)用程序可以設(shè)置或調(diào)用這些屬性和方法來進(jìn)行特定的邏輯處理。組件和應(yīng)用程序的連接是通過其接口實(shí)現(xiàn)的。負(fù)責(zé)集成的開發(fā)人員無須了解組件功能的如何實(shí)現(xiàn),而只須創(chuàng)建組件對(duì)象與其接口建立連接。在保證接口一致性的前提下,可以調(diào)換組件、更新版本,也可以將組件應(yīng)用在不同的系統(tǒng)中。

          (3) 組件運(yùn)行效率高、便于使用和管理。因?yàn)榻M件是二進(jìn)制代碼,比ASP腳本運(yùn)行效率高,所以核心的商務(wù)邏輯計(jì)算任務(wù)必須由組件來負(fù)責(zé),ASP腳本只起組裝組件的角色。而且組件在網(wǎng)絡(luò)上的位置可被透明地分配,組件和使用它的程序既能在同一進(jìn)程中運(yùn)行,也可在不同進(jìn)程或不同的機(jī)器上運(yùn)行。組件之間是相互分離和獨(dú)立的。利用MTS或COM+對(duì)組件管理更加方便。

          ActiveX是遵循COM/DCOM規(guī)程而開發(fā)的用于INTERNET的一種對(duì)象鏈接與嵌入技術(shù)(OLE)。COM是應(yīng)OLE設(shè)計(jì)者的需求而誕生的。其基本的出發(fā)點(diǎn)是想讓某個(gè)軟件通過一個(gè)通用的機(jī)構(gòu)為另一個(gè)軟件提供服務(wù)。對(duì)于基于WEB的應(yīng)用而言,它提供了使組件嵌入到WEB頁(yè)面以擴(kuò)展交互功能的應(yīng)用機(jī)制??蛻舳丝丶敲嫦蛴脩舻模钥梢暬膱D形視頻或文字界面、或者音頻形式在瀏覽器上出現(xiàn)。但它可能并不是瀏覽器的組成部分。這些控件原先是放在服務(wù)器上的。當(dāng)瀏覽器發(fā)出請(qǐng)求時(shí),WEB服務(wù)器回傳頁(yè)面,由瀏覽器負(fù)責(zé)解釋。在解釋過程中,若發(fā)現(xiàn)頁(yè)面中要求調(diào)用ActiveX控件時(shí),則用該控件的在頁(yè)面中注明的ID值先在本地的注冊(cè)表內(nèi)進(jìn)行查詢。若已經(jīng)存在,則說明該控件已經(jīng)在本地安裝,然后通過注冊(cè)表中的相關(guān)信息直接使用該控件;否則就要根據(jù)頁(yè)面中所提示的該控件所在的服務(wù)器上的路徑到服務(wù)器上去下載并且自動(dòng)完成在本地的安裝注冊(cè),使該控件成為本地資源,供今后使用,這就是所謂“一次下載,永久使用“??蛻舳丝丶坏┰诒镜匕惭b完畢,就等價(jià)于一個(gè)可執(zhí)行的應(yīng)用程序,它能訪問使用本地的資源,甚至進(jìn)行遠(yuǎn)程訪問。當(dāng)然,這可能帶來了安全性問題。

          3 基于B/S體系結(jié)構(gòu)開發(fā)

          3.1 B/S三層體系結(jié)構(gòu)

          在B/S體系結(jié)構(gòu)系統(tǒng)中,用戶通過瀏覽器向分布在網(wǎng)絡(luò)上的許多服務(wù)器發(fā)出請(qǐng)求,服務(wù)器對(duì)瀏覽器的請(qǐng)求進(jìn)行處理,將用戶所需信息返回到瀏覽器。B/S結(jié)構(gòu)簡(jiǎn)化了客戶機(jī)的工作,客戶機(jī)上只需配置少量的客戶端軟件。服務(wù)器將擔(dān)負(fù)更多的工作,對(duì)數(shù)據(jù)庫(kù)的訪問和應(yīng)用程序的執(zhí)行將在服務(wù)器上完成。瀏覽器發(fā)出請(qǐng)求,而其余如數(shù)據(jù)請(qǐng)求、加工、結(jié)果返回以及動(dòng)態(tài)網(wǎng)頁(yè)生成等工作全部由Web Server完成。實(shí)際上B/S體系結(jié)構(gòu)是把二層C/S結(jié)構(gòu)的事務(wù)處理邏輯模塊從客戶機(jī)的任務(wù)中分離出來,由Web服務(wù)器單獨(dú)組成一層來負(fù)擔(dān)其任務(wù),這樣客戶機(jī)的壓力減輕了,把負(fù)荷分配給了Web服務(wù)器。這種三層體系結(jié)構(gòu)如圖1所示。

          這種結(jié)構(gòu)不僅把客戶機(jī)從沉重的負(fù)擔(dān)和不斷對(duì)其提高的性能的要求中解放出來,也把技術(shù)維護(hù)人員從繁重的維護(hù)升級(jí)工作中解脫出來。由于客戶機(jī)把事務(wù)處理邏輯部分分給了功能服務(wù)器,使客戶機(jī)一下子苗條了許多,不再負(fù)責(zé)處理復(fù)雜計(jì)算和數(shù)據(jù)訪問等關(guān)鍵事務(wù),只負(fù)責(zé)顯示部分,所以維護(hù)人員不再為程序的維護(hù)工作奔波于每個(gè)客戶機(jī)之間,而把主要精力放在功能服務(wù)器上程序的更新工作。這種三層結(jié)構(gòu)在層與層之間相互獨(dú)立,任何一層的改變不會(huì)影響其它層的功能。

          3.2 B/S三層體系結(jié)構(gòu)的不足

          經(jīng)過近一兩年的應(yīng)用,B/S體系結(jié)構(gòu)也暴露出了許多不足地方,具體表現(xiàn)在以下幾個(gè)方面:

          (1) 由于瀏覽器只是為了進(jìn)行WEB瀏覽而設(shè)計(jì)的,當(dāng)其應(yīng)用于WEB應(yīng)用系統(tǒng)時(shí),許多功能不能實(shí)現(xiàn)或?qū)崿F(xiàn)起來比較困難。比如通過瀏覽器進(jìn)行大量的數(shù)據(jù)輸入,或進(jìn)行報(bào)表的應(yīng)答都是比較困難和不便的。

          (2) 復(fù)雜的應(yīng)用構(gòu)造困難。雖然可以用ActiveX、Java等技術(shù)開發(fā)較為復(fù)雜的應(yīng)用,但是相對(duì)于發(fā)展已非常成熟C/S的一系列應(yīng)用工具來說,這些技術(shù)的開發(fā)復(fù)雜,并沒有完全成熟的技術(shù)供使用。

          (3) HTTP可靠性低有可能造成應(yīng)用故障,特別是對(duì)于管理者來說,采用瀏覽器方式進(jìn)行系統(tǒng)的維護(hù)是非常不安全與不方便的。

          (4) WEB服務(wù)器成為對(duì)數(shù)據(jù)庫(kù)的唯一的客戶端,所有對(duì)數(shù)據(jù)庫(kù)的連接都通過該服務(wù)器實(shí)現(xiàn)。WEB服務(wù)器同時(shí)要處理與客戶請(qǐng)求以及與數(shù)據(jù)庫(kù)的連接,當(dāng)訪問量大時(shí),服務(wù)器端負(fù)載過重。

          (5) 由于業(yè)務(wù)邏輯和數(shù)據(jù)訪問程序一般由JavaScript、VBScript等嵌入式小程序?qū)崿F(xiàn),分散在各個(gè)頁(yè)面里,難以實(shí)現(xiàn)共享,給升級(jí)和維護(hù)也帶來了不便。同時(shí)由于源代碼的開放性,使得商業(yè)規(guī)則很容易暴露,而商業(yè)規(guī)則對(duì)應(yīng)用程序來說則是非常重要的。

          為克服以上不足,在原有B/S體系結(jié)構(gòu)基礎(chǔ)上,采用一種新的體系結(jié)構(gòu),如圖2所示。

          在該種結(jié)構(gòu)體系中,一些需要用WEB處理的,滿足大多數(shù)訪問者請(qǐng)求的功能界面(如信息發(fā)布查詢界面)采用B/S結(jié)構(gòu)。后臺(tái)只需少數(shù)人使用的功能應(yīng)用(如數(shù)據(jù)庫(kù)管理維護(hù)界面)采用C/S結(jié)構(gòu)。組件位于WEB應(yīng)用程序中,客戶端發(fā)出HTTP請(qǐng)求到WEB SERVER。WEB SERVER將請(qǐng)求傳送給WEB應(yīng)用程序。WEB應(yīng)用程序?qū)?shù)據(jù)請(qǐng)求傳送給數(shù)據(jù)庫(kù)服務(wù)器,數(shù)據(jù)庫(kù)服務(wù)器將數(shù)據(jù)返回WEB應(yīng)用程序。然后再由WEB SERVER將數(shù)據(jù)傳送給客戶端。對(duì)于一些實(shí)現(xiàn)起來困難的功能或一些需要豐富的HTML頁(yè)面,通過在頁(yè)面中嵌入ActiveX控件來實(shí)現(xiàn)。

          采用這種結(jié)構(gòu)優(yōu)點(diǎn)在于:(1)充分發(fā)揮了充分了B/S與C/S體系結(jié)構(gòu)的優(yōu)勢(shì),彌補(bǔ)了二者不足。充分考慮用戶利益,保證瀏覽查詢者方便操作的同時(shí)也使得系統(tǒng)更新簡(jiǎn)單,維護(hù)簡(jiǎn)單靈活,易于操作。(2)信息發(fā)布采用B/S結(jié)構(gòu),保持了瘦客戶端的優(yōu)點(diǎn)。裝入客戶機(jī)的軟件可以采用統(tǒng)一的WWW瀏覽器。而且由于WWW瀏覽器和網(wǎng)絡(luò)綜合服務(wù)器都是基于工業(yè)標(biāo)準(zhǔn),可以在所有的平臺(tái)上工作。(3)數(shù)據(jù)庫(kù)端采用C/S結(jié)構(gòu),通過ODBC/JDBC連接。這一部分只涉及到系統(tǒng)維護(hù)、數(shù)據(jù)更新等,不存在完全采用C/S結(jié)構(gòu)帶來的客戶端維護(hù)工作量大等缺點(diǎn)。并且在客戶端可以構(gòu)造非常復(fù)雜的應(yīng)用,界面友好靈活,易于操作,能解決許多B/S存在的固有的缺點(diǎn)。(4)對(duì)于原有基于C/S體系結(jié)構(gòu)的應(yīng)用,可以非常容易地升級(jí)到這種體系結(jié)構(gòu),只需開發(fā)用于發(fā)布的WWW界面,可以保留原有的C/S結(jié)構(gòu)的某些子系統(tǒng),充分地利用現(xiàn)有系統(tǒng)的資源。使得現(xiàn)有系統(tǒng)或資源無需大的改造即可以連接使用,保護(hù)了用戶以往的投資(5)通過在瀏覽器中嵌入ActiveX控件可以實(shí)現(xiàn)在瀏覽器中不能實(shí)現(xiàn)或?qū)崿F(xiàn)起來比較困難的功能。比如通過瀏覽器進(jìn)行報(bào)表的應(yīng)答。另外,在客戶端ActiveX控件的加盟,可以豐富HTML頁(yè)面,產(chǎn)生另人驚奇的效果。(6)將服務(wù)器端劃分為WEB服務(wù)器和WEB應(yīng)用程序兩部分。WEB應(yīng)用程序采用組件技術(shù)實(shí)現(xiàn)三層體系結(jié)中的商業(yè)邏輯部分,達(dá)到封裝源代碼,保護(hù)知識(shí)產(chǎn)權(quán)的目的。Internet應(yīng)用程序大部分屬于分布式應(yīng)用程序,采用組件技術(shù)一個(gè)重要特點(diǎn)就是它的處理能力能夠隨著用戶數(shù)量、數(shù)據(jù)量所需性能的提高而增加。COM的無逢擴(kuò)展集COM+,有著如內(nèi)存數(shù)據(jù)庫(kù)、負(fù)載平衡等強(qiáng)大的功能。

          4 實(shí)例

          下面以某學(xué)校學(xué)生管理系統(tǒng)為例說明B/S結(jié)構(gòu)軟件的設(shè)計(jì)方法,該系統(tǒng)采用B/S體系結(jié)構(gòu)與COM+技術(shù)相結(jié)合。通過該系統(tǒng)管理人員可以對(duì)學(xué)生的學(xué)籍、學(xué)生的日常表現(xiàn)、學(xué)生的學(xué)習(xí)成績(jī)、學(xué)校教師、學(xué)校的資產(chǎn)進(jìn)行管理與維護(hù)。任課教師可以通過瀏覽器查詢所教班級(jí)學(xué)生各種相關(guān)信息。學(xué)校管理人員通過瀏覽器對(duì)學(xué)校的學(xué)生、教師等信息進(jìn)行管理與維護(hù)以及有關(guān)查詢統(tǒng)計(jì)功能。學(xué)校資產(chǎn)管理人員通過C/S體系結(jié)構(gòu)實(shí)現(xiàn)對(duì)學(xué)校資產(chǎn)的管理維護(hù)。

          本系統(tǒng)結(jié)合了ASP技術(shù)和COM+技術(shù),是一個(gè)三層結(jié)構(gòu)。表示層由ASP頁(yè)面組成,用以實(shí)現(xiàn)WEB頁(yè)面顯示和調(diào)用COM+組件,業(yè)務(wù)邏輯和數(shù)據(jù)訪問由一組用VC實(shí)現(xiàn)的COM+組件構(gòu)成。為了便于維護(hù)、升級(jí)和實(shí)現(xiàn)分布式應(yīng)用,在實(shí)現(xiàn)過程中,又將業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層分離開,ASP頁(yè)面不直接調(diào)用數(shù)據(jù)訪問層,而是通過業(yè)務(wù)邏輯層來調(diào)用數(shù)據(jù)庫(kù)。

          4.1 COM組件技術(shù)應(yīng)用

          該系統(tǒng)的實(shí)現(xiàn)主要分為三個(gè)部分:數(shù)據(jù)庫(kù)、COM+組件和ASP頁(yè)面。其中數(shù)據(jù)庫(kù)與ASP頁(yè)面的實(shí)現(xiàn)與一般B/S結(jié)構(gòu)的WEB應(yīng)用相似。COM+實(shí)現(xiàn)可分為三個(gè)步驟:COM+組件的設(shè)計(jì)、COM+應(yīng)用程序的生成和組件注冊(cè)、基于屬性編程。該管理系統(tǒng)利用VC中的ATL開發(fā)COM+組件。下面是該系統(tǒng)中一個(gè)定制組件部分主要代碼

          在showscore.asp頁(yè)面中接受、辨別用戶的查詢請(qǐng)求,做出不同的查詢處理。當(dāng)客戶的身分為教師或教務(wù)員時(shí),可以查詢所有學(xué)生的成績(jī);當(dāng)客戶的身分為學(xué)生時(shí),只能查詢本人的成績(jī)。

          定制COM組件Score.dll進(jìn)行查詢處理。首先設(shè)計(jì)該組件的接口,為組件設(shè)計(jì)四個(gè)屬性:SubjNo(課程號(hào)),Term(課程所屬學(xué)期),ClassNo(班級(jí)號(hào))和StuNo(學(xué)號(hào))。定義兩個(gè)方法RequeryScores和RequeryAllScores,分別對(duì)教師、教務(wù)部門和學(xué)生的請(qǐng)求做出相應(yīng)的處理,并將查詢結(jié)果集返回給用戶。

          以下是實(shí)現(xiàn)該組件Score.dll接口描述以及實(shí)現(xiàn)方法的部分代碼,從中可以看到組件的接口是如何實(shí)現(xiàn)的:

          import ocidl.idl;

          [

          object,

          uuid(46C01798-BE39-4FC0-A25D-718BA31DFADC),

          dual,

          helpstring(IStudentScore Interface),

          pointer_default(unique)

          ]

          interface IStudentScore : IDispatch{

          [propget, id(1), helpstring(課程號(hào))] HRESULT SubjNo([out, retval] BSTR *pVal);

          [propput, id(1), helpstring(課程號(hào))] HRESULT SubjNo([in] BSTR newVal);

          //其它接口部分從略

          [id(5), helpstring(method RequeryScores)] HRESULT RequeryScores(([out,retval]LPDISPATCH* ppRecordset));

          };

          STDMETHODIMP CStudentScore::RequeryScores()

          {

          HRESULT hr=S_OK;

          IobjectContext* m_spObjectContext=NULL;

          //利用ADO訪問數(shù)據(jù)庫(kù)

          ::CoInitialize(NULL);

          _RecordsetPtr pRecordSet=NULL,pRecordSetClone=NULL;

          BSTR bstrDSN=::SysAllocString(LProvider=SQLOLEDB.1;Persist Security Info=True;

          Password=;Initial Catalog=pubs;Data Source=zhudamiing;User ID=sa);

          BSTR bstrSQL;

          try{

          GetObjectContext(m_spObjectContext);

          pRecordSet.CreateInstance(__uuidof(Recordset));

          //根據(jù)查詢要求(查詢所有課程、查詢特定學(xué)期所有課程、查詢指定課程、查詢

          //特定學(xué)期某一課程)進(jì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);

          //事物成功完成,則提交該事物

          I f(m_spObjectContext-)

          m_spObjectContext->SetComplete();

          }

          catch(_com_error e){

          if(m_spObjectContext) //事物失敗,回滾事物處理

          m_spObjectContext->SetAbort()

          // 其他錯(cuò)誤處理,從略

          }

          return hr;

          }

          RequeryAllScores()實(shí)現(xiàn)部分從略。另外ASP調(diào)用實(shí)現(xiàn)部分比較簡(jiǎn)單從略。

          組件編譯結(jié)束后可以用COM+組件服務(wù)管理工具來管理COM+組件及其所在的應(yīng)用程序。COM+組件服務(wù)是個(gè)圖形界面的管理工具,利用它可以安裝和發(fā)布組件、配置組件及其所在應(yīng)用程序的屬性,以實(shí)現(xiàn)組件安全性、MTS支持、排對(duì)組件、設(shè)置組件構(gòu)造參數(shù)等。

          4。2 ActiveX技術(shù)應(yīng)用

          在本系統(tǒng)中許多報(bào)表的打印如學(xué)生成績(jī)打印、學(xué)籍報(bào)表、學(xué)籍卡打印等需要特殊的格式。而瀏覽器所提供的打印功能無法實(shí)現(xiàn)。為此可采用ActiveX技術(shù),實(shí)現(xiàn)在WEB環(huán)境下的本地端打印和報(bào)表生成。具體實(shí)現(xiàn)過程為:(1)WWW服務(wù)器在接到用戶請(qǐng)求后調(diào)用WEB應(yīng)用程序中的相應(yīng)組件,通過組件訪問數(shù)據(jù)庫(kù),對(duì)數(shù)據(jù)處理生成報(bào)表數(shù)據(jù),以文件形式存儲(chǔ)于WEB服務(wù)器中相應(yīng)目錄下。(2)WWW服務(wù)器向用戶瀏覽器發(fā)送內(nèi)嵌ActiveX控件的HTML頁(yè)面,并在HTML頁(yè)面里的(OBJECT)標(biāo)志中的param屬性里指明數(shù)據(jù)文件的URL地址。(3)HTML頁(yè)面根據(jù)所提供的ActiveX標(biāo)志從WWW服務(wù)器上下載ActiveX控件到本地端,并在瀏覽器里執(zhí)行。ActiveX控件在客戶瀏覽器里完成初始化工作以后,則需直接與服務(wù)器端聯(lián)系,以獲取報(bào)表數(shù)據(jù)。ActiveX控件與服務(wù)器端的連接采用HTTP協(xié)議所提供的GET方法,根據(jù)數(shù)據(jù)文件在WWW服務(wù)器上的URL地址,直接將數(shù)據(jù)文件從WWW服務(wù)器下載到本地端。(4)對(duì)數(shù)據(jù)文件進(jìn)行解析,輸入到控件的存儲(chǔ)顯示模塊里,用以存儲(chǔ)顯示。(5)當(dāng)用戶按下打印按鈕時(shí),ActiveX調(diào)用打印模塊進(jìn)行打印輸出。

          5 結(jié)束語

          隨著INTERNET普及,基于B/S體系結(jié)構(gòu)開發(fā)應(yīng)用程序變?yōu)榱餍械姆绞?。將組件技術(shù)應(yīng)用到B/S體系結(jié)構(gòu)中,實(shí)現(xiàn)業(yè)務(wù)邏輯封裝,提高軟件的可重性和可維護(hù)性。

          參考文獻(xiàn):

          [1]余英 ,梁剛 VC實(shí)踐與提高COM和COM+篇. 中國(guó)鐵道出版社

          [2]林子禹等 基于WEB與組件技術(shù)的企業(yè)應(yīng)用系統(tǒng)設(shè)計(jì)模型 計(jì)算機(jī)工程與應(yīng)用 2000.6.

          [3]夏驕雄等 基于Intranet的管理信息系統(tǒng) 小型微型計(jì)算機(jī)系統(tǒng) 2001、4

          [4]樓偉進(jìn),應(yīng)飚.COM/DCOM/COM+組件技術(shù) :計(jì)算機(jī)應(yīng)用2000、4.

          [5]張震、張?jiān)?一種新的WEB數(shù)據(jù)庫(kù)系統(tǒng)結(jié)構(gòu)

          更多計(jì)算機(jī)與外設(shè)信息請(qǐng)關(guān)注21ic計(jì)算機(jī)與外設(shè)頻道



          關(guān)鍵詞: 應(yīng)用系統(tǒng)

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();