arquitectura de componentes de zope 3
DESCRIPTION
Compilado por Héctor Velarde con base en el capítulo 3 del libro Web Component Development with Zope 3 de Philipp von WeitershausenTRANSCRIPT
Arquitectura de componentes de Zope 3
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
Seguridad (cont.)
• 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.