stringtranslate.com

Catalizador (software)

Catalyst es un framework de aplicaciones web de código abierto escrito en Perl . Sigue de cerca la arquitectura modelo-vista-controlador (MVC) y admite una serie de patrones web experimentales. Está escrito utilizando Moose , un sistema de objetos moderno para Perl. Su diseño está fuertemente inspirado en frameworks como Ruby on Rails , Maypole y Spring .

Los desarrolladores de aplicaciones web pueden utilizar Catalyst para gestionar el código común a todas las aplicaciones web. Ofrece una interfaz para recibir solicitudes de páginas, enviarlas a un código escrito por el desarrollador para que las procese y devolver las solicitudes. Catalyst también ofrece una interfaz estandarizada para modelos de datos, autenticación, gestión de sesiones y otros elementos comunes de las aplicaciones web.

Todos estos elementos se implementan como complementos a un conjunto de interfaces comunes, lo que permite al desarrollador cambiar el método específico utilizado (por ejemplo, una sesión almacenada en memoria compartida en lugar de como una tabla de base de datos, o usar FastCGI en lugar de operar como dentro de mod_perl de Apache) cambiando la configuración de Catalyst para usar un complemento diferente sin alterar el código de la aplicación.

Catalyst se distribuye principalmente a través de CPAN , que es el canal de distribución oficial para bibliotecas y aplicaciones de Perl.

Historia

Maypole fue uno de los primeros frameworks de aplicaciones web para el lenguaje de programación Perl que se basó en el patrón MVC ; su autor principal fue Simon Cozens. [2] Catalyst comenzó como una bifurcación de Maypole, destinada a convertirse en Maypole 3.0. [3] Sin embargo, el desarrollo de Maypole cesó, con su lanzamiento más reciente en abril de 2008, [4] y Catalyst se convirtió en su equivalente moderno con soporte.

El primer lanzamiento de desarrollo de Catalyst tuvo lugar el 28 de enero de 2005. La primera versión oficial se publicó en CPAN el 16 de febrero de 2005. [5] En junio de 2011, Catalyst tenía 201 colaboradores registrados. [6]

Filosofía

Catalyst se basa en el principio de " no repetirse " (DRY), lo que significa que las definiciones solo deben realizarse una vez. Catalyst se puede utilizar con carga automática de clases desde la base de datos a través de uno de los numerosos módulos de carga, por lo que no requiere código para la capa de base de datos. Pero, si necesita la flexibilidad de hacer todo manualmente, también es una opción. Otro principio rector de Catalyst es la flexibilidad.

Catalyst promueve la reutilización de módulos Perl existentes que ya manejan bien los problemas comunes de las aplicaciones web.

Catalyst tiene una gran selección de complementos. [7] Por ejemplo, tiene generación de JavaScript para Ajax y RIAs usando el módulo Catalyst::Plugin::Prototype ( prototype es un framework Ajax ). Los complementos cubren muchas áreas, por ejemplo, autenticación, administración de sesiones, negociación HTTP y REST.

Catalyst también se puede utilizar con otros marcos Ajax como jQuery o YUI , la biblioteca de interfaz de usuario de Yahoo!.

Soporte de servidor web

Para el desarrollo y las pruebas, Catalyst tiene un servidor HTTP simple integrado. Para el uso en producción, se recomienda Apache , lighttpd , Hiawatha , Cherokee o Nginx con soporte para FastCGI o mod_perl , pero cualquier servidor web con soporte para CGI o FastCGI funcionará. En Apache, mod_perl puede ayudar considerablemente con el rendimiento, aunque su uso puede ser un problema porque puede ser inseguro compartir múltiples aplicaciones bajo mod_perl.

Desde principios de 2008, las aplicaciones Catalyst también se pueden implementar utilizando el motor HTTP::Prefork [8] , que permite la implementación de aplicaciones Catalyst de alto rendimiento sin un servidor web independiente. A partir del lanzamiento de Catalyst 5.9, Catalyst también genera datos según la especificación PSGI , por lo que se puede ejecutar en cualquier servidor Plack y junto con cualquier servidor o protocolo que admita la especificación PSGI, incluido Mongrel2 .

Soporte de base de datos

Catalyst puede ejecutarse utilizando cualquier base de datos compatible con DBI de Perl (esto significa casi cualquier cosa, incluso un archivo CSV ), pero se recomienda un RDBMS u ODBMS adecuado. El acceso a la base de datos está completamente abstraído desde el punto de vista del programador y Catalyst, a través de una de sus clases de modelo, maneja el acceso a todas las bases de datos automáticamente, aunque, si es necesario, es posible utilizar consultas SQL directas . Esto permite la neutralidad de la base de datos, la portabilidad de la aplicación en diferentes sistemas de bases de datos y la usabilidad de bases de datos preexistentes para el desarrollo de aplicaciones Catalyst tanto como sea posible, aunque debido a los diferentes conjuntos de características de los RDBMS, no está completamente garantizado por el marco solo. Se admiten varios sistemas RDBMS diferentes, incluidos MySQL , PostgreSQL , SQLite , IBM Db2 , Oracle y Microsoft SQL Server . Para los ODBMS, existe soporte explícito para KiokuDB a través de Catalyst::Model::KiokuDB. [9] La abstracción del modelo permite acceder a bases de datos de cualquier naturaleza a través de Catalyst::Model::Adaptor. [10]

Muchos proyectos basados ​​en Catalyst utilizan DBIx::Class como capa ORM , lo que proporciona una mayor abstracción de las consultas SQL, utilizando una API basada en conjuntos de resultados con soporte transparente para uniones arbitrarias y otras características.

Usos

Los sitios web que funcionan con Catalyst incluyen Magazines.com , [11] el backend de iPlayer de bbc.co.uk , [12] la plataforma comunitaria de DuckDuckGo , http://flexibase.io y Tripwolf.com. El motor wiki de MojoMojo está escrito con Catalyst. [13]

YouPorn fue desarrollado por Catalyst [14] hasta 2012. [15]

Véase también

Referencias

  1. ^ "Lanzamiento del módulo CPAN". Catalyst . Consultado el 15 de agosto de 2024 .
  2. ^ Simon Cozens (22 de abril de 2004). "Implementación rápida de aplicaciones web con Maypole". Perl.
  3. ^ La guía definitiva de Catalyst. Apress . Septiembre de 2009. Pág. 2. ISBN 978-1430223658.
  4. ^ "Árbol de Mayo". CPAN .
  5. ^ "Archivo de cambios de Catalyst" . Consultado el 8 de agosto de 2018 .
  6. ^ "Catalyst Framework - Colaboradores". Ohloh . Consultado el 6 de junio de 2011 .
  7. ^ "Buscar "Catalyst::Plugin::" - metacpan.org". metacpan.org . Consultado el 8 de agosto de 2018 .
  8. ^ "Catalyst::Engine::HTTP::Prefork - Motor Catalyst de pre-bifurcación de alto rendimiento - metacpan.org". metacpan.org . Consultado el 8 de agosto de 2018 .
  9. ^ "Catalyst::Model::KiokuDB - use KiokuDB in your Catalyst apps - metacpan.org". metacpan.org . Consultado el 8 de agosto de 2018 .
  10. ^ "Catalyst::Model::Adaptor - use a plain class as a Catalyst model - metacpan.org". metacpan.org . Consultado el 8 de agosto de 2018 .
  11. ^ "Publicado "Puesto de trabajo de desarrollador de Catalyst/DBIC/eCommerce". 8 de mayo de 2011. Archivado desde el original el 13 de mayo de 2011 . Consultado el 6 de junio de 2011 .
  12. ^ "El iPlayer de la BBC está potenciado por una pila de software Perl (incluido Catalyst)".
  13. ^ Diment, Kieren; Trout, Matt S (2009). "Libro de recetas de Catalyst". La guía definitiva de Catalyst . Apress. págs. 278–281. ISBN 978-1-4302-2365-8.
  14. ^ "El sitio pornográfico más grande de la web, YouPorn, desarrollado con Perl/Catalyst (top 50 en alexa)". reddit .
  15. ^ "El software de YouPorn se escribió originalmente en Perl + Mysql".

Enlaces externos