tema nº 1: introducciÓn a j2ee

8

Click here to load reader

Upload: anyeni-garay

Post on 07-Jul-2015

104 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: TEMA Nº 1: INTRODUCCIÓN A J2EE

Desarrollo de Aplicaciones Web con J2EE

Ing. Pablo Cesar Ttito C. [email protected]

Jaaaaaaaaaaaa

Desarrollo de Aplicaciones Web con J2EE

Page 2: TEMA Nº 1: INTRODUCCIÓN A J2EE

Desarrollo de Aplicaciones Web con J2EE

Ing. Pablo Cesar Ttito C. [email protected]

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

Page 3: TEMA Nº 1: INTRODUCCIÓN A J2EE

Desarrollo de Aplicaciones Web con J2EE

Ing. Pablo Cesar Ttito C. [email protected]

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

Page 4: TEMA Nº 1: INTRODUCCIÓN A J2EE

Desarrollo de Aplicaciones Web con J2EE

Ing. Pablo Cesar Ttito C. [email protected]

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.

Page 5: TEMA Nº 1: INTRODUCCIÓN A J2EE

Desarrollo de Aplicaciones Web con J2EE

Ing. Pablo Cesar Ttito C. [email protected]

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.

Page 6: TEMA Nº 1: INTRODUCCIÓN A J2EE

Desarrollo de Aplicaciones Web con J2EE

Ing. Pablo Cesar Ttito C. [email protected]

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

Page 7: TEMA Nº 1: INTRODUCCIÓN A J2EE

Desarrollo de Aplicaciones Web con J2EE

Ing. Pablo Cesar Ttito C. [email protected]

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)

Page 8: TEMA Nº 1: INTRODUCCIÓN A J2EE

Desarrollo de Aplicaciones Web con J2EE

Ing. Pablo Cesar Ttito C. [email protected]

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.