Download Descargar presentación
Document related concepts
no text concepts found
Transcript
Trabajo Fin de Carrera INTEGRACIÓN DEL ENTORNO DE DESARROLLO PARA UN PROYECTO DE SOFTWARE LIBRE Roberto Carlos Zapatera Pilo Estructura presentación. La asociación Ciudades Kyosei. Creación del Sistema Kyosei-Polis . Software Libre VS Software Comercial. Estructura de la Memoria. Tecnologías Servidor. Tecnologiás Desarrollo. Librería utilidades. Arquetipo Maven. Aplicativo Alpha. La asociación Ciudades Kyosei. La Asociación Ciudades Kyosei no es solamente una Entidad sin Ánimo de Lucro. Es más bien una Entidad con Ansia de Desarrollo Social, y están comprometidos con el fortalecimiento de la participación ciudadana democrática en el ámbito municipal y regional. Promueven la creación y el uso de herramientas de participación basadas en Internet que permitan que tanto los ciudadanos como las administraciones públicas puedan beneficiarse con el uso continuado de espacios alternativos para el diálogo y la movilización. Sistema Kyosei-Polis. Diseño de un Entorno Virtual de Participación Ciudadana Municipal a partir de un análisis interdisciplinar de la participación ciudadana. Un Entorno Virtual de Participación Ciudadana es un espacio en Internet donde tanto los ayuntamientos como los ciudadanos y sus asociaciones pueden poner a disposición de los ciudadanos, otros colectivos, medios de comunicación, etc. todas las informaciones referidas a las actividades participativas que realizan en la ciudad. Sistema Kyosei-Polis. Envío de preguntas a los distintos departamentos del ayuntamiento u organización; Encuestas y cuestionarios, para que el ciudadano transmita su opinión sobre ciertos temas; Procesos de recogida de firmas para realizar una petición o iniciativa legislativa; Consulta de la "agenda participativa" del municipio o barrio, que es elaborada de manera conjunta por todos los colectivos de la ciudad; Espacios para la realización virtual de procesos participativos complejos; Foros de debate con modelos avanzados de moderación que permitan realizar discusiones estructuradas y de calidad, identificar los consensos existentes, resolver posibles desacuerdos y elaborar documentos de conclusiones; Espacios privados de colaboración que faciliten el trabajo participativo interno del ayuntamiento y las organizaciones ciudadanas; Publicación y revisión participativa de documentos; Herramientas que faciliten que ciudadanos interesados por un cierto tema se pongan en contacto, etc. Sistema Kyosei-Polis. Nov. 2005 Junio 2005 Actualidad SF libre VS SF comercial VENTAJAS DEL SOFTWARE LIBRE Económico . Libertad de uso y redistribución. Independencia tecnológica. Fomento de la libre competencia al basarse en servicios y no licencias Soporte y compatibilidad a largo plazo Formatos estándar Sistemas sin puertas traseras y más seguros Corrección mas rápida y eficiente de fallos Métodos simples y unificados de gestión de software Sistema en expansión SF libre VS SF comercial VENTAJAS DEL SOFTWARE COMERCIAL Propiedad y decisión de uso del software por parte de la empresa. Soporte para todo tipo de hardware Mejor acabado de la mayoría de aplicaciones Las aplicaciones número uno son propietarias. Menor necesidad de técnicos especializados Mayor mercado laboral actual Mejor protección de las obras con copyright Unificación de productos Estructura de la Memoria. 1. Configuración entorno tecnológico Configuración tecnologías servidor. Configuración tecnologías desarrollo. Frameworks 2. Aplicativo alpha. Creación librería de utilidades. Creación Arquetipo Maven. Creación aplicación alpha. Configuración tecnologías servidor. MOD_JK JDBC 3,5 cm CA OpenSSl ActivePerl Configuración tecnologías Desarrollo. TortoiseSVN 3,5 cm Hibernate Tools Omondo UML Frameworks Spring Framework Spring Framework es un framework de Java que nos facilitará la creación de aplicaciones. Diseñado por Rob Johnson. Mientras escribía el libro Expert One-on-one J2EE Design And Development (Programmer to programmer) Adquirió su mayor notoriedad a partir de 2005 Hibernate Hibernate es una herramienta de Mapeo objeto-relacional para la plataforma Java 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). Spring Framework Spring Framework Capa de Presentación Spring Framework Capa de Presentación Spring Security Spring Security es un subproyecto del framework Spring, que permite gestionar completamente la seguridad de nuestras aplicaciones Java, y cuyas ventajas principales son las siguientes: Es capaz de gestionar seguridad en varios niveles: URLs que se solicitan al servidor, acceso a métodos y clases Java, y acceso a instancias concretas de las clases. Permite separar la lógica de nuestras aplicaciones del control de la seguridad, utilizando filtros para las peticiones al servidor de aplicaciones o aspectos para la seguridad en clases y métodos. La configuración de la seguridad es portable de un servidor a otro, ya que se encuentra dentro del WAR o el EAR de nuestras aplicaciones. Soporta muchos modelos de identificación de los usuarios (HTTP BASIC, HTTP Digest, basada en formulario, LDAP, OpenID, JAAS y muchos más). Además podemos ampliar estos mecanismos implementando nuestras propias clases que extiendan el modelo de Spring Security. CSS Framework Modular CSS Header Footer Main content Sub content Main nav Local nav breadcrumbs CSS Framework @import url("typo.CSS"); @import url("layout.CSS"); @import url("displaytag.CSS"); @import url("form.CSS"); @import url("message.CSS"); Sitemesh Sitemesh es un framework de decoración y layout para páginas web, que facilita la creación de grandes sitios que contienen gran cantidad de páginas, las cuales requieren un consistente “look and feel”, navegación y complejo sistema de capas. SiteMesh es un esquema para crear páginas web consistentes, basado en los patrones decorator y composite. Sitemesh Sitemesh Modular CSS + Sitemesh Header Main nav Breadcrumbs Local nav Footer Main content Sub content Librería utilidades La librería de utilidades va a contener un conjunto de clases que servirán para agilizar los desarrollos de las aplicaciones creadas del sistema. Esta librería va a aportar 3 tipos de clases fundamentalmente: 1. Utilidades para Test unitarios Junit. 2. DAOS genéricos 3. Lógica negocio. La documentación de uso la podremos encontrar en: http://www.ckyosei.org/documentacion/alpha-util/1.0/ Maven Maven es una herramienta de software para la gestión y construcción de proyectos Java creada por Jason van Zyl, de Sonatype, en 2002.. Maven utiliza un Project Object Model (POM) para describir el proyecto de software a construir, sus dependencias de otros módulos y componentes externo, y el orden de construcción de los elementos. Viene con objetivos predefinidos para realizar ciertas tareas claramente definidas, como la compilación del código y su empaquetado, etc. Maven es una herramienta de gestión integral de proyectos Maven Ciclo de Vida de Maven 1. compile 2. Test 3. package 4. Install 5. deploy Archetypes Los Archetypes en maven , son plantillas de proyectos que nos permiten mejorar la productividad de los desarrollos debido a que nos centramos directamente en el desarrollo del proyecto. Alguien ya se preocupo de la organización de las carpetas y de las configuraciones basicas. Con el uso de los Archetypes de maven podemos estandarizar el layout de las carpetas para todos los proyectos , un tema no menor para el proceso de desarrollo. La documentación de uso la podremos encontrar en: http://www.ckyosei.org/documentacion/CkyoseiArchetype/1.0/ Archetypes El arquetipo diseñado para generar las aplicaciones para el sistema kyosei-Polis va a generar una aplicación Web con las siguientes funcionalidades. Generación de menús dinámicos (TagLib): 1. Navegación global 2. Navegación Local Implantación de Spring security: 1. Creación de la BBDD Spring secuirty en hsqldb. 2. Autenticación de usuarios: (Spring Security) 3. Registro de usuarios Configuración de Hibernate. Configuración de Framework CSS. Configuración de Sitemesh de decoración. Internacionalización I18N Archetypes Aplicación Alpha Demostración. Fin