Source: http://docplayer.es/1579700-Instituto-tecnologico-de-costa-rica-sede-regional-san-carlos-escuela-de-ingenieria-en-computacion.html
Timestamp: 2017-07-22 05:06:52+00:00

Document:
Instituto Tecnológico de Costa Rica Sede Regional San Carlos Escuela de Ingeniería en Computación - PDF
Download "Instituto Tecnológico de Costa Rica Sede Regional San Carlos Escuela de Ingeniería en Computación"
Ricardo Quintana Pereyra
1 Instituto Tecnológico de Costa Rica Sede Regional San Carlos Escuela de Ingeniería en Computación Desarrollo de Funcionalidades para el Sistema de Intermediación de Valores para Fondos de Inversión y Puestos de Bolsa Segundo Informe de Proyecto de Graduación para optar por el grado de Bachiller en Ingeniería en Computación Rafael Ángel Sánchez Saborío. San José, Abril2 Resumen Ejecutivo. El objetivo principal que tiene el presente documento es mostrar el Informe Final del curso de Práctica de Especialidad desarrollado para el Instituto Tecnológico de Costa Rica en la empresa Lidersoft, la cual consistió en generar un nuevo modelo del sistema de acceso a datos utilizando tecnologías de vanguardia para así brindar un manejo más eficiente del sistema completo, de manera que se mejoren sus procesos y brindar mejores servicios. En los siguientes apartados del documento se darán a conocer algunos de los detalles del origen y la razón de ser del proyecto, así como del proceso de desarrollo tomados en cuenta para las tareas de práctica, habrán una serie de conclusiones, comentarios y recomendaciones que surgieron durante el proceso de práctica de especialidad. Este documento está dividido en las siguientes secciones: Descripción del Problema: Abarca temas actualizados de los puntos desarrollados en el primer informe de práctica que se presentó. Entre los puntos que abarca se encuentran el contexto en el que fue desarrollado el proyecto, la descripción general de sus principales características, los objetivos y alcances que se desean lograr con él, así como los riesgos que se pueden llegar a presentar durante el desarrollo del mismo. Solución Implementada: En esta sección se presenta una recopilación actualizada de la información sobre el diseño del proyecto presentada en el segundo informe de práctica. En él se hace referencia a puntos como el diseño arquitectónico del sistema, clara descripción de los componentes, además de una descripción básica del diseño y estructura que poseen las clases y sus principales métodos y procedimientos. Conclusiones y Comentarios: En esta última sección se hace referencia de una forma general al trabajo realizado durante toda la práctica de especialidad desde el punto de vista de la experiencia laboral que se logró. 13 Tabla de Contenido Capítulo DESCRIPCIÓN DEL PROBLEMA Contexto del Proyecto Antecedentes del Proyecto Descripción del Problema Enunciado del problema: Enunciado de la solución: Descripción de los participantes: Análisis de los Riesgos Objetivos y Alcances del Sistema Objetivo General: Objetivos Específicos: Alcances:... 9 Capítulo PRODUCTOS GENERADOS EN LA FASE DE INVESTIGACIÓN Descripción de las Tecnologías EJB 2.x JPA Hibernate Ventajas de Uso de EJB 3.0 sobre EJB 2.x Ejemplo de Aplicación en EJB 2.x Interface Remota: Interface Local: Interface Home: Interface Local Home: Clase Bean: Clase Cliente: Archivo ejb-jar.xml: Ejemplo de Aplicación en EJB Clase Cliente Clase Entity Bean4 2.4.3 Clase Request RequestBean Archivo de la Unidad de Persistencia Capítulo SOLUCIÓN IMPLEMENTADA Diseño Arquitectónico Componentes Capa Cliente Capa Lógica del Negocio Capa de Datos Diagrama de Clases Diseño de Clases Paquete framework.common Paquete framework.model.dal Paquete framework.dal.manager Paquete framework.dal.util...38 Capítulo CONCLUSIONES Y COMENTARIOS Objetivos Propuestos Productos Experiencia y Conclusiones...42 Capítulo ANEXOS Informes Semanales Plan de Trabajo Hoja de Información5 Tabla de Imágenes Figura #1: Unidad de Persistencia...26 Figura #2: Diseño Arquitectónico...27 Figura #3: Diseño de Componentes del Sistema...28 Figura #4: Diagrama de Clases6 Capítulo 1 DESCRIPCIÓN DEL PROBLEMA. 1.1 Contexto del Proyecto Antecedentes del Proyecto El proyecto inició en el año 2005 como una iniciativa de la compañía en conjunto con varias instituciones financieras para ofrecer una solución informática a los Puestos de Bolsa y las Sociedades de Fondos de Inversión de estos grupos financieros. Desde entonces, el proyecto ha ido creciendo según la necesidad de los clientes y se ha convertido en uno de los proyectos más importantes que posee la empresa, por lo cual se busca cambiar el producto principal de la empresa hacia tecnologías más eficientes y novedosas. 57 1.2 Descripción del Problema Enunciado del problema: El problema básicamente consiste en que se desea cambiar la arquitectura del producto principal de la empresa, llamado BROKER, hacia tecnologías de punta. Este proyecto tiene como objetivo principal conformar y consolidar el producto BROKER para así lograr brindar a los clientes un mejor producto que cumpla con sus expectativas Enunciado de la solución: Como solución, se propone migrar la aplicación existente hacia una nueva tecnología llamada EJB 3.0. De manera que el propósito principal de este proyecto es generar una investigación exhaustiva sobre como migrar el BROKER a esta arquitectura, para lo cual se van a presentar aplicaciones que ejemplifiquen y muestren las utilidades de EJB 3.0, así como la migración completa de uno de los módulos actuales del sistema, con el propósito de analizar la factibilidad del cambio Descripción de los participantes: Los participantes en la resolución del proyecto son: El Estudiante: Rafael Ángel Sánchez Saborío. Arquitecto de Lidersoft: José David Gonzáles. Administrador de Proyectos: Christopher Barboza Herrera. Profesor Asesor: Ing. Abel Méndez. 68 1.3 Análisis de los Riesgos Puesto que el presente proyecto es solamente una fase de investigación para generar una propuesta de cambio al sistema principal de la empresa, no existen riesgos específicos que afecten directamente el producto desde las perspectiva del cliente. Esto porque la propuesta se basará en tecnologías de punta, para las cuales se necesitará generar la investigación correspondiente, además de pruebas tangibles de lo investigado. Dadas las circunstancias, los riesgos detectados son los siguientes: El esfuerzo es mayor que el estimado Necesidad de más tiempo para adaptarse a las nuevas herramientas. Nombre del riesgo Categoría del riesgo Posible causa del riesgo El impacto que tiene el riesgo para el proyecto El esfuerzo es mayor que el estimado Alta Mal diseño del plan de trabajo 2 semanas La probabilidad de ocurrencia 60% La exposición que se tendrá ante el riesgo La estrategia de evasión La estrategia de mitigación Estrategia de contingencia 1.5% Revisar semanalmente el cronograma estimado para aplicar cambios convenientes y reestructurar el tiempo disponible entre las tareas. Desarrollo y revisión de calidad Continuar con el proyecto y evitar devolverse a fases anteriores 79 Nombre del riesgo Categoría del riesgo Posible causa del riesgo El impacto que tiene el riesgo para el proyecto El personal de desarrollo necesita tiempo para adaptarse a las nuevas herramientas Alta Desconocimiento de ciertos estándares usados por la empresa 3 semanas La probabilidad de ocurrencia 50% La exposición que se tendrá ante el riesgo 1.% La estrategia de evasión Capacitarse antes de iniciar la fase de implementación La estrategia de mitigación Estrategia de contingencia Buscar ayuda en manuales técnicos y en personas capacitadas en estos estándares Investigar más a fondo sobre los estándares de desarrollos utilizados por la empresa 810 1.4 Objetivos y Alcances del Sistema Objetivo General: Realizar una nueva propuesta tecnológica de desarrollo para el Sistema de Intermediación de Valores para Fondos de Inversión y Puestos de Bolsa, que involucre tecnologías innovadoras para lograr un proceso de desarrollo más simple y eficiente en todo el sistema Objetivos Específicos: Iniciar un proceso de investigación sobre las capacidades de las nuevas tecnologías, JPA y EJB 3.0. Generar la propuesta del uso de JPA y EJB 3.0, utilizando el Módulo de Seguridad para realizar las pruebas de integración de estas tecnologías. Proponer una visión de la factibilidad de acuerdo a la propuesta generada para la posible migración hacia estas nuevas tecnologías en todos los módulos y el cambio en la forma de desarrollar a lo interno en Lidersoft Alcances: Generación de una nueva capa de acceso a datos utilizando la tecnología EJB 3.0 para ser usada en cada uno de los módulos del Sistema Broker. Acoplar el Módulo de Seguridad actual a la nueva capa de acceso a datos, con sus operaciones básicas de inserción, borrado, modificado y consulta de datos. Cambiar la especificación de las clases del Módulo de Seguridad de EJB 2.x a EJB 3.0. Utilizar como proveedor de persistencia la tecnología Hibernate. Usar al Servidor de Aplicaciones WebSphere 6.1 de IBM. 911 Capítulo 2 PRODUCTOS GENERADOS EN LA FASE DE INVESTIGACIÓN 2.1 Descripción de las Tecnologías. A continuación se brinda una descripción de las tecnologías que se utilizan en este proyecto, tanto las actuales como las que formarán parte de la base del producto final creado. Estas tecnologías son: EJB 2.x: JPA. Hibernate EJB 2.x. Los Enterprise JavaBeans (EJB) son una de las API que forman parte del estándar de construcción de aplicaciones empresariales J2EE de Sun Microsystems (ahora JEE 5.0). Su especificación detalla cómo los servidores de aplicaciones proveen objetos desde el lado del servidor que son, precisamente, los EJBs. Los EJBs proporcionan un modelo de componentes distribuido estándar del lado del servidor. El objetivo de los EJBs es dotar al programador de un modelo que le permita abstraerse de los problemas generales de una aplicación empresarial (concurrencia, transacciones, persistencia, seguridad) para centrarse en el desarrollo de la lógica de negocio en sí. El hecho de estar basado en componentes permite que éstos sean flexibles y sobre todo reutilizables. En su especificación EJB 2.x, la cual es la base actual de la arquitectura del sistema, se muestra la información de los siguientes puntos: 1012 Terminología. Tipos de Enterprise Bean. Forma en que se instancian los beans. Funcionamiento de los EJB. Interface Home. Interface Remota. Terminología: ENTERPRICE BEAN: Objeto distribuido que provee servicios remotos y está albergado en un EJB Container. Tiene dos interfaces: home y local/remote, y una implementación. EJB API: Modelo de programación constituido por un conjunto de clases y convenciones. EJB CONTAINER: Alberga y maneja los enterprice beans, incluye acceso remoto, seguridad, persistencia, transacciones, concurrencia, acceso y pooling de recursos. El enterprice bean depende del container para todo y utiliza tres métodos para comunicarse con él: a. Callback Methods Permiten al bean hacer algo antes y después de un evento. b. EJB Context Permite al bean acceder información sobre el ambiente, como identidad del cliente, status de una transacción o accesos remotos a sí mismo. c. JNDI Es la extensión estándar de la plataforma de Java para acceder sistemas de nombres. Cada bean tiene acceso a un sistema de nombres especial (ENC) que es manejado por el container y accedido por el JNDI. 1113 Tipos de Enterprise Beans: Existen tres tipos de EJBs: EJBs de Entidad (Entity EJBs): su objetivo es encapsular los objetos del lado del servidor que almacena los datos. Los EJBs de entidad presentan la característica fundamental de la persistencia: o Persistencia gestionada por el contenedor (CMP): el contenedor se encarga de almacenar y recuperar los datos del objeto de entidad mediante el mapeo de una tabla de la base de datos. Es más difícil de mantener por el EJB server. Las herramientas del vendedor son las que se usan para realizar la correspondencia entre los campos de la base de datos y los atributos del bean. No todos los atributos son container-managed. Los atributos container-managed se definen en el descriptor de deployment y deben tener tipos correspondientes en la base de datos, estos pueden ser tipos primitivos o objetos serializables. Las clases primarias compuestas deben ser representadas por una clase especial definida por el desarrollador. Los métodos de búsqueda se utilizan para localizar beans específicos y cada vendedor los implementa a su gusto. o Persistencia gestionada por el bean (BMP): el propio objeto entidad se encarga, mediante una base de datos u otro mecanismo, de almacenar y recuperar los datos a los que se refiere, por lo cual, la responsabilidad de implementar los mecanismos de persistencia es del programador. Las conexiones de la base de datos se obtienen del container usando el JNDI Context (ENC) que provee acceso transaccional, conexiones JDBC y pool por medio de una fábrica de conexiones estándar. 1214 EJBs de Sesión (Session EJBs): gestionan el flujo de la información en el servidor. Generalmente sirven a los clientes como una fachada de los servicios proporcionados por otros componentes disponibles en el servidor. Puede haber dos tipos: o Con estado (stateful). Los beans de sesión con estado son objetos distribuidos que poseen un estado. El estado no es persistente, pero el acceso al bean se limita a un solo cliente. Contienen lógica de negocios y el estado específico de un cliente entre invocaciones. Mantienen un estado de negocios que puede ser compartido por los métodos del mismo bean. Para conservar recursos pueden pasar a un estado pasivo, lo que significa escribir su estado en disco. Al activarse lee su estado nuevamente. o Sin estado (stateless). Los beans de sesión sin estado son objetos distribuidos que carecen de estado asociado permitiendo por tanto que se los acceda concurrentemente. No se garantiza que los contenidos de las variables de instancia se conserven entre llamadas al método. Contienen métodos de negocios que se comportan como procedimientos. Operan solamente con los argumentos que se les pasan. No tienen métodos de búsqueda y no pueden ser inicializados con ningún argumento. Utilizan el JNDI ENC para obtener referencia a otro bean y para el casting de objetos deben utilizar el PortableRemoteObject.narrow() EJBs dirigidos por mensajes (Message-driven EJBs): son los únicos beans con funcionamiento asíncrono. Usando el Java Messaging System (JMS), se suscriben a un tema (topic) o a una cola (queue) y se activan al recibir un mensaje dirigido a dicho tema o cola. No requieren de su instanciación por parte del cliente. 1315 Forma de Instanciar un Bean: Un bean sea un objeto distribuido, esto significa que vive y es instanciado en el container, pero puede ser accedido por otras aplicaciones que viven en espacios de dirección diferentes. La instancia se envuelve en un objeto especial llamado SKELETON que tiene una conexión de red con otro objeto llamado STUB que se encuentra en la aplicación cliente. El STUB mantiene un socket con el SKELETON de forma que cuando se hace una llamada a un método el STUB envía el mensaje al SKELETON, el SKELETON lo envía a la instancia del bean que lo ejecuta y retorna el resulta al SKELETON y este, finalmente, lo pasa al STUB. El SKELETON para las interfaces Home y Local/Remote es implementado por el container. El servidor de EJBs soporta JRMP o IIOP para comunicación, pero el bean siempre usa el mismo API, el JAVA RMI API. Los servidores de EJB no tienen que usar IIOP pero tienen que respetar sus restricciones. Funcionamiento EJB: Los EJBs se disponen en un contenedor EJB dentro del servidor de aplicaciones. La especificación describe cómo el EJB interactúa con su contenedor y cómo el código cliente interactúa con la combinación del EJB y el contenedor. Cada EJB debe facilitar una clase de implementación Java y dos interfaces Java. El contenedor EJB creará instancias de la clase de implementación Java para facilitar la implementación EJB. Las interfaces Java son utilizadas por el código cliente del EJB. Las dos interfaces, conocidas como interfaz "home" e interfaz remoto, especifican las firmas de los métodos remotos del EJB. Los métodos remotos se dividen en dos grupos: Métodos que no están ligados a una instancia específica, por ejemplo aquellos utilizados para crear una instancia EJB o para encontrar una entidad EJB existente. Estos métodos se declaran en la interfaz "home". Métodos ligados a una instancia específica. Se ubican en la interfaz remota. 1416 Dado que se trata simplemente de interfaces Java y no de clases concretas, el contenedor EJB genera clases para esas interfaces que actuarán como un proxy en el cliente. El cliente invoca un método en los proxies generados que a su vez sitúa los argumentos método en un mensaje y envía dicho mensaje al servidor EJB. Los proxies usan RMI-IIOP para comunicarse con el servidor EJB. El servidor llamará a un método correspondiente a una instancia de la clase de implementación Java para manejar la llamada del método remoto. Interface Home: Como indicamos anteriormente, la interfaz "home" permite al código cliente manipular ciertos métodos de clase del EJB, esto es, métodos que no están asociados a ninguna instancia particular. La especificación EJB 1.1 establece el tipo de métodos de clase que se pueden definir como métodos que crean un EJB o para encontrar un EJB existente si es un "bean" de entidad. La especificación EJB 2.0 permite a los desarrolladores de aplicaciones definir nuevos métodos de clase sin limitarse a su sola creación, borrado y búsqueda. Interface Remota: La interfaz remota especifica los métodos de instancia públicos encargados de realizar las operaciones. Una sesión bean puede implementar múltiples interfaces, con cada interfaz apuntada por un tipo de cliente diferente. Interfaz local es para aquellos clientes que corren en la misma máquina virtual que el contenedor EJB. Interfaz remote es para clientes remotos. Frente a una consulta del cliente, el contenedor retorna un stub serializado del objeto que implementa la interfaz remote. El stub conoce como pasar llamadas a procedimientos remotos (RPCs) al servidor. Este tipo de interfaz es también un POJI. 1517 2.1.2 JPA. Java Persistence API, más conocida por su sigla JPA, es la API de persistencia desarrollada para la plataforma Java EE e incluida en el estándar EJB3. Esta API busca unificar la manera en que funcionan las utilidades que proveen un mapeo objeto-relacional. El objetivo que persigue el diseño de esta API es no perder las ventajas de la orientación a objetos al interactuar con una base de datos, como sí pasaba con EJB2, y permitir usar objetos regulares (conocidos como POJOs) Hibernate. Hibernate es una herramienta de Mapeo objeto-relacional para la plataforma Java (y disponible también para.net con el nombre de NHibernate) que facilita el mapeo de atributos entre una base de datos relacional tradicional y el modelo de objetos de una aplicación, mediante archivos declarativos (XML) que permiten establecer estas relaciones. Como todas las herramientas de su tipo, Hibernate busca solucionar el problema de la diferencia entre los dos modelos usados hoy en día para organizar y manipular datos: El usado en la memoria de la computadora (orientación a objetos) y el usado en las bases de datos (modelo relacional). Para lograr esto permite al desarrollador detallar cómo es su modelo de datos, qué relaciones existen y qué forma tienen. Con esta información Hibernate le permite a la aplicación manipular los datos de la base operando sobre objetos, con todas las características de la OOP. Hibernate convertirá los datos entre los tipos utilizados por Java y los definidos por SQL. Hibernate genera las sentencias SQL y libera al desarrollador del manejo manual de los datos que resultan de la ejecución de dichas sentencias, manteniendo la portabilidad entre todas las bases de datos con un ligero incremento en el tiempo de ejecución. Hibernate está diseñado para ser flexible en cuanto al esquema de tablas utilizado, para poder adaptarse a su uso sobre una base de datos ya existente. También tiene la funcionalidad de crear la base de datos a partir de la información disponible. 1618 2.2 Ventajas de Uso de EJB 3.0 sobre EJB 2.x. Los descriptores de despliegue ya no son necesarios, todo puede ser integrado utilizando las anotaciones. El CMP (Container Managed Persistence) se simplifica mucho; este ahora tiene una estructura más al estilo Hibernate o JDO. Se incorporan los valores por defecto programáticos. Por ejemplo, el modelo de transacción es definido REQUIRED por default. El valor necesita ser definido solo si un valor específico diferente al default es deseado. El uso del chequeo de excepciones es reducido; el RemoteException no es necesario en cada método del negocio remoto. Ahora se permite la herencia; antes, los beans podían ser extendidos solamente del código base. Son soportadas las consultas nativas SQL. 2.3 Ejemplo de Aplicación en EJB 2.x. El ejemplo consiste en una simple aplicación Hello World, la cual desarrolla todas las interfaces y clases requeridas por una aplicación EJB 2.0, desarrollada en NetBeans. El desarrollo de este ejemplo se subdivide en: Interface Remota: La Interface Remota soporta todos los métodos del negocio que expone el bean. Esta interface se extiende de javax.ejb.ejbobject, lo que quiere decir que el EJB object contenido generado, el cual implementa la interface remota, contendrá todos los métodos que la interface javax.ejb.ejbobject contiene. El ejemplo de código es el siguiente: public interface Hello extends javax.ejb.ejbobject { /** * El método hello() devuelve el string al cliente. */ public String hello() throws java.rmi.remoteexception; 1719 2.3.2 Interface Local: El cliente local utiliza la Interface Local para llamar a los métodos del bean. Dentro de la Interface Remota, se tienen un método hello() el cual retorna un String Hello World al cliente. Es necesario implementar este método en la Clase Enterprise Bean. Existen diferencia marcadas entre la Interface Local y la Interface Remota. En este tipo se extiende de javax.ejb.ejblocalobject, además que no se necesitan lanzar las excepciones remotas. public interface HelloLocal extends javax.ejb.ejblocalobject { /** * The El método hello() devuelve el string al cliente. */ public String hello(); Interface Home: La Interface Home contiene métodos para crear y destruir EJB Objects. La implementación de esta interface es el Home Object, el cual es generado por el container. public interface HelloHome extends javax.ejb.ejbhome { /* * Este método crea el EJB Object. * El nuevo EJB Object creado. */ Hello create() throws java.rmi.remoteexception, javax.ejb.createexception; El cliente usa el método create() para obtener una referencia a un EJB Object. Este método también es utilizado para inicializar un bean. La Interface Home se extiende de javax.ejb.ejbhome. EJBHome define un camino para destruir un EJB Object, por lo que no es necesario escribirlo. 1820 2.3.4 Interface Local Home: Es la Interface utilizada por los clientes locales que da mayor rendiemiento. public interface HelloLocalHome extends javax.ejb.ejblocalhome { /* * Este método crea un EJB Object. * El nuevo EJB Object creado. */ HelloLocal create() throws javax.ejb.createexception; La Interface Local Home se extiende de EJBLocalHome, para esta interface la implementación no será un objeto remoto Clase Bean: El código de la Clase Bean es el siguiente: public class HelloBean implements javax.ejb.sessionbean { // Los métodos EJB requeridos // public void ejbcreate() { System.out.println("ejbCreate()"); public void ejbremove() { System.out.println("ejbRemove()"); public void ejbactivate() { System.out.println("ejbActivate()"); public void ejbpassivate() { System.out.println("ejbPassivate()"); public void setsessioncontext(sessioncontext ctx) { System.out.println("setSessionContext()"); // // Métodos del negocio // public String hello() { System.out.println("hello()"); return "Hello, World!"; 1921 El bean contiene el método ejbcreate() que corresponde con el método Create() del Home Objects, el cual no tiene parámetros. Se tiene un método del negocio, hello(). Este método retorna Hello World al cliente. Los métodos ejbactivate() y ejbpassivate() no aplican para un bean de tipo Stateless. Cuando se destruye el bean, no es necesario limpiar, por lo que solo se tiene el método simple remove() Clase Cliente: El contenido de la clase cliente es el siguiente: public class HelloClient { public static void main(string[] args) throws Exception { /* * Inicia la configuración para el JNDI. * */ Properties props = System.getProperties(); /* * Obtiene el contexto inicial JNDI. * * El contexto inicial es un punto de inicio para * la conexión con el JNDI. Se elije el JNDI driver * propio, la localización del servidor en la red, etc * pasándolas por las propiedades del ambiente. */ Context ctx = new InitialContext(props); /* * Se obtiene una referencia al Home Object - el * factory para los Hello EJB Objects */ Object obj = ctx.lookup("hellohome"); /* * Los Home objects son objetos RMI-IIOP, y estos * deben ser emitidos detro de objetos RMI-IIOP * usando un convertir especial de RMI-IIOP. */ HelloHome home = (HelloHome) javax.rmi.portableremoteobject.narrow( obj, HelloHome.class); /* * Se usa el factory para crear el Hello EJB Object */ Hello hello = home.create(); /* * Se llama al método hello() en el EJB object. El 2022 * EJB object delegará la llamada al bean, * recibe los resultados y los retorna. * * Se imprime el resultado. */ System.out.println(hello.hello()); /* * Cuando se termina con el EJB Object, se elimina. * El container destruirá el EJB object. */ hello.remove(); Archivo ejb-jar.xml: Este archivo contiene lo siguiente: <ejb-jar> <enterprise-beans> <session> <ejb-name>helloworld</ejb-name> <home>examples.hellohome</home> <remote>examples.hello</remote> <local-home>examples.hellolocalhome</local-home> <local>examples.hellolocal</local> <ejb-class>examples.hellobean</ejb-class> <session-type>stateless</session-type> </session> </enterprise-beans> </ejb-jar> <ejb-jar>: Contiene el nickname del bean en particular. Puede ser usado después en el descriptor de despliegue para referirse a las configuraciones de este bean. <home>: El nombre de la Interface Home. <remote>: El nombre de la Interface Remota. <local-home>: El nombre de Interface Local Home. <local>: El nombre de la Interface Local. <ejb-class>: El nombre de la Clase Bean. <session-type>: Si el Session Bean es Stateless o Stateful. 2123 2.4 Ejemplo de Aplicación en EJB 3.0. Esta aplicación consiste en un Frame que contiene los campos necesarios para insertar los datos, eliminarlos o hacer la consulta Clase Cliente. Este procedimiento agrega un registro a la base de datos private void createdata() { try { Date dat = new Date(); dat.setdate(integer.valueof(jtextfield7.gettext())); dat.setmonth(integer.valueof(jtextfield6.gettext())); dat.setyear(integer.valueof(jtextfield5.gettext()) ); request.addbenchmark( Integer.valueOf(jTextField1.getText()), jtextfield2.gettext(), dat, dat, jtextfield3.gettext(), dat, jtextfield4.gettext()); catch (Exception ex) { System.err.println("Caught an exception in createdata():"); ex.printstacktrace(); Este procedimiento elimina un registro de la base de datos de acuerdo a su llave primaria. private void removedata() { try { request.removebenchmark(integer.valueof(jtextfield1.gettext())); catch (Exception ex) { System.err.println("Caught an exception in createdata():"); ex.printstacktrace(); Este procedimiento realiza una consulta por medio de la llave primaria y retorna simplemente el nombre del BenchMark encontrado. Por cuestiones de tiempo, para hoy solo se realizo esta simple consulta, para mañana se espera extenderla para que retorne un objeto que contenga todos los datos del registro encontrado. private void findnom() { try { String nombre = request.findconbench(integer.valueof(jtextfield1.gettext())); jtextfield2.settext(nombre); catch (Exception ex) { System.err.println("Caught an exception in createdata():"); ex.printstacktrace(); 2224 Es necesario agregar todos los imports necesarios para que funcione la aplicación, además de una variable de instancia a la clase de gestión private static Request request; Esta anotación se agrega a la clase al inicio de su declaración Clase Entity Bean. Esta es la misma clase utilizada para la presentación de la aplicación la semana pasada, su código es (name = "adpbenchmark", schema="devcustodia") public class BenchMark implements Serializable { private int conbenchmark; private String nombenchmark; private Date fechavigencia; private Date fechaingreso; private String usuarioingreso; private Date fechamodificacion; private String public int getconbenchmark() { return conbenchmark; public void setconbenchmark(int conbenchmark) { this.conbenchmark = public String getnombenchmark() { return nombenchmark; public void setnombenchmark(string nombenchmark) { this.nombenchmark = (name public Date getfechavigencia() { return fechavigencia; public void setfechavigencia(date fechavigencia) { this.fechavigencia = (name public Date getfechaingreso() { return fechaingreso; public void setfechaingreso(date fechaingreso) { 2325 this.fechaingreso = (name ="usringreso") public String getusuarioingreso() { return usuarioingreso; public void setusuarioingreso(string usuarioingreso) { this.usuarioingreso = (name public Date getfechamodificacion() { return fechamodificacion; public void setfechamodificacion(date fechamodificacion) { this.fechamodificacion = (name ="usrmodifico") public String getusuariomodificacion() { return usuariomodificacion; public void setusuariomodificacion(string usuariomodificacion) { this.usuariomodificacion = usuariomodificacion; En el código anterior simplemente se encuentra la declaración de la entidad, sus propiedades y los métodos get y set para cada una de estas propiedades Clase Request. Esta clase funciona como la interface remota, simplemente se debe agregar la a su inicio para lograr esto. Contiene los procedimientos utilizados para la gestión de los datos en la public interface Request { void addbenchmark( Integer conbencmark, String nombenchmark, Date vigenia, Date ingreso, String usringreso, Date modifico, String usrmodifico); void removebenchmark(integer conbencmark); String findconbench(int con); 2426 2.4.4 RequestBean. Aquí es donde básicamente se implementan los procedimientos para realizar las inserciones, borrados y consultas a la base de datos. Su código es el siguiente: public class RequestBean implements Request private EntityManager em; public void addbenchmark(integer conbencmark, String nombenchmark, Date vigenia, Date ingreso, String usringreso, Date modifico, String usrmodifico) { try { BenchMark bench = new BenchMark (); bench.setconbenchmark(conbencmark); bench.setnombenchmark(nombenchmark); bench.setfechavigencia(vigenia); bench.setfechaingreso(ingreso); bench.setusuarioingreso(usringreso); bench.setfechamodificacion(modifico); bench.setusuariomodificacion(usrmodifico); em.persist(bench); catch (Exception e) { throw new EJBException(e.getMessage()); public void removebenchmark(integer conbencmark) { try { BenchMark bench = em.find(benchmark.class, conbencmark); em.remove(bench); catch (Exception e) { throw new EJBException(e.getMessage()); public String findconbench(int con) { String nombre; try { BenchMark bench = em.find(benchmark.class, con); nombre = bench.getnombenchmark(); catch (Exception e) { throw new EJBException(e.getMessage()); return nombre; Los tres procedimientos que contiene realizan la inserción de un registro, el borrado, y una consulta por llave primaria respectivamente. La forma en que se crea en que se crea el contexto de persistencia es mucho más sencilla que utilizando los EJB private EntityManager em; 2527 2.4.5 Archivo de la Unidad de Persistencia. Este archivo, como su nombre lo indica, contiene la configuración necesaria para que la aplicación obtenga la persistencia para sus objetos, en este caso, se utiliza Hibernate. Figura #1: Unidad de Persistencia En la imagen se muestra la forma en que se debe configurar la unidad de persistencia, primero se le indica un nombre, después se selecciona Hibernate como proveedor, ya que por defecto viene con TopLink. Después se debe indicar la fuente de datos, la cual se puede predefinir mediante la selección de nueva fuente; aquí se le indica un nombre, y se selecciona la configuración de la conexión a la base de datos. Si esta no existe, se crea una indicando el nombre, que en este caso sería Microsoft SQL Server 2005, después se indica el URL de la base de datos, introduciendo el nombre del servidor, el puerto utilizado y la base de datos. Finalmente el usuario y la contraseña. Finalmente, se selecciona la opción correspondiente la estrategia de generación de la tabla y la aplicación queda lista para probarse. 2628 Capítulo 3 SOLUCIÓN IMPLEMENTADA. 3.1 Diseño Arquitectónico. Figura #2: Diseño Arquitectónico 2729 3.2 Componentes. Capa - Cliente Capa Lógica de Negocio Capa - Datos Worksheet Servidor J2EE Façade Delegate Ejb s D A O DAL BD J2SE Oracle / SQL Server Figura #3: Diseño de Componentes del Sistema El modelado del sistema se encuentra organizado tal y como se muestra en la figura anterior, se dividen en tres capas según sus funcionalidades. A continuación se explica el funcionamiento de cada una de las capas mostradas, sin embargo, la base del proyecto de práctica estará enfocada la forma en que se manejan los Session Beans, los Entitys Beans y el Dao (Data Access Object) en la capa de lógica de negocios, sin que esto interfiera en ningún caso con la lógica del negocio pura. Además, el trabajo también se centra extensivamente en la capa de datos Capa Cliente En esta capa se encuentran todas las funcionalidades que van a afectar directamente al usuario de la aplicación, esto va a incluir temas como creación de interfaz, ciertos cálculos sencillos, extraer y setear datos en la interfaz, entre otros. 2830 Estas clases se diferencian físicamente de las demás por la terminación Worksheet, junto con el nombre específico que se le de a la clase. Las clases encargadas de la comunicación de la capa cliente con la capa lógica del negocio se diferencian por la terminación Delegate. En esta se encuentran todos los métodos que deben acceder al servidor o a la base de datos, los cuales se van a comunicar por medio de una instancia que hace referencia al Facade Capa Lógica del Negocio Esta capa se maneja directamente desde el servidor de la aplicación, cuenta con 3 importantes grupos de clases, los Session Beans, los Entitys Beans y el Dao. Esta capa intermedia tiene como función principal comunicar la parte del cliente con la información de la base de datos, ya que es aquí donde se procesan los datos que vienen del cliente para ser almacenados así como posee los métodos que extraen los datos que necesita el cliente para ser mostrados. El funcionamiento de los Session Beans y los Entitys Beans fue mostrado en el Primer Informe de este proyecto, tanto su funcionamiento sobre EJB 2.1, como en EJB 3.0, tecnología que se busca implementar. El Dao, es el archivo que se comunica directamente con el Dal de cada clase, en el se encuentran todas las referencias a cada una de las consultas que posea junto con los parámetros que corresponda Capa de Datos El DAL es un archivo XML que posee en código SQLServer todas las consultas que se desean hacer en una clase en específica. La base fundamental de las clases de esta capa se muestra en el apartado 2.3 de este documento, donde se muestra el diagrama de clases completo de la capa. En el apartado 2.4, se da la descripción específica de cada una de las clases que conforman esta capa. 29 31 3.3 Diagrama de Clases. Figura #4: Diagrama de Clases 3032 3.4 Diseño de Clases. Para simplificar la forma en que se muestran cada una de las descripciones de las clases, se van a subdividir estas de acuerdo a la paquetería en que se encuentran dentro del proyecto Paquete framework.common Clase Descripción EjbDaoFactory Esta clase tiene la función de crear instancias para cada uno de los dao (Objetos de Acceso a Datos) de acuerdo al entity correspondiente, para de esta manera, una vez obtenido el dao, poder realizar las operaciones correspondientes al entity relacionado con una tabla en la base de datos. Atributos Métodos private EjbDaoFactory( ): Constructor de la clase. public Object getdao( Class daoclass, String entityid, EntityManager em, Long companyid ): Obtiene un dao de acuerdo a la clase y lo inicializa con los argumentos recibidos. public EjbDaoFactory getinstance( ): para crear una instancia de la clase. 3133 3.4.2 Paquete framework.model.dal Clase Descripción DalManager Cumple la función de cargar cada uno de los archivos DAL xml en memoria que contienen las operaciones sobre cada entity relacionado a una tabla en la base de datos. Además de esto, la obtención de una operación específica. Atributos Métodos public void initializemanager( String configfile, String logconfigfile ): Carga el archivo.xml del DAL de acuerdo al nombre pasado por argumento public void addentity( Dal object ): Agrega el entity pasado por argumento a la variable global public Map getentites( ): Obtiene el mapa de entities public Operation getoperation( String entity, String idoperation ): Obtiene el string de una operacion determinada de un entity, de acuerdo a la clase del entity y al id de la operacion public void initializemanager( String configfile ): en caso de que no se pase el archive logconfigfile 3234 Clase Descripción Atributos EjbGenericDao Contiene las operaciones genéricas de acceso a datos, como los son las inserciones, modificaciones, borrados o obtenciones de registros. private EntityManager em: variable encargada de las persistencia de los datos. private String entity: string que contiene el nombre de cada entity a cargar. private Class entityclass: variable tipo clase que representa la clase de cada uno de los entibies que serán cargados. protected int ON_INSERT = 0: representa el retorno para la operación de inserción. protected int ON_UPDATE = -1: representa el retorno para la operación de actualización. protected int ON_DELETE = 1: representa el retorno para la operación de borrado. protected int ON_GET = 2: representa el retorno para la operación de obtención de un solo registro. protected int ON_GET_LIST = 3: representa el retorno para la operación de obtención de una lista de registros. protected Map schemas = new HashMap(): mapa que contiene los esquemas utilizados por el sistema. private Long companyid: id de la compañía. Métodos public EjbGenericDao( String entity, EntityManager em, Long companyid ): constructor de la clase. 3335 public Integer insert( Map datarecord, String operationid ): inserta un objeto de acuerdo al entity relacionado, asigna los parámetros que recibe en el mapa, para este caso el operationid no se utiliza. public Integer delete( Map datarecord, String operationid ): elimina un objeto del entity relacionado, de acuerdo a los parámetros que recibe en el mapa, para este caso el operationid no se utiliza. public Integer update( Map datarecord, String operationid ): actualiza un objeto, de acuerdo a los parámetros que recibe en el mapa, para este caso el operationid no se utiliza. public Integer get( Map datarecord, String operationid ): obtiene un registro del entity de acuerdo a los parámetros tomados del mapa y la operación específica. public List getlist( Map datarecord, String operationid ): obtiene una lista de registros del entity de acuerdo a los parámetros tomados del mapa y la operación específica. private boolean hasschemas( ): verifica si los esquemas del sistema ya han sido cargados. private String getmultischemasql( String sql ): obtiene el esquema del string de la consulta SQL. 3436 3.4.3 Paquete framework.dal.manager Clase Descripción Atributos Métodos Dal Clase para contener cada entity cargado de los archivos DAL private Map Entities: mapa que contiene los entities del dal correspondiente. public Map getentities( ): obtiene el mapa de entities del dal correspondiente. public void setentities( Map entities ): setae los entities recibidos en el mapa al dal. Clase Descripción Atributos Entity Clase que representa cada entity cargado de un determinado archivo DAL private Map operación: mapa de las operaciones que se realizan sobre ese entity. private String id: identificador del entity. Métodos public Map getoperacion( ): obtiene el mapa de las operaciones del entity. public void addoperacion( Map operacion ): agrega una operación al mapa de operaciones del entity en cuestión. public String getid( ): obtiene el identificador del entity. public void entity. setid( String ID ): setea el identificador al 3537 Clase Descripción Atributos Operation Clase que representa las operaciones que contiene cada entity private String sql: string que contiene el quero de la consulta SQL de la operación. private String id: identificador de la operación. public boolean log: indica si la operación es loggeable o no. public boolean nativo: indica si la consulta es nativa o no. Métodos public Column[0..*] getcolums( ): obtiene cada una de las columnas que contiene la operación. public void addcolums( Column columns[0..*] ): agrega columnas a la operación. public String getsql( ): obtiene la sentencia SQL. public void setsql( String SQL ): setea la sentencia SQL public String getid( ): obtiene el identificador de la operación public void setid( String ids ): setea el identificador de la operación public boolean getisloggeable( ): si la operación el loggeable public void setisloggeable( boolean loggeable ): setea si la operación va a ser loggeable public boolean getisnative( ): si la operación es nativa. public void setisnative( boolean anative ): setea si la 3638 operación va a ser nativa Clase Descripción Atributos Column Case para las columnas de cada operación de cada entity private String id: identificador de la columna private String type: tipo de dato de la columna Métodos public String getid( ): obtiene el identificador de la columna public void setid( String ID ): setea el identificador de la columna. public String gettype( ): obtiene el tipo de la columna. public void columna. settype( String type ): setea el tipo de la 3739 3.4.4 Paquete framework.dal.util Clase Descripción ClassTools Obtiene la dirección de un entity dentro de la paquetería del proyecto de acuerdo a una llave en un archivo.properties Atributos Métodos private ClassTools( ): constructor de la clase. public String getclassinstance( String entity ): obtiene la dirección del entity dentro de la paquetería del proyecto de acuerdo a la llave que recibe por parámetro. Clase Descripción MapTools Realiza la conversión entre mapas y objetos de tipo entity, tanto para copiar los archivos de un mapa a una instancia de un entity como viceversa Atributos Métodos private MapTools( ): constructor de la clase. public Map getannotatedattributes( Object entity ): retorna los valores de las propiedades del entity enviado en el argumento, cada atributo debe tener el método setter correspondiente, siguiente el estándar de nombres, el mapa retornado contiene tantos valores como atributos tenga el entity y la llave de cada valor será igual al nombre del atributo en mayúsculas, los tipos de los valores serán iguales a los atributos del entity. 3840 public void setannotatedattributes( Map data, Object entity ): inicializa el entity con los valores contenidos en data, si el mapa no contiene un valor llamado de la misma forma que el atributo del entity en mayusculas, este lo inicializa en nulo. public Object converttype( Method settermethod, Object value ): verifica que el tipo de dato de value y el tipo que debe recivir el método settermethod sean compatibles, si no los son, hace la conversión de value public Object getkey( Object entity ): obtiene la llave primaria del entity. Clase Descripción QueryTools Obtiene las columnas que se solicitan en una consulta desde el string de la consulta. Atributos Métodos public String[0..*] getquerycolumns( String query ): obtiene del query recibido la zona donde se ubican las columnas de la consulta. public String[0..*] extractquerycolumns( String query ): separa cada una de las columnas de la zona y las retorna en un arreglo de string. 3941 public String verifyterm( String aux ): valida la separación de cada columna. public int getquerycolumnsfinal( String query ): recibe un string con la sentencia de la consulta. 4042 Capítulo 4 CONCLUSIONES Y COMENTARIOS. 4.1 Objetivos Propuestos Cada uno de los objetivos pensados y propuestos por los que se iba a trabajar en este proyecto se llevaron acabo con el desarrollo de la práctica de manera satisfactoria, en donde cada uno de los puntos citados se finalizaron de manera exitosa cumpliendo así con el principal objetivo de la práctica de ayudar al desarrollo del proyecto del Sistema de Intermediación de Valores mediante mejoras en la arquitectura del producto. 4.2 Productos Al estar este proyecto de práctica de especialidad orientado a la estructura específica de la arquitectura del producto base de la empresa, no existe un producto finalizado como tal que haya sido presentado, aún así, según las tareas realizadas podemos encontrar una subdivisión de 2 subproductos que se llevaron acabo durante la elaboración del proyecto, los cuales son: Creación de una nueva capa de acceso a datos que funciona de manera más transparente y simplificada, otorgando así al sistema una mejora tangible en cuanto a la implementación del acceso a datos. Para este punto, la nueva capa ha sido probada solamente con el Módulo de Seguridad, sin embargo, el propósito es continuar con un plan bien definido para continuar con los demás módulos. Funcionamiento completo del Módulo de seguridad, el cual ha servido de referencia para observar los puntos relevantes de utilizar estas nuevas tecnologías, ya aplicadas al producto como tal. 4143 4.3 Experiencia y Conclusiones Como uno de los puntos más importantes durante la realización del presiente proyecto, se encuentra el hecho de que la práctica se basó completamente en aspectos estructurales del sistema de la empresa en el lenguaje Java, por lo que la lógica del negocio prácticamente no fue utilizada hasta este punto. Es por esto, que la fase de integración que el mercado laboral de la empresa aún no ha sido iniciada. Es interesante la seguridad que una aplicación de este tipo demanda, en donde se tiene aún más responsabilidad sobre el buen funcionamiento de la misma por el tema empresarial que maneja, de manera que el uso del Módulo de Seguridad agrega un esfuerzo extra en cuanto a la eficiencia requerida. Para lograr los objetivos propuestos, se tuvo que trabajar muy estrechamente tanto con la J2EE de Java (Especificación actual utilizada por la empresa), como con la nueva JEE5 (nueva especificación que contiene EJB 3.0), lo cuál provocó mucho aprendizaje en este lenguaje, punto muy favorable debido al crecimiento en el mercado del uso de Java. Adaptarse a una estructura organizacional bien definida dentro de una empresa con tanta trayectoria como LiderSoft ha proporcionado también mucho enriquecimiento, el cual es necesario cuando se inicia una carrera profesional ya en el mercado. Al ser un proyecto tan grande y dividido en tantos recursos a la vez, es interesante ver como el trabajo en grupo viene a ser de gran importancia, ya que su coordinación y rendimiento debe de estar muy bien medido, para así lograr el cumplimiento de los objetivos propuestos en los tiempos e integridad requeridos. Por último esta experiencia de práctica de especialidad brinda una amplia visión de lo que es el trabajo real en una empresa, otorgando formación de una manera muy profesional para desempeñar las labores de manera exitosa como profesionales, cumpliendo con las normas del mercado. 4244 Capítulo 5 ANEXOS. 5.1 Informes Semanales Informe Semanal de Avance # 01 Nombre: Rafael Ángel Sánchez Saborío. Semana del: 10/12/2007_ al 14/12/2007 A) Actividades planeadas para esta semana 1. Comprensión y lectura de documentos introductorios, como: Estándares de Programación de LiderSoft. Tecnologías utilizadas en el proceso de desarrollo de software Java. Arquitectura general de la empresa. Manuales de aplicaciones propias. B) Actividades realizadas para esta semana según lo planeado 1. Comprensión y lectura de documentos introductorios, como: Estándares de Programación de LiderSoft. Tecnologías utilizadas en el proceso de desarrollo de software Java. Arquitectura general de la empresa. Manuales de aplicaciones propias. C) Actividades realizadas durante esta semana, que no estaban planeadas D) Actividades que quedaron pendientes para la próxima semana E) Actividades por hacer la próxima semana 1. Comprensión y lectura de documentos introductorios al sistema de negocios de la empresa, como: Algunos conceptos bursátiles. Introducción a la bolsa. 4345 Puestos de bolsa. Forma de operación del servicio básico de custodia. Reglamento de custodia. Implementación del reglamento de custodia. 4446 Informe Semanal de Avance # 02 Nombre: Rafael Ángel Sánchez Saborío. Semana del: 17/12/2007_ al 21/12/2007 A) Actividades planeadas para esta semana 1. Comprensión y lectura de documentos introductorios al sistema de negocios de la empresa, como: Algunos conceptos bursátiles. Introducción a la bolsa. Puestos de bolsa. Forma de operación del servicio básico de custodia. Reglamento de custodia. Implementación del reglamento de custodia. B) Actividades realizadas para esta semana según lo planeado 1. Comprensión y lectura de documentos introductorios al sistema de negocios de la empresa, como: Algunos conceptos bursátiles. Introducción a la bolsa. Puestos de bolsa. Forma de operación del servicio básico de custodia. C) Actividades realizadas durante esta semana, que no estaban planeadas D) Actividades que quedaron pendientes para la próxima semana Reglamento de custodia. Implementación del reglamento de custodia. E) Actividades por hacer la próxima semana 1. Continuar las tareas pendientes. 4547 Informe Semanal de Avance # 03 Nombre: Rafael Ángel Sánchez Saborío. Semana del: 02/01/2008_ al 04/01/2008 A) Actividades planeadas para esta semana 1. Continuar las tareas pendientes, las cuales son: comprensión y lectura de documentos introductorios al sistema de negocios de la empresa. Reglamento de custodia. Implementación del reglamento de custodia. B) Actividades realizadas para esta semana según lo planeado 1. Continuar las tareas pendientes, las cuales son: comprensión y lectura de documentos introductorios al sistema de negocios de la empresa. Reglamento de custodia. Implementación del reglamento de custodia. C) Actividades realizadas durante esta semana, que no estaban planeadas D) Actividades que quedaron pendientes para la próxima semana E) Actividades por hacer la próxima semana 1. Introducción a los objetivos del Proyecto, explicación de este y tareas a realizar. Información básica sobre Hibernate y descarga de aplicaciones necesarias. Creación de un ejemplo para probar las aplicaciones. Información sobre el uso de la Persistencia por JPA. Información sobre el Hibernate EntityManager y Hibernate Annotations. Compilación de la información recolectada para realizar un documento de avance. 4648 Informe Semanal de Avance # 04 Nombre: Rafael Ángel Sánchez Saborío. Semana del: 07/01/2008_ al 11/01/2008 A) Actividades planeadas para esta semana 1. Introducción a los objetivos del Proyecto, explicación de este y tareas a realizar. Información básica sobre Hibernate y descarga de aplicaciones necesarias. Creación de un ejemplo para probar las aplicaciones. Información sobre el uso de la Persistencia por JPA. Información sobre el Hibernate EntityManager y Hibernate Annotations. Compilación de la información recolectada para realizar un documento de avance. B) Actividades realizadas para esta semana según lo planeado 1. Introducción a los objetivos del Proyecto, explicación de este y tareas a realizar. Información básica sobre Hibernate y descarga de aplicaciones necesarias. Creación de un ejemplo para probar las aplicaciones. Información sobre el uso de la Persistencia por JPA. Información sobre el Hibernate EntityManager y Hibernate Annotations. Compilación de la información recolectada para realizar un documento de avance. C) Actividades realizadas durante esta semana, que no estaban planeadas D) Actividades que quedaron pendientes para la próxima semana E) Actividades por hacer la próxima semana 1. Recolectar más información sobre: Anotaciones. Recopilación de información sobre Hibernate Validator. Resolución de un ejemplo. 4749 Informe Semanal de Avance # 05 Nombre: Rafael Ángel Sánchez Saborío. Semana del: 14/01/2008_ al 18/01/2008 A) Actividades planeadas para esta semana 1. Recolectar más información sobre: Anotaciones. Recopilación de información sobre Hibernate Validator. Resolución de un ejemplo básico. B) Actividades realizadas para esta semana según lo planeado 1. Recolectar más información sobre: Anotaciones. Recopilación de información sobre Hibernate Validator. Resolución de un ejemplo básico. C) Actividades realizadas durante esta semana, que no estaban planeadas D) Actividades que quedaron pendientes para la próxima semana E) Actividades por hacer la próxima semana 1. Resolución de un ejemplo que integre Hibernate desde JPA, con operaciones básicas. Configuración de Aplicaciones. Uso de anotaciones y validaciones. 2. Análisis y comprensión de la estructura del módulo actual de la empresa en el que se desarrollará el proyecto. 4850 Informe Semanal de Avance # 06 Nombre: Rafael Ángel Sánchez Saborío. Semana del: 21/01/2008_ al 25/01/2008 A) Actividades planeadas para esta semana 1. Resolución de un ejemplo que integre Hibernate desde JPA, con operaciones básicas. Configuración de Aplicaciones. Uso de anotaciones y validaciones. 2. Análisis y comprensión de la estructura del módulo actual de la empresa en el que se desarrollará el proyecto. B) Actividades realizadas para esta semana según lo planeado 1. Resolución de un ejemplo que integre Hibernate desde JPA, con operaciones básicas. Configuración de Aplicaciones. Uso de anotaciones y validaciones. 2. Análisis y comprensión de la estructura del módulo actual de la empresa en el que se desarrollará el proyecto. C) Actividades realizadas durante esta semana, que no estaban planeadas D) Actividades que quedaron pendientes para la próxima semana E) Actividades por hacer la próxima semana 1. Integración de JPA y EntityManager desde EJB 2.0: Ejemplo de una aplicación en EJB 2.0. Se concluyó que la integración con EJB 2.0 no es posible. 2. Plan de migración de EJB 2.x a EJB 3.0. Ejemplo de una aplicación en EJB51 Informe Semanal de Avance # 07 Nombre: Rafael Ángel Sánchez Saborío. Semana del: 28/01/2008_ al 01/02/2008 A) Actividades planeadas para esta semana 1. Integración de JPA y EntityManager desde EJB 2.0: Ejemplo de una aplicación en EJB 2.0. Se concluyó que la integración con EJB 2.0 no es posible. 2. Plan de migración de EJB 2.x a EJB 3.0. Ejemplo de una aplicación en EJB 3.0. B) Actividades realizadas para esta semana según lo planeado 1. Integración de JPA y EntityManager desde EJB 2.0: Ejemplo de una aplicación en EJB 2.0. Se concluyó que la integración con EJB 2.0 no es posible. 2. Plan de migración de EJB 2.x a EJB 3.0. Ejemplo de una aplicación en EJB 3.0. C) Actividades realizadas durante esta semana, que no estaban planeadas D) Actividades que quedaron pendientes para la próxima semana E) Actividades por hacer la próxima semana 1. Aplicación utilizando EJB 3.0, JPA y WebSphere 6.1 como servidor de aplicaciones. Implementación de la aplicación en Rational Application Developer 7.0. Se concluyó que no existe soporte para EJB 3.0 en el ambiente de desarrollo mencionado. 2. Implementación de la aplicación en Rational Application Developer 7.5. Descarga de la versión. Realización de la aplicación. 5052 Informe Semanal de Avance # 08 Nombre: Rafael Ángel Sánchez Saborío. Semana del: 04/02/2008_ al 08/02/2008 A) Actividades planeadas para esta semana 1. Aplicación utilizando EJB 3.0, JPA y WebSphere 6.1 como servidor de aplicaciones. Implementación de la aplicación en Rational Application Developer 7.0. Se concluyó que no existe soporte para EJB 3.0 en el ambiente de desarrollo mencionado. 2. Implementación de la aplicación en Rational Application Developer 7.5. Descarga de la versión. Realización de la aplicación. B) Actividades realizadas para esta semana según lo planeado 1. Aplicación utilizando EJB 3.0, JPA y WebSphere 6.1 como servidor de aplicaciones. Implementación de la aplicación en Rational Application Developer 7.0. Se concluyó que no existe soporte para EJB 3.0 en el ambiente de desarrollo mencionado. 2. Implementación de la aplicación en Rational Application Developer 7.5. Descarga de la versión. C) Actividades realizadas durante esta semana, que no estaban planeadas D) Actividades que quedaron pendientes para la próxima semana 2. Implementación de la aplicación en Rational Application Developer 7.5. Realización de la aplicación. E) Actividades por hacer la próxima semana 1. Integración de un módulo actual del sistema para realizar la prueba de migración a EJB Modificación del esquema actual del módulo para su funcionamiento con EJB53 Informe Semanal de Avance # 09 Nombre: Rafael Ángel Sánchez Saborío. Semana del: 11/02/2008_ al 15/02/2008 A) Actividades planeadas para esta semana 1. Integración de un módulo actual del sistema para realizar la prueba de migración a EJB Modificación del esquema actual del módulo para su funcionamiento con EJB 3.0. B) Actividades realizadas para esta semana según lo planeado 1. Integración de un módulo actual del sistema para realizar la prueba de migración a EJB Modificación del esquema actual del módulo para su funcionamiento con EJB 3.0. C) Actividades realizadas durante esta semana, que no estaban planeadas D) Actividades que quedaron pendientes para la próxima semana E) Actividades por hacer la próxima semana 1. Inicio de la migración del módulo seleccionado: Migración de los Entity Beans. Migración de los Session Beans. 2. Reestructuración de la capa de acceso a datos. 5254 Informe Semanal de Avance # 10 Nombre: Rafael Ángel Sánchez Saborío. Semana del: 18/02/2008_ al 22/02/2008 A) Actividades planeadas para esta semana 1. Inicio de la migración del módulo seleccionado: Migración de los Entity Beans. Migración de los Session Beans. 2. Reestructuración de la capa de acceso a datos. B) Actividades realizadas para esta semana según lo planeado 1. Inicio de la migración del módulo seleccionado: Migración de los Entity Beans. Migración de los Session Beans. 2. Reestructuración de la capa de acceso a datos (en proceso). C) Actividades realizadas durante esta semana, que no estaban planeadas D) Actividades que quedaron pendientes para la próxima semana 2. Reestructuración de la capa de acceso a datos (en proceso). E) Actividades por hacer la próxima semana 1. Finalizar la reestructuración de la capa de acceso a datos. 2. Realización de pruebas de la capa de acceso a datos. 5355 Informe Semanal de Avance # 11 Nombre: Rafael Ángel Sánchez Saborío. Semana del: 25/02/2008_ al 29/02/2008 A) Actividades planeadas para esta semana 1. Finalizar la reestructuración de la capa de acceso a datos. 2. Realización de pruebas de la capa de acceso a datos. B) Actividades realizadas para esta semana según lo planeado 1. Finalizar la reestructuración de la capa de acceso a datos. 2. Realización de pruebas de la capa de acceso a datos. C) Actividades realizadas durante esta semana, que no estaban planeadas D) Actividades que quedaron pendientes para la próxima semana E) Actividades por hacer la próxima semana 1. Pruebas y corrección de errores sobre operaciones básicas de acceso a datos. 5456 Informe Semanal de Avance # 12 Nombre: Rafael Ángel Sánchez Saborío. Semana del: 03/03/2008_ al 07/03/2008 A) Actividades planeadas para esta semana 1. Pruebas y corrección de errores sobre operaciones básicas de acceso a datos. B) Actividades realizadas para esta semana según lo planeado 1. Pruebas y corrección de errores sobre operaciones básicas de acceso a datos (aún en proceso). C) Actividades realizadas durante esta semana, que no estaban planeadas D) Actividades que quedaron pendientes para la próxima semana 1. Finalización de pruebas y corrección de errores sobre operaciones básicas de acceso a datos. E) Actividades por hacer la próxima semana 1. Integración de la paginación en las consultas. 2. Integración de consultas dinámicas. 5557 Informe Semanal de Avance # 13 Nombre: Rafael Ángel Sánchez Saborío. Semana del: 10/03/2008_ al 14/03/2008 A) Actividades planeadas para esta semana 1. Integración de la paginación en las consultas. 2. Integración de consultas dinámicas. B) Actividades realizadas para esta semana según lo planeado C) Actividades realizadas durante esta semana, que no estaban planeadas 1. Corrección de errores propios del módulo de seguridad a la hora de integrarlo con la nueva tecnología de EJB 3.0 y JPA. D) Actividades que quedaron pendientes para la próxima semana 1. Integración de la paginación en las consultas. 2. Integración de consultas dinámicas. E) Actividades por hacer la próxima semana 1. Continuación de la corrección de errores propios del módulo de seguridad a la hora de integrarlo con la nueva tecnología de EJB 3.0 y JPA. 2. Integración de la paginación en las consultas. 3. Integración de consultas dinámicas. 5658 Informe Semanal de Avance # 14 Nombre: Rafael Ángel Sánchez Saborío. Semana del: 17/03/2008_ al 21/03/2008 A) Actividades planeadas para esta semana 1. Continuación de la corrección de errores propios del módulo de seguridad a la hora de integrarlo con la nueva tecnología de EJB 3.0 y JPA. 2. Integración de la paginación en las consultas. 3. Integración de consultas dinámicas. B) Actividades realizadas para esta semana según lo planeado 1. Continuación de la corrección de errores propios del módulo de seguridad a la hora de integrarlo con la nueva tecnología de EJB 3.0 y JPA. C) Actividades realizadas durante esta semana, que no estaban planeadas D) Actividades que quedaron pendientes para la próxima semana 1. Integración de la paginación en las consultas. 2. Integración de consultas dinámicas. E) Actividades por hacer la próxima semana 1. Integración de la paginación en las consultas. 2. Integración de consultas dinámicas. 5759 Informe Semanal de Avance # 15 Nombre: Rafael Ángel Sánchez Saborío. Semana del: 24/03/2008_ al 28/03/2008 A) Actividades planeadas para esta semana 1. Integración de la paginación en las consultas. 2. Integración de consultas dinámicas. B) Actividades realizadas para esta semana según lo planeado C) Actividades realizadas durante esta semana, que no estaban planeadas 1. Realización de pruebas de inserción, borrado, modificado y consultas. 2. Corrección de errores encontrados en las pruebas. D) Actividades que quedaron pendientes para la próxima semana 1. Integración de la paginación en las consultas. 2. Integración de consultas dinámicas. E) Actividades por hacer la próxima semana 1. Continuación de las pruebas y corrección de errores. 5860 Informe Semanal de Avance # 16 Nombre: Rafael Ángel Sánchez Saborío. Semana del: 31/03/2008_ al 04/04/2008 A) Actividades planeadas para esta semana 1. Continuación de las pruebas y corrección de errores. B) Actividades realizadas para esta semana según lo planeado 1. Continuación de las pruebas y corrección de errores. C) Actividades realizadas durante esta semana, que no estaban planeadas D) Actividades que quedaron pendientes para la próxima semana 1. Integración de la paginación en las consultas. 2. Integración de consultas dinámicas. E) Actividades por hacer la próxima semana 1. Integración de la paginación en las consultas. 2. Integración de consultas dinámicas. 59 61 5.2 Plan de Trabajo. 60 Mostrar más
5.4 Caso de estudio: diseño e implementación de la capa modelo de MiniPortal con EJB. Tipos de EJBs y patrones usados Introducción Qué tipos de EJBs ilustra MiniPortal? Entity Beans CMP (UserProfile) SLSBs Más detalles 4 Encuentro Internacional de Computación Aplicada
4 Encuentro Internacional de Computación Aplicada Arquitectura de Objetos Distribuidos utilizando EJBs Omar Gómez omar@cuci.udg.mx Agenda Arquitectura de Objetos Distribuidos Arquitectura J2EE Componentes Más detalles Enterprise JavaBeans 3. Aplicaciones Distribuidas
Enterprise JavaBeans 3 Aplicaciones Distribuidas Contenido Introducción Motivación Características básicas Servicios integrados en EJB 3 Ejemplo Hola Mundo Inyección de dependencia Tipos de EJB 3 Conclusiones Más detalles Componentes Distribuidos EJBs. Ing. Cesar Julio Bustacara Medina
Componentes Distribuidos EJBs Ing. Cesar Julio Bustacara Medina Introducción La Clase del Bean Contiene la lógica del Enterprise Bean. Es una clase Java pública, que implementa los métodos de negocios Más detalles Enterprise JavaBeans
Enterprise Java Beans y JBoss Enterprise JavaBeans Es una de las API que forman parte del estándar de construcción de aplicaciones empresariales J2EE (ahora JEE 5.0) de Oracle Corporation (inicialmente Más detalles Programación Orientada a Objetos Analista Programador Universitario Plan 2008 Año 2010
INTRODUCCION Los objetos usados en aplicaciones JAVA mantienen su estado y comportamiento mientras la aplicación se halle en ejecución. Generalmente se necesita mantener el estado y comportamiento de los Más detalles Tema 5. Plataforma Java EE
Tema 5. Plataforma Java EE SCS Sistemas Cliente/Servidor 4 o informática http://ccia.ei.uvigo.es/docencia/scs enero 2009 FJRP, FMBR 2008/09 ccia SCS 5.1 Introducción a Java EE Java EE (Java Enterprise Más detalles UNIVERSIDAD DE PIURA
ESPECIALIZACIÓN EN DESARROLLO DE APLICACIONES EMPRESARIALES CON JAVA EE Ofrecer al alumno los conocimientos necesarios para la construcción de sistemas informáticos bajo una arquitectura cliente servidor Más detalles [CASI v.0109] Pág. 1
I. DATOS INFORMATIVOS Carrera Especialidad Curso Código Ciclo : Quinto Requisitos Duración Horas Semana : 08 horas Versión : v.0109 II. SUMILLA : COMPUTACIÓN E INFORMATICA : Ingeniería de Software : Lenguaje Más detalles CAPITULO 3 ARQUITECTURA DE COMPONENTES GIS EN INTERNET
CAPITULO 3 ARQUITECTURA DE COMPONENTES GIS EN INTERNET 3.1- ARQUITECTURA DE COMPONENTES GIS La presente tesis trata del diseño y desarrollo de una aplicación basado en el Web para servir datos geográficos Más detalles Curso: Programación con JAVA SE Estándar Edition.
Curso: Programación con JAVA SE Estándar Edition. Código: 1062 Familia Profesional: Programación. Acreditación: Formación reconocida a través de vías no formales Modalidad: Distancia Duración: 150 horas Más detalles Notas técnicas de JAVA Nro. 7 Tip Breve
Notas técnicas de JAVA Nro. 7 Tip Breve (Lo nuevo, lo escondido, o simplemente lo de siempre pero bien explicado) Tema: JAVA Basics: Diferencias conceptuales entre JavaBeans y Enterprise JavaBeans (EJB) Más detalles Proyecto ELO-330 Administración Salas del Departamento de Electrónica RC1. Gerardo Lecaros Felipe Díaz
Proyecto ELO-330 Administración Salas del Departamento de Electrónica RC1 Gerardo Lecaros Felipe Díaz Problemática Petición de salas de forma tradicional Solución J2EE Java 2 Platform, Enterprise Edition Más detalles 1 Índice... 1. 2 Introducción... 2. 2.1 Propósito... 2. 2.2 Alcance... 2. 3 Modelo Arquitectónico Inicial... 3
1 Índice 1 Índice... 1 2 Introducción... 2 2.1 Propósito... 2 2.2 Alcance... 2 3 Modelo Arquitectónico Inicial... 3 3.1 Diagrama de alto nivel de la arquitectura... 3 3.2 Vista de Casos de Uso... 5 3.2.1 Más detalles Modelo de Objetos Distribuidos
Remote Method Invocation Modelo de Objetos Distribuidos Un objeto remoto es un objeto cuyos métodos pueden ser invocados desde otra máquina virtual de java, potencialmente en un host diferente. Modelo Más detalles Técnico Superior en Programación con Java SE Standard Edition
Código: M087_04 Técnico Superior en Programación con Java SE Standard Edition Modalidad: Distancia Duración: 120 horas Objetivos: Este pack de materiales formativos proporcionará al alumnado la base que Más detalles Interacción entre Aplicaciones: objetos distribuidos e invocación remota
Interacción entre Aplicaciones: objetos distribuidos e invocación remota En la anterior práctica se ha visto cómo extender la funcionalidad de un servidor web incorporando servlets que atienden peticiones Más detalles Curso de Spring Framework
Todos los Derechos Reservados Global Mentoring 2012 Experiencia y Conocimiento para tu Vida 1 Spring es un proyecto de código abierto (open source), originalmente creado por Rod Johnson y descrito en su Más detalles Facultad de Sistemas e Informática
1 Los Enterprise Java Beans (EJB) es código Java del lado del Servidor. Normalmente tienen la lógica de negocio de nuestra aplicación, y por lo tanto cubren el rol de la capa de servicio de nuestras aplicaciones Más detalles JAVA EE 5. Arquitectura, conceptos y ejemplos.
JAVA EE 5. Arquitectura, conceptos y ejemplos. INTRODUCCIÓN. MODELO DE LA APLICACIÓN JEE5. El modelo de aplicación Java EE define una arquitectura para implementar servicios como lo hacen las aplicaciones Más detalles Introducción a la herramienta para administración de información de especies y especímenes: Ara. María Mora, INBio. Costa Rica mmora@inbio.ac.
Introducción a la herramienta para administración de información de especies y especímenes: Ara María Mora, INBio. Costa Rica mmora@inbio.ac.cr Temario Objetivo del sistema Mecanismos de implementación Más detalles Tema 5. Plataforma Java EE
Tema 5. Plataforma Java EE SCS Sistemas Cliente/Servidor 4 o informática http://ccia.ei.uvigo.es/docencia/scs septiembre 2011 FJRP, FMBR 2008-2011 ccia SCS 5.1 Introducción a Java EE Java EE (Java Enterprise Más detalles 'HVDUUROORGH$SOLFDFLRQHV
'HVDUUROORGH$SOLFDFLRQHV FRQ-(( $SOLFDFLRQHV'LVWULEXLGDV0XOWLFDSD &RQWHQLGR Plataforma J2EE Aplicaciones Distribuidas multicapa Arquitectura Multicapa Componentes J2EE Componentes de Clientes: aplicaciones Más detalles Capítulo III. Análisis y diseño.
Capítulo III. Análisis y diseño. 3.1 Análisis. El análisis es el intermediario entre los requisitos del sistema y el diseño, esta sección definiremos el análisis con una serie de modelos técnicos del sistema, Más detalles Llamada a métodos remotos (RMI). Curso 04/05. Tema 9. Departament d Informàtica. Universitat de València. 1. Introducción 2
Tema 9 Llamada a métodos remotos (RMI). Departament d Informàtica. Índice 1. Introducción 2 1.1. Cómo funciona RMI?.......................................... 2 2. Usando RMI 4 2.1. Fase de desarrollo: Más detalles Introducción a los EJBs
Introducción a los EJBs Mario Muñoz Organero Departamento de Ingeniería Telemática http://www.it.uc3m.es/mario Panorámica de un Servidor de Información El modelo de aplicaciones J2EE se basa en una arquitectura Más detalles Desarrollo de Sistemas Software Basados en Servicios y Componentes
Desarrollo de Sistemas Software Basados en Servicios y Componentes Bloque Docente SERVICIOS WEB Parte 2 Portada Escuela Superior de Ingeniería (ESI) Universidad de Almería Índice Visualización WSDL (servicios Más detalles Java EE Enterprise Beans (EJB)
Java EE Enterprise Beans (EJB) Aplicaciones Web/Sistemas Web Juan Pavón Mestras Dep. Ingeniería del Software e Inteligencia Artificial Facultad de Informática Universidad Complutense Madrid Material bajo Más detalles Curso de Java EE Todos los Derechos Reservados Global Mentoring 2012 Experiencia y Conocimiento para tu Vida 1
Todos los Derechos Reservados Global Mentoring 2012 Experiencia y Conocimiento para tu Vida 1 Vivimos en un mundo globalizado, donde la eficiencia y productividad de las empresas es un factor crucial para Más detalles Universidad ORT - Arquitectura de Software. Requisitos
Requisitos Versión 1.5 (o superior) de la JDK de Java NetBeans 6.5 como IDE de desarrollo JBoss 4.2.x como Application Server Variable de entorno de Windows JAVA_HOME apuntando al directorio de instalación Más detalles Programación y Arquitectura
Programación y Arquitectura Proyecto Santos es una aplicación web que usa múltiples APIs i Java EE 7: La tecnología JavaServer Faces ii, incluyendo Ajax Contextos y la inyección de dependencias para la Más detalles Universidad Tecnológica Nacional FRC DIPLOMATURA SUPERIOR en Desarrollo bajo Plataforma Java EE
1. PROPUESTA CURRICULAR 1.a) OBJETIVOS Universidad Tecnológica Nacional FRC DIPLOMATURA SUPERIOR en Desarrollo bajo Plataforma Java EE El curso "Desarrollo bajo Plataforma Java EE" ofrece a los estudiantes Más detalles FSD Práctica Invocación Remota: JavaRMI. Estudio Previo. Información
FSD Práctica Invocación Remota: JavaRMI Tipo de entrega: por grupos de prácticas Fecha límite: sesión de laboratorio Lugar: Campus Digital Comentario: No hay que entregar el estudio previo Objetivo de Más detalles JAVA ENTERPRISE EDITION (J2EE) ARQUITECTURA TECNOLOGÍAS (1/2) (L1)
TECNOLOGÍAS (1/2) (L1) EJB ( Enterprise Java Beans ) JSP ( Java Server Pages ) JNDI ( Java Naming and Directory Interface ) JDBC ( Java Data Base Connectivity ) Java Mail JSF ( Java Server Faces ) TECNOLOGÍAS Más detalles Uso de HIBERNATE en una aplicación WEB DESARROLLO DE APLICACIONES PARA LA WEB II
INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE CÓMPUTO Uso de HIBERNATE en una aplicación WEB DESARROLLO DE APLICACIONES PARA LA WEB II BELEN HURTADO ORTIZ 2008630140 USANDO HIBERNATE EN UNA APLICACIÓN Más detalles Experto Universitario Java Enterprise Spring
Experto Universitario Java Enterprise Spring Sesión 1: Spring core Puntos a tratar Introducción. Spring vs. JavaEE estándar El contenedor de beans (Spring core) Trabajo con beans Definir beans Instanciar Más detalles Desarrollo de Software con
Desarrollo de Software con Antonio J. Vélez Q. Universidad del Valle Sede Palmira Contenido Definición de Enterprise Bean Cuando usar Enterprise Beans Tipos de Enterprise Beans Enterprise Bean Con componentes Más detalles JAVA RMI (REMOTE METHOD INVOCATION)
JAVA RMI (REMOTE METHOD INVOCATION) RMI RMI (Remote Method Invocation) Mecanismo RPC de Mecanismo mediante el cual los procesos cliente y servidor en una aplicación distribuida se comunican Una aplicación Más detalles Analista Programador Java: Business Apps Expert
Analista Programador Java: Business Apps Expert TITULACIÓN DE FORMACIÓN CONTINUA BONIFICADA EXPEDIDA POR EL INSTITUTO EUROPEO DE ESTUDIOS EMPRESARIALES Analista Programador Java: Business Apps Expert Duración: Más detalles Introducción a JAX-WS Web Services
Universidad Don Bosco CICLO: 01/2010 Materia: Programación Orientada a Objetos Contenido: Modificadores de Acceso y JDBC Protección de miembros de la clase ->El principio de ocultación de información se Más detalles Certificaciones: Diploma de Aprobación en Desarrollo Web con Java.
DIPLOMATURA EN DESAR ROLLO DE APLICACIONE S WEB CON JAVA PARTE I: OBJETIVOS ESPECÍFICOS La Diplomatura en Desarrollo de Aplicaciones Web con Java tiene los siguientes objetivos específicos: Adquirir habilidad Más detalles Desarrollo de Aplicaciones web con JPA, EJB, JSF y PrimeFaces
Desarrollo de Aplicaciones web con JPA, EJB, JSF y PrimeFaces Fernando Pech-May 1, Mario A. Gomez-Rodriguez 1, Luis A. de la Cruz-Diaz 1, Salvador U. Lara-Jeronimo 1 1 Instituto Tecnológico Superior de Más detalles Trabajo Final de Graduación para optar por el título. Bachiller en Ingeniería en Computación
Trabajo Final de Graduación para optar por el título Bachiller en Ingeniería en Computación Migración del Módulo de Inventario del Sistema Business Advance Víctor Guzmán Alfaro Carrera Ingeniería en Computación Más detalles Formatos para prácticas de laboratorio
Fecha de efectividad: CARRERA Ing. En Comp. y L.S.C. PLAN DE ESTUDIO CLAVE ASIGNATURA NOMBRE DE LA ASIGNATURA 2003-1 5038 Programación Orientada a Objetos II PRÁCTICA No. 6 LABORATORIO DE NOMBRE DE LA Más detalles Lo que necesitaremos para programar en Java, será un editor de texto o IDE y la JDK.
Introducción Java surgió en 1991 dentro de la empresa Sun Microsystems como un lenguaje de programación sencillo y universal destinado a electrodomésticos. La reducida potencia de cálculo y memoria de Más detalles Diplomado Java. Descripción. Objetivo. A quien está dirigido. Requisitos. Beneficios
Diplomado Java Descripción El lenguaje de programación Java es uno de los más utilizados hoy en día. Su potencia, simplicidad, funcionalidad y capacidad hacen que este lenguaje sea una de las herramientas Más detalles Arquitectura de aplicaciones
Arquitectura de aplicaciones Arquitectura en capas API API dic-08 alb@uniovi.es 2 Layers y Tiers Layer: capa arquitectónica de la aplicación software Presentación, lógica, persistencia Tier: capa física Más detalles Introducción a Javato
Introducción a Javato Fº. Javier Pereñiguez Steria Iberica 20/02/2008 Índice Introducción Arquitectura Ejemplo arquitectura Plataforma Desarrollo Ejemplo de entorno de desarrollo Vías futuras Casos de Más detalles JavaEE. www.javasoft.com
JavaEE Java Enterprise Edition www.javasoft.com Por qué Java en el servidor? Ventajas Independencia de la plataforma portabilidad Gran conjunto de APIs Reusabilidad y modularidad Seguro en la ejecución Más detalles 2.1 Compuertas para Bases de Datos
1 Colección de Tesis Digitales Universidad de las Américas Puebla Romero Martínez, Modesto Uno de los aspectos mas importantes en un sistema multibase de datos es la forma en como llevar a cabo la comunicación Más detalles 1. Definición. Open Source. Escalable. Alto desempeño. Arquitectura Modular. Producto de licencia de código abierto sin coste adicional.
1. Definición JBoss es un proyecto de código abierto, con el que se consigue un servidor de aplicaciones basado en J2EE, e implementado al 100% en Java. Por lo tanto al estar basado en Java, JBoss puede Más detalles SISTEMAS DISTRIBUIDOS DE REDES 3.- ESTANDAR CORBA. 3.1. Características
SISTEMAS DISTRIBUIDOS DE REDES 3.- ESTANDAR CORBA 3.1. Características La tendencia hacia el futuro es el de lograr la integración total de componentes realizados por terceras partes, para lo cual es necesario Más detalles 1. Posicionarse en la vista Services y seleccionar el ítem Servers. En el menú contextual del Mouse seleccionar la opción Add Server
Requisitos Versión 1.5 (o superior) de la JDK de Java NetBeans 6 como IDE de desarrollo JBoss 4.2.x como Application Server Variable de entorno de Windows JAVA_HOME apuntando al directorio de instalación Más detalles RMI [Remote Method Invocation]
RMI [Remote Method Invocation] Cuando utilizamos sockets, hemos de preocuparnos de cómo se transmiten físicamente los datos entre los extremos de una conexión (a nivel de bytes, ya que usamos los streams Más detalles Caso J2EE. Necesidades del negocio. Arquitectura Luther
Caso J2EE Grupo de Construcción de Software Facultad de Ingeniería Universidad de los Andes Necesidades del negocio Describa el objetivo funcional del sistema que desea Inmedius Enumere los RNF que debe Más detalles Patrones. (Conceptos Generales)
Patrones (Conceptos Generales) Agenda Motivación para los patrones Definiciones de patrones Tipos de patrones (Catálogos) De diseño (GoF) De arquitectura (POSA) De plataforma (J2EE) Ejemplo (Patrón DAO) Más detalles TIPOS DE PATRONES. PATRONES DE DISEÑO: Las soluciones probadas para el diseño de software. En estas nos vamos a centrar.
TIPOS DE PATRONES Hoy, podemos encontrar literalmente miles de patrones definidos. Resulta imposible para un programador conocerlos todos, ni mucho menos probarlos o valorarlos. Así que necesitamos una Más detalles Especialista TIC en Programación con JAVA 8 SE Standard Edition (Online)
Especialista TIC en Programación con JAVA 8 SE Standard Edition (Online) TITULACIÓN DE FORMACIÓN CONTINUA BONIFICADA EXPEDIDA POR EL INSTITUTO EUROPEO DE ESTUDIOS EMPRESARIALES Especialista TIC en Programación Más detalles 5.1 Introducción a las tecnologías de objetos distribuidos con Java RMI
5.1 Introducción a las tecnologías de objetos distribuidos con Java RMI Contenidos Tutorial de Java RMI Caso de estudio: diseño e implementación de la capa modelo de MiniBank con Java RMI Arquitectura Más detalles Diplomado Programming Java (JSE & JEE) with Oracle 10g
Diplomado Programming Java (JSE & JEE) with Oracle 10g Descripción: Nuestro diplomado ofrece un entrenamiento INTEGRAL y el más completo si estás interesado en realmente aprender Java y aplicarlo en tecnologías Más detalles %& %)& '$!%*+ $, %%%&$ %%
OBJETIVO!!"#$$ %& '(%"#% (% %& %)& '$!%*+ $, %%%&$ %% REQUERIMIENTOS SOFTWARE VERSIÓN LINK Java Development Kit (JDK) 6 http://java.sun.com NetBeans 6.1 http://www.netbeans.org MySQL 5.0 http://dev.mysql.com/ Más detalles 1. Aplicaciones del J2SE SDK1.4.2 de Sun.
Dept Informatica Índice 1 Aplicaciones del J2SE SDK142 de Sun 1 11 javac 1 12 java 1 13 javadoc 2 14 Las que no se explican 3 2 Guía de estilo de Java 3 21 Clases 3 211 Nombres para las clases 3 212 Estructura Más detalles DISEÑO DE UNA ARQUITECTURA CLIENTE/SERVIDOR MEDIANTE OBJETOS DISTRIBUIDOS EN JAVA
DISEÑO DE UNA ARQUITECTURA CLIENTE/SERVIDOR MEDIANTE OBJETOS DISTRIBUIDOS EN JAVA José Luis Pastrana Brincones (pastrana@lcc.uma.es) Dpto. Lenguajes y Ciencias de la Computación. Universidad de Málaga Más detalles II Curso Online JAVA-J2EE
II Curso Online JAVA-J2EE TEMA 6 Desarrollo de componentes EJB Autor: PCYTA / Centro de Excelencia de Software Libre de Castilla-La Mancha Versión: 1.0 Fecha: Revisado 26-03-2008 23:33 Licencia: CC-by-sa Más detalles Reutilización de software
Reutilización de software A nivel de clase: Clases y algoritmos JGL A nivel de diseño Patrones de diseño A nivel de arquitectura Arquitectura J2EE 1 Aplicaciones Web Servidor Introducción a la arquitectura Más detalles Java RMI Remote Method Invocation. Invocación Remota de Métodos en Java
Java RMI Remote Method Invocation Invocación Remota de Métodos en Java Contenido Introducción Implementación Diseño de la interfaz remota. Implementación de la interfaz remota. Obtención de las clases Más detalles Enunciado Práctica Java EE Iteración 1: aplicación web con JSF
Enunciado Práctica Java EE Iteración 1: aplicación web con JSF SCS, 2011/12 11 de octubre de 2011 Índice 1. Descripción del problema 1 2. Especificaciones 4 2.1. Capa de negocio: Entidades JPA.................................... Más detalles Tutorial rápido de ObjectDB
Tutorial rápido de ObjectDB M. en C. Sergio Luis Pérez Pérez UAM CUAJIMALPA, MÉXICO, D. F. Trimestre 12-O. Sergio Luis Pérez (UAM CUAJIMALPA) Curso de bases de datos avanzadas 1 / 23 Introducción a ObjectDB Más detalles Aplicaciones web construidas a base de componentes:
Java EE Aplicaciones Web/Sistemas Web Juan Pavón Mestras Dep. Ingeniería del Software e Inteligencia Artificial Facultad de Informática Universidad Complutense Madrid Material bajo licencia Creative Commons Más detalles UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS
UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS CICLO: 01/ 2015 Nombre de la Practica: Lugar de Ejecución: Tiempo Estimado: MATERIA: DOCENTES: GUIA DE LABORATORIO #12 USO DE JDBC Laboratorio de Más detalles Introducción. http://www.microsoft.com/spanish/msdn/comunidad/mtj.net/voices/art143.asp - Gráfica tomada del Artículo de José David Parra
Si en otros tiempos el factor decisivo de la producción era la tierra y luego lo fue el capital... hoy día el factor decisivo es cada vez más el hombre mismo, es decir, su conocimiento... Juan Pablo II Más detalles Analista Programador Java: Business Apps Expert
Analista Programador Java: Business Apps Expert Titulación certificada por EUROINNOVA BUSINESS SCHOOL Analista Programador Java: Business Apps Expert Analista Programador Java: Business Apps Expert Duración: Más detalles Centro de Capacitación en Tecnologías de la Información. Desarrollo de. diplomado
Centro de Capacitación en Tecnologías de la Información Desarrollo de Objetivo Dotar al alumno de la metodología y los fundamentos de la programación en Java usando la plataforma J2SE (Java 2 Standard Más detalles Java RMI. Sistemas Distribuidos Rodrigo Santamaría
+ Java RMI Sistemas Distribuidos Rodrigo Santamaría RMI Java RMI 2 + RMI 3 Remote Method Invocation: middleware para que un objeto que se ejecuta en una JVM use métodos de otro objeto que se ejecuta en Más detalles Patrones de Alto nivel: Patrones de Arquitectura Patrones de nivel medio: Patrones de Diseño Patrones de bajo nivel: Idioms
Patrones Patrones Es una solución reusable de problemas comunes. Los patrones solucionan problemas que existen en muchos niveles de abstracción. desde el análisis hasta el diseño y desde la arquitectura Más detalles CONTENIDO. Serialización. Carga dinamica de stubs RMI AVANZADO. Callbacks. Carga dinámica de Stubs
Máquina A Máquina B Máquina C Lo ideal sería tener un sistema distribuido orientado a objetos que permita: 1)Invocar un método de un objeto que se localiza en otra máquina exactamente de la misma manera Más detalles Abril 2002 Docentes: Hermann Steffen, Raúl Ruggia. Informe
Abril 2002 Docentes: Hermann Steffen, Raúl Ruggia. Informe Grupo 2 Claudia Murialdo Santiago Jaureche Ricardo Bagnasco Enrique Delfino Contenido Contenido... 1 Introducción... 3 Diseño y Arquitectura... Más detalles Arquitectura Cliente/Servidor. Invocación de Métodos Remotos RMI: Remote Method Invocation. Llamadas a Métodos Remotos
Invocación de Métodos Remotos RMI: Remote Method Invocation Prof Wílmer Pereira Universidad Simón Bolívar Arquitectura Cliente/Servidor Cliente Request Reply Servidor Cómo permitir comunicación entre objetos Más detalles Sistemas Distribuidos Java RMI (Remote Method Invocation) Alberto Lafuente Mikel Larrea Dpto. ATC, UPV/EHU
Sistemas Distribuidos Java RMI (Remote Method Invocation) Alberto Lafuente Mikel Larrea Dpto. ATC, UPV/EHU Contenido Interfaz Implementación Servidor Cliente Puesta en marcha de la aplicación: Compilador Más detalles Indizen Labs imade. Marco de Desarrollo Aplicaciones de Indizen
Indizen Labs imade Marco de Desarrollo Aplicaciones de Indizen Índice de contenidos Indizen Labs Introducción a imade Metodología imade Arquitectura imade Herramientas imade Indizen Labs Indizen Labs Son Más detalles Programación en Java. Programación en OO
Programación en OO Lección 4:Programación en OO 1. Herencia 2. Modificadores de Acceso 3. Interfaces Herencia Es la acción en la que una clase obtiene los métodos y propiedades definidos en otra clase, Más detalles Desarrollo de una tienda virtual en una arquitectura distribuída
Desarrollo de una tienda virtual en una arquitectura distribuída ETIS Josep Maria Camps Riba 18/6/2004 2 Dedicatoria y agradecimientos Es bien sabido que el estudio de una nueva tecnología conlleva éxitos Más detalles ACTA DE CONSEJO DE FACULTAD/DEPTO./CENTRO:
Página 1 de 5 EPROGRAMA: INGENIERÍA DE TELECOMUNICACIONES PLAN DE ESTUDIOS: 3 ACTA DE CONSEJO DE FACULTAD/DEPTO./CENTRO: 68 1. DATOS GENERALES ASIGNATURA/MÓDULO/SEMINARIO: PROGRAMACIÓN AVANZADA COMPONENTE: Más detalles Conceptos de Orquestador O2 EMPRESAS TUXPAN www.tuxpan.com
EMPRESAS TUXPAN www.tuxpan.com AÑO 2007 INDICE DE CONTENIDO 1 Software de Servicios y Orquestación de Procesos 2 1.1.1 Introducción 2 1.1.2 Software de Orquestación como Integrador 3 1.1.3 Automatización Más detalles Tema 1: Introducción a las Tecnologías Java
Tema 1: Introducción a las Tecnologías Java Índice Características de las aplicaciones empresariales Tecnologías Java Alternativas a las tecnologías Java XML Material de clase Características de las aplicaciones Más detalles Instituto Tecnológico de Costa Rica Escuela de Ingeniería en Computación
Instituto Tecnológico de Costa Rica Escuela de Ingeniería en Computación Implementación del sistema para control de vacaciones de la empresa GBSYS Práctica de especialidad para optar por el título de Ingeniero Más detalles Práctica 2: Java Remote Method Invocation (RMI)
Práctica 2: Java Remote Method Invocation (RMI) Aplicaciones Telemáticas II Introducción El objetivo de esta práctica es conocer un poco más sobre el paradigma de objetos remotos. La idea principal es Más detalles Remote Method Invocation (RMI)
Que deseamos hacer con objetos remotos Remote Method Invocation (RMI) Basado en: Fundamentals of RMI. Short Course. JGuru. Cliente Result = Obj.method1(val1) Servidor Def Obj { int method1(int v) { string Más detalles Sistema para el alquiler, control de películas y clientes en una videotienda
CASO DE PRUEBA: Sistema para el alquiler, control de películas y clientes en una videotienda Documento de arquitectura Y servicios Versión Historia de Revisión Fecha Versión Descripción Responsable Más detalles Servlets. Unidad: 4 Laboratorio de Programación. Universidad Nacional de la Patagonia Austral Unidad Académica Río Gallegos
Servlets Unidad: 4 Laboratorio de Programación Universidad Nacional de la Patagonia Austral Unidad Académica Río Gallegos Indice Introducción CGI Servlets: concepto, caracteristicas Servlets Vs. CGI Ciclo Más detalles Desarrollo de Grandes Aplicaciones de Gestión de Red: Decisiones generales de diseño
Desarrollo de Grandes Aplicaciones de Gestión de Red: Decisiones generales de diseño Antonio Hernández Sáez 1 y Virgilio Gilart Iglesias 2 1 Escuela Politécnica Superior, Universidad de Alicante 036 90, Más detalles ATLAS MANUAL DE USUARIO SERVICIO DE TRAZAS
ATLAS MANUAL DE USUARIO SERVICIO DE TRAZAS Versión 1.4 Área de Aplicaciones Especiales y Arquitectura de Software Hoja de Control Título Documento de Referencia Responsable Manual de Usuario NORMATIVA Más detalles Requisitos. Universidad ORT Arquitectura de Software
Requisitos Java Development Kit (JDK) 1.5 o superior NetBeans IDE 6.5 o superior JBoss Application Server 4.2.x o 5.x.x Variable de entorno JAVA_HOME apuntando al directorio de instalación de la JDK 1 Más detalles Primera Escuela de la Red Temática SVO. Madrid, 27-28 Noviembre, 2006 JAVA BÁSICO. Raúl Gutiérrez Sánchez LAEFF - INTA raul@laeff.inta.
Primera Escuela de la Red Temática SVO. Madrid, 27-28 Noviembre, 2006 JAVA BÁSICO LAEFF - INTA raul@laeff.inta.es Qué es Java? Java es un lenguaje de programación orientado a objetos desarrollado por Sun Más detalles Introducción al Desarrollo de Aplicaciones Empresariales
Introducción al Desarrollo de Aplicaciones Empresariales Definición Java 2 Enterprise Edition: plataforma de desarrollo de aplicaciones para empresas, basado en EJBs. EJB (Enterprise Java Beans): especificación Más detalles http://www.cem.itesm.mx/extension/ms
Diplomado Programación orientada a objetos con Java y UML Las empresas necesitan contar con sistemas de información modernos, ágiles y de calidad para alcanzar sus objetivos y ser cada vez más competitivos Más detalles CentralTECH JAVA EE 7 Desarrollo
CT-2776: de Aplicaciones Sobre este curso El curso está dirigido a profesionales y estudiantes IT que deseen adquirir los conceptos y tecnologías necesarias para implementar aplicaciones Web empresariales Más detalles 2017 © DocPlayer.es Política de privacidad | Condiciones del servicio | Feedback

References: resolución 
 Resolución 
 Resolución 
 Resolución 
 Resolución 
 Resolución 
 Resolución