Zope 2 | ||
---|---|---|
![]() | ||
![]() Zope management interface desde un navegador Web. | ||
Información general | ||
Tipo de programa | Servidor de aplicaciones Web | |
Autor | Zope Corporation | |
Desarrollador | Zope Corporation | |
Lanzamiento inicial | 1998 | |
Licencia | Zope Public License | |
Estado actual | Estable | |
Idiomas | 1 | |
Información técnica | ||
Programado en | Python. | |
Versiones | ||
Última versión estable | 5.8.6 (info)( 04 de octubre de 2023 (1 año, 5 meses y 12 días)) | |
Última versión en pruebas | 4.0b1 (info)( 18 de septiembre de 2017 (7 años, 5 meses y 28 días)) | |
Enlaces | ||
Zope es un proyecto comunitario activista de un entorno de desarrollo para la creación desitios web dinámicos y/o aplicaciones web usando unservidor de aplicaciones weborientado al objeto, escrito en ellenguaje de programaciónPython(con algunos componentes escritos enlenguaje C para optimizar su rendimiento) decódigo abierto publicado bajo la licenciaZope Public License.
Aunque el nombreZope viene delacrónimo inglés"Z Object Publishing Environment – Zope", su origen se debe a un tipo de pezCyprinus ballerus es conocido comozope oblue bream.[1]
Históricamente ha sido reconocido como unaaplicación determinante que ayudó a colocarPython en el centro de atención de los desarrolladores a nivel mundial.[2][3]
Muchas cosas que son actualmente parte del núcleo dePython originalmente fueron innovaciones en su momento dadas por el desarrollo de Zope a la comunidad de desarrolladores Python, un ejemplo de esto es la libreríadatetime que proviene delDateTime de Zope 2.
En 1995,Digital Creations fue establecida enFredericksburg (Virginia), fundada como una empresa conjunta de la fusión de variosperiódicos. Los primeros empleados fueronPaul Everitt yRob Page, bastante pronto se sumaría como empleadoJim Fulton.
En 1996Jim Fulton, ahora el CTO deZope Corporation, fue seleccionado para dar una clase de programación sobreCommon Gateway Interface - CGI, a pesar de no saber mucho sobre el tema. La programación en CGI fue el modelo web de desarrollo de uso común del momento, el cual a los desarrolladores les permitía construir sitios web dinámicos. Entonces el viajar a la clase, Jim estudió toda la documentación existente en CGI. En el camino de vuelta, Jim considerado lo que no me gustó de entornos de programación tradicionales basados en CGI. A partir de estas reflexiones iniciales, el núcleo de Zope fue escrito durante el vuelo de regreso de la clase de programación en CGI.[4]
En mayo de 1997 se convierte en el consorcio de periódicos delDigital Creations, para ese momento, ya algunas empresas e usuarios estaban usando el producto gratuitoBobo, uno de esos usuarios fueHadar Pedhazur, el cual tenía el deseo de invertir en el consorcio. Las negociaciones, sin embargo, no tuvieron éxito, porque las diferencias de visiones del futuro que Hadar vio paraDigital Creaciones como una empresa de servicios, en cambio Paul y Rob le interesaban que sus productos de softwareBobo,unORB ligero para la web;Document Template,unlenguaje de scripting,BoboPOS,unabase de datos orientada a objetos estuvieran dentro del aplicación comercialPrincipia,unservidor de aplicaciones Web, bajo un modelo de venta comosoluciones propietarias.
Un año después, Hadar volvió aDigital Creations, tras el éxito alcanzado(aunque no fue tanto como se esperaba), fue entonces en noviembre de 1998 que llegaron al acordó de publicar elcódigo fuente de sus productos emblemáticosBobo yPrincipia, esta decisión fue influenciada por Hadar, principal inversionista en la compañía.[5] La combinación de Bobo y Principia fue rebautizado entonces comoZope. Esta decisión resultó de una empresa de servicios de Digital Creations (hoy en díaZope Corporation), y además proporciona en ese entonces mucha más visibilidad e interés en torno a Zope del que jamásPrincipia tuvo antes.
En julio de 1999 Zope 1.10.3 fue publicado[6] como primera revisión estable del proyecto y unos meses después en septiembre de 1999 fue publicado[7] Zope 2.0.0 como versión estable. En noviembre de 2004 fue publicadoZope 3, es casi completamente reescrito y contiene sólo labase de datos orientada a objeto ZODB y elmotor de plantillas ZPT.
Siendo Zope unservidor de aplicaciones web ofrece una mezcla única de características, algunas son similares y otras muy diferentes de las que ofrecen otros soluciones existentes:
A continuación se presenta las frecuentes ventajas y desventajas de losservidores de aplicaciones web alternativos a Zope:
Otros servidores de aplicaciones | Zope |
---|---|
No tienen una interfaz administrativa sencilla y por lo tanto son algo complicados de manejar. | Posee una interfaz administrativa de usuario muy sencillo. |
Muchas veces requieren una configuración muy compleja. | Es fácil de instalar y no requiere configuraciones ser utilizarlo. |
Requieren de productos adicionales para el desarrollo y además sonpropietarios. | Trabaja con cualquierNavegador estándar y no requiere herramientas adicionales. |
Algunas aplicaciones no escalan de la misma manera que Zope le permite a un amplio número de usuarios y desarrolladores. | Dispone de un sistema de gestión poderoso y consistente que permite su escalabilidad a múltiples usuarios con una única y fácil gestión de privilegios. |
La mayoría son herramientas comerciales concódigo cerrado que le impide la extensión, personalización y distribución. | Es unsoftware libre. |
Existente una serie de beneficios al adaptar Zope en su organización a continuación se describen:
La funcionalidad de Zope puede ser extendida gracias a un gran número de extensiones disponibles libremente, estos son comúnmente llamadosProductos (del inglés: Products) y para ser adaptados a las necesidades, ejemplo de esto sonsistema de Wiki comoZwiki, sistema de publicación de noticias y discusiones comoSquishdot,álbum de fotografías comoPhotosCommandes, Calendarios corporativos conCorpCalendar entre otros productos que son desarrollados y mantenidos por la comunidad de usuarios en la sección deproductos de Zope.org, lista de productos enOpen Source Content Management Software.
Estas extensiones están colocadas cada una en su propio directorio en el sistema de archivos y se puede remover completamente mediante la eliminación del directorio y reiniciar nuevo el servicio de Zope. Tendrán toda la extensión de la programación en lenguajePython que este disponible, incluyendo la integración de bibliotecas escritas enPython olenguaje C.
Zope es casi enteramente en escritoPython. Sólo algunas partes del sistema están escritas enlenguaje C por críticos de velocidad. Todo el sistema puede así, en principio, estar disponible en todas las plataformas con un intérpretePython y un compilador C para ejecutarse. ParaLinux,Windows,BSD,Mac OS X ySolaris hay disponibles paquetes previamente compilados que incluyen Zope yPython.
Se trata de uno de los mecanismos más potentes de Zope. Gracias a él, los objetos pueden obtener atributos, métodos y otros objetos del entorno que están en un "subárbol heredados completamente". Es similar a la herencia, solo que en vez de buscar en la jerarquía de objetos utiliza contenedores jerárquicos. De esta manera, 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. Este mecanismo es la base principal para decir de tener sitios dinámicos hechos con Zope.
Zope tiene un framework de seguridad que le permite a los llamados roles que construyen una definición detallada sobre "quien, donde y que" puede hacerse. Para cada objeto se puede determinar cuál es el rol que se necesita para el tipo de acceso, estos roles pueden usuarios individuales a los cuales también pueden asignarse localmente, por ejemplo, para conceder acceso únicamente a una determinada sub-árbol.
Además, el trabajo de los internautas no les gusta interactuar con lenguajes scripting clásicos comoPHP,Perl, etc, en el sistema de archivos del servidor y menos en un entorno virtual separado. Para romper con esta práctica de como hacer sitios dinámicos Web solamente posible cuando el desarrollador desee adoptar nuevos patrones de trabajo. La tecnología Zope impide el acceso a otra información almacenada en el servidor y por consiguiente alterar los patrones comunes de ataque informáticos.
Zope tiene la capacidadmultihilo. La distribución de la carga de una instancia de Zope para múltiples procesadores, sino para prevenir por un global de bloqueo del intérprete Python. Con la ayuda deZope Enterprise Objects - ZEO, es posible que varios servidores pueden acceder a la misma base de datos. Tales sistemas distribuidos son capaces de hacer uso de múltiples procesadores.
Zope puede configurarse para escenarios donde se requieren funcionamiento de alta disponibilidad a través de configuraciones con Servidores Web comoApache,Nginx, Zope; con Proxies / Balanceador de Carga comoHAProxy,Pound,Squid, entre otros; con servidor de Cacheo Web Externo comoVarnish,Squid,Apache yMemcache; replicación de base de datos con la libreríaRelstorage oNeopod.
La comunidad está compuesta por los usuarios y los desarrolladores. Muchos de los miembros de la comunidad son profesionales tales como consultores, desarrolladores ywebmasters, que dedican su tiempo y dinero al soporte de Zope. Otros muchos son estudiantes y usuarios curiosos, que aprenden cómo usar esta herramienta.
Los encuentros presenciales formales e informales se dan de vez en cuando enconferencias Python oconferencias Plone pero pasa la mayor parte del tiempo discutiendo sobre Zope en laslistas de correo electrónico, por ejemplo la lista deZope en Español, y los sitios Web dezope.org. Muchos actores que cumplen muchas funciones que a continuación describimos:
Para enero de 2013 cuenta con 230 desarrolladores de núcleo de Zope alrededor del mundo.[10]
Para soporte oficial en Zope puede contactar a laZope Corporation, a los proveedores de BlueBream[11] o por lo generar los proveedores de servicios dePlone ofrecen también soporte comercial en las tecnologías Zope, adicionalmente ofrece otros medios de asistencia técnica por medio de losrecursos comunitarios, que ofrece soporte vía chat IRC, soporte comunitario por medio de grupos activistas en tu región.
Es una organización que promueve el desarrollo de la plataforma Zope mediante el apoyo a la comunidad que desarrolla y mantiene los componentes de software que componen la plataforma de software.
Sus objetivos son:
Lafundación Zope promueve a la comunidad que incluye tanto el software de código abierto, la documentación y la infraestructura Web de los contribuyentes, así como los clientes de negocios y de la organización de la plataforma de software.
Para enero de 2013 cuenta con 49 miembros designados (una afiliación individual y libre) de la Fundación,[13] los miembros si quieres formar parte de lafundación Zope puedes llenar susolicitud cumpliendo con los requerimientos necesarios.
Los miembros que deseen patrocinar económicamente a la Fundación pueden pagar membresías desde sólo$399 por año. Para enero de 2013 lafundación Zope posee miembros patrocinadores que proporcionan apoyo monetario a la Fundación.[14]
Es una empresa que ofrece una serien de productos y servicios basados en elservidor de aplicaciones Zope. La Zope Corporation esmiembro patrocinador de lafundación Zope. Debido a que Zope fue una de las primeras herramientas de este tipo que se convirtió en software libre[15] la Zope Corporation desarrolló un modelo único denegocios decódigo abierto con el cual le permite seguir contribuyendo al continuo control de software a sus clientes y además le permite continuamente seguir apoyando el desarrollado global y vibrante en lacomunidad Zope alrededor del sitiozope.org en el cual se enriquece el software, aportando complementos necesarios, suministrando correcciones a errores, respondiendo preguntas.
La comunidad soporta y distribuye sus módulos a través de los sitios web de losproveedores de servicios pero la mayoría están en elPyPI. Los cantidad de paquetes publicados hasta la fecha de enero de 2013 en víaPyPI paraZope2 son de 876 paquetes,[16] paraZope3 son de 930 paquetes,[17] paraZODB son de 48 paquetes,[18] paraPyramid son de 84 paquetes[19] y paraBuildout son de 428 paquetes,[20] entre otros más.
Este proporciona infraestructura y servicios que agilizan enormemente el desarrollo, que consiste en varios componentes diferentes que trabajan de manera conjunta para ayudarte a construir aplicaciones Web que se describen a continuación:
Es un servicio de publicación de objeto, que se encarga de servir los contenidos tanto a usted como a sus usuarios, y fue el primer sistema utilizando la metodología objeto de publicación ahora común para la Web. Puede que dispongas ya en su sistema de otroservidor web, comoApache oMicrosoft IIS y no le interesa usar el servicio de Zope, no se preocupe, Zope trabaja también con estos servidores web modernos que soportanCGI,HTTP/WebDAV,XML-RPC,FTP yWSGI.
Posee unaInterfaz basado en Web, llamada“Zope Management Interface - ZMI” le puede utilizar su navegador para interactuar en la gestión de Zope. Esta interfaz es un entorno de desarrollo bajo el concepto a través de la Web, que le permite hacer cosas como: crear páginas web, añadir imágenes y documentos, interactuar con bases de datos relacionales externas y escribirscripts en diferentes lenguajes.
Posee por defecto un mecanismo de almacenamiento en unabase de datos de objetos, llamada“Zope Object Database - ZODB”, cuando usted trabaja con Zope, la mayoría de la veces trabajará con objetos almacenados en laZODB. La interfaz de gestión de Zope proporciona una manera simple y familiar de administrar objetos que se asemeja bastante a la forma de trabajar con los tradicionales gestores de ficheros, pero cada objeto tiene propiedades, métodos u otros objetos. Esta aproximación es muy diferente de lasbase de datos relacionales habituales.
Si usted no requiere almacenar su información en laZODB, Zope dispone de múltiples conectores a diferentesbases de datos relacionales comoOracle Database,MySQL,PostgreSQL,Sybase y entre otras, ofreciendo sistemas básicos de conexión y consulta abstrayéndolos como objetos.
Ofrecesoporte de lenguajes basados en scripts, le permite escribir aplicaciones en varios lenguajes diferentes comoPython,[21]Perl,[22]PHP,[23]JSP[24] dentro delservidor de aplicaciones de Zope.
La tecnologías de Zope proporciona tres mecanismos para la creación deplantillas HTML:
Document Template Markup Language (DTML) es un lenguaje basado en etiquetas que permite la ejecución de secuencias de comandos simples en las plantillas. DTML ha sido el primero lenguaje de marcado dentro de Zope por un largo tiempo.[25] DTML contiene disposiciones para la inclusión variable, condiciones y bucles. Sin embargo, DTML tiene inconvenientes importantes: etiquetas DTML intercalados con formato HTML no son válidos a los documentos HTML, y la inclusión descuidada de la lógica da como resultados que las plantillas sean un código muy ilegible.
Zope Page Templates (ZPT) es una tecnología que corrige los defectos del DTML, por consiguiente es el lenguaje de marcado recomendado primariamente dentro de Zope es hoy en día.[26] Las plantillas ZPT pueden ser documentosXML bien formados o documentosHTML, debido a que presentan todas las marcas especiales como atributos en el namespaceTemplate Attribute Language - TAL (Lenguaje de plantillas de atributos). ZPT ofrece un conjunto muy limitado de herramientas para la inclusión condicional y la repetición de elementos XML. En consecuencia, las plantillas son por lo general bastante simple, con más lógica implementada en el códigoPython. Una ventaja importante de las plantillas ZPT es que se puede editar en los editores gráficos deHTML. ZPT también ofrece soporte directo para lainternacionalización de software.
Chameleon es un motor dePage Templates escrito enPython el cual se caracteriza por sermás rápido ya que las plantillas son compiladas a byte-code esto lo hace muy optimizado en su velocidad;es extensible ya que es fácil de extender un lenguaje o crearse su propio lenguaje al estilo taglibs[27] yestá probado con pruebas automatizadas evitar problemas. Chameleon es una nueva implementación del motor de Page Templates por consiguiente hay que tener en cuentas sus diferencias e incompatibilidades.[28]
El desarrollo principal del proyecto Zope ahora es mantenido por lafundación Zope que está compuesto por miembros de la comunidad de desarrolladores. Actualmente es independiente de cualquier conexión conZope Corporation. En la actualidad se desarrollará en paralelo y activamente tres ramas principales del desarrollo que se mantienen por separado por la comunidad Zope:
Un sitio web Zope se compone generalmente de objetos en unabase de datos de objetos de Zope no son archivos en un sistema de archivos, como es habitual en la mayoría de servidores web. Esto permite a los usuarios aprovechar las ventajas de las tecnologías de objetos, tales como encapsulación. Zope mapea las direcciones URL a objetos utilizando el árbol de contenidos de tales objetos, los métodos se consideran que deben figurar en sus objetos también. Los datos pueden ser almacenados en otras bases de datos, así, o en el sistema de archivos, peroZODB por defecto. La plataforma de aplicaciones web Zope 2 ha estado en continuo desarrollo como un sistema decódigo abierto desde 1998.
Formalmente conocido comoZope 3, fue inicialmente publicado bajo ese nombre, como es una nueva implementación del servidorZope 2, pero debido a la incompatibilidad entre las versiones del framework Zope 2 y 3, entonces fue renombrado[29] a BlueBream el 17 de enero de 2010 para marcar diferencia deZope 2.
Se convierte en la siguiente generación de la plataforma web desarrollada por la comunidad Zope. Fue publicado en 2005 como una plataforma de desarrollo orientado. Su objetivo es ofrecer una colección de muchos pequeños componentes que lo conforman los cuales se pueden combinar para crear potentes aplicaciones Web.
Con BlueBream un corte se hizo con la compatibilidad atrás conZope 2, se decidió corregir los errores del pasado, volcando toda la experiencia adquirida enZope 2 para revisar la estructura interna fundamental del proyecto. Estos cambios incluyen unaarquitectura de componentes Zope, un efecto secundario es que muchos componentes también se pueden utilizar fuera de Zope ahora en otros proyectos Python.
Para ofrecer compatibilidad hacia atrás a los componentes hechos paraZope 2 desde BlueBream/Zope 3, puede usar el componente llamadoFive.
Es unframework para aplicaciones web decódigo abierto basado en la tecnología delZope Toolkit. El proyecto inicio en 2006 de la mano un grupo de desarrolladores Zope.[30] Grok desde entonces ha tenido lanzamientos regulares. Sus tecnologías centrales (Martian,grokcore.component) también se utiliza en otros proyectos basados en Zope.[31][32]
El primer motivo detrás del proyecto Grok, es hacer a la tecnología delZope Toolkit más accesible y más fácil de usar para los recién llegados y, al mismo tiempo, a la velocidad de desarrollo de aplicaciones, de acuerdo con el paradigma de laprogramación ágil.[33]
Para ello, utiliza de la convención Grok es usar laconvención sobre configuración en lugar de utilizar un lenguaje explícito de configuración basado en XML (ZCML) como elZope Toolkit y BlueBream hacen. Grok usa código Python para la configuración del componente, y tiene muchos valores por defecto implícitos y convenciones. Grok es similar en sentir a otros marcos Web de Python comoTurboGears,Pylons yDjango.[34]
Durante más de una década laZope Corporation y lacomunidad Zope han aumentado en un sistema excepcional de productos y tecnologías, que influyen en el desarrollo general de Python, servidores basados en aplicaciones web y herramientas. A continuación se describen las más importantes de ellas:
Este dispone de unframework que soporta el diseño y laprogramación basada en componentes llamado Arquitectura de Componentes de Zope viene del inglés “Zope Component Architecture - ZCA”. Esta funciona muy bien al desarrollar sistemas de software grandes en Python. La ZCA no es específica al servidor de aplicaciones Zope, se puede utilizar para desarrollar cualquier aplicación Python.[35]
Del inglés"Zope Toolkit - ZTK", es un kit de herramientas para el desarrollo de Zope y fue creado como resultado del desarrollo de Zope 3 / BlueBream, ahora hay muchos paquetes de Python independientes usados y desarrollados como parte de BlueBream, y aunque muchos de estos son utilizables fuera de BlueBream, muchos no lo son. El proyecto Zope Toolkit (ZTK) se inició para clarificar que paquetes eran utilizables fuera BlueBream, y para mejorar la aptitud para la reutilización de los paquetes. Así, el kit de herramientas de Zope es una base para los framework de Zope. Con Zope 2.13[36] fue la primera versión de un framework web que se basa en Zope Toolkit, Grok,[37] BlueBream[38] y Plone[39] también lo adoptaron.
Es un conjunto de componentes construidos encima deZope 2 para ayudar en la creación de sistemas de gestión de contenidos. Un ampliamente conocido sistema de gestión de contenidos que emplea elZope CMF esPlone.
El nombre deproyecto Five deriva el juego de palabras:Zope 2 + Zope 3 = Cinco, fue creado para solventar el problema de las incompatibilidad entre versiones Zope 2 y Zope 3 desde el punto de vista del desarrollador de aplicaciones web, producido como resuelto una librería que le permite usar muchos de los conceptos y técnicas de Zope 3 en Zope 2. Gracias a esta un desarrollador puede migrar las aplicaciones a utilizar Zope 2 y adoptar gradualmente laarquitectura de componente Zope 3 a lo largo de una trayectoria continua. Five se incorporó a la distribución original de Zope 2, y cada versión posterior integra un número cada vez mayor de características de Zope 3.
El proyecto Zope ha creado algunas herramientas útiles, a continuación se describen:
Es un sistema de auto-construcción basado en Python para crear, ensamblar y desplegar aplicaciones desde diversas partes a partir de piezas múltiples, algunos de los cuales pueden ser piezas de software no basado en Python.[40]
Una gran cantidad de software se ha construido en la sobre la Zope. A continuación una lista de los proyectos más conocidos:
Existen muchas herramientas disponibles que te ayudan en la construcción de aplicaciones web. Al comienzo de la historia de la web, las aplicaciones web sencillas eran construidas casi de forma exclusiva mediante programasCGIs escritos enPerl u otras lenguajes de la época temprana de la Web. Ahora hay una multitud de opciones que van desde las solucionescódigo abierto comoPHP,Python,Ruby a opciones comerciales comoColdFusion de Adobe(originalmente deAllaire),Java Application Servers oStory Server de Vingette.
|url=
incorrecta con autorreferencia (ayuda)(Web). Consultado el 27 de enero de 2013. «conocido como zope o blue bream». |coautores=
(ayuda)