PDF de programación - Introducción a Zope

Imágen de pdf Introducción a Zope

Introducción a Zopegráfica de visualizaciones

Publicado el 12 de Abril del 2017
750 visualizaciones desde el 12 de Abril del 2017
83,4 KB
19 paginas
Introducción a Zope

Autor : Alvaro del Castillo San Félix, Desarrollador y admin de software libre.



1

Introducción

Zope, una palabra que ya el lector posiblemente haya escuchado en alguna ocasión. Quizás
incluso sepa que es una herramienta y que sirve para construir sitios web. Pero pocas veces se llega
más allá en ese conocimiento, hasta ahora un tanto limitado, de lo que hay detrás de esta palabra. Y
hay mucho más. Zope es una arquitectura muy completa y por momentos compleja. Sin duda se la
podría agrupar dentro de la vaga categoría de servidores de aplicaciones, es decir, productos que
facilitan el desarrollo y ejecución de servidores de información en una red, normalmente Internet.
Intentando ir un poco más haya en esta vaga definición Zope son las iniciales de "Z Object
Publishing Enviroment", un entorno para publicar objetos. Y es que sus orígenes parten de un
diseño con el modelo de negocio de un periódico en mente tal y como se afirma en el que se
convertirá en el libro de referencia de Zope que será publicado por O'Reilly y que se puede acceder
ya desde el portal de Zope (http://www.zope.org).

En este mismo libro y en el prefacio se intenta también definir Zope, algo que incluso sus
creadores lo encuentran difícil. En concreto ellos ven a Zope como un servidor de aplicaciones, con
mucho énfasis en la gestión de contenidos, los portales y los servicios a medida destacando como
una plataforma para el desarrollo rápido de aplicaciones ricas en contenido y funcionalidad.

Un detalle fundamental de Zope a la hora de ser considerado como plataforma de desarrollo es su
licencia ZPL que es calificada por la FSF (http://www.fsf.org) como software libre, aunque
incompatible con la GPL. esta licencia ha permitido que miles de desarrolladores puedan utilizar
Zope sin ningún coste más allá de dar crédito a Digital Creations, en adelante DC, creadores de
Zope. Zope dispone a su alrededor de una comunidad creciente de desarrolladores que están
aumentando su funcionalidad con cientos de extensiones de la plataforma, extensiones conocidas
como productos.
En este primer artículo vamos a presentar que hay detrás de Zope, su arquitectura, su instalación y
un ejemplo de uso básico. Aún no te convertirás en un Zopista, pero te dejará en el camino.

La arquitectura de Zope

A lo largo de la vida del desarrollo de aplicaciones en Internet se han ido cubriendo distintas
fases. Cuando ni existía el protocolo CGI el web era básicamente un sistema de publicación de
documentos estático con nula interacción por parte del usuario. Era la recepción de ficheros con
información visualizada a través de HTML, eso sí, con la posibilidad de enlazar unas páginas con
otras gracias a los enlaces.
Llegó entonces la era de los ejecutables CGI y se abrió un mundo de posibilidades inmenso.
Independiente de la plataforma, el protocolo CGI permite la ejecución de programas pasándole
parámetros desde el cliente web y enviando sus resultados a través del servidor de web al cliente
que solicitó su ejecución.
De esta forma y a través de los formularios HTML donde se capta la información a entregar al
ejecutable CGI, las aplicaciones Internet comenzaron a tomar vida.
Poco a poco se han ido sofisticando los sistemas de ejecución a través CGI facilitando mucho la
lado del servidor, como PHP o ASP, permiten al
vida al desarrollador. Los lenguajes del
desarrollador abstraerse de las incomodidades del protocolo CGI y el
intercambio de datos,
logrando que las aplicaciones basadas en el web sean más sencillas de desarrollar.
Un paso más haya en este camino hacia el desarrollo de aplicaciones web lo constituyen los
servidores de aplicaciones, grupo al que pertenece Zope. Junto con el mecanismo básico de
intercambio de datos con los clientes web, dotan al desarrollador de la parte servidor de la
aplicación de unas infraestructuras que le facilitan el desarrollo de aplicaciones y el tiempo de su
construcción.
La arquitectura de Zope se basa en una serie de mecanismos de intercambio de datos con el servidor
servidor Zope. Lo mejor es ver el esquema
Zope y un conjunto de herramientas de apoyo a ese
que
se
presenta
Zope
(http://www.zope.org/ZopeArchitecture).

arquitectura

portal

constituye

esta

que

en

el

de

A lo largo de este documento iremos detallando cada uno de los sistemas de Zope. De momento de
este esquema vamos a destacar los distintos clientes de intercambio de información con Zope
(cliente Web, XML-RPC, WebDAV y FTP), la posibilidad que incluir un servidor de web como
Apache comunicándolo a través del protocolo CGI persistente, el núcleo de Zope, conocido también
como el ORB Zope donde se gestionan las peticiones sobre objetos Zope y donde se interacciona
con las clases de objetos Zope y los productos, la base de datos orientada a objetos de Zope y la
posibilidad de interaccionar con otros tipos de bases de datos relaciones o sistema de ficheros.

Todo son objetos

Una de las características fundamentales de Zope es que en su arquitectura todo lo que existe son
objetos. Fue una decisión de diseño al intuir en el paradigma de objetos una potente forma de ver
las partes de las aplicaciones web. Este tipo de decisiones de diseño son cada vez más comunes en
los sistemas de programación actuales y es extraño ver nuevas arquitecturas de propósito general
que hayan abrazado el modelo de objetos para sus sistemas.
Como consecuencia de esta decisión hubo que elegir un lenguaje con soporte de objetos. Además
de esta característica el lenguaje a elegir debería estar presente en distintas arquitecturas (Windows,
GNU/Linux etc.) y debería de facilitar el desarrollo de aplicaciones Internet, lo que básicamente
requiere unas librerías de comunicaciones y soporte de HTTP/CGI potentes. De entre las
alternativas existentes (Perl, Java, C, C++ ...) se eligió a Python, un lenguaje interpretado, presente
en muchas plataformas, con mucha fuerza dentro de la comunidad de desarrolladores de
aplicaciones Internet, que ya había mostrado su
potencia en el mundo de los CGI y totalmente
orientado a objetos (http://www.python.org).
Desde el momento en que como desarrolladores queramos extender las posibilidades de Zope será
este el lenguaje a utilizar. Seguro que a muchos lectores este detalle les va a hacer plantearse el
seguir con esta plataforma. Python es un lenguaje bastante nuevo y que aún tiene pocos
conocedores del mismo. Pero cabe destacar que Python es un lenguaje sencillo para aquellos
acostumbrados al mundo de los objetos, que al ser interpretado, facilita mucho los cambios en el
código (no hay que recompilar) y que cada vez está más presente en el mundo del software libre,
donde entornos como KDE y GNOME lo están eligiendo como el lenguaje para realizar sus
"scripts". Esperamos haber logrado que el lector de una oportunidad a Python y si ya lo conocía,
seguro que estará de acuerdo en las bondades de este excelente lenguaje de programación. Tan sólo
tiene un pequeño punto negro en su licencia, que aún no es considerada compatible con la GPL,
pero que se está trabajando en su resolución.

ZOB: La base de datos de objetos

Como ya hemos comentado, todos los elementos de Zope son objetos. Y estos objetos se
almacenan en una base de datos orientada a objetos. La potencia que proporciona este
almacenamiento persistente de los objetos es enorme, sobre todo a la hora de modificar
dinámicamente y buscar datos dentro de todos los objetos que forma el sitio web. Como veremos
Zope dispone de un producto conocido como ZCatalog que permite realizar búsquedas en todos los
objetos del servidor.
ZOB destaca por ser casi transparente para el programador y los objetos que deban de ser
persistentes requieren unos cambios mínimos (heredar de una clase Python). Da soporte a las
transacciones y ello permite que casi cualquier acción que realicemos en Zope podrá ser deshecha.
Destaca también su alto rendimiento, que permite alcanzar un buen rendimiento incluso con bases
de datos de giga-bytes.

Zope ORB

Ya veremos en los ejemplos con los que cerraremos este artículo que los clientes cuando piden
una URL al servidor Zope, lo que están haciendo en realidad es pedir al servidor Zope un objeto. En
realidad se pide la ejecución de un objeto con una serie de parámetros. Si el lector es conocedor de

CORBA este concepto le recordará a como se ejecutan métodos sobre objetos remotos a través de
CORBA. Cuando el servidor Zope recibe la petición para acceder a un objeto Zope, esta petición va
a parar al ORB de Zope que se encarga de localizar al objeto y procesar la petición, mostrando los
resultados de la misma. Este ORB es una parte crítica de la arquitectura ya que de su buen
funcionamiento depende el rendimiento y la robustez de la plataforma.

Obtención e instalación de Zope

La licencia de Zope: ZPL

Debería ser el primer detalle en analizar a la hora de probar un producto nuevo. La licencia es
que la que nos describe que podemos hacer y que no podemos hacer con el programa, que tipo de
garantías recibimos del funcionamiento (ninguna normalmente), en cuantos puestos podemos
utilizar el producto, bajo que condiciones etc.
Zope destaca por ser considerado software libre, tal y como podemos consultar en la descripción de
licencias de la Free Software Foundation. De ella dice la FSF que es incompatible con la GPL pero
que no hay ningún problema por utilizar software con esta licencia, aunque se recomienda no
utilizarla. La licencia sigue la línea de la BSD, permitiendo el uso, distribución y modificación de
Zope, aunque siempre cuidando de resaltar que DC son los creadores de Zope.
Así que puedes utilizar Zope sin ningún coste, puedes bajar su código fuente y modificarlo y puedes
distribuirlo.

Obtención de Zope

Para obtener zope lo mejor es acudir al portal de Zope (http://www.zope.org) y desde allí
obtenerlo en código fuente. La versión actual (Septiembre 2000) es la 2.2.1 y lo único que se
necesita para su ejecución es tener instalado Python en
  • Links de descarga
http://lwp-l.com/pdf2763

Comentarios de: Introducción a Zope (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad