您的位置:首页 > 文档 > zope >
 文章分类 

什么是对象发布


创建:2005-10-28 00:08:07
作者:Unlinux
来自: http://www.Unlinux.com

什么是对象发布?

作者:Amos 翻译:limodou

来源:http://www.zope.org/Members/Amos/WhatIsObjectPublishing/

Zope是一个“对象发布环境”。但它的确切涵义是什么呢?

动态内容

对象发布允许你生成动态内容。

不象HTML页面或CGI程序,Zope是以对象的方式来看待一个web应用的。对象是小的内容与行为的混合体。Zope允许你将对象编写在一起来生成强大而又灵活的对象集。这些对象集可以对web请求进行应答。结果就是动态内容。

这一点与通常所创建的web站点有很大的区别。仅仅将一组HTML页面和CGI脚本放在一起来生成一个web站点,并不能生成任何协作。当 HTML页面和CGI脚本被收集进一个web站点时,它们的行为没有什么不同。HTML页面仍然发送同样的静态内容,CGI脚本仍然执行着同样的处理。站点的元素之间不进行通信,而且当改变其中一个元素时,你需要手工更新其它的元素。

Zope却不这样。每个Zope对象感觉上是“聪明的”,它们是自适应的并且可以同其它对象进行通信。Zope对象是协同工作的。对象可以从其它的对象获得信息和作为。将对象联系在一起的方式决定了对于它们哪些服务和内容是有效的。(阅读What is Acquisition?可以了解更多的内容)接着对象适当地根据给定的上下文对象和内容表现自已。这就是发布(publishing)处理。

使用URL来引用对象

那么一个Zope对象是如何被发布的呢?通过URL请求。

为了在Zope中引用一个对象,你要使用URL。这一点与一个web服务器引用HTML文件的方式非常相似。这里有一个URL例子:

http://www.example.com/Users/Barney/Song

对于一个正常的web服务器来说,这个URL的意思是返回位于Users目录下的Barney目录下的名为Song的文件。对于Zope来说,这个URL意思是发布位于Userd对象内的名为Barney的对象内的名为Song的对象。

那么有什么不同吗?

对于Zope来说,每个对象都是动态的,例如,如果Song对象可以通过不同的方式来演唱,你只需要向URL增加额外的信息就可以请求一种不同的行为。如:

http://www.example.com/Users/Barney/Song/sing?audience=children&repeat:int=5

这个URL告诉Zope发布Song对象,通过调用它的sing方法,使用参数(audience="children", repeat=5)。

另外,上下文对象影响着对象是如何被发布的。所以在我们的例子中,Users对象可能定义了一个HTML页眉和页脚,同时Barney对象可能定义所有的文本为绿色。所以当Song对象发布自身的时候,在Barney和Users对象中的事实导致了歌词以绿色文本显示,并且带有一个标准的HTML 页眉和页脚。如果你将Song对象移到另一个位置,它将根据不同的上下文对象显示也不一样。

每一个Zope对象都是动态的,并且可以使用不同的方式来发布,从而展现不同的行为。

转载自:http://www.unlinux.com/doc/zope/20051028/5455.html

评论】 【加入收藏夹】 【 】 【打印】 【关闭
 *  请尊重我们的劳动,转载请注明出自UnLinux.Com及作者名 * 

※ 相关链接
 ·JavaScript是什么?  (2005-10-28 00:07:50)
 ·什么是 screen  (2005-10-27 22:52:35)
 ·什么是gnome---基本概念介绍  (2005-10-27 22:52:35)
 ·关于cursor open 的时候到底做了些什么  (2005-10-27 22:05:21)
 ·在listener.ora文件中tcp协议和ipc协议有什么区别?  (2005-10-27 22:04:48)
 ·Perl/Tk FAQ - 25. 有什么用Perl/Tk写的应用程序吗?  (2005-10-27 22:04:21)
 ·Perl/Tk FAQ - 5. CPAN是什么?在哪里  (2005-10-27 22:04:21)
 ·N合1的ISO用什么软件刻最好  (2005-10-27 22:04:16)
 ·Perl/Tk FAQ - 16.5. 有什么等价于tkerror的模块吗?  (2005-10-27 22:04:11)
 ·Perl/Tk FAQ - 2. Perl/Tk和Tkperl有什么区别?  (2005-10-27 22:04:11)

Copyright © 2005 UnLinux.Com All Rights Reserved