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服务器的销售中获得收益。