SlideShare una empresa de Scribd logo
1 de 47
Descargar para leer sin conexión
Programación basada
en componentes para
Programadores Python
Leonardo J.
Caballero G.
Acerca de mí
Marabino.
Macagua.
11 años en Linux.
Debianista.
Canaimero.
Pythonista.
Plonista.
http://www.flickr.com/photos/sinlentes/5570374264/
Programación basada en
componentes
• Tiene énfasis en la descomposición de sistemas
en componentes funcionales o lógicos.
• A través de interfaces bien definidas usadas para
la comunicación entre componentes.
• Es nivel de abstracción más alto que los objetos.
Programación basada en componentes
Casos de adopción de este son:
● El modelo Enterprise JavaBeans de Oracle.
● Component Object Model (COM) de Microsoft.
● System.ComponentModel en Microsoft .NET.
● Cross Platform Component Object Model (XPCOM)
de Mozilla Foundation.
● Universal Network Objects (UNO) de
OpenOffice.org.
● Zope Component Architecture (ZCA) en Python.
Zope Component Architecture - ZCA
● Es un marco de trabajo (framework) en Python
que soporta el diseño y la programación basada
en componentes.
● Ayuda a separar el código de presentación del
ámbito del código de lógica y crea componentes
reusables (zope.component).
Conformación de la ZCA
● Publicador de Objeto (zope.publisher).
● Servidor Web (zope.server).
● Base de datos objeto transaccional (ZODB).
● Lenguaje de configuración basado XML para
registrar de componentes (zope.configuration).
● Arquitectura de seguridad flexible con políticas de
seguridad pluggable (zope.security).
Conformación de la ZCA
● Frameworks de pruebas unitarias y funcionales
(zope.testing, zope.testbrowser).
● Lenguaje de plantillas XHTML-compliant
(zope.pagetemplate).
● Motor de esquemas y mecanismo de generación
de formularios automático (zope.schema, z3c.form)
y muchos más paquetes del núcleo y de terceros.
Zope Component Architecture - ZCA
● Interfaces.
● Components.
● Zope 3 Schemas.
● Zope Configuration System.
● Zope Content Providers.
● Zope Page-Template Architecture.
● Zope Object Database Architecture.
ZCA - zope.interface
Interface, son objectos que especifican el
comportamiento externo de objetos que “proveen”.
Esta especifica comportamiento a través de:
● Documentación informal en una cadena.
● Definiciones de Atributos, especifica atributos
específicos.
● Invariantes, son condiciones que deben tomar para
los objetos que provee la interfaz.
ZCA - zope.interface
ZCA - zope.component
● Utilities, son componentes que provee una
interfaz y que son observado por una interfaz y
un nombre.
● Adapters, son componentes computados desde
otros componentes para adaptarlo a alguna
interfaz, debido a esto, son proveídos como
fabricas, usualmente clases.
ZCA – zope.component - Utilities
ZCA – zope.component - Utilities
ZCA – zope.component - Adapters
ZCA – zope.component - Adapters
ZCA – zope.component - Adapters
ZCA – zope.component - Adapters
ZCA - zope.component
● Handlers, son fabricas de adaptadores de
suscripción que no producen nada, solo cuando
son llamados. Usualmente usado para manejar
eventos.
ZCA – zope.component - Handlers
ZCA – zope.component - Handlers
ZCA – zope.component - Handlers
ZCA - zope.schema
● Schemas extiende la noción de interfaces para
descripciones detalladas de Atributos, (pero no
métodos).
● Cada esquema es una interfaz y especifica los
campos públicos de un objecto.
ZCA - zope.schema
● Fields, un campo roughly corresponde a un
atributo de un objecto Python.
● El paquete “zope.schema” provee un conjunto de
tipos de campos, incluyendo texto simple y
múltiple, data binaria, enteros, punto flotante y
valores fecha / hora.
ZCA - zope.schema
● Widgets, son componentes que muestran valores
de campos y, en el caso de campos reescribibles,
permite al usuario editar sus valores.
ZCA - zope.schema
ZCA - zope.schema
ZCA - zope.schema
ZCA - Zope Configuration System
● ZCML, del ingles “Zope Configuration Markup
Language” es una aplicación XML.
● En Zope 2 con el producto Five le permite usar
una serie de componentes Zope 3 que pueden
ser conectado juntos usando ZCML.
ZCA – zope.configuration - ZCML
Zope Content Providers
● Content Provider, es un termino del mundo Java
que refiere a componentes que pueden proveer
contenido HTML.
● Le permite definir regiones en su página y para
que los programadores registren piezas de
contenido HTML en esas regiones.
Zope Content Providers
● Son conocidos como Viewlets y están disponible
solamente dentro de Viewlet Managers.
● Implementa un patron de diseño Composite.
● En Zope 3 son adaptadores múltiples que esta
observando por el contexto, solicitud (y también el
layer / skin), y la view que ellos despliegan.
ZCA - Zope Content Providers
Plantilla Principal
Administrador Viewlet
Administrador Viewlet
Ranura
Principal
Viewlets
Viewlets
Portlets
Viewlets
Vista de Contenido
Principal
Zope Content Providers - Viewlets
Zope Content Providers - Viewlet Manager
Zope Page-Template Architecture
● El compilador y interprete Template Attribute
Lenguage.
● Un motor de expresión.
● Las page templates atan todo junto.
Zope Page-Template Architecture
Zope Page-Template Architecture
Zope Object Database Architecture
● Soporte para concurrencia.
● Interfaces para almacenamiento, permitiendo
diversas estrategias de almacenamiento a usar,
desde un archivo, a RDBMS, a memoria.
● Robusto formato del archivo de almacenamiento.
● Múltiples BDs en el mismo sistema de objeto.
Zope Object Database Architecture
● Versionado e integraciones de versiones con el
sistema transacción.
● Múltiples procesos de gestión de almacenamiento
a través de la distribución estándar no incluirá los
administradores de almacenamiento de proceso
múltiples.
Zope Object Database Architecture
Zope Object Database Architecture
Zope Object Database Architecture
Zope Object Database Architecture
p1 p2 p3 p4
Pagina
titulo
descripcion
contenido
comentariorating
Lecturas recomendadas
● The Zope 3 Book
● http://muthukadan.net/docs/tzb.html
● The Zope2 Book
● http://docs.zope.org/zope2/zope2book/
● Una guía comprensiva de la Arquitectura de
Componentes de Zope
● http://plone-spanish-
docs.readthedocs.org/es/latest/programacion/zca/z
ca-es.html
¿Preguntas?
leonardoc@plone.org
@SomosCovantec
@macagua / @ploneve
https://www.flickr.com/photos/sparetomato/2641110677/
¿Quieres mejorar este material?
Este material tiene licenciamiento abierto, y puede
reportar errores o proponer mejoras:
● Repositorio de fuentes.
● https://github.com/Covantec/entrenamiento.desarrollo
_plone
● Reportar errores o proponer mejoras.
● https://github.com/Covantec/entrenamiento.desarrollo
_plone/issues/new
Copyright (c) 2010 - 2015 Leonardo J. Caballero GCopyright (c) 2010 - 2015 Leonardo J. Caballero G.
Esta obra está sujeta a la licenciaEsta obra está sujeta a la licencia Reconocimiento-Reconocimiento-
CompartirIgual 3.0 Venezuela de Creative CommonsCompartirIgual 3.0 Venezuela de Creative Commons..
Para ver una copia de esta licencia, visite la siguientePara ver una copia de esta licencia, visite la siguiente
dirección URL:dirección URL:
●
http://creativecommons.org/licenses/by-sa/3.0/ve/http://creativecommons.org/licenses/by-sa/3.0/ve/
Bajo los siguientes términos:Bajo los siguientes términos:
●
Reconocimiento - Usted debe dar el crédito apropiado,Reconocimiento - Usted debe dar el crédito apropiado,
proporcionar un enlace a la licencia, y de indicar si se hanproporcionar un enlace a la licencia, y de indicar si se han
realizado cambios. Usted puede hacerlo de cualquierrealizado cambios. Usted puede hacerlo de cualquier
manera razonable, pero no en una manera que sugiere elmanera razonable, pero no en una manera que sugiere el
licenciante a usted o que apruebe su utilización.licenciante a usted o que apruebe su utilización.
●
CompartirIgual - Si usted mezcla, transforma o crea nuevoCompartirIgual - Si usted mezcla, transforma o crea nuevo
material a partir de esta obra, usted podrá distribuir sumaterial a partir de esta obra, usted podrá distribuir su
contribución siempre que utilice la misma licencia que lacontribución siempre que utilice la misma licencia que la
obra original.obra original.
Licenciamiento

Más contenido relacionado

La actualidad más candente

Breve introducción a Apache Ant
Breve introducción a Apache AntBreve introducción a Apache Ant
Breve introducción a Apache AntIker Canarias
 
Curso Java Avanzado 0 Conceptos Basicos
Curso Java Avanzado   0 Conceptos BasicosCurso Java Avanzado   0 Conceptos Basicos
Curso Java Avanzado 0 Conceptos BasicosEmilio Aviles Avila
 
deSymfony 2013: Anotaciones, no es parte de mi aplicación, pero es mi aplicación
deSymfony 2013: Anotaciones, no es parte de mi aplicación, pero es mi aplicacióndeSymfony 2013: Anotaciones, no es parte de mi aplicación, pero es mi aplicación
deSymfony 2013: Anotaciones, no es parte de mi aplicación, pero es mi aplicaciónaferrandini
 
Subversion - buenas prácticas
Subversion - buenas prácticasSubversion - buenas prácticas
Subversion - buenas prácticasIker Canarias
 
Presentacion aplicaciones en java
Presentacion aplicaciones en javaPresentacion aplicaciones en java
Presentacion aplicaciones en javarsalazar16988
 

La actualidad más candente (10)

Breve introducción a Apache Ant
Breve introducción a Apache AntBreve introducción a Apache Ant
Breve introducción a Apache Ant
 
Curso Java Avanzado 0 Conceptos Basicos
Curso Java Avanzado   0 Conceptos BasicosCurso Java Avanzado   0 Conceptos Basicos
Curso Java Avanzado 0 Conceptos Basicos
 
Herramientas Java
Herramientas JavaHerramientas Java
Herramientas Java
 
Web services y java
Web services y javaWeb services y java
Web services y java
 
deSymfony 2013: Anotaciones, no es parte de mi aplicación, pero es mi aplicación
deSymfony 2013: Anotaciones, no es parte de mi aplicación, pero es mi aplicacióndeSymfony 2013: Anotaciones, no es parte de mi aplicación, pero es mi aplicación
deSymfony 2013: Anotaciones, no es parte de mi aplicación, pero es mi aplicación
 
Subversion - buenas prácticas
Subversion - buenas prácticasSubversion - buenas prácticas
Subversion - buenas prácticas
 
Presentacion aplicaciones en java
Presentacion aplicaciones en javaPresentacion aplicaciones en java
Presentacion aplicaciones en java
 
Diapositivas de JAVA
Diapositivas de JAVADiapositivas de JAVA
Diapositivas de JAVA
 
Frameworks J2EE
Frameworks J2EEFrameworks J2EE
Frameworks J2EE
 
Spring framework 3
Spring framework 3Spring framework 3
Spring framework 3
 

Similar a Programación Python ZCA

Qué puede aprender Drupal de Plone
Qué puede aprender Drupal de PloneQué puede aprender Drupal de Plone
Qué puede aprender Drupal de Plonementtes
 
Patrones de diseño II
Patrones de diseño IIPatrones de diseño II
Patrones de diseño IIkaolong
 
Desarrollo rápido de apps web con laravel - DevAcademy
Desarrollo rápido de apps web con laravel - DevAcademyDesarrollo rápido de apps web con laravel - DevAcademy
Desarrollo rápido de apps web con laravel - DevAcademyJorge Antonio Linares Vera
 
Mi lenguaje de programación de preferencia
Mi lenguaje de programación de preferenciaMi lenguaje de programación de preferencia
Mi lenguaje de programación de preferenciaglfloresgilberto
 
Django - Plataforma de sitios web
Django - Plataforma de sitios webDjango - Plataforma de sitios web
Django - Plataforma de sitios webjcarazo
 
VLCTechFest - Simplificando Controladores: Una introducción a Action-Domain ...
VLCTechFest -  Simplificando Controladores: Una introducción a Action-Domain ...VLCTechFest -  Simplificando Controladores: Una introducción a Action-Domain ...
VLCTechFest - Simplificando Controladores: Una introducción a Action-Domain ...Miguel Ángel Sánchez Chordi
 
Tecnologias orientadas a aspectos en .NET 1.1
Tecnologias orientadas a aspectos en .NET 1.1Tecnologias orientadas a aspectos en .NET 1.1
Tecnologias orientadas a aspectos en .NET 1.1Cristobal Costa Soria
 
Mis primeros pasos con Symfony 2
Mis primeros pasos con Symfony 2Mis primeros pasos con Symfony 2
Mis primeros pasos con Symfony 2Edgar Dueñas
 
1/9 Curso JEE5, Soa, Web Services, ESB y XML
1/9 Curso JEE5, Soa, Web Services, ESB y XML1/9 Curso JEE5, Soa, Web Services, ESB y XML
1/9 Curso JEE5, Soa, Web Services, ESB y XMLJuan Carlos Rubio Pineda
 
Introdución a aplicaciones web en java
Introdución a aplicaciones web en java Introdución a aplicaciones web en java
Introdución a aplicaciones web en java Rodrigo Zottola Pareja
 
Django - Curso Básico - Principales Conceptos
Django - Curso Básico - Principales ConceptosDjango - Curso Básico - Principales Conceptos
Django - Curso Básico - Principales ConceptosGeorge Navarro Gomez
 
Django - Curso Básico - Principales Conceptos
Django - Curso Básico - Principales ConceptosDjango - Curso Básico - Principales Conceptos
Django - Curso Básico - Principales ConceptosGeorge Navarro Gomez
 
Cross development - React para desarrolladores de asp.net
Cross development - React para desarrolladores de asp.netCross development - React para desarrolladores de asp.net
Cross development - React para desarrolladores de asp.netAlberto Diaz Martin
 
CrossDvlpu - REACT para desarrolladores de ASP.NET
CrossDvlpu - REACT para desarrolladores de ASP.NETCrossDvlpu - REACT para desarrolladores de ASP.NET
CrossDvlpu - REACT para desarrolladores de ASP.NETAlberto Diaz Martin
 
Seminario Spring Roo. Monitorización con Spring Insight
Seminario Spring Roo. Monitorización con Spring InsightSeminario Spring Roo. Monitorización con Spring Insight
Seminario Spring Roo. Monitorización con Spring InsightParadigma Digital
 
Salesforce Lightning Components
Salesforce Lightning ComponentsSalesforce Lightning Components
Salesforce Lightning ComponentsDavid Carnicer
 
Lenguaje Java
Lenguaje JavaLenguaje Java
Lenguaje Javapbcanessa
 

Similar a Programación Python ZCA (20)

Qué puede aprender Drupal de Plone
Qué puede aprender Drupal de PloneQué puede aprender Drupal de Plone
Qué puede aprender Drupal de Plone
 
Patrones de diseño II
Patrones de diseño IIPatrones de diseño II
Patrones de diseño II
 
Desarrollo rápido de apps web con laravel - DevAcademy
Desarrollo rápido de apps web con laravel - DevAcademyDesarrollo rápido de apps web con laravel - DevAcademy
Desarrollo rápido de apps web con laravel - DevAcademy
 
Mi lenguaje de programación de preferencia
Mi lenguaje de programación de preferenciaMi lenguaje de programación de preferencia
Mi lenguaje de programación de preferencia
 
Django - Plataforma de sitios web
Django - Plataforma de sitios webDjango - Plataforma de sitios web
Django - Plataforma de sitios web
 
VLCTechFest - Simplificando Controladores: Una introducción a Action-Domain ...
VLCTechFest -  Simplificando Controladores: Una introducción a Action-Domain ...VLCTechFest -  Simplificando Controladores: Una introducción a Action-Domain ...
VLCTechFest - Simplificando Controladores: Una introducción a Action-Domain ...
 
Tecnologias orientadas a aspectos en .NET 1.1
Tecnologias orientadas a aspectos en .NET 1.1Tecnologias orientadas a aspectos en .NET 1.1
Tecnologias orientadas a aspectos en .NET 1.1
 
Mis primeros pasos con Symfony 2
Mis primeros pasos con Symfony 2Mis primeros pasos con Symfony 2
Mis primeros pasos con Symfony 2
 
1/9 Curso JEE5, Soa, Web Services, ESB y XML
1/9 Curso JEE5, Soa, Web Services, ESB y XML1/9 Curso JEE5, Soa, Web Services, ESB y XML
1/9 Curso JEE5, Soa, Web Services, ESB y XML
 
Introdución a aplicaciones web en java
Introdución a aplicaciones web en java Introdución a aplicaciones web en java
Introdución a aplicaciones web en java
 
Django - Curso Básico - Principales Conceptos
Django - Curso Básico - Principales ConceptosDjango - Curso Básico - Principales Conceptos
Django - Curso Básico - Principales Conceptos
 
Django - Curso Básico - Principales Conceptos
Django - Curso Básico - Principales ConceptosDjango - Curso Básico - Principales Conceptos
Django - Curso Básico - Principales Conceptos
 
Lenguaje java
Lenguaje javaLenguaje java
Lenguaje java
 
Hora 12
Hora 12Hora 12
Hora 12
 
Cross development - React para desarrolladores de asp.net
Cross development - React para desarrolladores de asp.netCross development - React para desarrolladores de asp.net
Cross development - React para desarrolladores de asp.net
 
CrossDvlpu - REACT para desarrolladores de ASP.NET
CrossDvlpu - REACT para desarrolladores de ASP.NETCrossDvlpu - REACT para desarrolladores de ASP.NET
CrossDvlpu - REACT para desarrolladores de ASP.NET
 
principios básicos
principios básicosprincipios básicos
principios básicos
 
Seminario Spring Roo. Monitorización con Spring Insight
Seminario Spring Roo. Monitorización con Spring InsightSeminario Spring Roo. Monitorización con Spring Insight
Seminario Spring Roo. Monitorización con Spring Insight
 
Salesforce Lightning Components
Salesforce Lightning ComponentsSalesforce Lightning Components
Salesforce Lightning Components
 
Lenguaje Java
Lenguaje JavaLenguaje Java
Lenguaje Java
 

Último

Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfFrancisco158360
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxlclcarmen
 
Criterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosCriterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosJonathanCovena1
 
Programacion Anual Matemática4 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática4    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática4    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática4 MPG 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónLourdes Feria
 
Estrategias de enseñanza-aprendizaje virtual.pptx
Estrategias de enseñanza-aprendizaje virtual.pptxEstrategias de enseñanza-aprendizaje virtual.pptx
Estrategias de enseñanza-aprendizaje virtual.pptxdkmeza
 
PIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesPIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesYanirisBarcelDelaHoz
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAEl Fortí
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaDecaunlz
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAJAVIER SOLIS NOYOLA
 
Cuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfCuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfNancyLoaa
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...JonathanCovena1
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñotapirjackluis
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioELIASAURELIOCHAVEZCA1
 
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIAFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIIsauraImbrondone
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxYadi Campos
 
plande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdfplande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdfenelcielosiempre
 

Último (20)

Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
 
Criterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosCriterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficios
 
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdfTema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
 
Programacion Anual Matemática4 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática4    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática4    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática4 MPG 2024 Ccesa007.pdf
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
Estrategias de enseñanza-aprendizaje virtual.pptx
Estrategias de enseñanza-aprendizaje virtual.pptxEstrategias de enseñanza-aprendizaje virtual.pptx
Estrategias de enseñanza-aprendizaje virtual.pptx
 
PIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesPIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonables
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativa
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
 
Cuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfCuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdf
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literario
 
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIAFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
 
Sesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronósticoSesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronóstico
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 
plande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdfplande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdf
 

Programación Python ZCA

  • 1. Programación basada en componentes para Programadores Python Leonardo J. Caballero G.
  • 2. Acerca de mí Marabino. Macagua. 11 años en Linux. Debianista. Canaimero. Pythonista. Plonista. http://www.flickr.com/photos/sinlentes/5570374264/
  • 3. Programación basada en componentes • Tiene énfasis en la descomposición de sistemas en componentes funcionales o lógicos. • A través de interfaces bien definidas usadas para la comunicación entre componentes. • Es nivel de abstracción más alto que los objetos.
  • 4. Programación basada en componentes Casos de adopción de este son: ● El modelo Enterprise JavaBeans de Oracle. ● Component Object Model (COM) de Microsoft. ● System.ComponentModel en Microsoft .NET. ● Cross Platform Component Object Model (XPCOM) de Mozilla Foundation. ● Universal Network Objects (UNO) de OpenOffice.org. ● Zope Component Architecture (ZCA) en Python.
  • 5. Zope Component Architecture - ZCA ● Es un marco de trabajo (framework) en Python que soporta el diseño y la programación basada en componentes. ● Ayuda a separar el código de presentación del ámbito del código de lógica y crea componentes reusables (zope.component).
  • 6. Conformación de la ZCA ● Publicador de Objeto (zope.publisher). ● Servidor Web (zope.server). ● Base de datos objeto transaccional (ZODB). ● Lenguaje de configuración basado XML para registrar de componentes (zope.configuration). ● Arquitectura de seguridad flexible con políticas de seguridad pluggable (zope.security).
  • 7. Conformación de la ZCA ● Frameworks de pruebas unitarias y funcionales (zope.testing, zope.testbrowser). ● Lenguaje de plantillas XHTML-compliant (zope.pagetemplate). ● Motor de esquemas y mecanismo de generación de formularios automático (zope.schema, z3c.form) y muchos más paquetes del núcleo y de terceros.
  • 8. Zope Component Architecture - ZCA ● Interfaces. ● Components. ● Zope 3 Schemas. ● Zope Configuration System. ● Zope Content Providers. ● Zope Page-Template Architecture. ● Zope Object Database Architecture.
  • 9. ZCA - zope.interface Interface, son objectos que especifican el comportamiento externo de objetos que “proveen”. Esta especifica comportamiento a través de: ● Documentación informal en una cadena. ● Definiciones de Atributos, especifica atributos específicos. ● Invariantes, son condiciones que deben tomar para los objetos que provee la interfaz.
  • 11. ZCA - zope.component ● Utilities, son componentes que provee una interfaz y que son observado por una interfaz y un nombre. ● Adapters, son componentes computados desde otros componentes para adaptarlo a alguna interfaz, debido a esto, son proveídos como fabricas, usualmente clases.
  • 12. ZCA – zope.component - Utilities
  • 13. ZCA – zope.component - Utilities
  • 18. ZCA - zope.component ● Handlers, son fabricas de adaptadores de suscripción que no producen nada, solo cuando son llamados. Usualmente usado para manejar eventos.
  • 22. ZCA - zope.schema ● Schemas extiende la noción de interfaces para descripciones detalladas de Atributos, (pero no métodos). ● Cada esquema es una interfaz y especifica los campos públicos de un objecto.
  • 23. ZCA - zope.schema ● Fields, un campo roughly corresponde a un atributo de un objecto Python. ● El paquete “zope.schema” provee un conjunto de tipos de campos, incluyendo texto simple y múltiple, data binaria, enteros, punto flotante y valores fecha / hora.
  • 24. ZCA - zope.schema ● Widgets, son componentes que muestran valores de campos y, en el caso de campos reescribibles, permite al usuario editar sus valores.
  • 28. ZCA - Zope Configuration System ● ZCML, del ingles “Zope Configuration Markup Language” es una aplicación XML. ● En Zope 2 con el producto Five le permite usar una serie de componentes Zope 3 que pueden ser conectado juntos usando ZCML.
  • 30. Zope Content Providers ● Content Provider, es un termino del mundo Java que refiere a componentes que pueden proveer contenido HTML. ● Le permite definir regiones en su página y para que los programadores registren piezas de contenido HTML en esas regiones.
  • 31. Zope Content Providers ● Son conocidos como Viewlets y están disponible solamente dentro de Viewlet Managers. ● Implementa un patron de diseño Composite. ● En Zope 3 son adaptadores múltiples que esta observando por el contexto, solicitud (y también el layer / skin), y la view que ellos despliegan.
  • 32. ZCA - Zope Content Providers Plantilla Principal Administrador Viewlet Administrador Viewlet Ranura Principal Viewlets Viewlets Portlets Viewlets Vista de Contenido Principal
  • 34. Zope Content Providers - Viewlet Manager
  • 35. Zope Page-Template Architecture ● El compilador y interprete Template Attribute Lenguage. ● Un motor de expresión. ● Las page templates atan todo junto.
  • 38. Zope Object Database Architecture ● Soporte para concurrencia. ● Interfaces para almacenamiento, permitiendo diversas estrategias de almacenamiento a usar, desde un archivo, a RDBMS, a memoria. ● Robusto formato del archivo de almacenamiento. ● Múltiples BDs en el mismo sistema de objeto.
  • 39. Zope Object Database Architecture ● Versionado e integraciones de versiones con el sistema transacción. ● Múltiples procesos de gestión de almacenamiento a través de la distribución estándar no incluirá los administradores de almacenamiento de proceso múltiples.
  • 40. Zope Object Database Architecture
  • 41. Zope Object Database Architecture
  • 42. Zope Object Database Architecture
  • 43. Zope Object Database Architecture p1 p2 p3 p4 Pagina titulo descripcion contenido comentariorating
  • 44. Lecturas recomendadas ● The Zope 3 Book ● http://muthukadan.net/docs/tzb.html ● The Zope2 Book ● http://docs.zope.org/zope2/zope2book/ ● Una guía comprensiva de la Arquitectura de Componentes de Zope ● http://plone-spanish- docs.readthedocs.org/es/latest/programacion/zca/z ca-es.html
  • 46. ¿Quieres mejorar este material? Este material tiene licenciamiento abierto, y puede reportar errores o proponer mejoras: ● Repositorio de fuentes. ● https://github.com/Covantec/entrenamiento.desarrollo _plone ● Reportar errores o proponer mejoras. ● https://github.com/Covantec/entrenamiento.desarrollo _plone/issues/new
  • 47. Copyright (c) 2010 - 2015 Leonardo J. Caballero GCopyright (c) 2010 - 2015 Leonardo J. Caballero G. Esta obra está sujeta a la licenciaEsta obra está sujeta a la licencia Reconocimiento-Reconocimiento- CompartirIgual 3.0 Venezuela de Creative CommonsCompartirIgual 3.0 Venezuela de Creative Commons.. Para ver una copia de esta licencia, visite la siguientePara ver una copia de esta licencia, visite la siguiente dirección URL:dirección URL: ● http://creativecommons.org/licenses/by-sa/3.0/ve/http://creativecommons.org/licenses/by-sa/3.0/ve/ Bajo los siguientes términos:Bajo los siguientes términos: ● Reconocimiento - Usted debe dar el crédito apropiado,Reconocimiento - Usted debe dar el crédito apropiado, proporcionar un enlace a la licencia, y de indicar si se hanproporcionar un enlace a la licencia, y de indicar si se han realizado cambios. Usted puede hacerlo de cualquierrealizado cambios. Usted puede hacerlo de cualquier manera razonable, pero no en una manera que sugiere elmanera razonable, pero no en una manera que sugiere el licenciante a usted o que apruebe su utilización.licenciante a usted o que apruebe su utilización. ● CompartirIgual - Si usted mezcla, transforma o crea nuevoCompartirIgual - Si usted mezcla, transforma o crea nuevo material a partir de esta obra, usted podrá distribuir sumaterial a partir de esta obra, usted podrá distribuir su contribución siempre que utilice la misma licencia que lacontribución siempre que utilice la misma licencia que la obra original.obra original. Licenciamiento