SlideShare una empresa de Scribd logo
1 de 8
Desarrollo de Aplicaciones Web con J2EE
Ing. Pablo Cesar Ttito C.
InfomixUnitek@gmail.com
Jaaaaaaaaaaaa
Desarrollo de Aplicaciones Web con J2EE
Desarrollo de Aplicaciones Web con J2EE
Ing. Pablo Cesar Ttito C.
InfomixUnitek@gmail.com
TEMA Nº 1: INTRODUCCIÓN A J2EE
1) EL LENGUAJE JAVA
El lenguaje Java™ fue creado por Sun Microsystems Inc. en un proceso poretapas que arranca en 1990, año
en el que Sun creó un grupo de trabajo, lideradopor James Gosling, para desarrollar un sistema para
controlar electrodomésticos einclusoPDAs o Asistentes Personales (pequeños ordenadores) que, además,
permitiera la conexión a redes de ordenadores. Se pretendía crear un hardware polivalente, con un Sistema
Operativo eficiente (SunOS) y un lenguaje de desarrollo denominado Oak (roble), el precursor de Java. El
proyecto finalizó en
1992 y resultó un completo fracaso debido al excesivo coste del producto, con relación a alternativas
similares, tras lo cual el grupo se disolvió.
Por entonces aparece Mosaic y la World Wide Web. Después de la disolución del grupo de trabajo,
únicamente quedaba del proyecto el lenguaje Oak. Gracias a una acertada decisión de distribuir libremente
el lenguaje por la Red de Redes y alague y la facilidad de acceso a Internet, propiciado por la WWW, el
lenguaje se popularizó y se consiguió que una gran cantidad de programadores lo depurasen y
Termina se de perfilar la forma y usos del mismo. A partir de este momento, el lenguaje se difunde a una
velocidad vertiginosa, añadiéndosele numerosas clases
y funcionalidad para TCP/IP. El nombre del lenguaje tuvo que ser cambiado ya que existía otro llamado Oak.
El nombre “Java” surgió en una de las sesiones de “brainstorming” celebradas por el equipo de desarrollo del
lenguaje. Buscaban un nombre que evocara la esencia de la tecnología (viveza, animación, rapidez,
Interactividad…). Java fue elegido de entre muchísimas propuestas. No es un acrónimo, sino únicamente algo
humeante, caliente y que a muchos programadores les gusta beber en grandes cantidades: una taza de café
(Java enargot Inglés americano2). De esta forma, Son lanzó las primeras versiones de Java a principios de
1995. Desde entonces, Sun ha sabido manejar inteligentemente el éxito obtenido por su
Lenguaje, concediéndose licencias a cualquiera sin ningún problema, fomentando
CARACTERÍSTICAS DEL LENGUAJE
Es intrínsecamente orientado a objetos.
Funciona perfectamente en red.
Aprovecha características de la mayoría de los lenguajes modernos evitando sus inconvenientes
. En particular los del C++.
Tiene una gran funcionalidad gracias a sus librerías (clases).
NO tiene punteros manejables por el programador, aunque los maneja interna y transparentemente.
El manejo de la memoria no es un problema, la estonia el propio lenguaje y no el programador.
Genera aplicaciones con pocos errores posibles.
Incorpora Multi-Threading (para permitir la ejecución de tareas concurrentes dentro de un mismo
programa). Esta característica será tratada con detenimiento en el punto
Desarrollo de Aplicaciones Web con J2EE
Ing. Pablo Cesar Ttito C.
InfomixUnitek@gmail.com
2) CAPACIDADES DE JAVA PARA LA WEB
Java es la base para prácticamente todos los tipos de aplicaciones de red, además del estándar global para
desarrollar y distribuir aplicaciones móviles, juegos, contenido basado en web y software de empresa. Con
más de 9 millones de desarrolladores en todo el mundo, Java le permite desarrollar, implementar y utilizar
de forma eficaz interesantes aplicaciones y servicios.
Desde portátiles hasta centros de datos, desde consolas para juegos hasta súper computadoras, desde
teléfonos móviles hasta Internet, Java está en todas partes.
1,100 millones de escritorios ejecutan Oracle Java 930 millones de descargas de Java RuntimeEnvironment
cada año
3 mil millones de teléfonos móviles ejecutan Java Se entregan 31 veces más al año teléfonos Java que Apple
y Android juntos El 100% de los reproductores de Blu-ray ejecutan Java Se fabrican 1400 millones de tarjetas
Java cada año
Java se incluye en decodificadores, impresoras, juegos, sistemas de navegación en vehículos, cajeros
automáticos, terminales de loterías, dispositivos médicos, estaciones de pago de aparcamientos y mucho
más.
¿Por qué los desarrolladores de software eligen Java?
Java ha sido probado, ajustado, ampliado y probado por toda una comunidad de desarrolladores, arquitectos
de aplicaciones y entusiastas de Java. Java está diseñado para permitir el desarrollo de aplicaciones portátiles
de elevado rendimiento para el más amplio rango de plataformas informáticas posible. Al poner a disposición
de todo el mundo aplicaciones en entornos heterogéneos, las empresas pueden proporcionar más servicios y
mejorar la productividad, las comunicaciones y colaboración del usuario final y reducir drásticamente el
costo de propiedad tanto para aplicaciones de usuario como de empresa. Java se ha convertido en un valor
impagable para los desarrolladores, ya que les permite:
Escribir software en una plataforma y ejecutarla virtualmente en otra
Crear programas que se puedan ejecutar en un explorador y acceder a servicios Web disponibles
Desarrollar aplicaciones de servidor para foros en línea, almacenes, encuestas, procesamiento de
formularios HTML y mucho más
Combinar aplicaciones o servicios que utilizan el lenguaje Java para crear aplicaciones o servicios con
un gran nivel de personalización
Escribir aplicaciones potentes y eficaces para teléfonos móviles, procesadores remotos, productos de
consumo y prácticamente cualquier otro dispositivo electrónico
Desarrollo de Aplicaciones Web con J2EE
Ing. Pablo Cesar Ttito C.
InfomixUnitek@gmail.com
3) EVOLUCIÓN DE JSP
Qué es JSP?
Java Server Pages (JSP, para abreviar) es una tecnología basada en Java que simplifica el desarrollo de
páginas web con contenido dinámico. Con JSP, los diseñadores web pueden incorporar elementos dinámicos
dentro de la página utilizando tanto porciones de código Java incrustadas, como unas cuantas etiquetas. Así,
las páginas JSP tienen el aspecto de una página tradicional HTML, a la que se le ha introducido parte de
código Java junto con unas etiquetas. De esta forma, cuando una página es solicitada por un usuario y
procesada por un servidor HTTP, el código HTML pasará directamente al usuario, mientras que las porciones
de código Java serán ejecutadas en el servidor cuando la solicitud haya sido recibida, para generar el
contenido dinámico de la página. Cuando el usuario acceda al código de la página que le llega sólo verá
HTML, sin poder acceder al código JSP subyacente.
EVOLUCIÓN TECNOLÓGICA
El hecho de que una página contenga contenido dinámico, exige que el servidor web realice algún trabajo de
procesado que en el caso de páginas estáticas no era necesario. La forma de realizar este procesado ha ido
cambiando con el tiempo, y así veremos ahora un pequeño resumen de cómo ha ido evolucionando.
Inicialmente la generación de contenido dinámico se hacía fuera de los servidores. Cuando llegaba una
solicitud, esta era procesada en el servidor, y cuando era necesario se llamaba a un proceso, fuera del
servidor, que generaba el contenido dinámico y lo devolvía al servidor. Los modelos basados en el Común
Gateway Interface (CGI) seguían esta idea. Sus principales problemas eran: necesidad de overhead para la
comunicación entre proceso y servidor, consumo de recursos de sistema por parte del proceso...
Posteriormente se optó por sistemas que introdujeran porciones de código de lenguaje tradicionales
incrustados dentro de la página usando etiquetas, de forma que el estilo de la sintaxis fuera más consistente
y sencillo. Este modelo lo han seguido entre otros: Microsoft Active Server Pages (ASP), Server Side Java
Script (SSJS), Java Server Pages (JSP) y otros.
En JSP el lenguaje que se utilizará para la generación de contenido dinámico es, típicamente, Java, y provee
un conjunto de etiquetas que interactúan con objetos Java en el servidor de forma que no es estrictamente
necesario que aparezca código Java en la página.
BENEFICIOS
JSP ofrece varios beneficios como sistema de generación de contenido dinámico. Al estar basado en Java,
presenta las ventajas que este lenguaje ofrece con respecto a la portabilidad entre plataformas y las
derivadas de la orientación a objetos de este lenguaje.
Desarrollo de Aplicaciones Web con J2EE
Ing. Pablo Cesar Ttito C.
InfomixUnitek@gmail.com
4) J2EE
Qué es Java para Internet (J2EE)
La plataforma J2EE añade a Java la funcionalidad necesaria para convertirse en un lenguaje orientado al
desarrollo de servicios en Internet. Mediante JSP (un lenguaje de programación de páginas web dinámicas
como PHP o ASP) y Servlets (scripts CGI en el servidor como los de Perl) se pueden desarrollar sitios Web bajo
la tecnología Java.
J2SE= JRE + librerías, herramientas y compilador para desarrollo. (Para el programador)
Básicamente J2SE es un conjunto de clases e interfaces para desarrollo de aplicaciones "simples". Me refiero
con simples, por ejemplo a aplicaciones de escritorio con interfaz de usuario Swing o AWT que son un API
para “dibujar" ventanas.
J2EE = J2SE + Librerías para aplicaciones empresariales (JMS,EJB,JAX-WS,etc)
J2EE es un grupo de especificaciones diseñadas por Sun que permiten la creación de aplicaciones
empresariales, esto sería: acceso a base de datos (JDBC), utilización de directorios distribuidos (JNDI), acceso
a métodos remotos (RMI/CORBA), funciones de correo electrónico (JavaMail), aplicaciones Web(JSP y
Servlets)...etc. Aquí es importante notar que J2EE es solo una especificación, esto permite que diversos
productos sean diseñados alrededor de estas especificaciones algunos son Tomcat y Weblogic.
¿En qué consiste el Curso de Java para Internet (J2EE) de CiberAula?
En el curso de Java para Internet on-line se estudia el desarrollo de aplicaciones web bajo la
plataforma J2EE (JavaTM
2 Platform, Enterprise Edition) con servlets, JSP y EJB. Como proyecto
del Curso de Java on-line se realizará una tienda virtual.
¿En qué podré emplear los conocimientos adquiridos en el Curso de Java para Internet (J2EE)?
Con los conocimientos adquiridos en el Curso de Java para Internet (J2EE) on line podrá realizar las
siguientes aplicaciones prácticas
5) APORTACIONES DE CÓDIGO ABIERTO
La historia del software libre y de código abierto como lo conocemos actualmente, se remonta a inicios de
los años 1980, época en la que la mayoría de software era privativo y surgió la necesidad, por parte de
algunos programadores, de crear proyectos que impulsaran la creación de software libre.1 Cabe mencionar
que antes, cuando las primeras computadoras nacieron (y por ende los primeros programas informáticos), el
software tenía un modelo de desarrollo cooperativo, similar al de otras ciencias como la física; esto empezó a
cambiar en los años 1960 y los años 1970, cuando nacieron las primeras compañías que «privatizaron» su
código.2
Es importante señalar que el software libre y de código abierto, no debe ser confundido con el llamado
"freeware"; el software libre y de código abierto suele ser gratuito, lo que puede llevar a confusión.
Desarrollo de Aplicaciones Web con J2EE
Ing. Pablo Cesar Ttito C.
InfomixUnitek@gmail.com
El FOSS (acrónimo en inglés para free and open source software) también puede ser comprado y vendido. La
confusión es aún mayor en países de habla inglesa por la ambigüedad de la palabra free que significa tanto
libertad, como gratuidad.
Esta es una línea del tiempo acerca de cómo el software libre y de código abierto ha existido y evolucionado
desde su concepción.
6) ARQUITECTURA
El presente artículo es una breve introducción a la arquitectura empresarial de Java denominada Java EE o
JEE de forma abreviada. Este artículo sirve como base para futuros artículos que ejemplifican el uso y la
implementación de elementos pertenecientes a esta arquitectura.
La plataforma Java EE (anteriormente conocida como Java 2 Platform, Enterprise Edition o J2EE hasta la
versión 1.4) está definida por una nueva especificación.
Similar a otras especificaciones del Java CommunityProcess, Java EE es también considerada informalmente
como un estándar debido a que los proveedores deben cumplir ciertos requisitos de conformidad para
declarar que sus productos son conformes a Java EE.
Java EE incluye varias especificaciones de API o interfaz de programación de aplicaciones, como son JDBC,
RMI, e-mail, JMS, Servicios Web, XML. etc. y define cómo coordinarlos. Java EE también configura algunas
especificaciones únicas para Java EE para componentes. Estas incluyen Enterprise JavaBeans, servlets,
portlets, JSP y varias tecnologías de servicios web tales como Axis2 o JAX-WS (Apache CXF).
El desarrollador puede crear una aplicación empresarial portable entre plataformas y escalable, a la vez que
integrable con tecnologías anteriores. Otros beneficios añadidos son, por ejemplo, que el servidor de
aplicaciones puede manejar transacciones, la seguridad, escalabilidad, concurrencia y gestión de los
componentes desplegados, significando que los desarrolladores pueden concentrarse más en la lógica de
negocio de los componentes en lugar de en tareas de mantenimiento de bajo nivel.
Enterprise Java Beans (EJB)
Los EJBs (o beans empresariales) son componentes Java EE que implementan la tecnología Enterprise
JavaBeans (EJB). Un EJB se ejecuta en un contenedor de EJB que es un entorno de ejecución dentro un
servidor de aplicaciones. Aunque transparente para la aplicación, el contenedor de EJB provee una serie de
servicios a nivel de sistema entre los que se incluyen las transacciones y la seguridad de los EJBs.
Estos servicios permiten la construcción rápida y el despliegue de EJBs los cuáles forman el núcleo
transaccional de las aplicaciones JEE.
Escritos en lenguaje de programación Java, un EJB es un componente de servidor que encapsula la lógica de
negocio de una aplicación. Entre sus ventajas están:
Simplifican el desarrollo de grandes aplicaciones distribuidas. El contenedor de EJB se encarga de la
seguridad y el manejo de transacciones, dejando al bean solo la lógica de negocio
Como la lógica de negocio está en los beans, el desarrollador puede ocuparse de desarrollar la capa de
presentación sin tener que codificar lógica de negocio o acceso a bases de datos. Como resultado se
producen clientes muy ligeros, especialmente deseables para ejecutarse en pequeños dispositivos como los
smartphones
Los beans pueden ser reutilizados para crear nuevos beans que extiendan su funcionalidad. Al fin y al cabo
son también componentes reutilizables.
¿Cuándo utilizar EJBs?
La aplicación debe ser escalable.
Las transacciones tienen que asegurar la integridad de los datos
La aplicación puede tener varios tipos de clientes incluso en diferentes plataformas
Desarrollo de Aplicaciones Web con J2EE
Ing. Pablo Cesar Ttito C.
InfomixUnitek@gmail.com
Tipos de EJBs
Tipo
Objetivo
De sesión (Session)
Realizan una tarea para un cliente; opcionalmente pueden implementar un servicio Web
Dirigidos por mensajes (Message-Driven)
Actúan como un listener para un tipo particular de mensaje, como los soportados por el Java MessageService
API
Bean de Sesión
Un bean de sesión representa a un cliente simple dentro de un servidor de aplicaciones. Para acceder a una
aplicación desplegada en el servidor, el cliente invoca un método del bean de sesión que se encarga de
ejecutar la lógica de negocio.
Como su nombre sugiere, el bean de sesión es similar a una sesión interactiva. Un bean de sesión no se
comparte; solo puede tener un cliente, de la misma manera que una sesión interactiva solo puede tener un
usuario. Cuando el bean de sesión termina no sigue asociado con el cliente que lo había invocado.
Tipos de Bean de Sesión
Descripción
Con estado (stateful)
Las variables de instancia de la clase del bean guardan sus valores (estado conversacional) manteniéndolo
mientras dure la sesión. Si el cliente termina o elimina el bean, este estado desaparece.
Sin estado (stateless)
No mantiene un estado conversacional con el cliente: los valores de sus variables de instancia solo se
mantienen durante la invocación de un método. Excepto durante la invocación de un método, todas las
instancias de los beans sin estado son equivalentes, permitiendo al contenedor de EJB asignar una instancia a
cualquier cliente. Ofrecen mejor escalabilidad para aplicaciones que soportan un gran número de clientes y
son los únicos que soportan la implementación de servicios Web
Cuando utilizar los Beans de Sesión
En general, se deben utilizar beans de sesión siempre que se den las siguientes circunstancias:
En cualquier momento, solo un cliente tiene acceso a la instancia del bean
El estado del bean no es persistente, existiendo solo por un corto período de tiempo
El bean implementa un servicio Web
Un bean de sesión es apropiado si alguna de las siguientes condiciones son verdaderas:
El estado del bean representa la interacción entre el bean y un cliente específico
El bean necesita mantener información del cliente entre diferentes invocaciones de métodos
El bean media entre el cliente y otros componentes de la aplicación representando una vista simplificada
para el cliente
El bean orquestra el flujo de varios EJBs
Para mejorar el desempeño deberíamos utilizar bean sin sesión si se da alguna de las situaciones siguientes:
El estado del bean no contiene datos para un cliente específico
Con la invocación de un método, el bean realiza una tarea genérica para todos los clientes (por ejemplo el
envío de un correo electrónico de confirmación)
Desarrollo de Aplicaciones Web con J2EE
Ing. Pablo Cesar Ttito C.
InfomixUnitek@gmail.com
Definiendo el acceso de los clientes mediante interfaces
Los clientes solo pueden acceder a un bean de sesión solo invocando los métodos definidos en una interfaz.
Las interfaces de negocio definen la vista cliente del bean, quedando ocultos la implementación de los
métodos o los parámetros de despliegue.
Las interfaces bien diseñadas simplifican el desarrollo y mantenimiento de las aplicaciones Java EE. Las
interfaces claras no solo protegen al cliente de las complejidades de las clases que implementan el EJB, sino
que permiten a los beans cambiar internamente sin afectar a los clientes (desacoplan al cliente de la
implementación del EJB).
Cuando se diseña una aplicación Java EE, una de las decisiones más importantes es el tipo de acceso que va a
tener el EJB: local, remoto o servicio Web.

Más contenido relacionado

La actualidad más candente

DESARROLLO DE SOFTWARE
DESARROLLO DE SOFTWAREDESARROLLO DE SOFTWARE
DESARROLLO DE SOFTWAREroccos1l
 
Lenguajes De Programación Web
Lenguajes De Programación WebLenguajes De Programación Web
Lenguajes De Programación Webragmyl
 
Los diferentes lenguajes de programación para la web
Los diferentes lenguajes de programación para la webLos diferentes lenguajes de programación para la web
Los diferentes lenguajes de programación para la webCartagena, Bolivar
 
Lenguajes de desarrollo web
Lenguajes de desarrollo webLenguajes de desarrollo web
Lenguajes de desarrollo webEvelioHdez
 
Trabajo avila
Trabajo avilaTrabajo avila
Trabajo avilaadezhiz
 
Bases de Datos en Android y Desarrollo de Aplicaciones Móviles Multiplataforma
Bases de Datos en Android y Desarrollo de Aplicaciones Móviles MultiplataformaBases de Datos en Android y Desarrollo de Aplicaciones Móviles Multiplataforma
Bases de Datos en Android y Desarrollo de Aplicaciones Móviles MultiplataformaUniversidad Autonoma de Chihuahua
 
Presentación no numerica ii
Presentación no numerica iiPresentación no numerica ii
Presentación no numerica iiCarlos Ordaz
 
Lenguajes del lado del Servidor y lenguajes del lado del usuario
Lenguajes del lado del Servidor y lenguajes del lado del usuarioLenguajes del lado del Servidor y lenguajes del lado del usuario
Lenguajes del lado del Servidor y lenguajes del lado del usuarioMariano-Celiz17
 
Lenguajes del lado del servidor
Lenguajes del lado del servidorLenguajes del lado del servidor
Lenguajes del lado del servidorpidingos
 
Lenguajes del lado del servidor y lenguajes del lado del usuario
Lenguajes del lado del servidor y lenguajes del lado del usuarioLenguajes del lado del servidor y lenguajes del lado del usuario
Lenguajes del lado del servidor y lenguajes del lado del usuarioJessica
 
los diferentes lenguajes de programación para-la-web
 los diferentes lenguajes de programación para-la-web los diferentes lenguajes de programación para-la-web
los diferentes lenguajes de programación para-la-webolguisf
 
Programación web
Programación web Programación web
Programación web Andy015
 
Libro 4:Lenguajes de lado del servidor y del ladodel usuario
Libro 4:Lenguajes de lado del servidor y del ladodel usuarioLibro 4:Lenguajes de lado del servidor y del ladodel usuario
Libro 4:Lenguajes de lado del servidor y del ladodel usuariosocrates12854
 
Catalogo de editores web sinuhe emmanuel perez martinez
Catalogo de editores web sinuhe emmanuel perez martinezCatalogo de editores web sinuhe emmanuel perez martinez
Catalogo de editores web sinuhe emmanuel perez martinezSinuhé Pérez Mtz
 

La actualidad más candente (18)

DESARROLLO DE SOFTWARE
DESARROLLO DE SOFTWAREDESARROLLO DE SOFTWARE
DESARROLLO DE SOFTWARE
 
Lenguajes De Programación Web
Lenguajes De Programación WebLenguajes De Programación Web
Lenguajes De Programación Web
 
Los diferentes lenguajes de programación para la web
Los diferentes lenguajes de programación para la webLos diferentes lenguajes de programación para la web
Los diferentes lenguajes de programación para la web
 
Lenguajes de desarrollo web
Lenguajes de desarrollo webLenguajes de desarrollo web
Lenguajes de desarrollo web
 
Trabajo avila
Trabajo avilaTrabajo avila
Trabajo avila
 
Bases de Datos en Android y Desarrollo de Aplicaciones Móviles Multiplataforma
Bases de Datos en Android y Desarrollo de Aplicaciones Móviles MultiplataformaBases de Datos en Android y Desarrollo de Aplicaciones Móviles Multiplataforma
Bases de Datos en Android y Desarrollo de Aplicaciones Móviles Multiplataforma
 
Lenguajes de programacion web
Lenguajes de programacion webLenguajes de programacion web
Lenguajes de programacion web
 
ATIX20
ATIX20ATIX20
ATIX20
 
Investigación
InvestigaciónInvestigación
Investigación
 
Presentación no numerica ii
Presentación no numerica iiPresentación no numerica ii
Presentación no numerica ii
 
Lenguajes del lado del Servidor y lenguajes del lado del usuario
Lenguajes del lado del Servidor y lenguajes del lado del usuarioLenguajes del lado del Servidor y lenguajes del lado del usuario
Lenguajes del lado del Servidor y lenguajes del lado del usuario
 
Lenguajes del lado del servidor
Lenguajes del lado del servidorLenguajes del lado del servidor
Lenguajes del lado del servidor
 
Lenguajes del lado del servidor y lenguajes del lado del usuario
Lenguajes del lado del servidor y lenguajes del lado del usuarioLenguajes del lado del servidor y lenguajes del lado del usuario
Lenguajes del lado del servidor y lenguajes del lado del usuario
 
los diferentes lenguajes de programación para-la-web
 los diferentes lenguajes de programación para-la-web los diferentes lenguajes de programación para-la-web
los diferentes lenguajes de programación para-la-web
 
Programación web
Programación web Programación web
Programación web
 
Clase 2 Lenguajes de Programación Web
Clase 2 Lenguajes de Programación WebClase 2 Lenguajes de Programación Web
Clase 2 Lenguajes de Programación Web
 
Libro 4:Lenguajes de lado del servidor y del ladodel usuario
Libro 4:Lenguajes de lado del servidor y del ladodel usuarioLibro 4:Lenguajes de lado del servidor y del ladodel usuario
Libro 4:Lenguajes de lado del servidor y del ladodel usuario
 
Catalogo de editores web sinuhe emmanuel perez martinez
Catalogo de editores web sinuhe emmanuel perez martinezCatalogo de editores web sinuhe emmanuel perez martinez
Catalogo de editores web sinuhe emmanuel perez martinez
 

Similar a Desarrollo Aplicaciones Web J2EE

Tecnologia web
Tecnologia webTecnologia web
Tecnologia webfanyto
 
Lenguaje de programación java
Lenguaje de programación  javaLenguaje de programación  java
Lenguaje de programación javanigthfox31
 
Aprendiendo a Programas en 4 horas JavaScript
Aprendiendo a Programas en 4 horas JavaScriptAprendiendo a Programas en 4 horas JavaScript
Aprendiendo a Programas en 4 horas JavaScriptKarsarmi
 
My programming language 04 05-2014
My programming language 04 05-2014My programming language 04 05-2014
My programming language 04 05-2014Neptuno Networks
 
COMPLEMENTOS DEL NAVEGADOR
COMPLEMENTOS DEL NAVEGADORCOMPLEMENTOS DEL NAVEGADOR
COMPLEMENTOS DEL NAVEGADORJOSELINE
 
Lenguajes de programación para la web
Lenguajes de programación para la webLenguajes de programación para la web
Lenguajes de programación para la webOscar Luis Cdrc
 
Desarrollo.de.aplicaciones.con.java
Desarrollo.de.aplicaciones.con.javaDesarrollo.de.aplicaciones.con.java
Desarrollo.de.aplicaciones.con.javaSantiago Sora
 
Los diferentes lenguajes de programación para la web
Los diferentes lenguajes de programación para la webLos diferentes lenguajes de programación para la web
Los diferentes lenguajes de programación para la webCartagena, Bolivar
 
PRIMERA PRESENTACION JAVA
PRIMERA PRESENTACION JAVAPRIMERA PRESENTACION JAVA
PRIMERA PRESENTACION JAVANoralma Yanez
 
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEBEQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEBUNIV DE CIENCIAS Y ARTES
 
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEBEQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEBUNIV DE CIENCIAS Y ARTES
 
Capítulo i que es java
Capítulo i que es javaCapítulo i que es java
Capítulo i que es javasaimaga30
 
Articulo tipos de ide y ajax control toolkit
Articulo   tipos de ide y ajax control toolkitArticulo   tipos de ide y ajax control toolkit
Articulo tipos de ide y ajax control toolkitCesar Escalante
 

Similar a Desarrollo Aplicaciones Web J2EE (20)

Tutorial Java
Tutorial JavaTutorial Java
Tutorial Java
 
Pres1
Pres1Pres1
Pres1
 
Tecnologia web
Tecnologia webTecnologia web
Tecnologia web
 
Lenguaje de programación java
Lenguaje de programación  javaLenguaje de programación  java
Lenguaje de programación java
 
Aprendiendo a Programas en 4 horas JavaScript
Aprendiendo a Programas en 4 horas JavaScriptAprendiendo a Programas en 4 horas JavaScript
Aprendiendo a Programas en 4 horas JavaScript
 
My programming language 04 05-2014
My programming language 04 05-2014My programming language 04 05-2014
My programming language 04 05-2014
 
COMPLEMENTOS DEL NAVEGADOR
COMPLEMENTOS DEL NAVEGADORCOMPLEMENTOS DEL NAVEGADOR
COMPLEMENTOS DEL NAVEGADOR
 
Java
JavaJava
Java
 
Lenguajes de programación para la web
Lenguajes de programación para la webLenguajes de programación para la web
Lenguajes de programación para la web
 
189 206
189 206189 206
189 206
 
Desarrollo.de.aplicaciones.con.java
Desarrollo.de.aplicaciones.con.javaDesarrollo.de.aplicaciones.con.java
Desarrollo.de.aplicaciones.con.java
 
Los diferentes lenguajes de programación para la web
Los diferentes lenguajes de programación para la webLos diferentes lenguajes de programación para la web
Los diferentes lenguajes de programación para la web
 
PRIMERA PRESENTACION JAVA
PRIMERA PRESENTACION JAVAPRIMERA PRESENTACION JAVA
PRIMERA PRESENTACION JAVA
 
EQUIPO 2,2A PARTE DE LAS AGUILAS
EQUIPO 2,2A PARTE DE LAS AGUILASEQUIPO 2,2A PARTE DE LAS AGUILAS
EQUIPO 2,2A PARTE DE LAS AGUILAS
 
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEBEQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
 
Java
JavaJava
Java
 
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEBEQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
 
Qué es java
Qué es javaQué es java
Qué es java
 
Capítulo i que es java
Capítulo i que es javaCapítulo i que es java
Capítulo i que es java
 
Articulo tipos de ide y ajax control toolkit
Articulo   tipos de ide y ajax control toolkitArticulo   tipos de ide y ajax control toolkit
Articulo tipos de ide y ajax control toolkit
 

Más de Anyeni Garay

DETECCIÓN FÁCIL Y BARATA DE SUSTANCIAS TÓXICAS Y ALIMENTOS EN MAL ESTADO CON ...
DETECCIÓN FÁCIL Y BARATA DE SUSTANCIAS TÓXICAS Y ALIMENTOS EN MAL ESTADO CON ...DETECCIÓN FÁCIL Y BARATA DE SUSTANCIAS TÓXICAS Y ALIMENTOS EN MAL ESTADO CON ...
DETECCIÓN FÁCIL Y BARATA DE SUSTANCIAS TÓXICAS Y ALIMENTOS EN MAL ESTADO CON ...Anyeni Garay
 
Sistemas de informacion gernecial
Sistemas de informacion gernecialSistemas de informacion gernecial
Sistemas de informacion gernecialAnyeni Garay
 
Gestión de la cadena de suministros
Gestión de la cadena de suministrosGestión de la cadena de suministros
Gestión de la cadena de suministrosAnyeni Garay
 
Cables con tecnologia swr
Cables con tecnologia swrCables con tecnologia swr
Cables con tecnologia swrAnyeni Garay
 
Planificador de Recursos Empresariales (ERP)
Planificador de Recursos Empresariales  (ERP)Planificador de Recursos Empresariales  (ERP)
Planificador de Recursos Empresariales (ERP)Anyeni Garay
 
Encriptación de datos y seguridad de los mismos
Encriptación de datos y seguridad de los mismosEncriptación de datos y seguridad de los mismos
Encriptación de datos y seguridad de los mismosAnyeni Garay
 
Computación en la Nube
Computación en la  NubeComputación en la  Nube
Computación en la NubeAnyeni Garay
 
W riticity ELECTRICIDAD INALAMRICA
W riticity ELECTRICIDAD     INALAMRICAW riticity ELECTRICIDAD     INALAMRICA
W riticity ELECTRICIDAD INALAMRICAAnyeni Garay
 
Un derivado del adn es buen conductor de la electricidad
Un derivado del adn es buen conductor de la electricidadUn derivado del adn es buen conductor de la electricidad
Un derivado del adn es buen conductor de la electricidadAnyeni Garay
 
Software para la maquetacion de publicaciones
Software para la maquetacion de publicacionesSoftware para la maquetacion de publicaciones
Software para la maquetacion de publicacionesAnyeni Garay
 
Sistema inalámbrico para transmitir energía dentro del cuerpo
Sistema inalámbrico para transmitir energía dentro del cuerpoSistema inalámbrico para transmitir energía dentro del cuerpo
Sistema inalámbrico para transmitir energía dentro del cuerpoAnyeni Garay
 
Retoques fotográficos
Retoques fotográficosRetoques fotográficos
Retoques fotográficosAnyeni Garay
 
Proyecto crowdfunding para distribuir electricidad sin cables en
Proyecto crowdfunding para distribuir electricidad sin cables enProyecto crowdfunding para distribuir electricidad sin cables en
Proyecto crowdfunding para distribuir electricidad sin cables enAnyeni Garay
 

Más de Anyeni Garay (20)

DETECCIÓN FÁCIL Y BARATA DE SUSTANCIAS TÓXICAS Y ALIMENTOS EN MAL ESTADO CON ...
DETECCIÓN FÁCIL Y BARATA DE SUSTANCIAS TÓXICAS Y ALIMENTOS EN MAL ESTADO CON ...DETECCIÓN FÁCIL Y BARATA DE SUSTANCIAS TÓXICAS Y ALIMENTOS EN MAL ESTADO CON ...
DETECCIÓN FÁCIL Y BARATA DE SUSTANCIAS TÓXICAS Y ALIMENTOS EN MAL ESTADO CON ...
 
Data warehouse
Data warehouseData warehouse
Data warehouse
 
Sistemas de informacion gernecial
Sistemas de informacion gernecialSistemas de informacion gernecial
Sistemas de informacion gernecial
 
Mineria de datos
Mineria de datosMineria de datos
Mineria de datos
 
Gestión de la cadena de suministros
Gestión de la cadena de suministrosGestión de la cadena de suministros
Gestión de la cadena de suministros
 
Erp
ErpErp
Erp
 
Data mart
Data martData mart
Data mart
 
Cables con tecnologia swr
Cables con tecnologia swrCables con tecnologia swr
Cables con tecnologia swr
 
Geolocalizacion
GeolocalizacionGeolocalizacion
Geolocalizacion
 
Planificador de Recursos Empresariales (ERP)
Planificador de Recursos Empresariales  (ERP)Planificador de Recursos Empresariales  (ERP)
Planificador de Recursos Empresariales (ERP)
 
Encriptación de datos y seguridad de los mismos
Encriptación de datos y seguridad de los mismosEncriptación de datos y seguridad de los mismos
Encriptación de datos y seguridad de los mismos
 
Computación en la Nube
Computación en la  NubeComputación en la  Nube
Computación en la Nube
 
CRM
CRMCRM
CRM
 
W riticity ELECTRICIDAD INALAMRICA
W riticity ELECTRICIDAD     INALAMRICAW riticity ELECTRICIDAD     INALAMRICA
W riticity ELECTRICIDAD INALAMRICA
 
Un derivado del adn es buen conductor de la electricidad
Un derivado del adn es buen conductor de la electricidadUn derivado del adn es buen conductor de la electricidad
Un derivado del adn es buen conductor de la electricidad
 
Super baterias
Super bateriasSuper baterias
Super baterias
 
Software para la maquetacion de publicaciones
Software para la maquetacion de publicacionesSoftware para la maquetacion de publicaciones
Software para la maquetacion de publicaciones
 
Sistema inalámbrico para transmitir energía dentro del cuerpo
Sistema inalámbrico para transmitir energía dentro del cuerpoSistema inalámbrico para transmitir energía dentro del cuerpo
Sistema inalámbrico para transmitir energía dentro del cuerpo
 
Retoques fotográficos
Retoques fotográficosRetoques fotográficos
Retoques fotográficos
 
Proyecto crowdfunding para distribuir electricidad sin cables en
Proyecto crowdfunding para distribuir electricidad sin cables enProyecto crowdfunding para distribuir electricidad sin cables en
Proyecto crowdfunding para distribuir electricidad sin cables en
 

Desarrollo Aplicaciones Web J2EE

  • 1. Desarrollo de Aplicaciones Web con J2EE Ing. Pablo Cesar Ttito C. InfomixUnitek@gmail.com Jaaaaaaaaaaaa Desarrollo de Aplicaciones Web con J2EE
  • 2. Desarrollo de Aplicaciones Web con J2EE Ing. Pablo Cesar Ttito C. InfomixUnitek@gmail.com TEMA Nº 1: INTRODUCCIÓN A J2EE 1) EL LENGUAJE JAVA El lenguaje Java™ fue creado por Sun Microsystems Inc. en un proceso poretapas que arranca en 1990, año en el que Sun creó un grupo de trabajo, lideradopor James Gosling, para desarrollar un sistema para controlar electrodomésticos einclusoPDAs o Asistentes Personales (pequeños ordenadores) que, además, permitiera la conexión a redes de ordenadores. Se pretendía crear un hardware polivalente, con un Sistema Operativo eficiente (SunOS) y un lenguaje de desarrollo denominado Oak (roble), el precursor de Java. El proyecto finalizó en 1992 y resultó un completo fracaso debido al excesivo coste del producto, con relación a alternativas similares, tras lo cual el grupo se disolvió. Por entonces aparece Mosaic y la World Wide Web. Después de la disolución del grupo de trabajo, únicamente quedaba del proyecto el lenguaje Oak. Gracias a una acertada decisión de distribuir libremente el lenguaje por la Red de Redes y alague y la facilidad de acceso a Internet, propiciado por la WWW, el lenguaje se popularizó y se consiguió que una gran cantidad de programadores lo depurasen y Termina se de perfilar la forma y usos del mismo. A partir de este momento, el lenguaje se difunde a una velocidad vertiginosa, añadiéndosele numerosas clases y funcionalidad para TCP/IP. El nombre del lenguaje tuvo que ser cambiado ya que existía otro llamado Oak. El nombre “Java” surgió en una de las sesiones de “brainstorming” celebradas por el equipo de desarrollo del lenguaje. Buscaban un nombre que evocara la esencia de la tecnología (viveza, animación, rapidez, Interactividad…). Java fue elegido de entre muchísimas propuestas. No es un acrónimo, sino únicamente algo humeante, caliente y que a muchos programadores les gusta beber en grandes cantidades: una taza de café (Java enargot Inglés americano2). De esta forma, Son lanzó las primeras versiones de Java a principios de 1995. Desde entonces, Sun ha sabido manejar inteligentemente el éxito obtenido por su Lenguaje, concediéndose licencias a cualquiera sin ningún problema, fomentando CARACTERÍSTICAS DEL LENGUAJE Es intrínsecamente orientado a objetos. Funciona perfectamente en red. Aprovecha características de la mayoría de los lenguajes modernos evitando sus inconvenientes . En particular los del C++. Tiene una gran funcionalidad gracias a sus librerías (clases). NO tiene punteros manejables por el programador, aunque los maneja interna y transparentemente. El manejo de la memoria no es un problema, la estonia el propio lenguaje y no el programador. Genera aplicaciones con pocos errores posibles. Incorpora Multi-Threading (para permitir la ejecución de tareas concurrentes dentro de un mismo programa). Esta característica será tratada con detenimiento en el punto
  • 3. Desarrollo de Aplicaciones Web con J2EE Ing. Pablo Cesar Ttito C. InfomixUnitek@gmail.com 2) CAPACIDADES DE JAVA PARA LA WEB Java es la base para prácticamente todos los tipos de aplicaciones de red, además del estándar global para desarrollar y distribuir aplicaciones móviles, juegos, contenido basado en web y software de empresa. Con más de 9 millones de desarrolladores en todo el mundo, Java le permite desarrollar, implementar y utilizar de forma eficaz interesantes aplicaciones y servicios. Desde portátiles hasta centros de datos, desde consolas para juegos hasta súper computadoras, desde teléfonos móviles hasta Internet, Java está en todas partes. 1,100 millones de escritorios ejecutan Oracle Java 930 millones de descargas de Java RuntimeEnvironment cada año 3 mil millones de teléfonos móviles ejecutan Java Se entregan 31 veces más al año teléfonos Java que Apple y Android juntos El 100% de los reproductores de Blu-ray ejecutan Java Se fabrican 1400 millones de tarjetas Java cada año Java se incluye en decodificadores, impresoras, juegos, sistemas de navegación en vehículos, cajeros automáticos, terminales de loterías, dispositivos médicos, estaciones de pago de aparcamientos y mucho más. ¿Por qué los desarrolladores de software eligen Java? Java ha sido probado, ajustado, ampliado y probado por toda una comunidad de desarrolladores, arquitectos de aplicaciones y entusiastas de Java. Java está diseñado para permitir el desarrollo de aplicaciones portátiles de elevado rendimiento para el más amplio rango de plataformas informáticas posible. Al poner a disposición de todo el mundo aplicaciones en entornos heterogéneos, las empresas pueden proporcionar más servicios y mejorar la productividad, las comunicaciones y colaboración del usuario final y reducir drásticamente el costo de propiedad tanto para aplicaciones de usuario como de empresa. Java se ha convertido en un valor impagable para los desarrolladores, ya que les permite: Escribir software en una plataforma y ejecutarla virtualmente en otra Crear programas que se puedan ejecutar en un explorador y acceder a servicios Web disponibles Desarrollar aplicaciones de servidor para foros en línea, almacenes, encuestas, procesamiento de formularios HTML y mucho más Combinar aplicaciones o servicios que utilizan el lenguaje Java para crear aplicaciones o servicios con un gran nivel de personalización Escribir aplicaciones potentes y eficaces para teléfonos móviles, procesadores remotos, productos de consumo y prácticamente cualquier otro dispositivo electrónico
  • 4. Desarrollo de Aplicaciones Web con J2EE Ing. Pablo Cesar Ttito C. InfomixUnitek@gmail.com 3) EVOLUCIÓN DE JSP Qué es JSP? Java Server Pages (JSP, para abreviar) es una tecnología basada en Java que simplifica el desarrollo de páginas web con contenido dinámico. Con JSP, los diseñadores web pueden incorporar elementos dinámicos dentro de la página utilizando tanto porciones de código Java incrustadas, como unas cuantas etiquetas. Así, las páginas JSP tienen el aspecto de una página tradicional HTML, a la que se le ha introducido parte de código Java junto con unas etiquetas. De esta forma, cuando una página es solicitada por un usuario y procesada por un servidor HTTP, el código HTML pasará directamente al usuario, mientras que las porciones de código Java serán ejecutadas en el servidor cuando la solicitud haya sido recibida, para generar el contenido dinámico de la página. Cuando el usuario acceda al código de la página que le llega sólo verá HTML, sin poder acceder al código JSP subyacente. EVOLUCIÓN TECNOLÓGICA El hecho de que una página contenga contenido dinámico, exige que el servidor web realice algún trabajo de procesado que en el caso de páginas estáticas no era necesario. La forma de realizar este procesado ha ido cambiando con el tiempo, y así veremos ahora un pequeño resumen de cómo ha ido evolucionando. Inicialmente la generación de contenido dinámico se hacía fuera de los servidores. Cuando llegaba una solicitud, esta era procesada en el servidor, y cuando era necesario se llamaba a un proceso, fuera del servidor, que generaba el contenido dinámico y lo devolvía al servidor. Los modelos basados en el Común Gateway Interface (CGI) seguían esta idea. Sus principales problemas eran: necesidad de overhead para la comunicación entre proceso y servidor, consumo de recursos de sistema por parte del proceso... Posteriormente se optó por sistemas que introdujeran porciones de código de lenguaje tradicionales incrustados dentro de la página usando etiquetas, de forma que el estilo de la sintaxis fuera más consistente y sencillo. Este modelo lo han seguido entre otros: Microsoft Active Server Pages (ASP), Server Side Java Script (SSJS), Java Server Pages (JSP) y otros. En JSP el lenguaje que se utilizará para la generación de contenido dinámico es, típicamente, Java, y provee un conjunto de etiquetas que interactúan con objetos Java en el servidor de forma que no es estrictamente necesario que aparezca código Java en la página. BENEFICIOS JSP ofrece varios beneficios como sistema de generación de contenido dinámico. Al estar basado en Java, presenta las ventajas que este lenguaje ofrece con respecto a la portabilidad entre plataformas y las derivadas de la orientación a objetos de este lenguaje.
  • 5. Desarrollo de Aplicaciones Web con J2EE Ing. Pablo Cesar Ttito C. InfomixUnitek@gmail.com 4) J2EE Qué es Java para Internet (J2EE) La plataforma J2EE añade a Java la funcionalidad necesaria para convertirse en un lenguaje orientado al desarrollo de servicios en Internet. Mediante JSP (un lenguaje de programación de páginas web dinámicas como PHP o ASP) y Servlets (scripts CGI en el servidor como los de Perl) se pueden desarrollar sitios Web bajo la tecnología Java. J2SE= JRE + librerías, herramientas y compilador para desarrollo. (Para el programador) Básicamente J2SE es un conjunto de clases e interfaces para desarrollo de aplicaciones "simples". Me refiero con simples, por ejemplo a aplicaciones de escritorio con interfaz de usuario Swing o AWT que son un API para “dibujar" ventanas. J2EE = J2SE + Librerías para aplicaciones empresariales (JMS,EJB,JAX-WS,etc) J2EE es un grupo de especificaciones diseñadas por Sun que permiten la creación de aplicaciones empresariales, esto sería: acceso a base de datos (JDBC), utilización de directorios distribuidos (JNDI), acceso a métodos remotos (RMI/CORBA), funciones de correo electrónico (JavaMail), aplicaciones Web(JSP y Servlets)...etc. Aquí es importante notar que J2EE es solo una especificación, esto permite que diversos productos sean diseñados alrededor de estas especificaciones algunos son Tomcat y Weblogic. ¿En qué consiste el Curso de Java para Internet (J2EE) de CiberAula? En el curso de Java para Internet on-line se estudia el desarrollo de aplicaciones web bajo la plataforma J2EE (JavaTM 2 Platform, Enterprise Edition) con servlets, JSP y EJB. Como proyecto del Curso de Java on-line se realizará una tienda virtual. ¿En qué podré emplear los conocimientos adquiridos en el Curso de Java para Internet (J2EE)? Con los conocimientos adquiridos en el Curso de Java para Internet (J2EE) on line podrá realizar las siguientes aplicaciones prácticas 5) APORTACIONES DE CÓDIGO ABIERTO La historia del software libre y de código abierto como lo conocemos actualmente, se remonta a inicios de los años 1980, época en la que la mayoría de software era privativo y surgió la necesidad, por parte de algunos programadores, de crear proyectos que impulsaran la creación de software libre.1 Cabe mencionar que antes, cuando las primeras computadoras nacieron (y por ende los primeros programas informáticos), el software tenía un modelo de desarrollo cooperativo, similar al de otras ciencias como la física; esto empezó a cambiar en los años 1960 y los años 1970, cuando nacieron las primeras compañías que «privatizaron» su código.2 Es importante señalar que el software libre y de código abierto, no debe ser confundido con el llamado "freeware"; el software libre y de código abierto suele ser gratuito, lo que puede llevar a confusión.
  • 6. Desarrollo de Aplicaciones Web con J2EE Ing. Pablo Cesar Ttito C. InfomixUnitek@gmail.com El FOSS (acrónimo en inglés para free and open source software) también puede ser comprado y vendido. La confusión es aún mayor en países de habla inglesa por la ambigüedad de la palabra free que significa tanto libertad, como gratuidad. Esta es una línea del tiempo acerca de cómo el software libre y de código abierto ha existido y evolucionado desde su concepción. 6) ARQUITECTURA El presente artículo es una breve introducción a la arquitectura empresarial de Java denominada Java EE o JEE de forma abreviada. Este artículo sirve como base para futuros artículos que ejemplifican el uso y la implementación de elementos pertenecientes a esta arquitectura. La plataforma Java EE (anteriormente conocida como Java 2 Platform, Enterprise Edition o J2EE hasta la versión 1.4) está definida por una nueva especificación. Similar a otras especificaciones del Java CommunityProcess, Java EE es también considerada informalmente como un estándar debido a que los proveedores deben cumplir ciertos requisitos de conformidad para declarar que sus productos son conformes a Java EE. Java EE incluye varias especificaciones de API o interfaz de programación de aplicaciones, como son JDBC, RMI, e-mail, JMS, Servicios Web, XML. etc. y define cómo coordinarlos. Java EE también configura algunas especificaciones únicas para Java EE para componentes. Estas incluyen Enterprise JavaBeans, servlets, portlets, JSP y varias tecnologías de servicios web tales como Axis2 o JAX-WS (Apache CXF). El desarrollador puede crear una aplicación empresarial portable entre plataformas y escalable, a la vez que integrable con tecnologías anteriores. Otros beneficios añadidos son, por ejemplo, que el servidor de aplicaciones puede manejar transacciones, la seguridad, escalabilidad, concurrencia y gestión de los componentes desplegados, significando que los desarrolladores pueden concentrarse más en la lógica de negocio de los componentes en lugar de en tareas de mantenimiento de bajo nivel. Enterprise Java Beans (EJB) Los EJBs (o beans empresariales) son componentes Java EE que implementan la tecnología Enterprise JavaBeans (EJB). Un EJB se ejecuta en un contenedor de EJB que es un entorno de ejecución dentro un servidor de aplicaciones. Aunque transparente para la aplicación, el contenedor de EJB provee una serie de servicios a nivel de sistema entre los que se incluyen las transacciones y la seguridad de los EJBs. Estos servicios permiten la construcción rápida y el despliegue de EJBs los cuáles forman el núcleo transaccional de las aplicaciones JEE. Escritos en lenguaje de programación Java, un EJB es un componente de servidor que encapsula la lógica de negocio de una aplicación. Entre sus ventajas están: Simplifican el desarrollo de grandes aplicaciones distribuidas. El contenedor de EJB se encarga de la seguridad y el manejo de transacciones, dejando al bean solo la lógica de negocio Como la lógica de negocio está en los beans, el desarrollador puede ocuparse de desarrollar la capa de presentación sin tener que codificar lógica de negocio o acceso a bases de datos. Como resultado se producen clientes muy ligeros, especialmente deseables para ejecutarse en pequeños dispositivos como los smartphones Los beans pueden ser reutilizados para crear nuevos beans que extiendan su funcionalidad. Al fin y al cabo son también componentes reutilizables. ¿Cuándo utilizar EJBs? La aplicación debe ser escalable. Las transacciones tienen que asegurar la integridad de los datos La aplicación puede tener varios tipos de clientes incluso en diferentes plataformas
  • 7. Desarrollo de Aplicaciones Web con J2EE Ing. Pablo Cesar Ttito C. InfomixUnitek@gmail.com Tipos de EJBs Tipo Objetivo De sesión (Session) Realizan una tarea para un cliente; opcionalmente pueden implementar un servicio Web Dirigidos por mensajes (Message-Driven) Actúan como un listener para un tipo particular de mensaje, como los soportados por el Java MessageService API Bean de Sesión Un bean de sesión representa a un cliente simple dentro de un servidor de aplicaciones. Para acceder a una aplicación desplegada en el servidor, el cliente invoca un método del bean de sesión que se encarga de ejecutar la lógica de negocio. Como su nombre sugiere, el bean de sesión es similar a una sesión interactiva. Un bean de sesión no se comparte; solo puede tener un cliente, de la misma manera que una sesión interactiva solo puede tener un usuario. Cuando el bean de sesión termina no sigue asociado con el cliente que lo había invocado. Tipos de Bean de Sesión Descripción Con estado (stateful) Las variables de instancia de la clase del bean guardan sus valores (estado conversacional) manteniéndolo mientras dure la sesión. Si el cliente termina o elimina el bean, este estado desaparece. Sin estado (stateless) No mantiene un estado conversacional con el cliente: los valores de sus variables de instancia solo se mantienen durante la invocación de un método. Excepto durante la invocación de un método, todas las instancias de los beans sin estado son equivalentes, permitiendo al contenedor de EJB asignar una instancia a cualquier cliente. Ofrecen mejor escalabilidad para aplicaciones que soportan un gran número de clientes y son los únicos que soportan la implementación de servicios Web Cuando utilizar los Beans de Sesión En general, se deben utilizar beans de sesión siempre que se den las siguientes circunstancias: En cualquier momento, solo un cliente tiene acceso a la instancia del bean El estado del bean no es persistente, existiendo solo por un corto período de tiempo El bean implementa un servicio Web Un bean de sesión es apropiado si alguna de las siguientes condiciones son verdaderas: El estado del bean representa la interacción entre el bean y un cliente específico El bean necesita mantener información del cliente entre diferentes invocaciones de métodos El bean media entre el cliente y otros componentes de la aplicación representando una vista simplificada para el cliente El bean orquestra el flujo de varios EJBs Para mejorar el desempeño deberíamos utilizar bean sin sesión si se da alguna de las situaciones siguientes: El estado del bean no contiene datos para un cliente específico Con la invocación de un método, el bean realiza una tarea genérica para todos los clientes (por ejemplo el envío de un correo electrónico de confirmación)
  • 8. Desarrollo de Aplicaciones Web con J2EE Ing. Pablo Cesar Ttito C. InfomixUnitek@gmail.com Definiendo el acceso de los clientes mediante interfaces Los clientes solo pueden acceder a un bean de sesión solo invocando los métodos definidos en una interfaz. Las interfaces de negocio definen la vista cliente del bean, quedando ocultos la implementación de los métodos o los parámetros de despliegue. Las interfaces bien diseñadas simplifican el desarrollo y mantenimiento de las aplicaciones Java EE. Las interfaces claras no solo protegen al cliente de las complejidades de las clases que implementan el EJB, sino que permiten a los beans cambiar internamente sin afectar a los clientes (desacoplan al cliente de la implementación del EJB). Cuando se diseña una aplicación Java EE, una de las decisiones más importantes es el tipo de acceso que va a tener el EJB: local, remoto o servicio Web.