Está en la página 1de 14

UNIVERSIDAD NACIONAL

TORIBIO RODRÍGUEZ DE MENDOZA DE AMAZONAS


FACULTAD DE INGENIERÍA DE SISTEMAS Y MECÁNICA ELÉCTRICA

ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS


SEMESTRE ACADÉMICO: 2020-II

TÍTULO DE TRABAJO:
Tecnología Web en Java.

NOMBRE DEL CURSO:


Sistemas Distribuidos.

ESTUDIANTES:
Delgado Heredia Yuliza,
Huamán Gálvez Josué Filemón,
Silva Vergaray Yahaida,
Tejada Hoyos Ghanalli y
Yoplac Trujillo Geisy.

DOCENTE:
Mg. Luis Manuel Sánchez Fernández

4 de enero de 2021, Bagua - Perú


ÍNDICE

TECNOLOGÍA WEB EN JAVA......................................................................................3

1. Creación de proyecto Web........................................................................................3

1.1. ¿Qué es la tecnología Web?................................................................................3

1.2. Ventajas y desventajas de la tecnología Web en Java........................................3

1.2.1. Ventajas de la tecnología Web en Java.......................................................3

1.2.2. Desventaja de la tecnología Web en Java...................................................3

1.3. Stack de tecnologías Web en Java......................................................................4

1.3.1. Componentes...............................................................................................4

1.4. Peticiones HTTP.................................................................................................6

2. Comparación de Framework.....................................................................................8

3. Patrón MVC- Arquitectura MVC............................................................................10

3.1. Modelo..............................................................................................................10

3.2. Vista..................................................................................................................11

3.3. Controlador.......................................................................................................12

REFERENCIAS BIBLIOGRÁFICAS............................................................................14

Desarrollo de Soluciones en Software Libre 2020-II 2


TECNOLOGÍA WEB EN JAVA

1. Creación de proyecto Web.

Java es el lenguaje de programación más utilizado en el desarrollo de


aplicaciones Web profesionales que cada vez demandan más empresas en el mercado
laboral actual. Es importante, por tanto, el conocimiento de esta plataforma informática,
que está implantada en la gran mayoría de aplicaciones y sitios web por su seguridad,
fiabilidad y rapidez.

1.1. ¿Qué es la tecnología Web?

En la ingeniería de software se denomina tecnología Web a aquellas


aplicaciones que los usuarios pueden utilizar accediendo a un servidor Web a través
de Internet o de una intranet mediante un navegador.[ CITATION Tur16 \l 3082 ]

1.2. Ventajas y desventajas de la tecnología Web en Java

1.2.1. Ventajas de la tecnología Web en Java


 Actualización automática. Según el paradigma cliente/servidor, la
lógica de la aplicación se encuentra centralizada. Los clientes son
ligeros.
 Multiplataforma. Diferentes arquitecturas de hardware, diferentes
sistemas operativos, diferentes navegadores Web.
 Portable. Tecnologías como Java permiten crear aplicaciones Web
portables. Clientes ligeros sólo necesitan soportar el estándar HTML.
 Alta disponibilidad. Servidores Web replicados en la misma y/o
diferentes ubicaciones geográficas.

1.2.2. Desventaja de la tecnología Web en Java

Desarrollo de Soluciones en Software Libre 2020-II 3


 Menos funcionalidades que aplicaciones Desktop (de escritorio)
Tradicionalmente, los navegadores Web presentan funciones
limitadas.

1.3. Stack de tecnologías Web en Java.

El Stack de tecnologías en aplicaciones Web en java hace referencia a todos


los componentes que va a utilizar la aplicación, esta pila de tecnologías difiere
mucho dependiendo del lenguaje a utilizar.

1.3.1. Componentes

a. Frontend. Es la parte de un sitio web que interactúa con los usuarios,


por eso decimos que está del lado del cliente, Ahí tenemos algunas
tecnologías que aportan un papel diferente como:

 JSP. JSP es un acrónimo de Java Server Pages, que en


castellano vendría a decir algo como Páginas de Servidor
Java. Es, pues, una tecnología orientada a crear páginas web
con programación en Java. Con JSP podemos crear
aplicaciones web que se ejecuten en variados servidores web,
de múltiples plataformas, ya que Java es en esencia un
lenguaje multiplataforma.
Las páginas JSP están compuestas de código HTML/XML
mezclado con etiquetas especiales para programar scripts de
servidor en sintaxis Java. Por tanto, las JSP podremos
escribirlas con nuestro editor HTML/XML habitual.
[ CITATION Alv02 \l 3082 ]

 JQuery. Es una biblioteca de JavaScript que simplifica la


forma de desarrollar aplicaciones web. Las aplicaciones que
utilizan jQuery suelen necesitar menos tiempo y menos

Desarrollo de Soluciones en Software Libre 2020-II 4


código que las aplicaciones hechas con JS puro. Por este
motivo, jQuery es muy popular y se utiliza en montones de
páginas web. Esta librería de código abierto, simplifica la
tarea de programar en JavaScript y permite agregar
interactividad a un sitio web sin tener conocimientos del
lenguaje.

 HTML. El Lenguaje de Marcado de Hipertexto (HTML) es el


código que se utiliza para estructurar y desplegar una página
web y sus contenidos. Por ejemplo, sus contenidos podrían
ser párrafos, una lista con viñetas, o imágenes y tablas de
datos.

 CSS. Son las siglas de Cascading Style Sheets - Hojas de


Estilo en Cascada - que es un lenguaje que describe la
presentación de los documentos estructurados en hojas de
estilo para diferentes métodos de interpretación, es decir,
describe cómo se va a mostrar un documento en pantalla. Es
un lenguaje de hojas de estilos creado para controlar el
aspecto o presentación de los documentos.

b. Backend. Es la parte que se conecta con la base de datos y el servidor


que utiliza dicho sitio web, por eso decimos que el backend corre del
lado del servidor, en este componente encontramos las siguientes
tecnologías:

 MySQL. Es un sistema de gestión de base de datos relacional


(RDBMS) de código abierto, basado en lenguaje de consulta
estructurado (SQL). MySQL se ejecuta en prácticamente
todas las plataformas.

 Server WildFly. Anteriormente conocido como JBoss AS, o


simplemente JBoss, es un servidor de aplicaciones Java EE de

Desarrollo de Soluciones en Software Libre 2020-II 5


código abierto implementado en Java puro, más
concretamente la especificación Java EE (Java Enterprise
Edition, es un conjunto de estándares de tecnologías
dedicadas al desarrollo de Java del lado del servidor). Al estar
basado en Java, JBoss puede ser utilizado en cualquier
sistema operativo para el que esté disponible la máquina
virtual de Java.

 JPA-Hipernate. Java Persistence API, más conocida por sus


siglas JPA, es la API de persistencia desarrollada para la
plataforma Java EE. La cual es un framework del lenguaje de
programación Java, que maneja datos relacionales en
aplicaciones usando la plataforma Java en sus ediciones
Standard (Java SE) y Enterprise (Java EE).
Por su parte, Hibernate es una herramienta de Mapeo objeto-
relacional (ORM), para la plataforma Java – también
disponible para .Net, bajo el nombre de NHibernate – que
facilita el mapeo de atributos entre una base de datos
relacional tradicional y el modelo de objetos de una
aplicación; mediante archivos declarativos (XML) o
anotaciones en los beans de las entidades que permiten
establecer estas relaciones.

Desarrollo de Soluciones en Software Libre 2020-II 6


1.4. Peticiones HTTP
HTTP, de sus siglas en inglés: "Hypertext Transfer Protocol", es el nombre
de un protocolo el cual nos permite realizar una petición de datos y recursos, como
pueden ser documentos HTML. Es la base de cualquier intercambio de datos en la
Web, y un protocolo de estructura cliente-servidor, esto quiere decir que una
petición de datos es iniciada por el elemento que recibirá los datos (el cliente),
normalmente un navegador Web. Así, una página web completa resulta de la unión
de distintos subdocumentos recibidos, como, por ejemplo: un documento que
especifique el estilo de maquetación de la página web (CSS), el texto, las imágenes,
vídeos, scripts, etc. Dentro de ellos tenemos los más usados:

a. POST. Donde el método se utiliza para enviar una entidad a un recurso en


específico, causando a menudo un cambio en el estado o efectos secundarios
en el servidor. Ejemplo:

Esta es la URL que enviaría con los datos:

b. GET. El método solicita una representación de un recurso específico. Las


peticiones que usan el método GET sólo deben recuperar datos. Ejemplo:

Esta es la URL que enviaría con los datos en formato clave - valor.

Desarrollo de Soluciones en Software Libre 2020-II 7


2. Comparación de Framework.

Frameworks Vaadin Spring


• Le permite usar MVC o MVP
para el enlace de datos. • Admite JDBC que ayuda a
• Admite la función de arrastrar reducir el error.
y soltar. • Admite configuración XML y
• Admite la comunicación basada en anotaciones.
Diferencias automática servidor-cliente con • Ofrece compatibilidad con
WebSocket. versiones anteriores y capacidad
• Admite lenguajes JVM como de prueba del código.
Kotlin y Scala. • Simplifica el proceso de
• Soporte de resorte desarrollo de J2EE.
incorporado.
• Es menos escalable que otras
tecnologías disponibles. • Configuración no tan fácil
En contra • La carga inicial de • Curva de aprendizaje
aplicaciones grandes puede ser pronunciada
lenta.
• Netflix (haciendo uso de Spring
• Piksel Inc
Boot)
• World Vision Inc
Empresas • Yatra (haciendo uso de Spring
• Deutsche Post AG
que utilizan MVC)
• Quad Graphics Inc
• vAmazonas
• GESIS
• eBay

Frameworks Struts Blade


• Se utiliza y extiende el Java
• Admite extensiones de
Servlet API para
complementos y recursos jar web.
desarrolladores de ayuda para
• Soporte de motor de plantilla y
adoptar la arquitectura MVC.
servidor de embarcadero integrado;
• Puede integrar Struts con
• Contiene CSRF (falsificación de
Diferencias otros marcos de Java para
solicitudes entre sitios) y XSS
realizar tareas que no están
(secuencias de comandos entre
integradas en la plataforma.
sitios)
• Reduce el tiempo de
• Enrutamiento de estilo RESTful;
desarrollo y facilita la gestión
Soporta JDK 1.6 y superior.
de la aplicación.
• Útil para crear solo pequeñas
• Documentación difícil de
aplicaciones MVC.
navegar;
En contra • La documentación del sitio
• No apto para aplicaciones más
principal está en chino (pero tiene
pequeñas.
documentación en inglés).
Empresas • Infosys • Spookies

Desarrollo de Soluciones en Software Libre 2020-II 8


• Accenture • Stormwatch
que utilizan
• NexGen Technologies • Merengu

Frameworks Hibernate Java Server Faces (JSF)


• Te permite desarrollar clases
persistentes siguiendo el
lenguaje orientado a objetos. • Es una parte integral de Java EE
• Portabilidad, productividad, Ofrece excelentes herramientas y
mantenibilidad bibliotecas vibrantes
• Marco de código abierto • Le permite extender el código
Diferencias
Utiliza la API de JDBC; ayuda Java backend existente con una
a eliminar el código repetitivo. interfaz web.
• Ofrece un marco ORM que • Ayuda a desarrollar aplicaciones
ayuda a realizar operaciones de nativas.
bases de datos en entidades
Java.
• Para trabajar con JavaServer
• Si se corta la energía, puede Faces, es mejor tener un gran
perder todos sus datos; conocimiento de Java, comprender
En contra
•Reiniciar puede ser las tecnologías web en general y
extremadamente lento. tener experiencia en el trabajo en la
web sin ningún marco.
• Oracle • Peoples United Bank
Empresas • IBM • Edupoint LLC
que utilizan • DELL • Portland Water Bureau
• Accenture • Spot LLC

3. Patrón MVC- Arquitectura MVC

MVC es un patrón arquitectura, un modelo o guía que expresa cómo organizar


y estructurar los componentes de un sistema software, sus responsabilidades y las
relaciones existentes entre cada uno de ellos.

Su nombre, MVC, parte de las iniciales de Modelo-Vista-Controlador (Model-


View-Controller, en inglés), que son las capas o grupos de componentes en los que
organizaremos nuestras aplicaciones bajo este paradigma.

Es a menudo considerado también un patrón de diseño de la capa de


presentación, pues define la forma en que se organizan los componentes de presentación
en sistemas distribuidos.

Desarrollo de Soluciones en Software Libre 2020-II 9


La arquitectura MVC propone, independientemente de las tecnologías o
entornos en los que se base el sistema a desarrollar, la separación de los componentes de
una aplicación en tres grupos (o capas) principales: el modelo, la vista, y el controlador,
y describe cómo se relacionarán entre ellos para mantener una estructura organizada,
limpia y con un acoplamiento mínimo entre las distintas capas.

3.1. Modelo
En la capa Modelo encontraremos siempre una representación de los datos
del dominio, es decir, aquellas entidades que nos servirán para almacenar
información del sistema que estamos desarrollando. Por ejemplo, si estamos
desarrollando una aplicación de facturación, en el modelo existirán las clases
Factura, Cliente o Proveedor, entre otras.

Si nuestra aplicación forma parte de un sistema distribuido, es decir,


consume servicios prestados por otros sistemas, en el Modelo encontraremos las
clases de transferencia de datos (DTO, Data Transfer Objects) que nos permitirán
intercambiar información con ellos.

Asimismo, encontraremos la lógica de negocio de la aplicación, es decir, la


implementación de las reglas, acciones y restricciones que nos permiten gestionar
las entidades del dominio. Será por tanto el responsable de que el sistema se
encuentre siempre en un estado consistente e íntegro.

Por último, el Modelo será también el encargado de gestionar el


almacenamiento y recuperación de datos y entidades del dominio, es decir, incluirá
mecanismos de persistencia o será capaz de interactuar con ellos. Dado que
habitualmente la persistencia se delega a un motor de bases de datos, es muy
frecuente encontrar en el Modelo la implementación de componentes tipo DAL
(Data Access Layer, o Capa de Acceso a Datos) y ORMs.

En resumen el Modelo contiene principalmente las entidades que representan


el dominio, la lógica de negocio, y los mecanismos de persistencia de nuestro
sistema.

Desarrollo de Soluciones en Software Libre 2020-II 10


3.2. Vista
Los componentes de la Vista son los responsables de generar la interfaz de
nuestra aplicación, es decir, de componer las pantallas, páginas, o cualquier tipo de
resultado utilizable por el usuario o cliente del sistema. De hecho, suele decirse que
la Vista es una representación del estado del Modelo en un momento concreto y en
el contexto de una acción determinada

Cuando las vistas componen la interfaz de usuario de una aplicación,


deberán contener los elementos de interacción que permitan al usuario enviar
información e invocar acciones en el sistema, como botones, cuadros de edición o
cualquier otro tipo de elemento, convenientemente adaptados a la tecnología del
cliente.

En el caso de las aplicaciones para la Web, normalmente en la Vista se


encontrarán los componentes capaces de generar el lenguaje de marcado de la
página que será enviada al usuario.

En resumen en la Vista encontraremos los componentes responsables de


generar la interfaz con el exterior, por regla general, aunque no exclusivamente, el
UI de nuestra aplicación.

3.3. Controlador
La misión principal de los componentes incluidos en el Controlador es actuar
como intermediarios entre el usuario y el sistema. Serán capaces de capturar las
acciones de éste sobre la Vista, como puede ser la pulsación de un botón o la
selección de una opción de menú, interpretarlas y actuar en función de ellas. Por
ejemplo, retornando al usuario una nueva vista que represente el estado actual del
sistema, o invocando a acciones definidas en el Modelo para consultar o actualizar
información.

Realizarán también tareas de transformación de datos para hacer que los


componentes de la Vista y el Modelo se entiendan. Así, traducirán la información
enviada desde la interfaz, por ejemplo los valores de campos de un formulario

Desarrollo de Soluciones en Software Libre 2020-II 11


recibidos mediante el protocolo HTTP, a objetos que puedan ser comprendidos por
el Modelo, como pueden las clases o las entidades del dominio.

Y de la misma forma, el Controlador tomará la información procedente del


Modelo y la adaptará a formatos o estructuras de datos que la Vista sea capaz de
manejar.

Por todo ello, podríamos considerar el Controlador como un coordinador


general del sistema, que regula la navegación y el flujo de información con el
usuario, ejerciendo también como intermediario entre la capa de Vista y el Modelo.

En el Controlador se encuentran los componentes capaces de procesar las


interacciones del usuario, consultar o actualizar el Modelo, y seleccionar las Vistas
apropiadas en cada momento.

Nota: existen distintas variantes del patrón MVC. Aquí estamos


considerando la utilizada más frecuentemente por los desarrolladores, aunque existe
también la posibilidad de que la Vista contacte directamente con el Modelo,
normalmente para obtener información.

El uso del patrón MVC ofrece múltiples ventajas sobre otras maneras de
desarrollar aplicaciones con interfaz de usuario, y en especial para la Web. Sin
entrar en detalles aquí, porque la extensión del artículo ya es grande, comentaré a
continuación algunas de ellas:

Desarrollo de Soluciones en Software Libre 2020-II 12


 La clara separación de responsabilidades impuesta por el uso del patrón
MVC hace que los componentes de nuestras aplicaciones tengan sus
misiones bien definidas. Por lo tanto, nuestros sistemas serán más
limpios, simples, más fácilmente mantenibles y, a la postre, más
robustos.
 Mayor velocidad de desarrollo en equipo, que es consecuencia de lo
anterior, ya que al estar separado en tres partes tan diferenciadas,
diferentes programadores pueden ocuparse de cada parte en paralelo.
Esto la hace ideal para el desarrollo de aplicaciones grandes.
 Múltiples vistas a partir del mismo modelo, pudiendo reaprovechar
mucho mejor los desarrollos y asegurando consistencia entre ellas.
Facilidad para realización de pruebas unitarias.

Desarrollo de Soluciones en Software Libre 2020-II 13


REFERENCIAS BIBLIOGRÁFICAS

Alvarez, M. (08 de 07 de 2002). Qué es JSP. Obtenido de desarrolloweb.com:


https://desarrolloweb.com/articulos/831.php

Turmero, P. (2016). Introducción a la arquitectura web - Java. Obtenido de


monografias.com: https://www.monografias.com/trabajos106/introduccion-
arquitectura-web-java/introduccion-arquitectura-web-java2.shtml

Desarrollo de Soluciones en Software Libre 2020-II 14

También podría gustarte