六、数据共享
zope 的强大功能之一就是它简单而成熟的数据共享模型,这个模型叫做“获取”,核心的概念可以简单的描述为:
zope 对象包含于其它对象中(例如,文件夹)
对象能够“获取”容器中的属性,内容,行为。
以前,我们决定把我们网站的头和脚封装到分离的 dtml 文档,这样能包含其他网站的内容,但是这个设计在拷贝头和脚到网站内所有的文件夹时发生了问题。如果我们采取“获取”的办法,在网站的顶层文件夹建立头和脚,下层的 dtml 就能自动“获取”。
这个概念对所有的对象都适用,对把常用的资源集中起来十分有用。例如,对一个经常用到的 sql 查询语句,我们可以把它定义在一个文件夹里,子文件夹里的对象能自动通过“获取”来使用它,如果要改变查询语句,只需要改动一个地方就可以了。
因为对象从当前层开始“获取”,然后向上搜索,因此很容易建立自己的文档。
例如,我们有一个叫做“sports”的文件夹,内容全部是关于运动的,你可以在这个文件夹里建立自己的头和脚,当前目录及其子目录下面的文档就会使用这两个文档而不是采用顶层的那个了。
对“获取”的使用方法可以写好几篇这样的文章,我们首先需要了解的就是它提供了一个简单但是强大的方法来避免数据冗余而增加网站的维护成本。
七、安全授权
一个成功的网站需要组织起一个团队来合作:应用开发人员,sql 专家,内容管理员以及应用的最终用户。在传统的网站里,维护和安全会很快出现矛盾。对权限的分配会变得十分复杂。
zope 在这个问题上采用了数据和表示的清晰分离以及灵活的安全模型。采用“用户文件夹”来管理用户,里面包含用户信息。zope 提供了要比普通文件系统要丰富得多的权限。
除了使用web 来管理强大的封装和安全特色以外,zope 还提供其他协议的合作开发特色,包括 ftp, webdav 和 xml-rpc。版本管理,能让其他用户看到最新的版本更新,但不是发布出去,如果版本的修改结束后,用户就可以“提交”版本,把最新版本的网站发布出去。
八、xml 支持
当前应用服务器市场的热门话题就是 xml 支持。zope 除了内置的对基于 xml的协议 webdav 和 xml-rpc的支持外,zope 的开发人员还可以利用一个快速的基于 c 的 xml 分析器,zope 对象数据库能导出为 xml 格式。利用一个“xml 文档”的附加原型,可以把 xml 文档上传到 zope,zope 会自动分析文档及其元素,并储存为单独的 zope 对象。
和 xml 相关的是,zope 包含了对dom(document object model) api的支持。开发人员可以在 dtml 或者 python 代码中使用熟悉的 dom 调用来操作 zope 对象。将来对 xml 的支持还会包含 xsl 处理以及用 xql(xml query language) 对 zope 对象搜索。
九、结束的话
zope 是高度可扩充的,高级用户可以建立自己的对象类型,或者采用 python 写新的 zope 附加模块。zope 社区已经有很多这类的附加产品。更多的产品信息可以参考 zope 的网站:www.zope.org。
国内的 www.freelamp.com 网站是一家采用 zope + squishdot 架构的开放源码新闻网站,着力于网站安全和 lamp(linux + apache + mysql + php/perl/python) 的架构。
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器