1 UNIVERSIDAD DE COSTA RICA. Sede del Pacífico, Arnoldo Ferreto Segura. Programación I. Informática empresarial. Investigación acerca del desarrollo de aplicaciones web con java. Pertenece al grupo conformado por: Miguel Carballo Meléndez. Carnet: Jason Fonseca Barrantes. Carnet: Reggy Guevara Contreras. Carnet: B91616_B93032_C03559_Investigación II Ciclo 2020. 2 Índice Tabla de contenido Índice............................................................................................................... 2 Introducción ..................................................................................................... 3 Desarrollo ........................................................................................................ 4 1. Lenguajes de programación. ................................................................. 4 2. Lenguaje de programación Java. .......................................................... 4 3. Aplicaciones web Java. ......................................................................... 5 3.1. Contenedor Java web o java EE. ....................................................... 6 3.2. Servlet. ............................................................................................... 6 3.3. JavaServer Pages .............................................................................. 7 3.4. Biblioteca de etiquetas estándar de JavaServer Pages. .................... 8 Conclusiones ................................................................................................... 8 Bibliografía .................................................................................................... 13 3 Introducción Vivimos en el siglo XXI, un siglo en el que se ha ido recolectando múltiples avances en los campos de la ciencia y la tecnología desde el siglo anterior y gracias a estos avances la humanidad ha ido avanzando, “evolucionando” en muchos ámbitos (culturales, sociales, económicos, tecnológicos, etc.). En gran medida se puede afirmar que los lenguajes de programación han estado involucrados en estos procesos de constante innovación, ya que, si no fuera por este tipo de lenguaje, no existirían muchas de las aplicaciones y sitios web que usamos hoy en día. Este trabajo consiste en la investigación del desarrollo de aplicaciones web con el lenguaje de programación Java y tiene como objetivo mostrar los resultados acerca de la investigación realizada. En primer lugar, se explica acerca de los lenguajes de programación y en específico del lenguaje Java. Luego encontrará una sección dedicada al desarrollo de aplicaciones web con Java, seguidamente se muestran los componentes para el desarrollo de estas, y finalmente, se muestra una sección con las principales conclusiones de esta investigación, entre las que se destaca, como más importante, esta que Java es uno de los lenguajes más populares e utilizados para la programación de aplicaciones web. 4 Desarrollo 1. Lenguajes de programación. Un lenguaje de programación se define como “herramienta que permite desarrollar software o programas para computadora. Los lenguajes de programación son empleados para diseñar e implementar programas encargados de definir y administrar el comportamiento de los dispositivos físicos y lógicos de una computadora. Lo anterior se logra mediante la creación e implementación de algoritmos de precisión que se utilizan como una forma de comunicación humana con la computadora” (Ceballos, 2004). En la actualidad existen muchos lenguajes de programación, entre los más conocidos están Python, Java, C++, etc. Para énfasis de esta investigación se estudiará sobre el lenguaje de programación java en el campo de desarrollo de aplicaciones web. 2. Lenguaje de programación Java. En esta investigación se tratará de relatar sobre la importancia de java en el desarrollo de aplicaciones web. Primero que todo hay que definir java, este es un “lenguaje de programación y una plataforma informática comercializada por primera vez en 1995 por Sun Microsystems. Hay muchas aplicaciones y sitios web que no funcionarán a menos que tenga Java instalado y cada día se crean más. Java es rápido, seguro y fiable” ([Definición java], s.f.). Cabe decir que java es un lenguaje orientado a la OOP (o POO) programación orientada a objetos. Este lenguaje tiene como intención que “los desarrolladores de aplicaciones escriban el programa una sola vez y lo ejecuten en cualquier dispositivo” (¿Qué es Java? Conoce las particularidades de este lenguaje de programación, 2019). Java es un lenguaje simple, distribuido, recolector de basura, solido, multihilo y como se dijo antes, orientado a objetos. 5 Es simple porque ofrece una “funcionalidad de un lenguaje potente, derivado de C y C++, pero sin las características menos usadas y más confusas de estos, haciéndolo más sencillo” (¿Qué es Java? Conoce las particularidades de este lenguaje de programación, 2019). Es distribuido porque Java es un lenguaje que “proporciona una gran biblioteca estándar y herramientas para que los programas puedan ser distribuidos” (¿Qué es Java? Conoce las particularidades de este lenguaje de programación, 2019). Al decir que Java posee un enfoque OOP que es “uno de los estilos de programación más populares. Permite diseñar el software de forma que los distintos tipos de datos que se usen estén unidos a sus operaciones” (¿Qué es Java? Conoce las particularidades de este lenguaje de programación, 2019). Java es en lenguaje recolector de basura, en el sentido de que “cuando no hay referencias localizadas a un objeto, el recolector de basura de Java borra dicho objeto, liberando así la memoria que ocupaba. Esto previene posibles fugas de memoria” (¿Qué es Java? Conoce las particularidades de este lenguaje de programación, 2019). también es un lenguaje sólido y seguro, ya que proporciona una plataforma segura para “desarrollar y ejecutar aplicaciones que, administra automáticamente la memoria, provee canales de comunicación segura protegiendo la privacidad de los datos y, al tener una sintaxis rigurosa evita que se quiebre el código, es decir, no permite la corrupción del mismo” (¿Qué es Java? Conoce las particularidades de este lenguaje de programación, 2019). Y, por último, este lenguaje es multihilo debido a que en este se pueden llevar varias tareas simultaneas dentro del mismo programa. Esto hace posible que el mejoramiento del rendimiento y la velocidad de ejecución. 3. Aplicaciones web Java. Las aplicaciones web con java según Vogel (2016) se definen como una colección de recursos dinámicos y recursos estáticos. Entre los recursos dinámicos se encuentran los Servlets, JavaServer Pages, clases y jars. Y entre 6 los estáticos están las páginas HTML e imágenes. Las aplicaciones web Java se pueden implementar como un archivo WAR (Web ARchive). Las aplicaciones basadas en la Web crean contenido para los clientes navegadores Web. 3.1. Contenedor Java web o java EE. Las aplicaciones web desarrolladas con java, normalmente no se ejecutan de forma directa en el servidor, estas aplicaciones se ejecutan dentro de un contenedor web en el servidor. “El contenedor proporciona un entorno de ejecución para aplicaciones web Java. El contenedor es para aplicaciones web Java, lo que la JVM (máquina virtual Java) es para aplicaciones Java en ejecución local. El propio contenedor se ejecuta en la JVM” (Vogel,2016). Java diferencia dos contenedores, el contenedor web y el contenedor Java EE. “Los contenedores web típicos en el mundo de Java son Tomcat o Jetty. Un contenedor web admite la ejecución de servlets Java y JavaServer Pages. Un contenedor Java EE admite funciones adicionales, por ejemplo, distribución de la carga del servidor” (Vogel,2016). 3.2. Servlet. Esta tecnología de desarrollo en java “utilizan el modelo petición-respuesta HTTP de comunicación entre cliente y servidor” (Deitel et al, 2008). Los servlet amplían la funcionalidad de un servidor, al permitir que este genere contenido dinámico. “Por ejemplo, los servlets pueden generar en forma dinámica documentos XHTML personalizados, ayudar a proporcionar un acceso seguro a un sitio Web, interactuar con bases de datos a beneficio de un cliente y mantener la información de sesión única para cada cliente” (Deitel et al, 2008). 7 3.3. JavaServer Pages La tecnología JSP es un componente dominante de la especificación de Java 2 Enterprise Edition, muchos de los servidores de aplicaciones comercialmente disponibles ya utilizan tecnología JSP. La tecnología JSP sirve para crear aplicaciones web que se ejecuten en varios servidores. Una página con JSP está conformada con HTML y código de java y la extensión del fichero es “.jsp” en lugar de “.html”. Para cuando la página se traduzca a un servlet sirven las directivas JSP, las cuales son instrucciones procesadas por el motor JSP. Al desarrollar páginas web se utilizarán declaraciones, las cuales sirven para configurar variables para usarlas posteriormente en expresiones o scriptlet. Los scriptlets sirven para agregar segmentos de codigo java dentro de una página JSP, el codigo que se agrega se coloca directamente en el servlet que se genera cuando se ejecuta la página. Al procesar la página JSP hay que llamar a la página llamada “date.jsp”, se compilara en un servlet java, un motor servlet cargara la clase servlet y lo ejecuta como para crear HTML dinámico para enviarlo al navegador. El motor JSP ofrece instancias de un conjunto de clases, son objetos ya establecidos que solo hay que usarlos, algunos de estos objetos son: page: Esto es solo un sinónimo de this, no es muy útil en java. config: Datos de configuración del servlet. request: Datos de la petición, incluyendo los parámetros. response: Datos de la respuesta. out: Flujo de salida para el contenido de la página. session: Datos específicos de la sesión de un usuario. application: Datos compartidos por todas las páginas de una aplicación. 8 pageContext: Datos de contexto para la ejecución de la página. exception: Errores o excepciones no capturadas. 3.4. Biblioteca de etiquetas estándar de JavaServer Pages. Son una gran característica del JSP, esta les permite a los desarrolladores en Java, ocultar el código para acceder a una base de datos y otras operaciones complejas, mediante el uso de etiquetas personalizadas. “Para usar dichas herramientas, sólo tenemos que agregar las etiquetas personalizadas a la página. Esta simpleza permite a los diseñadores de páginas Web, que no estén familiarizados con Java, mejorar las páginas Web con poderoso contenido dinámico y capacidades de procesamiento” (Deitel et al, 2008). Conclusiones En este sentido, con la investigación realizada se entiende que los lenguajes de programación son herramientas que permiten desarrollar software o programas en computadora. Y aunque la investigación se centra en el lenguaje de java, se recalca que existen otros lenguajes de programación, cada uno con sus diferentes características, ventajas, desventajas etc. Enfocándonos en el tema de la investigación que es la importancia de java en el desarrollo de aplicaciones web. Java es uno de los lenguajes más populares e utilizados para la programación, ya que se describe a java como un lenguaje 9 simple e orientado a objetos, también ofrece una gran biblioteca y herramientas proporcionando gran versatilidad y opciones para los programadores que quieran utilizar este lenguaje, y al ser un lenguaje multihilo beneficia el rendimiento y la velocidad para realizar tareas simultaneas dentro del programa. En el desarrollo de aplicaciones web Java encontramos una colección de recursos dinámicos y estáticos, estos recursos regalan variedad y entre los dinámicos se menciona a Servlets como un ejemplo de este y de los recursos estáticos una de las menciones seria las paginas HTML. Cualquiera de estas se pueden implementar la creación de aplicaciones web, todo de acuerdo con lo que se necesita o se prefiera y a lo que va enfocado la aplicación web. Un punto importante de la investigación para recalcar es que estas aplicación web desarrolladas con java se ejecutan dentro de un contenedor web en el servidor, de aquí surge el Contenedor Java web y java EE, así es como se le conoce a estos contenedores que proporcionan un entorno de ejecución para las aplicaciones web Java y al existir estos dos tipos de contenedores cada uno con su función y utilidad especifica como el contenedor web que se centra en la ejecución de ServletsJava y JavaServerOPages, por otro lado el contenedor Java EE se encarga de funciones adicionales. Por esto la importancia de estos contenedores ya que ambos dan y se especializan en su función para lograr un manejo adecuado en la ejecución de las páginas web desarrolladas en java. Como resultado de la investigación realizada se puede concluir que la importancia de las aplicaciones web desarrolladas con java proviene de que Java se puede conocer como la base de las muchas aplicaciones de red, software y contenidos de la web. Todo esto por ser uno de los lenguajes más empleados , debido a su simpleza , versatilidad , sus bibliotecas, su fluidez, su buena gestión de recursos y al ser un lenguaje enfocado en la programación orientada a objetos (POO) , que esta misma es uno de los estilos de 10 programación más populares, todos estos aspectos atraen a muchos usuarios a querer crear contenido con este lenguaje ya que en pocas palabras Java de una manera "simple", provee un gran número de herramientas , opciones y gran gestión y uso del mismo para la creación de aplicaciones web. Elabore un glosario de los siguientes términos: unidad estadística, característica, dato estadístico u observación, población, muestra, muestreo, censo, muestra representativa, error de muestreo, sesgo de selección, sesgo de medición, estadística descriptiva, estadística inferencial, datos existentes, datos no existentes, fuente de información primaria, fuente de información secundaria. 2. Según Gómez (2016), ¿de los términos del glosario anterior a cuál hacer referencia la palabra estadísticas? 3. ¿Cuál es la diferencia que plantea Gómez (2016) entre los términos estadísticas y estadística? 11 4. ¿Cuáles son los dos tipos de población que menciona Gómez (2016)? Aporte un ejemplo de cada clase que sean diferentes a los que aparecen en las referencias bibliográficas. 5. Tome como referencia los dos siguientes recursos Posada (2016), y Otzen y Manterola (2017) para contestar los siguientes ítems: 5.1 Explique la diferencia entre el muestreo probabilístico y el muestreo no probabilístico. 5.2 ¿Cuáles son los tipos de muestreo probabilístico? Explique cada uno. 5.3 ¿Cuáles son los tipos de muestreo no probabilístico? Explique cada uno. 6. Con base en Díaz de la Rada (2004) conteste los siguientes ítems: 6.1 Explique los 4 tipos de errores que son susceptibles de cometerse en la investigación mediante encuestas. 6.2 Explique dos tipos de problemas que puede generar la no respuesta. 6.3 Exprese su criterio con respecto a la siguiente afirmación 6.4 Toda muestra aleatoria y de gran tamaño es una muestra representativa 7. Con base en Gómez (2016) conteste las siguientes preguntas: 7.1 ¿Cuándo se recomienda muestrear? 12 7.2 ¿Cuáles son las ventajas de las muestras aleatorias en comparación con las no aleatorias? 8. Elabore un mapa conceptual que se refiera al apartado 1.9 de Gómez (2016). 9. Justifique su posición con respecto a la siguiente aseveración La estadística es una ciencia 10. Con base en Coronado (2007), elabore una tabla acerca de las escalas o niveles de medición. Etiquete las columnas con los siguientes nombres: nivel de medición, descripción, ejemplo de variable, ejemplos de datos. Para cada nivel presente 3 ejemplos de variables. Utilice la siguiente de referencia. 11. Según Gómez (2016), ¿por qué es importante evaluar las fuentes de información? 12. Realice una comparación entre la investigación observacional y la experimental. 13. Suponga que se requiere aplicar un cuestionario, refiérase a las desventajas que implica realizarlo por cada una de las siguientes formas: personal (cara a cara), vía 13 telefónica, por correo electrónico. 14. Con base en Gómez (2016), elabore un mapa conceptual de las etapas de la investigación estadística. 15. ¿Cuál cree que son las razones por las cuales se considera el curso de XS0105 (Estadística para Informáticos) en el plan de estudios de su carrera? Bibliografía Ceballos, F. J. (2004). Enciclopedia del lenguaje C. México: Alfaomega/RaMa. DEITEL, PAUL J. Y HARVEY M. DEITEL. (2008). CÓMO PROGRAMAR EN JAVA. Séptima edición. [Definición de java]. (s.f.). https://www.java.com/es/download/help/whatis_java.html. ¿Qué es Java? Conoce las particularidades de este lenguaje de programación. (2019). https://rockcontent.com/es/blog/que-es-java/. Vogel, L. (2016). Introducción al desarrollo web Java – Tutorial. https://www.vogella.com/tutorials/JavaWebTerminology/article.html#web app. Kish, L. 1979. Survey sampling. New York: Wiley.