Sie sind auf Seite 1von 43

Oracle Application Development Framework

Introducción y conceptos básicos de


aplicaciones empresariales y Java EE.
Aplicaciones empresariales

 Aplicaciones complejas
 Generalmente distribuidas
 Integración de sistemas preexistentes que están
distribuidos a lo largo de la red
 Proyectos con multitud de requisitos no funcionales
que no suelen estar presentes en las aplicaciones no
empresariales
Aplicaciones empresariales

 Cuatro grandes grupos de aplicaciones


empresariales / comercio
Aplicaciones Intra-Business
 Mecanización de procesos internos
Aplicaciones B2C
 Comercio tradicional empresa / cliente
Aplicaciones B2B
 Comercio entre empresas
Aplicaciones C2C
 Comercio entre clientes (Ebay)
Capacidades

 Las capacidades son las propiedades no funcionales y


observables de un sistema
 Estudian la calidad del sistema desde el punto de vista
del consumo de recursos, rendimiento del sistema,
eficiencia de la utilización de hardware, tiempos de
respuesta, ...
Capacidades

 Disponibilidad
Grado en el que el sistema es accesible
24 x 7 = Disponibilidad total
Se expresa como 1 – No Disponibilidad
Típicamente exigibles valores muy cercanos a 1. Parar el negocio
del cliente es inaceptable.
 Rendimiento
Capacidad de un sistema para conseguir los objetivos en el intervalo
de tiempo marcado
 Disponibilidad y rendimiento son dos conceptos altamente
acoplados
Capacidades

 Fiabilidad
Garantía de la integridad de los datos y transacciones del
sistema y de su consistencia
 Manejabilidad
Facilidad para gestionar y administrar los recursos del sistema
para conseguir la disponibilidad y el rendimiento esperados
Capacidades

 Flexibilidad
Facilidad para aceptar los cambios arquitectónicos o de
configuración del software/hardware sin que el sistema se vea
gravemente afectado
 Escalabilidad
Facilidad del sistema para adaptarse a los incrementos de
carga. Esencial para soportar el crecimiento del negocio
Capacidades

 Extensibilidad
Capacidad del sistema para integrar nuevas funcionalidades
 Reusabilidad
Facilidad que tienen los componentes del sistema para ser
utilizados en varios entornos sin sufrir cambios internos
Capacidades

 Seguridad
Garantía de que la información del sistema no será accedida
ni modificada en contra de las políticas de la empresa
¿Qué es J2EE?

 La plataforma empresarial Java (ahora JAVA EE, antes


J2EE) es un estándar para desarrollar aplicaciones
Java portables, robustas y escalables.
 Aporta una arquitectura de referencia para el
desarrollo de aplicaciones empresariales
 Está construido sobre la sólida base de Java SE (la
edición estándar de Java)
 Java EE provee un modelo orientado a componentes,
APIs de gestión y comunicaciones
¿Qué es J2EE?

 J2EE es una especificación que define el conjunto de servicios


que debe suministrar un servidor J2EE y los tipos de
componentes que pueden existir dentro de una aplicación
empresarial Java
 J2EE no es una implementación, aunque Sun tiene un servidor
que la implementa
 J2EE no nos ata a ningún proveedor específico de software.
Existen multitud de servidores conformes a la especificación
Componentes J2EE

 El software debe ser una industria


 Un componente es una unidad de software
autocontenida que puede ser ensamblada en una
aplicación J2EE y que puede comunicarse con otros
componentes
Componentes J2EE

 Definición de Szypersky
“Un componente software es una unidad de
composición en formato ejecutable con interfaces
especificadas contractualmente y dependencias
explícitas del contexto. Un componente software se
puede instalar independientemente y está sujeto a
composición por terceros. Además, no tienen estado
observable.”
Componentes J2EE

 Hablar de componentes es
Hablar de empresa y negocio
Piezas de construcción de software
Paquetes para distribuir la implementación de interfaces
 Los componentes J2EE están escritos en lenguaje
Java
 Se compilan igual que cualquier otro programa Java
Componentes J2EE

 La diferencia entre una clase normal Java y un


componente J2EE radica en que los componentes se
ensamblan en una aplicación J2EE, se verifica que
están bien formados y que cumplen las
especificaciones J2EE y cuando son desplegados
para entrar en producción se ejecutan y gestionan
por el servidor J2EE
Tipos de componentes J2EE

 Aplicaciones clientes y applets. Son componentes que


se ejecutan en el cliente
 Java Servlet y JavaServer Pages (JSP) son
componentes que se ejecutan en el servidor
 Enterprise JavaBeans (EJB) son los componentes de
negocio que se ejecutan en el lado del servidor
Contenedores J2EE

 Entornos de ejecución de los componentes.


 Actúan de interfaz entre los componentes y los servicios de bajo
nivel que utiliza
 Los contenedores ofrecen servicios del sistema a los
componentes
 Para que un componente pueda ser ejecutado antes debe ser
ensamblado en un módulo J2EE y desplegado en un contenedor
Contenedores J2EE

 El contenedor ofrece dos tipos de servicios


Configurables: Seguridad, Manejo de Transacciones… La
configuración de los servicios que utiliza un componente se
hace en tiempo de implantación
No configurables: Manejo del ciclo de vida de los
componentes, pooling de recursos, etc.
Contenedores

 La especificación J2EE tan sólo determina el


comportamiento que deben tener los contenedores
 La especificación no aborda la implementación de los
contenedores ni aspectos relativos a su instalación
 La implementación de los contenedores es tarea de
los proveedores
Tipos de contenedores

 El Servidor J2EE es un producto software que


proporciona los contenedores
Enterprise JavaBeans (EJB) container
Web container Maneja la ejecución de las páginas JSP y de
los Servlets
Tipos de contenedores

 Contenedores de aplicaciones cliente Manejan la


ejecución de estas aplicaciones desde el lado del
cliente.
 Contenedores de applets Manejan la ejecución de
los applets. Generalmente su implementación viene
dada por un navegador + un plug-in que se ejecutan
en el cliente.
Contenedores
Servicios

 La diferencia entre implementar una aplicación sobre la base de


una plataforma empresarial (en este caso J2EE) y no hacerlo es
que nuestros equipo cuente de forma estándar y automática con
una serie de servicios de soporte o, por el contrario, se tenga que
dedicar a gestionar detalles de bajo nivel.
 El objetivo fundamental es aumentar la productividad de nuestro
equipo haciendo que estos sólo se preocupen de implementar las
reglas de negocio de la aplicación
Servicios

 Servicios de nombres y/o directorio


Deben permitir el uso en el desarrollo del programa de un contexto único de
nombres para que tanto los clientes, los Enterprise Beans y los componentes
puedan localizar cualquier recurso (del sistema u otros componente) por su
nombre. Cualquier sistema de nombres o directorios será accesible vía
JavaNamingDirectoryInterface (JNDI) siendo el proveedor del servicio el
encargado del correcto funcionamiento de dicho interfaz sobre su sistema de
nombres.
 Servicios de despliegue Las aplicaciones J2EE se implantan como un conjunto
de unidades anidadas. Cada unidad contiene un descriptor de despliegue que
describe como montar y implantar la unidad así como elementos relativos a la
configuración de los servicios usados por los componentes de la unidad.
Servicios

 Servicios transaccionales: El soporte de las transacciones simplifica el


desarrollo del software, que no debe incluir el código dedicado a la
recuperación de unidades de trabajo o de la ejecución concurrente de las
mismas. Un servicio transaccional debe soportar transacciones planas
(no anidadas) para las que se gestiona automáticamente la propagación
y la coordinación entre gestores transaccionales.
 Dentro de la plataforma J2EE se contemplan dos tipos de transacciones
Transacción JTA o transacción global que se puede expandir sobre múltiples
componentes y gestores de recursos. Los componentes de la aplicación tiene
acceso a una transacción JTA o global a través de algún objeto que
implemente el interfaz javax.transaction.UserTransaction. Estos objetos son
accedidos por los componentes de diferentes maneras. El único
comportamiento estandarizado es el referente a la arquitectura EJB.
Transacción local que es específica a una conexión con el gestor de
recursos de un sistema EIS.
Servicios

 Servicios de seguridad: que permiten controlar que durante la


ejecución sólo se realicen accesos autorizados a los diferentes
elementos del sistema. El control de seguridad se realiza en dos pasos:
autentificación y autorización.
En la autentificación se obtiene un Principal (identidad correspondiente a un
llamador) que basándose en la política de dominios de seguridad de Java es
autorizado o no a realizar el acceso en cuestión. Esta comprobación se
realiza en relación a los roles de seguridad identificados por el desarrollador o
el montador y mapeados sobre los Principal por el implantador del sistema.
Las autorizaciones pueden especificarse en el código de los componentes o
bien de manera declarativa dándoles de esta forma mayor independencia.
Servicios

 Acceso a los servicios EIS: Los sistemas EIS deberían


contemplarse desde el sistema J2EE como servicios. La versión
1.4 de la especificación plantea este tipo de conectividad a través
de los denominados elementos Connector. Esta arquitectura
define una serie de mecanismos escalables, seguros y
transaccionales para la integración de cualquier sistema EIS. Los
Connector son suministrados por el proveedor del sistema EIS y
pueden ser incorporados en un servidor EJB
APIs J2EE 1.4
APIs J2EE 1.4

 Java Message Service API (JMS)


API de mensajería estandar que permite a los componentes
de una aplicación J2EE el envío y recepción de mensajes de
forma fiable, distribuida y asíncrona.
 Java Transaction API (JTA)
Provee una interfaz estándar para el manejo de
transacciones.
APIs J2EE 1.4

 JavaMail API
Es una interfaz estándar que pueden usar las aplicaciones J2EE
para enviar notificaciones vía email. La API tiene dos partes:
 una interfaz a nivel de aplicación
 Una interfaz para los proveedores de servicios
 JavaBeans Activation Framework
JAF provee servicios estándar para determinar el tipo de una pieza
arbitraria de datos, encapsula el acceso a ellos, descubre las
operaciones disponibles en ella y crea los componentes JavaBeans
apropiados para realizar estas operaciones. JAF es usado por
JavaMail.
APIs J2EE 1.4

 Java API for XML Processing (JAXP)


Soporta el procesamiento de documentos XML usando
Document Object Model (DOM) o Simple API for XML (SAX) y
Extensible Stylesheet Language Transformations (XSLT).
JAXP permite a una aplicación el procesado de documentos
XML de forma independiente a la implementación particular
del parser que utilizemos
APIs J2EE 1.4

 SOAP with Attachments API for Java (SAAJ)


Posiblita el envío y recepción de mensajes conformes a la
especificación SOAP 1.1 de la W3C con Attachments. Normalmente
este API no se usa (tenemos JAX-RPC como alternativa de alto
nivel) a menos que queramos tener un control de muy bajo nivel
sobre los mensajes
 Java API for XML Registries (JAXR)
Permite el acceso a registros sobre la web. Por ejemplo, podemos
acceder a registros ebXML o UDDI. Esto nos permite por ejemplo,
acceder a XML Schema específicos de una industria que estén
alojados en el registro
APIs J2EE 1.4

 J2EE Connector Architecture


Usada por los vendedores de productos EIS para
proveer un mecanismo con el que integrarlos en
aplicaciones J2EE. Estos adaptadores de recursos son
“plugables” en los servidores J2EE
 JDBC API
Permite el envío de sentencias SQL a bases de datos
APIs J2EE 1.4

 Java Naming and Directory Interface (JNDI)


Permite acceder a servicios de nombres y directorios
desde la plataforma
 Java Authentication and Authorization Service
(JAAS)
Permite autenticar y autorizar a grupos de usuarios en
un producto J2EE para que trabajen sobre él
Ensamblado

 Las aplicaciones J2EE están contenidas en archivos


Enterprise Archive (EAR) que no son más que ficheros
JAR “renombrados” con la extensión .ear
 Un fichero EAR está compuesto por módulos J2EE y
por descriptores de despliegue.
Descriptores de despliegue

 Los descriptores de despliegue son ficheros XML que especifican


de forma declarativa las propiedades o configuración de
despliegue de las aplicaciones J2EE, módulos J2EE o
componentes J2EE
 Al ser estos ficheros declarativos, la información de despliegue
puede cambiar en tiempo de implantación sin que sea necesario
hacer cambios en el código fuente ni recompilar
Descriptores de despliegue

 El servidor J2EE lee los descriptores de despliegue


para saber los servicios que se requieren y su
configuración
Módulos J2EE

 Un módulo J2EE es un conjunto de uno o más


componentes del mismo tipo que se ejecutan en un
único contenedor.
Ensamblado
Ventajas de la plataforma

 Soporte de múltiples sistemas operativos


Al ser una plataforma basada en lenguaje Java, es posible
desarrollar arquitecturas basadas en J2EE utilizando cualquier
sistema operativo donde se pueda ejecutar una máquina virtual
Java.
 Organismo de control
La plataforma J2EE está contolada por el JCP, un organismo
formado por más de 500 empresas. Entre las empresas que lo
forman estan todas las más importantes del mundo informático
( SUN, IBM, Oracle, SAP, HP, AOL, etc. ) lo que garantiza la
evolución de la misma.
Ventajas de la plataforma

 Competitividad
Muchas empresas crean soluciones basadas en J2EE y que
ofrecen características como rendimiento, precio, etc., muy
diferentes. De este modo el cliente tiene una gran cantidad de
opciones a elegir.
 Madurez
Creada en el año 1997 como respuesta a la tecnología MTS
de Microsoft, J2EE tiene ya nueve años de vida y una gran
cantidad de proyectos importantes a sus espaldas.
Desventajas de la plataforma

 Depende de un único lenguaje


La plataforma J2EE depende exclusivamente del lenguaje Java. Sólo
se puede utilizar este lenguaje para desarrollar aplicaciones lo que
puede suponer un gran problema si nuestro equipo no lo conoce.
 Complejidad
Aunque no es una plataforma tan compleja como CORBA, no existe
un VB .NET en Java. La creación de aplicaciones bajo J2EE requiere
normalmente desarrolladores experimentados
Desventajas de la plataforma

 Heterogeneidad
Existe una gran heterogeneidad en las soluciones de
desarrollo. No existe en J2EE un símil a Visual Studio .NET.
La gran cantidad de herramientas disponibles causa
confusión dentro de los desarrolladores y puede crear
dependencias dentro de las empresas.

Das könnte Ihnen auch gefallen