IEEE 4º Congreso Internacional en Innovación y Desarrollo Tecnológico, 11 al 13 de octubre de 2006, Cuernavaca, Morelos, México



Documentos relacionados
GLOSARIO. Arquitectura: Funcionamiento, estructura y diseño de una plataforma de desarrollo.

Capítulo 5. Cliente-Servidor.

SISTEMAS DE INFORMACIÓN III TEORÍA

1 GLOSARIO. Actor: Es un consumidor (usa) del servicio (persona, sistema o servicio).

JAVA EE 5. Arquitectura, conceptos y ejemplos.

La utilización de las diferentes aplicaciones o servicios de Internet se lleva a cabo respondiendo al llamado modelo cliente-servidor.

GUÍA Nro. 1 TECNOLOGÍA DE INTERNET. TIII PIII

Capítulo VI. Conclusiones. En este capítulo abordaremos la comparación de las características principales y

Mi propuesta consiste en crear un portal Web que contemple las siguientes funcionalidades:

La interoperabilidad se consigue mediante la adopción de estándares abiertos. Las organizaciones OASIS y W3C son los comités responsables de la

Capítulo I. Definición del problema y objetivos de la tesis. En la actualidad Internet se ha convertido en una herramienta necesaria para todas

App para realizar consultas al Sistema de Información Estadística de Castilla y León

TEMA: DESARROLLO DE APLICACIONES WEB INTERACTIVAS UTILIZANDO LA TÉCNICA AJAX AUTOR: MERY SUSANA ZAMBONINO BAUTISTA

Service Oriented Architecture: Con Biztalk?

INFORMÁTICA IE. Términos a conocer y conceptos básicos. World Wide Web (WWW):

TeCS. Sistema de ayuda a la gestión del desarrollo de producto cerámico

PORTAL DE INTEGRACIÓN DE BANCOS DE INFORMACIÓN DISPERSOS A TRAVÉS DE WEB SERVICES Autor: Ing. Walther Antonioli Ravetto

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE

Novedades. Introducción. Potencia

Modulo I. Introducción a la Programación Web. 1.1 Servidor Web.

SISTEMAS DE INFORMACIÓN II TEORÍA

BASES DE DATOS OFIMÁTICAS

UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos

Capítulo 2. Planteamiento del problema. Capítulo 2 Planteamiento del problema

UNIVERSIDAD DE SALAMANCA

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso

Capítulo III. Análisis y diseño.

CAPÍTULO I DEFINICIÓN DEL PROBLEMA Y OBJETIVOS

CAPÍTULO 1 Instrumentación Virtual

5.1 Introducción a Servicios Web

Los mayores cambios se dieron en las décadas de los setenta, atribuidos principalmente a dos causas:

CONCLUISIONES Y RECOMENDACIONES

RESUMEN INFORMATIVO PROGRAMACIÓN DIDÁCTICA CURSO 2013/2014

Introducción a los Servicios Web. Ing. José Luis Bugarin ILUMINATIC SAC jbugarin@consultorjava.com

Ingeniería de Software. Pruebas

Introducción. Metadatos

Arquitectura de sistema de alta disponibilidad

Sistema informatizado de Trazabilidad alimentaria

Capítulo 1 Documentos HTML5

Service Oriented Architecture

Ministerio de Educación Base de datos en la Enseñanza. Glosario

Seminario Electrónico de Soluciones Tecnológicas sobre VPNs de Extranets

Software de Simulación aplicado a entornos de e-learning

1 Introducción a XML

Introducción a la Firma Electrónica en MIDAS

Introducción a Internet

En nuestro capitulo final, daremos las conclusiones y las aplicaciones a futuro

Comunicación interna: Intranets

Diseño de Base de Datos

Microsoft SQL Server Conceptos.

Capítulo I. Marco Teórico

Primer avance de proyecto de software para la gestión de inscripciones en cursos

.NET y J2EE VALORACIÓN Y COMPARACIÓN DE LOS ELEMENTOS DE LAS DOS PLATAFORMAS. Definiciones...2 C# y Java...3 Similitudes...4 Ventajas...

SERVIDOR WEB PARA ACCESO EN TIEMPO REAL A INFORMACIÓN METEOROLÓGICA DISTRIBUIDA

arquitectura que maneja. Encontraremos también los diferentes servidores que

3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON)

GUÍAS FÁCILES DE LAS TIC

CAPÍTULO 3 DISEÑO DE LA ARQUITECTURA

Windows Server 2012: Infraestructura de Escritorio Virtual

Una puerta abierta al futuro

Los servicios más comunes son como por ejemplo; el correo electrónico, la conexión remota, la transferencia de ficheros, noticias, etc.

MICQ. Trabajo Práctico Final Seminario de Ingeniería en Informática I Facultad de Ingeniería, UBA. Junio Cátedra: Pablo Cosso

Desarrollo de Smarphones sobre plataformas libres para PC y PDA. David Cortés, José Luis González, Servando Saavedra y Juan Ramón Saavedra

CAPITULO I El Problema

CORPORACIÓN MEXICANA DE INVESTIGACIÓN EN MATERIALES, S.A. DE CV

PROCEDIMIENTO ESPECÍFICO. Código G Edición 0

O jeto de apre r ndizaje

Solución GeoSAS. Otros módulos

Arquitectura. 1.- Aplicaciones Web. Definición. Arquitectura clásica. Contenidos. 1.- Aplicaciones Web

Arquitectura de Aplicaciones

Análisis y diseño del sistema CAPÍTULO 3

Web Services. Introducción

Tema 6: Comparativa CORBA/Servicios Web

Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere.

Durante la determinación del problema dentro de los procesos de mercadeo de R & S Training se pudo notar notables deficiencias en las relaciones con

revista transparencia transparencia y UNIVERSIDADES

4. Programación Paralela

Visión General de GXportal. Última actualización: 2009

Componentes de Integración entre Plataformas Información Detallada

Virtual-C: Una Herramienta para Administración de Contenidos en Sitios Web

1 El trabajo expuesto está subvencionado por el proyecto de la URJC PGRAL-2001/14

CAPÍTULO 2 Sistemas De Base De Datos Multiusuarios

e-commerce vs. e-business

1. Resumen Objetivos Introducción. 3

DISEÑO DE FUNCIONES (TRATAMIENTOS)

DEPARTAMENTO: Informática. MATERIA: Programación. NIVEL: 1º Desarrollo de Aplicaciones Multiplataforma

Introducción a las redes de computadores

Capitulo III. Diseño del Sistema.

Transformación de modelos en el proceso de obtención de Modelos Conceptuales partiendo de BPMN

Un Sistema Distribuido para el Manejo de Correo Electrónico

Aplicación para la gestión de prácticas en empresas. Memoria

SERVICIOS TELEMÁTICOS PARA GESTIÓN DEL TURISMO RURAL EN UNA COMARCA.

Manual de Referencia. Apertura

Servicios Web con Java EE

Servicios Web con Java EE

desarrollo. Dentro del desarrollo de la tesis el proceso de modelado del sistema fue hecho con el

Ventajas del almacenamiento de correo electrónico

IDeP. Service Oriented Network Architecture SONA. IDeP SA La Punta, San Luis, Agosto 2008

Internet - Web. Internet - Web. Internet. Internet. Diseño de Sitios Web Desarrollo de Paginas Web. Qué es la Internet? - Qué es la Web?

Proyecto ELO-330 Administración Salas del Departamento de Electrónica RC1. Gerardo Lecaros Felipe Díaz

Transcripción:

MORELOS IEEE 4º Congreso Internacional en Innovación y Desarrollo Tecnológico, 11 al 13 de octubre de 2006, Cuernavaca, Morelos, México Desarrollo de aplicaciones Web con XML y Java L. M. Dorantes, T. García, C. F. García Instituto Tecnológico de San Juan del Río Av. Tecnológico No. 2, Col Centro. San Juan del Río, Qro., México Universidad Autónoma de Querétaro Av. Universidad S/N, Col. Las Campanas Querétaro, Qro., México Resumen : La evolución de la Internet y de las comunicaciones vía Web, permite nuevos escenarios en lo relacionado con el acceso a contenidos, esto ha propiciado el surgimiento de nuevas tecnologías para el desarrollo de aplicaciones web cuya filosofía se basa en la separación entre lógica, interfaz y origen de datos. Como parte de las tecnologías que dan soporte a las necesidades reales y actuales de los servicios Web y plataformas de comercio electrónico están por un lado la tecnología Java y por otro XML (extensible Markup Language) que juntos potencian la portabilidad de datos, de código y simplifican el desarrollo de servicios web. Las aplicaciones basadas en XML pueden procesar documentos XML, aplicar su lógica de negocio o recuperar información y generar documentos XML resultantes. Para lo anterior se requiere de herramientas de procesamiento como son SAX (Simple API for XML), DOM (Document Object Model) y XSLT (XML Style Sheet Language Transformations) e incluso usar un modelo de documento como JDOM para representar las estructura de datos principales y aplicarles la lógica de negocio. La interfaz de programación de aplicaciones Java para procesar documentos XML proporciona al desarrollador Java estas herramientas. Abstract: The evolution of the Internet and communications through Web, allows new scenes in the related to the access to contents, this has caused new technologies for the development of Web applications whose philosophy is based on the separation amoung logic, interface and data origin. As part of these technologies which give support to the real and present necessities of Web services and platforms of e-commerce is on the one hand the java technology and by other XML (Extensible Markup Language) that together harness portability of data, code and simplify the Web services development. The XML based applications can process Xml documents, applying their business logic or information recovery and generation of XML documents. In order to the previous is required processing tools as SAX(Simple for API XML), DOM (Document Object Model) and XSLT (XML Style Sheet Language Transformations) and even use a document model like JDOM, to represent main s data structure in order to be applied to the business logic. Programming java applications interface to process XML Documents, provide the tools to the java developer. Key words: Web, XML, SAX, DOM, XSLT, JDOM, Java. Introducción La evolución de la Internet y de las comunicaciones vía Web, permite nuevos escenarios en lo relacionado con el acceso a contenidos. Su filosofía se basa en la separación entre lógica, interfaz y origen de datos. Es por ello que las nuevas tecnologías para el desarrollo de servicios web están enfocadas a este modelo, de tal forma que la información se formatea al momento de ser requerida por un dispositivo específico [1]. La parte más compleja en el desarrollo de servicios web es la programación de la infraestructura para el acceso a los datos como son las capacidades de seguridad y de mensajería, el manejo de transacciones distribuidas y el control de almacenes de conexiones. Otra dificultad es que estos servicios web deben ser capaces de manejar un enorme número de usuarios simultáneamente, por eso las aplicaciones deben ser altamente escalables [3]. NT143i54

Como parte de las tecnologías que dan soporte a las necesidades reales y actuales de los sistemas de aplicación Web y plataformas de comercio electrónico, están por un lado la tecnología Java y por otro XML que juntos potencian la portabilidad de datos, de código y simplifican el desarrollo de servicios web. Hoy en día se ofrecen al menos cinco extensiones de la plataforma Java que permiten la construcción de aplicaciones basadas en XML, como son las API s JAXP, JAXB, JAXM, JAX RPC y JAXR, las cuáles soportan los estándares de la industria, lo que asegura la interoperabilidad [1-3]. Antecedentes Desde la aparición de la WWW, se han desarrollado varias tecnologías para la implementación y mejora de las aplicaciones Web, buscando agilizar la funcionalidad y resolver los diferentes problemas que plantean las diversas tecnologías usadas. Inicialmente, las aplicaciones estaban estructuradas alrededor de documentos HTML con una estructura de hipertexto, que permitía recorrer los diferentes documentos que componían la aplicación. La estructura basada en documentos HTML se ha mejorado añadiendo estándares para el intercambio y almacenamiento de información [2-4], códigos de lenguajes de programación y de lenguajes de scripting o de marcación mediante diferentes tecnologías, para aumentar la funcionalidad de la aplicación. XML es un estándar industrial para representar datos, independientes del sistema. Al igual que HTML, XML encierra los datos en etiquetas, pero hay importantes diferencias entre los dos lenguajes de marcas. La primera es que, las etiquetas XML tienen relación con el significado del texto que encierran, mientras que las etiquetas HTML especifican cómo mostrar el texto encerrado. La segunda diferencia, es que las etiquetas XML son extensibles, permitiendo escribir etiquetas propias para describir el contenido de una aplicación determinada. Para la creación de etiquetas se usa un esquema de lenguaje XML, el cual describe la estructura de un conjunto de documentos XML y puede usarse para limitar los contenidos de los documentos XML[2]. Uno de los lenguajes de esquemas más usado es el DTD (Document Type Definition), en el cual se describen las reglas para procesar los datos. Por otro lado Java es un lenguaje de programación de propósito general orientado a objetos, independiente de plataformas, con soporte incorporado a Internet para facilitar la conexión a servidores web. Permite la escritura de páginas web a través del servlet que proporciona los mecanismos para que las aplicaciones web interactúen con clientes externos y con otras aplicaciones web. Java facilita el acceso a bases de datos a través del JDBC (Java Database Conectivity) en distintas plataformas y la posibilidad de interactuar con otras bases de datos. Otra herramienta importante en java son los JavaBeans, que es un modelo de componentes de software, que agiliza el proceso de desarrollo de una aplicación al combinar componentes de software existentes [5-6]. Desarrollo Las APIs de Java para XML permiten escribir aplicaciones web completamente en el lenguaje Java. Se clasifican en dos grupos las que tratan directamente con documentos XML, como el JAXP para procesar documentos XML usando varios analizadores y el JAXB para mapear elementos XML a clases del lenguaje java. Y los que tratan con procedimientos, cómo el JAXM para enviar mensajes SOAP de una forma estándar, el JAXR que proporciona una forma estándar para acceder registros de negocios que comparten información y el JAX-RPC que envía llamadas a métodos SOAP remotos sobre internet y recibe información [5]. El API Java para Proceso de XML (JAXP) hace fácil el proceso de datos XML con aplicaciones escritas en el lenguaje Java. JAXP contiene los analizadores estándares SAX (API Simple para XML) y DOM (Modelo de Objetos del Documento) para poder analizar los datos como flujos de eventos y construir una representación de objetos con ellos. JAXP es flexible, permitiendo utilizar cualquier analizador compatible con XML desde una aplicación, esto lo hace a través de la capa de conectividad, que permite enlazar una implementación de los APIs SAX o DOM, o enlazar a un procesador XSL lo que permite controlar la forma en que se muestran los datos. También proporciona soporte para espacios de nombres, permitiendo trabajar con DTD. Pag. 2

Un archivo XML por si solo no realiza ninguna función, por lo que es importante utilizar o trasladar la información a un programa Java, Perl o una aplicación de servidor a través de analizadores o parsers que son los encargados de llevar a cabo la transformación. Así, SAX es un analizador basado en eventos lo que significa que lee un documento XML desde el principio hasta el final, y cada vez que reconoce una sintaxis de construcción se lo notifica a la aplicación que lo esta ejecutando. El analizador SAX puede realizar validación mientras analiza los datos XML, lo que significa que verifica si los datos siguen las reglas especificadas en el DTD de los documentos XML. Por otro lado, el analizador DOM que es un conjunto de interfaces para construir una representación de objeto, en forma de árbol, de un documento XML analizado, permite el acceso aleatorio a piezas de datos particulares de un documento XML, también permite añadir nuevos elementos o eliminar elementos existentes. DOM requiere tener el modelo del objeto del documento completo en memoria, lo que generalmente es menos eficiente para búsquedas que implican varios ítems en documentos largos. En el 2000 surge JDOM para manejo optimizado de datos XML con Java. Es un API que se basa en árbol para crear, analizar y manipular documentos XML. JDOM representa un documento XML como un árbol completo disponible todo el tiempo y compuesto por elementos, atributos, comentarios, instrucciones, nodos y secciones entre otros. JDOM puede acceder y modificar cualquier parte del árbol en cualquier momento y los diferentes tipos de nodos del árbol son representados por clases concretas en lugar de interfaces. JDOM depende de un parser de SAX con un manejador de contenido común para analizar documentos y construir modelos o árboles JDOM a partir de estos y así evitar la sobrecarga de construir el árbol en memoria dos veces en dos representaciones diferentes[6]. Resultados En este artículo, se han expuesto las principales tecnologías disponibles para procesar documentos XML. Estas tecnologías se dirigen a diferentes niveles de abstracción y proporcionan diferentes niveles de utilización para el programador Java. Algunas de estas tecnologías como SAX, DOM y JDOM podrían relacionarse unas con otras. Por ejemplo, un constructor de documentos DOM podría usar un analizador SAX para generar un árbol DOM desde un documento XML. Como se mezclan, un desarrollador de aplicaciones XML podría verse tentado a elegir una de ellas para conseguir el mismo resultado, pero hacer esto traerá dificultades y pérdidas entre el rendimiento, el uso de memoria y la flexibilidad. Por ejemplo SAX podría traer eficiencia durante el mapeo de datos XML a objetos de negocio Java. DOM y especialmente JDOM podrían traer simplicidad y eficiencia en la edición de grandes modelos de documentos en memoria. En algunos casos, un modelo de objeto de documento podría ser elegible como la estructura de datos principal de la aplicación. Sin embargo, todos estos APIs necesitan ser considerados cuando implementamos una aplicación XML. Además con las nuevas versiones de SAX y la intercambiabilidad (como fuente y resultado) de SAX y DOM en algunos APIs, se pueden construir complejas redes de procesamiento XML combinando implementaciones estándares y personalizadas. En el siguiente ejemplo podemos comparar la simplicidad de JDOM frente al equivalente DOM, para crear un documento XML con un único elemento: <?xml version="1.0"?> <saludo>hola</saludo> Versión JDOM Element root = new Element( saludo ); root.settext( Hola ); Document doc = new Document(root); Versión DOM DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newdocumentbuilder(); DOMImplementation impl = builder.getdomimplementation(); Document doc = impl.createdocument(null, "saludo", null); Pag. 3

Text text = doc.createtextnode("hola"); doc.appendchild(text); Cómo podemos observar en el ejemplo anterior, JDOM hace el trabajo del programador más fácil. Conclusiones Las tecnologías XML se usan cada día más en servicios web y hoy en día con los APIs de Java para XML, se hace sencillo implementar servicios web y escribir aplicaciones que sean clientes de servicios web. De acuerdo a las características mostradas en este documento podemos comparar DOM y JDOM ya que SAX es de sólo lectura. JDOM es más eficiente en el manejo de memoria ya que no requiere usar factorías ni otros modelos avanzados de programación para crear un documento, define clases lo que hace más fácil la programación. En cambio, DOM no tiene una manera estándar de crear documentos, cada parser tiene implementados sus métodos específicos, siendo los programas dependientes del parser utilizado y trabaja a base de interfaces, generando con esto más código (ver figura 1). por lo que puede reducir el esfuerzo del programador en aproximadamente un 10 por ciento en la primer aplicación y posteriormente se reduce más al reutilizar código a través de las clases. JDOM es más rápido cargando y manipulando documentos, y los requerimientos de memoria son menores. Por lo tanto, JDOM es ligeramente más rápido que DOM usando la misma implementación (ver figura 2). El tiempo de procesamiento de un documento XML depende del parser usado y del tamaño del documento, teniendo un comportamiento lineal conforme se incrementarse el tamaño del documento, ya que entre más información se tenga el número de nodos generados en el árbol es mayor y por tanto el tiempo de procesamiento crece proporcionalmente. Tiempo 80 70 60 50 40 30 20 10 TIEMPO DE PROCESAMIENTO 0 SAX DOM JDOM Comparación de Código Necesario para cada Parser Figura 2: Tiempo de procesamiento para JDOM, SAX y DOM. 130 Número de Lineas 125 120 115 110 105 100 SAX DOM JDOM Figura 1. Comparación de número de líneas codificadas para cada parser. Finalmente, de acuerdo a los resultados expuestos podemos concluir que JDOM facilita la programación requiriendo de menos líneas de código que con DOM, Referencias 1. Mayurama Hiroshi, Tamura Kent, Uramoto Naohiko. Sitios Web con XML y Java. Prentice Hall, 2000. 2. Gutiérrez Abraham, Martínez Raúl. XML a través de Ejemplos. Alfaomega RA-MA. 2001 3. McLaughlin Brett, Java y XML, Ediciones Anaya Multimedia O reilly (Grupo Anaya, S.A.), Madrid, 2001. 4. Marchal Benoit, XML con Ejemplos, Ediciones Pearson Educación de Mexico, S.A. de C.V., Mexico, 2001. 5. Griffin John, Creación de sitios WEB con XML y SQL Server 2000, Ediciones Pearson Educación, S.A., Madrid, 2002. 6. http://java.sun.com/xml Pag. 4

Luz María Dorantes Hernández Egresada del Instituto Tecnológico de San Juan del Río, Qro. Docente del ITSJR y alumna de la maestría en Ingenieria de Software Distribuido de la Universidad Autónoma de Querétaro. Participación en concursos de creatividad asesorando a estudiantes, en proyectos académicos, en la organización de eventos académicos al interior del instituto. Ma. Teresa García Ramírez Maestra Tiempo Completo de la Facultad de Informática de la Universidad Autónoma de Querétaro, participación en cuerpos colegiados, en revisiones curriculares, en congresos como ponente ANIEI, CIIIEE, proyectos de investigación en el área de sistemas distribuidos y aplicaciones en Internet. Carlo Franco García Sánchez Egresado en 2005, actualmente estudiante de la maestría en Ingeniería de Software Distribuido, participación en congresos del ANIEI, CIIIEE. Colaborador en proyectos de investigación. Tesis para obtener el título de Ingeniero en Computación Desarrollo de páginas dinámicas (JSP) en Internet utilizando Apache. Pag. 5