Evaluación Comparativa de aplicaciones Web entre J2EE y Microsoft.NET



Documentos relacionados
JAVA EE 5. Arquitectura, conceptos y ejemplos.

Tema 1. Introducción a Java EE

JAVA ENTERPRISE EDITION (J2EE) ARQUITECTURA TECNOLOGÍAS (1/2) (L1)

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

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

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

FUNDAMENTOS DE PROGRAMACION CON C#

Capitulo 5. Implementación del sistema MDM

Aplicaciones web construidas a base de componentes:

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

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

POSGRADO EXPERTO.NET DESARROLLO DE SOFTWARE

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

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

CONCLUISIONES Y RECOMENDACIONES

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

1. INTRODUCCIÓN Y OBJETIVOS

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA

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

Capítulo 5. Cliente-Servidor.

"Diseño, construcción e implementación de modelos matemáticos para el control automatizado de inventarios

Capítulo VI. Estudio de Caso de Aplicación del Integrador de Información Desarrollado

Workflows? Sí, cuántos quiere?

JavaEE.

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

GUÍA TÉCNICA. Desarrollo de Proyectos en Plataforma Liferay en el Gobierno de Extremadura

INF 473 Desarrollo de Aplicaciones en

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

7.1 Java vs.net, la lucha se acrecienta

2.3. Lenguajes de programación del lado Servidor. ASP.NET (Active Server Pages).

ENTORNO DE DESARROLLO MICROSOFT.NET 2010

Unidad V: Programación del lado del servidor

Para obtener más información, vea Introducción al control DataRepeater (Visual Studio).

Capítulo I. Marco Teórico

Visual Studio 2008 es el conjunto de herramientas de

Introducción al Desarrollo de Aplicaciones Empresariales

Facultad de Ingeniería Escuela de Ciencias y Sistemas Estructura de Datos Guatemala 2013 JSF + JSP + RichFaces

Novedades. Introducción. Potencia

CAPÍTULO 1 Instrumentación Virtual

Estándares para el Uso de Herramientas de Desarrollo y Plataformas de Aplicaciones Web

SAP BusinessObjects Edge BI Standard Package La solución de BI preferida para. Empresas en Crecimiento

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

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

Mejor tecnología para aplicación práctica NOMAD

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

GUÍA TÉCNICA. Desarrollo de Sistemas de Información la plataforma Business Intellingence Pentaho

Ventajas del software del SIGOB para las instituciones

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

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

Capítulo 3 Diseño del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable

Capitulo III. Diseño del Sistema.

ORBERE. Memoria Técnica del Aplicativo de Gestión de la producción para ADIMDE

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

UNIVERSIDAD DE SALAMANCA

Anexo 4 Documento de Arquitectura

CAPÍTULO 3 DISEÑO DE LA ARQUITECTURA

Capítulo II. Arquitectura del Software

Elementos requeridos para crearlos (ejemplo: el compilador)

Visualización y modelado de elementos geográficos en dispositivos móviles. Capítulo 5: Aplicaciones cliente


CAPÍTULO 4 ANÁLISIS Y DISEÑO: e-commerce CONSTRUCTOR

Generador GeneXus JAVA

Instituto Tecnológico de Costa Rica

Desarrollo y servicios web Sesión 18

Windows Server 2012: Infraestructura de Escritorio Virtual

1. Definición. Open Source. Escalable. Alto desempeño. Arquitectura Modular. Producto de licencia de código abierto sin coste adicional.

CAPÍTULO 5 IMPLEMENTACIÓN DEL SISTEMA

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

Instalación y configuración de Windows SharePoint Services (WSS) 2003


Cómo puede ayudarle JBuilder en sus Desarrollos Java?

Plataforma desarrollo Java Formación elearning tutorizada en castellano. Fabricante: Java Grupo: Desarrollo Subgrupo: Master Java

CAPITULO 5 CASO DE ESTUDIO: ONTOLOGÍA PARA EL ANÁLISIS DE GRUPOS DE INVESTIGACIÓN (OAGI)

Objetos educativos y estandarización en e-learning: Experiencias en el sistema <e-aula>

CAPÍTULO 3 VISUAL BASIC

Novedades en Q-flow 3.02

Desarrollo de Software con

Práctica 1: Instalación de un servidor de aplicaciones web y diseño de la vista de una aplicación

5.1 Introducción a Servicios Web

I. DATOS DE IDENTIFICACIÓN. 1. Unidad Académica: _Facultad de Ciencias

Módulo 1 El lenguaje Java

INFORME TECNICO PARA LA ADQUISICIÓN DE LICENCIAS SOFTWARE OFIMÁTICO

Capítulo 3. Análisis y Diseño

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

Unidad II. - Las técnicas en las que se basó, las categorías de análisis o ejes centrales que permiten guiar el proceso de investigación.

Ingeniería de Software

Comparación entre Active Reports, Crystal Reports, y MS Reporting Services

FAMILIA PROFESIONAL: Informática y Comunicación CICLO SUPERIOR DESARROLLO DE APLICACIONES MULTIMEDIA DAM 350 HORAS

CAPITULO IV. HERRAMIENTAS DE CÓDIGO ABIERTO

Programador en Plataforma Java y XML

Sistema de marketing de proximidad

Versión: 01. Fecha: 01/04/2013. Código: F004-P006-GFPI GUÍA DE APRENDIZAJE Nº 1 1. IDENTIFICACIÓN DE LA GUIA DE APRENDIZAJE

INTRODUCCIÓN A JAVA. Índice

CAPITULO III.- SELECCIÓN DE PLATAFORMA Y ENTORNO DE DESARROLLO

Panorámica de la asignatura

Curso de Java EE Todos los Derechos Reservados Global Mentoring 2012 Experiencia y Conocimiento para tu Vida 1

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

1 EL SISTEMA R/3 DE SAP AG

BASES DE DATOS TEMA 3 MODELO ENTIDAD - RELACIÓN

SISTEMAS DE INFORMACIÓN II TEORÍA

Transcripción:

UNIVERSIDAD CATOLICA DE TEMUCO FACULTAD DE INGENIERIA Evaluación Comparativa de aplicaciones Web entre J2EE y Microsoft.NET por MIGUEL ANGEL GARRIDO PINO Trabajo de Título presentado a la Facultad de Ingeniería de la Universidad Católica de Temuco Para Optar al Título de Ingeniero de Ejecución en Informática - Temuco, 2006

UNIVERSIDAD CATOLICA DE TEMUCO FACULTAD DE INGENIERIA COMISIÓN EXAMEN DE TITULO Este Examen de Título ha sido realizado en la Escuela de Informática. Presidente Comisión :... Sr. Oriel Herrera Gamboa Ingeniero Civil Industrial M / Informática Doctor (c) En Ciencias de la Computación Profesor Guía:... Sr. Gustavo Donoso Montoya Ingeniero Civil Informático Profesor Informante :... Sr. Alejandro Mellado Gatica Ingeniero de Ejecución en Informática Magíster en Telecomunicaciones Secretario Académico:... Escuela de Informática Sr. Luís Alberto Caro Saldivia Ingeniero Civil en Informática Temuco Enero 2006.

FACULTAD DE INGENIERÍA ESCUELA DE INGENIERÍA INFORMÁTICA INFORME TRABAJO DE TÍTULO TÍTULO : EVALUACION COMPARATIVA DE APLICACIONES WEB ENTRE J2EE Y MICROSOFT.NET ALUMNO : MIGUEL ANGEL GARRIDO PINO En mi condición de profesor guía de este trabajo puedo efectuar las siguientes observaciones: El alumno Miguel Garrido, en el transcurso del desarrollo del proyecto, mostró una buena disposición al trabajo, fue constante en el desarrollo del mismo y obtuvo resultados. También, como profesor guía pienso que los temas podrían haberse trabajado desde una perspectiva más técnica y con mayor profundidad, en algunos aspectos. Por ejemplo, en las búsquedas de conceptos sobre motores es débil ya que no considera explícitamente los problemas de la sinonimia lo que pone en duda la rigurocidad de las pruebas realizadas en el estudio, haciendo que éste sea menos creible en su totalidad. Del mismo modo, las pruebas de rendimiento no presentan bases estadísticas explícitas lo que, de igual forma que en el caso de la sinonimia, le resta peso a los resultados. Los dos aspectos anteriores le restan méritos al esfuerzo desplegado y evidencian falencias en esta área específica, que pueden no ser relevantes en su vida profesional pero que en el marco del presente trabajo si lo son. Por último, el extenso informe es, en general, de buena calidad, pese a que presenta algunos problemas en cuanto a la síntesis, el uso de lenguaje técnico y la precisión de las referencias bibliográficas, en algunos casos. En general pienso que si bien Miguel Garrido tiene los merecimientos necesarios para ser considerado Ingeniero de Ejecución podría haber obtenido logros mayores desde la perspectiva de focalizar y profundizar los aspectos relevantes del presente trabajo. De acuerdo a estas consideraciones califico el desarrollo de éste Trabajo de Título con nota 6,0 (seis coma cero). Temuco, 17 de enero del 2006 Gustavo Andrés Donoso Montoya Profesor Guía

UNIVERSIDAD CATÓLICA DE TEMUCO FACULTAD DE INGENIERÍA INFORME TRABAJO DE TÍTULO TÍTULO ALUMNO : Evaluación Comparativa de aplicaciones WEB entre J2EE y Microsoft.NET : Miguel Angel Garrido Pino En mi condición de profesor informante de este trabajo puedo efectuar las siguientes observaciones: El trabajo esta bien estructurado, detallado y se han usado las herramientas metodológicas de manera adecuada. Se han cumplido los objetivos. Esta investigación comparativa ha sido rigurosa tanto en el estudio teórico como el práctico. De acuerdo a estas consideraciones califico este trabajo con nota 7,0 (Siete coma cero) Temuco, 17 de Enero de 2006 Alejandro Mauricio Mellado Gatica Profesor Informante

Dedicatoria. Dedico este trabajo a mis padres y hermano, además mencionar en especial a mi abuelo, quien siempre estuvo atento a que su nieto fuese Ingeniero.

Agradecimientos Agradezco a Dios y mi familia por la oportunidad de estudiar lo que siempre quise, a mis amigos más cercanos, quienes estuvieron a mi lado durante todo este tiempo, gracias por su compañía. Además a todas las personas que de una u otra forma estuvieron relacionadas en el cumplimiento de este sueño. También mensionar a la persona a la cual siempre quise, gracias por compartir conmigo muchos de éstos momentos. Para todos ustedes mis agradecimientos.

ÍNDICE Índice...i Índice de Figuras...ix Índice de Tablas...xi Índice de Anexos....xiii Síntesis.........xv 1. Introducción.....1 2. Objetivos del Proyecto..5 2.1. Objetivo General.....6 2.2. Objetivos Específicos........6 2.3. Descripción del Problema......7 3. Estudios de apoyo al proyecto....8 3.1. Estudios Realizados por Ricardo Chamorro Villar......9 3.2. Estudio realizado por La Pontifícia Universidad Católica de Chile...10 4. Introducción a la Plataforma JAVA.....12 4.1. Introducción............ 13 4.2. La Máquina Virtual de JAVA.........................14 4.3. Herramientas de Desarrollo..........................14 Evaluación Comparativa entre J2EE y.net en Aplicaciones Web i

4.3.1 Tipos de Herramientas de Aplicación.............15 4.4. Arquitecturas JAVA..............................16 4.4.1. J2EE (Java 2 Enterprise Edition)............16 4.4.2. J2SE (Java 2 Standard Edition).....16 4.4.3. J2ME (Java 2 Micro Edition).....16 4.5. Definición de JAVA2 EE... 17 4.5.2. Componentes de Arquitectura J2EE......19 4.5.2. Principales API s de Arquitectura J2EE......20 4.5.3. Características de J2EE.....22 4.5.4. Tipos de Aplicaciones J2EE....23 4.5.5. Acceso a Datos en J2EE........26 5. Introducción a La Plataforma Microsoft.NET 27 5.1. Introducción....28 5.2. Desarrollo de Aplicaciones en.net.. 29 5.3. Programación WEB con Microsoft.Net. 31 5.4. Introducción a.net Framework.....32 5.4.2. Descripción de la Arquitectura.NET Framework......33 5.4.2.1. CLR, Common Language Runtime..34 5.4.3. Implementación WEB con la Arquitectura Framework.NET.35 5.5. Acceso a datos en Microsoft.NET.....36 Evaluación Comparativa entre J2EE y.net en Aplicaciones Web ii

6. Introducción a la Comparación de las plataformas J2EE y.net........37 6.1. Introducción 38 6.2. Análisis de las Compañías..39 6.4. Delimitación de la Comparación Web...41 6.5. Páginas dinámicas en J2EE....42 6.5.1. Requisitos de JSP... 43 6.6. Páginas dinámicas en.net...44 6.6.1. Web Forms..44 7. Programas de Desarrollo para las Plataformas J2EE y.net 46 7.1. Introducción...47 7.2. Principales IDE s de Desarrollo en J2EE....48 7.2.1. Netbeans......49 7.3. Desarrollo en Microsoft.NET con Visual Studio...50 8. Elección de IDE s de Desarrollo para las Plataformas J2EE y.net...51 8.1. Introducción...52 8.2. Elección de IDE de Desarrollo para J2EE. 53 8.3. Elección de IDE de Desarrollo para.net...53 8.4. Principales Características de IDE s Seleccionados....54 9. Áreas de Evaluación de las Plataformas J2EE y.net...55 9.1. Introducción.....56 Evaluación Comparativa entre J2EE y.net en Aplicaciones Web iii

9.2. Definición de Áreas de Evaluación... 57 9.2.1. Definición de Áreas de Evaluación 1: Aprendizaje....57 9.2.1.1. Criterios de Aprendizaje....57 9.2.2. Definición de Áreas de Evaluación 2: Rendimiento...58 9.2.2.1. Criterios de Rendimiento. 58 9.2.3. Definición de Áreas de Evaluación 3: Explotación y Uso......59 9.2.3.1. Criterios de Explotación.. 59 9.2.4. Definición de Áreas de Evaluación 4: Desarrollo.. 60 9.2.4.1. Criterios de Desarrollo....60 9.2.5. Definición de Áreas de Evaluación 5: Uso de Licencias...61 9.2.5.1. Criterios de Licencia Libre...61 9.2.6. Definición de Áreas de Evaluación 6: Compatibilidad...62 9.2.6.1. Criterios de Compatibilidad...62 9.3. Definición de Criterios...63 9.3.1 Definición de Criterios de Aprendizaje...63 9.3.1.1. Información Disponible 63 9.3.1.2. Información Disponible en Español....63 9.3.1.3. Curva de Aprendizaje...63 9.3.2. Definición de Criterios de Rendimiento. 64 9.3.2.1. Rendimiento Independiente. 64 9.3.2.1.1. Uso de Recursos....64 9.3.2.1.2. Capacidad de Respuesta....64 9.3.2.1.3. Requerimientos Mínimos.....64 Evaluación Comparativa entre J2EE y.net en Aplicaciones Web iv

9.3.2.1.4. Escalabilidad.. 65 9.3.2.2. Rendimiento con Base de Datos.. 65 9.3.2.2.1. Uso de Recursos....65 9.3.2.2.2. Capacidad de Respuesta. 65 9.3.2.2.3. Requerimientos Mínimos......65 9.3.2.2.4. Escalabilidad......65 9.3.2.2.5. Componentes Necesarios......65 9.3.3. Definición de Criterios de Explotación y Uso. 65 9.3.3.1. Curva de Explotación 66 9.3.3.2. Uso de la Tecnología....66 9.3.3.3. Distribución..66 9.3.4. Definición de Criterios de Desarrollo.. 67 9.3.4.1. Interfaz de Usuario....67 9.3.4.2. Accesibilidad....67 9.3.5. Definición de Criterios de Uso de Licencias...67 9.3.5.1. Licencia Libre......68 9.3.5.2. Código Abierto....68 9.3.5.3. Costos...68 9.3.6. Definición de Criterios de Compatibilidad....68 9.3.6.1. Portabilidad...69 9.3.6.2. Navegadores Web.69 Evaluación Comparativa entre J2EE y.net en Aplicaciones Web v

10. Postulados de Comparación de las Plataformas J2EE y.net...70 10.1. Introducción. 71 10.2. Ventajas y Desventajas.72 10.3. Postulados de Comparación. 72 10.2.2.1. Postulado de Comparación 1.. 72 10.2.2.2. Postulado de Comparación 2.. 74 10.2.2.3. Postulado de Comparación 3..74 10.2.2.4. Postulado de Comparación 4.. 75 10.2.2.5. Postulado de Comparación 5.. 76 10.2.2.6. Postulado de Comparación 6.. 78 10.2.2.7. Postulado de Comparación 7.. 79 10.2.2.8. Postulado de Comparación 8.. 80 10.4. Resumen de Postulados...81 11. Sistemas Web con Base de Datos en J2EE y.net.....82 11.1. Introducción.. 83 11.2. Motores de Bases de Datos a utilizar.. 84 11.2.1. Mysql....84 11.2.2. Postgres.. 86 11.2.3. Ms Access.. 87 11.3. Aplicaciones Web con Base de Datos en J2EE... 88 11.3.1. Introducción...88 11.3.2. Conexión a base de datos con JDBC......89 Evaluación Comparativa entre J2EE y.net en Aplicaciones Web vi

11.3.3. Sistema de Base de Datos con Mysql y Netbeans.....90 11.3.4. Sistema de Base de Datos con Microsoft Access y Netbeans...91 11.3.5. Sistemas de Base de Datos con PostgresSql y Netbeans...92 11.3.6. Información Adicional.....93 11.4. Aplicaciones Web con base de datos en.net.....94 11.4.1. Introducción...94 11.4.2. Sistema de Base de Datos MySQL y Visual Studio.. 95 11.4.3. Sistema de Base de Datos MS Access y Visual Studio.....97 11.4.4. Sistema de Base de Datos PostgreSQL y Visual Studio...99 11.4.5. Información Adicional....101 12. Desarrollo de Pruebas de Comparación entre las plataformas..102 12.1. Introducción.... 103 12.2. Diseño de Pruebas Comparativas.....104 12.2.1. Diseño de Pruebas de Aprendizaje..104 12.2.2. Diseño de Pruebas de Rendimiento....105 12.2.3. Diseño de Pruebas de Explotación y Uso 106 12.2.4. Diseño de Pruebas de Desarrollo....106 12.2.5. Diseño de Pruebas de Uso de Licencias.....106 12.2.6. Diseño de Pruebas de Compatibilidad......107 12.3. Creación Tablas de Evaluación y Resultados... 107 12.4. Ejecución y Resultados de Pruebas Comparativas....109 12.4.1. Ejecución y Resultados Pruebas de Aprendizaje 109 Evaluación Comparativa entre J2EE y.net en Aplicaciones Web vii

12.4.1.3. Información adicional a la tabla... 112 12.4.2. Ejecución y Resultados Pruebas de Rendimiento...112 12.4.2.4. Automatización de Prueba....118 12.4.3. Ejecución y Resultados Pruebas de Explotación y Uso. 120 12.4.3.2. Automatización de Prueba....122 12.4.4. Ejecución y Resultados Pruebas de Desarrollo..124 12.4.5. Ejecución y Resultados Pruebas de Uso de Licencias...126 12.4.6. Ejecución y Resultados Pruebas de Compatibilidad..127 13. Conclusiones Finales de Pruebas Realizadas 130 13.1. Introducción...131 13.2. Conclusiones de Pruebas de Aprendizaje...132 13.3. Conclusiones de Pruebas de Rendimiento.. 134 13.4. Conclusiones de Pruebas de Explotación y Uso...137 13.5. Conclusiones de Pruebas de Desarrollo.139 13.6. Conclusiones de Pruebas de Uso de Licencias..142 13.7. Conclusiones de Pruebas de Compatibilidad. 144 14. Conclusión...147 15. Bibliografía..152 Anexos....155 Evaluación Comparativa entre J2EE y.net en Aplicaciones Web viii

ÍNDICE DE FIGURAS. 3. Estudios de Apoyo al Proyecto. 3.2.1. Figura 1: Estudio CetiUC....11 4. Introducción a la Plataforma JAVA. 4.2.1. Figura 2: Esquema Máquina Virtual JAVA....14 4.5.1. Figura 3: Esquema de Aplicación en Capas....18 4.5.2.1. Figura 4: Conjunto de API's J2EE........19 4.5.4.1. Figura 5: Estructura archivo JAR.....24 4.5.4.2. Figura 6: Estructura archivo WAR...24 4.5.4.3. Figura 7: Estructura archivo EAR.... 25 4.5.4.4. Figura 8: Estructura archivo RAR....25 5. Introducción a la Plataforma Microsoft.NET 5.2.1. Figura 9: Modelo de arquitectura de aplicaciones.net.....29 5.4.1. Figura 10: Esquema.NET Framework....32 11. Sistemas Web con Base de Datos en J2EE y.net. 11.2. Figura 11: Modelo de Aplicación Web con Base de Datos. 84 11.3.2.2 Figura 12: Vista de programación en Netbeans..89 11.4.1.1. Figura 13: Vista de programación en Visual Studio.NET.. 95 Evaluación Comparativa entre J2EE y.net en Aplicaciones Web ix

12. Desarrollo de Pruebas de Comparación entre las plataformas. 12.4.1.1. Figura 14: Curva de Aprendizaje. 111 12.4.2.1. Figura 15: Gráfica rendimiento normal...... 113 12.4.2.2. Figura 16: Gráfica ejecución Netbeans....113 12.4.2.3. Figura 17: Gráfica ejecución Visual Studio.NET... 114 12.4.2.4.1. Figura 18: Automatización Rendimiento primera instancia.. 118 12.4.2.4.2. Figura 19: Automatización Rendimiento segunda instancia...119 12.4.2.4.3. Figura 20: Automatización Rendimiento resultados...119 12.4.3.1. Figura 21: Gráfica Explotación Estudio U. de Chile 2004...122 12.4.3.2.1. Figura 22: Automatización Explotación....123 Evaluación Comparativa entre J2EE y.net en Aplicaciones Web x

ÍNDICE DE TABLAS 6. Comparaciones Principales 6.3. Tabla 1: Tabla Comparativa 1: Primeras Comparaciones......40 6.5.1. Tabla 2: Ejemplo JSP.. 42 6.7. Tabla 3 : Ejemplo ASPx...45 7. Programas de Desarrollo para las Plataformas.Net y J2EE 7.2.1. Tabla 4: Tabla Explicativa 1: IDE s Desarrollo J2EE....48 8. Elección de IDE s de desarrollo para las Plataformas.NET y J2EE. 8.4.1. Tabla 5: Tabla Comparativa 2: Principales Características.54 11. Sistemas Web con Base de Datos en J2EE y.net. 11.3.2.1. Tabla 6: Ejemplo Conexión Base de Datos Postgres.89 11.3.3.1. Tabla 7: Código cargar.jsp de proyecto JSPMysql...90 11.3.4.1. Tabla 8: Código eliminar.jsp de proyecto BaseWeb.. 91 11.3.5.1. Tabla 9: Código insertar.jsp de proyecto JSPpost...92 11.4.2.1. Tabla 10: Parte código inicio.aspx de proyecto ASPxMysql.96 11.4.2.2. Tabla 11: Parte código inicio.vb de proyecto ASPxMysql...96 11.4.3.1. Tabla 12: Parte código insertar.aspx de proyecto ASPAccess...98 11.4.4.1. Tabla 13: Parte código insertar.vb de proyecto ASPpost.100 Evaluación Comparativa entre J2EE y.net en Aplicaciones Web xi

12. Desarrollo de Pruebas de Comparación entre las Plataformas J2EE y.net. 12.3.1. Tabla 14: Tabla de Evaluación de Criterios...108 12.3.2. Tabla 15: Tabla de Resultados...108 12.4.1.2. Tabla 16: Tabla de Evaluación 1: Pruebas de Aprendizaje.. 111 12.4.2.5. Tabla 17: Tabla de Evaluación 2: Pruebas de Rendimiento.....120 12.4.3.3. Tabla 18: Tabla de Evaluación 3: Pruebas de Explotación y Uso....124 12.4.4.1. Tabla 19: Tabla Explicativa 2: Requerimientos J2EE..125 12.4.4.2. Tabla 20: Tabla Explicativa 3: Requerimientos.NET.125 12.4.4.3. Tabla 21: Tabla de Evaluación 4: Pruebas de Desarrollo 126 12.4.5.1. Tabla 22: Tabla de Evaluación 5: Pruebas de Uso de Licencias. 127 12.4.6.1. Tabla 23: Tabla de Evaluación 6: Pruebas de Compatibilidad...129 13. Conclusiones Finales de Pruebas Realizadas. 13.2.1. Tabla 24: Tabla Resultados 1: Aprendizaje J2EE v/s.net 133 13.3.1. Tabla 25: Tabla Resultados 2: Rendimiento J2EE v/s.net..136 13.4.1. Tabla 26: Tabla Resultados 3: Explotación y Uso J2EE v/s.net.139 13.5.1. Tabla 27: Tabla Resultados 4: Desarrollo J2EE v/s.net..141 13.6.1. Tabla 28: Tabla Resultados 5: Uso de licencias J2EE v/s.net...143 13.7.1. Tabla 29: Tabla Resultados 6: Compatibilidad J2EE v/s.net..146 14. Conclusión. 14.1. Tabla 30: Conclusiones Finales..149 14.2. Tabla 31: Ventajas y Desventajas J2EE 150 14.3. Tabla 32: Ventajas y Desventajas.NET. 151 Evaluación Comparativa entre J2EE y.net en Aplicaciones Web xii

INDICE DE ANEXOS Anexo A. Códigos J2EE. a.1.1. cargar.jsp de JspMysql. 157 a.1.2. ingresar.jsp de JspMysql..157 a.1.3. index.jsp de JspMysql..158 a.2.1. buscar.jsp de JspPost....159 a.2.2. buscado.jsp de JspPost.. 160 a.2.3. buscado2.jsp de JspPost....161 a.3.1. modificar.jsp de JspAccess...162 a.3.2. modificado.jsp de JspAccess....163 Anexo B. Códigos.NET. b.1.1. cargar.vb de ASPxMysql...166 b.1.2. cargar.aspx de Aspx Mysql.......167 b.2.1. insertar.aspx de AspxPost.. 169 b.2.2. buscar.vb de Aspx Post. 171 Anexo C. Realización de Pruebas Anexas. c.1. Pruebas anexas de Aprendizaje....172 Evaluación Comparativa entre J2EE y.net en Aplicaciones Web xiii

Anexo D. Estudio de la Web Chilena Universidad de Chile 2004. d. Estudio de la Web Chilena......173 Anexo E. Modelo Estadistico de Rendimiento e. Consideraciones Estadísticas de Rendimiento...176 Evaluación Comparativa entre J2EE y.net en Aplicaciones Web xiv

Síntesis El presente trabajo tiene como objetivo informar al lector que aspectos y conocimientos se necesitan para seleccionar la tecnología que se debe utilizar, para implementar de mejor manera el desarrollo de aplicaciones Web, obteniendo los mejores resultados con la optimización de los recursos necesarios para desarrollar dicha tarea. Para esto, en un principio se contempló la investigación y estudio en profundidad de las dos plataformas de desarrollo más utilizadas en el mercado, J2EE y Microsoft.NET. Con esta información, adquirida por medio de la búsqueda y estudio a través de distintos manuales y sitios dedicados al tema, podrán familiarizar al usuario con estas tecnologías. Así, se distinguirán las necesidades, requerimientos y aspectos importantes que se deben conocer para dedicarse por completo a una de estas plataformas de desarrollo en la realización de este tipo de aplicaciones. Posteriormente se crearán áreas de evaluación, dentro de las cuales se definen ciertos criterios de comparación adquiridos en el proceso de este trabajo. Esto se plasma en tablas comparativas, las cuales permiten dar un componente de certeza sobre esta investigación. Esto, junto a la realización de pruebas definidas, ayuda a obtener conclusiones sobre el comportamiento y funcionalidad de aplicaciones de ambiente Web en estas tecnologías, que permitan dilucidar ventajas y desventajas sobres éstas. Luego se desarrollan prototipos de aplicaciones Web, que van desde simples aplicaciones a sistemas con conexiones a distintos motores de bases de datos que permitirán reflejar de manera práctica aspectos que permitan resolver la elección de que tecnología ocupar. Evaluación Comparativa entre J2EE y.net en Aplicaciones Web xv

1. Introducción. Evaluación Comparativa entre J2EE y.net en Aplicaciones Web - 1 -

El avance informático a través del tiempo es cada vez más vertiginoso y caótico. Mientras ocurren los hechos, la tecnología, las plataformas de trabajo y los lenguajes de programación avanzan a velocidades que difícilmente se lograría estar al tanto de todo. En esta carrera, se debe estar atento a tales cambios y avances para no quedar atrás para así poder competir y mantenerse dentro de este ambiente. En la utilización de tecnologías de información, el uso del Web es primordial. El poder tener aplicaciones que puedan mantener procesos difícilmente llevados por otro medio y, que estén actualizados y disponibles para todo el mundo, hace que sea necesario el desarrollo de éstas por las mismas empresas, proceso que difiere a otro tipo de problemas, los cuales pueden ser solventados por softwares ya desarrollados. En esta área de la programación, son dos las plataformas que destacan sobre el resto, siendo las más utilizadas y aprobadas por los usuarios. J2EE, una mejoría importante del lenguaje de programación Java, y.net, la nueva tecnología de Microsoft, que implementa de mejor manera aplicaciones desarrolladas en el pasado por esta empresa, se imponen fuertemente en el mercado de desarrollo ocupando más de la mitad de éste por sobre otras plataformas de diseño. Tanto las empresas como los usuarios relacionados con el desarrollo de aplicaciones Web, ocupan estas tecnologías, las familiarizadas con tecnología open source y de sistemas operativos Linux utilizan la tecnología JAVA, que no presenta problemas con sus aplicaciones y sistemas desarrollados, teniendo el mismo rendimiento en Sistemas Microsoft. Evaluación Comparativa entre J2EE y.net en Aplicaciones Web - 2 -

Por su parte ésta última, con el lanzamiento de la tecnología.net ha absorbido la mayor parte del desarrollo de aplicaciones de la mediana y pequeña empresa sin menospreciar las grandes corporaciones que han hecho suya esta norma. Pues bien, a la hora de abordar algún problema Web, Qué tecnología se debe adoptar?, Qué plataforma de trabajo es mejor? Y por qué?, Por qué elegir una, y no la otra?, Qué plataforma requiere más recursos, tanto humanos como técnicos?, Qué costos debe considerar el usuario, al acceder a una de estas plataformas? Este estudio explicará y dará respuestas, a cada una de las preguntas planteadas, dando justificaciones técnicas, teóricas y prácticas. Poniéndose en lugar del usuario y partiendo desde el inicio con cada una de las tecnologías, entregando una orientación comparativa entre ambas, analizando diferencias y parecidos en cada área de aplicación, para ser utilizado de manera específica en la toma de decisiones y el conocimiento previo que se necesita antes de dedicarse por completo a una de estas plataformas de trabajo. Para comentar el contenido de este documento se puede decir, en el capítulo 2 se presentan los objetivos de este trabajo. En el capítulo 3 se mencionan estudios de apoyo a este proyecto. En los capítulos 4 y 5 se entrega la información necesaria para el conocimiento e interiorización sobre cada plataforma de desarrollo, tanto J2EE como.net. En el capítulo 6 se hace una comparación preliminar de las tecnologías. En los capítulos 7 y 8 se hace referencia a los programas de desarrollo de aplicaciones sobre estas plataformas y la elección de éstos para seguir con el proceso de evaluación comparativa. Evaluación Comparativa entre J2EE y.net en Aplicaciones Web - 3 -

En el capítulo 9 se detallan las áreas de evaluación en las cuales se basará la comparación de ambas plataformas. En el capítulo 10 se describen postulados de comparación que demuestran ventajas y desventajas sobre estas tecnologías de desarrollo. Posteriormente en el capítulo 11, se explica el desarrollo Web de aplicaciones con manejo de bases de datos y la creación de este tipo de sistemas tanto para J2EE como.net. En el capítulo 12 se crean y detallan las pruebas de comparación a realizar basadas en los criterios definidos anteriormente. En el capítulo 13 se definen las conclusiones sobre los criterios en base a los resultados obtenidos en la fase de pruebas, para luego describir los aspectos más importantes de este proyecto. Dejando para el capítulo 14 la conclusión final de este trabajo. En los anexos a esta investigación se tiene. Para los Anexos A y B, se encuentran algunos de los códigos más representativos de los sistemas Web desarrollados en las distintas etapas de esta evaluación comparativa-práctica. Para la plataforma J2EE, Anexo A, y para Microsoft.NET el Anexo B. Dentro del Anexo C se encuentran pruebas anexas no incluías en la etapa de pruebas comparativas. Y para concluir el Anexo D hace referencia al Estudio de la Web Chilena desarrollada por la Universidad de Chile el año 2004 y para la documentción final, el Anexo D, las Consideraciones Estadísticas de Rendimiento. Evaluación Comparativa entre J2EE y.net en Aplicaciones Web - 4 -

2. Objetivos Del Proyecto. Evaluación Comparativa entre J2EE y.net en Aplicaciones Web - 5 -

En el trabajo que se presenta a continuación se contemplan los siguientes objetivos. Estos se desarrollaran a través del avance de la investigación, para lo cual se han definido en los capítulos de esta investigación, lo necesario para poder establecer las pautas de comparación necesarias para ambas plataformas de desarrollo. Estos objetivos son: 2.1. Objetivo General. El Objetivo principal de este proyecto es realizar un análisis comparativo-práctico de las plataformas de desarrollo J2EE y.net en Aplicaciones Web. 2.2. Objetivos Específicos. A partir del Objetivo General establecido se pueden definir ciertos objetivos específicos los cuales permitan un buen desarrollo de la investigación. Estos son: Investigar, documentar y clasificar información relacionada con el tema. Establecer un diseño de comparación en cada área, que permita identificar ventajas y desventajas de estos lenguajes. Realizar un análisis comparativo, desarrollando módulos de comparación y aplicaciones entre las 2 plataformas. Definir y Realizar pruebas comparativas las cuales permitan realizar tablas explicativas sobre ventajas y desventajas sobre estas plataformas. Dar conclusiones puntuales a cada punto desarrollado, para que éste documento sirva como una herramienta en la toma de decisiones. Evaluación Comparativa entre J2EE y.net en Aplicaciones Web - 6 -

Mediante estos puntos se quiere dar respuesta al planteamiento propuesto, lo cual conlleva a poner en práctica la información recolectada en la primera etapa del proyecto para luego ir desarrollando los temas posteriores definiendo una metodología de comparación y estableciendo los criterios que se implementarán en la etapa de pruebas. 2.3. Descripción del Problema. En la actualidad, muchos han abordado el tema de explicar la mejor alternativa de desarrollo entre J2EE y.net. Algunos desarrollando ideas y comentarios a base de su propia experiencia con cada una de estas plataformas, otros, tratando de explicar al usuario lo que a su modo de ver es mejor, (muchas veces cayendo en fanatismos), lo cual nubla el juicio al basarse en las tecnologías en las cuales trabajan o prestan servicio. Además cabe señalar que estudios hechos y sitios dedicados al tema no detallan en profundidad las ventajas y desventajas mencionadas para cada plataforma, haciendo de estas conclusiones bastante subjetivas a la hora de desarrollar aplicaciones Web. Tomando esto en consideración, se determinó ser un medio de respuesta a la interrogante de decisión de desarrollo, la cual fuese posible demostrar mediante el estudio y posterior creación de áreas de evaluación y criterios que permitan demostrar en base a pruebas, que tecnología tiene un mejor evaluación frente a la otra en aspectos de diseño, desarrollo y ejecución de aplicaciones Web. Evaluación Comparativa entre J2EE y.net en Aplicaciones Web - 7 -

3. Estudios de Apoyo al Proyecto. Evaluación Comparativa entre J2EE y.net en Aplicaciones Web - 8 -

3.1. Estudio Realizado por Ricardo Chamorro Villar. En estudios realizados con anterioridad, destacó el realizado por Don Ricardo Chamorro Villar, el cual logró dar luces a una investigación personal en la cual desarrolla módulos de comparación a grandes rasgos en los cuales definía algunos ítems a considerar. En la página http://www.ciberteca.net/articulos/programacion/net/ se encuentran algunos aspectos de su experiencia en ámbitos de: apoyo de compañías, analogías y diferencias, madurez de la plataforma y otras. En breves capítulos ofrece una orientación, de, lo que a su parecer, cree que son aspectos importantes a la hora de comparar a ambas plataformas de desarrollo. En su investigación ahonda en aspectos técnicos como en el tipo de compilación utilizada y bajo que arquitectura se escriben los códigos, no necesariamente definidos para alguna aplicación de tipo Web, sino más bien en características generales. Considerando este estudio para ser llevado por grandes empresas que cuenten con presupuestos notorios a la hora de montar alguna aplicación bajo estas tecnologías. Por esto, este documento sirvió de orientación y guía para algunos aspectos de la investigación realizada, con la exclusión del componente personal ya que este pareciese no ser totalmente objetivo, para lo cual solo se consideró los aspectos comparativos y no sus conclusiones. Evaluación Comparativa entre J2EE y.net en Aplicaciones Web - 9 -

3.2 Estudio realizado por La Pontificia Universidad Católica de Chile. La Pontificia Universidad Católica de Chile realizó un estudio llamado Estudio Nacional sobre Tecnologías de la Información en el año 2004 a través de Cetiuc, (Centro de estudios de tecnologías de información de la Universidad Católica), el cual determinó las tecnologías utilizadas por las empresas nacionales, las en expansión y las que están en algún proceso de utilización. En ella se analizaron distintas empresas a lo largo del país comprendiendo 481 empresas nacionales y multinacionales con presencia en el país, cuya facturación anual fuese igual o superior a MMUS$ 2.5, e instituciones pertenecientes al Gobierno. Estas compañías corresponden al ranking de empresas publicado en el diario Estrategia el 31 de marzo del año 2004, un conjunto de firmas de facturación acorde a la definición del universo de estudio, y organismos de Gobierno, excluyendo a Ministerios, Subsecretarías y Municipalidades. En su sección Qué tecnologías se pretenden incorporar?, arrojó los resultados mostrados en la Figura 1. Evaluación Comparativa entre J2EE y.net en Aplicaciones Web - 10 -

3.2.1. Figura 1: Estudio CetiUC Este estudio de la Universidad Católica sirve de apoyo a este trabajo de investigación, considerando a ambas plataformas como las más utilizadas y con mayor viabilidad a futuro, lo que en sí es un aporte para decir el porqué de la comparación de estas plataformas y no de otras. Indica: J2EE: Se utiliza 30.8 % Planes a concretarse 2006: 11,3.NET: Se utiliza 26,5% Planes a concretarse 2006: 22,8 Evaluación Comparativa entre J2EE y.net en Aplicaciones Web - 11 -

4. Introducción a la Plataforma JAVA. Evaluación Comparativa entre J2EE y.net en Aplicaciones Web - 12 -

4.1. Introducción. JAVA fue desarrollado a finales de los años ochenta por Sun Microsystems, su objetivo principal nace en sus primeras versiones, como un lenguaje familiar, con similitudes a C++. Este concepto se puede definir como un estándar de desarrollo a nivel informático que proporciona las herramientas necesarias para la creación de aplicaciones de todo tipo. Además es un lenguaje orientado a objetos, que soporta características como: la encapsulación, la herencia, el polimorfismo y el enlace dinámico. Por otra parte JAVA es una de las plataformas que cuenta con mayor acogida para la construcción de aplicaciones Web multinivel. Su Arquitectura J2EE (Java 2 Platform, Enterprise Edition) ofrece conceptos básicos de componentes, herramientas y ambientes de desarrollo que permiten generar programas o páginas dinámicas desplegables en los distintos browsers de la Web. La principal característica de JAVA es la capacidad de ejecutarse en cualquier máquina y sobre cualquier sistema operativo o arquitectura, manteniendo las facilidades básicas del lenguaje. En el ámbito Web, JAVA da la capacidad de desplazar el control de la interactividad de los servidores hacia las máquinas de los usuarios, permitiendo la utilización de distintos componentes que son interpretados por los navegadores Web y en los casos correspondientes por la máquina virtual de JAVA. Un ejemplo de esto es la carga de "applets", programas compactos y precompilados que generan animaciones y sonidos sobre páginas Web. Otra característica propia de JAVA es el acceso a herramientas de desarrollo de licencia libre que permite a los usuarios un fácil acceso a esta tecnología. Evaluación Comparativa entre J2EE y.net en Aplicaciones Web - 13 -

4.2. La Máquina Virtual de JAVA. La máquina virtual de JAVA, es una capa lógica que hace creer al programa Java que se ejecuta en un computador (con registros, memoria y procesador), cuando en realidad sólo ve una reconstrucción lógica de éste. Para ejecutar un programa Java compilado, es preciso también que se cuente con una implementación de la máquina virtual específica donde se desea ejecutar, la cual efectúa la transformación del p-code en un programa comprensible para la máquina. 4.2.1. Figura 2: Esquema Máquina Virtual Java. 4.3. Herramientas de Desarrollo. Para desarrollar en Java, se necesita instalar el paquete JDK de Sun, libre de distribución y se puede descargar en varios sitios Web. En el sitio de Sun, se encuentra toda clase de información relacionada con Java como: ejemplos de programas, tutoriales, documentación, bugs junto a su solución, lo que proporciona una ayuda extra para desarrollar todo tipo de aplicaciones en este lenguaje. La última versión disponible, Java 2 Standard Edition 5.0 y Java 2Enterprise Edition 1.4, las cuales incluyen JDK 5.0 (Java Developer Kit), como se conocen estos paquetes de instalación descargables desde la Web. Evaluación Comparativa entre J2EE y.net en Aplicaciones Web - 14 -

4.3.1. Tipos de Herramientas de Aplicación. En Java de pueden realizar todo tipo de software, estos pueden ser: - Aplicaciones: programas fuentes desarrollados en cualquier editor Java y guardados con extensión.java, que en su compilación pasan a ser ficheros.class, y al ser ejecutados se interpreta el byte-code, generando estas aplicaciones. - Applets: códigos fuentes desarrollados en cualquier editor Java (pudiendo ser de extensión.java), compilados de forma que sean parte de una página Web que lo contenga, ejecutándolo dentro del sitio con extensión.html - Servlet: conocido como el CGI de Java, éste un programa independiente de la plataforma que aporta funcionalidad a la programación en el lado del servidor. Este es código java que puede llegar a contener tags HTML. - Java Bean: es una arquitectura que permite una manera de re-utilizar componentes de software que pueden ser manipulados en herramientas de desarrollo ("Builder Tools"). Estos "Beans" pueden ser tan sencillos como un botón, o complejos como el acceso a una base de datos; una característica primordial de un JavaBean son los métodos (funciones) get set. - JSP: "Java Server Pages", Este es un tipo de programa Java que contiene HTML, para ejecutarlo se requiere de un servlet engine como Tomcat o bien un Java Application Server como Websphere de IBM que son capaces de ejecutar este tipo de aplicaciones. Evaluación Comparativa entre J2EE y.net en Aplicaciones Web - 15 -

4.4. Arquitecturas JAVA. JAVA presenta tres tipos de arquitecturas desarrolladas por Sun Microsystems estas son: 4.4.1. J2EE. (Java 2 Enterprise Edition). Se refiere a la plataforma de tecnología Java más avanzada, la cual provee un rango completo de funcionalidades empresariales para el desarrollo de aplicaciones tanto de computadores como de servidores. Esta plataforma ha sido diseñada con el fin de proporcionar un ambiente integrado para la creación de programas Java en todos niveles requeridos por los usuarios. 4.4.2. J2SE. (Java 2 Standard Edition). Se refiere a la plataforma de desarrollo JAVA que provee el pack básico de utilidades necesarias para el desarrollo de aplicaciones en este lenguaje. Este es normalmente, la versión que debemos descargar desde Internet para poder trabajar. 4.4.3. J2ME (Java 2 Micro Edition). Se refiere a la plataforma de desarrollo para la implementación de aplicaciones para dispositivos móviles, tanto equipos celulares como Palm y equipos de bolsillo (Poquet PC). Ésta contiene las herramientas específicas para desarrollar aplicaciones, programas y juegos, para este tipo de dispositivos. Evaluación Comparativa entre J2EE y.net en Aplicaciones Web - 16 -

4.5. Definición de JAVA2 EE. El concepto J2EE, Java 2 Enterprise Edition es la arquitectura creada por Sun para el desarrollo de todo tipo de aplicaciones para empresas y usuarios en general facilitando las herramientas necesarias para la programación en el lenguaje Java, las cuales facilitan el manejo de los conceptos necesarios para el desarrollo de aplicaciones más avanzadas de desarrollo, implementación y administración de software empresarial. SUN lo define como un estándar para el desarrollo de aplicaciones empresariales multicapa, simplificando las aplicaciones empresariales basándolas en componentes modulares y estandarizados, proveyendo un completo conjunto de servicios a estos componentes, y manejando muchas de las funciones de la aplicación de forma automática, sin necesidad de una programación compleja. Además la plataforma J2EE incluye un amplio rango de API's y esquemas de programación como JSP y Servlets, entre otros, los cuales pueden ejecutarse dentro del servidor Web Tomcat incluido dentro de esta arquitectura. J2EE contiene cuatro grandes áreas de la ejecución de este tipo de aplicaciones, éstas son: Presentación del lado del Cliente (Cient - Side Presentation): dentro de esta área se encuentra el rango de funcionalidades que J2EE hace ejecutar en la máquina en la cual el cliente accede a las distintas herramientas. Dentro de este grupo se encuentran páginas Web estáticas (HTML), los Applets y aplicaciones de escritorio descritas en el lenguaje JAVA. Evaluación Comparativa entre J2EE y.net en Aplicaciones Web - 17 -

Presentación del lado del Servidor (Server - Side Presentation): esta área incluye las aplicaciones las cuales JAVA desliga del cliente al ejecutarlas en el servidor, lo que agiliza de manera importante el despliegue de éstas. En esta área se encuentran mayormente el tipo de aplicación Web de J2EE, Java Server Pages, Java Servlet, códigos XML y los servicios Web J2EE. Logica de Negocios del lado del Servidor (Server Side Business Logia): este grupo de componentes J2EE contiene aquellos conceptos que no necesariamente son aplicaciones, sino dispositivos encargados de generar procesos de modo no visible para el usuario, como lo son los EJB, y los JavaBeans, los cuales permiten la interacción de componentes Web Services entre las distintas capas SOAP y WDSL. Los EJB container manejan la ejecución de los Enterprise Beans para las aplicaciones J2EE que se ejecutan del lado del servidor. Información de Sistema de Empresa (Enterprise Information System): dentro de ésta área se incluyen los datos guardados necesarios para la correcta ejecución de los distintos componentes J2EE. Por ejemplo las bases de datos que incluyen información de software ejecutados del lado del servidor. En este modelo se encuentran los distintos componentes de una aplicación J2EE y la ubicación en la correspondiente capa del modelo de ejecución. 4.5.1. Figura 3: Esquema de Aplicación en Capas. Evaluación Comparativa entre J2EE y.net en Aplicaciones Web - 18 -

4.5.2. Componentes de Arquitectura J2EE. Además del módelo de ejecución en capas, J2EE contiene un completo conjunto de APIS, algunas de las cuales están insertas dentro de la arquitectura J2SE que se agregan a la arquitectura. Éstas permiten la ejecución entre las distintas capas definidas con anterioridad. 4.5.2.1. Figura 4: Conjunto de API's J2EE. J2EE presenta distintas áreas de containers los cuales contienen API's de funcionamiento, éstas son: Web Containers los cuales almacenan los Servlet y páginas JSP que corren del lado del servidor y EJB Containers que manejan la ejecución de lo beans de aplicaciones J2EE que también correr del lado del servidor. Por su parte el Applicattion Client Container maneja la ejecución de todos los componentes de servidor y a su vez el Applet Container la ejecución de dichos applets en el cliente. Evaluación Comparativa entre J2EE y.net en Aplicaciones Web - 19 -

4.5.2. Principales API's de la Arquitectura J2EE. Dentro de las principales APIS para el desarrollo de la tecnología Java, se encuentran algunas que permiten ciertas características, por ejemplo a los Java servlet le permiten extender la capacidad de los servidores en aplicaciones http y utilizarlos como respuestas sobre servicios Web. También permiten a los JSP agregar elementos que determinen como está compuesto el contenido dinámico de la página, están dentro de los EJB y hacen correr Applets de manera correcta en la máquina del cliente. Las API son interfaces de programación de aplicaciones (Application Programmet Interface) las cuales constituyen un conjunto de funciones o mandatos que en un entorno concreto (sistema operativo) permiten al usuario poder actuar con éste. Algunas de las principales API's de la arquitectura son: JMS (Java Message Service API): es un mensaje estándar que permite a componentes de aplicaciones J2EE crear, enviar, recibir y leer mensajes, habilitando comunicaciones distribuidas (asincrónicas). JTA (Java Transaction API): provee una interfaz estándar para transacciones demarcadas. Maneja un auto commit por defecto para transacciones commits y rollbacks (una aplicación con manejo de datos que puede actualizarlos luego de cada operación de escritura o lectura). JavaMail API: API para envío de notificaciones email en Internet. JAF (JavaBeans Activation Framework): provee servicios para determinar tipos de datos dentro de JavaMail API. Evaluación Comparativa entre J2EE y.net en Aplicaciones Web - 20 -

JAXP (Java API for XML Processing): procesamiento de documentos XML usando Document Object Model (DOM), Simple API for XML (SAX) y Extensible Stylesheet Language Transformations (XSLT). JAX-RPC (Java API for XML-Based RPC): Esta API usa el estándar SOAP y HTTP para que el cliente pueda programar procedimientos en XML llamados RPCs sobre Internet. SAAJ (SOAP with Attachments API for Java): API de bajo nivel que habilita la producción y consumo de mensajes SOAP 1.1. JAXR (Java API for XML Registries): registra el acceso de negocio y propósito general de aplicaciones sobre la red. JDBC (Java Data Base Connection): Quizás el API de J2EE más conocida, permite el trabajo con base de datos permitiendo comandos SQL para la programación de métodos de acceso a distintas base de datos. Posee dos partes: una de nivel de aplicación usada por el componente que accede a los datos y además un servicio que provee una interfaz que se agrega al driver JDBC dentro de la plataforma J2EE. JNDI (Java Naming and Directory Interface): provee funcionalidad de nombres y directorios a los métodos que realicen operaciones de este tipo. JAAS (Java Authentication and Authorization Service): esta API entrega una vía para autentificar y autorizar la ejecución de aplicaciones por un usuario o grupo en particular. JSTL (Java Server Pages Standard Tag Library): este API encapsula la funcionalidad de los JSP. Evaluación Comparativa entre J2EE y.net en Aplicaciones Web - 21 -

4.5.3. Características de J2EE. La tecnología Java 2 Enterprise Edition (J2EE) proporciona una completa y potente plataforma orientada al desarrollo de aplicaciones corporativas distribuidas y a los servicios Web. Este tipo de aplicaciones suelen tener una arquitectura en capas: una capa de cliente o de presentación que proporciona el interfaz de usuario, una o más capas intermedias que proporcionan la lógica de negocio de la aplicación y una capa final con los sistemas de información que mantienen aplicaciones y bases de datos corporativas. Entre las características de este tipo de aplicaciones se encuentran las siguientes: Posibilidad de altas productividades en el desarrollo de las distintas tecnologías J2EE para la integración de aplicaciones corporativa e integración de sistemas existentes. Mayor Escalabilidad al describir las características básicas de transacciones y desarrollando distintos tipos de componentes de aplicación J2EE con modelos flexibles de seguridad. Libertad de elección de plataformas de desarrollo y producción, lo que define los aspectos necesarios que puedan solucionar una determinada problemática. El desarrollo de aplicaciones Web utilizando conceptos de la arquitectura J2EE que permiten la construcción de este tipo de aplicaciones. La utilización de herramientas libres que agilizan el desarrollo de software con J2EE y que permiten el funcionamiento en los distintos módulos de ejecución. Evaluación Comparativa entre J2EE y.net en Aplicaciones Web - 22 -

4.5.4. Tipos de Aplicaciones J2EE. La plataforma J2EE añade a Java la funcionalidad necesaria para convertirse en un lenguaje orientado al desarrollo de servicios y páginas en Internet, realizando aplicaciones igual de poderosas que cualquier otro tipo de programa desarrollado en Java. Éstos pueden ser de uso común por diferentes organizaciones que implementan software en la red, tanto para medios publicitarios, como software de manejo de información en Internet. Java tiene varios tipos de aplicaciones Web, que pueden implementarse a la hora de enfrentarse a problemas de desarrollo que ocupen la red. Mediante páginas dinámicas llamadas JSP (Java Servlet Page, un lenguaje de programación de páginas Web dinámicas como lo son códigos en PHP o ASP), Sun proporciona mejoras y nuevos conceptos al desarrollo Web, sumando funcionalidades a las conocidas Paginas Web, códigos HTML, las cuales hacen que páginas ya creadas puedan ser actualizadas con implementación JSP. De misma manera los Servlets, scripts CGI en el servidor que se ejecutan como script de Perl, los cuales pueden desarrollar mejoras específicas para agregar a sitios Web tecnología JAVA. Además de los tipos de aplicaciones J2EE, servlets y JSP, esta arquitectura presenta otro tipo de componentes o archivos, estos vienen a ser los Packaging Applications (paquetes de aplicaciones), los cuales son una encapsulación de aplicaciones con distinta orientación. Algunas de estas aplicaciones J2EEE son: Evaluación Comparativa entre J2EE y.net en Aplicaciones Web - 23 -

JAR (Java archive): es un formato de archivo independiente de la plataforma que permite que varios archivos puedan ser encapsulados dentro de uno, permitiendo que éste pueda ser una aplicación completa de fácil movilidad y ejecución. 4.5.4.1. Figura 5: Estructura archivo JAR. WAR (Web Application archive): este componente es un archivo que contiene un archivo JAR que posee uno o más módulos WEB. Pudiendo ser desde un simple sistema JSP a un servicio Web. 4.5.4.2. Figura 6: Estructura archivo WAR. Evaluación Comparativa entre J2EE y.net en Aplicaciones Web - 24 -

EAR (Enterprise Archive file): un archivo EAR es un archivo JAR que contiene una aplicación J2EE. Utilizando archivos EAR es posible unir un número de diferentes aplicaciones J2EE usando los mismos componentes sin necesidad de códigos extra solo incluyéndolos dentro de este módulo. 4.5.4.3. Figura 7: Estructura archivo EAR. RAR (Resource Adapter Archive): Un archivo RAR es un archivo JAR que contiene un adaptador de recursos que puede ser desplegado en un servidor J2EE. Es bastante similar a un archivo EAR e incluso un RAR puede estar contenido dentro de éste. 4.5.4.4. Figura 8: Estructura archivo RAR. Evaluación Comparativa entre J2EE y.net en Aplicaciones Web - 25 -

4.5.5. Acceso a Datos en J2EE. Para poder acceder a las bases de datos en J2EE se debe hacer referencia a la ya mencionada API JDBC, pues es ésta el método por el cual Java se puede conectar a los distintos motores de base de datos. JDBC, son las siglas de Java Data Base Connection, el cual es un método de interconexión el cual consta de un paquete de instalación comprimido.jar, el que contiene la librerías que hacen posible un puente entre la aplicación y el motor de base de datos, generalmente esto es conocido como Driver de base de datos. Este es un método bastante simple y de buen desempeño, por lo que es posible conectar distintas bases de datos, con distintos motores, con solo cambiar el paquete JDBC por el correspondiente que sea necesitado. Para este método se pueden definir características como: Define ocho interfaces para operaciones con bases de datos, de las que se derivan clases para su utilización. Contiene una clase que se encarga de cargar inicialmente todos los drivers JDBC disponibles DriverManager. Con la clase Connection, se realiza la conexión con la base de datos. La conexión se especifica siguiendo una sintaxis basada en la especificación más amplia de los URL. Evaluación Comparativa entre J2EE y.net en Aplicaciones Web - 26 -

5. Introducción a la Plataforma Microsoft.NET Evaluación Comparativa entre J2EE y.net en Aplicaciones Web - 27 -

5.1 Introducción. La Plataforma.NET se refiere a la tecnología creada por Microsoft para sus productos de programación en la línea de.net Framework y específicamente al producto de programación Visual Basic.NET, el cual se presenta como una herramienta completa para la creación de aplicaciones con esta tecnología. Para esto Microsoft, propuso una herramienta de diseño y programación que cuenta con un número mayor de funcionalidades que la ubica como una tecnología de punta en el desarrollo de aplicaciones, como lo son la programación orientada a objetos y el poderío de JAVA con su arquitectura J2EE. Con esto Microsoft, agrego el apellido.net a la mayoría de sus software comerciales creados bajo este nuevo enfoque de desarrollo, productos como Visual Basic.NET incorporan estas nuevas herramientas no incluidas en versiones anteriores, así se añade un conjunto de cambios para los programadores que deben afrontar con garantías el desarrollo de la nueva generación de aplicaciones en general, especial el ámbito Web, objetivo perseguido por todas las herramientas de desarrollo actuales. Dentro de estas nuevas características se encuentran mejoras sobre ciertos componentes del lenguaje en sí, con la eliminación de aspectos obsoletos que han ido cambiando dentro de los modos y hábitos de programar. De esta forma se debe estar familiarizado con programación de un cierto nivel y con las herramientas que proporcionan lo necesario para la creación de aplicaciones sobre la plataforma.net con su arquitectura NET Framework. Evaluación Comparativa entre J2EE y.net en Aplicaciones Web - 28 -

5.2. Desarrollo de Aplicaciones en.net. Además de programar en.net, se pueden incluir dentro de esta tecnología, el análisis y el diseño, permitiendo entender como hacer uso de mejores técnicas para el desarrollo de aplicaciones. De esta forma se integran todas las etapas del ciclo de desarrollo dentro de.net, definiendo las especificaciones y modelado del problema para llegar al resultado final reflejado en el código obtenido. La integración de Visual Basic con el resto de lenguajes del entorno de.net, agrega mejoras al interactuar con productos de la misma plataforma, facilitando el trabajo y alcanzando óptimas soluciones en menores plazos con códigos más mantenibles y reusables, los cuales se reflejan en los distintos niveles de desarrollo de aplicaciones.net. 5.2.1. Figura 9: Modelo de Arquitectura de Aplicaciones.NET. Evaluación Comparativa entre J2EE y.net en Aplicaciones Web - 29 -