SlideShare una empresa de Scribd logo
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

PDF
Presentacion Google Web Toolkit
PDF
GWT y SmartGWT - Introducción
PDF
Aprendiendo GWT
PPTX
Desarrollo de Aplicaciones Web 2.0 con GWT
PPTX
Exposición 8
PPTX
Proyecto agenda
PDF
Ediciones de java
Presentacion Google Web Toolkit
GWT y SmartGWT - Introducción
Aprendiendo GWT
Desarrollo de Aplicaciones Web 2.0 con GWT
Exposición 8
Proyecto agenda
Ediciones de java

La actualidad más candente (18)

PDF
DESARROLLO DE SOFTWARE
PPS
Lenguajes De Programación Web
DOCX
Los diferentes lenguajes de programación para la web
PDF
Lenguajes de desarrollo web
PPTX
Trabajo avila
PDF
Bases de Datos en Android y Desarrollo de Aplicaciones Móviles Multiplataforma
DOC
Lenguajes de programacion web
PPTX
Investigación
PDF
Presentación no numerica ii
PPTX
Lenguajes del lado del Servidor y lenguajes del lado del usuario
PPTX
Lenguajes del lado del servidor
PPTX
Lenguajes del lado del servidor y lenguajes del lado del usuario
PDF
los diferentes lenguajes de programación para-la-web
PPTX
Programación web
PDF
Clase 2 Lenguajes de Programación Web
PPTX
Libro 4:Lenguajes de lado del servidor y del ladodel usuario
PDF
Catalogo de editores web sinuhe emmanuel perez martinez
DESARROLLO DE SOFTWARE
Lenguajes De Programación Web
Los diferentes lenguajes de programación para la web
Lenguajes de desarrollo web
Trabajo avila
Bases de Datos en Android y Desarrollo de Aplicaciones Móviles Multiplataforma
Lenguajes de programacion web
Investigación
Presentación no numerica ii
Lenguajes del lado del Servidor y lenguajes del lado del usuario
Lenguajes del lado del servidor
Lenguajes del lado del servidor y lenguajes del lado del usuario
los diferentes lenguajes de programación para-la-web
Programación web
Clase 2 Lenguajes de Programación Web
Libro 4:Lenguajes de lado del servidor y del ladodel usuario
Catalogo de editores web sinuhe emmanuel perez martinez
Publicidad

Similar a TEMA Nº 1: INTRODUCCIÓN A J2EE (20)

PPT
Introducción a Java y BEA (2008)
PDF
[ES] Introducción a Java EE 7 & HTML 5
PPTX
Pres1
PPT
Capítulo i que es java
PDF
[ES] Introducción a las Aplicaciones Web con Java
PDF
[ES] Introducción a Java EE 7
PDF
Modulo Jee Intro Pos Fp Une
PPTX
Modulo 1 java ee platform
PDF
Taller introducción Java EE 7 @UAPA
DOC
PPTX
Presentacion java
PDF
Introducción a java EE 7
PDF
1/9 Curso JEE5, Soa, Web Services, ESB y XML
PDF
Jc Web2.0 Java Ee5 Net Beans
PDF
Curso Arquitectura J2 Ee Parte1
PDF
SERVLET BASICS
PDF
I introduccion a_las_aplicaciones_web_co
PPTX
Lenguaje de programación java
PDF
Historia de java
PDF
01 jee5-componentes
 
Introducción a Java y BEA (2008)
[ES] Introducción a Java EE 7 & HTML 5
Pres1
Capítulo i que es java
[ES] Introducción a las Aplicaciones Web con Java
[ES] Introducción a Java EE 7
Modulo Jee Intro Pos Fp Une
Modulo 1 java ee platform
Taller introducción Java EE 7 @UAPA
Presentacion java
Introducción a java EE 7
1/9 Curso JEE5, Soa, Web Services, ESB y XML
Jc Web2.0 Java Ee5 Net Beans
Curso Arquitectura J2 Ee Parte1
SERVLET BASICS
I introduccion a_las_aplicaciones_web_co
Lenguaje de programación java
Historia de java
01 jee5-componentes
 
Publicidad

Más de Anyeni Garay (20)

PPSX
DETECCIÓN FÁCIL Y BARATA DE SUSTANCIAS TÓXICAS Y ALIMENTOS EN MAL ESTADO CON ...
PPTX
Data warehouse
PDF
Sistemas de informacion gernecial
DOCX
Mineria de datos
PDF
Gestión de la cadena de suministros
PDF
DOCX
Data mart
PPTX
Cables con tecnologia swr
PPTX
Geolocalizacion
PPT
Planificador de Recursos Empresariales (ERP)
PPTX
Encriptación de datos y seguridad de los mismos
PPTX
Computación en la Nube
PPTX
PPTX
W riticity ELECTRICIDAD INALAMRICA
PPTX
Un derivado del adn es buen conductor de la electricidad
PPTX
Super baterias
PPTX
Software para la maquetacion de publicaciones
PPTX
Sistema inalámbrico para transmitir energía dentro del cuerpo
PPTX
Retoques fotográficos
PPTX
Proyecto crowdfunding para distribuir electricidad sin cables en
DETECCIÓN FÁCIL Y BARATA DE SUSTANCIAS TÓXICAS Y ALIMENTOS EN MAL ESTADO CON ...
Data warehouse
Sistemas de informacion gernecial
Mineria de datos
Gestión de la cadena de suministros
Data mart
Cables con tecnologia swr
Geolocalizacion
Planificador de Recursos Empresariales (ERP)
Encriptación de datos y seguridad de los mismos
Computación en la Nube
W riticity ELECTRICIDAD INALAMRICA
Un derivado del adn es buen conductor de la electricidad
Super baterias
Software para la maquetacion de publicaciones
Sistema inalámbrico para transmitir energía dentro del cuerpo
Retoques fotográficos
Proyecto crowdfunding para distribuir electricidad sin cables en

TEMA Nº 1: INTRODUCCIÓN A 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.