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 algn pequeo 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 debera 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 ms cercana. De cualquier modo, esperamos lograr que el artculo sea tambin de inters para todos aquellos lectores que an no disponen de esta plataforma para poder jugar con ella.

Con Zope el objetivo ha sido el facilitar al mximo la publicacin de contenidos a travs de pginas HTML. Con el ejemplo que vamos a mostrar podremos analizar con ms 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 tcnicos 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 da de hoy no slo las empresas son las que estn desembarcando en la red: raro es el caso de una organizacin que tenga algo que decir que no se haya planteado el estar en Internet.

En nuestro caso nos vamos a plantear como ejemplo la realizacin de un portal para una empresa. Es una labor cada vez ms 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 problemticas de como llegar a mostrar una imagen dentro de la red por parte de una organizacin. Y es un ejemplo con el que muchos de los lectores tendrn 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 quin y como se van a organizar. Nos encontramos en este momento en el famoso campo de los arquitectos de la informacin, un perfil que a pesar de que ya exista dentro del mundo del diseo tradicional, se ha potenciado de manera muy significativa con la aparicin de Internet. Todas las compaas 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 compaa: comunicacin, marketing, comerciales, gestin, tcnico ...

En nuestro ejemplo nos vamos a centrar en el diseo del portal interno de una compaa, cuyo objetivo es proporcionar a los distintos departamentos de la misma libertad para informar a los dems de sus actuaciones, con el objetivo de mejorar la coordinacin y que aumentar el flujo de informacin, piedras angulares para el buen funcionamiento de una compaa.

Dentro de la amplia documentacin de Zope, y para este artculo en concreto, nos va a ser til la "Gua para el Gestor de Contenidos Zope". Esta gua se puede obtener del web de Zope, en la zona de documentacin. En las referencias puedes encontrar los detalles exactos de como descargarla para poderla leer tranquilamente.

Gua para el Gestor de Contenidos Zope

.Organizacin de la informacin

Lo primero que necesitamos es tener claro como se van a presentar los datos de la compaa. Normalmente nosotros vamos a ser parte del departamento tcnico y nuestra funcin ser proporcionar los medios tcnicos para plasmar la estructura de informacin que nos proporcione alguna persona con un conocimiento global del funcionamiento de la empresa.

Supongamos que se ha decidido organizar el web de la compaa en cuatro zonas diferencias por departamentos: comunicacin, marketing, gestin y tcnico. Cada uno de los departamentos ser responsable de la gestin de contenidos de su zona, y existir una zona pblica en cada departamento y una zona privada con informacin interna. Desde una pgina de inicio comn se podr ir a la zona de cada departamento. Todas las pginas de los departamentos debern de compartir una imagen comn, cambiando el ttulo de la pgina y los contenidos, pero manteniendo una imagen homognea.

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 compaa por medio de Zope. Ha llegado el momento de dejar claro la calidad del departamento tcnico 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 creacin del web

Nuestra compaa se llama Rayo de Luz por lo que parece lgico 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 artculo, accedemos a la pantalla de gestin de Zope (http://localhost:9673 en Debian) y pasamos a dar este primer paso utilizando la interfaz web de Zope para la publicacin de sitios web.

Creacin de la carpeta rayodeluz

Ya tenemos la carpeta para el web creada y hemos dejado seleccionadas las opciones de crear una interface pblica, 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 compaa, usuarios que no sern visibles para otras publicaciones que hagamos con este servidor Zope. Iremos poco a poco viendo la potencia de control de acceso y operacin de que dispone Zope, una de las caractersticas que nos pueden hacer terminar de decantarnos por este gran producto.

.La zona de los departamentos

Desde la pgina principal de nuestra compaa lo mejor que podemos hacer es poner enlaces a los distintos departamentos que forman la compaa 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 tambin pueden ser contenedores, permitiendo la aparicin de estructuras en rbol, una abstraccin 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 automtica cada vez que creamos una carpeta. Cuando a travs de una URL accedemos a la carpeta, el ORB de Zope de forma automtica nos devuelve el objeto "index_html". De nuevo, es una abstraccin 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 ms 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 interpretacin 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 compaa y el logo.

Edicin del objeto index_html

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

Visualizacin 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 pgina, y el ttulo 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 estn definidas en este objeto por lo que de dnde las saca Zope?.

Aqu ha salido a relucir uno de los mecanismos ms potentes de Zope, mecanismo conocido como adquisicin. 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 jerarqua de objetos. Veremos que no slo afecta este mecanismo a la variables, si no que se aplica en otras ocasiones, convirtiendo a la adquisicin en uno de los mecanismos estrella de Zope. En nuestro caso la cabecera y pie por defecto, los que se incluyen en la carpeta raz 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 sern utilizados por todas las pginas HTML del web de nuestra compaa. Vamos con ello.

Creacin de la cabecera para Rayo de Luz

Ya tenemos creado el nuevo objeto que servir de cabecera para todas las pginas que creemos como parte del web de la compaa. En general, todas estas pginas sern documentos DTML aunque cuando sea necesaria ms interactividad, por ejemplo a travs del intercambio de informacin 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 pginas tengan como ttulo HTML el ttulo 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, slo podemos hacer referencia a objetos que residan dentro de Zope para construir la pgina.

Para resolver este inconveniente tenemos la posibilidad de importar imgenes en Zope, que pasarn a ser objetos disponibles para todos los dems objetos de Zope. Para aadir esta imagen lo primero que hacemos es crearnos una carpeta para almacenar todas las imgenes y tras ello, nos metemos en esa carpeta, a la que hemos llamado "img", y aadimos 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 pginas de Zope, y el ttulo podemos elegir el que queramos. Pulsando el botn de "Browse" podemos navegar por nuestro sistema de ficheros local a la bsqueda de la imagen. Una vez localizada pulsamos sobre el botn "Add" y ya tenemos dentro de Zope la imagen disponible. Podemos ver que una vez dentro de Zope, este automticamente le asigna un tipo MIME y podremos visualizar la imagen accediendo a la opcin 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 construccin de nuestro web con Zope. Si el lector ha ido leyendo con atencin, a estas alturas ya estar en disposicin de avanzar muy rpido con la creacin del web con Zope. El siguiente paso es modificar el pie que va a aparecer en todas las pginas que cuelguen de la carpeta "rayodeluz", algo posible gracias al mecanismo de adquisicin. Esta modificacin 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 automtica en todos los documentos DTML nuevos, y estos documentos son los que constituyen las pginas web del sitio.

Pie de pgina de Rayo de Luz

Bueno, pues ya hemos logrado construir las cabeceras y pies de pgina para todas las pginas presentes y futuras del web. Slo nos queda meter dentro de "index_html" los enlaces a las distintas secciones de la compaa. 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 pgina principal de la empresa. Es un poco sencilla pero no olvidemos que nosotros somos simples tcnicos. Ya se encargar nuestro departamento de diseo de llevarse las manos a la cabeza cuando vea la pgina y hacer una maqueta que deja boquiabiertos a los navegantes de las pginas web de la compaa. Y ese esquema lo podremos introducir dentro de la cabecera estndar y pasar a ser utilizado de forma automtica por todas las pginas que cuelguen de "rayoluz". Un trabajo de das que nosotros podremos hacer en unas pocas horas y podernos dedicar a descansar en el dems tiempo.

El ndice de Rayo de Luz

.Control de acceso

Bueno, ya llegado el momento de comenzar a crear las pginas del departamento tcnico. En ellas existir informacin pblica para todos los empleados de la empresa como los pasos para configurar el acceso a Internet de los computadores, las instrucciones bsicas de mantenimiento de los equipos, las normas bsicas de navegacin por Internet y uso del correo electrnico y los correos y telfonos de contacto de las personas del departamento. Pero no toda la informacin que va a estar dentro de nuestro departamento debe ser pblica. Los datos sobre las claves de acceso a las mquinas como administrador, la gestin de IP de los equipos y toda la biblioteca de documentos tcnicos, as como un foro de discusin interno, sern partes privadas.

Creamos una nueva carpeta para incluir las pginas del departamento tcnico, y como identificador utilizamos "tecnico" que es el nombre que dimos como enlace en la pgina principal. Dentro de esta carpeta modificamos el objeto "index_html" para reflejar la informacin del departamento y ponemos enlaces a distintas pginas donde se ampla la informacin. Una vez hecho esto, vamos a crear una carpeta llamada "interno" donde vamos a incluir toda la informacin que debe ser slo 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 polticas 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 adquisicin: si algo no existe en el contenedor actual, se viaja a los contenedores superiores en la jerarqua buscndolo. De esta forma podemos tener centralizada la seguridad de todo el sitio en la carpeta raz. Veamos los permisos que vienen por defecto en la carpeta raz, y que son los que heredan todos los nuevos contenedores que vayamos creando.

Opciones de seguridad por defecto

En estas imagen aparecen slo parte de los permisos, pero son los que queremos destacar en este instante. La primera columna se refiere al usuario annimo. Si aparece seleccionada esta opcin, un usuario sin autenticarse ser capaz de realizar esa operacin. Por ejemplo, tenemos seleccionado "View" por lo que cualquier usuario podr ver todas las pginas DTML por defecto. Tambin podr utilizar el objeto "Z Search Catalog" o utilizar mtodos 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 annimo, el de administrador y el de dueo del recurso.

Vemos que por ejemplo el usuario annimo no tiene acceso a las pantallas de gestin de Zope, algo normal ya que desde all se puede modificar fcilmente todo el web.

Nuestro objetivo es que para entrar en el directorio "interno" del la parte de departamento tcnico, sea necesario autenticarse en el sistema. Para ello nos vamos a dicha carpeta, accedemos a la solapa de seguridad y modificamos la operacin de "View" para que no se adquiera. De esta forma slo podrn ejecutar esa operacin 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 algn 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.

Autenticacin para acceder a zona restringida

De dnde consulta Zope este usuario que se nos pide? Recordemos que a la hora de crear una carpeta tenamos al opcin 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 autenticacin 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 slo 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.

Creacin de un nuevo usuario

Este nuevo usuario tendr el rol de "manager" por lo que podr acceder a la zona protegida y, ms an, podr acceder a la interfaz de gestin 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 gestin de usuarios que harn triviales las labores ms complejas de control de acceso.

.Conclusiones

Esta entrega del curso de Zope ha sido muy prctica. Con ella pretendamos que el lector se familiarizar con toda la interfaz de Zope para l creacin 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 construccin de pginas, a los efectos de la adquisicin de contenido entre carpetas y a la importacin 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 ms que los primeros pasos que nos permite este sistema de gestin de usuarios.

En la prxima 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 creacin rpida y robusta de completos sitios web en la red. Esperamos que el lector se haya sentido lo suficientemente atrado como para instalar Zope en su computador y comenzar a construir sus propios sitios.

.Referencias

COMPARTE ESTE ARTÍCULO

ENVIAR A UN AMIGO
COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN GOOGLE +
SIGUIENTE ARTÍCULO

HAY 2 COMENTARIOS
  • Anónimo dijo:

    quisier que me ayuden estoy haciendo una monografia hacerca de zope, y quiero que me digan como puedo publicar mi pagia, ya lo tengo terminado, pero no puedo publicar, mi tutor quiere revisar mi pagina desde su domicilio, por favor si alguien me puede hayudar estare muy agradecido gracias, mi correo es giovannyonce@gmail.com

  • Anónimo dijo:

    señor Miguel Serrano esta bueno su aporte, pero quiciera que me ayude, sobre como publicar la pagina web, ya que mi direstor de tesis lo quiere revisar desde el internet, por favor ayudeme

Conéctate o Regístrate para dejar tu comentario.