Indizen Labs imade. Marco de Desarrollo Aplicaciones de Indizen



Documentos relacionados
GLOSARIO. Arquitectura: Funcionamiento, estructura y diseño de una plataforma de desarrollo.

Curso de Spring Framework

JAVATO: UN FRAMEWORK DE DESARROLLO JAVA LIBRE

Proyecto ELO-330 Administración Salas del Departamento de Electrónica RC1. Gerardo Lecaros Felipe Díaz

Capítulo 5. Cliente-Servidor.

Plataforma de expediente

JAVA EE 5. Arquitectura, conceptos y ejemplos.

Capas de la arquitectura de referencia

Capítulo II. Arquitectura del Software

Introducción a los Servicios Web. Ing. José Luis Bugarin ILUMINATIC SAC jbugarin@consultorjava.com

La interoperabilidad se consigue mediante la adopción de estándares abiertos. Las organizaciones OASIS y W3C son los comités responsables de la

Nombre de producto. Dexon Workflow Manager

Suite Open Source de CRM y GroupWare Características Funcionales

1 Índice Introducción Propósito Alcance Modelo Arquitectónico Inicial... 3

elastic PROJECTS INFORMACIÓN COMERCIAL PROJECTS

Herramienta de Gestión Integral de E-Business

Arquitectura de desarrollo Fomento.Net

GUÍA TÉCNICA. Desarrollo de Sistemas de Información la plataforma Business Intellingence Pentaho

Ofrezca la nueva tendencia de innovación empresarial con un entorno de red abierta

Framework de desarrollo de Código Abierto

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

Documento Técnico Gerardo Barcia Jonathan Trujillo María Alejandra Uribe


BOLETÍN DE NOVEDADES Barcelona, enero de 2007

Diplomado Java. Descripción. Objetivo. A quien está dirigido. Requisitos. Beneficios

Desarrollo de Aplicaciones Web con JAVA: J2EE y Struts

JAVA ENTERPRISE EDITION (J2EE) ARQUITECTURA TECNOLOGÍAS (1/2) (L1)

Capítulo 2. Marco Teórico

Ingeniería de Software

1 GLOSARIO. Actor: Es un consumidor (usa) del servicio (persona, sistema o servicio).

MACROPROCESO GESTIÓN TECNOLÓGICA

NUEVA WEB DE LA CONSEJERÍA DE INNOVACIÓN, CIENCIA Y EMPRESA: LA INNOVACIÓN COMO NEXO COMÚN DE UN DESARROLLO WEB

PROYECTOS DE INVESTIGACIÓN EN LAS AULAS DE CLASE, DE ESTUDIANTES PARA ESTUDIANTES - AQUÍ ESTOY! Y USADIR

Contenidos. Parte I - Introducción Capítulo 1 - Evolución. Capítulo 2 Condiciones de trabajo en el Desarrollo de Software

Open Source Uso de hipergate como Intranet

Cursos PROGRAMACIÓN DE APLICACIONES CON JAVA

O jeto de apre r ndizaje

Diplomado Programación Web con PHP, MySQL 5.0, Apache y Ajax

Visión General de GXportal. Última actualización: 2009

POSGRADO EXPERTO.NET DESARROLLO DE SOFTWARE

"Diseño, construcción e implementación de modelos matemáticos para el control automatizado de inventarios

Generación de código para Hibernate desde modelos UML

SUPLEMENTO EUROPASS AL TÍTULO

Alfresco permite su integración y personalización en sistemas de gestión documental para implementar funcionalidades específicas

OpenProdoc. ECM Open Source

Proceso Unificado de Rational PROCESO UNIFICADO DE RATIONAL (RUP) El proceso de desarrollo de software tiene cuatro roles importantes:


Introducción a Javato

FUNDAMENTOS DE PROGRAMACION CON C#

Centro de Competencias de Integración. Portal del paciente

Sistema de Información Integrada del Área Social

Experiencias con J2EE

MARCANDO LA DIFERENCIA

Resumen de la solución SAP SAP Technology SAP Afaria. Gestión de la movilidad empresarial para mayor ventaja competitiva

7. CONCLUSIONES Y TRABAJOS FUTUROS

Symfony2. Junio. Inicio. Curso Desarrollo de aplicaciones web con. Básico-Intermedio

Service Oriented Architecture: Con Biztalk?

Una puerta abierta al futuro

3.3.3 Tecnologías Mercados Datos

Desarrollo y servicios web

Anexo 4 Documento de Arquitectura

ARQUITECTURAS DE PROCESOS DE NEGOCIOS INGENIERIA DE SOFTWARE ING. MA. MARGARITA LABASTIDA ROLDÁN

Centro de Investigación y Desarrollo en Ingeniería en Sistemas de Información (CIDISI)

MF0492_3 Programación Web en el Entorno Servidor

SUPLEMENTO EUROPASS AL TÍTULO

Windows Server 2012: Identidad y Acceso. Módulo 2: Descripción General de Windows Server 2012 Remote Desktop Services.

Integración de AuraPortal con SAP

Premios "Contratos y Proyectos Smart Cities 2014" Categoría 4: Contratos para la Democracia electrónica

Ingeniería de Software

Los mayores cambios se dieron en las décadas de los setenta, atribuidos principalmente a dos causas:

Capítulo VI. Estudio de Caso de Aplicación del Integrador de Información Desarrollado

MARCO DE REFERENCIA SISTEMAS DE INFORMACIÓN PARA LA GESTIÓN DE TI EN EL ESTADO COLOMBIANO

Las Tecnologías de la Información y las Comunicaciones en Formación Profesional. Contenidos relevantes

DIPLOMATURA DESARROLLO DE APLICACIONES JAVA

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

Diseño dinámico de arquitecturas de información

Centro de Interoperabilidad Semántica y Sistema de Gestión de Mensajes de Intercambio

MDA: Arquitectura Dirigida por Modelos

ARQUITECTUA DE M2M MIGUEL ÁLVAREZ Y CLARA HERRERO. Documento inicial

Capítulo VI. Conclusiones. En este capítulo abordaremos la comparación de las características principales y

ARQUITECTURA ORIENTADA A SERVICIOS (SOA) EN LA JUNTA DE ANDALUCÍA

Microsoft SQL Server Conceptos.

Eficiencia en la Automatización y Gestión de Servicios

11/06/2011. Alumno: José Antonio García Andreu Tutor: Jairo Sarrias Guzman

Elementos requeridos para crearlos (ejemplo: el compilador)

Resumen General del Manual de Organización y Funciones

Software libre aplicado al desarrollo de aplicaciones corporativas. Proyecto gvhidra.

GUÍA METODOLÓGICA DE IMPLANTACIÓN DE PROCEDIMIENTOS Y SERVICIOS TELEMÁTICOS DE LA JUNTA DE ANDALUCÍA

Novedades. Introducción. Potencia

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE

1. Instala servicios de configuración dinámica, describiendo sus características y aplicaciones.

REPUBLICA DE HONDURAS SECRETARIA DE FINANZAS

TEMA: DESARROLLO DE APLICACIONES WEB INTERACTIVAS UTILIZANDO LA TÉCNICA AJAX AUTOR: MERY SUSANA ZAMBONINO BAUTISTA

BOLETÍN DE NOVEDADES Barcelona, junio de 2006

AFIKnow. Sistema de Gestión del Conocimiento

Ingeniería de Software en SOA

CAPÍTULO 3 DISEÑO DE LA ARQUITECTURA

Arquitectura. 1.- Aplicaciones Web. Definición. Arquitectura clásica. Contenidos. 1.- Aplicaciones Web

Transcripción:

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 estructuras organizativas dotadas de recursos humanos y materiales que tienen como objetivo la investigación y el desarrollo de las ideas innovadoras de nuestros ingenieros e investigadores, dentro de las líneas de trabajo que consideramos de interés para la compañía. Los laboratorios tienen como misión probar las tecnologías y desarrollar los conceptos, las ideas y los proyectos que puedan servir de base o como germen para el desarrollo de futuros productos y servicios propios de Indizen o en colaboración con otros organismos, empresas y/o centros de investigación.

Indizen Labs Estructura de los Laboratorios Laboratorios de Tecnologías, donde se prueban y validan nuevas tecnologías, arquitectura, herramientas, frameworks, etc., que puedan ser de utilidad para la compañía. Laboratorio de Ideas, donde se crean prototipos de nuevos productos y servicios. Laboratorio de proyectos, donde se ponen en marcha proyectos propios o de los clientes en siguiendo esta modalidad

Indizen Labs Líneas de trabajo de los laboratorios Desarrollo de nuevas herramientas de Gestión de Riesgos. Desarrollo e investigación de metodologías de integración de Simuladores. Integración de estudios Deterministas (Simulación) y Probabilistas (PSA) en Análisis de Seguridad y Simulación de Sistemas Complejos. Nuevas Herramientas de computación de Procedimientos y Fiabilidad Humana (HRA). Herramientas para la clasificación y normalización estadística en las áreas de biomedicina. Tecnologías de Web Semántica, computación lingüística, etc. Herramientas inteligentes de búsqueda Tecnologías para la distribución de procesos, Grid Computing, etc. Generación automática de código fuente para aplicaciones Web tipo CRUD. Algorítmica matemática.

Introducción imade Plasmar la experiencia de Indizen en proyectos reales, en un marco de trabajo (imade) que mejore el ciclo de desarrollo de aplicaciones. Diseño Mantenimiento imade Desarrrollo Pruebas Implantación

Objetivos imade Buscar la simplicidad huyendo de modelos complejos, y buscando soluciones adaptadas a los distintos proyectos. Fomentar el uso de estándares abiertos que nos den una cierta independencia respecto a tecnologías propietarias o productos específicos de fabricantes. Mejorar la productividad dotando a los desarrolladores de la mayor cantidad de herramientas para poder realizar su trabajo de forma eficiente. Intentar reducir los costes de desarrollo y explotación en lo posible. Basado en la experiencia no se trata de seguir "recomendaciones de fabricante", sino que está contrastado con aplicaciones reales en clientes. Facilitar las tareas de soporte y mantenimiento, no solo es un conjunto de herramientas, sino que se incluyen procedimientos de soporte necesarias para apoyar a los equipos de desarrollo y explotación. Uso de metodologías ágiles de desarrollo, tipo Extreme Programming que impulsen y agilicen el desarrollo de aplicaciones. Fomentar la calidad del software.

Metodología de trabajo Procedimientos de diseño, desarrollo, pruebas, implantación y mantenimiento. Guía de estilos de programación Gestión de software Documentación Idea imade Herramientas predefinidas Herramientas de desarrollo Frameworks Librerías Ideas Conceptos Proyectos Metodología Arquitectura Herramientas Soluciones Herramientas Arquitectura de aplicación Productos Modelo de componentes y servicios Implementación base (esqueleto de aplicación)

Características principales de imade? Permite construir aplicaciones de diferente complejidad funcional y tecnológica, de una forma sencilla y rápida. Base de los laboratorios de Indizen y sirve tanto para desarrollos con Java o.net. Recoge las mejores prácticas de desarrollo de aplicaciones. Arquitectura Orientada a Servicios probada en distintas aplicaciones (InnoVaR, WebScan, AutoCoder, ) Emplea herramientas software líderes (Eclipse, MyEclipse, Subversion, ) Integra librerías y frameworks probados que se han convertido en estándares (Struts, JSF, ibatis, Junit, Log4J, Ant, ). Implementa patrones de diseño (Factory, Proxy, DAO,etc.). Dispone de un generador de código para genera de forma autmática partes de la aplicación. Es una esqueleto de aplicación con los componentes necesarios para la puesta en marcha de los proyectos.

Lo deseable para una arquitectura de aplicación Clara separación de capas (presentación, negocio, acceso a datos). Arquitectura orientación a servicios. Facilidad para ejecutar pruebas unitaria. Generación de código automático (dentro de lo posible). Automatización del procesos de compilación, construcción, pruebas y despliegue. Gestión de errores y excepciones. Soporte de logs avanzados para depuración y gestión de incidencias. Seguridad de acceso (autenticación y autorización) Facilidades de integración, instalación, configuración y mantenimiento.

Metodología imade Metodología Arquitectura Herramientas Metodología imade

Metodología imade Extreme Programming La programación extrema trata de adaptar los procesos de desarrollo los continuos cambios en los requisitos de los proyectos, poniendo el énfasis en la adaptación. Los cambios de requisitos son algo natural, inevitable e incluso deseable del desarrollo de proyectos. La adaptación a los cambios es una formula más realista que intentar definir todos los requisitos al comienzo del proyecto e invertir esfuerzos después en controlar los cambios en los requisitos. Es una metodología orientada a gestionar los cambios de forma dinámica durante el ciclo de vida del software. Son características de esta metodología Desarrollo iterativo e incremental Pruebas unitarias continuas Interacción con el cliente Propiedad común del código (del equipo) Refactorización del código Simplicidad

Documentos base (plantillas) Visión y alcance de proyecto Especificación de requisitos Reglas de negocio Casos de uso Guía de desarrollo con imade Guía de estilos de programación Metodología imade

Arquitectura imade Metodología Arquitectura Herramientas Arquitectura de imade

Arquitectura imade Componentes de la arquitectura imade Usuarios Administradores Capa de Persistencia Capa de presentación MOTOR BATCH INTERFAZ DE USUARIO (JSF, Struts, ) Capa de Negocio SERVICIOS (Services) MODELO ACCESO A DATOS (ibatis) Base de datos APLICACIONES EXTERNAS OBJETOS DELEGADOS (Managers) FILES

Capa de presentación-control Arquitectura imade Atiende a las peticiones de interface de usuario. Control de sesiones Capa de negocio-servicios. Orientada a servicios Cada servicio hace de proxy entre la aplicación y el interface de usuario o con otras aplicaciones. Se puede desarrollar con Web Services (SOAP, WSDL) o de forma adhoc. Capa de persistencia Control de transacioenes. Su función es la de realizar operaciones CRUD Capa transversal de modelo Implementada en objetos JavaBeans Su función es la de transferencia de datos (DTO).

Presentación-control Arquitectura de imade Intercepta las solicitudes del cliente. Examina el request, lee sus cabeceras HTTP, su locale, valida las entradas, controla seguridad,..., y actúa en consecuencia. Invoca el proceso acciones y procesos de negocio correspondientes. A partir de la solicitud esta capa debe ser capaz de discriminar cual es el proceso que subyace. Gestiona las variables de estado, para el mantenimiento de sesiones. Recolecta los resultados, tanto los obtenidos de la acción realizada como los guardados en los diversos niveles de memoria (sesión o aplicación), y se los dispone al cliente. Selecciona la vista y, finalmente, se la envía al cliente. Implementación con JSF, STRUTS, Ajax,

Arquitectura de imade Capa de Negocio-Servicios Contiene la lógica de la aplicación: reglas de negocio, workflows, operaciones no persistentes Aislada y encapsulada en Servicios y objetos de apoyo Managers que tienen la siguiente funcionalidad y características: Separa la aplicación del interfaz de usuario, que sirva de contrato entre las capas. La comunicación entre capas se establece mediante objetos de Modelo. Establece un modelo de excepciones que se propaga a la capa de presentación. Para la capa de negocio se contemplan dos implementaciones: Servicios Ad-hoc. Se trata de objetos de servicio diseñados para contener la lógica de negocio de forma sencilla. Spring. Se trata de un framework que permite realizar el desarrollo de esta capa de forma estandarizada.

Arquitectura de imade Persistencia y Acceso a Datos Encargada de la funcionalidad transacional y de acceso a la base de datos. Las principales características y funcionalidades de esta capa son: Se utiliza el patrón DAO para abstraer el acceso a datos. Esto consigue: Ser independientes de la implementación: jdbc, Ibatis, Hibernate. Ser independientes de los base de datos: Oracle, DB2, Host Agrupar la funcionalidad de persistencia en clases y paquetes siguiendo criterios de diseño. Son Clases sencillas: POJOS. Simplificar el código de los servicios. El patrón DAO se apoya en un interfaz que sirve de contrato entre capas, que exige: Que los datos de entrada y salida sean objetos del Modelo. Que las excepciones sean genéricas, independientes de la implementación. Para acceso a base de datos relacionales (RDBMS), imade sugiere dos alternativas:ibatis, Hibernate.

Arquitectura de imade Modelo Las clases del Modelo son una representación Java de las entidades de negocio y tienen una cierta correspondencia el esquema de base de datos. Describen la información contenida en la base de datos a nivel conceptual. Se implementan como objetos Java tradicionales (POJOs), JavaBeans puros. Pueden existir diferentes alternativas para su definición: Modelos sencillos, muy vinculados al modelo de datos de la aplicación, se podría decir que son contenedores de registros de base de datos. Modelos ricos, distintos al modelo de datos, empleando patrones avanzados de OO (composición, jerarquías, patrones ). La funcionalidad y propiedades de esta capa se pueden resumir en las siguientes: Participan en la construcción de las Interfaces de Usuario, Servicio y DAO. Transferencia a través de la red, en configuraciones con separación física de capas. Ocupar el menor espacio en memoria posible, para agilizar el tráfico. Deben implementar la interfaz Serializable.

Gestión de errores y excepciones Arquitectura de imade Cada capa (Servicios, Persistencia) define su propio conjunto de excepciones (de tipo BaseException), que son las únicas que deben transmitirse a la capa inmediatamente superior. Para cada capa se define una jerarquía de excepciones, vinculada a las clases que constituyen dicha capa. Estas excepciones capturan las excepciones derivadas de la implementación específica. En la capa de presentación, Struts define una serie de mecanismos para el tratamiento de errores (ActionMessage, GlobalException, Errores de Validación )

Resumen de características arquitectura imade Clara separación en capas con roles definidos para cada una de ellas. Existe un exhaustivo control de errores que se transmite de una capa a otra. Es una arquitectura base que permite mejorar todo el ciclo de vida Cada capa integra frameworks (Struts, ibatis, ) que cumplen con la funcionalidad encomendada.

Herramientas imade Metodología Arquitectura Herramientas Herramientas de imade

Herramientas de imade Los objetivos perseguidos en la selección herramientas usadas en imade son: Evitar reinventar la rueda Integrar herramientas probadas y contrastadas Mejorar los procesos que van desde el diseño, desarrollo, pruebas e implantación hasta el soporte y mantenimiento Aumentar la productividad (generación automática de código). Mejorar la calidad del software

Herramientas de imade Librerías Ant. Es una herramienta para la realización de tareas mecánicas y repetitivas durante la fase de compilación y construcción y despliegue. JUnit. Es un conjunto de librerías creadas por que son utilizadas en programación para hacer pruebas unitarias de aplicaciones Java. Log4J. Librería open source desarrollada en Java por la ASF que permite a los desarrolladores de software elegir la salida y el nivel de granularidad de los mensajes o logs en tiempo de ejecución, mediante el uso de archivos de configuración externos. JAAS. que permite a las aplicaciones Java acceder a servicios de control de autenticación y acceso.

Herramientas de imade Frameworks Struts. es una herramienta de soporte para el desarrollo de aplicaciones web que implementa el modelo MVC en plataformas. JSF. Estándar MVC de J2EE. Ajax. script.aculo.us, prototype, dojo, etc. ibatis Framework de código abierto basado en capas desarrollado por ASF, que se ocupa de la capa de Persistencia (se sitúa entre la lógica de Negocio y la capa de la Base de Datos). Java y.net. Asocia objetos de modelo (POJO) con sentencias SQL o procedimientos almacenados mediante ficheros descriptores XML, simplificando la utilización de bases de datos. Hibernate: Framework ORM. Persistencia de Objetos Java. Un modelo más orientado a POO, más avanzado, permite portabilidad de base de datos, y mayor transparencia ante cambios del modelo de objetos. Modelo ideal para nuevos proyectos, que deban ser portables entre BBDD

Herramientas de productividad Herramientas de imade MyEclipse. Herramienta para desarrollo web, despliegue y depuración. Subversion. Software de control de versiones Generación de código automático de modelo y acceso a datos (DAO) tanto en ibatis como en Hibernate.