Zope: El servidor de aplicaciones libre

Bienvenido a esta segunda entrega del curso de Zope. En la primera logramos bucear en Zope, su arquitectura, algunos conceptos que le rodean y vimos incluso alg�n peque�o ejemplo.

En esta segunda entrega del curso de Zope vamos a analizar con un ejemplo el proceso de publicar objetos Zope. Para ello el lector deber�a tener a mano un servidor de Zope con el que poder avanzar con los ejemplos en paralelo, ya que la forma de aprender, es hacer las cosas uno mismo y disfrutar con los �xitos y fracasos del proceso de una forma m�s cercana. De cualquier modo, esperamos lograr que el art�culo sea tambi�n de inter�s para todos aquellos lectores que a�n no disponen de esta plataforma para poder jugar con ella.

Con Zope el objetivo ha sido el facilitar al m�ximo la publicaci�n de contenidos a trav�s de p�ginas HTML. Con el ejemplo que vamos a mostrar podremos analizar con m�s cuidado si se ha logrado este objetivo o no ha sido as�. Para ello ser� fundamental observar la sencillez del entorno, su potencia a la hora de gestionar los contenidos y los conocimientos t�cnicos necesarios para publicar contenidos con Zope.

.�El portal de una empresa

Con la llegada de Internet nos hemos encontrado con la gran ola de empresas de todo tipo que se lanzan a plantar su presencia en Internet. Los beneficios que proporciona una presencia en la red, como es por ejemplo el acceso a una potencial una cliente mundial, no han dejado impasibles a las personas que cuidan de estar siempre a la �ltima. A d�a de hoy no s�lo las empresas son las que est�n desembarcando en la red: raro es el caso de una organizaci�n que tenga algo que decir que no se haya planteado el estar en Internet.

En nuestro caso nos vamos a plantear como ejemplo la realizaci�n de un portal para una empresa. Es una labor cada vez m�s demandada por lo que puede ser un ejemplo que abra puertas al lector en su mundo profesional. Es un ejemplo bastante completo, que encierra muchas de las problem�ticas de como llegar a mostrar una imagen dentro de la red por parte de una organizaci�n. Y es un ejemplo con el que muchos de los lectores tendr�n que enfrentarse en su futuro profesional.

Lo primero que hay que hacer antes incluso de plantearse con que herramienta se va a desarrollar el web es definir que se quiere lograr. Es decir, que contenidos se quieren poner en la red, para qui�n y como se van a organizar. Nos encontramos en este momento en el famoso campo de los arquitectos de la informaci�n, un perfil que a pesar de que ya exist�a dentro del mundo del dise�o tradicional, se ha potenciado de manera muy significativa con la aparici�n de Internet. Todas las compa��as quieren poder expresarse de una forma natural, organizada y que proporcione una imagen adecuada. Una ardua labor que debe coordinar a distintos departamentos de la compa��a: comunicaci�n, marketing, comerciales, gesti�n, t�cnico ...

En nuestro ejemplo nos vamos a centrar en el dise�o del portal interno de una compa��a, cuyo objetivo es proporcionar a los distintos departamentos de la misma libertad para informar a los dem�s de sus actuaciones, con el objetivo de mejorar la coordinaci�n y que aumentar el flujo de informaci�n, piedras angulares para el buen funcionamiento de una compa��a.

Dentro de la amplia documentaci�n de Zope, y para este art�culo en concreto, nos va a ser �til la "Gu�a para el Gestor de Contenidos Zope". Esta gu�a se puede obtener del web de Zope, en la zona de documentaci�n. En las referencias puedes encontrar los detalles exactos de como descargarla para poderla leer tranquilamente.

Gu�a para el Gestor de Contenidos Zope

.�Organizaci�n de la informaci�n

Lo primero que necesitamos es tener claro como se van a presentar los datos de la compa��a. Normalmente nosotros vamos a ser parte del departamento t�cnico y nuestra funci�n ser� proporcionar los medios t�cnicos para plasmar la estructura de informaci�n que nos proporcione alguna persona con un conocimiento global del funcionamiento de la empresa.

Supongamos que se ha decidido organizar el web de la compa��a en cuatro zonas diferencias por departamentos: comunicaci�n, marketing, gesti�n y t�cnico. Cada uno de los departamentos ser� responsable de la gesti�n de contenidos de su zona, y existir� una zona p�blica en cada departamento y una zona privada con informaci�n interna. Desde una p�gina de inicio com�n se podr� ir a la zona de cada departamento. Todas las p�ginas de los departamentos deber�n de compartir una imagen com�n, cambiando el t�tulo de la p�gina y los contenidos, pero manteniendo una imagen homog�nea.

Con estos datos ya nos es suficiente para comenzar a trabajar en el proyecto de la empresa y mostrar la potencia y flexibilidad que podemos ofrecer a nuestra compa��a por medio de Zope. Ha llegado el momento de dejar claro la calidad del departamento t�cnico de la empresa y la de sus herramientas, basadas en software libre (siempre es bueno auto motivarse cuando comienza un proyecto :-)).

.�Primeros pasos en la creaci�n del web

Nuestra compa��a se llama Rayo de Luz por lo que parece l�gico que el primer paso que debemos de dar es crear una nueva carpeta (folder) para guardar en �l el contenido del web que vamos a crear. Para ello, tal y como mostramos en el �ltimo art�culo, accedemos a la pantalla de gesti�n de Zope (http://localhost:9673 en Debian) y pasamos a dar este primer paso utilizando la interfaz web de Zope para la publicaci�n de sitios web.

Creaci�n de la carpeta rayodeluz

Ya tenemos la carpeta para el web creada y hemos dejado seleccionadas las opciones de crear una interface p�blica, para que todo el mundo pueda acceder a dicho directorio, y de que se cree una carpeta para los usuarios de esta nueva zona. Gracias a este carpeta de usuarios vamos a poder definir usuarios y grupos dentro de la zona del web de la compa��a, usuarios que no ser�n visibles para otras publicaciones que hagamos con este servidor Zope. Iremos poco a poco viendo la potencia de control de acceso y operaci�n de que dispone Zope, una de las caracter�sticas que nos pueden hacer terminar de decantarnos por este gran producto.

.�La zona de los departamentos

Desde la p�gina principal de nuestra compa��a lo mejor que podemos hacer es poner enlaces a los distintos departamentos que forman la compa��a un logo de la misma para ir creando la imagen corporativa y mostrarla a nuestros empleados, los visitantes del sitio que estamos construyendo. Para cumplir este objetivo nos vamos a la consola desde la que gestionamos zope (http://localhost:9673/manage) y seleccionamos la carpeta "rayodeluz".

Quiz� es un buen momento para recordar al lector que todo lo que est� viendo, a pesar de estar organizado como si fueran ficheros de directorios, son objetos, no son ficheros. La carpeta "rayodeluz" es un objeto contenedor con una serie de propiedades. Dentro de este objeto, que es muy similar a una carpeta, nos encontramos con muchos otros objetos, que tambi�n pueden ser contenedores, permitiendo la aparici�n de estructuras en �rbol, una abstracci�n a la que estamos todos acostumbrados gracias a los sistemas de ficheros.

Estamos dentro de la carpeta (objeto) "rayodeluz", que acabamos de crear en el anterior apartado, y cuyo �nico objeto es un DTML Document llamado "index_html", que se crea de forma autom�tica cada vez que creamos una carpeta. Cuando a trav�s de una URL accedemos a la carpeta, el ORB de Zope de forma autom�tica nos devuelve el objeto "index_html". De nuevo, es una abstracci�n muy similar a la que hacen los servidor de web como Apache, donde el fichero �ndice de los directorios se suele llamar "index.html". El objeto "DTML Document" llamado "index_html" podemos interpretarlo como un fichero que est� dentro de la carpeta "rayodeluz", aunque el lector tiene que tener en cuenta que en realidad es un objeto que permite hacer con �l bastantes m�s cosas que con un simple fichero. Esta insistencia en la idea de que todo son objetos es fundamental para lograr comprender la arquitectura con toda su potencia, y no quedarnos en una interpretaci�n demasiado simplista de lo que es Zope.

Vamos a editar el objeto "index_html" para ver como podemos modificar su contenido e incluir el �ndice a los departamentos de la compa��a y el logo.

Edici�n del objeto index_html

Este sencillo contenido es el que genera la p�gina HTML siguiente cuando accedemos a la URL: http://localhost:9673/rayodeluz.

Visualizaci�n del objeto index_html

El contenido por defecto de "index_html" hace referencia a la una serie de variables DTML que definen la cabecera y pie de la p�gina, y el t�tulo y el nombre del documento actual. Todas estas variables se buscan dentro del contenedor en el que est� el objeto "index_html", es este caso dentro de "rayodeluz". En nuestro caso todas estas variables no est�n definidas en este objeto por lo que �de d�nde las saca Zope?.

Aqu� ha salido a relucir uno de los mecanismos m�s potentes de Zope, mecanismo conocido como adquisici�n. Por este proceso, si una variable no se encuentra en el contenedor actual se busca en los contenedores superiores, hasta dar con su valor. De esta forma se pueden centralizar valores que son luego adquiridos por toda una jerarqu�a de objetos. Veremos que no s�lo afecta este mecanismo a la variables, si no que se aplica en otras ocasiones, convirtiendo a la adquisici�n en uno de los mecanismos estrella de Zope. En nuestro caso la cabecera y pie por defecto, los que se incluyen en la carpeta ra�z de Zope, no nos valen, por lo que nos vamos a crear dos objetos Documento DTML cuyos identificadores sean "standard_html_header" y "standard_html_footer" que ser�n utilizados por todas las p�ginas HTML del web de nuestra compa��a. Vamos con ello.

Creaci�n de la cabecera para Rayo de Luz

Ya tenemos creado el nuevo objeto que servir� de cabecera para todas las p�ginas que creemos como parte del web de la compa��a. En general, todas estas p�ginas ser�n documentos DTML aunque cuando sea necesaria m�s interactividad, por ejemplo a trav�s del intercambio de informaci�n entre el cliente web y Zope, utilizaremos otras alternativas. El contenido de esta nueva cabecera es el siguiente:

Cabecera para Rayo de Luz

Como vemos, utilizamos la variable "var title_or_id" para que la todas las p�ginas tengan como t�tulo HTML el t�tulo que se le de al objeto DTML en el que residen. Tras ello definimos un BODY HTML con un fondo blanco e incluimos una imagen como logo. Pero aqu� tenemos un problema. Este imagen es un fichero real, no un objeto Zope y sin embargo, s�lo podemos hacer referencia a objetos que residan dentro de Zope para construir la p�gina.

Para resolver este inconveniente tenemos la posibilidad de importar im�genes en Zope, que pasar�n a ser objetos disponibles para todos los dem�s objetos de Zope. Para a�adir esta imagen lo primero que hacemos es crearnos una carpeta para almacenar todas las im�genes y tras ello, nos metemos en esa carpeta, a la que hemos llamado "img", y a�adimos un nuevo objeto de tipo "File". Como identificador del objeto tenemos que dar el nombre que utilizamos para referirnos a esta imagen dentro de las p�ginas de Zope, y el t�tulo podemos elegir el que queramos. Pulsando el bot�n de "Browse" podemos navegar por nuestro sistema de ficheros local a la b�squeda de la imagen. Una vez localizada pulsamos sobre el bot�n "Add" y ya tenemos dentro de Zope la imagen disponible. Podemos ver que una vez dentro de Zope, este autom�ticamente le asigna un tipo MIME y podremos visualizar la imagen accediendo a la opci�n de "View" presente en todos los objetos. Si ahora probamos a visualizar la cabecera veremos que ya se muestra de forma correcta la imagen.

Logo Rayo de Luz dentro de Zope

A lo largo de todo el apartado anterior hemos sentado las bases de la construcci�n de nuestro web con Zope. Si el lector ha ido leyendo con atenci�n, a estas alturas ya estar� en disposici�n de avanzar muy r�pido con la creaci�n del web con Zope. El siguiente paso es modificar el pie que va a aparecer en todas las p�ginas que cuelguen de la carpeta "rayodeluz", algo posible gracias al mecanismo de adquisici�n. Esta modificaci�n es totalmente paralela a la de la cabecera. Hay que crear un nuevo documento DTML dentro de "rayodeluz" con el nombre "standard_html_footer". Este HTML ser� incluido de forma autom�tica en todos los documentos DTML nuevos, y estos documentos son los que constituyen las p�ginas web del sitio.

Pie de p�gina de Rayo de Luz

Bueno, pues ya hemos logrado construir las cabeceras y pies de p�gina para todas las p�ginas presentes y futuras del web. S�lo nos queda meter dentro de "index_html" los enlaces a las distintas secciones de la compa��a. Para ello nada mejor que una simple lista HTML con enlaces a los distintos directorios de cada departamento. Mostremos de nuevo como se inserta este HTML. A partir de este momento ya daremos por supuesto que el lector se maneja con la interfaz de Zope y sabe como editar los objetos y su contenido.

Contenido del �ndice de Rayo de Luz

Este contenido nos genera al fin la p�gina principal de la empresa. Es un poco sencilla pero no olvidemos que nosotros somos simples t�cnicos. Ya se encargar� nuestro departamento de dise�o de llevarse las manos a la cabeza cuando vea la p�gina y hacer una maqueta que deja boquiabiertos a los navegantes de las p�ginas web de la compa��a. Y ese esquema lo podremos introducir dentro de la cabecera est�ndar y pasar a ser utilizado de forma autom�tica por todas las p�ginas que cuelguen de "rayoluz". Un trabajo de d�as que nosotros podremos hacer en unas pocas horas y podernos dedicar a descansar en el dem�s tiempo.

El �ndice de Rayo de Luz

.�Control de acceso

Bueno, ya llegado el momento de comenzar a crear las p�ginas del departamento t�cnico. En ellas existir� informaci�n p�blica para todos los empleados de la empresa como los pasos para configurar el acceso a Internet de los computadores, las instrucciones b�sicas de mantenimiento de los equipos, las normas b�sicas de navegaci�n por Internet y uso del correo electr�nico y los correos y tel�fonos de contacto de las personas del departamento. Pero no toda la informaci�n que va a estar dentro de nuestro departamento debe ser p�blica. Los datos sobre las claves de acceso a las m�quinas como administrador, la gesti�n de IP de los equipos y toda la biblioteca de documentos t�cnicos, as� como un foro de discusi�n interno, ser�n partes privadas.

Creamos una nueva carpeta para incluir las p�ginas del departamento t�cnico, y como identificador utilizamos "tecnico" que es el nombre que dimos como enlace en la p�gina principal. Dentro de esta carpeta modificamos el objeto "index_html" para reflejar la informaci�n del departamento y ponemos enlaces a distintas p�ginas donde se ampl�a la informaci�n. Una vez hecho esto, vamos a crear una carpeta llamada "interno" donde vamos a incluir toda la informaci�n que debe ser s�lo accedida por las personas de nuestro departamento.

El acceso a esta carpeta llamada "interno" queremos que sea restringido. Para ello nos vamos a dicha carpeta y seleccionamos la solapa "Security" donde se definen las pol�ticas de seguridad de acceso a los distintos objetos de esta carpeta. En general estos permisos se "adquieren" de la carpeta superior. De nuevo sale a la palestra el mecanismo de adquisici�n: si algo no existe en el contenedor actual, se viaja a los contenedores superiores en la jerarqu�a busc�ndolo. De esta forma podemos tener centralizada la seguridad de todo el sitio en la carpeta ra�z. Veamos los permisos que vienen por defecto en la carpeta ra�z, y que son los que heredan todos los nuevos contenedores que vayamos creando.

Opciones de seguridad por defecto

En estas imagen aparecen s�lo parte de los permisos, pero son los que queremos destacar en este instante. La primera columna se refiere al usuario an�nimo. Si aparece seleccionada esta opci�n, un usuario sin autenticarse ser� capaz de realizar esa operaci�n. Por ejemplo, tenemos seleccionado "View" por lo que cualquier usuario podr� ver todas las p�ginas DTML por defecto. Tambi�n podr� utilizar el objeto "Z Search Catalog" o utilizar m�todos para acceder a las bases de datos. Los permisos que aqu� aparecen se pueden ampliar y se pueden crear nuevos roles, a parte del de usuarios an�nimo, el de administrador y el de due�o del recurso.

Vemos que por ejemplo el usuario an�nimo no tiene acceso a las pantallas de gesti�n de Zope, algo normal ya que desde all� se puede modificar f�cilmente todo el web.

Nuestro objetivo es que para entrar en el directorio "interno" del la parte de departamento t�cnico, sea necesario autenticarse en el sistema. Para ello nos vamos a dicha carpeta, accedemos a la solapa de seguridad y modificamos la operaci�n de "View" para que no se adquiera. De esta forma s�lo podr�n ejecutar esa operaci�n los usuarios que tengan el rol de administradores.

Opciones de seguridad para carpeta protegida

Para probar que ahora se nos pide que nos autentiquemos, podemos apagar el navegador por completo e intentar acceder a dicho directorio. Si el lector ha metido una clave de administrador en alg�n momento, y esperamos que lo haya hecho para poder seguir el ejemplo, debe apagar el navegador para que deje de tener efecto esta clave para Zope.

Autenticaci�n para acceder a zona restringida

�De d�nde consulta Zope este usuario que se nos pide? Recordemos que a la hora de crear una carpeta ten�amos al opci�n de crear una carpeta de usuarios asociada a ella. El primer sitio en el que Zope va a buscar el usuario que se introduzca en la caja de autenticaci�n va a ser dentro de esta carpeta de usuarios "user_folder". Cuando se crea un usuario, se le asigna un rol. Es este rol el que define que puede y que no puede hacer un usuario. En este caso, para acceder a esta carpeta protegida, es necesario que el usuario tenga el rol de "manager". Vamos a crear un usuarios con estos permisos. Queremos que este usuario s�lo tenga el rol de "manager" para esta carpeta en concreto. Por ello lo creamos en el "user_folder" de esta carpeta. Este usuario ser� "manager" en la carpeta actual y todas las que cuelguen de �l, pero no lo ser� en carpetas superiores. Con este sistema tenemos una gran potencia a la hora de definir permisos a regiones concretas de tal forma que haya distintos administradores para cada zona del sitio.

Creaci�n de un nuevo usuario

Este nuevo usuario tendr� el rol de "manager" por lo que podr� acceder a la zona protegida y, m�s a�n, podr� acceder a la interfaz de gesti�n y modificar el contenido de su zona desde la interafaz Zope.

Iremos viendo a lo largo del curso la enormes posibilidades que ofrecen estos mecanismos de gesti�n de usuarios que har�n triviales las labores m�s complejas de control de acceso.

.�Conclusiones

Esta entrega del curso de Zope ha sido muy pr�ctica. Con ella pretend�amos que el lector se familiarizar� con toda la interfaz de Zope para l creaci�n de contenidos, un sistema sencillo pero que hay que entenderlo para poder explotar toda su potencia y sencillez.

Hemos dado un primer repaso a la construcci�n de p�ginas, a los efectos de la adquisici�n de contenido entre carpetas y a la importaci�n de ficheros externos a Zope dentro de la plataforma.

Por �ltimo hemos presentado los mecanismos de control de acceso a los recursos que nos proporciona Zope, aunque no hemos m�s que los primeros pasos que nos permite este sistema de gesti�n de usuarios.

En la pr�xima entrega del curso terminaremos de detallar como se construyen los webs dentro de Zope y nos centraremos en los objetos que nos proporciona Zope par facilitarnos la creaci�n r�pida y robusta de completos sitios web en la red. Esperamos que el lector se haya sentido lo suficientemente atra�do como para instalar Zope en su computador y comenzar a construir sus propios sitios.

.�Referencias

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP