jueves, 25 de septiembre de 2014

Libro de Arquitectura Java EE, Integración de Proyecto Web Con Spring MVC, Spring Tiles, Spring JDBC . . .

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”

Compra este libro completo dando clic aquí