• No se han encontrado resultados

SISTEMA DE GESTIÓN DE CONTENIDOS XML

N/A
N/A
Protected

Academic year: 2021

Share "SISTEMA DE GESTIÓN DE CONTENIDOS XML"

Copied!
128
0
0

Texto completo

(1)

USBC`S™ÿ * ôß sé Antonio Echeverría”

Facultad de Ingeniería Industrial

Centro de Estudios de Ingeniería y Sistemas

“SISTEMA DE GESTIÓN DE CONTENIDOS XML”

Trabajo de Diploma para optar por el título de Ingeniería en Informática

Autores:

Lianet

Luaces

Torres

Ayleen

Menéndez

Senarega

Tutores:

Ing. Yanet Bellón Landa

Ing. Renier Valdés González

Ciudad de La Habana Junio de 2006

(2)

Resumen

RESUMEN

En la actualidad en la Empresa de Tecnologías de la Información y Servicios Telemáticos Avanzados (CITMATEL) el manejo de los contenidos se realiza de manera ineficiente. Para resolver este problema se han aprovechado las ventajas que brinda la tecnología XML para la gestión de contenidos, teniendo como objetivo: diseñar e implementar un “Sistema de Gestión de Contenidos XML” que sirva de núcleo para el manejo de estos en el conjunto de servicios de información de CITMATEL. El sistema propuesto será portable y genérico, de modo que servirá a los diferentes proyectos que se desarrollen en CITMATEL.

El presente trabajo constituye la documentación del sistema y resulta de gran importancia para su comprensión y futuro mantenimiento. En él se realiza un análisis crítico de los conceptos principales asociados al dominio del problema, se plantean los objetivos y se compara con los sistemas automatizados existentes vinculados al campo de acción. Para justificar la selección de las herramientas de trabajo se analizan las tecnologías actuales. La solución propuesta se describe a través del modelo del dominio y para representar cómo se construye, se emplean los mecanismos definidos por UML para aplicaciones Web. Se definen las pautas para el diseño de la interfaz y se presenta un estudio de factibilidad del sistema.

(3)

ÍNDICE

INTRODUCCIÓN ...1

CAPÍTULO I. Fundamentación teórica...6

Introducción ...6

1.1- Objeto de estudio...6

1.1.1- Descripción general ...6

1.1.2- Situación problémica y problema a resolver ...8

1.2- Procesos objeto de automatización ...9

1.3- Conceptos principales asociados al dominio del problema ...9

1.3.1- Antecedentes históricos de XML...9 1.3.2- Documentos XML...11 1.3.2.1- Elementos...12 1.3.2.2- Atributos ...12 1.3.2.3- Comentarios ...13 1.3.3- Comparación entre XML y HTML...13

1.3.4- DTD (Definición de Tipos de Documento)...14

1.3.5- El modelo de objetos de documentos DOM ...16

1.3.6- XSL (Extended Style Language) ...16

1.3.7- XML Schemas...17

1.3.8- Aplicaciones y ventajas del XML...17

1.4- Sistemas automatizados existentes vinculados al campo de acción. Análisis comparativo con la solución propuesta...18

1.5- Objetivos...22

Conclusiones ...22

CAPÍTULO II. Tendencias y Tecnologías Actuales...24

Introducción ...24

2.1- Fundamentación de la metodología utilizada ...24

2.1.1- Unified Modeling Language (UML)...24

(4)

Índice

2.1.3- Rational Rose Enterprise Edition ...27

2.2- Fundamentación de las herramientas de desarrollo seleccionadas ...28

2.2.1- Tecnologías del lado del Servidor ...28

2.2.1.1- Java ...28

2.2.1.2- ASP (Active Server Pages)...28

2.2.1.3- Asp.NET ...29

2.2.1.4- PHP (Professional Home Pages) ...30

2.2.2- Tecnologías del lado del cliente ...30

2.2.2.1- HTML (Hyper Text Markup Language) ...31

2.2.2.2- XHTML (eXtensible Hyper Text Markup Language) ...31

2.2.2.3- Cascading Style Sheets (CSS)...31

2.2.2.4- JavaScript...32

2.3- Gestores de Bases de Datos...32

2.3.1- PostGreSQL...32 2.3.2- Oracle ...33 2.3.3- Microsoft SQL Server 2000 ...33 2.3.4- MySQL ...34 2.4- Servidores ...34 2.4.1- Servidores Web...35

2.4.1.1- Internet Information Server (IIS) ...35

2.4.1.2- Apache ...36

Conclusiones ...36

CAPÍTULO III. Descripción de la solución propuesta...38

Introducción ...38

3.1- ¿Por qué Modelo del Dominio? ...38

3.2- Glosario de términos del Dominio...39

3.3- Reglas del negocio ...40

3.4- Representación del Modelo del Dominio ...41

3.5- Requerimientos funcionales ...41

3.6- Requerimientos no funcionales ...43

(5)

3.8- Paquetes y sus relaciones...47

3.9- Diagrama de casos de uso del sistema ...47

3.9.1- Paquete Autenticación ...47

3.9.2- Paquete Gestión de Contenidos XML ...48

3.9.3- Paquete Administración ...48

3.10- Descripción de los casos de uso ...49

3.10.1- Paquete Autenticación ...49

3.10.2- Paquete Gestión de Contenidos XML ...50

3.10.3- Paquete Administración ...56

Conclusiones ...63

CAPÍTULO IV. Construcción de la solución propuesta...64

Introducción ...64

4.1- Diagrama de clases del diseño...64

4.1.1- Paquete Autenticación ...64

4.1.1.1- Caso de uso Autenticarse...64

4.1.2- Paquete Gestión de Contenidos ...65

4.1.2.1- Caso de uso Crear DTD ...65

4.1.2.2- Caso de uso Importar XML...66

4.1.2.3- Caso de uso Mostrar DOM gráficamente ...66

4.1.2.4- Caso de uso Publicar XML ...67

4.1.2.5- Caso de uso Validar XML ...68

4.1.3- Paquete Administración ...69

4.1.3.1- Caso de uso Administrar documentos XML...69

4.1.3.2- Caso de uso Administrar grupos ...72

4.1.3.3- Caso de uso Administrar módulos...75

4.1.3.4- Caso de uso Administrar opciones ...78

4.1.3.5- Caso de uso Administrar privilegios ...81

4.1.3.6- Caso de uso Administrar sitios de publicación ...84

4.1.3.7- Caso de uso Administrar usuarios...87

4.2- Principios de diseño...89

(6)

Índice

4.2.2- Formato de reportes...90

4.2.3- Concepción general de la ayuda...90

4.2.4- Estilo de código...91

4.2.5- Tratamiento de excepciones ...93

4.3- Diseño de la base de datos ...93

4.3.1- Modelo lógico de datos ...93

4.3.2- Modelo físico de datos ...94

4.4- Modelo de despliegue...94

4.4.1- Estructura de los nodos ...95

4.4.2- Modelo de capas...95

4.4.3- Diagrama de despliegue ...96

Conclusiones ...96

CAPÍTULO V. Estudio de Factibilidad...98

Introducción ...98

5.1- Planificación basada en casos de uso...98

5.2- Beneficios de la utilización del sistema...102

5.2.1- Beneficios tangibles ...102 5.2.2- Beneficios intangibles ...103 5.3- Análisis de costo-beneficio ...103 Conclusiones ...104 CONCLUSIONES ...105 RECOMENDACIONES ...106 REFERENCIAS BIBLIOGRÁFICAS ...107 BIBLIOGRAFÍA ...111 GLOSARIO DE TÉRMINOS ...113 ANEXOS ...117

(7)

ÍNDICE DE TABLAS

Tabla 1. Descripción de los actores del sistema. ...46

Tabla 2. Descripción del caso de uso Autenticarse...49

Tabla 3. Descripción del caso de uso Importar XML. ...50

Tabla 4. Descripción del caso de uso Mostrar DOM gráficamente...51

Tabla 5. Descripción del caso de uso Validar XML. ...53

Tabla 6. Descripción del caso de uso Crear DTD. ...54

Tabla 7. Descripción del caso de uso Publicar XML. ...55

Tabla 8. Descripción del caso de uso Administrar documentos XML...56

Tabla 9. Descripción del caso de uso Administrar usuarios. ...57

Tabla 10. Descripción del caso de uso Administrar grupos...58

Tabla 11. Descripción del caso de uso Administrar módulos. ...59

Tabla 12. Descripción del caso de uso Administrar opciones. ...60

Tabla 13. Descripción del caso de uso Administrar sitios de publicación...61

Tabla 14. Descripción del caso de uso Administrar privilegios...62

Tabla 15. Estructura de los nodos...95

Tabla 16. Factor de Peso de los Actores sin ajustar (UAW)...98

Tabla 17. Factor de Peso de los Casos de Uso sin ajustar (UUCW). ...99

Tabla 18. Factores técnicos (TCF). ...99

(8)

Índice de figuras

ÍNDICE DE FIGURAS

Figura 1. Conjuntos de SGML, XML y HTML ...10

Figura 2. Compartimiento de documentos entre dos aplicaciones. ...11

Figura 3. Fases, iteraciones y disciplinas. ...25

Figura 4. Servidor Web...35

Figura 5. Representación del Modelo del Dominio...41

Figura 6. Paquetes y sus relaciones. ...47

Figura 7. Diagrama de casos de uso. Paquete Autenticación. ...47

Figura 8. Diagrama de casos de uso. Paquete Gestión de Contenidos XML...48

Figura 9. Diagrama de casos de uso. Paquete Administración. ...48

Figura 10. Diagrama de clases del caso de uso Autenticarse...64

Figura 11. Diagrama de clases del caso de uso Crear DTD. ...65

Figura 12. Diagrama de clases del caso de uso Importar XML. ...66

Figura 13. Diagrama de clases del caso de uso Mostrar DOM gráficamente...66

Figura 14. Diagrama de clases del caso de uso Publicar XML. ...67

Figura 15. Diagrama de clases del caso de uso Validar XML. ...68

Figura 16. Diagrama de clases del caso de uso Administrar documentos XML (Insertar)...69

Figura 17. Diagrama de clases del caso de uso Administrar documentos XML (Modificar). ...70

Figura 18. Diagrama de clases del caso de uso Administrar documentos XML (Eliminar). ...71

Figura 19. Diagrama de clases del caso de uso Administrar grupos (Insertar). ...72

Figura 20. Diagrama de clases del caso de uso Administrar grupos (Modificar)...73

Figura 21. Diagrama de clases del caso de uso Administrar grupos (Eliminar). ...74

Figura 22. Diagrama de clases del caso de uso Administrar módulos (Insertar)...75

Figura 23. Diagrama de clases del caso de uso Administrar módulos (Modificar). ....76

Figura 24. Diagrama de clases del caso de uso Administrar módulos (Eliminar)...77

(9)

Figura 26. Diagrama de clases del caso de uso Administrar opciones (Modificar). ...79

Figura 27. Diagrama de clases del caso de uso Administrar opciones (Eliminar). ...80

Figura 28. Diagrama de clases del caso de uso Administrar privilegios (Insertar). ....81

Figura 29. Diagrama de clases del caso de uso Administrar privilegios (Modificar)...82

Figura 30. Diagrama de clases del caso de uso Administrar privilegios (Eliminar). ...83

Figura 31. Diagrama de clases del caso de uso Administrar sitios de publicación (Insertar)...84

Figura 32. Diagrama de clases del caso de uso Administrar sitios de publicación (Modificar). ...85

Figura 33. Diagrama de clases del caso de uso Administrar sitios de publicación (Eliminar). ...86

Figura 34. Diagrama de clases del caso de uso Administrar usuarios (Insertar)...87

Figura 35. Diagrama de clases del caso de uso Administrar usuarios (Modificar). ....88

Figura 36. Diagrama de clases del caso de uso Administrar usuarios (Eliminar)...89

Figura 37. Modelo lógico de datos. ...93

Figura 38. Modelo físico de datos. ...94

(10)

Introducción

INTRODUCCIÓN

La tecnología XML comienza a gestarse desde el año 1996, surgiendo como subconjunto simplificado de su padre SGML, eliminando las partes más engorrosas y menos útiles de este, cuyo problema fundamental consistía en su excesiva dificultad. XML, como su antecesor, proporciona un modo consistente y preciso de aplicar etiquetas para describir las partes que componen un documento y permite el intercambio de documentos entre diferentes plataformas.

De SGML también procede HTML, aunque siguiendo un enfoque muy distinto al de XML. HTML es un lenguaje de especificación de contenidos para un tipo específico de documentos SGML; es decir, mediante este se puede especificar, usando un conjunto de etiquetas, cómo va a representarse la información en un navegador.

XML ofrece mecanismos más versátiles de mostrar datos, representando documentos XML en los navegadores Web, de una forma más sofisticada que los documentos HTML, ya que XML no solo proporciona una sintaxis, sino también una semántica. Debido a que la información en los documentos XML está etiquetada por su significado de forma precisa, se puede localizar más claramente que en documentos HTML. La información contenida puede ser más rica y fácil de usar, porque las habilidades hipertextuales de XML son mayores que las de HTML. La información es más accesible y reutilizable, porque la flexibilidad de las etiquetas de XML pueden utilizarse sin tener que amoldarse a reglas específicas de un fabricante.

Debido a las ventajas que brinda la tecnología XML para el manejo de contenidos, ha tenido una gran aceptación a nivel mundial. Nuestro país también se ha visto inmerso en este giro tecnológico, y en particular la Empresa de Tecnologías de la Información y Servicios Telemáticos Avanzados, CITMATEL, que la está asimilando para mejorar los servicios que brinda. El manejo de los contenidos, utilizando esta tecnología, en los servicios de información de CITMATEL, constituye el campo de acción.

CITMATEL tiene la misión de satisfacer con soluciones integrales de alto valor agregado y profesionalidad, las necesidades de productos y servicios en Tecnologías

(11)

de la Información y las Comunicaciones (TIC) a clientes nacionales y foráneos, con ofertas de alta competitividad, como consecuencia de la aplicación de la ciencia e innovación tecnológica.

Su objeto social es desarrollar, implementar y comercializar productos y tecnologías de información de alto valor agregado, aplicando permanentemente la ciencia y la innovación tecnológica. Realiza investigaciones, actividades de desarrollo, innovación tecnológica e introducción de nuevas tecnologías. Participa en la Informatización de las entidades del Ministerio de Ciencia, Tecnología y Medio Ambiente.

Para la administración de los servicios que se encuentran en los distintos sitios Web de la empresa se utilizan contenidos de sitios Web externos, teniendo que delimitar, de las páginas HTML, las partes correspondientes a los contenidos que realmente se necesitan, siendo esta una tarea muy engorrosa, ya que HTML se centra en la representación en la pantalla de la información, es decir, están ligados los contenidos con su estructura física o presentación. Una vez determinado el contenido a utilizar resulta complejo adaptarlo a la estructura de presentación de contenidos de los servicios de información de CITMATEL.

Otra dificultad importante es el permanente acceso a los servidores de bases de datos para extraer los datos y mostrarlos de forma dinámica en las páginas. Todo esto trae consigo un alto consumo de tiempo y recursos.

Esta situación conlleva a plantear el siguiente problema:

No existe una aplicación única, portable y genérica, que sirva de núcleo para la gestión de contenidos entre los servicios de información de CITMATEL.

El Sistema de Gestión de Contenidos XML propuesto en este trabajo pretende dar solución a los problemas planteados y para ello debe cumplir con los siguientes objetivos:

(12)

Introducción

9 Diseñar e implementar una aplicación Web que sirva de núcleo para la gestión de contenidos XML del conjunto de servicios de información de CITMATEL.

Objetivos específicos:

9 Diseñar una interfaz Web adecuada para el trabajo de los especialistas en información y gestión de contenidos de la UEB (Unidad Empresarial de Base) Servicios Web de CITMATEL.

9 Permitir a los especialistas en información y gestión de contenidos de la UEB Servicios Web de CITMATEL generar, publicar, graficar y validar contenidos XML.

9 Establecer una organización de los contenidos que permita la reutilización de los mismos por los distintos servicios de información de CITMATEL.

9 Permitir la interacción con otros sitios Web que generen contenidos XML que se deseen incorporar a los servicios de CITMATEL.

9 Independizar la publicación de los contenidos de las conexiones a las bases de datos.

9 Implementar una aplicación que sea portable y pueda incluirse como módulo en el conjunto de servicios de información de CITMATEL.

Para alcanzar los objetivos propuestos es necesario llevar a cabo las siguientes tareas:

9 Análisis detallado del manejo de los contenidos en el conjunto de servicios de información de CITMATEL y de las limitaciones que presenta.

9 Estudio de otros sistemas de este tipo existentes en el mundo, sus beneficios y limitaciones.

9 Estudio y documentación de la tecnología XML y las herramientas de desarrollo de software disponibles para la implementación del sistema.

9 Definición de requerimientos del sistema.

9 Análisis y diseño del sistema para garantizar que el producto satisfaga las necesidades de los usuarios.

(13)

9 Estudio de factibilidad del proyecto de desarrollo del sistema propuesto.

Con el cumplimiento de las tareas antes citadas y la implementación del sistema propuesto se logrará constituir una herramienta de trabajo diario, brindando facilidades como ahorro de tiempo y recursos. Con la utilización de la tecnología XML las páginas se cargan más rápido y se agiliza la gestión de contenidos, ya que no se requiere del acceso a las bases de datos pues estos están en formato XML. El sistema propuesto será portable y genérico, de modo que servirá a los diferentes proyectos que se desarrollen en la empresa. Además beneficiará a los usuarios finales, para los que CITMATEL confecciona los sitios, pues los contenidos que se exponen se harán más visibles y comprensibles, habrá una contribución al uso de las nuevas tecnologías, se elevará el número de visitantes a sus sitios y la fidelidad de estos a los mismos.

El Sistema de Gestión de Contenidos XML se insertará en la Red Cubana de la Ciencia, que es uno de los proyectos de CITMATEL. Su puesta en funcionamiento contribuirá a lograr varios de los resultados que este proyecto se propone alcanzar. Representa un aporte al desarrollo del plan de informatización de la sociedad y el empleo eficiente de las TIC, lo que contribuye con la batalla de ideas que se lleva a cabo en el país.

El presente trabajo de diploma está dividido en capítulos ordenados según las fases que propone la metodología empleada, lo que facilita la localización de los distintos temas abordados.

El Capítulo I está dedicado al estudio teórico, se realiza una descripción de los principales conceptos asociados al dominio del problema que son necesarios para entender el negocio, las dificultades que presenta este último y la propuesta de solución; se fundamenta el objeto de estudio del proyecto de software; se plantean los objetivos del mismo y además se analizan los sistemas automatizados existentes vinculados al campo de acción.

En el Capítulo II se realiza un estudio de las tendencias y tecnologías actuales sobre las que se apoya el sistema propuesto. De este modo, se fundamentan las que han

(14)

Introducción

sido seleccionadas para implementarlo, así como la metodología seguida para el desarrollo del mismo.

En el Capítulo III se describe la solución propuesta a través del modelo del dominio, los requerimientos funcionales y no funcionales, los casos de uso del sistema y sus diagramas correspondientes, lo cual proporciona un mayor volumen de información para el entendimiento de las características y funcionalidades del sistema.

En el Capítulo IV se representan los diferentes diagramas relacionados con la construcción de la solución propuesta, la estructuración en capas que se utilizó, los diagramas de clases, el diseño de la base de datos y las pautas de diseño seguidas para elaborar la interfaz de usuario.

Finalmente, en el Capítulo V se incluye el estudio de factibilidad del proyecto, que refleja en números el costo en tiempo y dinero que reporta el desarrollo del sistema propuesto. Se resumen los beneficios tangibles e intangibles que reportaría la implantación del Sistema de Gestión de Contenidos XML.

(15)

CAPÍTULO I. Fundamentación teórica

Introducción

Tomando como punto de partida la bibliografía consultada para introducir el tema del manejo de contenidos XML, en este capítulo se presentan las bases de la investigación realizada en el campo del desarrollo de sistemas de gestión de contenidos XML, así como las soluciones existentes que más se asemejan al sistema que se propone.

Con la información disponible a continuación se facilita la comprensión de la necesidad, actualidad, aplicación y beneficios que reporta el sistema propuesto.

1.1- Objeto de estudio

1.1.1- Descripción general

La Empresa de Tecnologías de la Información y Servicios Telemáticos Avanzados, CITMATEL, se caracteriza por una alta calidad de sus productos y servicios, una eficiencia organizacional que adapta su desempeño al entorno, ser líder por su haber científico y tecnológico en el país, ser competitiva en el mercado, posicionar sistemáticamente nuevos productos y poseer un personal altamente calificado y de vasta experiencia, hacedor y creativo.

Tiene la misión de satisfacer con soluciones integrales de alto valor agregado y profesionalidad, las necesidades de productos y servicios en Tecnologías de la Información y las Comunicaciones a clientes nacionales y foráneos, con ofertas de alta competitividad, como consecuencia de la aplicación de la ciencia e innovación tecnológica.

Su objeto social es desarrollar, implementar y comercializar productos y tecnologías de información, aplicando permanentemente la ciencia y la innovación tecnológica. Realiza consultoría, proyectos, soluciones de conectividad, venta e instalación de equipamiento, desarrollo de software y aplicaciones, asistencia técnica, servicios

(16)

Capítulo I. Fundamentación teórica

postventa, capacitación presencial y en línea; servicios y aplicaciones de Internet en todo el territorio nacional y para el extranjero. Brinda servicios asociados a producciones digitales de información y ediciones electrónicas hipermediales y multisensoriales sobre soportes ópticos y para redes. Realiza investigaciones, actividades de desarrollo, innovación tecnológica e introducción de nuevas tecnologías. Participa en la Informatización de las entidades del Ministerio de Ciencia, Tecnología y Medio Ambiente y realiza actividad exportadora.

Sus principales acciones estratégicas son: potenciar la actividad de innovación, el desarrollo e investigación aplicada en las tecnologías de la información para elevar la calidad y competitividad de los productos y servicios; continuar la modernización y potenciación de la infraestructura de la red a nivel nacional; brindar nuevos servicios de valor agregado para la red; promover el empleo del comercio electrónico y la educación a distancia; desarrollo de servicios WAP; promover soluciones integradas de redes; realizar alianzas estratégicas con proveedores de contenidos, de tecnología, para la comercialización en el exterior, y con otras instituciones para la rápida introducción de productos y servicios innovadores en el catálogo; fidelizar a los grandes clientes satisfaciendo sus necesidades mediante soluciones integrales a la medida.

CITMATEL se encuentra inmersa en la introducción de la tecnología XML, la cual ha tenido una gran aceptación a nivel mundial debido a las ventajas que brinda. La asimilación de esta tecnología posibilitará una mejora sustancial en el manejo de los contenidos en los servicios de información de la empresa, lo cual constituye el campo de acción.

Actualmente para gestionar los contenidos de los servicios de información que atiende la UEB Servicios Web de CITMATEL, los administradores tienen que importarlos manualmente de otros sitios y delimitar los contenidos que realmente necesitan de la presentación, debido a la utilización de documentos HTML. Por otra parte, los constantes accesos a los servidores de bases de datos implican una gran dependencia del buen funcionamiento de los mismos. Todo esto trae consigo un alto consumo de tiempo y recursos.

(17)

Entre los proyectos de CITMATEL se encuentra la Red Cubana de la Ciencia, que es donde se insertará el Sistema de Gestión de Contenidos XML; contribuyendo así a lograr varios de los resultados que este proyecto se propone alcanzar, entre los que se encuentran: proporcionar múltiples medios de presentar los contenidos, ampliar la utilización de las nuevas tecnologías de la información y las comunicaciones y fomentar la colaboración e interacción entre los servicios de información [CITMA, 2005].

1.1.2- Situación problémica y problema a resolver

El conjunto de servicios de información de CITMATEL está liderado por el portal Cuba (http://www.cuba.cu) e incluye también el portal de la Red Cubana de la Ciencia (http://www.redciencia.cu), entre otros. Este último aporta un giro tecnológico en el desarrollo de aplicaciones Web dentro de la UEB Servicios Web de CITMATEL. Actualmente la empresa desarrolla distintas aplicaciones, como por ejemplo para móviles y palms, que no utilizan código HTML, pero que manejan, gestionan y publican los mismos contenidos que utilizan las aplicaciones Web, entre otros.

Para la administración de los servicios de los distintos sitios se utilizan contenidos de sitios Web externos, teniendo que delimitar, de las páginas HTML, las partes correspondientes a los contenidos que realmente se necesitan, siendo esta una tarea muy engorrosa, ya que HTML se centra en la representación en la pantalla de la información, es decir, están ligados los contenidos con su estructura física o presentación. Una vez determinado el contenido a utilizar resulta complejo adaptarlo a la estructura de presentación de contenidos del conjunto de servicios de información de CITMATEL.

Otra dificultad importante es el permanente acceso a los servidores de bases de datos para extraer los datos y mostrarlos de forma dinámica en las páginas. El acceso a datos almacenados en ficheros XML, como resultado, ofrece al cliente una página que muestra la información más rápidamente.

(18)

Capítulo I. Fundamentación teórica

No existe una aplicación única, portable y genérica, que sirva de núcleo para la gestión de contenidos entre los servicios de información de CITMATEL.

1.2- Procesos objeto de automatización

Los procesos que serán objeto de automatización son:

9 Publicación de documentos en los múltiples servicios de información de CITMATEL.

9 Gestión de la estructura de los documentos XML.

9 Importación de contenidos XML desde diversos sitios Web.

9 Validación de los contenidos XML que se gestionan en el sistema. 9 Control de usuarios autorizados a interactuar con el sistema.

1.3- Conceptos principales asociados al dominio del problema

1.3.1- Antecedentes históricos de XML

En noviembre de 1996, en una conferencia sobre el antecesor de XML, SGML (Standar Generalized Markup Language), se presenta un reporte técnico inicial respecto a XML. En marzo de 1997 se realiza la primera conferencia sobre XML, aún con solo la idea general al respecto; en octubre de 1997 el World Wide Web Consortium (W3C) define algunos lineamientos fundamentales, para tener la primera edición del estándar publicada en diciembre de 1997.

Las motivaciones fundamentales del grupo de trabajo W3C eran desarrollarlo para ser usado en Internet; hacerlo pensando en los desarrolladores, proveedores de contenido, buscadores y todos los demás actores; que fuese relativamente fácil hacer programas para XML; que no hubiesen aspectos opcionales de XML, pues son ellos los que llevan a la aparición de incompatibilidades y es por ello que XML es mucho más estricto que HTML; tratar datos semi-estructurados de la Web; organizar

(19)

colecciones de datos de distintas fuentes y formatos e intercambiar datos entre diferentes sitios u organizaciones.

Paralelo a los primeros pasos en XSL, entre enero y agosto de 1998 se trabaja en obtener XQL, XLink y XPointer, que son lenguajes para poder realizar consultas y referenciar documentos estructurados en XML. En diciembre de 1998 se obtiene una forma de describir el lenguaje HTML (el usado actualmente en Internet) en términos de XML y XSL. En enero de 1998 se tiene una versión un poco más estable de XSL y en febrero de 1998 se prepara el escenario determinando cómo distintas empresas podían repartir los nombres de los identificadores para evitar confusiones entre ellas.

SGML proporciona un modo consistente y preciso de aplicar etiquetas para describir las partes que componen un documento, permitiendo además el intercambio de documentos entre diferentes plataformas. Sin embargo, el problema que se atribuye a SGML es su excesiva dificultad.

Así que, manteniendo su misma filosofía, de él se derivó XML como subconjunto simplificado, eliminando las partes más engorrosas y menos útiles. Como su padre, XML es un metalenguaje, o sea, un lenguaje para definir lenguajes. Los elementos que lo componen pueden dar información sobre lo que contienen, no necesariamente sobre su estructura física o presentación, como ocurre en HTML.

Mediante XML también se podría definir el HTML, con lo que se podrían considerar los siguientes conjuntos:

(20)

Capítulo I. Fundamentación teórica

XML no ha nacido solo para su aplicación en Internet, sino que se propone como lenguaje de bajo nivel (a nivel de aplicación, no de programación) para intercambio de información estructurada entre diferentes plataformas. Se puede usar en bases de datos, editores de texto, hojas de cálculo, y casi cualquier cosa que se pueda pensar.

Se puede suponer de este modo que XML constituye la capa más baja dentro del nivel de aplicación, sobre el que se puede montar cualquier estructura de tratamiento de documentos, hasta llegar a la presentación. Observándose así, cómo se comparten documentos entre dos aplicaciones como intercambio de datos a ese nivel:

Figura 2. Compartimiento de documentos entre dos aplicaciones.

Dado que XML tiene una perspectiva Web-céntrica, la mayoría de los programas están hechos en Java, un lenguaje multiplataforma, optimizado para lograr un alto grado de compatibilidad. Estos programas están orientados a implementar el análisis de un documento XML, la transformación de documentos XSL y el formateo y visualización de los mismos [Castillo, 2004] [Delgado, 2001] [Merino, 2003].

1.3.2- Documentos XML

Un documento XML tiene dos estructuras, una lógica y otra física. Físicamente, el documento está compuesto por unidades llamadas entidades. Una entidad puede hacer referencia a otra, causando que esta se incluya en el documento. Cada documento comienza con una entidad documento, también llamada raíz. Lógicamente, el documento está compuesto de declaraciones, elementos, comentarios, referencias a caracteres e instrucciones de procesamiento, todos los cuales están indicados por una

(21)

marca explícita. Las estructuras lógica y física deben encajar de manera adecuada [Lechuga, 2004].

Los documentos XML se dividen en dos grupos: documentos bien formados y documentos válidos.

9 Bien formados: son todos los que cumplen las especificaciones del lenguaje respecto a las reglas sintácticas, sin estar sujetos a unos elementos fijados en un DTD. De hecho los documentos XML deben tener una estructura jerárquica muy estricta y los documentos bien formados deben cumplirla.

9 Válidos: Además de estar bien formados, siguen una estructura y una semántica determinada por un DTD: sus elementos y sobre todo la estructura jerárquica que define el DTD, además de los atributos, deben ajustarse a lo que el DTD dicte [Merino, 2003].

1.3.2.1- Elementos

Los elementos XML pueden tener contenido (más elementos, caracteres, o ambos a la vez), o bien ser elementos vacíos.

Siempre empieza con una <etiqueta> que puede contener atributos o no, y termina con una </etiqueta> que debe tener el mismo nombre. Al contrario que HTML, en XML siempre se debe "cerrar" un elemento.

Hay que tener en cuenta que el símbolo "<" siempre se interpreta como inicio de una etiqueta XML. Si no es el caso, el documento no estará bien-formado. Para usar ciertos símbolos se usan las entidades predefinidas [Reino, 2000].

1.3.2.2- Atributos

Los elementos pueden tener atributos, que son una manera de incorporar características o propiedades a los elementos de un documento.

En una Definición de Tipo de Documento, se especifican los atributos que puede tener cada tipo de elemento, así como sus valores y tipos de valor posible.

(22)

Capítulo I. Fundamentación teórica

Al igual que en otras cadenas literales de XML, los atributos pueden estar marcados entre comillas simples (') o dobles ("). Cuando se usa uno para delimitar el valor del atributo, el otro tipo se puede usar dentro.

A veces, un elemento con contenido, puede modelarse como un elemento vacío con atributos. Un concepto se puede representar de muy diversas formas, pero una vez elegida una, es aconsejable fijarla en el DTD, y usar siempre la misma consistentemente dentro de un documento XML [Reino, 2000].

1.3.2.3- Comentarios

A veces es conveniente insertar comentarios en el documento XML, que sean ignorados por el procesado de la información y las reproducciones del documento. Los comentarios tienen el mismo formato que los comentarios de HTML. Es decir, comienzan por la cadena "<!--" y terminan con "-->".

Se pueden introducir comentarios en cualquier lugar de la instancia o del prólogo, pero nunca dentro de las declaraciones, etiquetas, u otros comentarios [Reino, 2000].

1.3.3- Comparación entre XML y HTML

XML no es una versión nueva de HTML. Aunque los dos proceden de un mismo metalenguaje, el SGML, el origen y enfoque que se ha seguido en ambos es muy distinto.

HTML, no es un lenguaje de programación, es un lenguaje de especificación de contenidos para un tipo específico de documentos SGML; es decir, mediante HTML se puede especificar, usando un conjunto de etiquetas o tags, cómo va a representarse la información en un navegador; o sea, es un lenguaje enfocado a la presentación del contenido.

XML conserva todas las propiedades importantes del antes mencionado SGML; es decir, XML es un metalenguaje, dado que con él se puede definir un lenguaje propio de presentación y, a diferencia del HTML, que se centra en la representación en la pantalla de la información, XML se centra en la información en sí misma. El objetivo del desarrollo del XML es ser un estándar que sustituya a todo el conjunto de

(23)

tecnologías que permiten hoy acceder a información a través del Web [Lechuga, 2004].

1.3.4- DTD (Definición de Tipos de Documento)

Los DTD son definiciones de los elementos que puede incluir un documento XML, de la forma en que deben hacerlo (qué elementos van dentro de otros) y los atributos que se les puede dar.

Hay varios modos de referenciar un DTD en un documento XML:

9 Incluir dentro del documento una referencia al documento DTD en forma de URI (Universal Resource Identifier, o identificador universal de recursos).

9 Incluir dentro del propio documento el DTD.

En cuanto a la definición de los elementos, es bastante intuitiva: después de la cláusula <!ELEMENT se incluye el nombre del elemento y después diferentes cosas en función del elemento:

9 entre paréntesis, si el elemento es no vacío, se indica el contenido que puede tener el elemento: la lista de elementos hijos o que descienden de él si los tiene, separados por comas; o el tipo de contenido, normalmente #PCDATA, que indica datos de tipo texto, que son los más habituales.

9 si es un elemento vacío, se indica con la palabra EMPTY.

A la hora de indicar los elementos descendientes (los que están entre paréntesis) estos pueden ir seguidos de caracteres especiales: '+', '*', '?' y '|'. Sirven para indicar qué tipo de uso se permite hacer de esos elementos dentro del documento:

9 +: uso obligatorio y múltiple; permite uno o más elementos de ese tipo dentro del elemento padre, pero como mínimo uno.

9 *: opcional y múltiple; puede no haber ninguna ocurrencia, una o varias. 9 ?: opcional pero singular; puede no haber ninguno o como máximo uno.

9 |: equivale a un OR, es decir, da la opción de usar un elemento de entre los que forman la expresión, y solo uno.

(24)

Capítulo I. Fundamentación teórica

Un documento XML presenta una jerarquía muy determinada, definida en el DTD si es un documento válido, pero siempre inherente al documento en cualquier caso (siempre se puede inferir esa estructura a partir del documento sin necesidad de tener un DTD en el que basarse), con lo que se puede representar como un árbol de elementos. Existe un elemento raíz, que siempre debe ser único (sea el documento válido o solo bien formado) y que se llamará como el nombre que se ponga en la definición del <!DOCTYPE si está asociado a un DTD o cualquiera que se desee en caso contrario. De él descienden las ramas de sus respectivos elementos descendientes o hijos.

El DTD, por ser precisamente la definición de esa jerarquía, describe precisamente la forma de ese árbol. La diferencia está en que el DTD define la forma del árbol de elementos, y un documento XML válido puede basarse en ella para estructurarse, aunque no tienen que tener en él todos los elementos, si el DTD no te obliga a ello. Un documento XML bien formado solo tendrá que tener una estructura jerarquizada, pero sin tener que ajustarse a ningún DTD concreto.

Para la definición de los atributos, se usa la declaración <!ATTLIST, seguida de:

9 el nombre de elemento del que se están declarando los atributos. 9 el nombre del atributo.

9 los posibles valores del atributo, entre paréntesis y separados por el carácter |, que al igual que para los elementos, significa que el atributo puede tener uno y solo uno de los valores incluidos entre paréntesis. Si no hay valores definidos, se escribe CDATA para indicar que puede ser cualquier valor. También se puede indicar con la declaración ID que el valor alfanumérico que se le dé será único en el documento, y se podrá referenciar ese elemento a través de ese atributo y valor.

9 de forma opcional y entrecomillado, un valor por defecto del atributo si no se incluye otro en la declaración.

9 si es obligatorio cada vez que se usa el elemento en cuestión declarar este atributo, es necesario declararlo con la cláusula #REQUIRED; si no lo es, se debe

(25)

poner #IMPLIED, o #FIXED si el valor de dicho atributo se debe mantener fijo a lo largo de todo el documento para todos los elementos del mismo tipo [Merino, 2003].

1.3.5- El modelo de objetos de documentos DOM

El modelo de objetos de documentos del W3Consortium (W3C), o Document Object Model (DOM) es una representación interna estándar de la estructura de un documento, y proporciona un interfaz al programador (API) para poder acceder de forma fácil, consistente y homogénea a sus elementos, atributos y estilo. Es un modelo independiente de la plataforma y del lenguaje de programación.

El objetivo es que cualquier script pueda ejecutarse de forma más o menos homogénea en cualquier navegador que soporte dicho DOM [Merino, 2003].

1.3.6- XSL (Extended Style Language)

El XSL es un lenguaje que permite definir una presentación o formato para un documento XML. Un mismo documento XML puede tener varias hojas de estilo XSL que lo muestren en diferentes formatos (HTML, PDF, RTF, VRML, PostScript, sonido, etc.).

Básicamente, XSL es un lenguaje que define una transformación entre un documento XML de entrada, y otro documento XML de salida.

Una hoja de estilo XSL es una serie de reglas que determinan cómo va a ocurrir la transformación. Cada regla se compone de un patrón (pattern) y una acción o plantilla (template).

De este modo, cada regla afecta a uno o varios elementos del documento XML. El efecto de las reglas es recursivo, para que un elemento situado dentro de otro elemento pueda ser también transformado. La hoja de estilo tiene una regla raíz que, además de ser procesada, llama a las reglas adecuadas para los elementos hijos [Reino, 2000].

(26)

Capítulo I. Fundamentación teórica

1.3.7- XML Schemas

Un "schema XML" es algo similar a un DTD, es decir, que define qué elementos puede contener un documento XML, cómo están organizados, y qué atributos y de qué tipo pueden tener sus elementos.

Los schemas usan sintaxis de XML, al contrario que los DTD; permiten especificar los tipos de datos y son extensibles [Reino, 2000].

1.3.8- Aplicaciones y ventajas del XML Algunas de las aplicaciones de XML son:

9 Ofrecer mecanismos más versátiles de mostrar datos, representando documentos XML en los navegadores Web, de una forma más sofisticada que los documentos HTML, ya que XML no solo proporciona una sintaxis, sino también una semántica.

9 Implementar buscadores inteligentes. Debido a que la información en los documentos XML está etiquetada por su significado de forma precisa, se puede localizar más claramente que en documentos HTML. Con DTD estandarizados para distintas aplicaciones (librerías, tiendas de deportes, catálogos de componentes) se podrían programar buscadores Web que recuperasen información sobre un producto de cualquier sitio Web en el mundo sabiendo que todos tendrán el mismo formato de datos, aunque no tengan necesariamente la misma representación gráfica.

9 Intercambio de información entre sistemas heterogéneos. El fundamento es el mismo que para los buscadores inteligentes. Debido a que el DTD proporciona un formato estándar para representar la información de un tema específico, puede usarse para simplificar el intercambio de información entre distintas fuentes.

Las principales ventajas del XML son:

9 Los autores y proveedores pueden diseñar sus propios tipos de documentos usando XML, en vez de limitarse a HTML. Los tipos de documentos pueden ser

(27)

explícitamente hechos a la medida de una audiencia, autores y diseñadores serán libres de inventar sus propias etiquetas.

9 La información contenida puede ser más rica y fácil de usar, porque las habilidades hipertextuales de XML son mayores que las de HTML.

9 XML puede dar más y mejores facilidades para la representación en los visualizadores.

9 Elimina muchas de las complejidades de SGML, en favor de la flexibilidad del modelo, con lo que la escritura de programas para manejar XML es más sencilla que haciendo el mismo trabajo en SGML.

9 La información es más accesible y reutilizable, porque la flexibilidad de las etiquetas de XML permite que se utilicen sin tener que amoldarse a reglas específicas de un fabricante, como es el caso de HTML.

9 Los ficheros XML válidos, lo son también en SGML, luego pueden utilizarse igualmente fuera de la Web, en un entorno SGML [Lechuga, 2004].

9 Los contenidos XML se pueden representar con HTML y XSL, esto lo hace más portable y reafirma que su propósito principal es el contenido y la independencia de este de la forma de representarlo.

1.4- Sistemas automatizados existentes vinculados al campo de

acción. Análisis comparativo con la solución propuesta

En la actualidad existen diversos sistemas (editores XML) con funcionalidades semejantes a las de la solución propuesta; sin embargo, no se encontró ninguno que englobe todos los requerimientos y se adecue a las características específicas de la empresa. Además, la mayoría exigen de un gasto por adquisición muy elevado, no comparable con los costos en que incurriría la empresa al producirlo por sí misma.

Un editor XML es una herramienta que ofrece facilidades para crear y editar documentos XML. Existen dos tipos principales:

(28)

Capítulo I. Fundamentación teórica

9 Los que representan los ficheros en forma de árbol y permiten construir un documento trabajando sobre este árbol y formularios adicionales (XML Notepad de Microsoft o Visual XML).

9 Los que representan el documento XML en su formato original y que normalmente son editores de ficheros de texto con facilidades para XML (XED o PSGML de Emacs).

Entre ambos tipos hay que diferenciar los que trabajan con una DTD y por lo tanto, validan el contenido de lo que se escribe, y los que simplemente aseguran que el documento XML es bien formado, es decir, sintácticamente correcto respecto a las especificaciones del XML [Lechuga, 2004].

A continuación se detallan los editores más significativos con sus características más relevantes y los inconvenientes que presentan en comparación con la solución que se propone.

El Authentic es un editor visual de documentos XML, desarrollado por Altova Inc. Las plantillas visuales, que son presentadas a los usuarios finales, pueden ser visualmente diseñadas usando el Stylesheet Designer. Soporta XML Schema y DTD. Puede ser integrado a una base de datos. A pesar de que es gratis, solo está disponible como aplicación de escritorio o como un plug-in para el Internet Explorer y se puede ejecutar únicamente sobre la plataforma Windows.

El EditiX es un editor de XML poderoso y fácil de usar, desarrollado por JapiSoft. Diseñado para ayudar a los programadores de aplicaciones a utilizar los avances de las tecnologías XML y otras relacionadas. Provee a los usuarios de una extensa gama de funcionalidades de XML. Tiene ubicación de XPath en tiempo real y detección de errores de sintaxis. Incluye plantillas por defecto con XML, DTD, XHTML y XSLT. Su principal inconveniente es su alto costo en el mercado.

El EditML Pro es un editor visual multidocumentos, desarrollado por NetBryx Technologies, para la creación de documentos XML válidos y bien formados, que es fácil de usar. Algunas de las funcionalidades son la validación de documentos, la creación automática de XML, la generación visual de XPath Query, la generación

(29)

automática de DTD y XML Schema, importar XML y ficheros de texto desde una base de datos y un wizard para la creación de nuevos documentos. Es bastante integrador pero muy costoso y solamente se puede ejecutar sobre la plataforma Windows.

El Emilé es un editor de XML, desarrollado por Media Design in Progress. Provee de diálogos y menús para un trabajo eficiente con documentos XML. Se adapta automáticamente al DTD actual. Personaliza la interfaz de usuario de acuerdo a sus necesidades particulares. Se puede ejecutar sobre la plataforma Macintosh solamente, lo que junto a su alto precio, constituye su mayor desventaja.

El Exchanger es un editor de XML basado en Java, desarrollado por Cladonia Ltd. Ofrece la validación contra DTD y XML Schema, una vista en forma de árbol para la edición libre de las etiquetas del documento, búsqueda de expresiones XPath, diferenciación y unión de documentos XML. Además contiene un debugger de XSLT, que puede ejecutarse solo o integrado al editor. Al igual que los anteriores es comercial.

El iXink es un editor de XML de código abierto, desarrollado por Pavel Vrecion. Chequea que los documentos XML estén bien formados y los valida contra su DTD. Incluye características como el autocompletamiento, el marcado de sintaxis, generación de plantillas desde el DTD e importa documentos Excel. A pesar de sus ventajas se puede ejecutar sobre la plataforma Windows solamente.

El Turbo XML es un ambiente de desarrollo integrado para el trabajo con XML. Fue desarrollado por TIBCO Software Inc. Incluye facilidades para crear, validar y convertir XML Schemas, ficheros XML y DTD. Se puede ejecutar únicamente sobre la plataforma Windows (95/98/NT/2000) y fue creado para su comercialización.

El Ultra XML es un editor, desarrollado por Mai-KG en una versión comercial, que permite la publicación y creación de documentos. Tiene un árbol XML para facilitar la navegación y edición del documento. Incluye un editor visual de atributos y entidades del DTD y una herramienta de creación de hojas de estilo. Presenta los mismos inconvenientes que el anterior.

(30)

Capítulo I. Fundamentación teórica

El XML Wrench es un editor para el trabajo con XML y otros ficheros. Permite el marcado de sintaxis tanto de XML como de CSS, DTD, XSL y RSS. También se puede utilizar para importar desde HTML, chequear y validar XML y convertirlos usando XSLT. Fue desarrollado por Nick Moon con fines comerciales y se puede ejecutar sobre la plataforma Windows solamente.

El XML EditPro es un editor simple de XML para trabajar con documentos XML bien formados, XSL, XHTML y DTD. Fue desarrollado en C++. Permite la validación de documentos, tiene una vista de código y una vista en forma de árbol. Aunque es gratis solo se puede ejecutar sobre la plataforma Windows.

El XML Spy es un editor de documentos para el trabajo con XML, DTD y XSLT, desarrollado por Altova Inc con fines comerciales. Provee vistas de edición estructurada y un diseñador gráfico de XSLT. Tiene una vista gráfica de diseño para los XML Schemas. Permite el salvado de ficheros directamente hacia servidores FTP. Se puede ejecutar sobre la plataforma Windows solamente [XML Software, 2000].

Muchas son las aplicaciones que existen actualmente para el manejo de contenidos XML, pero la mayoría no es posible adquirirlas por sus altos costos; otras solo se pueden implantar en una sola plataforma, y ninguna engloba todos los requerimientos de la empresa CITMATEL, que consisten en la posibilidad de ejecutarse sobre cualquier plataforma, fundamentalmente Unix; que cumplan con la política que sigue el país de trabajar con software libre y de código abierto; que agrupe un conjunto de funcionalidades como importar y validar documentos XML, mostrar gráficamente su modelo de objetos, crear sus definiciones de tipo, entre otras, y que sea un sistema organizado por niveles de acceso por usuarios y grupos, con distintos privilegios de acceso a los módulos. Es por esto que se considera que la mejor solución es la que se propone en el presente trabajo.

(31)

1.5- Objetivos

Objetivo general

9 Diseñar e implementar una aplicación Web que sirva de núcleo para la gestión de contenidos XML del conjunto de servicios de información de CITMATEL.

Objetivos específicos

9 Diseñar una interfaz Web adecuada para el trabajo de los especialistas en información y gestión de contenidos de la UEB Servicios Web de CITMATEL.

9 Permitir a los especialistas en información y gestión de contenidos de la UEB Servicios Web de CITMATEL: generar, publicar, graficar y validar contenidos XML.

9 Establecer una organización de los contenidos que permita la reutilización de los mismos por los distintos servicios de información de CITMATEL.

9 Interactuar con otros sitios Web que generen contenidos XML que se deseen incorporar a los servicios de CITMATEL.

9 Independizar la publicación de los contenidos de las conexiones a las bases de datos.

9 Implementar una aplicación que sea portable y pueda incluirse como módulo en el conjunto de servicios de información de CITMATEL.

Conclusiones

Muchas son las alternativas que existen actualmente para el manejo de contenidos XML, de lo que se trata es de seleccionar aquella que satisfaga mejor las expectativas del usuario y se adecue a las características del entorno donde será utilizada. La mayoría de los sistemas existentes en el mundo exigen de un gasto por adquisición muy elevado, otros no es posible implantarlos en diversas plataformas, específicamente sobre Unix que es la que existe en la empresa, y ninguno engloba

(32)

Capítulo I. Fundamentación teórica

todos los requerimientos necesarios; esto los elimina de la lista de posibles soluciones de la situación problémica planteada.

Contar con una aplicación única que sirva de núcleo para la gestión de contenidos XML del conjunto de servicios de información de CITMATEL, con una interfaz sencilla, para los especialistas en información y gestión de contenidos de la UEB Servicios Web de CITMATEL; permitirá el ahorro de tiempo y recursos en la gestión de los contenidos de los diferentes proyectos que se desarrollen en la empresa. Además beneficiará a los usuarios finales, para los que CITMATEL confecciona los sitios, pues los contenidos que se exponen se harán más visibles y comprensibles, habrá una contribución al uso de las nuevas tecnologías, se elevará el número de visitantes a sus sitios y la fidelidad de estos a los mismos.

Para lograr esto es importante la correcta selección de las herramientas a utilizar en su confección y para ello es necesario analizar las tecnologías y tendencias actuales.

(33)

CAPÍTULO II. Tendencias y Tecnologías Actuales

Introducción

Para el desarrollo de las aplicaciones en la actualidad se utilizan herramientas que garantizan que estas salgan al mercado soportadas por las tecnologías más avanzadas.

El buen funcionamiento del sistema propuesto depende de la elección correcta de las tecnologías de que se dispone para su realización. Es por ello que en el presente capítulo se tienen en cuenta las ventajas y desventajas de las tendencias y tecnologías actuales, para justificar así el lenguaje de programación, el gestor de bases de datos y la metodología de análisis y diseño del sistema que fueron seleccionados.

2.1- Fundamentación de la metodología utilizada

2.1.1- Unified Modeling Language (UML)

UML es un lenguaje de modelado visual y consistente, que unifica varios de los lenguajes de modelado existentes anteriormente en un único lenguaje orientado a objetos. Cubre todas las vistas necesarias para desarrollar y luego desplegar los sistemas. Existe un equilibrio entre expresividad y simplicidad, pues no es difícil de aprender ni de utilizar.

Comprende un conjunto de estereotipos para la modelación de cualquier proyecto, ya sea de software, de arquitectura o de cualquier otra rama. Permite representar las distintas fases de desarrollo por las que atraviesa un software según RUP, mediante diagramas que relacionan cada uno de los componentes que constituyen el sistema que se modela. La unión de estos diagramas representa la arquitectura del sistema. Mediante UML es posible especificar todas las decisiones de análisis, diseño e implementación, construyéndose así modelos precisos, no ambiguos y completos [Jacobson, 2000].

(34)

Capítulo II. Tendencias y tecnologías actuales

Es el estándar para la modelación de la arquitectura de los sistemas en desarrollo y el resultado de su empleo constituye la documentación que acompañará al sistema para futuros mantenimientos.

2.1.2- Rational Unified Process™ (RUP)

Rational Unified Process™ (RUP) es una propuesta de proceso para el desarrollo de software orientado a objeto, que utiliza UML como Lenguaje de Modelamiento Unificado para describir un sistema, mejora la productividad del equipo de trabajo y entrega las mejores prácticas del software a todos los miembros del mismo. Es, además, una metodología de desarrollo de software que intenta integrar todos los aspectos a tener en cuenta durante el ciclo de vida del software, con el objetivo de abarcar tanto pequeños como grandes proyectos [Kruchten, 2001].

RUP tiene una estructura bidimensional, dividiendo el proceso en fases, y estas en flujos de trabajo, lo cual puede observarse en la siguiente figura.

Figura 3. Fases, iteraciones y disciplinas.

RUP divide el desarrollo del software en cuatro fases:

9 Inicio: Determinar la visión del proyecto.

9 Elaboración: Determinar la arquitectura óptima.

9 Construcción: Obtener la capacidad operacional inicial. 9 Transición: Obtener el release del proyecto.

(35)

Cada una de estas etapas es desarrollada mediante el ciclo de iteraciones, que consiste en reproducir el ciclo de vida en cascada a menor escala. Los objetivos de una iteración se establecen en función de la evaluación de las iteraciones precedentes.

El ciclo de vida que se desarrolla por cada iteración, es llevada bajo dos disciplinas o flujos de trabajo:

Disciplina de Desarrollo:

9 Ingeniería de Negocios: Entendiendo las necesidades del negocio.

9 Requerimientos: Trasladando las necesidades del negocio a un sistema automatizado.

9 Análisis y Diseño: Trasladando los requerimientos dentro de la arquitectura de software.

9 Implementación: Creando un software que se ajuste a la arquitectura y que tenga el comportamiento deseado.

9 Pruebas: Asegurándose que el comportamiento requerido es el correcto y que todo lo solicitado está presente.

Disciplina de Soporte:

9 Configuración y administración del cambio: Guardando todas las versiones del proyecto.

9 Administrando el proyecto: Administrando horarios y recursos. 9 Ambiente: Administrando el ambiente de desarrollo.

9 Distribución: Hacer todo lo necesario para la salida del proyecto. Las características distintivas de RUP son las siguientes:

Dirigido por Casos de Uso:

Tiene a los casos de uso como el hilo conductor que orienta las actividades de desarrollo. Se centra en la funcionalidad que el sistema debe poseer para satisfacer

(36)

Capítulo II. Tendencias y tecnologías actuales

las necesidades de un usuario (persona, sistema externo, dispositivo) que interactúa con él.

Centrado en la arquitectura:

La arquitectura involucra los elementos más significativos del sistema y está influenciada entre otros por plataformas de software, sistemas operativos, manejadores de bases de datos, protocolos; consideraciones de desarrollo como sistemas heredados y requerimientos no funcionales. Una vez definida la arquitectura se puede decir que el sistema tiene “forma”.

Iterativo e incremental:

Esta característica propone dividir el proceso de desarrollo en partes, cada una de las cuales incluya las fases de: Requerimientos, Análisis, Diseño, Implementación y Pruebas, con el objetivo de acelerar el ritmo de desarrollo para que el producto salga al mercado en el menor tiempo posible y con mayor calidad.

Cualquier tipo de proyecto (incluidos los pequeños, los basados en Web, aquellos fundamentales para un proyecto y los proyectos integrados) permiten obtener unos resultados más acordes con las previsiones gracias a la aplicación del proceso RUP™ [Jacobson, 2000].

2.1.3- Rational Rose Enterprise Edition

Rational Rose Enterprise Edition es una herramienta Lower CASE, que permite el diseño detallado del software y la generación de código fuente (de programas y bases de datos) e ingeniería inversa (obtención del diseño a partir del código fuente), basado en modelos con soporte UML [Anónimo, 2006]. Es una forma de ayuda para la comprensión del sistema y de sus distintos componentes. Su característica más significativa consiste en la creación de componentes, que contengan una serie de archivos dentro de los cuales se encuentran las distintas clases pertenecientes a dicho componente [Anónimo, 2002].

(37)

2.2- Fundamentación de las herramientas de desarrollo

seleccionadas

2.2.1- Tecnologías del lado del Servidor

Estas tecnologías son interpretadas y ejecutadas por el servidor. Se consideran de mayor importancia ya que son las que garantizan el intercambio de datos en ambos sentidos, entre el navegador del cliente y el servidor Web, y a su vez las que soportan la funcionalidad del sitio.

2.2.1.1- Java

En cuanto salió Java fue acogido con gran entusiasmo por la comunidad mundial de los diseñadores de programas y de los proveedores de servicios Internet. Esto porque Java permitía a los usuarios de Internet usar aplicaciones seguras e independientes de la plataforma, y que se pueden encontrar en cualquier punto de la red [Álvarez, 2005b].

Java es un lenguaje de programación orientado a objetos, y tiene todos los beneficios que ofrece esta metodología de programación. Además al ser Java un lenguaje se pueden hacer cálculos matemáticos, procesadores de palabras, bases de datos, aplicaciones gráficas, animaciones, sonido, hojas de cálculo, etc.

Permite desarrollar páginas Web dinámicas y se le pueden poner toda clase de elementos multimedia que permiten un alto nivel de interactividad, sin tener que gastar en paquetes costosos de multimedia [Monografías, 2005].

Java compila e interpreta por lo que consume doble tiempo. El tiempo de compilación es más lento que en otros lenguajes y es una tecnología nueva que no está estandarizada [Anónimo, 2005b].

2.2.1.2- ASP (Active Server Pages)

Es el lenguaje del lado del servidor creado por Microsoft para la creación de páginas dinámicas del servidor ASP, se puede programar utilizando el lenguaje Visual Basic Script, Jscrip (Javascript de Microsoft) u otros lenguajes Script popularmente conocidos para el uso del lado del cliente.

(38)

Capítulo II. Tendencias y tecnologías actuales

ASP permite el acceso a bases de datos para extraer información y visualizarla en el navegador, envío de correo electrónico, acceso al sistema de archivos del servidor y en general a todos los recursos que tenga el propio servidor. Una potencialidad en ASP está en el uso de controles ActiveX construidos para ser ejecutados en el servidor.

El código ASP está mezclado con el contenido, la implementación de componentes y la configuración es compleja y solo soporta lenguajes de scripting [Reynoso, 2006]. Es difícil proveer seguridad a los datos de los clientes. El rendimiento de las aplicaciones es limitado, debido al ancho de banda de Internet [Zarza, 2003].

2.2.1.3- Asp.NET

ASP.NET es la apuesta de la tecnología de Microsoft .Net para el desarrollo de páginas Web dinámicas. El cual trae diversas mejoras con respecto al ASP tradicional entre las que se destacan algunas:

Rapidez en programación: Mediante diversos controles se puede con unas pocas líneas y en menor tiempo mostrar toda una base de datos y hacer rutinas complejas.

Programación Multilenguaje: El programador ya no se encuentra restringido a la utilización de VBScript o JScript para programar las páginas ASP. Puede utilizar cualquiera admitido por la plataforma .NET, lo que incluye diversos lenguajes como C#, Visual Basic.NET, JScipt.NET, COBOL.NET, entre otros.

Programación visual: La arquitectura está diseñada de forma que el desarrollo de las aplicaciones Web sea análogo a la forma en que se hace en las aplicaciones de ventanas estándar, representando los controles como objetos que se pueden manipular en la programación, al igual que se hace en las librerías de ventanas orientadas a objetos. Además permitiendo que con herramientas visuales, diseñarlas sea fácil, como arrastrar los componentes necesarios sobre la página y hacer doble click sobre cada componente para escribir la lógica de respuesta a los eventos que se puedan realizar sobre ellos, de forma parecida a como se hace en entornos RAD (Rapid Application Development) como Delphi [Ciberaula, 2005].

(39)

Sus principales desventajas consisten en que, a pesar de que el software es gratis, su plataforma no lo es y además es solamente para Internet Information Server; su código no está disponible y, comparado con PHP, su velocidad y eficiencia es más débil [Hull, 2006].

2.2.1.4- PHP (Hypertext Preprocessor)

PHP es un lenguaje de programación, de código abierto, que se ejecuta del lado del servidor, cuyo código se combina con el HTML, para procesar la información de formularios, generar páginas con contenidos dinámicos, o mandar y recibir cookies [Cibertua, 2005].

Dispone de múltiples herramientas que permiten acceder a bases de datos de forma sencilla, por lo que es ideal para crear aplicaciones en Internet. Existe mucha documentación disponible sobre este lenguaje y miles de ejemplos y código fuente.

Es multiplataforma, funciona tanto para Unix (con Apache) como para Windows (con Microsoft Internet Information Server), de forma que el código que se haya creado para una de ellas no tiene por qué modificarse al pasar a la otra. Su integración con Apache y MySQL es perfecta [Cortés, 2002].

La sintaxis que utiliza la toma de otros lenguajes muy extendidos como C y Perl. PHP es muy parecido a las ASP (Active Server Pages) de Microsoft, solo que más rápido, gratuito y multiplataforma, es por ello que fue el lenguaje seleccionado para el desarrollo del sistema propuesto [Cibertua, 2005].

La versión utilizada es la 5.1.2, que es verdaderamente orientada a objetos.

2.2.2- Tecnologías del lado del cliente

Son las páginas dinámicas que se procesan en el navegador del cliente, en las que toda la carga de procesamiento de los efectos y funcionalidades la soporta el navegador. El código necesario para crear los efectos y funcionalidades se incluye dentro del mismo archivo HTML y es llamado SCRIPT. Cuando una página HTML contiene scripts de cliente, el navegador se encarga de interpretarlos y ejecutarlos para realizar los efectos y funcionalidades. Ofrecen respuestas inmediatas a las

(40)

Capítulo II. Tendencias y tecnologías actuales

acciones del usuario y permiten la utilización de algunos recursos de la máquina local [Álvarez, 2005a].

2.2.2.1- HTML (Hyper Text Markup Language)

HTML es el punto de partida para el desarrollo Web. Es una aplicación del SGML que utiliza etiquetas para marcar elementos, tales como texto y gráficos, en un documento para indicar cómo los navegadores del Web deben visualizar estos elementos al usuario y deben responder a las acciones del usuario.

Aunque existan ya, editores HTML muy potentes para la creación de páginas Web, es importante conocer en plenitud este "lenguaje de marcado", pues se utiliza en combinación con otros lenguajes de programación, como por ejemplo PHP, en el caso del sistema propuesto [Escobar, 2004].

2.2.2.2- XHTML (eXtensible Hyper Text Markup Language)

XHTML es el lenguaje de marcado pensado para sustituir a HTML como estándar para las páginas Web. Es la versión XML de HTML, por lo que tiene, básicamente, las mismas funcionalidades, pero cumple las especificaciones, más estrictas, de XML. Su objetivo es avanzar en el proyecto del W3C de lograr una Web semántica, donde la información, y la forma de presentarla estén claramente separadas. En este sentido, XHTML serviría únicamente para transmitir la información que contiene un documento, dejando para hojas de estilo y JavaScript su aspecto y diseño en distintos medios. Tiene facilidad de edición directa del código y de mantenimiento, pero presenta algunas desventajas como que algunos navegadores antiguos no son totalmente compatibles con los estándares, lo que hace que las páginas no siempre se muestren correctamente y muchas herramientas de diseño Web aún no producen código XHTML correcto [Wikipedia, 2006].

2.2.2.3- Cascading Style Sheets (CSS)

Las hojas de estilo facilitan muchísimo la creación de páginas. Gracias a estas podemos definir un estilo específico para cada atributo sin tener que modificar las

(41)

etiquetas dentro de la página HTML. CSS se puede utilizar para manejar los estilos de todo un sitio [Escobar, 2004].

2.2.2.4- JavaScript

JavaScript es un lenguaje script u orientado a documento. El código JavaScript para cliente se integra directamente en páginas HTML y es interpretado en su totalidad por el cliente Web en tiempo de ejecución. En este caso, lo importante es que, sin necesidad de realizar ninguna transmisión de datos por la red, se puede validar dicha información, mostrando al usuario un cuadro de diálogo en caso de que esta sea incorrecta.

Los clientes Web que soportan JavaScript, tales como el Netscape Navigator/Communicator (desde la versión 2.0) o el Microsoft Internet Explorer (desde la versión 3.0) pueden interpretar sentencias JavaScript colocadas en un documento HTML [Universidad de Navarra, 2005].

Se utiliza para activar procesos o desarrollar algoritmos que hagan tareas sencillas y para darle vida a las Webs, haciendo que cambien imágenes, que se procesen datos, entre otros.

2.3- Gestores de Bases de Datos

2.3.1- PostGreSQL

PostgreSQL es uno de los Sistemas de Gestión de Bases de Datos (SGBD) más conocidos del mundo del código libre. Surge a mediados de los años ochenta con el nombre Postgres, en sus inicios con un lenguaje de consulta propio denominado Postquel, hasta 1995 que adopta SQL como lenguaje y pasa a llamarse PostGreSQL en 1996 [Mateu, 2004].

Su principal desventaja es la velocidad, considerándose más lento que SqlServer y MySql. Además consume una gran cantidad de recursos.

Se puede integrar a la plataforma .Net instalando un proveedor de acceso a datos almacenados en bases de datos desarrolladas en PostGreSQL, denominado:

(42)

Capítulo II. Tendencias y tecnologías actuales

PostgreSQLDirect.Net. Está basado completamente en tecnología ActiveX Data Object para el framework .Net 1.1 o superior (ADO.Net). Puede ser utilizado de igual forma que el proveedor de acceso a datos para SQL Server que viene incluido en el framework [Development, 2005].

2.3.2- Oracle

Es un SGBD muy costoso aplicado fundamentalmente en grandes empresas multinacionales. Trabaja con un lenguaje propio denominado PL/SQL, muy potente.

Para utilizar Oracle primeramente habría que instalar la herramienta servidor, Oracle 8i, y luego se podría acceder a la base de datos desde otros equipos con herramientas de desarrollo como Oracle Designer y Oracle Developer, que son las herramientas básicas de programación sobre Oracle [Masip, 2002].

La principal limitante de utilizar Oracle como SGBD es el alto precio de las licencias, además de que se cuenta con muy poca experiencia en el manejo de este sistema.

2.3.3- Microsoft SQL Server 2000

Microsoft SQL Server 2000 está diseñado para funcionar eficazmente como base de datos central en un servidor compartido por muchos usuarios que se conectan a la misma a través de una red. El número de usuarios puede ascender a miles de empleados en una empresa de mediano o gran tamaño, o a cientos de miles de usuarios de la Web. Además está pensado como gestor de bases de datos de escritorio que sirvan solo a aplicaciones que se ejecutan en el mismo escritorio [Corporation, 2000].

Es el primero en soportar la auto-configuración y auto-sintonización y en proveer administración de multi-servidor para cientos de servidores.

Microsoft SQL Server 2000 asigna también de manera muy eficaz los recursos disponibles, como memoria, ancho de banda de la red y E/S del disco, entre los distintos usuarios [Corporation, 2000].

Su principal desventaja es que corre solamente sobre la plataforma Windows por lo que su portabilidad es limitada.

Referencias

Documento similar

b) El Tribunal Constitucional se encuadra dentro de una organiza- ción jurídico constitucional que asume la supremacía de los dere- chos fundamentales y que reconoce la separación

La aplicación de las Buenas Prácticas de Producción de Miel en el Manejo Integral en l Manejo Integral de los Apiarios y de las Colonias de abejas aplicada por los

diabetes, chronic respiratory disease and cancer) targeted in the Global Action Plan on NCDs as well as other noncommunicable conditions of particular concern in the European

The part I assessment is coordinated involving all MSCs and led by the RMS who prepares a draft assessment report, sends the request for information (RFI) with considerations,

Ciaurriz quien, durante su primer arlo de estancia en Loyola 40 , catalogó sus fondos siguiendo la división previa a la que nos hemos referido; y si esta labor fue de

Los resultados de la investigación, obtenidos en base a técnicas de carácter cuali- tativo, constatan que la elaboración, curación y difusión de contenidos es uno de los ejes de

Volviendo a la jurisprudencia del Tribunal de Justicia, conviene recor- dar que, con el tiempo, este órgano se vio en la necesidad de determinar si los actos de los Estados

1. LAS GARANTÍAS CONSTITUCIONALES.—2. C) La reforma constitucional de 1994. D) Las tres etapas del amparo argentino. F) Las vías previas al amparo. H) La acción es judicial en