La Plataforma J2EE

38
1 Programacion de Aplicaciones Web Profesor: Ing Msc. Eddy MirandaV. La plataforma J2EE

description

La Plataforma J2EE para programación de aplicaciones web.

Transcript of La Plataforma J2EE

1

Programacion de Aplicaciones Web

Profesor: Ing Msc. Eddy MirandaV.

La plataforma J2EE

2

Retos Portability Diverse Environments Time-to-market Core Competence Assembly Integration

Tecnologias Clave

J2SE™

J2EE™

JMS Servlet JSP Connector

XML Data Binding XSLT

Productos App Servers Web Servers Components Databases Object to DB tools

Legacy Systems

Databases TP Monitors EIS Systems

Computacion Empresarial

3

Que es J2EE?

  Plataforma estandar y abierta para   desarrollar, implantar y manejar   Aplicaciones empresariales de n-

capas, basada en Web, server-centricas, y basadas en componentes

4

La Plataforma Java™

High-End Server

Java Technology Enabled Desktop

Workgroup Server

Java Technology Enabled Devices

5

La Plataforma JavaTM

Optional Packages

Java 2 Enterprise

Edition (J2EE)

Java 2 Standard Edition (J2SE)

JVM

Java Card APIs

CardVM

Optional Packages

Personal Basis Profile

Personal Profile

Foundation Profile

CDC

MIDP

CLDC

KVM

Java 2 Platform Micro Edition (J2METM)

* Under development in JCP

6

Que partes componen J2EE?   API y especificaciones Tecnologicas   Plataforma de desarrollo e Implantacion   Implementacion Estanda y con calidad de

produccion -  Sun Java System App Server Platform Edition

8.1 as part of J2EE 1.4 SDK

  Suit de Compatibilidad de Prueba (CTS)   J2EE TM   J2EE casos de estudio   Ejemplos

7

Evolucion de Marco de la Aplicaciones Empresariales   Monocapa   Cliente-Servidor(Two tier)   Tres Capas -  Basados en RPC -  RMI(Basados en Objetos Remotos)

  Tres Capas (HTML browser and Web server)

  Servidor de Aplicaciones Proprietario   Servidor de Aplicaciones Estandar

8

Aplicaciones Empresariales   Elementos de una Aplicacion

Empresarial -  Logica de Presentation -  Logica del Negocio -  Logica de acceso a Datos (y modelo de datos) -  Servicios del System

9

Mono-capa (basadas en mainframes)

  Los terminales tontos se conectan directamente al mainframe

  Modelo Centralizado   La presentacion, logica del negocio y el

acceso a la data estan juntas una sola aplicacion en el mainframe

10

Mono-Capa: Pros & Cons   Pros: -  No se require de manejo alguno desde el lado

del cliente -  Se logra facilmente la consistencia de datos

  Cons: -  La funcionalidad de la presentation, modelo

de datos y logica del negocio) estan entrelazados lo cual dificulta la escalbilidadd y el mantenimiento de la aplicacion

11

Dos-Capas(Cliente Servidor)

  Clientes Gordos interactuando con la base de datos(back-end) -  Envian sentencias SQL ,retorna datos

simples

  La Presentacion,La Logica de Negocio y el modelo de procesamiento de datos residen en la aplicacion cliente

Database

SQL response

SQL request

12

Cliente-Servidor(Two-Tier)

  Pros: -  Independencia de la BD (comparado con el model mono-

capa)

  Cons: -  Presentacion, modelo de datos , logica del negocio estan en el lado

del cliente, difficultad para actualizaciones y mantenimieto -  EL model de Datos esta estrechamente asociado a cada cliente si el

schema de la BD cambio todos los clientes se quiebran -  Las actualizaciones deben ser implantada a todos lo cliente

haciendo el mantenimiento del sistema una pesadilla -  La conexion con la BD debe hacerse para cada cliente lo cual

dificulta la escalabilidad -  Los datos primitivos transferidos al cliente con el proposito de

procesamiento causa un alto trafico en la red.

13

Tres Capas (Web Server)

  El Browser maneja la logica de presentation   El Browser interactua con el Web server via

el protocolo HTTP   La logica del Negocio y el modelo de datos

son manejados por tecnologias de “generacion dinamica de contenidos” (CGI, Servlet/JSP, ASP)

Database SQL request

SQL response

HTML response

WEB Server

HTML request

14

Tres Capas (Web Server based): Pros & Cons   Pro: -  Tipos de clientes ubicuos -  Zero Manejo del cliente -  Suporta varios aparatos clientes

  J2ME-enabled cell-phones

  Cons: -  La Complejidad en la capa intermedia todavia

debe ser manejada

15

Tendencias   Cambiar de aplicaciones de una o dos

capas a una arquitectura multicapas   Cambiar del modelo monolitico a un

modelo basado en objetos   Cambiar del modelo del cliente basado

en una aplicacion a un modelo de cliente basado en HTML.

16

Multi-capa

Multi-tier

  No hay separacion entre la presentacion, la logica de negocios y la base de datos

  Dificil de mantener

  Separacion entre la presentacion,la logica de negocio y l a base de datos

  Es mas flexible de cambiar i.e. la presentacion puede cambiar sin afectar las otras capas

Simple capa

17

Basado en Objetos

Object-based

  Un archivo binario   Recompilado,

reenlazado, reimplantado cada vez que existe un cambio

  Partes conectables   Reusable   Permiten mejor

diseno   Facil de Actualizar   La implementation

puede ser separada de la interface

Monolitico

18

Problemas remarcables & Solucion   Complejidad existente en la capa intermedia   Sistema de servicio duplicados se necesitan

para la mayoria de la aplicaciones empresariales -  Control de la concurrencia , Transacciones -  Balance de la Carga, Seguridad -  Manejo de recursos

  Solucion -  Compartir un container comun que maneja los

servicios del sistema ya mencionados -  Proprietaria versus Abierta-Estandar

19

Solucion Propietaria   Usa el modelo "componente y container" -  Los componentes capturan la logica del

negocio -  El Container proporciona los servicios del

sistema   El contrato entre los componentes y el

container esta bien definida pero de manera propietaria

  Problema con la solucion propietaria: Dependencia del Vendedor l

  Ejemplos: Tuxedo, .NET

20

Solucion Abierta y Estandar

  Tambien usa el modelo"componentes y container" en el cual el container proporciona servicios de sistema en un bien definida y como un estandar industrial

  J2EE es este estandar y proporciona portabilidad del codigo porque esta basado en la tecnologia Java y el los APIS estandares de Java

21

J2EE 1.4 APIs y Tecnologias

  J2SE 1.5 (improved)   JAX-RPC (new)   Web Service for

J2EE   J2EE Management   J2EE Deployment   JMX 1.1   JMS 1.1   JTA 1.0

  Servlet 2.4   JSP 2.0   EJB 2.1   JAXR   Connector 1.5   JACC   JAXP 1.2   JavaMail 1.3   JAF 1.0

22

23

Que es un Servlet?

  Objetos de Java™ que extienden la funcionalidad de un servidor HTTP

  Generacion de Contenido Dinamico   Mejor alternativa que CGI, NSAPI,

ISAPI, etc. -  Eficiente -  Platforma and servidor independientes -  Manejo de Sesiones -  Java-based

24

Servlet vs. CGI

CGI Based

Webserver

CGI Based

Webserver

Request CGI1 Child for CGI1

CGI Based

Webserver

Servlet Based Webserver

JVM

Request CGI1 Child for CGI1

Request Servlet1

CGI Based

Webserver

Servlet Based Webserver

JVM Servlet1

Request CGI1 Child for CGI1

Request CGI2

Request Servlet1

CGI Based

Webserver Child for CGI2

Servlet Based Webserver

JVM Servlet1

Request CGI1 Child for CGI1

Request CGI2

Request Servlet1

Request Servlet2

CGI Based

Webserver Child for CGI2

Servlet Based Webserver

JVM Servlet1

Servlet2

Request CGI1 Child for CGI1

Request CGI2

Request CGI1

Request Servlet1

Request Servlet2

CGI Based

Webserver Child for CGI2

Child for CGI1

Servlet Based Webserver

JVM Servlet1

Servlet2

Request CGI1 Child for CGI1

Request CGI2

Request CGI1

Request Servlet1

Request Servlet2

Request Servlet1

CGI Based

Webserver Child for CGI2

Child for CGI1

Servlet Based Webserver

JVM Servlet1

Servlet2

Request CGI1 Child for CGI1

25

Que es la Tecnologia JSP ?   Permite la separacion de la logica de

negocio de la presentacion -  Presentacion se realiza en formade HTML o

XML/XSLT -  La logica de negocio es implementada como

Java Beans or custom tags -  Mejor mantenibilidad y reusabilidad

  Extensible via custom tags   Construida sobre la tecnologia Servlet

26

27

Que es la Tecnologia EJB ?   Una tecnologia de componentes para

el lado del servidor   Aplicacion basada en Java de facil

desarrollo e implantacion que es: -  Transaccional, distribuida, multi-capa,

portable, escalable, segura, …

28

Porque la tecnologia EJB ?   Libera los beneficios del modelo de

componentes-model en el lado del servidor   Separa la logica del negocio del codigo del

sistema -  El Container proporciona servicios de sistema

  Proporciona un marco para componentes portables -  Para diferentes servidores J2EE-compatibles

29

Arquitectura EJB

30

Enterprise JavaBeans Enterprise JavaBeans

Entity Bean Message-Driven Bean

Synchronous communication Asynchronous communication

Stateless Stateful

Bean managed Persistence

(BMP)

Container managed Persistence

(CMP)

Session Bean

31

J2EE Arquitectura de N-Capas

32

33

JND

I

J2SE

JMS

RM

I/IIO

P

JDB

C

Database

App Client

App Client Container

HTTP/ HTTPS

J2SE

RMI

J2SE JN

DI

JMS

RM

I/IIO

P

JDB

C

JTA JavaMail

JAF JND

I

JMS

RM

I/IIO

P

JDB

C

JTA JavaMail

JAF

HTTP/ HTTPS

Applet Container

Applet JSP Servlet EJB

Web Container EJB Container

RMI

J2SE

J2EE Containers & Components

34

Components Manejan

  Concurrencia   Securidad   Disponibilidad   Escalabilidad   Persistencias   Transaccion   Ciclo de Vida

  Presentacion   Logica del Negocio

Containers Manejan

35

Containers & Components

  Containers hacen su trabajo invisiblemente –  No son APIs complicados –  Se controlan por interposicion

  Containers que implementa J2EE –  Mira a los mismos componentes –  Los Vendedores que hacen los containers

tienen gran libertad para innovar

36

DB & EIS Resources

Browser

Stand-alone

Web Server EJB Server

Web Server EJB Server

Anatomia de una Aplicacion J2EE

37

Productos Compatibles para la Plataforma J2EE (TM) ATG Bea Systems Borland Computer

Associates Fujitsu Hitachi HP IBM IONA

GlassFish Macromedia NEC Oracle Pramati SilverStream Sybase Talarian Trifork

38

Resumen   J2EE es la plataforma de eleccion

para el desarrollo e implantancion de aplicaciones empresariales basada en y componentes

  J2EE esta basada en una arquitectura estandar

  J2EE es abierta   J2EE evoluciona de acuerdo a las

necesidades de la industria.