JVM - Máquina Virtual de Java, ejecuta código Java J2EE - Java 2 Enterprise Edition. Especificación para desarrollar y ejecutar componentes distribuidos escritos en Java. Existen tres tipos de componentes + Persistencia + Transacciones y Lógica del negocio + Web API - Interfaz de Programación de Aplicaciones, define las clases, interfases y excepciones que deben usarse para programar a un servicio o marco de aplicaciones Servidor de Aplicaciones - Middleware que ejecuta componentes distribuidos Servidor de Aplicaciones Java (JAS) - Middleware que ejecuta componentes distribuidos J2EE Arbol de nombres - Servicio de nombres, que permite traducir el nombre de un componente o recurso J2EE a su equivalente en objeto JNDI - Interfaz de Nombre y Directorios Java que permite navegar, usando lenguaje Java, a un servicio de nombres y directorios Capa de persistencia - Capa responsable de administrar la conexión al sistema de almacenamiento, tal como una base de datos relacional (RDBMS) JDBC - Protocolo y API para realizar conexiones a una base de datos relacional. Pool de conexiones JDBC - Recurso J2EE que permite crear al momento de arrancar al servidor de aplicaciones múltiples conexiones JDBC, de tal manera que al momento de ejecutar una transacción; se evita el tiempo de establecimiento de conexiones. El pool guarda conexiones preestablecidas Data Sources - Mecanismo J2EE que permite asociar un nombre JNDI con un pool de conexiones Capa de transacciones - Capa responsable de ejecutar las operaciones de lógica del sistema usando un monitor de transacciones Monitor de transacciones - Middleware responsable de administrar transacciones con el objetivo de que cada operación realizada cumpla con las propiedades de Atomicidad, Consistencia, Aislamiento y Durabilidad (ACID) JTS - Servicio de transacciones Java y es la implantación de un monitor de transacciones escrito en lenguaje Java EJB - Enterprise Java Bean. Componente Java responsable de ejecutar una transacción. Existen tres tipos de EJBs: Sesión, Entidad y de Mensaje Contendor EJB - Componente de un servidor de aplicaciones J2EE responsable de administrar el ciclo de vida, invocación con el JTS y la comunicación de EJBs EJB Entidad - Componente transaccional que implanta el ciclo de vida de los datos. Cada campo de un EJB de entidad equivale a una columna de una tabla relacional. Cada EJB de entidad se asocia con una tabla relacional. CRUD - Creación, Lectura, Modificación y Borrado; se refiere al ciclo de vida de un dato. A nivel SQL equivale a las operaciones INSERT, SELECT, UPDATE y DELETE Llave primaria - Campo de un EJB de entidad que lo hace único Relacion EJBs Entidad - Mecanismo que permite asociar dos EJBS, y en el que se indica la cardinalidad (uno a uno, uno a muchos y muchos a muchos); de tal manera que un EJB de entidad, al ser recuperado o modificado, automáticamente invoca a los EJBs asociados CMP - Container Managed Persistence. Persistencia administrada por el Contenedor, se refiere al hecho de que las operaciones SQL de un EJB de entidad son generadas y automatizadas por el contenedor de EJBs BMP - Bean Managed Persistence. Persistencia administrada por el Bean, se refiere al hecho de que las operaciones SQL de un EJB de entidad son escritas por el programador EJB de sesión - Componente transaccional que ofrece métodos para realizar transacciones que involucran a recursos de la capa de persistencia. Un EJB de sesión invoca a uno o varios EJBs de Entidad. La transacción tiene escrita la lógica de la operación. Interfaz Local - Mecanismo de comunicación entre dos componentes Java para que el cliente invoque a un EJB sin tener que realizar una conexión RMI/TCP/IP al servidor de aplicaciones Interfaz remota - Mecanismo de comunicación entre dos componentes Java para que el cliente invoque a un EJB realizando una conexión RMI/TCP/IP al servidor de aplicaciones RMI - Invocación Remota de métodos. Protocolo de comunicación y API de Java, que permite que dos objetos que viven en dos JVMs distintas y nodos de rede distintos se comuniquen de manera transparente. Utiliza TCP/IP como protocolo de transporte. Capa de Interfaz de Usuario - Capa responsable de manipular la entrada y salida del sistema para invocar a la capa de lógica Componente de Web - Objeto encargado de manipular la interfaz de usuario basado en HTML, HTTP y CGI Servlet - Clase Java que manipula peticiones CGI/HTTP JSP - Java Server Page. Páginas escritas en HTML y Java y que de manera dinámica generan HTML Patrón de arquitectura Modelo Vista Controlador (Model View Controller o MVC) - Organización de componentes que asigna tres tipos de roles Vista - Objeto responsable de desplegar datos, recibir entradas y realizar la interacción con el usuario Controlador - Objeto responsable de recibir los datos de la vista, invocar al modelo que los procese y devolver el resultado a la vista Modelo - Objeto responsable de procesar los datos entregados por el controlador Struts - Marco de aplicaciones Java que utiliza Servlets y JSPs para implantar el patrón MVC para que la programación de la interfaz de usuario se realice por medio de un flujo de páginas. Struts básicamente tiene dos tipos de componentes para implantar el flujo Pagina - Es la vista de la interfaz, sobre la cual se realiza la entrada de usuario o se desplega la salida del procesamiento Acción - Es el controlador de la interfaz y recibe los datos de la página en forma de Java Beans. Invoca al modelo, que puede ser un EJB o un DataSource. FormBean - Java Bean que recibe datos de una forma y que es enviado con resultados del procesamiento a una pagina para su despliegue HTTP - Hyper Text Transfer Protocol. Protocolo para transferir datos basados en estándares de Web CGI - Common Gateway Interface. Interfaz para invocar aplicaciones via Web Web Service - Componente escrito en cualquier lenguaje y cuyos métodos (o servicios) se invocan por medio del protocolo SOAP/HTTP SOAP - Simple Object Access Protocol. Protocolo para realizar el mapeo de estructuras de datos de un lenguaje de programación a XML y viceversa. Java Web Service - Componente escrito en Java que expone sus métodos con el protocolo SOAP/HTTP JBOSS - Servidor de aplicaciones Java de dominio público Weblogic - Servidor de aplicaciones Java realizado por la empresa BEA WebSphere - Servidor de aplicaciones Java realizado por la empresa IBM SunOne - Servidor de aplicaciones Java realizado por la empresa SUN Descriptor de liberación (Deployment Descriptor) - Archivo XML que define las propiedades de los componentes J2EE cuando se libere al servidor de aplicaciones Java. Para un EJB se llama ejb-jar.xml, para un Web Component se llama web.xml Ant - Herramienta para compilar y construir componentes Java, usando XML como lenguaje para especificar los pasos de compilación y construcción XDoclet - Herramienta Java para generar codigo Java y descriptores de liberación, a partir de comentarios Java (JavaDoc) y orientar la programacion basada en los atributos. Se integra con Ant JUnit - Herramienta para realizar pruebas unitarias