* Java Standard Edition (Java SE) → Para PC
* Java Micro Edition (Java ME) → Para moviles
* Java Entreprise Edition (Java EE) → Version mas completa
* Java Card → Para tarjetas de credito con chip
Los módulos que forman una aplicación empresarial en Java pueden ser de tres tipos:
- Archivos JAR (Java
Archive): Los archivos JAR permiten agrupar distintos archivos .java
en uno solo. Es el empleado para empaquetar componentes EJBs.
- Archivos WAR (Web
Application Archive): Los archivos WAR permiten empaquetar en una
sola unidad aplicaciones web completas (servlets, páginas JSPs,
contenido estático como imágenes y otros recursos Web).
- Archivos EAR (Enterprise
Application Archive): Los archivos EAR son archivos desplegables en
servidores de aplicaciones JEE. Contienen archivos WAR y EJBs
empaquetados en ficheros JAR.
- Aplicaciones Web JAVA.
- Objetos distribuidos
EJBs.
- Aplicaciones
empresariales que engloban a las dos anteriores, aplicaciones web
JAVA y objetos distribuidos EJBs
Las clases en las APIs de Java se organizan en grupos distintos llamados paquetes.
Cada paquete contiene un conjunto de interfaces, clases y excepciones relacionadas con el entorno de trabajo.
Vamos a visualizar algunos de los servicios que provee Java EE(Enterprise Edition) y que podemos emplear en cualquier servidor de aplicaciones que siga este estándar.
- Java Transaction API
(JTA): Consta de dos partes y define las interfaces entre el
manejador de transacciones y las partes involucradas en un sistema
de transacciones distribuido, el manejador de recursos, el servidor
de aplicaciones y las aplicaciones transaccionales.
- Java Persistente API
(JPA): Para dotar de persistencia a objetos del lenguaje.
- Java Message Service
(JMS): Sistema de mensajería, permite mensajes punto a punto y
sistemas publicado suscrito.
- Java Naming Direct
Interface (JNDI): Sistema de nombrado para localizar recursos o
componentes de proveedores.
- JavaMail: Para manejo de
correo electrónico.
- Java Beans Active
Framework (JAF): Manejo de datos en diferentes tipos mime, ligado al
uso del correo.
- Java API for XML
Processing (JAXP): Soporte para el manejo de XML.
- Java EE Connector
Arquitectura: Permite el acceso a otro tipo de sistemas de
información empresarial por medio del desarrollo de un pluggin,
similar a los conectores JDBC.
- Java Autentícation and
Authorization Service (JAAS): Provee servicios de seguridad de
autenticación y autorización.
- Servicios Web (JAX-WS):
Para manejo de servicios web.
Introducción a los Servidores de Aplicaciones
Como consecuencia del éxito del lenguaje de programación Java, el término servidor de aplicaciones hace referencia a un servidor de aplicaciones Java EE.Algunos servidores certificados de JEE son los siguientes:
- JOnAS: servidor de
aplicaciones de código abierto de ObjectWeb
- JBoss: desarrollado
inicialmente por JBoss Inc y adquirido posteriormente por Red Hat.
Existe una versión de código abierto soportada por la comunidad y
otra empresarial.
- Sun Java System
Application Server Platform Edition 9.0: Es un servidor basado en
GlassFish.
- Oracle WebLogic
Application Server 10.0: antes conocido como BEA Systems.
- Servidor de Aplicaciones
SAP NetWeaver, Java EE 5 Edition de SAP
- JEUS 6, un Servidor de
aplicaciones específico de Linux de TmaxSoft
- Apache Gerónimo 2.0
- IBM WebSphere
Application Server Community Edition 2.0: basado en el servidor
Apache Gerónimo
- Oracle Containers for
Java EE 11
- GlassFish: un servidor
de aplicaciones de código abierto de Sun
- Apache OpenEJB vía
Apache Gerónimo
Los patrones de diseño son la base para la búsqueda de soluciones a problemas comunes en el desarrollo de software y otros ámbitos referentes al diseño de interacción o interfaces. Un patrón de diseño resulta ser una solución a un problema de diseño.
Los patrones de diseño se pueden dividir en tres grandes categorías basadas en su propósito, que a su vez cada una se divide en patrones de Clases y Objetos:
- Creacionales: Los
patrones creacionales tratan con las formas de crear instancias de
objetos. Usan la herencia (extends).
- Estructurales: Los
patrones estructurales describen como las clases y objetos pueden
ser combinados para formar grandes estructuras y proporcionar nuevas
funcionalidades. Estos objetos insertados pueden ser incluso objetos
simples u objetos compuestos.
- Comportamiento: Los
patrones de comportamiento ayudan a definir la comunicación y
relación entre los objetos de un sistema. El propósito de este
patrón es reducir el acoplamiento entre los objetos.
Modelo Vista Controlador (MVC)
En este tipo de arquitectura conocida, el cliente hace Request(solicita) a objetos de la capa de presentación (Pagina del servidor), que luego llama a su código controlador para pedirle funcionalidad, que crea una presentación como Response(respuesta) a esa solicitud.En los frameworks MVC, las URLs se mapean directamente a clases, estas son denominadas "Controladoras" y son las que procesan los Request entrantes, manejando las entradas del usuario, sus interacciones y ejecutando la lógica apropiada para el proceso. Una clase controladora llama a una vista, la cual genera la salida HTML que se enviará como Response.
El modelo MVC permite diseñar en tres capas de negocio y no poner todo el código en las interfaces de usuario de tu sistema (IU):
Capa de presentación: Con nuestras Interfaces (páginas HTML.) y sus controles visuales (controles de formulario) junto con sus eventos.
Capa de negocio: Lógica del dominio. Aquí irá todo el código que define las reglas de negocio (cálculos, validaciones). Surge de los procesos que hemos encontrado en el análisis.
Capa de acceso a datos: El código que permite acceder a las fuentes de datos. Esencialmente trata sobre 4 operaciones básicas, llamadas CRUD (por Create-Retrieve-Update y Delete), que se realizan sobre cualquier fuente de datos.
El modelo de arquitectura Model-View-Controller (MVC) separa una aplicación en tres componentes principales: el modelo, la vista y el controlador:
Modelos. Los objetos de modelo recuperan y almacenan el estado del modelo en una base de datos. Por ejemplo, un objeto Product podría recuperar información de una base de datos, trabajar con ella y, a continuación, escribir la información actualizada en una tabla Productos de una base de datos.
Vistas. Las vistas son los componentes que muestra la interfaz de usuario de la aplicación. Normalmente, esta interfaz de usuario se crea a partir de los datos de modelo.
Controladores. Los controladores son los componentes que controlan la interacción del usuario, trabajan con el modelo y por último seleccionan una vista para representar la interfaz de usuario.
Comunicación Síncrona y Asíncrona
Síncrona. Quien envía permanece bloqueado esperando a que llegue una respuesta del receptor antes de realizar cualquier otra tarea.
Asíncrona. Quien envía continúa con su ejecución inmediatamente después de enviar el mensaje al receptor.
La mayoría de las aplicaciones Web existentes realizan la comunicación de datos con el servidor de manera síncrona. En una comunicación síncrona, se ejecutan los procesos en el siguiente orden:- El cliente realiza una
petición al servidor.
- El servidor envía los
datos solicitados y el cliente comienza a recibir los datos.
- Una vez finalizada la
recepción de los datos en la página, el usuario vuelve a tener el
control.
En una aplicación Web que se comunica asíncronamente con el servidor, los procesos son los siguientes:
- El cliente realiza una
solicitud al servidor.
- El servidor envía los
datos solicitados
- El cliente comienza a
recibir los datos.
La tecnología más importante dentro de las llamadas asíncronas es AJAX.
AJAX. Acrónimo de Asynchronous JavaScript And XML (JavaScript asíncrono y XML). Ajax no es una tecnología, es el conjunto de muchas tecnologías (XHTML, CSS, DOM, XML, XSLT, XMLHttpRequest, JavaScript, Jquery). Dichas tecnologías se ejecutan en el navegador de los usuarios y mantiene comunicación asíncrona con el servidor en segundo plano. De esta forma es posible realizar cambios sobre la misma página sin necesidad de recargarla. En aplicaciones AJAX se pueden enviar peticiones al servidor web para obtener solamente la información necesaria y así ahorrar ancho de banda. Su desventaja sería que el cargar la página inicial, el proceso es más lento, debido a que primero tiene que cargar todo el código JavaScript y XML que hará la implementación. Las acciones de la tecnología Ajax se ejecutan en el cliente, es decir, en el navegador del usuario, y mantiene comunicación asíncrona con el servidor en segundo plano. Las tecnologías que forman AJAX son:- XHTML y CSS, para crear
una presentación basada en estándares.
- DOM, para la interacción
y manipulación dinámica de la presentación.
- XML, XSLT y JSON, para
el intercambio y la manipulación de información.
- XMLHttpRequest, para el
intercambio asíncrono de información.
- JavaScript, para unir
todas las demás tecnologías.
Capas de arquitectura JEE
En la arquitectura JEE se contemplan cuatro capas, en función del tipo de servicio y contenedores:- Capa de cliente: También
conocida como capa de presentación o de aplicación. Nos
encontramos con componentes Java (applets o aplicaciones) y
componentes que son parte del diseño web y su lógica en el cliente
(HTML, JavaScript, css, etc.).
- Capa Web. Intermediario
entre el cliente y otras capas. Sus componentes principales son los
servlets y las páginas JSP. Aunque componentes de capa cliente
(applets o aplicaciones) pueden acceder directamente a la capa EJB,
lo normal es que Los servlets/JSPs pueden llamar a los EJB.
- Capa Enterprise
JavaBeans: Permite a múltiples aplicaciones tener acceso de forma
concurrente a datos y lógica de negocio. Los EJB se encuentran en
un servidor EJB, que no es más que un servidor de objetos
distribuidos. Un EJB puede conectarse a cualquier capa, aunque su
misión esencial es conectarse con los sistemas de información
empresarial (un gestor de base de datos, ERP, etc.)
- Capa de sistemas de
información empresarial.
Empaquetado de aplicaciones JEE
Existen tres tipos de empaquetados dentro de las aplicaciones JEE:
*Archivos JAR (Java Archive)
Características:- Permiten empaquetar
diferentes archivos de java en uno solo.
- Siguen el formato ZIP
- Fueron incorporados en
la versión 1.1 del JDK
- Contienen clases Java y
recursos que utilizan dichas clases
- Es el empleado para
empaquetar componentes EJBs respetando su estructura de directorios.
*Archivos WAR (Web Application Archive)
Características:- Permiten empaquetar en
una sola unidad aplicaciones web java completas
- Pueden empaquetar los
siguientes elementos:
- Java Server Pages (JSP)
- Servlets
- Contenido estático
como css, HTML o imágenes
- Otros recursos web
- Java Server Pages (JSP)
*Archivos EAR (Enterprise Application Archive)
Características:- Archivos desplegables en
servidores de aplicaciones J2EE.
- Contienen los siguientes
elementos:
- Archivos War
- EJBs empaquetados
dentro de ficheros jar
- Archivos War
Debe contener obligatoriamente una carpeta META-INF y un fichero application.xml donde estará toda la meta-información, como su propio nombre indica.
Módulos web: ficheros .war que contienen la capa web
Módulos EJB: que contiene ficheros .jar.
Módulos de adaptadores de recursos
En la práctica, casi todo se reduce a un módulo war y pocos elementos más.
La estructura de un módulo web (empaquetado .war) es la siguiente:
/Raiz
/Raiz/WEB-INF
/Raiz/WEB-INF
/Raiz/WEB-INF/lib
/Raiz/WEB-INF/classes
/Raiz/WEB-INF/tags
El directorio Raíz contiene todos los archivos estáticos (HTML, gráficos, jsp, y los recursos estáticos de cualquier web)
El directorio WEB-INF debe contener un archivo web.xml que es la información que contendrá la meta-información de el archivo war.
El directorio WEB-INF/lib contiene las librerías de código .jar
El directorio WEB-INF/classes contendrá las clases compiladas
El directorio WEB-INF/lib contendrá las etiquetas personalizadas
Tecnologías
en J2EE
La tecnología Enterprise
JavaBeans (EJB) usa un modelo de componente para simplificar el
desarrollo de aplicaciones de middleware (capas) con soporte
automático de servicios como transacciones, seguridad y conectividad
de base de datos.
*JavaMail es una API que proporciona una serie de clases abstractas que modelan un sistema de correo.
*Java Message Service (JMS) es una API que permite el desarrollo de aplicaciones portables y basadas en mensajes para la plataforma Java.
*JavaServer Faces (JSF) proporciona un modelo de programación que ayuda a crear aplicaciones Web.
*JavaServer Pages (JSP) permite que desarrolladores Web desarrollen rápidamente y mantengan fácilmente páginas Web dinámicas.
*Standard Tag Library for JavaServer Pages (JSTL) es un conjunto de etiquetas personalizadas que habilitan varias funciones comunes de Web sites en un formato estandarizado.
*Los Java Servlets amplían y mejoran el alcance de los servidores Web al proporcionar un método basado en componentes e independiente de plataforma para crear aplicaciones basadas en la Web sin las limitaciones de rendimiento de los programas CGI.
*La API Java Transaction (JTA) es una API de alto nivel, independiente de implementación y de protocolo que permite que aplicaciones y servidores de aplicaciones accedan a transacciones Java Transaction Service(JTS) especifica la implementación de un gestor de transacciones que soporta JTA e implementa la correlación entre Java y la especificación OMG.
Los componentes de software son unidades binarias de producción, adquisición y despliegue independientes, que al interactuar, forman un sistema en funcionamiento.
Un componente puede tener varias interfaces, una por cada punto de acceso: uso, administración y configuración.
Los componentes más utilizados podemos diferenciarlos entre los siguientes
- Enterprise JavaBeans y
el modelo de componentes de Java EE
- La estructura de
componentes de .NET
Cuando un desarrollador crea un modelo de arquitectura basado en la plataforma JEE, debe especificar los siguientes elementos en el contenedor:
- Los componentes de la
aplicación
- Servlets
- JSPs (Java Server
Pages)
- EJBs (Enterprise Java
Beans)
- Servlets
- Los descriptores de
despliegue
- Ficheros XML que
describen los componentes de la aplicación
- Ficheros XML que
describen los componentes de la aplicación
Envío de información request y response HTTP
Una aplicación web es una aplicación que trabaja en un servidor y sobre la que un usuario accede desde un cliente general, como por ejemplo un navegador en un PC, un teléfono móvil o una PDA.La comunicación en la Web gira en torno al protocolo http y sus características son las siguientes:
- Protocolo de nivel de
aplicación
- Funciona sobre TCP
- Usa el puerto 80 por
defecto
- Modelo
petición/respuesta (request/response)
- No tiene estado
- Al igual que SMTP, es un
protocolo ASCII, que usa MIME para transferir información no ASCII.
- Tipos de peticiones:
GET, POST, PUT, DELETE, TRACE, OPTIONS, HEAD
El formato estándar para peticiones http con el método get es la siguiente:
URL?dato1=valor1&dato2=valor2
... &datoN=valorN
Debemos tener en cuenta los
siguientes parámetros al enviar caracteres en el valor de un
parámetro:- Caracteres ASCII
alfanuméricos y signos. (punto), - (guión), * (asterisco) y _
(subrayado) son literales.
- Debemos sustituir los
espacios en blanco por el símbolo +.
- Resto de caracteres son admitidos
Si
un valor aparece repetido más de una vez en la cadena del envío, el
parámetro correspondiente es recibido como un vector de valores.
dato[0], dato[1], dato[2]
No hay comentarios:
Publicar un comentario