ZOPE, AMBIENTE Z PARA PUBLICAÇÕES DE OBJETOS - TECNOLOGIA

Interface de gerenciamento do Zope no Mozilla Firefox

Zope é um servidor de aplicações web Open Source escrito na linguagem Python. Zope significa "Z Object Publishing Environment" (Ambiente de Publicação de Objetos). Muitas tarefas de administração de um servidor Zope podem ser realizadas através de uma interface web. Os objetos que o Zope publica na Web são escritos em linguagem Python, e tipicamente armazenados num banco de dados orientado a objetos, o ZODB, que é integrado ao sistema. Objetos básicos, tais como documentos, imagens e templates (modelos de páginas) podem ser criados ou modificados via web. Objetos especializados, tais como wikis, blogs, e galerias de fotos estão disponíveis como componentes adicionais (chamados products), e existe uma comunidade pujante de pequenas empresas criando aplicações web como produtos. Existem duas gerações de Zope em uso atualmente (4/jun/2005): Zope 2.7.6 é a versão estável mais recente da segunda geração, e Zope X3 3.0.0 é o lançamento mais novo da terceira geração.

História
O que hoje conhecemos como Zope surgiu em 1998 quando a empresa Digital Creations (atual Zope Corporation), abriu o fonte de seus principais produtos -- Bobo e Principia -- sob uma licença Open Source. A decisão foi influenciada por Hadar Pedhazur, principal investidor da empresa. A combinação de Bobo e Principia foi renomeada para Zope naquela época. Esta decisão transformou a Digital Creations numa empresa de serviços, e proporcionou muito mais visibilidade e interesse em torno do Zope do que o Principia jamais teve.

Características técnicas
Um site em Zope é formado por objetos em um banco de dados em vez de arquivos, como é comum em muitos outros servidores de aplicação web. Esta abordagem permite alavancar as vantagens do paradigma de objetos, como encapsulamento. Zope associa URLs a objetos utilizando a hierarquia de partes (composição); os métodos são considerados como partes dos objetos. Por exemplo, http://www.zope.org/Products/visual é uma forma de acessar app.Products.visual

O Zope inclui o Zope Object Database (ZODB), que persiste transparentemente objetos Python de forma transacional. A transparência está no fato de que os desenvolvedores raramente precisam escrever código para ler ou salvar os objetos no ZODB de forma explícita.

Uma característica particularmente inovadora do Zope é o uso em larga escala de aquisição. Aquisição é uma técnica paralela à herança de classes, através da qual objetos 'herdam' comportamentos de seu contexto na hierarquia de composição, além da hierarquia de classes. Isto possibilita novas formas de organizar a aplicação, muito adequadas ao paradigma da web onde os sites são organizados em pastas e sub-pastas, ou seções e sub-seções. Um uso frequente de aquisição é a organização dos componentes visuais das páginas de forma que elementos comuns possam ser adquiridos de um repositório central, sem se perder a possibilidade de substituir qualquer elemento por uma versão local mais adequada ao contexto. Por outro lado, o modo como a aquisição é implementada no Zope 2 também e visto como uma fonte de bugs, produzindo comportamentos inesperados em alguns casos. O uso de aquisição foi bastante reduzido no Zope 3.

O Zope fornece dois mecanismos para a criação de templates: Dynamic Template Markup Language (DTML: Linguagem Dinâmica de Marcação de Templates), e Zope Page Templates (ZPT: Templates de Páginas Zope). DTML é uma linguagem baseada em tags que permite implementar lógica simples em templates, através de laços, condicionais e inserção de variáveis. No entanto, o DTML apresenta alguns problemas comuns às linguagens deste tipo: os templates não podem ser verificados por validadores HTML, e a inclusão indiscriminada de lógica nos templates resulta em código pouco legível e difícil de manter.

ZPT é uma uma tecnologia que ataca estes problemas. Templates ZPT são formadas por XML ou HTML válido, nas quais toda a codificação é feita através de atributos dentro dos tags já existentes nestas linguagens. Tais atributos utilizam um espaço de nomes especial, denominado tal: Template Attribute Language (Linguagem de Atributos para Templates), e assim são compatíveis com as especificações do W3C e com as principais ferramentas de edição de HTML. ZPT proporciona apenas um conjunto limitado de recursos, estimulando os programadores a implementar a lógica em scripts Python à parte, que são apenas invocados (e não incluídos) nos templates. ZPT também fornece suporte à internacionalização e localização de aplicativos web, propiciando a substituição de mensagens por versões previamente traduzidas em múltiplas línguas.

O Zope 2 fornece a infraestrutura para gerenciadores de conteúdo como Plone, Silva (CMS) e Nuxeo CPS, bem como grandes portais desenvolvidos pela Zope Corp., como o Boston.com .

Zope 3
Uma nova versão do Zope, o Zope 3, vem sendo desenvolvida desde 2001. Embora o Zope 2 tenha comprovado seu valor como framework para o desenvolvimento de aplicações web, ele não está livre de problemas. Por exemplo, criar um novo produto para extender o Zope envolve o reuso de muito código "mágico" que simplesmente precisa estar lá, e a lógica do domínio da aplicação é inevitavelmente "contaminada" pela lógica da própria infra-estrutura. O Zope 3 é uma re-criação total do sistema, com ampla participação da comunidade de desenvolvedores que se especializou na plataforma. O objetivo é resolver estes problemas sem perder as vantagens que deram ao Zope sua atual popularidade. O Zope 3 é baseado numa arquitetura de componentes, que visa facilitar por um lado o uso de componentes externos dentro do Zope, e por outro lado o uso de componentes isolados do Zope em projetos que não necessitam de toda a infra-estrutura do servidor de aplicações. A primeira versão de produção, chamada Zope X3, foi lançada em 6/11/2004.

Gostou? Compartilhe:

0 comentários:

CityGlobe