asp(active server pages) 是基于服務(wù)器段端的編程框架,是運行在iis內(nèi)的一系列互相關(guān)聯(lián)的腳本引擎部件,目的是動態(tài)產(chǎn)生web頁面——內(nèi)容由嵌入在web頁面的腳本程序通過asp引擎動態(tài)產(chǎn)生。asp與傳統(tǒng)的基于cgi、perl等繁瑣的方式將動態(tài)數(shù)據(jù)技術(shù)集成web相比較,有了很大的提高。作為一種動態(tài)的數(shù)據(jù)引擎,asp在某中程度上可與domino作些比較。要求大量的時間和開發(fā)資源,asp可以創(chuàng)建不同類型的應(yīng)用,但是這些應(yīng)用還只是最基本層次的。從根本上說,它適合用來創(chuàng)建簡單的、基于數(shù)據(jù)驅(qū)動的web頁面,尤其是僅僅基于windows nt上應(yīng)用。相對來說,domino提供的跨平臺應(yīng)用開發(fā),是基于“偶爾編程code-by-exception”的方法,而微軟則采用了“處處編程code-by-default”的方法。domino提供了可以結(jié)合良好適應(yīng)性的編程邏輯的各種高級的應(yīng)用編程構(gòu)件,如子表單、表單、視圖、代理等。利用較高層的編程手段,通過簡單的點擊對話,domino采用簡單命令或notes公式就可以完成編程。更復(fù)雜的domino應(yīng)用,則可以采用腳本語言、java、javabean或activex控件。所有的編程方法,都訪問到集成在domino中功能服務(wù),如企業(yè)數(shù)據(jù)集成、消息傳遞、安全性、工作流、日程表、內(nèi)容索引、全文索引、目錄管理等。所有這些,使得domino的應(yīng)用可以迅速地被創(chuàng)建和修改。開發(fā)者可以把主要精力放在應(yīng)用邏輯的處理上,而不是底層的代碼編寫上。
服務(wù)器腳本語言:
在iis服務(wù)器中,asp服務(wù)器腳本語言是最主要的基礎(chǔ)。然而,它需要開發(fā)者將所有的邏輯用腳本語言編寫,并且只有該頁面被調(diào)用時才會被激活。domino提供了一種適應(yīng)性更強的服務(wù)器端腳本編程能力,以及代理管理技術(shù)。應(yīng)用邏輯的實現(xiàn)是“偶爾編程的”:可以采用對話框的界面方式來編程,也可運用notes公式、java、兼容basic語言的lotusscript 語言等。并且,代理不但可以在不同的頁面事件中觸發(fā),而且可以基于調(diào)度的,可以不需用戶的干預(yù)而觸發(fā)。
動態(tài)/個性化的頁面:
通過asp技術(shù),可以執(zhí)行基于html頁面中的應(yīng)用邏輯,提供了動態(tài)和個性化的內(nèi)容。而這些只是domino的缺省屬性:每一個設(shè)計元素都是可編程的,用戶的身份由domino自然維護(hù),domino在用戶請求的同時自動產(chǎn)生頁面。開發(fā)者不需要跟蹤用戶的身份,也不需手工編寫或維護(hù)復(fù)雜的腳本程序和html頁面來產(chǎn)生動態(tài)的,個性化的內(nèi)容。
數(shù)據(jù)庫驅(qū)動的頁面:
通過動態(tài)數(shù)據(jù)對象(ado),asp腳本可以在web頁面中訪問后臺數(shù)據(jù)庫。domino通過跨平臺的ls:do方式提供同樣的方式,訪問odbc數(shù)據(jù)源。事實上,通過ole的方式,如果限定在windows nt上,開發(fā)者同樣可以利用ado方式訪問數(shù)據(jù)庫。
除此以外,利用集成在domino中的企業(yè)集成連接件(decs),開發(fā)者可以不需編程就在domino應(yīng)用中能訪問到企業(yè)數(shù)據(jù)庫資源。domino可以直接訪問db2、oracle、sybase、文本文件和文件系統(tǒng),或eda/sql系統(tǒng)。此外domino還可以集成sap、e、sybase、文本文件和文件系統(tǒng),或eda/sql系統(tǒng)。此外domino還可以集成sap、事務(wù)處理系統(tǒng)、mqseries、cics等等。
將內(nèi)容與業(yè)務(wù)邏輯相分離:
微軟鼓勵開發(fā)者將應(yīng)用邏輯編寫在客戶自己制作的控件中,即將應(yīng)用源碼與asp服務(wù)器本身分開。然而,即使控件中包含了某些靜態(tài)的業(yè)務(wù)邏輯,需要根據(jù)不斷變化的業(yè)務(wù)邏輯來訪問和操縱這些控件的腳本,依然存在于asp的html頁面中。
這種基于頁面的方式,使得代碼的維護(hù)變得非常困難。一個布局的改變,或者一個控制控件的邏輯改動,將要牽涉到很多的文件。改變后的頁面不得不用手工方式進(jìn)行發(fā)布。(采用手工修改,或?qū)⒃撨^的文件通過文件系統(tǒng)拷貝)到運行該應(yīng)用的服務(wù)器上。相比之下,domino采用基于表單的方式,將邏輯區(qū)分于布局,而且通過廣泛使用設(shè)計模板,真正做到使應(yīng)用與設(shè)計、邏輯分離。表單用于控制布局,在表單中,元素背后存放邏輯(字段,代理,操作),這使得在頁面中的布局與邏輯區(qū)分開來。在模板中,存放了所有的設(shè)計元素(字段,代理,操作)。維護(hù)時,只需要對應(yīng)用模板更新。通過domino 的復(fù)制機制,能夠?qū)⑺龅男薷淖詣影l(fā)布的所有相應(yīng)的服務(wù)器上。所有升級工作將由系統(tǒng)自動地按預(yù)先安排來完成。
開放的腳本:
asp技術(shù)提供了內(nèi)置的對vbscript 和jscript的支持。jscript是基于ecma-262標(biāo)準(zhǔn)的語言:兼容javascript。domino提供可擴展的、開發(fā)的腳本編程環(huán)境。
除了與basic兼容的lotusscript之外,可使用java來編寫服務(wù)器端程序。并且,domino“偶爾編程”的開發(fā)手法,提供了開發(fā)效率,具有更廣泛的適應(yīng)力:除了腳本編程之外,對于復(fù)雜邏輯的實現(xiàn),domino提供了非編程實現(xiàn)的辦法:如高層次的應(yīng)用開發(fā)部件(如表單、視圖、字段等等),對應(yīng)用服務(wù)(如數(shù)據(jù)連接、報文傳遞、工作流、安全性等)的簡單訪問方法,支持高效率的邏輯實現(xiàn)方法(如點擊對話框、簡單命令、易學(xué)的notes公式語言)。結(jié)合復(fù)雜腳本編程手段與能夠被多種工具利用的、開放的對象模型,使得domino成為既強大有開放的編程開發(fā)環(huán)境。
獨立的瀏覽器:
asp腳本中可以嵌入邏輯,以判斷查詢該頁面的瀏覽器的類型。利用這些信息,應(yīng)用程序開發(fā)者可以針對不同的瀏覽器提供不同版本的頁面。缺省地,不需人工干預(yù),domino就可以提供與瀏覽器獨立的html頁面。采用與asp一樣的方式,domino可以通過編程增強對瀏覽器類型的判斷:通過cgi變量獲取客戶機類型信息,編寫應(yīng)用邏輯,返回不同類型頁面。
可操作性:
微軟認(rèn)為用asp開發(fā)web應(yīng)用是“可操作的”??蛻艋捻撁妗討B(tài)產(chǎn)生的html頁面,可以用asp技術(shù)與vbscript技術(shù)很容易地實現(xiàn),遠(yuǎn)勝過傳統(tǒng)的web開發(fā)工具如c、perl、cgi等。在這方面domino則遠(yuǎn)遠(yuǎn)超過了asp技術(shù):“偶爾編程”的開發(fā)方式、高層次的開發(fā)部件、基于表單的而不是基于頁面的開發(fā)辦法、可面向非專業(yè)開發(fā)人員的應(yīng)用開發(fā),以及功能高級的編程能力,和通過用模板來管理應(yīng)用,用復(fù)制機制分發(fā)應(yīng)用等等。
用domino開發(fā)web應(yīng)用的優(yōu)勢
今天,微軟的asp技術(shù),主要是被用于創(chuàng)建基于web的前端連接到現(xiàn)有的后端系統(tǒng)或數(shù)據(jù)庫的應(yīng)用。但開發(fā)用于處理業(yè)務(wù)流程、管理工作流或加強協(xié)同工作的應(yīng)用,還需要許多附加的系統(tǒng)及大量的需要編程的組件集成工作。這其中包括:應(yīng)用,還需要許多附加的系統(tǒng)及大量的需要編程的組件集成工作。這其中包括:需要定義儲存機制,核心基礎(chǔ)服務(wù)需要安裝與配置的、并且需要通過手工的方式集成對象,需要創(chuàng)建的客戶化active server component 以及為上述組件的組合編寫的大量代碼。為了充分發(fā)揮asp的功能。開發(fā)人員應(yīng)深入理解多種微軟的產(chǎn)品。
相比之下,domino提供了一個集成的平臺和一個高層的、可視化的開發(fā)環(huán)境,使開發(fā)者可以快速而簡易地創(chuàng)建web應(yīng)用。此外,除了服務(wù)器端編程、動態(tài)內(nèi)容生成、由數(shù)據(jù)驅(qū)動的web頁面、內(nèi)容與應(yīng)用邏輯的分離、高層次的應(yīng)用部件和集成的應(yīng)用服務(wù)外,domino還具有了針對asp的眾多優(yōu)勢。這些優(yōu)勢具體體現(xiàn)在開發(fā)諸如前端辦公處理系統(tǒng)、內(nèi)容管理、與企業(yè)系統(tǒng)如關(guān)系型數(shù)據(jù)庫系統(tǒng)、erp應(yīng)用與傳統(tǒng)系統(tǒng)的集成等應(yīng)用上。
集成的核心服務(wù):企業(yè)級數(shù)據(jù)存訪、報文傳遞、目錄服務(wù)、復(fù)制、安全性、內(nèi)容索引、全文檢索、日程安排等。
iis和asp不提供應(yīng)用需要的基礎(chǔ)服務(wù)。這些服務(wù)必須以分開的形式加以安裝及管理。開發(fā)人員只能通過手工的方式通過編程active server component的方式實現(xiàn)(如果有這樣的component的話)。而核心應(yīng)用服務(wù)是domino提供的內(nèi)置基礎(chǔ)設(shè)施的一部分,服務(wù)是一致的,可以由任何類型的應(yīng)用訪問到:而iis與asp應(yīng)用中,由不同的訪問模型、安全模型、復(fù)制機制、管理特性相結(jié)合才能提供與domino相類似的服務(wù)功能。domino通過點擊對話、notes的公式語言、腳本語句及java對象接口等方式提供對核心服務(wù)高層次的訪問能力。domino靈活的應(yīng)用開發(fā)環(huán)境可以充分地利用現(xiàn)有的基礎(chǔ)服務(wù)功能。
安全性
domino在應(yīng)用中提供了難以匹敵的安全性特征。domino構(gòu)建了從最底層起的安全體系,它所涵蓋的范圍并不是簡單的文件、目錄或者某些組件接口。一且某個用戶通過了服務(wù)器的授權(quán)——這種授權(quán)可以是基本的身份驗證還是ssl——則domino就能控制其會話,保護(hù)應(yīng)用元素直到字段一級。domino共分7個層次對系統(tǒng)的各個級別進(jìn)行顆?;臋?quán)限管理。用戶可以根據(jù)應(yīng)用的實際情況被指定為不同的角色,以確定哪些信息可以被訪問,哪 些操作可以執(zhí)行。而asp應(yīng)用的安全性則完全依賴于幾種不同的安全模式:nt、iis和用于數(shù)據(jù)存儲的后端系統(tǒng)。由于微軟的安全模式均圍繞于所謂計算資源,對文件及目錄訪問可以被限制,但即沒有頁面之內(nèi)的權(quán)限控制又沒有應(yīng)用中的角色控制。asp的后端系統(tǒng),如exchange 依然缺乏了象domino系統(tǒng)這樣的安全能力,甚至在為某些協(xié)同工作的應(yīng)用編寫了相應(yīng)的代碼后,exchange仍然不能像domino那樣提供諸如文檔級直到字段級的存取權(quán)限控制。
快速的應(yīng)用開發(fā)
domino高層次的編程部件、對核心服務(wù)的容易訪問、“偶爾編程”的編程方式,使開發(fā)者可以迅速完美地實現(xiàn)業(yè)務(wù)需求。開發(fā)者應(yīng)盡量將時間用于處理業(yè)務(wù)問題,而不應(yīng)過多地困擾于手工地去集成應(yīng)用。
該文章在 2010/7/8 0:28:56 編輯過