10. Taller de Formación Java empresarial. Ing. Laura González Ing. Guillermo Roldós Ing. Juan Herman

Tamaño: px
Comenzar la demostración a partir de la página:

Download "10. Taller de Formación Java empresarial. Ing. Laura González Ing. Guillermo Roldós Ing. Juan Herman"

Transcripción

1 10. Taller de Formación Java empresarial Ing. Laura González Ing. Guillermo Roldós Ing. Juan Herman

2

3 Instalación de Entorno de Trabajo Qué herramientas tenemos que instalar? Las herramientas que vamos a usar para el desarrollo de aplicaciones bajo la plataforma JEE durante el curso son las siguientes: Java Developmet Kit (JDK): Conjunto de herramientas para el desarrollo de aplicaciones JAVA. PostgreSQL: Sistema de Gestión de Base de Datos (del inglés DBMS - DataBase Managment System). JBoss Application Server (JBoss AS): Servidor de Aplicaciones JEE. Eclipse: Entorno de Desarrollo Integrado (del ingés IDE Integrated Development Environment). JBoss Tools: jbosstools ga.aggregate-update _ h329.zip/download?use_ mirror=ufpr Qué pasos debemos seguir? 1. Para empezar, debemos copiar la carpeta Herramientas, que se encuentra en el DVD entregado para el desarrollo del curso, en algún directorio local al cual llamaremos en adelante %TF_JEE%. 2. Instalamos la JDK: %TF_JEE%\Herramientas\1.Java\jdk-6u25-windows-i586.exe siguiendo los pasos del wizard de instalación. 631

4 3. Instalamos PostgreSQL: %TF_JEE%\Herramientas\2.PostgreSQL\postgresql windows.exe siguiendo los pasos del wizard de instalación. 4. Instalación de JBoss AS: Lo único que debemos hacer es descomprimir el archivo %TF_JEE%\Herramientas\3.JBoss\jboss-as-distribution Final.zip. 5. Instalación de Eclipse: Al igual que con JBoss solo debemos descomprimir el archivo entregado %TF_JEE%\Herramientas\4.Eclipse\eclipse.zip. La versión de eclipse entregada corresponde a la versión Helios-SR2 con los siguiente plugins de JBossTools ya instalados: a. Hibernate Tools b. JBoss Tools RichFaces c. JBoss WebServices Tools d. JBossAS Tools Opcionalmente, se entrega el instalador de Firefox 5, ya que es perfectamente compatible con las herramientas que utilizaremos para el desarrollo WEB. El instalador se encuentra en %TF_JEE%\Herramientas\5.Extras\Firefox Setup exe Cómo integramos Eclipse con JBoss? El plugin JBossAS Tools (ya instalado en la versión entregada) nos brinda la posibilidad de manejar la configuración del JBoss desde el propio IDE, además de la posibilidad de iniciarlo (en modo normal o debug), reiniciarlo, detenerlo y republicar los proyectos sin necesidad de copiar carpetas, archivos o utilizar comandos por consola. Veamos paso a paso como realizar dicha integración: 1. Sobre la vista Servers damos click derecho -> New - > Server. 632

5 2. Elegimos JBoss AS Seleccionamos como Home Directory la ruta donde descomprimimos JBoss \ jboss Final. Configuración default y presionamos Finish. 4. El paso 3 agregará un nuevo ítem en la vista de Servers, si damos doble click sobre él podemos ver la siguiente pantalla de configuración. 633

6 Vemos, además, que se activan los siguientes botones: 634

7 1 Introducción Taller de Formación Java EE Tema: Introducción a componentes de negocio (EJB) 1 era Parte Cuando se va a desarrollar un Sistema de Información de cierto tamaño (o que se espera que pueda crecer en el futuro), es necesario tener en cuenta varios aspectos para su diseño como, por ejemplo, el manejo de la seguridad, acceso a Bases de Datos y gestión de transacciones, escalabilidad, posibilidad de distribuir la instalación en múltiples servidores, etc. Las especificaciones JEE [1] resuelven esta problemática a través de la creación de componentes de negocio llamados EJB, que simplifican muchísimo el desarrollo. La idea está basada en el uso de un contenedor de EJB (o EJB Container) que se encarga de gran parte de las tareas mencionadas antes, dejando al desarrollador la implementación de la lógica de negocio particular de cada servicio. De esta forma, se cumple con el principio de que cada componente de software resuelve la parte de la que es responsable en un sistema débilmente acoplado. 1.1 Qué son y para qué sirven los EJB Los EJB (por las siglas en inglés de Enterprise Java Beans, o Componentes de Negocio Java), también llamados Enterprise Beans, son componentes de software escritos en Java que encapsulan las complejidades relacionadas con todos los servicios de base necesarios para una aplicación de mediano o gran porte, permitiendo que el desarrollador se concentre en 635

8 implementar lo realmente importante. Estos componentes no son capaces de ejecutarse por sí solos, sino que necesitan de un servidor que los contenga y les brinde todos los servicios necesarios (el Contenedor). En una arquitectura en capas tradicional, los EJB se encuentran en la capa lógica y, eventualmente, en la capa de persistencia, como puede verse en la Figura Cómo funcionan los EJB Cuando se desarrolla un componente EJB, lo que se escribe realmente es una clase POJO junto con determinados annotations 1 que indican las características y propiedades de dicho componente. Estas propiedades son leídas e interpretadas por el Container y permiten a éste decidir cómo controlar cada instancia del EJB y su ciclo de vida. En un contenedor pueden existir diferentes EJBs, los que pueden formar parte de la misma aplicación o de más de una. Existen diferentes tipos de EJB, los que serán vistos más adelante, cada uno de los cuales tiene un fin específico y es manejado por el contenedor de forma diferente. Es el contenedor 636 el que crea y destruye las instancias de los EJB de acuerdo a sus necesidades, así como gestiona el ciclo de vida de cada instancia. Esto no es controlable por el desarrollador. Cuando un cliente (sea éste una aplicación Java o una página JSP o JSF) desea ejecutar un servicio provisto por un EJB, debe primero solicitar una instancia del mismo y toda la interacción es a través del Container, como se observa en la Figura 2. 2 Contenedor de EJB Como ya se mencionó antes, un Contenedor de EJB es una aplicación que cumple con una serie de especificaciones para ejecutar componentes EJB. Las especificaciones JEE son provistas por Sun (ahora Oracle) y pueden ser implementadas por más de un proveedor, cada uno de los cuales implementa su propia versión de las mismas. Existen servidores gratuitos o pagos, cada uno puede brindar mayor o menor funcionalidad pero todos deben cumplir con las especificaciones oficiales. En la Figura 3 se observa un diagrama que muestra cómo los EJB son ejecutados dentro de un EJB Container, y éste es parte de un Application Server. Una de las ventajas de esto es que los EJB son multiplataforma, es decir, que son desarrollados una vez y no es necesario modificarlos si se cambia de proveedor del Container. 1 Las annotations sirven para expresar metadata acerca de una clase, método o atributo de forma integrada con el código de la misma.

9 Algunos de los contenedores de EJB comúnmente usados son: JBoss AS [2] es un servidor de aplicaciones completo donde no solo se ejecutan EJBs sino también aplicaciones Web, portales, etc. Es muy utilizado debido a que es un producto open-source de excelente calidad, robusto y con muchos años en el mercado. GlassFish [3] fue desarrollado por Sun como un producto open-source, si bien es más reciente que JBoss está muy extendido actualmente. A partir de la adquisición por parte de Oracle, Sun forma parte del paquete Middleware de Oracle. WebLogic Server [4] fue desarrollado por BEA Systems y adquirido recientemente por Oracle, es un producto comercial muy robusto. WebSphere [5], producto comercial desarrollado por IBM, se integra fácilmente con otros productos de la compañía. Las responsabilidades principales de un Contenedor son las siguientes: Manejo del ciclo de vida de las instancias de EJB. Pool de instancias de cada EJB, donde debe equilibrar la cantidad de instancias necesarias para responder rápidamente sin consumir recursos excesivamente. Gestión de transacciones para que sea transparente para el desarrollador, éste solamente debe declarar unas directivas. Seguridad a nivel de usuarios y roles. Inyección de dependencias, lo que permite la invocación remota de otros EJB sin que el desarrollador deba especificar su ubicación. Soporte para Web Services, que brindan la posibilidad de interactuar con servicios alojados en otras plataformas o tecnologías. Timer para ejecutar eventos cada determinada cantidad de tiempo. 3 Tipos de EJB Existen dos tipos principales de EJB, los que se verán en este capítulo. Este tipo debe especificarse como una anotación en la clase Java que lo implementa. 3.1 Session Beans Son componentes que contienen lógica de negocios, pueden verse como servicios expuestos para ser consumidos por los clientes, tanto local como remotamente (luego se verá con mayor profundidad este concepto). Cuando un cliente desea ejecutar una operación de un determinado EJB el servidor (Container) le provee una instancia del mismo para que ejecute el método deseado sobre ella. 637

10 Existen, a su vez, tres tipos de Session Beans, determinados por cómo son manejadas las instancias con respecto a los clientes que consumen sus servicios Stateless Session Beans Estos EJB no mantienen información acerca de los clientes que atienden, incluso es posible que un mismo cliente sea atendido por diferentes instancias del mismo EJB. Cuando un cliente desea ejecutar una operación pide una instancia al Container, éste toma una instancia de dicho EJB de un pool de instancias disponibles, ejecuta el método solicitado y devuelve la instancia al pool sin que quede registrada ninguna información de la operación que realizó. Esto se observa más claramente en la Figura 4 (más adelante se explicará el concepto de Proxy que aparece en la figura). Son los más utilizados, su principal ventaja es que consumen pocos recursos ya que las instancias son reaprovechadas y un mismo servidor puede atender a mayor cantidad de clientes. Esto brinda mayor escalabilidad a la aplicación. Para crear un EJB de este tipo debemos agregar la como se ve en el ejemplo de la Figura 5. A esta manera de especificar las dependencias declarativamente se le llama dependency injection, ya que el Container inyecta las definiciones necesarias Stateful Session Beans 638 A diferencia de los anteriores, en este caso, cada instancia de un EJB atiende a un único cliente, por lo que puede guardar información acerca de su estado. Este tipo de componentes son utilizados en casos en que se necesite mantener una relación conversacional entre el cliente y el servidor. El ejemplo más común es el carrito de compras, en el que el servidor debe conocer los ítems que el cliente ha ido comprando. En la Figura 6 se muestra este concepto.

11 Claramente estos EJB consumen mayor cantidad de recursos que los anteriores, ya que por cada cliente es necesario contar con una instancia del EJB con lo cual, a mayor cantidad de clientes crecerán los requerimientos para el servidor. Esto resta escalabilidad a la aplicación. Del mismo modo que en el caso anterior, para crear un EJB de este tipo es necesario especificar la Singleton Session Beans En este caso, una única instancia del EJB es creada para toda la aplicación, por lo que todos los clientes compartirán dicha instancia y ésta mantiene el estado entre una invocación de un cliente y otra. En los casos anteriores (Stateless y Stateful), el container asegura que ninguna instancia estará sirviendo a más de un cliente en un momento dado. Sin embargo, en este caso sí puede darse esa situación y la misma instancia puede estar siendo accedida por más de un cliente al mismo tiempo. Por lo tanto, es necesario tener esto en cuenta y sincronizar las partes del código que no puedan ejecutarse concurrentemente. 3.2 Message Driven Beans Este tipo de EJB (también llamados MDB) no son invocados directamente por clientes, sino que los mismos envían mensajes asincrónicamente a un sistema de mensajería JMS (Java Message Service) para que sean tomados de allí y procesados por estos EJB. Esto se observa mejor en la Figura

12 Hasta la versión 2.0 la especificación JEE soportaba solamente JMS, 2 pero a partir de la versión 2.1 se extendió a cualquier sistema que soporte JCA 3 (Java Connector Architecture). 4 Ejemplo de EJB A efectos de clarificar los conceptos vertidos en este documento se muestra la implementación de un servicio ofrecido por un EJB, incluyendo el acceso a los datos. Se describe un servicio para ingresar libros a una Base de Datos para lo cual existen dos EJB de tipo 640 Stateless: Uno que ofrece servicios de alto nivel será el que el cliente invoque para realizar la operación, cuyo código se observa en la Figura 8. Otro que brinda servicios de persistencia, que será usado por el anterior para acceder a los datos. El código es el que se muestra en la Figura 9. De esta forma, se logra encapsular la responsabilidad de cada componente, lo que favorece la extensibilidad de la aplicación. Como se puede ver en este ejemplo, el primer servicio actúa como cliente del segundo. Lo primero que hay que notar es que nunca se crea una instancia de LibroDAO, sino que directamente se usa, eso es porque el Container se encarga de inyectar las dependencias necesarias. En cuanto a LibroDAO, se declara el contexto de persistencia a través de una referencia a librounit (también se usa dependency injection aquí). Este contexto indica información acerca de la Base de Datos (su ubicación, usuario y contraseña, etc.) y debe estar declarado en forma externa a la aplicación. Puede ser declarado en un archivo llamado persistence.xml 2 JMS es un servicio brindado por Java para aplicaciones basadas en mensajes, es decir, que la comunicación entre cliente y servidor es asincrónica a través de colas de mensajería. 3 JCA es un concepto más amplio que JMS y refiere a todo lo relativo a conectividad entre servidores o entre cliente y servidor.

13 o a través de un DataSource (es decir, una definición de fuente de datos que se realiza directamente en el Servidor de Aplicaciones). 5 Bibliografía Java Community Process, Java EE 6 Specification JBoss Application Server GlassFish Server Oracle WebLogic Server IBM WebSphere 641

14 Taller de formación Java EE Tema: Introducción a componentes de negocio (EJB) 2 da Parte 1 Introducción Como se vio en la primera parte de este curso introductorio, los EJB son componentes de software que ofrecen servicios a nivel de lógica de negocios y persistencia. Éstos no tienen entidad por sí mismos sino que deben ejecutarse en un Container, que es quien provee todos los servicios de base que el EJB necesita. Como se mostró, es posible a través de esta tecnología la implementación de sistemas de mediano y gran porte sin tener que implementar todas las complejidades que esto implica, como control de concurrencia, transaccionalidad, seguridad, etc. En esta segunda parte se profundizará en los distintos tipos de interfaces que ofrecen los EJB, así como en dos conceptos importantes a la hora de implementar una solución basada en JEE: manejo de transacciones y seguridad Cómo exponer un EJB Una vez desarrollado el componente EJB, se debe decidir cómo será expuesto, es decir, cómo es ofrecido este servicio para ser consumido por los clientes. Para esto existen tres opciones, las que se desarrollarán en este capítulo, que básicamente determinan la visibilidad que se le desea dar al servicio. 2.1 Interfaz Remota Una interfaz remota podrá ser accedida por cualquier cliente, tanto sea otro EJB que esté corriendo dentro del mismo Container como una aplicación externa, incluso el cliente puede estar ubicado en otra máquina física. Ya que una interfaz de este tipo puede ser accedida tanto remota como localmente, es común que las interfaces se definan como remotas en general. Además, si bien esto puede agregar un overhead del lado del Container, a futuro puede otorgar más flexibilidad a la aplicación. Téngase en cuenta que, aunque un sistema puede pensarse que va a ejecutar siempre en un único Container, es probable que en el futuro se decida (por razones de escalabilidad) distribuir en más de un servidor.

15 Si el cliente que consume un EJB remoto está ejecutando dentro del Container puede referenciarlo usando injection pero, si es una aplicación externa, debe buscar y obtener una referencia al servicio usando JNDI (Java Naming and Directory Interface). Para declarar una interfaz remota se anota como se observa en la Figura 1, y en la Figura 2 puede observarse el código de un cliente externo para ejecutar un EJB. 2.2 Interfaz Local Una interfaz de este tipo será accedida solamente por clientes que ejecuten dentro del mismo Container, es decir, que el servicio no es expuesto para ser consumido públicamente sino solamente por otros componentes conocidos o controlados. Si bien un cliente local es más eficiente que uno remoto, en general se considera que las interfaces locales generan un mayor acoplamiento en la aplicación ya que no permiten que la misma se distribuya en más de un servidor. Para declarar una interfaz local se usa la como se observa en la Figura Sin interfaz Existe la posibilidad de que un EJB no implemente ninguna interfaz, ni local ni remota. En este caso se declara implícitamente una interfaz local con todos los métodos públicos. 2.4 Referencias a objetos remotos Como se observa en la Figura 4, cuando un cliente remoto interactúa con un EJB lo hace en realidad a través de una interfaz remota y usando los servicios provistos por el Container. Pero, qué sucede con los objetos que se pasan como parámetros o con el valor que puede retornar un método del EJB? Como se recordará, en Java cuando un método retorna un objeto está devolviendo, en realidad, una referencia a un objeto que se encuentra en el Heap. 1 Cómo se supone que el cliente remoto pueda acceder a un objeto si no tiene acceso al Heap en el que se encuentra dicho objeto? Nuevamente el Container se encarga de esto, para que lo que se devuelva al cliente no sea una referencia al heap local sino un proxy al objeto original, llamado stub. Este proxy actúa como si fuera el objeto original, pero cada vez que se le solicita algo envía la solicitud al objeto remoto original El Heap es un espacio de memoria utilizado por la JVM para almacenar objetos.

16 Para que todo esto funcione correctamente, tanto los parámetros como los valores devueltos por los métodos de las interfaces remotas deben ser serializables. 2 Esto es debido a que en cada invocación los objetos deben ser serializados para ser enviados remotamente. 3 Persistencia En la gran mayoría de los sistemas de información la persistencia es uno de los aspectos más importantes y donde hay que prestar más atención durante el desarrollo. En JEE existen dos conceptos básicos que simplifican mucho la gestión de la persistencia, los que se describen a continuación. 3.1 Transacciones El control de transacciones es un servicio importante brindado por el Container, ya que a través de una simple anotación éste se encarga de inyectar todo el código necesario para el manejo de transacciones, tanto desde el inicio de las mismas hasta el commit o rollback en caso de producirse excepciones. Como se sabe, una transacción es una unidad de trabajo formada por uno o más accesos a los datos. Esta unidad de trabajo debe ejecutarse exitosamente en su totalidad o no se ejecuta, no se permite que se ejecute parcialmente ya que esto generaría inconsistencias en la base de datos. En JEE las transacciones se definen a nivel de métodos de negocio, ya que son éstos los que corresponden al concepto de unidad de trabajo, aunque se puede definir también a nivel de EJB haciendo que todos sus métodos posean el mismo atributo. Para indicar al Container cómo debe manejar el inicio y fin de las transacciones se utiliza la que puede tener uno de los valores indicados a continuación Required Si al invocar al método ya existe una transacción abierta se usa ésta (caso -a- en la Figura 5), en caso contrario se crea una nueva (la cual es cerrada una vez finalizada la ejecución del método, caso -b-) Un objeto es serializable cuando es posible convertirlo a bytes para ser enviado a través de la red.

17 Este es el valor por defecto que toma el en caso de no definirse ningún valor Requires_New Si al invocar el método ya existe una transacción abierta ésta queda en suspenso y crea una nueva. El método invocado utiliza esta nueva transacción y, al finalizar, vuelve a retomarse la anterior Mandatory Indica que el método necesita una transacción abierta por el llamante. En caso de que no haya una transacción abierta arroja una excepción Supports En caso de que exista una transacción abierta se utiliza y, en caso contrario, ninguna transacción es creada Not_Supported 645 En caso de que exista una transacción abierta ésta se suspende mientras se invoca a este método y, una vez finalizado, se retoma dicha transacción. Si no existe una transacción no es creada ninguna tampoco.

18 3.1.6 Never Si no existe una transacción no se crea tampoco una. Si ya existe una transacción abierta se arroja una excepción. En el cuadro de la Figura 11 se resumen las posibles situaciones según el definido para el método invocado Entidades persistentes Las bases de datos relacionales no están orientadas a objetos sino a tablas relacionadas a través de dependencias funcionales, por lo que debe realizarse un mapeo entre las entidades que forman una aplicación (el modelo de dominio), y las tablas que van a persistir sus atributos. Este mapeo se especifica a través de las anotaciones que definen la Java Persistence API (JPA), la cual será estudiada en profundidad en otro documento. 4 Seguridad La seguridad en JEE es manejada tanto declarativamente como programáticamente en los casos que no es suficiente con la primera. Está basada en roles, es decir, que los usuarios pueden pertenecer a uno o más roles y sobre éstos se realizan los controles de acceso a los métodos de los EJB. Existen tres conceptos importantes para determinar si un acceso está permitido para ejecutar determinada operación: Autorización: permite o deniega la ejecución de determinada operación o método de un EJB. Está basada en la identificación y en la autenticación. Identificación: permite reconocer el usuario que está intentando ejecutar el método.

19 Autenticación: es el proceso de validación o verificación de que el usuario es realmente quien dice ser. En general, en una aplicación JEE el procedimiento de autenticación implica los siguientes pasos: Se le pide al usuario que ingrese su id y contraseña a través de una página web o de una aplicación de otro tipo. Estas credenciales son validadas contra un proveedor JAAS (Java Authentication and Authorization Service). Si la autenticación es válida, el cliente recibe un objeto llamado token (o principals), el cual será usado en forma transparente en cada invocación a métodos de EJB para indicarle al Container quién es el usuario que está realizando la operación y que el mismo está autorizado. En base a dicho token el Container también obtendrá el o los roles a los que pertenece el usuario y, en base a eso, determinará si puede o no ejecutar los métodos invocados. Como se puede ver, la validación de usuario y contraseña se realiza a nivel de la capa Web, y el EJB recibe ya un objeto que indica que el usuario es válido (aunque todavía no ha decidido si dicho usuario puede invocar al método solicitado). 4.1 Seguridad declarativa Como se mencionó, la especificación de los permisos para ejecutar los métodos de los EJB se realizan a nivel de roles autorizados para eso. Esto se hace a través de la la cual se puede utilizar tanto en métodos como en toda la clase (en este caso indica que los roles especificados pueden acceder a todos sus métodos). En la Figura 12 puede verse un ejemplo de un EJB en el que se especifica esta restricción. Además de las anotaciones mencionadas, es posible para indicar que un método es accesible a todos los roles para indicar que un método no es accesible a ningún rol. 647

20 4.2 Seguridad programática En algunas ocasiones no son suficientes las anotaciones mencionadas para permitir o denegar el acceso a un método. En estos casos es necesario utilizar programación para obtener más información. Si bien el uso de esta metodología excede el alcance de este documento en la Figura 13 se observa un ejemplo de uso del API de seguridad de JEE a efectos ilustrativos. 648

21 Introducción a Java Server Faces (JSF) 1 era Parte 1 Introducción 1.1 Aplicaciones Web Una aplicación Web es una aplicación que es capaz de interactuar con un cliente que se ejecuta en un navegador de Internet (como Firefox, Chrome o Internet Explorer). Estas aplicaciones generan contenido HTML dinámicamente a través de la invocación por parte de los clientes de pedidos HTTP (HTTP Request), los que son atendidos por un Web Container (como Tomcat) que es el entorno de ejecución de las aplicaciones Web. En la Figura 1 se observa más claramente el funcionamiento de una aplicación Web tradicional. Los servlets son simples clases Java capaces de atender pedidos HTTP y retornar una respuesta. Muchas veces, parte del contenido de una aplicación Web es estático (como por ej. imágenes), estos archivos son retornados directamente por el Container sin intervención de ningún servlet. 1.2 Java Server Faces Descripción Java Server Faces (o JSF, [1]) es un framework provisto por la plataforma Java EE para desarrollar aplicaciones Web y está compuesto por dos grandes módulos: Librerías de tags para agregar componentes a páginas Web. Una API para manejar el estado de los componentes, escuchar eventos, realizar validaciones, etc., a través de los llamados managed beans (también llamados backing beans). 649

22 Una aplicación JSF está, entonces, compuesta por los siguientes elementos: Una o más páginas HTML, utilizadas generalmente como contenedores de las páginas JSF. Un conjunto de páginas JSF, que son las que contienen los tags. Un conjunto de managed beans, componentes del lado del servidor que mantienen el estado de los componentes representados en las páginas, entre otras tareas. Un archivo descriptor de la aplicación (llamado web.xml). Archivos de recursos, como imágenes, javascripts, css, etc. Opcionalmente, es posible incluir un archivo llamado faces-config.xml, donde se especifican componentes personalizados de validación, conversiones, etc Facelets Es un lenguaje [2] expresado como un conjunto de tags que permite construir páginas a través de la composición de otras páginas, formando árboles jerárquicos donde las páginas se anidan unas dentro de otras. Es común utilizar tags facelets para organizar las páginas JSF, de forma de simplificar el desarrollo y facilitar la reutilización de componentes. Por ejemplo, es posible definir una plantilla formada por un cabezal, un cuerpo y un pie, haciendo que el cabezal y pie se mantengan a lo largo de la aplicación y cambiando solamente el cuerpo de la misma Ejemplo A efectos de clarificar los conceptos antes de continuar profundizando aspectos teóricos, en la Figura 2 se muestra parte de una página JSF, mientras que en la Figura 3 se observa parte del código del managed bean correspondiente. 650

23 2 Patrón Model-View-Controller (MVC) 2.1 MVC Model-View-Controller (o MVC, [3]) es un patrón de diseño de aplicaciones que permite la separación (desacoplamiento) entre los componentes de la misma de acuerdo a sus responsabilidades: Model: contiene los datos o interactúa directamente con el componente encargado de obtenerlos. View: muestra los datos al usuario de una aplicación y permite su interacción. Un modelo puede tener asociadas más de una vista, dependiendo de cómo se quieran mostrar los datos en cada caso. Controller: es el que recibe los pedidos del usuario, invoca a las operaciones del modelo necesarias y retorna una nueva vista. De esta forma, se simplifica el desarrollo y mantenimiento de la aplicación, ya que cada componente tiene claramente delimitado su campo de acción. En la Figura 4 se muestra un diagrama de este patrón de diseño. 2.2 MVC aplicado a JSF Java Server Faces fue diseñado de acuerdo al patrón MVC, por lo que respeta claramente la separación entre modelo, vista y controlador, como se observa en la Figura 5. Cuando un usuario solicita una página JSF, este pedido es capturado por el FacesServlet (Controller), 651

24 obtiene la información necesaria de los Managed Beans (Model) y arma la respuesta en base a la página JSF (View) que corresponda. FacesServlet es el servlet provisto por el framework de JSF para atender todas las solicitudes de los clientes. Es esta clase la que se encarga de iniciar el ciclo de vida de cada solicitud. El concepto de ciclo de vida se estudia con más detalle en el capítulo siguiente. 3 Ciclo de vida Es importante comprender el ciclo de vida de un request a una aplicación JSF para poder entender mejor la forma en que se vinculan los elementos de la aplicación. A través del ciclo que se explicará en esta sección, se ejecutan todas las tareas que, de otra forma, debería escribir el desarrollador como ser validaciones, actualización del modelo de datos, etc. De todas formas, es posible intervenir o modificar cada uno de los pasos del ciclo de vida, si es necesario modificar el comportamiento para adaptarlo a alguna necesidad específica. En la Figura 6 se observa el diagrama de los eventos que ocurren en cada invocación a una página JSF, los que se describirán brevemente en esta sección. En [4] puede ver una descripción más detallada de lo que ocurre en las fases de conversión y validación Restore View (recuperar vista) Se crea una estructura (llamada component tree) conteniendo todos los elementos de la vista y se guarda en un objeto llamado FacesContext, el cual está disponible durante todo el ciclo de vida. 2. Apply Request Values (aplicar valores de la petición) Para cada elemento del component tree se obtiene su estado (o sea, su valor en el formulario enviado) y se guarda en el FacesContext. Si ocurren errores durante la conversión de datos (por ejemplo, se ingresaron valores alfanuméricos en un campo numérico), se generan errores y se salta directamente al paso 6 para generar la respuesta. 3. Process Validations (procesar validaciones) Se realizan todas las validaciones especificadas en los componentes contra los valores obtenidos en la fase anterior. Si hay componentes que no pasan la validación se generan errores y se salta directamente al paso 6 para generar la respuesta. Las condiciones de validación son expresadas en los componentes en forma declarativa, como se observa en la Figura 7.

Tema 5. Plataforma Java EE

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

Tema 5. Plataforma Java EE

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

Curso de Java EE Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 1

Curso de Java EE Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 1 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 ENTERPRISE EDITION (J2EE) ARQUITECTURA TECNOLOGÍAS (1/2) (L1)

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

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. 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

Curso de Java EE Todos los Derechos Reservados Global Mentoring 2012 Experiencia y Conocimiento para tu Vida 1

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

Aplicaciones web construidas a base de componentes:

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

Curso de JavaServer Faces

Curso de JavaServer Faces 1 Una JavaBean es una clase Java que sigue las siguientes convenciones: Constructor vacío Atributos de clase privados Por cada atributo, se crean los métodos getters y setters El Objetivo de los Managed

Más detalles

Desarrollo de Aplicaciones web con JPA, EJB, JSF y PrimeFaces

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

Facultad de Sistemas e Informática

Facultad de Sistemas e Informática Escuela Politécnica del Ejército Sede Latacunga Facultad de Sistemas e Informática Galarza Maira Tapia Cevallos Paulina DESARROLLO DE APLICACIONES DISTRIBUIDAS UTILIZANDO PATRONES DE DISEÑO MODELO/VISTA

Más detalles

JAVA EE 5. Arquitectura, conceptos y ejemplos.

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

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 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

Java 7.0 Advanced Application Developer

Java 7.0 Advanced Application Developer DESCRIPCIÓN La arquitectura de software es un conjunto de elementos y estructuras interrelacionados entre sí que componen a un sistema informático: define qué elementos tiene una aplicación, cómo se relacionan

Más detalles

Programación y Arquitectura

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

Tema 3. Plataforma Java EE

Tema 3. Plataforma Java EE Tema 3. Plataforma Java EE DAGSS Diseño de Arquitecturas de Grandes Sistemas Software 4 o Grado Ing. Informática http://ccia.ei.uvigo.es/docencia/dagss noviembre 2014 FJRP 2014 DAGS 3.1 Introducción a

Más detalles

Enterprise JavaBeans 3. Aplicaciones Distribuidas

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

Programación Orientada a Objetos Analista Programador Universitario Plan 2008 Año 2010

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

Programa de Actualización Profesional Curso: Java Avanzado JEE7 Programa del Curso

Programa de Actualización Profesional Curso: Java Avanzado JEE7 Programa del Curso Objetivo: Transmitir conocimientos y desarrollar habilidades y aptitudes que permitan al asistente incorporar, en su ejercicio profesional, la utilización de buenas técnicas y nuevos paradigmas de desarrollo

Más detalles

Curso de Spring Framework

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

Curso: Programación con JAVA SE Estándar Edition.

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

Técnico Superior en Programación con Java SE Standard Edition

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

Capítulo III. Análisis y diseño.

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

RUEDA TORRES DULCE CAROLINA 3CM2 JSF JAVA SERVER FACES WEB APPLICATION DEVELOPMENT

RUEDA TORRES DULCE CAROLINA 3CM2 JSF JAVA SERVER FACES WEB APPLICATION DEVELOPMENT 3CM2 JSF JAVA SERVER FACES WEB APPLICATION DEVELOPMENT JavaServer Faces (JSF) es una interfaz de usuario (UI) para las aplicaciones web Java. Está diseñado para aliviar considerablemente la carga de la

Más detalles

Enterprise JavaBeans

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

Tema 1. Introducción a Java EE

Tema 1. Introducción a Java EE Objetivos del tema Propiedades de las aplicaciones empresariales El Modelo Cliente/Servidor Presentar la Plataforma Java Presentar Java EE y otras tecnologías horizontales Tema 1. Introducción a Java EE

Más detalles

Diplomado Java Web Programming with Servlets, JSP, JSF & Ajax

Diplomado Java Web Programming with Servlets, JSP, JSF & Ajax Diplomado Java Web Programming with Servlets, JSP, JSF & Ajax Descripción: Por nuestra experiencia de más de 11 años enseñando Java y pioneros en este tipo de Diplomados creamos este entrenamiento. Nuestro

Más detalles

UNIVERSIDAD DE PIURA

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

Caso J2EE. Necesidades del negocio. Arquitectura Luther

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

Analista Programador Java: Business Apps Expert

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

Certificaciones: Diploma de Aprobación en Desarrollo Web con Java.

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

Curso Java Curso Online Analista Programador Java

Curso Java Curso Online Analista Programador Java Curso Java Curso Online Analista Programador Java Academia Mañana Paseo de la Castellana, 51 - Madrid 28046 Programa General Curso de Java Módulo Uno - Programación Java Básica 1) Programación Java Básico

Más detalles

UNIVERSIDAD AUTONOMA DE CHIAPAS LICENCIATURA EN SISTEMAS COMPUTACIONALES

UNIVERSIDAD AUTONOMA DE CHIAPAS LICENCIATURA EN SISTEMAS COMPUTACIONALES UNIVERSIDAD AUTONOMA DE CHIAPAS LICENCIATURA EN SISTEMAS COMPUTACIONALES Área de formación: Elección libre Unidad académica: Desarrollo de Sistemas de Información basado en Web I Ubicación: Octavo Semestre.

Más detalles

5.3.2 Java Server Faces (JSF)

5.3.2 Java Server Faces (JSF) 5.3.2 Java Server Faces (JSF) Framework que implementa el patrón MVC (Modelo-Vista-Controlador) Basado en componentes y eventos del lado del servidor Mantiene del lado del servidor una representación del

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. 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 1: Introducción a las Tecnologías Java

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

Model View Controller Architecture. Dra. Marcela Capobianco

Model View Controller Architecture. Dra. Marcela Capobianco Diseño y Desarrollo de Software Model View Controller Architecture Dra. Marcela Capobianco 1 Qué es MVC? Model View Controller (MVC) es un patrón agregado que separa los datos de una aplicación, la interfaz

Más detalles

Tutorial rápido de ObjectDB

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

Analista Programador Java: Business Apps Expert

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

II Curso Online JAVA-J2EE

II Curso Online JAVA-J2EE II Curso Online JAVA-J2EE TEMA 3 Introducción a J2EE Autor: PCYTA / Centro de Excelencia de Software Libre de Castilla-La Mancha Versión: 1.0 Fecha: Revisado 13-02-2008 23:56 Licencia: CC-by-sa 2.5 0 Licencia

Más detalles

DIPLOMATURA DESARROLLO DE APLICACIONES JAVA

DIPLOMATURA DESARROLLO DE APLICACIONES JAVA DIPLOMATURA DESARROLLO DE APLICACIONES JAVA Contenidos MÓDULO UNO: Características del Lenguaje. OOP Reconocer las características del lenguaje Java y sus componentes. Distinguir la similitudes y diferencias

Más detalles

TEMARIO. 4-Servlet Definición de servlet El Web Container y el ciclo de vida de los servlets El ciclo request- response.

TEMARIO. 4-Servlet Definición de servlet El Web Container y el ciclo de vida de los servlets El ciclo request- response. TEMARIO 1-Introducción Entorno de Desarrollo Integrado ( que es, para que nos sirve, distintos tipos) Presentación del Netbeans (descarga, instalación, aspectos fundamentales.) Principales Servidores de

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. 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

El Framework de desarrollo del Consejo

El Framework de desarrollo del Consejo El Framework de desarrollo del Consejo Superior de Investigaciones Científicas Director de la OPCSIC Centro Técnico de Informática (CSIC) Directora Centro Técnico de Informática (CSIC) Palabras clave Framework,

Más detalles

Taller de Sistemas de Información 2

Taller de Sistemas de Información 2 Taller de Sistemas de Información 2 JSF - JavaServer Faces Introducción Evolución de los frameworks Web en Java Servlets / JavaServer Pages Apache Struts Otros frameworks Tapestry Echo Web Work Spring

Más detalles

JavaEE. www.javasoft.com

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

Taller de Sistemas de Información 2. Desarrollo Web

Taller de Sistemas de Información 2. Desarrollo Web Taller de Sistemas de Información 2 Desarrollo Web Como funciona la web? Cuando navegamos la web, queremos acceder a un documento en algún lugar (de la web), para el cual disponemos de una URL (su dirección)

Más detalles

desarrollo. Dentro del desarrollo de la tesis el proceso de modelado del sistema fue hecho con el

desarrollo. Dentro del desarrollo de la tesis el proceso de modelado del sistema fue hecho con el Capitulo II. Análisis de herramientas y tecnologías de desarrollo. Dentro del desarrollo de la tesis el proceso de modelado del sistema fue hecho con el lenguaje de Modelo de Objetos llamado UML (Unified

Más detalles

Arquitectura Java para el Cuarto Ejercicio. José Antonio Ruano Ampudia Técnico Superior de Proyecto Informático

Arquitectura Java para el Cuarto Ejercicio. José Antonio Ruano Ampudia Técnico Superior de Proyecto Informático Arquitectura Java para el Cuarto Ejercicio José Antonio Ruano Ampudia Técnico Superior de Proyecto Informático Sumario Introducción Arquitectura en n-capas Arquitectura y el Cuarto Examen Java y su modelo

Más detalles

Facultad de Ingeniería Escuela de Ciencias y Sistemas 2011-14674 Estructura de Datos Guatemala 2013 JSF + JSP + RichFaces

Facultad de Ingeniería Escuela de Ciencias y Sistemas 2011-14674 Estructura de Datos Guatemala 2013 JSF + JSP + RichFaces JSF + JSP + RichFaces Manual Introductorio al uso de JSF, JSP y RichFaces en Java El siguiente documento es un manual muy introductorio, ya que la primera vez que me encontré con estas 3 frases juntas

Más detalles

Introducción a Javato

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

Tema 1: Introducción a Java EE

Tema 1: Introducción a Java EE Tema 1: Introducción a Java EE Índice Arquitecturas características de las aplicaciones empresariales Tecnologías J2EE Alternativas a J2EE Patrones arquitectónicos Model-View-Controller y Layers Recursos

Más detalles

CAPÍTULO 4 ANÁLISIS Y DISEÑO: e-commerce CONSTRUCTOR

CAPÍTULO 4 ANÁLISIS Y DISEÑO: e-commerce CONSTRUCTOR CAPÍTULO 4 ANÁLISIS Y DISEÑO: e-commerce CONSTRUCTOR En este capítulo se describe el análisis y diseño de un sistema, denominado e-commerce Constructor, el cual cumple con los siguientes objetivos: Fungir

Más detalles

Desarrollo de Aplicaciones Web con Eclipse

Desarrollo de Aplicaciones Web con Eclipse Desarrollo de Aplicaciones Web con Eclipse Oscar Gosdinski Software Services Representative Java Es un lenguaje de programación y una plataforma de desarrollo. 2 Lenguaje de alto nivel que puede ser caracterizado

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 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

Requisitos. Universidad ORT Arquitectura de Software

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

Revista Digital Universitaria. 10 de agosto 2004 Volumen 5 Número 7 ISSN: 1067-6079

Revista Digital Universitaria. 10 de agosto 2004 Volumen 5 Número 7 ISSN: 1067-6079 Revista Digital Universitaria 10 de agosto 2004 Volumen 5 Número 7 ISSN: 1067-6079 JAVA o L.I. Anabell Comas Becaria de la Coordinación de Publicaciones Digitales anabell@alethia.dgsca.unam.mx o http://www.revista.unam.mx/vol.7/num12/art104/art104.htm

Más detalles

CentralTECH JAVA EE 7 Desarrollo

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

http://www.cem.itesm.mx/extension/ms

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

Patrones de Alto nivel: Patrones de Arquitectura Patrones de nivel medio: Patrones de Diseño Patrones de bajo nivel: Idioms

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

TFC J2EE. Aplicación Web para la gestión de facturación de una empresa de cerrajería. Sara Gutiérrez Melero ITIG Junio de 2012

TFC J2EE. Aplicación Web para la gestión de facturación de una empresa de cerrajería. Sara Gutiérrez Melero ITIG Junio de 2012 TFC J2EE Aplicación Web para la gestión de facturación de una empresa de cerrajería Sara Gutiérrez Melero ITIG Junio de 2012 Consultor: Jose Juan Rodriguez Índice 1. Introducción Objetivos Planificación

Más detalles

Bienvenidos a la presentación: Introducción a conceptos básicos de programación.

Bienvenidos a la presentación: Introducción a conceptos básicos de programación. Bienvenidos a la presentación: Introducción a conceptos básicos de programación. 1 Los programas de computadora son una serie de instrucciones que le dicen a una computadora qué hacer exactamente. Los

Más detalles

Curso Android Curso Online Desarrollo en Celulares con Android

Curso Android Curso Online Desarrollo en Celulares con Android Curso Android Curso Online Desarrollo en Celulares con Android Academia Mañana Paseo de la Castellana, 51 - Madrid 28046 Programa General del Curso Desarrollo en Celulares con Android Módulo Uno - Programación

Más detalles

WORKSHOP Spring Framework Developer

WORKSHOP Spring Framework Developer CONTEXTO WORKSHOP Spring Framework Developer La programación de los componentes de persistencia es una tarea muy importante, hoy en día contamos con Frameworks JDBC como MyBatis, Frameworks ORM como Hibernate

Más detalles

Notas técnicas de JAVA Nro. 7 Tip Breve

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

BROWSERSQL VERSIÓN 3.1 TUTORIAL

BROWSERSQL VERSIÓN 3.1 TUTORIAL TUTORIAL LAURA NOUSSAN LETTRY (MENDOZA, ARGENTINA 2011) ÍNDICE CONTENIDOS PÁGINA Introducción 2 Características Funcionales 2 Área de Conexión 3 Área de Ejecución de Sentencias 4 En qué se basa su funcionamiento

Más detalles

Sistema de Control de Acceso Distribuido

Sistema de Control de Acceso Distribuido Sistema de Control de Acceso Distribuido Ing: Javier Jorge Lic. Eduardo Sanchez Febrero, 2010 Página 1 de 12 Alcance o dimensiones del problema Debido a que el control de acceso presenta grandes dimensiones

Más detalles

Gestor de aplicaciones Java. Esta herramienta es el intérprete de los archivos de clase generados por el javac (compilador).

Gestor de aplicaciones Java. Esta herramienta es el intérprete de los archivos de clase generados por el javac (compilador). CAPÍTULO 4 Requerimientos de software Este capítulo presenta las herramientas necesarias para la construcción y ejecución de programas en el lenguaje de programación JAVA, los requerimientos mínimos de

Más detalles

Capítulo 3. JavaServer Faces

Capítulo 3. JavaServer Faces Capítulo 3. JavaServer Faces 3.1. Introducción JavaServer Faces (JSF) es el framework para aplicaciones Web en Java de Sun Microsystems, liberado apenas en Marzo del 2004, que busca tomar su lugar como

Más detalles

Elección de tecnología para la capa de presentación de SOA. Huibert Aalbers Senior Certified Software IT Architect

Elección de tecnología para la capa de presentación de SOA. Huibert Aalbers Senior Certified Software IT Architect Elección de tecnología para la capa de presentación de SOA Huibert Aalbers Senior Certified Software IT Architect IT Insight podcast Este podcast pertenece a la serie IT Insight Pueden suscribirse al podcast

Más detalles

JSF. Aplicaciones Distribuidas

JSF. Aplicaciones Distribuidas JSF Aplicaciones Distribuidas Contenidos Introducción Arquitectura Componentes UI Renders Eventos Internacionalización Conversores Navegación Ciclo de Vida Fichero configuración Validadores Backing beans

Más detalles

FUNCIONAMIENTO: FUNCIONALIDAD

FUNCIONAMIENTO: FUNCIONALIDAD STRUTS Qué Es? Es un framework que implementa el patrón de arquitectura MVC en Java. El patrón de arquitectura MVC (Model-View-Controller) es un patrón que define la organización independiente del Model

Más detalles

Desarrollador Experto en Aplicaciones Empresariales con Java EE

Desarrollador Experto en Aplicaciones Empresariales con Java EE Desarrollador Experto en Aplicaciones Empresariales con Java EE (Con doble Certificación Oficial ORACLE) Descripción Este programa ha sido diseñado a partir de los Itinerarios de Certificaciones recomendados

Más detalles

Desarrollo y servicios web Sesión 18

Desarrollo y servicios web Sesión 18 Desarrollo y servicios web Sesión 18 Luisa Fernanda Rincón Pérez 2014-2 Qué son los patrones arquitectónicos? Definen la estructura de la solución al mas alto nivel. Por esto es lo primero que se tiene

Más detalles

Módulo Profesional 01: Bases de datos (código: 0484).

Módulo Profesional 01: Bases de datos (código: 0484). Módulo Profesional 01: Bases de datos (código: 0484). Actividades de enseñanza-aprendizaje que permiten alcanzar los objetivos del módulo. Interpretar diseños lógicos de bases de datos. Realizar el diseño

Más detalles

Universidad Tecnológica Nacional FRC DIPLOMATURA SUPERIOR en Desarrollo bajo Plataforma Java EE

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

RUEDA TORRES DULCE CAROLINA 3CM2 HIBERNATE EN UNA APLICACIÓN WEB

RUEDA TORRES DULCE CAROLINA 3CM2 HIBERNATE EN UNA APLICACIÓN WEB 3CM2 HIBERNATE EN UNA APLICACIÓN WEB 8 DE MAYO DE 2012 1. CREACION DE LA BASE DE DATOS Para llevar a cabo esta práctica se utiliza una base de datos MySQL llamada Sakila, una muestra gratis de base de

Más detalles

Ejemplo de aplicación Java EE 6. Tienda Web con JPA+EJB+JSF

Ejemplo de aplicación Java EE 6. Tienda Web con JPA+EJB+JSF Ejemplo de aplicación Java EE 6. Tienda Web con JPA+EJB+JSF FJRP CCIA-2011 Septiembre-2011 Índice 1. Descripción de la aplicación de ejemplo 1 1.1. Presentación del ejemplo.........................................

Más detalles

Abril 2002 Docentes: Hermann Steffen, Raúl Ruggia. Informe

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

Conceptos de Orquestador O2 EMPRESAS TUXPAN www.tuxpan.com

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

Web Services en Java. Taller de Programación. Instituto de Computación Facultad de Ingeniería Universidad de la República

Web Services en Java. Taller de Programación. Instituto de Computación Facultad de Ingeniería Universidad de la República Web Services en Java Taller de Programación Instituto de Computación Facultad de Ingeniería Universidad de la República Contenido Motivación y Conceptos Funcionamiento Annotations Desarrollando una aplicación

Más detalles

Servicio de Instrucción CURSO JAVA DEVELOPER. Sílabo Developer

Servicio de Instrucción CURSO JAVA DEVELOPER. Sílabo Developer Sílabo Developer I. DATOS GENERALES Año de vigencia : 2015 Número de sesiones : 16 (5 horas por sesión) N de Horas académicas : 80 Requisitos : - Conocimientos básicos de java (Programmer). II. FUNDAMENTACIÓN

Más detalles

Herramientas de Software que posibilitan el BPM

Herramientas de Software que posibilitan el BPM Qué es BPM? BPM (Business Process Management) no es solamente una tecnología, sino en términos generales, una disciplina gerencial que trata a los procesos como bienes tangibles que contribuyen al desempeño

Más detalles

Experto Universitario Java Enterprise Spring

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

[CASI v.0109] Pág. 1

[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

INTRODUCCIÓN A JAVA EE

INTRODUCCIÓN A JAVA EE Unidad de Aprendizaje 1 INTRODUCCIÓN A JAVA EE ÍNDICE 1.1 Introducción...3 1.1.1 Java Card... 3 1.1.2 Java Micro Edition (Java ME)... 4 1.1.3 Java Standard Edition (Java SE)... 4 1.1.4 Java Enterprise

Más detalles

Curso de Jboss Administración

Curso de Jboss Administración Curso de Jboss Administración Este curso está dirigido a gente interesada en la administración de Jboss, el cual nos brindará un soporte robusto para el despliegue de aplicaciones Java, tanto Web como

Más detalles

Arquitectura de Proyectos de IT

Arquitectura de Proyectos de IT Arquitectura de Proyectos de IT Apunte: Introducción a MQ y conceptos de mensajería Autores: Patricio Echagüe patricioe@gmail.com Ing. Gastón Escobar gescobar@gmail.com Versión: 0.1 Octubre, 2005 1 Índice

Más detalles

Ficha Técnica. Categoría. Contenido del Pack. Sinopsis. Programación. - 2 Manual Teórico - 1 Cuaderno de Ejercicios - 1 CDROM

Ficha Técnica. Categoría. Contenido del Pack. Sinopsis. Programación. - 2 Manual Teórico - 1 Cuaderno de Ejercicios - 1 CDROM Ficha Técnica Categoría Programación Contenido del Pack - 2 Manual Teórico - 1 Cuaderno de Ejercicios - 1 CDROM Sinopsis Java fue desarrollado por la compañía Sun Microsystems como una tecnología capaz

Más detalles

Licencia 2: (Creative Commons)

Licencia 2: (Creative Commons) Licencia 2: (Creative Commons) Esta obra está bajo una licencia Reconocimiento-No comercial-sin obras derivadas 2.5 España de Creative Commons. Puede copiarlo, distribuirlo y transmitirlo públicamente

Más detalles

Sistema para la petición de cita de tutoría usando tecnología de Portlets

Sistema para la petición de cita de tutoría usando tecnología de Portlets Proyecto Fin de Carrera Ingeniería en Informática Curso 2010/2011 Sistema para la petición de cita de tutoría usando tecnología de Portlets Marcos Mainar Lalmolda Director: Pedro Javier Álvarez Pérez-Aradros

Más detalles

SEGURIDAD EN APLICACIONES WEB CON APACHE TOMEE. Ing. Javier Mantilla Portilla

SEGURIDAD EN APLICACIONES WEB CON APACHE TOMEE. Ing. Javier Mantilla Portilla SEGURIDAD EN APLICACIONES WEB CON APACHE TOMEE Ing. Javier Mantilla Portilla Acerca de mí Quien soy? Especialista en Ingenieria de Software 10 Años experiencia en desarrollo Desarrollador JAVA, PHP Autodidacta

Más detalles

FRAMEWORKS (Conceptos y Prácticas)

FRAMEWORKS (Conceptos y Prácticas) FRAMEWORKS (Conceptos y Prácticas) Contenido Introducción Principio de Inversión de Control Características de los Frameworks Frameworks en Java Frameworks en PHP Evaluación de Frameworks Contenido Introducción

Más detalles

Unidad II. - Las técnicas en las que se basó, las categorías de análisis o ejes centrales que permiten guiar el proceso de investigación.

Unidad II. - Las técnicas en las que se basó, las categorías de análisis o ejes centrales que permiten guiar el proceso de investigación. Unidad II Metodología de Solución de Problemas 2.1 Descripción del problema (enunciado). Este aspecto nos indica describir de manera objetiva la realidad del problema que se esta investigando. En la descripción

Más detalles

Capítulo 2. Marco Teórico

Capítulo 2. Marco Teórico Capítulo 2. Marco Teórico 2.1. Frameworks para Aplicaciones Web en Java Con el crecimiento exponencial de Internet en los últimos años, las aplicaciones Web se han convertido en una parte básica y común

Más detalles

CICLO SUPERIOR DESARROLLO DE APLICACIONES MULTIPLATAFORMA

CICLO SUPERIOR DESARROLLO DE APLICACIONES MULTIPLATAFORMA CICLO SUPERIOR DESARROLLO DE APLICACIONES MULTIPLATAFORMA PROGRAMACIÓN DIDACTICA ANUAL Parte específica del módulo: 0485. Programación Departamento de Familia Profesional de Informática Curso: 2014-15

Más detalles

IVista: es la interfaz con la que el Presentador se comunica con la vista.

IVista: es la interfaz con la que el Presentador se comunica con la vista. Capítulo 3 MODELO DE DISEÑO 3.1 Arquitectura Modelo-Vista-Presentador La arquitectura Modelo-Vista-Presentador (MVP) [11] separa el modelo, la presentación y las acciones basadas en la interacción con

Más detalles

Software Design Description Caracterización de la comunidad. 06/07/2012 Fabián García Ariel López

Software Design Description Caracterización de la comunidad. 06/07/2012 Fabián García Ariel López Software Design Description Caracterización de la comunidad 06/07/2012 Fabián García Ariel López PAGINA DE FIRMAS ALEX LINARES CLIENTE FABIÁN GARCÍA ARIEL LÓPEZ LESMES HISTORIAL DEL CAMBIOS Versión Fecha

Más detalles

Desarrollo de una arquitectura orientada a servicios para un prototipo de una línea de productos de software

Desarrollo de una arquitectura orientada a servicios para un prototipo de una línea de productos de software Desarrollo de una arquitectura orientada a servicios para un prototipo de una línea de productos de software Ramón Gómez-Romero, Karen Cortés Verdin, Juan Carlos Pérez Arriaga, Ángeles Arenas Valdés Universidad

Más detalles

Capas de la arquitectura de referencia

Capas de la arquitectura de referencia DOCUMENTO DE ARQUITECTURA DE REFERENCIA PARA APLICACIONES WEB GESTIÓN INFORMÁTICA UNIVERSIDAD DE ANTIOQUIA Este documento se estructura teniendo en cuenta las recomendaciones del artículo de IBM Reference

Más detalles