Logo Studenta

Java Enterprise Edition (Java EE)

¡Este material tiene más páginas!

Vista previa del material en texto

Java Enterprise Edition (Java EE)
Según la definición de Sun, Java Enterprise Edition (Java EE) es el estándar de la industria para desarrollar applicaciones Java portables, rebustas, escalables y seguras en el lado del servidor (server-side). Basado en la solidez de Java SE (Java Standard Edition), Java EE proporciona APIs para servicios web, modelo de componetes, gestión y comunicación que hacen lo convierten en el estándar de la industria para implementar aplicaciones Web y Web 2.0 y aplicaciones con arquitectura orientada a servicios (SOA).
Java EE proporciona una arquitectura multi-capa. La capa cliente puede estar constituida por aplicaciones Java de escritorio o navegadores HTML. Las capas proporcionadas por Java EE propiamente dicha son las capas Web (mediante las tecnologías Servlets, JSP y JSF) y las capas de Negocio (mediante tecnologías como EJB, JMS o Web Services). Por último, estas capas se comunican con una capa de datos (base de datos o aplicaciones y sistemas legacy).
La siguiente figura muestra las APIs y tecnologías que forman parte de Java EE.
Nos vamos a centrar en:
· JDBC (ahora en Java SE)
· Servlets
· JSP
· JavaServer Faces
· EJB
· Java Persistence
· Web Services
Además de estas tecnologías incluidas en el estándar, existen un conjunto de tecnologías Java muy maduras y de amplia utilización en la industria como Struts, Hibernate o Spring.
Spring Framework
Spring Framework proporciona un modelo integral de programación y configuración para aplicaciones empresariales modernas basadas en Java, en cualquier tipo de plataforma de implementación.
Un elemento clave de Spring es el soporte de infraestructura a nivel de aplicación: Spring se enfoca en las aplicaciones empresariales para que los equipos puedan enfocarse en la lógica de negocios a nivel de aplicación, sin vínculos innecesarios con entornos de implementación específicos.
Fue lanzado bajo la licencia Apache 2.0, siendo una plataforma Java de código abierto. Convirtiéndose desde entonces en el framework más popular para Java empresarial, para crear código de alto rendimiento, liviano y reutilizable. Ya que su finalidad es estandarizar, agilizar, manejar y resolver los problemas que puedan ir surgiendo en el trayecto de la programación. 
Spring, ofrece como elemento clave el soporte de infraestructura a nivel de aplicación, brindando un completo modelo tanto para la configuración como para la programación de aplicaciones empresariales desarrolladas bajo Java, sin discriminación en cuanto al despliegue de la plataforma.
Todo esto trae consigo una gran ventaja, ya que permite que los equipos de desarrollo puedan enfocarse directamente en la lógica empresarial que requiere la aplicación, haciendo el proceso más corto, rápido y eficaz, ahorrando líneas de código evitando tareas repetitivas.
Spring se puede considerar como el padre de los frameworks Java, ya que da soporte a varios frameworks como: Hibernate, Struts, Tapestry, EJB, JSF, entre otros.
Características
Entre las características de Spring, tenemos las siguientes que ofrecen una cantidad considerable de servicios:
· Tecnologías: como la inyección de dependencias, eventos, recursos, i18n, validación, enlace de datos, conversión de tipo, SpEL.
· Acceso a datos: soporte DAO, JDBC, ORM, Marshalling XML.
· Gestión de transacciones.
· Integración: comunicación remota, JMS, JCA, JMX, correo electrónico, tareas, programación, caché.
· Pruebas (Testing): simulacro de objetos, el framework TestContext, Spring MVC prueba, WebTestClient.
· Programación orientada a aspectos (AOP): permite la implementación de rutinas transversales.
· MVC (Modelo Vista Controlador).
· Seguridad.
· Framework web: Spring WebFlux y Spring MVC.
· Procesamiento de datos por lotes.
· Administración Remota: a través de este módulo se puede configurar la visibilidad y gestión de los objetos Java para la configuración local o remota vía JMX.
· Es un framework liviano debido a su implementación POJO (Plain Old Java Object), Spring Framework no obliga al programador a heredar ninguna clase ni a implementar ninguna interfaz.
Aunque hay que destacar la siguiente:
· La Inyección de Dependencias (Dependency Injection): Al momento de escribir una aplicación Java compleja, las clases de la aplicación deben ser lo más independientes posible de otras clases Java, para aumentar la posibilidad de reutilizarlas y probarlas independientemente de otras clases, mientras se prueban las unidades. Básicamente la inyección de dependencias (DI) ayuda a unir estas clases y al mismo tiempo mantenerlas
 
Beneficios de utilizar Spring Framework
A continuación, listamos algunos de los beneficios de implementar Spring Framework:
· Spring está organizado de forma modular. A pesar de la cantidad de paquetes y clases que tiene, solo debemos ocuparnos de aquellos que necesitemos para nuestro desarrollo e ignorar el resto.
· Utiliza algunas de las tecnologías existentes, como varios frameworks ORM, JEE, temporizadores Quartz y JDK, frameworks de registro y otras tecnologías de visualización.
· Probar una aplicación escrita con Spring es un proceso simple, porque el código dependiente del entorno se traslada a este framework. Además, mediante el uso de JavaBeanstyle, se vuelve más fácil utilizar la inyección de dependencia para hacer pruebas, para ello podemos hacer uso de datos dummies o mocks, para ver las respuestas.
· El framework web de Spring es un framework MVC web bien diseñado, que proporciona una excelente alternativa a los frameworks web como Struts u otros frameworks web sobre diseñados o menos populares.
· Spring proporciona una API para traducir excepciones específicas de la tecnología (como por ejemplo las generadas por JDBC, Hibernate o JDO) en excepciones consistentes y no verificadas.
· Los contenedores de IoC (Inversion of Control) tienden a ser livianos, especialmente cuando se comparan con los Enterprise JavaBeans (EJB). Esto es ideal para desarrollar y desplegar aplicaciones en máquinas con memoria y recursos limitados.
· Spring proporciona una interfaz de gestión de transacciones coherente que puede reducirse a una transacción local (utilizando una única base de datos) y ampliarse a transacciones globales.
· Permite separar el registro, la auditoría, las transacciones declarativas, la seguridad, el almacenamiento en caché, de la lógica comercial a través de la AOP (Programación Orientada a Aspectos).
· Cuenta con plantillas para diversas tecnologías entre la cuales podemos destacar las siguientes: JDBC, Hibernate y JPA, de forma tal que no hay necesidad de escribir un código extenso, ya que con estas plantillas simplifica el trabajo en cuanto a los pasos básicos a implementar de estas tecnologías.
Framework Angular
Angular se trata de un framework utilizado para el desarrollo de aplicaciones web de una sola página, y está desarrollado en TypeScript. Es muy sencillo desarrollar un frontend con Angular.
El propósito de Angular, es el de generar una mayor cantidad de aplicaciones basadas en un navegador, permitiendo el uso del modelo vista controlador (MVC), o, mejor dicho, una variante más flexible llamada MVW (Model View Whatever).
En las aplicaciones de actuales el front-end y back-end están cada vez más separados; debido a la creciente complejidad, nuestras interfaces de usuario están ahora desacopladas de gran parte de la lógica detrás de ellas. Esto significa, grosso modo, que tenemos dos mundos de desarrollo especializados: front-end y back-end.
· Los desarrolladores front-end se centran en lo que el usuario puedes ver e interactuar. Se encargan del diseño, funcionalidad y experiencia de usuario.
· Los desarrolladores de back-end, por otra parte, hacen posible el front-end. Trabajan con tecnologías de servidor y se encargan de la comunicación entre la base de datos y el navegador.
Requerimientos e instalación del framework Angular
Un prerequisito de instalación de Frontend con Angular es disponer de Node.js. Es un entorno multiplataforma utilizado para la programación. El principal objetivo de Node.jses construir programas de red escalables. Hace posible la integración de Angular para poder programar con él.
Las aplicaciones Angular dependen de las características y funcionalidades proporcionadas por bibliotecas. Estas bibliotecas están disponibles al desarrollador mediante paquetes npm (Node.js Package Manager). Para descargar e instalar paquetes npm necesitaremos un administrador de paquetes npm.
Pero no tenemos que preocuparnos porque npm está incluido en la instalación de Node.js de forma predeterminada.
Ya solamente quedaría instalar Angular CLI (Command Line Interface), para crear proyectos, generar códigos de aplicaciones y bibliotecas. Mediante esta aplicación podremos llevar a cabo tareas habituales en el desarrollo como son las pruebas, empaquetado y entrega.
Utilización de Angular
Desarrollar un frontend con Angular es la opción elegida por una gran cantidad de desarrolladores.
Angular es un framework de código abierto desarrollado por Google. Con el objeto para crear aplicaciones web dinámicas y modernas. Fue presentado por primera vez en 2009, el framework se caracteriza por eliminar códigos innecesarios y garantizar aplicaciones más ligeras y rápidas.
Angular ayuda a crear aplicaciones interactivas y dinámicas de una sola página. Estas aplicaciones incluyen plantillas, enlace con datos, modularización, gestión de API RESTful, inyección de dependencias y manejo de AJAX.
Los diseñadores pueden utilizar HTML como lenguaje de plantilla e incluso extender la sintaxis de HTML para transmitir fácilmente los componentes de la aplicación.
Un frontend con Angular no depende de bibliotecas de terceros. Al utilizar este framework en sus proyectos, puede obtener múltiples beneficios, a continuación, vamos a ver estas ventajas.
Ventajas de utilizar Angular
Promovido por Google: Las aplicaciones de Google también utilizan este framework. Su estabilidad parece garantizada.
TypeScript: Un frontend con Angular se crea utilizando el lenguaje TypeScript. Es un superscript para JavaScript, que garantiza una mayor seguridad. Este lenguaje facilita la depuración de errores al escribir el código o realizar tareas de mantenimiento.
UI (User Interface) declarativa: Angular utiliza HTML para definir la UI de la aplicación. HTML, en comparación con JavaScript, es un lenguaje menos complicado. HTML es también un lenguaje declarativo e intuitivo. Con este método de trabajo no necesitamos dedicar tiempo a definir flujos de programa.
POJO: Con Angular con frontend no se necesitan funciones adicionales de getter y setter. Dado que, cada objeto que utiliza es POJO (Plain Old Java Object). Esto implica que tenemos una definición de clases simples.  Se permite la manipulación de objetos al proporcionar mediante JavaScript. Por supuesto podemos eliminar o agregar propiedades de los objetos. También es posible realizar bucles sobre estos objetos cuando sea necesario.
Pruebas sencillas: Las pruebas son extremadamente simples. Los módulos soportan partes de la aplicación, que son fáciles de manipular. Con la separación de módulos se puede cargar los servicios necesarios, mientras se realizan las pruebas automáticas.
Patrón MVC simplificado: Como ya se ha dicho, Angular está integrado con la configuración arquitectónica original del software MVC (Modelo-Vista-Controlador). Sin embargo, no cumple todas las normas establecidas. Angular requiere que los desarrolladores dividan una aplicación en diferentes componentes de MVC y construyan un código que pueda unirlos. Solamente se pide dividir la aplicación y Angular se encarga de todo lo demás
Angular garantiza un desarrollo fácil, ya que elimina la necesidad de código innecesario. Tiene una arquitectura MVC simplificada. 
Angular nos proporciona estructura modular y consistencia de código
Angular organiza código en buckets. Pueden ser componentes, directivas, pipes(tuberías) o servicios. Estos buckets se pueden definir como módulos. Los módulos facilitan la organización de la funcionalidad de la aplicación, segregándola en características y fragmentos reutilizables. Los módulos también permiten la carga diferida. Esto hace posible la carga de funciones de la aplicación en segundo plano o bajo demanda.
La arquitectura de Angular hace posible dividir el trabajo entre los diferentes miembros del equipo al tiempo que se garantiza un código organizado. Los desarrolladores pueden mejorar la productividad gracias a la construcción de módulos adecuada.
Cualquier código requiere una codificación consistente. La codificación inconsistente aumenta los riesgos de retraso en los proyectos y costes añadidos. A diferencia de esto, la codificación coherente tiene varios beneficios, ya que hace que los sitios sean más fáciles de usar y permite el uso de plantillas o fragmentos de código predefinidos.
Beneficios de utilizar Frontend con Angular.
· Reusabilidad: La estructura de Angular basada en componentes hace que los componentes sean altamente reutilizables en toda la aplicación.
· Pruebas unitarias simplificadas: Al ser independientes entre sí, los componentes hacen que las pruebas unitarias sean mucho más fáciles.
· Mejor legibilidad: La coherencia en la codificación hace que la lectura del código sea una tarea fácil para los nuevos desarrolladores. Lo que aumenta su productividad.
· Facilidad de mantenimiento: Los componentes pueden ser reemplazados con mejores implementaciones. En pocas palabras, permite el mantenimiento y actualización eficiente del código.
Spring MVC
Un Spring MVC es un marco de Java que se utiliza para crear aplicaciones web. Sigue el patrón de diseño Modelo-Vista-Controlador. Implementa todas las características básicas de un marco de primavera central como Inversión de control, Inyección de dependencia.
Un Spring MVC proporciona una solución elegante para usar MVC en el marco de Spring con la ayuda de DispatcherServlet. Aquí, DispatcherServlet es una clase que recibe la solicitud entrante y la asigna al recurso correcto, como controladores, modelos y vistas.
Comprender el flujo de Spring Web MVC
· Como se muestra en la figura, todas las solicitudes entrantes son interceptadas por el DispatcherServlet que funciona como controlador frontal.
· DispatcherServlet obtiene una entrada de mapeo de manejadores del archivo XML y reenvía la solicitud al controlador.
· El controlador devuelve un objeto de ModelAndView.
· DispatcherServlet comprueba la entrada del solucionador de vistas en el archivo XML e invoca el componente de vista especificado.
Ventajas de Spring MVC Framework
Veamos algunas de las ventajas de Spring MVC Framework: -
· Roles separados: Spring MVC separa cada rol, donde el objeto modelo, controlador, objeto de comando, resolución de vista, DispatcherServlet, validador, etc. pueden ser cumplidos por un objeto especializado.
· Ligero: utiliza un contenedor de servlets liviano para desarrollar e implementar su aplicación.
· Potente configuración: proporciona una configuración sólida tanto para el marco como para las clases de aplicación que incluye referencias sencillas en distintos contextos, como desde controladores web hasta objetos de negocio y validadores.
· Desarrollo rápido: Spring MVC facilita el desarrollo rápido y paralelo.
· Código comercial reutilizable: en lugar de crear nuevos objetos, nos permite utilizar los objetos comerciales existentes.
· Fácil de probar: en Spring, generalmente creamos clases de JavaBeans que le permiten inyectar datos de prueba utilizando los métodos setter.
· Mapeo flexible: proporciona las anotaciones específicas que redirigen fácilmente la página.
Ejemplo de Spring Web MVC Framework
Veamos el ejemplo simple de un marco Spring Web MVC. Los pasos son los siguientes:
· Cargue los archivos spring jar o agregue dependencias en el caso de Maven
· Crea la clase de controlador
· Proporcione la entrada de controlador en el archivo web.xml
· Defina el bean en el archivo XML separado
· Mostrar el mensaje en la página JSP
· Inicie el servidor e implemente el proyecto
NetBeans IDE
NetBeans IDE es un entornode desarrollo integrado, gratuito y de código abierto para el desarrollo de aplicaciones en los sistemas operativos Windows, Mac, Linux y Solaris.
El IDE simplifica el desarrollo de aplicaciones web, corporativas, de escritorio y móviles que utilizan plataformas Java y HTML5. El IDE también ofrece soporte para el desarrollo de aplicaciones PHP y C/C++.
NetBeans IDE proporciona soporte gratuito y completo para las principales tecnologías y plataformas Oracle.
Java
NetBeans IDE ofrece herramientas de primera clase para el desarrollo de aplicaciones web, corporativas, de escritorio y móviles con Java. Siempre es el primer IDE en ofrecer soporte para las últimas versiones de JDK, Java EE y JavaFX. Proporciona descripciones generales inteligentes para ayudarle a comprender y gestionar sus aplicaciones, lo que incluye el soporte inmediato para tecnologías populares, como Maven.
NetBeans IDE contiene tecnologías innovadoras listas para usar y es el estándar en el desarrollo de aplicaciones, gracias a sus características integrales para el desarrollo de aplicaciones, las constantes mejoras en el editor de Java y el perfeccionamiento del rendimiento y la velocidad.
Oracle Database
Es posible registrarse en Oracle Database y acceder a ella directamente desde el IDE. El IDE permite conexiones JDBC Thin y OCI a Oracle Database. Las funciones completas de acceso a datos vienen integradas desde el primer momento, como la capacidad de leer, crear, actualizar y eliminar datos directamente desde el IDE y con el apoyo de un editor SQL con muchas funciones.
Bases de datos en MySql
¿Qué es una base de datos?
Una base de datos se define como un conjunto de datos organizados, los cuales guardan una cierta relación entre sí. Así, los sistemas de información se encargan de recolectarlos y, posteriormente, gestionarlos y administrarlos para unos objetivos concretos. Las bases de datos tienen una serie de características que resulta interesante conocer.
 
Desde el lado de la informática, la base de datos se conoce como un sistema conformado por un abanico de datos almacenados en distintos discos, físicos o virtuales, que permiten el acceso directo a los mismos y un software capaz de manipular dichos datos.
 
Cada base de datos se compone de una o varias tablas, las cuales guardan un grupo de datos. Cada tabla se conforma de una o más columnas y filas. De este modo, cada columna almacena una parte de la información acerca de cada elemento que se desee guardar en la tabla, mientras que cada fila de la tabla compone un registro.
 
Por un lado, todos los datos almacenados guardan una independencia tanto lógica como mínima. Además, todos ellos tienen una redundancia mínima.
 
Por otro lado, uno o varios usuarios pueden tener acceso a los datos almacenados en la base mediante un acceso seguro.
Bases de datos en MySql
MySQL es un sistema de gestión de base de datos. Un software libre que se engloba en el grupo de licencias GNU GPL. MySQL es a día de hoy ampliamente utilizado en una gran selección de aplicaciones web tales como WordPress o Drupal, entre otras. Una de sus principales ventajas es que su lectura es muy rápida, por lo que es una opción estupenda para este tipo de apps.
 
A continuación señalamos las principales características que definen las bases de datos MySQL.
· Arquitectura cliente y servidor: MySQL, al igual que cualquier otro sistema de registros de datos, es un programa de registro basado en un sistema entre cliente y servidor. Se trata por tanto de un software en el que se engloban un amplio abanico de clientes y servidores que establecen comunicación entre ellos.
· Compatibilidad con SQL: SQL es un lenguaje de programación que permite tanto la consulta como la renovación de datos para la gestión de una base en la que se almacena un conjunto de datos.
· Búsqueda de texto completo: la búsqueda de texto completo acelera y facilita en gran medida el sistema de búsqueda de las palabras de los datos contenidos en la base.
· Lenguaje de programación: la base de datos MySQL está escrita en C y C++, dos de los lenguajes de programación más demandados y populares de todo el mundo.
· Sistemas de almacenamiento: este tipo de bases proporciona sistemas de almacenamiento tanto transaccionales como no transaccionales.
Cómo crear una base de datos
Crear base de datos MySQL es un proceso relativamente sencillo, por lo que no se necesitan conocimientos técnicos avanzados para realizarlo. A continuación, explicamos paso a paso cómo crear una base de datos en MySQL.
1. En primer lugar, es importante asegurarse de que el servidor MySQL está conectado. De lo contrario, la creación de la base de datos es imposible.
1. A continuación, se copia la ruta de instalación de la carpeta. Dicha ruta puede variar en función de si se va a hacer uso de Windows o Mac. En caso de Windows, se copia “C:/Program Files/MySQL/MySQL Workbench 8.0 CE/”. Si el SO es iOS, se copia “/usr/local/mysql-8.0.13-osx10.13-x86_64/”.
1. El siguiente paso consiste en abrir la línea de comandos del ordenador. En un PC se abre “Símbolo del Sistema”. En caso de Mac, “Terminal”.
1. Ahora es el momento de crear el archivo de la base de datos. Para ello, se escribe el comando de creación de base de datos “create database” y se le agrega el nombre que se le quiera asignar, seguido de un punto y coma; por último, se pulsa “Enter”. Por ejemplo, si la base de datos se quiere denominar “Registro de clientes”, se escribe “Create Database Registro_de_clientes;”
Una vez creada la base de datos, es el momento de crear una tabla.
 
En primer lugar se crea la estructura de la propia tabla. El comando es el siguiente.
CREATE TABLE nombre (columna1 VARCHAR(20), columna2)
Así, si por ejemplo la tabla llamada “Registro de clientes” desea agregar dos columnas: lugar de residencia y edad, se debe escribir lo siguiente.
CREATE TABLE Registro de clientes (Lugar de residencia VARCHAR(20), Edad VARCHAR(30),
A continuación se añade una línea a la tabla. Para añadir información, línea por línea, a la base de datos se utiliza el comando “insert”.  
Siguiendo con el ejemplo anterior, la línea queda de la siguiente manera: INSERT INTO Registro de clientes VALUES ('Madrid', '30');
A continuación se registran el resto de datos que van a conformar la base de datos MySQL. Para visualizar la tabla se ingresa el comando “show databases;” y a continuación se selecciona la base de datos escribiendo “select * from nombre”. “Nombre” representa el nombre de la base de datos.
image6.jpeg
image7.png
image8.png
image9.png
image10.jpeg
image1.gif
image2.gif
image3.png
image4.png
image5.png

Continuar navegando