Personal tools
You are here: Home Countries México Arquitectura de componentes de Zope 3
Document Actions

Arquitectura de componentes de Zope 3

by hvelarde last modified January 16, 2008 - 01:40

Compilado por Héctor Velarde con base en el capítulo 3 del libro Web Component Development with Zope 3 de Philipp von Weitershausen.

Componentes

  • Zope 3 se basa en una arquitectura de componentes
  • Cada componente tiene una responsabilidad diferente
  • La arquitectura de componentes le da a los desarrolladores la posibilidad de reemplazar ciertas implementaciones por otras mejores o durante el proceso de desarrollo
  • Es fácil reutilizar componentes ajenos a Zope o componentes de Zope fuera de Zope

Interfaces

  • Las interfaces son los contratos mediante los cuales los componentes trabajan juntos
  • No son parte de la distribución estándar de Python
  • La semántica varía un poco respecto a otros lenguajes; por ejemplo, el cumplimiento de la interfaz no es obligatorio
  • Las interfaces se utilizan a menudo como marcadores/identificadores y como documentación de la API

Componentes de contenido

  • Los componentes de contenido son idealmente clases simples de Python que se pueden emplear fuera de las aplicaciones Zope
  • Su única responsabilidad es almacenar los datos, no presentarlos ni procesarlos
  • Típicamente los componentes de contenido son persistentes y utilizan la ZODB como almacén de objetos transparente

Views

  • Las vistas (views) son componentes que presentan a otros componentes
  • Son casi las únicas partes de una aplicación que tienen que lidiar con los objetos request y response
  • Las características de una vista son:
    • la interfaz que presenta
    • el tipo de presentación que proporciona
    • su nombre
  • Las vistas están íntimamente relacionadas con el objeto que deben presentar (contexto), el tipo de vista y su nombre

Adapters

  • Los adaptadores (adapters) extienden la funcionalidad de los componentes existentes sin modificaciones en el código
  • Se registran para la interfaz que adaptan y para la que proporciona
  • Son consultados para el objeto al que adaptan (contexto) y para la interfaz objetivo
  • Las vistas son un tipo especial de adaptadores

Utilities

  • Un utility es un pequeño componente de software que proporciona una funcionalidad limitada
  • Un singleton es un utility que ocurre sólo una vez; se registra y se consulta por su interfaz
  • Muchos componentes nombrados del mismo tipo pueden registrarse como named utilities; se consultan por su nombre e interfaz

Servicios

  • Los servicios proporcionan funcionalidad fundamental, como son el registro y la consulta de otros componentes
  • El paquete zope.app.zapi combina la funcionalidad más esencial de un servicio y la expone a través de un conjunto de funciones
  • Los servicios globales están disponibles siempre y en cualquier lugar. Los servicios locales se registran en administradores del sitio y se emplean para personalizar ciertas partes de una aplicación

Configuración de componentes

  • El registro de componentes es asunto de configuración
  • Zope 3 emplea ZCML, un dialecto de XML, para realizar la configuración
  • Los objetos globales son referidos usando una ruta de puntos. Existe soporte para tanto para rutas absolutas como relativas

Seguridad

  • Los componentes se aseguran usando permisos. Diferentes acciones pueden requerir diferentes permisos
  • La abstracción de un usuario en Zope se conoce como principal
  • Las fuentes y las vistas de identificación de los principals se pueden personalizar para contextos específicos de seguridad de una aplicación
  • Una política de seguridad determina si un principal tiene permiso para realizar una acción. La política de seguridad por defecto niega todo a menos que algo sea explícitamente permitido
  • La política de seguridad por defecto abstrae las responsabilidades de un usuario como roles que representan un conjunto de permisos que pueden ser asignados a los principals

Más información

Para obtener mayor información puedes visitar worldcookery.com, un sitio acerca de Zope 3 mantenido por Philipp von Weitershausen.


For any issues with the web site functionality, please file a ticket.

Please consult the policy on plone.org content if you want your content published on this site.

Servers and hosting by