La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Www.javasoft.com 5.  Ventajas ◦ Independencia de la plataforma – portabilidad ◦ Gran conjunto de APIs ◦ Reusabilidad y modularidad ◦ Seguro en la ejecución.

Presentaciones similares


Presentación del tema: "Www.javasoft.com 5.  Ventajas ◦ Independencia de la plataforma – portabilidad ◦ Gran conjunto de APIs ◦ Reusabilidad y modularidad ◦ Seguro en la ejecución."— Transcripción de la presentación:

1 www.javasoft.com 5

2  Ventajas ◦ Independencia de la plataforma – portabilidad ◦ Gran conjunto de APIs ◦ Reusabilidad y modularidad ◦ Seguro en la ejecución de código móvil ◦ Gratis

3  Inconvenientes ◦ Curva de aprendizaje pronunciada ◦ En el caso de sistemas Web, inadecuado para proyectos pequeños que puedan construirse con una solución simple y rápida.

4  Internet y WWW representan el fundamento sobre los cuales se esta construyendo la economía de la información.  La meta de JEE es definir un estándar que ayude a suplir los retos tecnológicos en esta nueva era.  JEE soporta aplicaciones distribuidas que toma ventajas de las tecnologías existentes y en desarrollo simplificando el proceso a través de un modelo de aplicaciones basados en componentes.  JEE soporta aplicaciones desde las C/S corporativas hasta e- commerce con Web en Internet.  Defines estándares que son implementados por distintos proveedores y fabricantes, no fuerza a emplear ningún producto específico.  Máxima interoperabilidad (Web services, IIOP, RMI, etc.).

5  “Conjunto de especificaciones y prácticas coordinadas que juntas permiten soluciones para el desarrollo, despliegue y gestión de aplicaciones multicapa centradas en servidor”.  Provee soporte tanto para el lado del servidor como para el lado del cliente para aplicaciones corporativas multi- nivel (multi-tier)  Client-tier: interface de usuario  Middle-tier (1 o más): servicios al cliente y la lógica del negocio para la aplicación.  Backend-tier: gestión de datos

6 Web Services Technologies Implementing Enterprise Web Services (JSR 109) Java API for XML-Based Web Services (JAX-WS) 2.0 (JSR 224) Java API for XML-Based RPC (JAX-RPC) 1.1 (JSR 101) Java Architecture for XML Binding (JAXB) 2.0 (JSR 222) SOAP with Attachments API for Java (SAAJ) (JSR 67) Streaming API for XML (JSR 173) Web Service Metadata for the Java Platform (JSR 181) Web Application Technologies Java Servlet 2.5 (JSR 154) JavaServer Faces 1.2 (JSR 252) JavaServer Pages 2.1 (JSR 245) JavaServer Pages Standard Tag Library (JSR 52) En continua revisión y expansión Enterprise Application Technologies Enterprise JavaBeans 3.0 (JSR 220) JEE Connector Architecture 1.5 (JSR 112) Common Annotations for the Java Platform (JSR 250) Java Message Service API (JSR 914) Java Persistence API (JSR 220) Java Transaction API (JTA) (JSR 907) JavaBeans Activation Framework (JAF) 1.1 (JSR 925) JavaMail (JSR 919) Management and Security Technologies JEE Application Deployment (JSR 88) JEE Management (JSR 77) Java Authorization Contract for Containers (JSR 115) Management and Security Technologies

7

8  De la mano de un modelo basado en componentes esta la noción de contenedor.  Un contenedor provee un ambiente estandarizado de ejecución que provee servicios específicos a componentes.  Por ejemplo todos los contenedores Web proveen soporte para requerimientos de clientes, realizar un procesamiento y retornar los resultados. ◦ Ej.: Todos los contenedores EJB proveen soporte para gestión de transacciones, ciclo de vida, localización y otros servicios.  Los contenedores también poseen acceso a sistemas de información empresarial (RDBMS, JDBC, etc.)

9  Tres categorías: ◦ componentes ◦ servicios ◦ comunicaciones  Componentes: utilizados por desarrolladores para crear partes esenciales de una aplicación empresarial  Utilizados en la interfaz de usuario y lógica del negocio

10  Componente: unidad de software de nivel aplicación ◦ Ej: Javabeans, applets, componentes web, etc.  Los componentes JEE se ejecutan dentro de su correspondiente contenedor.  El contenedor proporciona los servicios necesarios a los componentes en tiempo de ejecución  Permite declarar en lugar de programar determinados aspectos de comportamiento de los componentes

11  Cuatro aspectos: ◦ Contrato de componentes ◦ API de servicio del contenedor ◦ Servicios Declarativos ◦ Otros servicios de contenedores

12  Los componentes son gestionados por el contenedor.  Para eso, deben cumplir el contrato del contenedor para el tipo de componentes en concreto: conjunto de métodos a implementar por el componente y que permiten al contenedor interactuar con él.  Los contratos son interfaces java.

13  El contenedor aporta una implementación para las APIs de extensión de java. Ejemplo:  Implementa el servicio de JMS ofreciendo al desarrollador ◦ un driver que cumple la especificación ◦ Gestores de colas y apartados  Otro contenedor ofrecerá una implementación diferente de la misma especificación.

14  Algunos de los servicios ofrecidos por el contenedor a los componentes se declaran en lugar de programarse.  La declaración (por ejemplo, especificar que un método tiene que estar inmerso en una transacción) se realiza mediante descriptores de despliegue.  Descriptor de despliegue: Contrato entre el contenedor y el componente.

15  El contenedor ofrece servicios adicionales que implementan partes de la aplicación no ligadas a negocio: ◦ Gestión del ciclo de vida del componente ◦ Reserva de recursos ◦ Publicación de componentes y otros recursos en espacio JNDI ◦ Clustering. ◦ Etc.

16 Cuatro tipos de componentes  Componentes Web  Componentes EJB  Componentes de aplicaciones cliente ◦ Aplicaciones java que viven dentro de la jvm  Applets ◦ Requieren un contenedor de applets

17  Entidades que sirven respuestas a peticiones http  Normalmente generan interfaces de usuario basadas en Web  Servlets: ◦ Extienden la funcionalidad de un servidor Web ◦ Portables ◦ Se ejecutan en un contenedor de servlets.

18  JSP: ◦ Respuesta de Sun a las ASP de Microsoft ◦ Cuando se compilan, generan un servlet. ◦ Son páginas html con código java incrustado.

19  Se ejecutan en un contenedor Web:  Contenedor web = contenedor JSPs + contenedor servlets  Proporciona los servicios necesarios para la ejecución de servlets y jsps, y controla su ciclo de vida.  Escucha, decodifica y responde peticiones http/https.

20  EJB: Tecnología de servidor para el desarrollo y despliegue de componentes que contienen la lógica de negocio de una aplicación empresarial  Lo EJBs son escalables, transaccionales y seguros en utilización multiusuario.

21  Tres tipos: ◦ De sesión, con estado y sin estado ◦ De entidad. ◦ Dirigidos por mensajes.  Contenedores EJB: Proporcionan los servicios de transacciones y persistencia y accede a las APIS de servicios y comunicaciones de JEE.

22

23  Simplifican el desarrollo de aplicaciones poniendo recursos a su disposición ◦ Servicios de nombrado: Proporcionan a las aplicaciones cliente, EJBs y componentes WEB el acceso al entorno de nombrado JNDI. Permite personalizar un componente sin necesidad de acceder o cambiar su código. ◦ Servicios de despliegue: Permiten personalizar los componentes y aplicaciones en el momento del empaquetamiento de despliegue.  Aplicación JEE = conjunto de unidades o módulos.  Módulo = uno o más componentes JEE para el mismo tipo de contenedor  En cada módulo, un descriptor de despliegue.

24  Empaquetan componentes o aplicaciones JEE.  Tres tipos: ◦ Archivos JAR (Java ARchive) ◦ Archivos WAR (Web Application ARchive) ◦ Archivos EAR (Enterprise Application ARchive)

25  Permite agrupar distintos archivos java en uno solo.  Sigue el formato ZIP  Incorporado en la versión 1.1 del JDK  Contienen: ◦ Clases java ◦ Recursos que emplean las clases  Es el empleado para empaquetar componentes EJBs, respetando una estructura de directorios

26  Permiten empaquetar en una sola unidad aplicaciones web java completas. ◦ Servlets y JSPs ◦ Contenido estático  Html  Imágenes  etc.) ◦ Otros recursos web

27  Archivos desplegables en servidores de aplicaciones JEE  Contienen ◦ Archivos WAR ◦ EJBs (Empaquetados dentro de ficheros JAR)

28  Servicio de transacciones ◦ Operaciones atómicas ◦ Un sistema transaccional garantiza que cada unidad o transacción se termina completamente sin interferencia de otros procesos.  Commit  Rollbak

29  Servicio de seguridad ◦ Garantiza que los recursos son accedidos por los usuarios autorizados. Distinguimos:  Autentificación  Autorización ◦ Técnicas  Declarativa  Programática

30  API JDBC ◦ Proporciona conectividad independiente de la base de datos entre la plataforma JEE y un amplio rango de orígenes de datos  JAXP ◦ Soporta el procesamiento de documentos XML mediante DOM y SAX, y transformaciones XSLT.

31  JNDI ◦ Proporciona acceso a servicio de nombrado y directorio ◦ Independiente de implementaciones específicas (LDAP, NIS, etc.).  JCA ◦ API estándar para la conexión de la plataforma JEE a otros sistemas de información, ej: SAP.

32  JTA (Java Transaction API) ◦ API estándar para el acceso a los monitores transaccionales con independencia de implementaciones específicas.  JTS (Java Transaction Service). ◦ Especificación para la implementación de un gestor de transacciones que soporte JCA. Impone como debe comunicarse un monitor transaccional con sus clientes.

33  Mecanismos de comunicación, implementaciones de protocolos. ◦ Protocolos de Internet  TCP/IP, http, SSL ◦ Protocolos de invocación remota ◦ Protocolos OMG  Java IDL  RMI-IIOP

34  Tecnologías de mensajería. ◦ JMS ◦ JavaMail. Conjunto de clases e interfaces para el acceso a servidores de email. Ej, POP3, SMTP, IMAP4.

35  “Son aplicaciones modulares autodescriptivas que se pueden publicar, ubicar e invocar desde cualquier punto de la Web o desde el interior de una red local basada en estándares abiertos de Internet” ◦ Multiplataforma multilenguaje, tanto para el proveedor del servicio como para el usuario del mismo ◦ El acceso a servicios web se realiza a través de protocolos de Internet como HTTP o SMTP basados en XML

36

37  Localización ◦ UDDI (Universal Description Discovery and integration): Medio para la publicación de servicios web en los registros de servicios web. ◦ Las empresas publican en los registros los servicios que ofrecen y la información técnica para acceder a ellos. ◦ XML, http, DNS, SOAP.

38  Descripción ◦ WSDL (Web Services Definition Languge)  Define y describe los servicios web  SOAP, XML.  Invocación ◦ SOAP (Simple Object Acceso Protocol)  XML  Formatos de mensajes para encapsula invocaciones a objetos en XML  Puede emplear distintos protocolos de Internet para el transporte (SMTP, http, etc.

39

40  Es un programa que provee la infraestructura necesaria para las aplicaciones empresariales  ¿Qué quiere decir esto? ◦ Que los programadores van a poder dedicarse casi en exclusiva a implementar la lógica del dominio, ya que servicios de uso común, como transacciones, seguridad, persistencia, etc. ya son proporcionados por el servidor Web ◦ Se ha convertido en una pieza de software clave para cualquier empresa dedicada al comercio electrónico middleware ◦ Es una capa intermedia ( middleware ) que se sitúa entre el servidor Web y las aplicaciones y bases de datos subyacentes

41 Servidor de aplicaciones (Transacciones, mensajería, servicios Web…) CORBAJ2EE.NET Aplicación cliente SGBD

42  Comienzan a surgir cuando queda claro las aplicaciones cliente/servidor no iban a ser escalables a un gran número de usuarios  Se hacía necesario mover las reglas de negocio a algún lugar intermedio entre los clientes y la base de datos (Separation of Concerns).  Empezaron a surgir productos para hacer esa tarea ◦ Cada compañía los llamaba de una forma distinta  Servidores de transacciones, servidores de aplicaciones…

43  Los llamasen como los llamasen, estaban diseñados para gestionar de forma centralizada el modo en que los clientes debían conectarse a la base de datos o a los servicios con los que tenían que interoperar

44  Creación y gestión de los componentes del servidor ◦ Por aquel entonces, basados en CORBA o COM  Clustering  Equilibrado de carga  Transacciones  Seguridad  Acceso a datos  …

45

46  Como sabemos, HTTP es un protocolo sin sesión ◦ No permite mantener una conexión abierta entre el cliente y el servidor más allá de lo que dura la transferencia del documento en cuestión  En cualquier aplicación de comercio electrónico, es necesario poder identificar al usuario a través de su navegación por el sitio Web ◦ Autenticación, adición de productos al carrito de la compra, etc. El servidor ha de conservar información entre peticiones del usuario a lo largo de la duración de una sesión

47  La implementación “a mano” se complicaría enormemente en el caso de contar con varios servidores (equilibrado de carga) ◦ La petición de un usuario registrado en la máquina A puede ser redirigida al servidor B  Lo lógico es que sea el servidor de aplicaciones quien se encargue de gestionar la sesión ◦ Además, debería ser más eficiente que si lo programamos nosotros mismos

48  Por equilibrado de carga (load balancing) se entiende la capacidad de repartir el procesamiento entre distintos servidores ◦ Las peticiones de los clientes se redirigen a la máquina que más desocupada se encuentre en ese momento ◦ Mejora de rendimiento de la aplicación  No es tan sencillo como añadir una nueva máquina y ya está  Además de la escalabilidad, se consigue una mayor tolerancia a fallos Los servidores de aplicaciones proporcionan mecanismos de equilibrado de carga (aspecto clave para la escalabilidad)

49  Los servidores de aplicaciones proveen facilidades para administrar conexiones a bases de datos relacionales ◦ Oracle, SQL Server, DB2…  Los componentes (las clases que implementan la lógica del negocio) acceden a ellas de forma estándar ◦ Independiente de la base de datos subyacente  También suelen permitir acceder a otros tipos de fuentes de datos: ◦ Tales como distintos ERP (SAP, Vaan...), repositorios XML, etc. ◦ Los servidores de aplicaciones son también importantes, por tanto, como mecanismo de integración de sistemas heredados

50  Abrir una conexión a una base de datos suele ser un proceso costoso ◦ No es viable abrir una nueva conexión por cada consulta a la base de datos  Penalizaría enormemente el rendimiento de la aplicación  Los servidores de aplicaciones suelen contar con una serie de conexiones permanentemente abiertas que distribuye de forma transparente a los distintos procesos ◦ Se debería poder configurar el número de conexiones abiertas, e incluso la política de asignación

51  Son un elemento básico de cualquier aplicación comercial ◦ Evitan que haya información inconsistente  Sería complejísimo implementarlas “a mano”  Con un servidor de aplicaciones que tenga esta característica, bastaría con indicarle dónde empieza y termina la transacción ◦ Encargándose él de deshacer los pasos intermedios en caso de un error del sistema Transacción: secuencia de pasos que, o se ejecutan todos, o si no el sistema queda en el estado original

52  Actualmente, las dos plataformas más comunes son JEE y.NET, pero además…  ColdFussion  Tibco  CORBA  Tuxedo  ETC…

53 Navegador Contenedor Aplicación Cliente Aplicación Cliente Aplicación Cliente Contenedor Web Servlets Páginas JSP EJB Contenedor EJBs Servidor JEE Base Datos Máquina Cliente Servidor de Aplicaciones ligero (light weigth)

54  Contenedores EJBs ◦ Jboss  Contenedores Web ◦ Tomcat  Servidores de aplicaciones completos ◦ Weblogic ◦ IBM WebSphere ◦ Caucho Resin ◦ JOnAS (Open Source Jee app. Server). ◦ iPlanent ◦ Orión – OC4J ◦ Jboss + Tomcat ◦ Otros…


Descargar ppt "Www.javasoft.com 5.  Ventajas ◦ Independencia de la plataforma – portabilidad ◦ Gran conjunto de APIs ◦ Reusabilidad y modularidad ◦ Seguro en la ejecución."

Presentaciones similares


Anuncios Google