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