1. 什么是Web應(yīng)用程序?
網(wǎng)站內(nèi)容需要及時的更新,尤其對于商業(yè)網(wǎng)站來說更是如此。網(wǎng)站中的網(wǎng)頁用超級文本標記語言(HTML)編寫而成。當(dāng)用戶訪問網(wǎng)站的時候,實際上就是把服務(wù)器上帶有HTML 的文本內(nèi)容傳送到用戶的瀏覽器中,然后通過瀏覽器來解釋成圖文并茂的網(wǎng)頁。當(dāng)用鼠標點擊鏈接時,就是開始傳送一個新的網(wǎng)頁。
一些網(wǎng)站是靜態(tài)的。靜態(tài)網(wǎng)站需要維護人員手工更新網(wǎng)站內(nèi)容。更新內(nèi)容就是手工更新那些用HTML編寫而成的網(wǎng)頁文件,然后把這些文件放到服務(wù)器中。更新由靜態(tài)網(wǎng)頁組成的網(wǎng)站,需要編輯所有的文件,如果要更新的文件很多,更新就會很繁瑣。這樣就很容易犯錯誤。為了提高網(wǎng)站內(nèi)容維護的效率,就可以通過構(gòu)建Web應(yīng)用程序來解決問題。
Web應(yīng)用程序就是一種通過互聯(lián)網(wǎng)能夠讓W(xué)eb瀏覽器和服務(wù)器通訊的計算機程序。不同于靜態(tài)網(wǎng)站的,Web應(yīng)用程序動態(tài)創(chuàng)建頁面。采用動態(tài)方式生成的Web站點通過使用計算機程序來實現(xiàn)動態(tài)的特性。這種動態(tài)的應(yīng)用程序可以用各種計算機語言來編寫。
動態(tài)構(gòu)建的網(wǎng)站不需要維護管理人員一頁一頁的更新內(nèi)容。動態(tài)網(wǎng)站可以把HTML 部分和數(shù)據(jù)部分分離開,從而極大的提高網(wǎng)站維護和管理的效率。使用Web應(yīng)用程序的網(wǎng)站很多很多,比如:Google,SourceForge,eBay,Hotmail等等。
通常,允許人們構(gòu)建Web應(yīng)用程序的框架被稱作Web應(yīng)用服務(wù)器。Zope就是一種web 應(yīng)用服務(wù)器,類似的競爭者比如: WebLogic?, Macromedia ColdFusion? (http://www.macromedia.com/)等等。Web應(yīng)用服務(wù)器一般通過某種計算機程序語言來創(chuàng)建web應(yīng)用程序,并且提供更多的功能,比如模板、安全模型,數(shù)據(jù)安全,對話(session),以及其它更多的在構(gòu)建Web應(yīng)用程序時所需要的方便特性。
2. 如何通過應(yīng)用服務(wù)器受益?
如果你想編寫web應(yīng)用程序,一般都需要使用應(yīng)用服務(wù)器框架,除非是非常特殊的應(yīng)用程序。通過使用應(yīng)用服務(wù)器框架可以充分利用已經(jīng)編寫好的各種服務(wù)程序,而不需要像直接使用一種編程語言那樣從頭寫起。許多應(yīng)用服務(wù)器可以完成以下任務(wù)。
顯示動態(tài)內(nèi)容
你可以加入搜索特性。應(yīng)用服務(wù)器可以提供動態(tài)生成內(nèi)容的服務(wù)。應(yīng)用服務(wù)器一般都可以個性化,并且結(jié)合數(shù)據(jù)庫,以及搜索內(nèi)容。
管理你的Web站點
應(yīng)用服務(wù)器可以通過統(tǒng)一的方式管理站點中的數(shù)據(jù)、事務(wù)邏輯和顯示。
構(gòu)建一個內(nèi)容管理系統(tǒng)
應(yīng)用服務(wù)器提供構(gòu)建內(nèi)容管理系統(tǒng)的工具,從而可以讓非技術(shù)編輯者可以創(chuàng)建和管理站點內(nèi)容。
構(gòu)建電子商務(wù)應(yīng)用程序
應(yīng)用服務(wù)器提供構(gòu)建復(fù)雜的電子商務(wù)所需的框架。
安全的管理各種用戶
網(wǎng)站中的不同用戶需要不同的權(quán)限,應(yīng)用服務(wù)器可以提供權(quán)限控制功能。
提供多種網(wǎng)絡(luò)服務(wù)
支持網(wǎng)絡(luò)服務(wù)的web站點可以處理來自其它計算機程序的請求。應(yīng)用服務(wù)器正在逐步提供這樣的功能。
結(jié)合多種系統(tǒng)
現(xiàn)有的內(nèi)容可能來自于不同的地方,比如:關(guān)系數(shù)據(jù)庫,文件,其它的站點等等。應(yīng)用服務(wù)器可以把這些不同的數(shù)據(jù)整合在一起,提供統(tǒng)一的界面。
提供可擴展性
應(yīng)用服務(wù)器可以根據(jù)服務(wù)器負載的情況來進行擴展。
Zope應(yīng)用服務(wù)器可以完成上述所有功能。
3. Zope 歷史
1996年,當(dāng)時是Zope公司CTO和 Python領(lǐng)袖的Jim Fulton,為教授CGI程序起草講稿,盡管他的CGI編程的知識不算很多。Jim針對這門課程,以他自己的方式研究了所有關(guān)于CGI方面的現(xiàn)存文檔。在講課返回的途中,Jim考慮傳統(tǒng)的基于CGI的編程環(huán)境中他不喜歡的方面包括:脆弱、缺乏面向?qū)ο蠛捅┞禬eb服務(wù)器細節(jié)的方式。從這些最初的沉思 開始,在返回的飛機中Jim寫出了Zope的核心內(nèi)容。
Zope公司(原名為Digital Creations)后來公布了三個用以支持Web出版的開放源碼軟件包,分別為: Bobo、Document Template 和BoboPOS 。 這些軟件包是用 Python編寫的。它們發(fā)展成為Zope提供Web ORB (Object Request Broker)、DTML 腳本語言和對象數(shù)據(jù)庫的核心組件。從那時起,Zope公司就開發(fā)了一套基于他們的三個開放源碼組件的商業(yè)性的應(yīng) 用服務(wù)器。這個產(chǎn)品稱為Principia 。在1998年的11月,投資人Hadar Pedhazur 決定讓Zope公司公開Principia的源碼。于是就形成了Zope,
“Zope”含義是指 Z 對象出版環(huán)境(Z Object Publishing Environment,Z沒有特別的含義)。Zope主要采用Python編寫,其中與性能密切相關(guān)的部分采用C語言編寫。
4. 為什么使用Zope?
比起其它web應(yīng)用服務(wù)器,Zope可以更好更快的創(chuàng)建web應(yīng)用程序,這是因為Zope支持以下特性:
* Zope是免費的,可以在開放源代碼許可證條件下自由分發(fā),不同于那些昂貴的商業(yè)應(yīng)用服務(wù)器。
* Zope是一套完整的平臺。它包含了開發(fā)應(yīng)用程序所需的全部組件。不需要為了使用Zope而授權(quán)使用其它軟件。并且Zope安裝容易,輕松上手。
* Zope允許并鼓勵第三方開發(fā)者打包和分發(fā)應(yīng)用程序。因此,Zope已經(jīng)有了很多可以立即使用的產(chǎn)品組件。大多數(shù)組件都是自由并開放源代碼的。Zope擁有一大批社區(qū)開發(fā)者。
* Zope創(chuàng)建的應(yīng)用程序可以直接通過Zope企業(yè)對象(ZEO)進行擴展。通過ZEO,可以在多臺計算機中部署Zope應(yīng)用程序,而不需要修改代碼。
* Zope 允許開發(fā)者只使用瀏覽器就可以創(chuàng)建web應(yīng)用程序。比如:Internet Explorer, Mozilla, Netscape, OmniWeb?, Konqueror, 以及Opera瀏覽器都可以支持Zope的管理界面(ZMI).Zope還可以通過使用統(tǒng)一的web界面讓其他的開發(fā)者安全的同時進行開發(fā)。其它應(yīng)用服務(wù)器很少支持這個特性。
* Zope提供多種和可擴展的安全框架。可以輕松結(jié)合多種權(quán)限認證系統(tǒng),比如通過內(nèi)置的模塊可以同時支持LDAP, Windows NT, and RADIUS。而許多其它應(yīng)用服務(wù)器缺乏這些特性
* Zope可以讓開發(fā)團隊高效協(xié)同開發(fā)。協(xié)同環(huán)境可以讓用戶不會相互干擾,Zope使用Undo, Versions, History,以及其它工具來幫助人們一起工作,并且可以從錯誤中恢復(fù)過來。而其它大多數(shù)應(yīng)用服務(wù)器不支持這些特性。
* Zope 可以運行在大多數(shù)計算機操作系統(tǒng)平臺中:Linux, Windows NT/2000/XP, Solaris, FreeBSD?, NetBSD?, OpenBSD?, 和 Mac OS X.。Zope甚至可以運行在Windows 98/ME中。而其它大多數(shù)應(yīng)用服務(wù)器做不到這一點。
* Zope可以通過Python語言進行擴展。Python很流行并且很容易學(xué),可以促進快速開發(fā)。Python中的許多功能庫可以直接用于創(chuàng)建你的應(yīng)用程序。而其它一些應(yīng)用服務(wù)器使用不能快速開發(fā)的編譯語言,比如Java,或者使用不流行的語言。
用Zope創(chuàng)建的應(yīng)用,請參考Zope公司的主頁Zope.com中的案例分析頁面。
5. Zope的目標用戶,以及Zope不適合做什么
管理大型站點的開發(fā)過程是件困難的事情。經(jīng)常需要很多人一起工作來創(chuàng)建、部署和管理web應(yīng)用程序。
* 信息架構(gòu)者進行總的安排和控制
* 組件開發(fā)者創(chuàng)建可重用和分發(fā)的軟件。
* 站點開發(fā)者結(jié)合現(xiàn)有的由組件開發(fā)者編寫的軟件,以及本地應(yīng)用服務(wù)器提供的服務(wù),構(gòu)建應(yīng)用程序。
* 站點設(shè)計者創(chuàng)建站點的外觀和感覺
* 內(nèi)容管理者創(chuàng)建和管理站點的內(nèi)容
* 管理員維護軟件系統(tǒng)運行
* 消費者使用站點來定位和使用有用的內(nèi)容。
Zope最適合組件開發(fā)者、站點管理者和站點設(shè)計者,并且這三種用戶通過Zope提供的服務(wù)和第三方產(chǎn)品可以一起協(xié)同開發(fā)應(yīng)用。典型的情況是內(nèi)容管理者和使用者在系統(tǒng)架構(gòu)者的指導(dǎo)下開發(fā)應(yīng)用。管理員部署和維護應(yīng)用程序。
Zope是一種web應(yīng)用構(gòu)建的框架,不同水平的程序員都可以使用Zope來創(chuàng)建基于web 的應(yīng)用程序。Zope不是一種現(xiàn)成的應(yīng)用程序。它不是weblog、內(nèi)容管理系統(tǒng)或是一種電子購物程序。
基于Zope的各種產(chǎn)品可以完成這樣的功能。到目前為止,Zope.org站點中已經(jīng)有了500多種可用于你的應(yīng)用程序的產(chǎn)品。這些產(chǎn)品包括Weblog,內(nèi)容管理,以及電子商務(wù)程序等等。
Zope不是一種可可視化的設(shè)計工具,不同于Macromedia Dreamweaver 或者 Adobe GoLive?這樣的軟件。你可以使用這些軟件來管理基于Zope的web站點,但是不能用 Zope來替代這些界面設(shè)計軟件。
6. Zope的使用條款,許可證,以及Zope社區(qū)
Zope是免費的。你可以用zope創(chuàng)建和運行web應(yīng)用程序,而不用支付費用,并且還可以在你的產(chǎn)品中置入zope而不用給Zope公司支付使用費。分發(fā)Zope需要遵守的許可證是一種開放源碼許可證,即Zope Public License或ZPL。ZPL條款中規(guī)定你可以獲得和修改Zope的源代碼。
ZPL不同于GNU Public License(另外一種比較流行的開放源代碼許可證)。如果你試圖重新分發(fā)遵守GPL許可證的應(yīng)用程序,并且你修改或擴展了應(yīng)用程序,GPL 要求所做的貢獻屬于許可證頒發(fā)者。而對于遵守ZPL的應(yīng)用程序就沒有這樣的要求。 ZPL已經(jīng)得到開放源代碼機構(gòu)的認可,獲得了OSD認證,另外還得到自由軟件基金會的認可,兼容于GPL許可證。
Zope開發(fā)者社區(qū)負責(zé)維護或擴展Zope應(yīng)用服務(wù)器。社區(qū)中的很多成員是專業(yè)咨詢顧問、專業(yè)開發(fā)者和Web精通者,他們使用Zope開發(fā)應(yīng)用程序。另外,用戶中還有學(xué)生以及站點開發(fā)愛好者。Zope公司也是社區(qū)成員之一,主要負責(zé)維護Zope以及開發(fā)Zope代碼。 Zope社區(qū)通過聚會以及郵件列表和站點進行交流。在Zope.org的郵件列表頁面,可以找到更多的信息。
Zope公司通過多種方式獲得收入,包括為商業(yè)用戶創(chuàng)建web應(yīng)用程序,培訓(xùn)Zope開發(fā)者,為使用Zope的公司提供技術(shù)支持,以及主機服務(wù)。Zope公司不從Zope服務(wù)器的銷售中獲得收益。