1、为什么要用Zope替代其它Application Server
Zope是Z Object Publishing Environment的缩写,Zope的大部分是用Python编写,关键性能部分是用C编写的。
Zope是一个Application Server框架(就像WebLogic),允许各种技能层次的开发者创建Web应用程序。
为什么要使用Zope替代其它的Application Server,这来自于Zope的一些主要特性:
l Zope是免费的、开源的
l Zope是一个包容的平台,包含所有开发应用程序需要的组件
l Zope允许和鼓励第三方开发者发布应用程序,因此Zope有广泛的集成服务和add-on产品可供使用
l 使用Zope Enterprise Objects(ZEO)集群方案创建的应用程序,不需要改变太多代码就可以支持跨平台
l Zope允许开发者创建支持各种浏览器的应用程序
l Zope提供可扩展的安全框架
l Zope允许高效合作的团队开发
l Zope可以在大多数流行的OS上运行
l Zope可以使用Python脚本语言进行扩展
2、Zope基本概念
(1)Zope是一个Application Server框架
l 使用Zope提供的服务,可以比其它框架更快速的开发Web应用程序
l 允许使用Python编写应用程序逻辑,使用add-on也支持Perl
l Zope提供两种页模版方案:Document Template Markup Language(DTML)和Zope Page Template(ZPT)
(2)面向对象
l Zope是一个面向对象的Web开发平台,这意味着可以在不同的开发语言中共享
(3)发布对象
l Web是基于面向对象的,Web资源的URL是容器中对象的路径,HHTP协议提供了传递消息给对象的方法,同时接收该对象的响应
l Zope会将URL映射到存于其对象数据库(ZODB)中的对象
(4)Web方式管理
l Zope管理界面(ZMI)提供了类似于Windows资源管理器的Zope对象系统视图
l 通过ZMI,开发者可以创建和编写Zope对象,甚至定义新的对象类型,而不需要访问文件系统
(5)安全代理
l Zope中的对象提供了比一般基于文件的系统更加丰富的权限
l 不同的对象类型具有各种不同的权限
l Zope使用“User Folders”对象(包含用户信息)提供管理用户的能力
l 一些Zope add-on提供了扩展的“User Folders”,通过外部数据源(如关系数据库)来获取用户数据
(6)本地对象持久性和事务
l Zope对象被保存在称为Zope Object Database(ZODB)高效能的事务对象数据库中
l 每次Web请求都被作为一次独立的数据库事务处理
l 当然,关系数据库也能在Zope事务框架中使用
(7)Acquisition
l Acquisition的含义是:Zope对象包含在其它的对象中;对象可以从它们的容器中获取属性和行为(方法)
(8)Zope是可扩展的
l Zope是高效可扩展的,高级开发者可以创建新类型的Zope对象
l 可以使用Python编写新的add-on,或创建Web应用程序
3、Zope基本体系结构
l ZServer:Zope内建的Web Server,支持HTTP、FTP、WebDAV和XML-RPC
l Web Server:以存在的Web Server,如Apache或IIS;Zope可以通过CGI接口和这些Web Server一起工作
l Zope Core:用来驱动ZMI和ZODB的核心引擎
l ZODB:用于存储Zope对象的对象数据库
l Relational Database:也可以保存信息到其它的关系数据库(如Oracle、PostgreSQL、MySQL)中
l File System:当然,Zope也可以和文件系统一起工作
l ZClasses:可以使用ZMI添加的新Zope对象类型
l Products:Zope允许安装产品(add-on)的方式来添加的新Zope对象类型