Portal Web para el proceso continuo de superación de profesores de Matemática
Texto completo
(2) Dirección: MSc. Andrés Tellería Dpto.: Producción de software Facultad Matemática Física y Computación Universidad Central Marta Abreu de la Villas. PORTAL WEB PARA EL PROCESO CONTINUO DE SUPERACIÓN DE PROFESORES DE MATEMÁTICA. Autor: Yaima Fernández Segredo Carrera: Licenciatura en Ciencia de la Computación Curso: 2007-2008 Julio 2008.
(3) Licencia. Hago constar que el presente trabajo fue realizado en la Universidad Central Marta Abreu de las Villas como parte de la culminación de los estudios de la especialidad de Ciencia de la Computación, autorizando a que el mismo sea utilizado por la institución, para los fines que estime conveniente, tanto de forma parcial como total y que además no podrá ser presentado en eventos, ni publicados sin autorización de la Universidad.. Firma del Autor. Los abajo firmantes, certificamos que el presente trabajo ha sido realizado según acuerdos de la dirección de nuestro centro y el mismo cumple con los requisitos que debe tener un trabajo de esta envergadura referido a la temática señalada.. Firma del Tutor. Firma de Jefe de Seminario. Firma del Responsable de Información Científico-Técnica.
(4) Pensamiento. Inteligencia más carácter, el objetivo de la verdadera educación. Dr. Martin Luther King.
(5) Dedicatoria. A mi hermano Yohandy..
(6) Índice AGRADECIMIENTOS ....................................................................................................................................... I RESUMEN...........................................................................................................................................................II ABSTRACT ....................................................................................................................................................... III INTRODUCCIÓN................................................................................................................................................4 PLANTEAMIENTO DEL PROBLEMA .......................................................................................................................4 OBJETIVOS..........................................................................................................................................................4 Objetivo general ...........................................................................................................................................4 Objetivos específicos.....................................................................................................................................5 HIPÓTESIS ...........................................................................................................................................................5 CONTENIDO DEL TRABAJO ..................................................................................................................................5 CAPITULO 1: LOS SISTEMAS DE MANEJO DE CONTENIDOS .............................................................6 1.1 CONCEPTOS Y DEFINICIONES FUNDAMENTALES. ...........................................................................................6 1.1.1 ¿Qué es un CMS? ................................................................................................................................6 1.1.2 Creación de contenido. ........................................................................................................................6 1.1.3 Gestión de contenido. ..........................................................................................................................7 1.1.4 Publicación. .........................................................................................................................................8 1.1.5 Presentación. .......................................................................................................................................8 1.2 NECESIDAD DE UN CMS. ..............................................................................................................................8 1.3 CMS COMERCIALES Y DE CÓDIGO ABIERTO. ...............................................................................................11 1.4 HISTORIA DE LOS CMS. ..............................................................................................................................12 1.5 PRESENTE Y FUTURO DE LOS CMS..............................................................................................................13 1.6 LOS CMS EN EL E-LEARNING......................................................................................................................13 1.7 CRITERIOS DE SELECCIÓN. ..........................................................................................................................14 1.8 ¿QUÉ TIPOS DE SITIOS WEB PODEMOS CREAR CON UN CMS? .....................................................................16 1.9 JOOMLA, DRUPAL Y PLONE, CMS DE CÓDIGO ABIERTO..............................................................................17 1.9.1 Características principales comunes. ................................................................................................17 1.9.2 Joomla................................................................................................................................................18 1.9.3 Drupal................................................................................................................................................19 1.9.4 Plone ..................................................................................................................................................20 1.9.5 En resumen ........................................................................................................................................21 1.10 LENGUAJE DE PROGRAMACIÓN PHP. ........................................................................................................21 1.10.1 ¿Qué es PHP?..................................................................................................................................21 1.10.2 Usos de PHP....................................................................................................................................22 1.10.3 ¿Por qué usar PHP y no otro lenguaje de programación? .............................................................22 1.10.4 Desventajas de PHP: .......................................................................................................................23 1.10.5 Seguridad en PHP. ..........................................................................................................................24 1.11 MYSQL. ...................................................................................................................................................24.
(7) Índice 1.11.1 Características (versión 4.0 en adelante) ........................................................................................25 1.11.2 MySQL en cifras ..............................................................................................................................25 1.11.3 ¿Qué licencia utilizar?.....................................................................................................................25 1.11.4 Ventajas y desventajas. ....................................................................................................................26 1.11.5 ¿Por qué MySQL? ...........................................................................................................................26 1.12 CONCLUSIONES PARCIALES.......................................................................................................................26 CAPÍTULO 2: DISEÑO Y DESARROLLO DEL PORTAL WEB. .............................................................28 2.1 ETAPA DE ANÁLISIS Y DISEÑO DEL SISTEMA ................................................................................................28 2.1.1 Requisitos funcionales .......................................................................................................................28 2.1.2 Arquitectura del sistema ....................................................................................................................28 2.1.2.1 Elementos básicos del sistema .................................................................................................................... 29 2.1.2.2 El Patrón de diseño MVC ........................................................................................................................... 31 2.1.2.3 Conceptos de Front-End y Back-End.......................................................................................................... 32 2.1.2.4 Estructura de los componentes.................................................................................................................... 33 2.1.2.5 Estructura de los módulos ........................................................................................................................... 34 2.1.2.6 Estructura de las plantillas .......................................................................................................................... 35 2.1.2.7 Estructura de los plugins ............................................................................................................................. 37. 2.1.3 Usuarios y privilegios........................................................................................................................39 2.1.3.1 Usuarios del Sitio ........................................................................................................................................ 39 2.1.3.2 Usuarios de la Administración .................................................................................................................... 40. 2.1.4 Actores y casos de uso del sistema ....................................................................................................41 2.1.5 Diagramas de navegación .................................................................................................................41 2.1.5.1 Diagramas general de navegación del portal............................................................................................... 41 2.1.5.2 Diagramas de navegación del contenido matemático.................................................................................. 42 2.1.5.3 Servicio de carga y descarga de recursos .................................................................................................... 42. 2.1.6 Boceto estructural de los espacios en el diseño gráfico. ...................................................................44 2.1.7 Diseño de la interfaz ..........................................................................................................................44 2.2 ETAPA DE IMPLEMENTACIÓN ......................................................................................................................44 CONCLUSIONES PARCIALES ..............................................................................................................................47 CAPÍTULO 3: GUÍA DEL NAVEGADOR.....................................................................................................48 3.1 REQUERIMIENTOS PARA LA INSTALACIÓN DEL PORTAL ...............................................................................48 3.2 CREACIÓN DEL PAQUETE DE INSTALACIÓN DEL PORTAL .............................................................................48 3.3 INSTALACIÓN DEL PORTAL ..........................................................................................................................51 3.4 INICIAR SESIÓN ...........................................................................................................................................51 3.5 CERRAR SESIÓN ..........................................................................................................................................51 3.6 GESTIÓN DE ARTÍCULOS..............................................................................................................................52 3.7 INSERCIÓN DE ECUACIONES MATEMÁTICAS EN LOS CONTENIDOS................................................................52 3.8 CONCLUSIONES PARCIALES.........................................................................................................................53.
(8) Índice CONCLUSIONES ..............................................................................................................................................54 RECOMENDACIONES ....................................................................................................................................55 ANEXO 1: ACTORES Y CASOS DE USO DEL SISTEMA.........................................................................56 ANEXO 2: DIAGRAMA GENERAL DE NAVEGACIÓN DEL PORTAL.................................................58 ANEXO 3: DIAGRAMA GENERAL DE NAVEGACIÓN DEL PANEL DE ADMINISTRACIÓN DEL PORTAL .............................................................................................................................................................59 ANEXO 4: DIAGRAMA DE NAVEGACIÓN DEL CONTENIDO MATEMÁTICO................................60 ANEXO. 5:. DIAGRAMA. DE. NAVEGACIÓN. DEL. CONTENIDO. EN. EL. PANEL. DE. ADMINISTRACIÓN DEL PORTAL...............................................................................................................61 ANEXO 6: BOCETO ESTRUCTURAL DE LOS ESPACIOS EN EL DISEÑO GRÁFICO.....................62 ANEXO 7: DISEÑO DE LA INTERFAZ DEL PORTAL .............................................................................63 ANEXO 8: EDITOR DE ECUACIONES MATEMÁTICAS.........................................................................64 INSERCIÓN DE ECUACIONES MATEMÁTICAS: .....................................................................................................64 EDICIÓN DE LAS DIMENSIONES DEFINIDAS A LA ECUACIÓN:..............................................................................64 EDICIÓN DE ECUACIONES MATEMÁTICAS:.........................................................................................................65 VISUALIZACIÓN DE LA ECUACIÓN MATEMÁTICA EN LA WEB:............................................................................65 GLOSARIO ........................................................................................................................................................66 REFERENCIAS Y BIBLIOGRAFÍA...............................................................................................................69.
(9) Agradecimientos. Agradecimientos ¾ Agradezco de forma especial a Yoandry Pacheco Águila por la ayuda que me ha brindado durante estos cinco años de mi carrera, por trasmitirme sus conocimientos y encaminarme para llegar a ser una buena profesional, por ayudarme a resolver cada situación engorrosa de mi vida, y por el magnífico papel de consultante que ha realizado en el desarrollo de este proyecto. ¾ Agradezco a mis padres, a mi abuelita Lila, a mi hermano y mi padrastro por el apoyo y la confianza que me han dado siempre y por ayudar a cumplir mis metas. ¾ A mi tutor Andrés Tellería y a la profesora Damasa Martínez por su colaboración en el desarrollo de este proyecto. ¾ Agradezco a mis tías Alina y Mildrey que se han portado muy bien conmigo, principalmente en estos últimos momentos. ¾ A mis amigos: Yoan, Yuneisy y Yanirys que han sabido ayudarme y entenderme en cada momento difícil de mi carrera. ¾ A los profesores que han sabido trasmitirme parte de sus conocimientos y han compartido sus experiencias. ¾ A todos mis compañeros de la universidad y especialmente a los de mi año, con los cuales he compartido los buenos y malos momentos. ¾ A todos los que de una forma u otra han contribuido a mi formación.. I.
(10) Resumen Resumen Dada la existencia de profesores de matemática jóvenes o graduados de otras esferas y con poca experiencia docente en el tema, se hace necesaria la superación continua de los mismos desde sus puestos de trabajo. Por lo que, es necesario establecer un sistema que les permita acceder e interactuar de forma remota y que integre un conjunto de elementos que sirvan como material de apoyo para su formación y superación en el ámbito de las matemáticas superiores. Los documentos digitales constituyen hoy en día la fuente bibliográfica y de información principal de cualquier centro de la educación superior. Para lo cual se comenzó el estudio de los Sistemas de Manejo de Contenidos existentes sobre software libre, como plataformas que facilitan la creación y gestión de un sitio Web y que utilicen PHP como lenguaje de programación y MySQL como gestor de base de datos, dada las ventajas que estos brindan en el desarrollo de una aplicación Web.. II.
(11) Abstract Abstract Given the existence of young math teachers or graduates from other areas and with little teaching experience in the subject becomes necessary overcoming continuing the same from their jobs. For what need establish a system enabling them to access and interact of remotely and that integrates a set of elements that serve as supporting material for its formation and overcoming in the area of the mathematics superior. The digital documents are today in day the source bibliography and the information principal of any major center of higher education. For that which began the study of Content Management Systems on existing free software platforms that facilitate the creation and management of a website and using programming language such as PHP and MySQL as a database manager, given the they offer advantages in developing a web application.. III.
(12) Introducción Introducción Con el objetivo de contribuir al desarrollo del aprendizaje de la Matemática a distancia, se desarrolló hace algunos años el sitio universimat en el cual se publica gran parte de la documentación y software correspondientes a las asignaturas de matemática que se imparten en las carreras de ingeniería agropecuaria, ingeniería industrial y licenciatura en contabilidad, así como información referente a estas tres carreras. Aunque este sitio ha contribuido en gran medida con el aprendizaje de la matemática, hoy no satisface las necesidades pedagógicas, didácticas y de contenido, de los profesores de matemática de la enseñanza superior ya que los contenidos y software publicados están orientados solo a las tres carreras mencionadas anteriormente. Universimat es un sitio estático implementado en Zope, por lo que es preciso tener conocimientos técnicos de este con privilegios de administración para realizar la edición, publicación y creación de los contenidos, por lo que se hace muy engorrosa la actualización del sitio. Por otro lado la organización de la información que se define en este sitio al estar organizada por carreras trae consigo la duplicidad de la información. Planteamiento del problema Dada la existencia de profesores de matemática jóvenes o graduados de otras esferas y con poca experiencia docente en el tema, se hace necesaria la superación continua de los mismos desde sus puestos de trabajo. Por lo cual, se necesita implantar un sistema al que puedan acceder e interactuar de forma remota y que integre un conjunto de elementos que sirvan como material de apoyo para su formación y superación en el área de la matemática superior. Objetivos Atendiendo a lo anteriormente expuesto se plantean los siguientes objetivos: Objetivo general Desarrollo de un portal Web para el manejo de contenido matemático que cubra las necesidades pedagógicas y didácticas de los profesores de este perfil en el nivel de enseñanza superior.. 4.
(13) Introducción Objetivos específicos Implementar, adaptar o instalar funcionalidades al sistema que permitan: 1. Un manejo dinámico de los contenidos y recursos a publicar. 2. La edición de ecuaciones matemáticas en los contenidos. 3. La comunicación interactiva entre los profesores con acceso al portal y sus asesores. Hipótesis Desarrollar un sitio Web sobre un Sistema de Manejo de Contenidos permitirá entre muchas otras actividades un cómodo y eficiente mantenimiento de la documentación referente a la matemática superior que se imparte en nuestras universidades contribuyendo con la superación continua de los profesores de matemática en cualquier momento y desde cualquier lugar en el que exista una computadora conectada a la red. Contenido del trabajo El presente trabajo cuenta con tres capítulos de desarrollo: Un primen capítulo que constituye el marco teórico, en el cual se aborda la terminología y los conceptos fundamentales que interviene en el estudio de los Sistemas de Manejo de Contenido, tales como creación y gestión de contenido, publicación y presentación; así como la necesidad de uso, la historia, el criterio de selección y el presente y futuro de estos sistemas. También se tratan las ventajas y desventajas de PHP y MySQL en el desarrollo de un portal Web. El segundo capítulo de este trabajo se refiere al diseño de un portal Web para la superación a distancia de los profesores de matemática superior, apoyándonos de un CMS existente. El tercer y último capítulo que constituye la guía del navegador, donde se muestra cuáles son y cómo se accede a cada una de las opciones que brinda el sistema.. 5.
(14) Capitulo I: Los Sistemas de Manejo de Contenidos Capitulo 1: Los Sistemas de Manejo de Contenidos Realizar un sito Web puede ser un trabajo complicado y muy laborioso si no se dispone de las herramientas adecuadas. En los últimos años se ha desarrollado el concepto de Sistema de Manejo de Contenidos (Content Management Systems o CMS 1 ). Se trata de herramientas que permiten crear y mantener un sito Web con facilidad, encargándose de los trabajos más tediosos que hasta ahora ocupaban el tiempo de los administradores de estos. Los gestores de contenidos proporcionan un entorno que posibilita la actualización, mantenimiento y ampliación de la Web con la colaboración de múltiples usuarios. En cualquier entorno virtual ésta es una característica importante, que además puede ayudar a crear una comunidad cohesionada que participe más de forma conjunta. En este capítulo se describen los criterios más importantes a la hora de seleccionar e incorporar funcionalidades a un gestor de contenidos en consecuencia con los requerimientos en función de los objetivos que se quieran alcanzar. Por lo cual, se hace un breve repaso de estos sistemas y las herramientas de código abierto sobre la cual se desarrollan los mismos. 1.1 Conceptos y definiciones fundamentales. 1.1.1 ¿Qué es un CMS? Un Sistema de Manejo de Contenidos (Content Management Systems o CMS) es un software que se utiliza principalmente para facilitar la gestión de sitios Web, ya sea en Internet o en una intranet, y por eso también son conocidos como gestores de contenido Web (Web Content Management o WCM). Hay que tener en cuenta sin embargo, que la aplicación de los CMS no se limita sólo a los sitios Web. (Robertson, 2003a) La funcionalidad de los CMS se divide en cuatro categorías: creación de contenido, gestión de contenido, publicación y presentación. 1.1.2 Creación de contenido. Un CMS aporta herramientas para que los creadores sin conocimientos técnicos en páginas Web puedan concentrarse en el contenido. Lo más habitual es proporcionar un editor de texto. 1. En adelante se usará la sigla CMS para referirse a los Sistemas de Manejo de Contenido ya que se conocen más por sus siglas en ingles que por sus siglas en español.. 6.
(15) Capitulo I: Los Sistemas de Manejo de Contenidos WYSIWYG, en el que el usuario ve el resultado final mientras escribe, al estilo de los editores comerciales, pero con un rango de formatos de texto limitado. Esta limitación tiene sentido, ya que el objetivo es que el creador pueda poner énfasis en algunos puntos, pero sin modificar mucho el estilo general del Web. Hay otras herramientas como la edición de los documentos en XML, utilización de aplicaciones ofimáticas con las que se integra el CMS, importación de documentos existentes y editores que permiten añadir marcas, habitualmente HTML, para indicar el formato y estructura de un documento. Un CMS puede incorporar una o varias de estas herramientas, pero siempre tendría que proporcionar un editor WYSIWYG por su facilidad de uso y la comodidad de acceso desde cualquier ordenador con un navegador y acceso a Internet. Para la creación del sitio propiamente dicho, los CMS aportan herramientas para definir la estructura, el formato de las páginas, el aspecto visual, uso de patrones, y un sistema modular que permite incluir funciones no previstas originalmente. 1.1.3 Gestión de contenido. Los documentos creados se depositan en una base de datos central donde también se guardan el resto de datos de la Web, cómo son los datos relativos a los documentos (versiones hechas, autor, fecha de publicación y caducidad, etc.), datos y preferencias de los usuarios, la estructura de la Web, etc. La estructura de la Web se puede configurar con una herramienta que, habitualmente, presenta una visión jerárquica del sitio y permite modificaciones. Mediante esta estructura se puede asignar un grupo a cada área, con responsables, editores, autores y usuarios con diferentes permisos. Eso es imprescindible para facilitar el ciclo de trabajo (workflow) con un circuito de edición que va desde el autor hasta el responsable final de la publicación. El CMS permite la comunicación entre los miembros del grupo y hace un seguimiento del estado de cada paso del ciclo de trabajo.. 7.
(16) Capitulo I: Los Sistemas de Manejo de Contenidos 1.1.4 Publicación. Una página aprobada se publica automáticamente cuando llega la fecha de publicación, y cuando caduca se archiva para futuras referencias. En su publicación se aplica el patrón definido para toda la Web o para la sección concreta donde está situada, de forma que el resultado final es un Web con un aspecto consistente en todas sus páginas. Esta separación entre contenido y forma permite que se pueda modificar el aspecto visual de un Web sin afectar a los documentos ya creados y libera a los autores de preocuparse por el diseño final de sus páginas. 1.1.5 Presentación. Un CMS puede gestionar automáticamente la accesibilidad del Web, con soporte de normas internacionales de accesibilidad como WAI, y adaptarse a las preferencias o necesidades de cada usuario. También puede proporcionar compatibilidad con los diferentes navegadores disponibles en todas las plataformas (Windows, Linux, Mac, Palm, etc.) y su capacidad de internacionalización lo permite adaptarse al idioma, sistema de medidas y cultura del visitante. El sistema se encarga de gestionar muchos otros aspectos como son los menús de navegación o la jerarquía de la página actual dentro del Web, añadiendo enlaces de forma automática. También gestiona todos los módulos, internos o externos, que incorpore al sistema. Así por ejemplo, con un módulo de noticias se presentarían las novedades aparecidas en otro Web, con un módulo de publicidad se mostraría un anuncio o mensaje animado, y con un módulo de foro se podría mostrar, en la página principal, el título de los últimos mensajes recibidos. Todo eso con los enlaces correspondientes y, evidentemente, siguiendo el patrón que los diseñadores hayan creado. 1.2 Necesidad de un CMS. En el apartado anterior se han presentado bastantes motivos para ver la utilidad de un sistema que gestione un entorno Web, pero se podría pensar que no es necesario para un Web relativamente pequeño o cuando no se necesitan tantas funcionalidades. Eso sólo podría ser cierto para un Web con unas pocas páginas estáticas para el que no se prevea un crecimiento futuro ni muchas actualizaciones, lo que no es muy realista. En cualquier otro caso, la. 8.
(17) Capitulo I: Los Sistemas de Manejo de Contenidos flexibilidad y escalabilidad que permiten estos sistemas, justifican su utilización en prácticamente cualquier tipo de Web. (Robertson, 2002) Muchos usuarios particulares utilizan CMS gratuitos para elaborar y gestionar sus sitios Web personales, obteniendo sitios Web dinámicos llenos de funcionalidades. El resultado que obtienen es superior al de algunas empresas que se limitan a tener páginas estáticas que no aportan ningún valor añadido. Éstos son algunos de los puntos más importantes que hacen útil y necesaria la utilización de un CMS: •. Inclusión de nuevas funcionalidades en el Web. Esta operación puede implicar la revisión de multitud de páginas y la generación del código que aporta las funcionalidades. Con un CMS eso puede ser tan simple como incluir un módulo realizado por terceros, sin que eso suponga muchos cambios en la Web. El sistema puede crecer y adaptarse a las necesidades futuras.. •. Mantenimiento de gran cantidad de páginas. En una Web con muchas páginas hace falta un sistema para distribuir los trabajos de creación, edición y mantenimiento con permisos de acceso a las diferentes áreas. También se tienen que gestionar los metadatos de cada documento, las versiones, la publicación y caducidad de páginas y los enlaces rotos, entre otros aspectos.. •. Reutilización de objetos o componentes. Un CMS permite la recuperación y reutilización de páginas, documentos, y en general de cualquier objeto publicado o almacenado.. •. Páginas interactivas. Las páginas estáticas llegan al usuario exactamente como están almacenadas en el servidor Web. En cambio, las páginas dinámicas no existen en el servidor tal como se reciben en los navegadores, sino que se generan según las peticiones de los usuarios. De esta manera cuando por ejemplo se utiliza un buscador, el sistema genera una página con los resultados que no existían antes de la petición. Para conseguir esta interacción, los CMS conectan con una base de datos que hace de repositorio central de todos los datos de la Web.. 9.
(18) Capitulo I: Los Sistemas de Manejo de Contenidos •. Cambios del aspecto de la Web. Si no hay una buena separación entre contenido y presentación, un cambio de diseño puede comportar la revisión de muchas páginas para su adaptación. Los CMS facilitan los cambios con la utilización, por ejemplo, del estándar CSS (Cascading Style Sheets u hojas de estilo en cascada) con lo que se consigue la independencia de presentación y contenido.. •. Consistencia de la Web. La consistencia en un Web no quiere decir que todas las páginas sean iguales, sino que hay un orden (visual) en vez de caos. Un usuario nota enseguida cuándo una página no es igual que el resto de las de la misma Web por su aspecto, la disposición de los objetos o por los cambios en la forma de navegar. Estas diferencias provocan sensación de desorden y dan a entender que el Web no lo han diseñado profesionales. Los CMS pueden aplicar un mismo estilo en todas las páginas con el mencionado CSS, y aplicar una misma estructura mediante patrones de páginas.. •. Control de acceso. Controlar el acceso a un Web no consiste simplemente al permitir la entrada al Web, sino que comporta gestionar los diferentes permisos a cada área del Web aplicados a grupos o individuos.. Todos los sitios Web necesitan de actualización de contenidos, navegación intuitiva, y un buen diseño. Cada administrador quiere ser capaz de obtener rápidamente un sitio Web, hacer cambios con facilidad, y añadir nuevos contenidos con un mínimo de esfuerzo. Entonces es cuando un Sistema de Gestión de Contenidos entra en escena. Tareas principales de un CMS: 1. Hace que sea más fácil obtener un sitio Web en funcionamiento una vez que se haya diseñado exactamente lo que se adapta mejor a los visitantes del sitio. 2. Promueve las buenas prácticas del sitio Web. 3. Les permite a los miembros no técnicos del sitio hacer las actualizaciones fácilmente. Todo esto puede hacerse sin un gestor de contenidos, así como es posible mantenerse en contacto con las personas sin utilizar el correo electrónico. Pero como el correo electrónico, un CMS puede hacer su vida mucho más fácil.. 10.
(19) Capitulo I: Los Sistemas de Manejo de Contenidos 1.3 CMS comerciales y de código abierto. Se puede hacer una primera división de los CMS según el tipo de licencia escogido. Por una parte están los CMS comercializados por empresas que consideran el código fuente un activo más que tienen que mantener en propiedad, y que no permiten que terceros tengan acceso. Por la otra tenemos los de código fuente abierto, desarrollados por individuos, grupos o empresas que permiten el acceso libre y la modificación del código fuente. (Garcia, 2004) La disponibilidad del código fuente posibilita que se hagan personalizaciones del producto, correcciones de errores y desarrollo de nuevas funciones. Este hecho es una garantía de que el producto podrá evolucionar incluso después de la desaparición del grupo o empresa creadora. Algunas empresas también dan acceso al código, pero sólo con la adquisición de una licencia especial o después de su desaparición. Generalmente las modificaciones sólo pueden hacerlas los mismos desarrolladores, y siempre según sus prioridades. Los CMS de código abierto son mucho más flexibles en este sentido, pero se podría considerar que la herramienta comercial será más estable y coherente al estar desarrollada por un mismo grupo. En la práctica esta ventaja no es tan grande, ya que los CMS de código abierto también están coordinados por un único grupo o por empresas, de forma similar a los comerciales. Utilizar una herramienta de gestión de contenidos de código abierto tiene otra ventaja que hace decidirse a la mayoría de usuarios: su coste. Habitualmente todo el software de código abierto es de acceso libre, es decir, sin ningún coste en licencias. Sólo en casos aislados se hacen distinciones entre empresas y entidades sin ánimo de lucro o particulares. En comparación, los productos comerciales pueden llegar a tener un coste que sólo una gran empresa puede asumir. En cuanto al soporte, los CMS comerciales acostumbran a dar soporte profesional, con un coste elevado en muchos casos, mientras que los de código abierto se basan más en las comunidades de usuarios que comparten información y solución a los problemas. Las formas de soporte se pueden mezclar, y así encontramos CMS de código abierto con empresas que ofrecen servicios de valor añadido y con activas comunidades de usuarios. En el caso. 11.
(20) Capitulo I: Los Sistemas de Manejo de Contenidos comercial también sucede, pero el coste de las licencias hace que el gran público se decante por otras opciones y por lo tanto las comunidades de soporte son más pequeñas. Un problema que acostumbra a tener el software de código abierto es la documentación, generalmente escasa, dirigida a usuarios técnicos, o mal redactada. Este problema se agrava en el caso de los módulos desarrollados por terceros, que no siempre incorporan las instrucciones de su funcionamiento de forma completa y entendible. En el mercado hay CMS de calidad tanto comerciales como de código abierto. Muchos CMS de código abierto están poco elaborados (aunque en plena evolución), pero también lo encontramos entre los comerciales. En definitiva, un buen CMS de código abierto es mucho más económico que su homólogo comercial, con la ventaja de disponer de todo el código fuente y de una extensa comunidad de usuarios. Por todos estos motivos, y como apuesta por la filosofía del software libre, en este trabajo sólo se presentan algunos CMS de código abierto. 1.4 Historia de los CMS. A principios de los años noventa, el concepto de sistemas de gestión de contenidos era desconocido. Algunas de sus funciones se realizaban con aplicaciones independientes: editores de texto y de imágenes, bases de datos y programación a medida. Ya el año 1994 Illustrate Information Technology utilizaba una base de datos de objetos como repositorio de los contenidos de una Web, con el objetivo de poder reutilizar los objetos y ofrecía a los autores un entorno para la creación basado en patrones. La idea no cuajó entre el público y la parte de la empresa enfocada a la Web fue comprada por AOL, mientras que Informix adquirió la parte de bases de datos. (Robertson, 2003b) RedDot es una de las empresas pioneras que empezó el desarrollo de un gestor de contenidos el año 1994. No fue hasta a finales del año siguiente que presentaron su CMS basado en una base de datos. Entre los CMS de código abierto uno de los primeros fue Typo 3, que empezó su desarrollo el año 1997, en palabras de su autor, Kasper Skarhoj, "antes de que el término gestión de contenidos fuera conocido sobradamente".. 12.
(21) Capitulo I: Los Sistemas de Manejo de Contenidos PHPNuke, la herramienta que popularizó el uso de estos sistemas para las comunidades de usuarios en Internet, se empezó a desarrollar el año 2000. La primera versión supuso tres semanas de trabajo al creador, rescribiendo el código de otra herramienta, Thatware. 1.5 Presente y futuro de los CMS. En la actualidad, aparte de la ampliación de las funcionalidades de los CMS, uno de los campos más interesantes es la incorporación de estándares que mejoran la compatibilidad de componentes, facilitan el aprendizaje al cambiar de sistema y aportan calidad y estabilidad. Algunos de estos estándares son CSS, que permite la creación de hojas de estilo; XML, un lenguaje de marcas que permite estructurar un documento; XHTML, que es un subconjunto del anterior orientado a la presentación de documentos vía Web; WAI, que asegura la accesibilidad del sistema; y RSS, para sindicar contenidos de tipo noticia. También las aplicaciones que rodean los CMS acostumbran a ser estándar (de facto), como los servidores Web Apache e ISS; los lenguajes PHP, Perl y Python; y las bases de datos MySQL y PostgreSQL. La disponibilidad para los principales sistemas operativos de estas aplicaciones y módulos, permite que los CMS puedan funcionar en diversas plataformas sin muchas modificaciones. (Robertson, 2003b) 1.6 Los CMS en el e-learning. El e-learning tiene unas necesidades específicas que un CMS general no siempre cubre, o si lo hace, no da las mismas facilidades que una herramienta creada específicamente por esta función. En general, los sistemas de gestión del aprendizaje (Learning Management Systems o LMS) facilitan la interacción entre los profesores y los estudiantes, aportan herramientas para la gestión de contenidos académicos y permiten el seguimiento y la valoración de los estudiantes. Es decir, facilitan una translación del modelo real en el mundo virtual. Un buen ejemplo de sistema de gestión de cursos es Moodle <http://www.moodle.org>, uno de los más conocidos con licencia de código abierto. Sus características pueden servir para concretar algunas de las funcionalidades que se esperan de este tipo de herramientas:. 13.
(22) Capitulo I: Los Sistemas de Manejo de Contenidos •. Administración de profesores y alumnos.. •. Aulas virtuales que contienen toda la información de un curso y permiten la comunicación con foros o con chats.. •. Creación, mantenimiento y publicación del material de un curso, con soporte de diferentes formatos, incluidos audio y vídeo.. •. Talleres virtuales.. •. Exámenes y tests con valoraciones.. •. Trabajos con fecha de límite de entrega y aviso al profesor en caso de incumplimiento.. •. Seguimiento estadístico de las acciones del estudiante.. Estos sistemas son diferentes a los CMS, tanto por el objetivo como por las características, pero actualmente empiezan a incluir capacidades de los sistemas de gestión de contenidos. Con la integración de las dos herramientas nace un nuevo concepto, los LCMS (Learning Content Management Systems o sistemas de gestión de contenidos para el aprendizaje). 1.7 Criterios de selección. Antes de empezar el proceso de selección de un CMS concreto, hay que tener claros los objetivos de la Web, teniendo en cuenta al público destinatario, y estableciendo una serie de requerimientos que tendría que poder satisfacer el CMS. La siguiente lista está basada en las funciones principales de los CMS expuestas anteriormente, las indicaciones de Robertson, J. y una recopilación de los requerimientos básicos de una Web. (Robertson, 2002) •. Código abierto. Por los motivos mencionados anteriormente, el CMS tendría que ser de código fuente abierta (o libre).. •. Arquitectura técnica. Tiene que ser fiable y permitir la escalabilidad del sistema para adecuarse a futuras necesidades con módulos. También tiene que haber una separación de los conceptos de contenido, presentación y estructura que permita la. 14.
(23) Capitulo I: Los Sistemas de Manejo de Contenidos modificación de uno de ellos sin afectar a los otros. Es recomendable, pues, que se utilicen hojas de estilo (CSS) y patrones de páginas. •. Grado de desarrollo. Madurez de la aplicación y disponibilidad de módulos que le añaden funcionalidades.. •. Soporte. La herramienta tiene que tener soporte tanto por parte de los creadores como por otros desarrolladores. De esta manera se puede asegurar de que en el futuro habrá mejoras de la herramienta y que se podrá encontrar respuesta a los posibles problemas.. •. Posición en el mercado y opiniones. Una herramienta poco conocida puede ser muy buena, pero hay que asegurar de que tiene un cierto futuro. También son importantes las opiniones de los usuarios y de los expertos.. •. Facilidad de uso. La herramienta tiene que ser fácil de utilizar y aprender. Los usuarios no siempre serán técnicos, por lo tanto hace falta asegurar que podrán utilizar la herramienta sin muchos esfuerzos y sacarle el máximo rendimiento.. •. Accesibilidad. Para asegurar la accesibilidad de una Web, el CMS tendría que cumplir un estándar de accesibilidad. El más extendido es WAI (Web Accessibility Initiative) del World Wide Web Consortium.. •. Velocidad de descarga. Teniendo en cuenta que no todos los usuarios disponen de líneas de alta velocidad, las páginas se tendrían que cargar rápidamente o dar la opción.. •. Funcionalidades. No se espera que todas las herramientas ofrezcan todas las funcionalidades, ni que éstas sean las únicas que tendrá finalmente la Web. Entre otras: o Editor de texto WYSIWYG a través del navegador. o Herramienta de búsqueda. o Comunicación entre los usuarios (foros, correo electrónico, chat). o Noticias.. 15.
(24) Capitulo I: Los Sistemas de Manejo de Contenidos o Artículos. o Ciclo de trabajo (workflow) con diferentes perfiles de usuarios y grupos de trabajo. o Fechas de publicación y caducidad. o Webs personales. o Carga y descarga de documentos y material multimedia. o Avisos de actualización de páginas o mensajes en los foros, y envío automático de avisos por correo electrónico. o Envío de páginas por correo electrónico. o Páginas en versión imprimible. o Personalización según el usuario. o Disponibilidad o posibilidad de traducción al catalán y al castellano. o Soporte de múltiples formados (HTML, Word, Excel, Acrobat, etc.). o Soporte de múltiples navegadores (Internet Explorer, Netscape, etc.). o Soporte de sindicación (RSS, NewsML, etc.). o Estadísticas de uso e informes. o Control de páginas caducadas y enlaces rotos. 1.8 ¿Qué tipos de sitios Web podemos crear con un CMS? Como muchos piensan no solo blogs podemos crear con un generador de contenidos, su potencial va mucho más allá que las famosas bitácoras personales: •. Foros: sitios que permiten la discusión en línea donde los usuarios pueden reunirse y discutir diferentes temas en los que están interesados.. •. Blogs: Publicación de noticias o artículos en orden cronológico con espacios para comentarios y discusión. Ejemplo: revistas digitales.. 16.
(25) Capitulo I: Los Sistemas de Manejo de Contenidos •. Wikis: Sitio Web donde todos los usuarios pueden colaborar en los artículos. También permite espacio para discusiones. Indicado para material que irá evolucionando con el tiempo.. •. eCommerce: Sitio Web para comercio electrónico.. •. Sitios Web: Sitio Web con contenido y funcionalidad diversa que sirve como fuente de información o como soporte a una comunidad.. •. Galerías: Permite administrar y generar automáticamente un portal o sitio Web que muestra contenido audiovisual, normalmente imágenes.. 1.9 Joomla, Drupal y Plone, CMS de código abierto. Tres particulares herramientas han sido sin fines de lucro las que dominan el debate de los CMS de código abierto en los últimos años: Joomla, Drupal, y Plone. Estas tres herramientas proporcionan solidez y funcionalidad útil para la construcción y el mantenimiento de un sitio Web. ¿Cuál es la mejor? ¿Cuál deberíamos usar? Arribaremos a una conclusión buscando cuidadosamente información sobre los CMS Joomla, Drupal y Plone y analizando sus fortalezas y debilidades. 1.9.1 Características principales comunes. Estas herramientas tienen quizás más similitudes que diferencias. Todos son útiles y sofisticados sistemas manejadores de contenidos que facilitan las tareas de edición de contenido y la navegación de los visitantes del sitio. Ellos pueden: •. Ayudar a establecer una estructura y un sistema de navegación útil del sitio.. •. Permitir que los editores de contenido sin experiencias técnicas actualicen el contenido, adicionen páginas nuevas o cambien los elementos del menú de navegación.. •. Soportar una completa configuración grafica del diseño.. •. Facilitar el trabajo interno compartido permitiendo que algunos miembros puedan interactuar con solo un conjunto de tareas y otros miembros con otras tareas.. 17.
(26) Capitulo I: Los Sistemas de Manejo de Contenidos •. Automáticamente tomará los elementos de contenido apropiado para mostrar los visitantes del sitio sobre la base de normas. Ejemplo: su página principal puede mostrar de forma automática sólo las cuatro noticias más recientes o los acontecimientos más próximos a las próximas cuatro semanas.. •. Proporcionar sitios accesibles, optimización de motores de búsqueda y URL legibles.. •. Oferta lotes de plug-ins para apoyar una amplia gama de necesidades comunes.. •. Proporcionar un integrado aprovechamiento de las funciones que no son esenciales de un CMS, como los boletines por correo electrónico.. •. Permitir de ser necesario que un buen programador pueda modificar el sitio Web y el CMS para lograr exactamente los resultados deseados.. •. Responder preguntas, proporcionar actualizaciones, y el suministro de los módulos a través de una fuerte comunidad de usuarios y desarrolladores.. Pero hay duda de las diferencias entre las herramientas. Vamos a ahondar en cada CMS con más detalle. 1.9.2 Joomla Joomla lucha por el poder en la simplicidad. Cualquier persona con un poco de conocimientos técnicos no debería tener problema con la creación y el mantenimiento de un sitio Web. Es una herramienta que es amigable, comparativamente fácil para empezar, y da prioridad a la facilidad de uso. Joomla está diseñado para funcionar correctamente en entornos básicos de alojamiento compartido. El instalador se parece mucho al simple instalador común utilizado por el software de escritorio, y la interfaz administrativa de los editores de contenido usa una vista como un programa de escritorio también. Hay pocos obstáculos para iniciarse con Joomla, lo que significa que no debería tomarle mucho tiempo a desarrolladores Web obtenerlo, instalarlo y ponerlo en marcha por si solos, con un mínimo esfuerzo y conocimientos técnicos. Joomla dispone de amplias y poderosas herramientas para editores de contenido o desarrolladores para crear sitios Web sin tener que ahondar en el código. 18.
(27) Capitulo I: Los Sistemas de Manejo de Contenidos Si se necesita ampliar Joomla de una manera no cubierta por sus extensiones predeterminadas, se puede buscar otras extensiones bien organizadas y documentadas en el sitio extensions.joomla.org o pueden desarrollarse, ya que son relativamente sencillas de implementar y existe una excelente documentación de las APIs de Joomla. Actualmente los programadores han publicado Joomla 1.5 Stable bajo un código completamente reescrito y construido bajo PHP 5, con el fin de facilitarle el trabajo a los programadores para extender la funcionalidad y la organización de determinados marcos subyacente, pero no se ha cambiado la forma en que interactúan con los editores de contenido Joomla para que los visitantes del sitio sientan que nada ha cambiado. La versión 1.5 de Joomla incorpora notables mejoras en el área de seguridad, administración y cumplimiento con estándares W3C. Esta nueva versión incluye novedades en la elaboración de componentes, entre ellas la posibilidad de incorporar un patrón de diseño MVC (Modelo Vista Controlador). Joomla está completamente integrado con CiviCRM y se integra bien con paquetes, como DemocracyInAction común y GetActive. (Bonfield, 2007) 1.9.3 Drupal Drupal camina sobre la línea entre el poder y la facilidad de empezar. Al igual que Joomla, se construye en PHP, puede ser acogido en un entorno de alojamiento básico compartido, y proporciona una serie de herramientas que permiten al personal no técnico configurar un sitio Web. También, como Joomla, es bastante fácil para empezar si se es técnicamente experto. Es probable que no sea tan fácil obtener un simple sitio establecido usando Drupal como lo es usando Jooma, pero un experimentado desarrollador Web no debería tener muchos problemas con cualquiera de las dos. En general, Drupal requiere de una mayor curva de aprendizaje que Joomla. Drupal como Joomla, dispone de amplias y poderosas herramientas para editores de contenido o desarrolladores para crear sitios Web sin tener que ahondar en el código. Además su flujo de trabajo nativo hace la vida más fácil para los editores de contenidos que requieren múltiples niveles de los procesos de aprobación.. 19.
(28) Capitulo I: Los Sistemas de Manejo de Contenidos El CivicSpace distribución de Drupal ofrece un conjunto de organizaciones sin fines de lucro de complementos específicos que se ocupan de una serie de requisitos comunes. Este proyecto tiene la ventaja de la plena integración de Drupal con CiviCRM. (Bonfield, 2007) 1.9.4 Plone Plone es el producto de una cuidadosa y bien planificada programación. Proporciona una poderosa y madura plataforma, combinada con una fuerte facilidad de uso para los editores de contenido, responsables del mantenimiento de los sitios en el día a día. Sin embargo, la curva de aprendizaje para los desarrolladores Web, responsable de la creación de un sitio, es importante, y presenta requisitos especiales de alojamiento. Plone puede ser una gran opción para satisfacer las necesidades de sofisticados sitios Web, pero puede que no sea el mejor para alguien sin experiencia que busca crear rápidamente un sitio sencillo. Plone rara vez es utilizado por los desarrolladores Web aficionado porque sus barreras para iniciarse son más altos que para Joomla o Drupal: •. La curva de aprendizaje para la comprensión de cómo crear y adaptar un nuevo sitio es más pronunciado que con otras herramientas. La configuración se realiza en una serie de diferentes capas del sistema, que requiere de una buena comprensión de la estructura de Plone, a fin de configurar la base del sitio, aunque la documentación, libros y cursos de formación se encuentran ampliamente disponibles.. •. Está escrito en Python, que es un poderoso lenguaje de programación, pero menos usado en la programación Web como lo es PHP. Aunque muchos programadores altamente calificados prefieren Python, es probable que sea más difícil encontrar un programador de Python para ampliar Plone que un programador de PHP para ampliar Drupal o Joomla.. Lo que esto se reduce a que, a menos que se contrate a alguien con experiencia en Plone, probablemente se tendrá que gastar más tiempo y dinero que con los otros dos CMS. La comunidad de desarrolladores de software de Plone hace especial hincapié en la calidad y fiabilidad. (Bonfield, 2007). 20.
(29) Capitulo I: Los Sistemas de Manejo de Contenidos La inversión, en particular la curva de aprendizaje, es importante, pero el resultado es una potente y flexible plataforma sobre la que se pueden construir sitios Web de clase mundial. 1.9.5 En resumen ¿Cuál es la mejor herramienta? Eso depende de las circunstancias, el problema no es cual es la mejor si no cual es la que realmente se adapta a las necesidades. Si necesita algo de gran alcance y probado, y están dispuestos a comprometer los recursos para hacer que suceda, Plone es probable que se ajusten a sus necesidades. ¿Quieres una herramienta que brinde al grupo de desarrolladores una sencilla configuración y a la vez un marcado poder para el desarrollo del sistema? Ahí es donde sobresale Joomla y Drupal, donde Joomla es cada vez más potente. Plone es aprender de Drupal y Joomla, y estos a su vez son cada vez más fáciles de utilizar y más potentes con cada versión. No cabe duda de que estas tres herramientas están listas para el gran momento. Estos tres proyectos tienen un conjunto de características y madurez, todas proporcionan una base fiable para la construcción de útiles, atractivos y seguros sitios Web. Cualquiera de los tres CMS, facilitan la posibilidad de publicar imágenes, mantener un diseño limpio y coherente en todas las páginas del sitio y la actualización del texto del sitio Web cuando sea necesario. (Bonfield, 2007) 1.10 Lenguaje de programación PHP. 1.10.1 ¿Qué es PHP? PHP (acrónimo recursivo de "PHP: Hypertext Preprocessor", originado inicialmente del nombre PHP Tools, o Personal Home Page Tools) es un lenguaje de programación implantado (enraizado) en HTML. La mayoría de sus sintaxis están prestadas de los lenguajes de programación C, Java y Perl, con la inclusión de algunos rasgos únicos de PHP. La meta del lenguaje es permitir a los desarrolladores de sitios Web escribir rápidamente páginas dinámicas. Es un lenguaje de programación interpretado. Aunque fue concebido en el tercer trimestre de 1994 por Rasmus Lerdorf no fue hasta el día 8 de Junio de 1995 que fue lanzada la versión 1.0. Se utiliza entre otras cosas para la programación de páginas Web. 21.
(30) Capitulo I: Los Sistemas de Manejo de Contenidos activas, y se destaca por su capacidad de mezclarse con el código HTML. Aunque su creación y desarrollo se da en el ámbito de los sistemas libres, bajo la licencia GNU, existe además un compilador comercial denominado (Zend Optimizer). El uso más extendido del lenguaje PHP, es el de formar parte de una página Web con el propósito de agregarle características dinámicas. Su interpretación y ejecución se da en el servidor en el cual se encuentra almacenada la página y el cliente solo recibe el resultado de la ejecución. Cuando el cliente hace una petición al servidor para que le envíe una página Web, enriquecida con código PHP, el servidor interpretará las instrucciones mezcladas en el cuerpo de la página y las sustituirá con el resultado de la ejecución antes de enviar el resultado a la computadora del cliente. Además es posible utilizarlo para generar archivos PDF, Flash o JPG, entre otros. (Wikipedia®, 2008b) 1.10.2 Usos de PHP. Los principales usos del PHP son los siguientes: 1). Programación de páginas Web dinámicas, habitualmente en combinación con el motor de base datos MySQL, aunque cuenta con soporte nativo para otros motores, incluyendo la norma ODBC, lo que amplia en gran medida sus posibilidades de conexión. 2). Programación en consola, al estilo de Perl, en Linux, Windows y Macintosh. 3). Creación de aplicaciones gráficas independientes del navegador, por medio de la combinación de PHP y GTK (Gimp Tool Kit), que permite desarrollar aplicaciones de escritorio tanto para los sistemas operativos basados en Unix, como para Windows y Mac OS. (Wikipedia®, 2008b) 1.10.3 ¿Por qué usar PHP y no otro lenguaje de programación? Ventajas de PHP: 1). PHP corre en (casi) cualquier plataforma utilizando el mismo código fuente, pudiendo ser compilado y ejecutado en algo así como 25 plataformas, incluyendo diferentes versiones de Unix, Windows (95,98,NT,ME,2000,XP) y Macs. Como en todos los sistemas se utiliza el mismo código base, los scripts pueden ser ejecutados de manera independiente al OS. (CGsite, 2008). 22.
(31) Capitulo I: Los Sistemas de Manejo de Contenidos 2). La sintaxis de PHP es similar a la del C, por esto cualquier desarrollador con experiencia en lenguajes del estilo C podrá entender rápidamente PHP. Entre los lenguajes del tipo C incluimos al Java y Javascript, de hecho mucha de la funcionalidad del PHP se la debe al C en funciones como fread() o srtlen(), así que muchos programadores se sentirán como en casa. 3). Muchas interfaces distintas para cada tipo de servidor. PHP actualmente se puede ejecutar bajo Apache, IIS, AOLServer, Roxen yTHTTPD. Otra alternativa es configurarlo como módulo CGI. 4). Puede interactuar con muchos motores de bases de datos tales como MySQL, MS SQL, Oracle, Informix, PostgreSQL, y otros muchos. Siempre podrás disponer de ODBC para situaciones que lo requieran. 5). Una gran variedad de módulos. Cuando un programador PHP necesite una interfase para una librería en particular, fácilmente podrá crear una API para esta. Algunas de las que ya vienen implementadas permiten manejo de gráficos, archivos PDF, Flash, Cybercash, calendarios, XML, IMAP, POP, etc. 6). Rapidez. PHP generalmente es utilizado como módulo de Apache, lo que hace que sea extremadamente veloz. Esta completamente escrito en C, así que se ejecuta rápidamente utilizando poca memoria. (CGsite, 2008) 1.10.4 Desventajas de PHP: En años anteriores se hablaba mucho de que una de las desventajas de PHP era su pobre y casi nula Objeto Orientación, sin embargo esto ha cambiado desde que se lanzó PHP5. Este ya es Orientado a Objetos. Por lo que esta ya no es ninguna desventaja de PHP frente a otros lenguajes de script.. 23.
(32) Capitulo I: Los Sistemas de Manejo de Contenidos 1.10.5 Seguridad en PHP. PHP es un poderoso lenguaje e intérprete, ya sea incluido como parte de un servidor Web en forma de módulo o ejecutado como un binario CGI separado, es capaz de acceder a archivos, ejecutar comandos y abrir conexiones de red en el servidor. Estas propiedades hacen que cualquier cosa que sea ejecutada en un servidor Web sea insegura por naturaleza. PHP está diseñado específicamente para ser un lenguaje más seguro para escribir programas CGI que Perl o C, y con la selección correcta de opciones de configuración en tiempos de compilación y ejecución, y siguiendo algunas prácticas correctas de programación, PHP le puede dar la combinación precisa de libertad y seguridad que usted necesita. Ya que hay muchas maneras de utilizar PHP, existen varias opciones de configuración diseñadas para controlar su comportamiento. Un amplio rango de opciones le garantizan que pueda usar PHP para muchos propósitos distintos, pero también quiere decir que hay combinaciones de éstas opciones y configuraciones de servidor que pueden resultar en un entorno inseguro. El nivel de flexibilidad en la configuración de PHP se compara quizás solo con su flexibilidad de desarrollo. PHP puede ser usado para escribir aplicaciones completas de servidor, con todo el poder de un usuario de un intérprete de comandos, o puede ser usado para inclusiones simples del lado del servidor con muy poco riesgo en un entorno minuciosamente controlado. Cómo construir ese entorno, y qué tan seguro es, básicamente depende del desarrollador PHP. PHP divide la seguridad en varios temas, Instalación como un binario CGI, Instalación como módulo de Apache, Seguridad del sistema de archivos, Seguridad de Bases de Datos, Reporte de Errores, Uso de Register Globals, Datos Enviados por el Usuario, Magic Quotes, Ocultando PHP, los cuales explica detalladamente en todos sus manuales y en el sito oficial de PHP <www.php.net>. 1.11 MySQL. MySQL es uno de los gestores de bases de datos más populares desarrolladas bajo la filosofía de código abierto. La desarrolla y mantiene la empresa “MySql AB” pero puede utilizarse gratuitamente y su código fuente está disponible. (Wikipedia®, 2008a). 24.
(33) Capitulo I: Los Sistemas de Manejo de Contenidos 1.11.1 Características (versión 4.0 en adelante) Inicialmente, MySQL carecía de elementos considerados esenciales en las bases de datos relacionales, tales como integridad referencial y transacciones. A pesar de ello, atrajo a los desarrolladores de páginas Web con contenido dinámico, justamente por su simplicidad; aquellos elementos faltantes fueron llenados por la vía de las aplicaciones que la utilizan. Poco a poco los elementos faltantes en MySQL están siendo incorporados tanto por desarrollos internos, como por desarrolladores de software libre. Entre las características disponibles en las últimas versiones se puede destacar: •. Amplio subconjunto del lenguaje SQL. Algunas extensiones son incluidas igualmente.. •. Disponibilidad en gran cantidad de plataformas y sistemas.. •. Diferentes opciones de almacenamiento según si se desea velocidad en las operaciones o el mayor número de operaciones disponibles.. •. Transacciones y claves foráneas.. •. Conectividad segura.. •. Replicación.. •. Búsqueda e indexación de campos de texto.. 1.11.2 MySQL en cifras Según las cifras del fabricante, existirían más de seis millones de copias de MySQL funcionando en la actualidad, lo que supera la base instalada de cualquier otra herramienta de bases de datos. El tráfico del sitio Web de “MySQL AB” supera en el 2004 el tráfico del sitio de IBM. (Wikipedia®, 2008a) 1.11.3 ¿Qué licencia utilizar? La licencia GPL de MySQL obliga a distribuir cualquier producto derivado (aplicación) bajo esa misma licencia. Si un desarrollador desea incorporar MySQL en su producto pero no desea distribuirlo bajo licencia GPL, puede adquirir la licencia comercial de MySQL que le permite hacer justamente eso. 25.
(34) Capitulo I: Los Sistemas de Manejo de Contenidos 1.11.4 Ventajas y desventajas. Ventajas de MySQL: 1). Mayor rendimiento. 2). Mayor velocidad tanto al conectar con el servidor como al servir consultas y demás funciones. 3). Mejores utilidades de administración (backup, recuperación de errores, etc.). 4). Aunque se cuelgue, no suele perder información ni corromper los datos. 5). Mejor integración con PHP. 6). No hay límites en el tamaño de los registros. 7). Mejor control de acceso, es decir, qué usuarios tienen acceso a que tablas y con qué permisos. 8). MySQL se comporta mejor que otros motores de BD a la hora de modificar ó añadir campos a una tabla. 1.11.5 ¿Por qué MySQL? 1). MySQL es un servidor de bases de datos muy rápido, seguro y fácil de usar. 2). Fue desarrollado originalmente para manejar grandes bases de datos mucho más rápido que las soluciones existentes. Aunque se encuentra en constante desarrollo, ofrece actualmente un conjunto muy rico y útil de funciones. 3). Su conectividad, velocidad, y seguridad lo hacen un servidor especialmente apropiado para bases de datos y aplicaciones de Internet. 4). MySQL puede ser integrada tanto al ambiente de Windows como Linux permitiendo la migración y creación de aplicaciones para ambos sistemas operativos. 1.12 Conclusiones parciales Entre muchos y excelentes CMS decidimos que Joomla es el más apropiado para este trabajo por las siguientes razones: su seguridad y estabilidad, su sencillez a la hora de instalar y configurar el sistema, por la cantidad de componentes y extensiones que podemos encontrar. 26.
(35) Capitulo I: Los Sistemas de Manejo de Contenidos para aumentar su potencialidad y funcionalidad, por contar con el patrón de diseño MVC, que facilita aún más el desarrollo de nuevas extensiones, por estar desarrollado en MySQL y PHP, gestor de base de dato y lenguaje de programación más usados en el desarrollo de aplicaciones Web respectivamente; este último cuenta con una menor curva de aprendizaje con relación a otros lenguajes como Python. Además Joomla tiene una gigantesca comunidad de programadores en el mundo que trabajan en pro de mejorarlo y solucionar todas sus fallas, por lo que a medida que pasan los días este sistema va creciendo exponencialmente haciendo que quienes trabajemos con él estemos asombrados de sus posibilidades y de su desempeño.. 27.
(36) Capitulo II: Diseño y desarrollo del portal Web Capítulo 2: Diseño y desarrollo del portal Web. En este capítulo se describen los elementos correspondientes a las etapas de análisis, diseño e implementación del sistema. Entre la información que se relaciona de las dos primeras etapas, se encuentra el diagrama de navegación, los usuarios y sus privilegios, arquitectura del sistema, actores y casos de uso del sistema y el diseño de la interfaz del portal Web. En la etapa de implementación serán comentadas las funcionalidades que fueron implementadas, modificadas e instaladas al sistema. 2.1 Etapa de análisis y diseño del sistema El análisis y diseño de sistemas es una guía que permite estructurar el proceso de desarrollo de proyectos de software. Se trata básicamente de determinar los objetivos y límites del sistema objeto de análisis, caracterizar su estructura y funcionamiento, marcar las directrices que permitan alcanzar los objetivos propuestos y evaluar sus consecuencias. Se puede afirmar que estas etapas son las más importantes en el desarrollo de un proyecto ya que forman la base para la implementación y sirve de guía para mejoras posteriores. 2.1.1 Requisitos funcionales El portal requiere de: • Un desarrollo sobre la base del software libre. • Una organización de los contenidos matemáticos estructurada por núcleos temáticos. • Una gestión de los contenidos dinámica desde el sitio frontal del portal, por aquellos usuarios que cuenten con los privilegios necesarios para realizar dicha tarea. • Editor de ecuaciones matemáticas, foro de discusión, glosario de términos, comentarios a los contenidos, módulo para la publicación y descarga de recursos, buscador. 2.1.2 Arquitectura del sistema El portal ha sido desarrollado sobre la base del Sistema Manejador de Contenidos de código abierto Joomla, de el cual hereda la arquitectura y toda funcionalidad, ver Capítulo 1:. Por. 28.
(37) Capitulo II: Diseño y desarrollo del portal Web tanto, cuando nos refiramos a la arquitectura del sistema estaremos refiriéndonos a la arquitectura del CMS Joomla en cuestión. 2.1.2.1 ELEMENTOS BÁSICOS DEL SISTEMA Fuera del núcleo del sistema se hace un gran trabajo de gestión para cubrir las necesidades de contenido que permitan hacer los sitios más personalizables; este trabajo es nombrado como Extensiones. Una extensión se usa para agregar una capacitación al sistema que, por defecto y en su código base, no están disponibles. Este sistema cuenta con cinco tipos de extensiones: •. Componentes. •. Módulos. •. Plantillas. •. Plugins. •. Idiomas. Componentes Un componente es el más largo y complejo de los tipos de extensión que hay. Los componentes, son como mini-aplicaciones que renderizan el cuerpo principal de la página. Un componente puede manejar datos, mostrar configuraciones, proveer funciones, y en general puede llevar a cabo cualquier operación no contemplada por las funciones generales del código del núcleo. Los componentes trabajan mano a mano con módulos y plugins para proveer de una rica variedad en la funcionalidad y modo de mostrar las cosas. Ellos hacen posible que se pueda transformar completamente el sistema expandiendo ampliamente su capacitación y flexibilidad. (Aguirre, 2008a) Módulos Una más ligera y flexible extensión usada para la renderización de páginas son los módulos. Los módulos se usan para pequeñas partes de la página y generalmente son menos complejos y capaces de verse a través de los distintos componentes. 29.
(38) Capitulo II: Diseño y desarrollo del portal Web Los módulos son como mini-utilidades que pueden ubicarse en cualquier lugar del sitio. Los módulos a veces funcionan en conjunción con algún componente y otras veces son independientes. Los módulos se pueden asignar a una posición de módulo la cual haya sido definida en la plantilla y también dentro de la administración, usando el gestor de módulos y de posiciones disponibles. Por ejemplo, 'left' y 'right' son posiciones comunes para presentaciones a tres columnas. (Aguirre, 2008b) Plantillas Definen la disposición, apariencia y estilo del espacio web. Bien en la parte visible (Frontend, plantillas del sitio (Site Templates)); o en la parte administrativa (Back-end, plantillas de la Administración (Admin/Administrator Templates)). (Aguirre, 2008c) Plugins Una de las extensiones más avanzadas para el sistema es el Plugin. Un plugin es una sección de código que corre cuando ocurre algún evento predefinido dentro del sistema. Por ejemplo, los editores son plugins que se ejecutan cuando sucede un evento onGetEditorArea. Usar un plugin permite al desarrollador decidir la manera en que su código se comporta dependiendo de los plugins que haya instalados para reaccionar a los eventos. (David, 2008b) Idiomas El intentar incluir todos los idiomas disponibles podría hacer al paquete inmanejable a efectos del peso que alcanzaría para subirlo a un servidor. Los archivos del idioma habilitan todas las interfaces de usuario tanto para el Front-End como para el Back-End de manera predeterminada en nuestro idioma local preferido. 2. 2. Los paquetes no tienen ningún impacto sobre el contenido actual, como pueden ser los artículos.. 30.
Documento similar
2.- Aunque, para elaborar un comentario completo, debemos formular varias preguntas, en los ejercicios pedagógicos es preferible que reduzcamos, sobre todo al principio,
Cedulario se inicia a mediados del siglo XVIL, por sus propias cédulas puede advertirse que no estaba totalmente conquistada la Nueva Gali- cia, ya que a fines del siglo xvn y en
No había pasado un día desde mi solemne entrada cuando, para que el recuerdo me sirviera de advertencia, alguien se encargó de decirme que sobre aquellas losas habían rodado
Abstract: This paper reviews the dialogue and controversies between the paratexts of a corpus of collections of short novels –and romances– publi- shed from 1624 to 1637:
Habiendo organizado un movimiento revolucionario en Valencia a principios de 1929 y persistido en las reuniones conspirativo-constitucionalistas desde entonces —cierto que a aquellas
La campaña ha consistido en la revisión del etiquetado e instrucciones de uso de todos los ter- mómetros digitales comunicados, así como de la documentación técnica adicional de
You may wish to take a note of your Organisation ID, which, in addition to the organisation name, can be used to search for an organisation you will need to affiliate with when you
Where possible, the EU IG and more specifically the data fields and associated business rules present in Chapter 2 –Data elements for the electronic submission of information