Amig@s tod@s, pueden comprar el Sistema de Inventarios desde aquí:
Compra este libro completo dando clic aquíIntroducción
Una aplicación web siempre debe de estar estructurada
debidamente con arquitectura J2EE, es por ello que surge la necesidad de
combinar varias tecnologías y unirlas con el objetivo de crear un producto
final funcional y de calidad. En este libro explicaremos a detalle los componentes
de una arquitectura J2EE, así como las capas en que se divide dicha
arquitectura y como se integran perfectamente los módulos del famosísimo y muy
utilizado a nivel mundial en diseño e implementación de desarrollos web
empresariales Spring 3. Veremos a detalle los conceptos básicos de los
diferentes módulos que hemos utilizado para el desarrollo de nuestro arquetipo
con Spring 3. Así como ejercicios prácticos que puedes implementar y que te
serán de gran ayuda para crear aplicaciones web profesionales y de muy alta
calidad, ya que usaremos las mejores prácticas de implementación para poder
desarrollar productos escalables, adaptables y de mejora continua.
En los ejercicios prácticos que explicaremos en este libro aprenderemos a crear
nuestras aplicaciones web, desde cómo crear nuestro entorno de desarrollo,
hasta como llevar a producción nuestro producto final, todo esto de una manera
muy sencilla e intuitiva.
Entremos de lleno a estudiar los conceptos Spring Web MVC + Spring
JDBC + Spring Tiles + JQuery + J2EE por medio del
aplicativo que te invitamos a descargar gratis para ti, y por haber comprado
este libro tienes derecho a utilizar dicho código sin ningún delito penal. Trataremos
de ser muy claros y precisos, la idea es que encuentren una lectura fácil de
discernir pero eso no significa que por ser fácil no sirve, al contrario,
recuerden que nuestra filosofía es enseñar a hacer las cosas con las mejores
prácticas que existen de la mejor manera
posible, esto nos garantiza que estaremos preparados al 100% a la hora de
enfrentarnos al mundo real en los retos que nos traen a diario las jornadas de
trabajo. Los proyectos muchas veces salen mal porque no estamos preparados para
crear buenos diseños de arquitectura, en este libro aprenderemos a saber lo que
estamos haciendo, dejando claro qué es y para que funciona cada componente
dentro de una arquitectura J2EE y cómo debemos de implementarlo en nuestros
aplicativos web profesionales. Y bien, comencemos.
Que es Spring
Spring es una plataforma para el desarrollo de aplicaciones
Java, con el que puedes crear una aplicación web J2EE completa, ya que cuenta
con varios módulos que soportan la estructura completa de una arquitectura
J2EE. En este caso utilizaremos Spring MVC, Spring Tiles, JQuery,
HTML, JSP’S, CSS, JavaScript para la capa de presentación. Spring JDBC, Spring IoC, Spring AOP, para la capa de procesamiento y datos, en
la capa de datos utilizaremos un servidor de base de datos MySQL,
más adelante veremos dichas capas en una arquitectura J2EE. Al final de este
libro encontraras los enlaces directos a la documentación completa de Spring para
que te profundices aún más sobre algún tema en particular derivado de la
lectura de este libro.
En este libro veremos a detalle cada componente de nuestra
aplicación web, como se integran, que funciones tienen, y cuál es la mejor
forma de utilizarlos.
Que es la arquitectura J2EE
Vamos ahora a explicar que es la arquitectura J2EE a detalle
y cuáles son los componentes de cada capa. Una aplicación web siempre debe de
estar separada mínimo en 3 o más capas.
Es una mala práctica que en una aplicación no estén debidamente separados los
componentes que desarrollamos y plasmados en un diseño de arquitectura J2EE.
La arquitectura J2EE es una especificación que define la
separación de los componentes desarrollados en varias capas. La capa de
cliente, la capa web, la capa de negocio y la capa de datos. Puede haber más de
3 o 4 capas en una arquitectura bien diseñada basada en J2EE. A continuación
explicaremos dicha arquitectura por medio de un diagrama.
En esta capa encontramos y debemos de aprender a identificar claramente componentes como un Applet de Java, una aplicación desarrollada con Java Swing
o AWT, una aplicación desarrollada para dispositivos móviles, por ejemplo para
Android o IOS, una aplicación hecha directamente con HTML, Java Script o Ajax.
Pero ojo, esto es muy importante y a continuación aunaremos en este tema, por
ningún motivo tenemos por ejemplo en nuestra aplicación Java Swing conexión o
clases de acceso a nuestra base de datos (Capa de Datos), entonces qué
componentes tenemos en nuestra aplicación que está del lado del cliente, solo
pantallas y validaciones del lado del cliente, es decir que se ejecutan en
nuestro navegador web o browser como por ejemplo: FireFox,
Internet Explorer, Chrome, etc. O que se ejecutan directamente en el escritorio
del usuario final o mejor dicho en cualquier dispositivo inteligente llámese
tableta, celular, pc, laptop, notebook, Iphone, Ipad, etc. Imagínense por ejemplo que en una aplicación
Java Swing que se ejecuta directamente en el escritorio del cliente tendríamos
los accesos y las credenciales a nuestra base de datos, esto es un error muy
importante de seguridad, ya que el jar que se ha
copiado en la máquina del cliente puede ser decompilado
y creamos un agujero de seguridad en nuestro sistema.
En esta capa encontramos componentes como JSP’S (Java Server Pages), Servlets, JSF (Java
Server Faces), clases de modelo, clases de dominio, Java Beans
(Un Java Bean no es igual que un EJB (Enterprise Java
Bean), son componentes totalmente diferentes), estos
componentes siempre se ejecutan del lado del servidor web, como por ejemplo: en
un TomCat, en un IIS, en un HTTP Server de IBM, en un
Apache, etc. Tampoco en esta capa encontramos acceso directo a la capa de
datos. No importa que estos componentes vivan o se ejecuten de lado del
servidor, tampoco desde aquí se accede directamente a la capa de datos.
En esta capa encontramos nuestras clases de dominio (¿También
aquí pueden estar los componentes de dominio?, la respuesta es sí, una clase de
dominio puede vivir tanto de lado de la capa web como de lado de la capa de
negocio, en este caso se crean copias idénticas o clones), clases de servicio,
clases de negocio, clases de acceso a base de datos, clases de entidad, clases
que consumen Web Services, clases que invocan a otros
aplicativos y esperan una respuesta o no. Todas estas clases se ejecutan en
nuestro servidor de aplicaciones, y aquí es muy importante que sepamos
identificar que en una aplicación profesional con un buen diseño de arquitectura
J2EE vamos siempre a encontrar un servidor web y un servidor de aplicaciones,
estos dos términos no son lo mismo ni mucho menos son sinónimos, un servidor
web solo recibe, procesa y regresa peticiones en HTML, un servidor de
aplicaciones procesa transacciones, ejemplos de servidores de aplicaciones: Websphere Application Server, Weblogic, JBoss, GlassFish
En esta capa encontramos componentes como servidores de bases
de datos, crm’s, sistemas externos, erp’s, esta capa es externa a nuestro sistema web J2EE, no
hay ninguna relación directa entre nuestra capa de negocio con nuestra capa de datos,
la única relación que hay se da indirectamente, esto quiere decir que una base
de datos por ejemplo puede ser consumida tanto desde nuestro aplicativo web
J2EE como de otro cualquier aplicativo desarrollado desde otra tecnología, como
C, C++, un CRM, un ERP, etc.
Flujo de ejecución de los diferentes componentes que integran una arquitectura J2EE
Supongamos que tenemos una aplicación hecha con (Java Swing o
Android o IOS o Java Server Faces o Applets) + Hibernate + Spring, en este caso el flujo sería el
siguiente:
El usuario entra al sistema por medio de su browser o desde
su aplicación swing que tiene instalada en su escritorio o desde la aplicación
que instalo en su dispositivo móvil. El proyecto Java Swing o Android solo
tiene clases para pintar las pantallas, validar eventos que ejecute el usuario,
validar datos de entrada. Pero nunca tiene una clase de conexión a la capa de
datos, ni tiene clases ni librerías de hibernate. La
clase o el componente del proyecto Swing o Android que invocara a la capa de
negocio se conecta por medio de RMI, HTTP, o un cliente de Web Service u otro protocolo de comunicación a la capa de
negocio.
En la capa de negocio tenemos un servicio ya sea un EJB, un
Web Service, una clase que implementa RMI, etc, esperando ser
invocado para recoger la petición de la capa web. Aquí inyectamos las
dependencias por medio de spring para instanciar las
clases de negocio y los daos. Entonces, desde la clase de servicio invocamos a
la clase de negocio, la clase de negocio invoca a la clase de persistencia o dao y desde el dao invocamos a la
capa de datos.
Si es una base de datos, el servidor de bases de datos recibe
la petición hecha por el dao, la procesa y la regresa
o no de acuerdo a la configuración o a la petición realizada. Lo mismo ocurre
con cualquier componente que se encuentre en esta capa de datos. Entonces se
regresa la respuesta de que la transacción se ejecutó exitosamente o no de
acuerdo a como hayamos configurado la petición.
A continuación explicaremos como instalar nuestro aplicativo
que vamos a descargar desde el sitio web: https://drive.google.com/drive/folders/0B4hOecTGDaHbU1FyRXpIbTJZeVU desde cero, vamos a aprender a crear nuestro servidor de
base de datos MySQL, nuestro cliente HeidiSQL, además aprenderemos a crear una máquina virtual
en donde instalaremos nuestro servidor de base de datos, también aprenderemos a
crear un war de nuestro aplicativo web para
posteriormente instalarlo no solo en GlassFish o TomCat si no también lo instalaremos en WebLogic
12, también aprenderemos a instalar WebLogic 12, y
procederemos a instalar, probar, ejecutar y explicar a detalle cada componente
de nuestro aplicativo web que hemos construido solamente con Spring, para
probar este aplicativo vamos a utilizar el IDE de desarrollo Netbeans, también vamos a aprender a descargar e instalar
dicho IDE, en Netbeans vamos a aprender a crear un
nuevo servidor de Aplicaciones para ejecutar nuestros aplicativos, en este caso
configuraremos WebLogic en su versión 12. Todo esto
lo haremos dinámico y ameno para divertirnos mientras aprendemos cosas nuevas.
Después de haber acabado de leer este libro y ejecutar todo
lo que aquí vamos a hacer, te garantizamos que habrás aprendido muchísimo más
de lo que esperabas.
Comencemos
Prerrequisitos:
<![if !supportLists]>-
<![endif]>Un
equipo de 2GB de RAM mínimo, de preferencia 4GB
<![if !supportLists]>-
<![endif]>Conexión
de banda ancha a internet
<![if !supportLists]>-
<![endif]>Y
. . . solamente con eso, todo lo demás lo haremos a lo largo de este libro
NOTA: No importa si estás leyendo este libro desde tu
tableta, celular o cualquier dispositivo móvil, solamente con leer este libro
tus conocimientos en diseño de arquitectura de J2EE para proyectos web
profesionales aumentara considerablemente. La recomendación es que antes de
llevar a cabo los procesos que ejecutaremos en este libro, lo hayas leído
completamente hasta tener en claro los conceptos y lo que vamos a hacer.
1.- Instalación y configuración de una máquina virtual en Windows.
Nota: Este paso es
opcional, si quieres instalar todo en tu propia máquina no debes de seguir este
paso. En esta máquina virtual instalaremos nuestro
servidor de base de datos.
Una máquina virtual nos sirve para poder probar otros
sistemas operativos en nuestro equipo. Por ejemplo podemos instalar Solaris que
es Unix, una distribución de Linux como Suse, Fedora, Ubuntu, etc. O el mismo sistema operativo en el que
estamos trabajando por ejemplo cualquier versión de Windows. Dicha máquina
virtual se instala en nuestro equipo como una aplicación más, y lo mejor de
todo es que no se crean registros de dicha instalación que nos afecte, solamente
se crea una carpeta más y listo. Las máquinas virtuales que creamos son
portables, esto significa que podemos copiar la carpeta de nuestra máquina
virtual que hicimos por ejemplo con Linux Ubuntu y llevar nuestra máquina
virtual en un disco duro externo, por ejemplo nuestro sistema operativo Linux y
poderlo probar en cualquier otra máquina siempre y cuando esta tenga instalado
un visor de máquinas virtuales compatibles, en nuestro caso utilizaremos para
crear y gestionar nuestras máquinas virtuales VMWare Player.
<![if !supportLists]>-
<![endif]>Abrimos
nuestro buscador preferido y tecleamos “Download VMware Player”