Download Evaluación de la arquitectura necesaria y diseño de un prototipo
Document related concepts
no text concepts found
Transcript
Sistemas de e-Participación: evaluación de la arquitectura, diseño e implementación de un prototipo que incorpora gestión de organizaciones y territorios Rocío Martín Hernando ÍNDICE Introducción e-Participación ciudadana y las TICs Ventajas de la participación ciudadana Objetivos del proyecto Arquitectura y Tecnologías del sistema Evaluación y Comparativa de la Arquitectura Sistema en la Gestión de organizaciones y territorios Demostración del sistema Introducción La misión de la Asociación Ciudades Kyosei: Impulsar la creación de un Sistema Integral de Participación Ciudadana Municipal basado en tecnologías y conceptos Web2.0, que sea capaz de acompañar, potenciar y dinamizar todas las iniciativas de participación cívica de la ciudad. Entorno Virtual de Participación Ciudadana es un espacio en Internet donde tanto los ayuntamientos, como los ciudadanos y sus asociaciones y organizaciones pueden poner a disposición del resto de ciudadanos, otros colectivos, medios de comunicación, etc. todas las informaciones referidas a las actividades participativas que se realizan en la ciudad. Partimos del prototipo alpha del sistema Kyosei-polis. Participación ciudadana y las TIC´s La e-Participación es la participación a través de Internet. Los espacios virtuales de participación promovidos por las instituciones introducen una nueva dimensión en la relación entre ciudadanía y poderes públicos fomentando la cultura democrática, mejorando los servicios públicos a través de la participación ciudadana. La participación ciudadana a través de Internet puede ayudar a generar una política más cercana y próxima a las inquietudes de la ciudadanía. Las políticas de participación a través de las nuevas tecnologías posibilitan una mayor transparencia y dotan al ayuntamiento de mayor legitimidad democrática. Es a nivel local donde conviene hacer más efectiva la participación de los ciudadanos debido a su proximidad con el ciudadano. Ventajas participación ciudadana Potencia la comunicación entre ciudadanos e instituciones públicas. Favorece y adecua el funcionamiento de las instituciones locales. Rompe con la apatía, la indiferencia y la desconfianza de la ciudadanía acercando la política a los ciudadanos. Promueve una mayor influencia y control de los ciudadanos sobre las políticas públicas. Ofrece a los representantes de las instituciones herramientas para evaluar su gestión y poder mejorar la misma gracias al apoyo ciudadano. Permite a los individuos mejorar sus condiciones de vida. Entorno virtual de participación ciudadana Flexible, Interfaz amigable y fácil de utilizar. Software libre. Permita que aquellos gobiernos municipales dotados de voluntad política para integrar la participación en sus procesos de toma de decisiones, dispongan de su “espacio virtual para la participación”. Permita a las Organizaciones, ONGs y colectivos ciudadanos tener sus propios espacios de intereses y distribución de información. Facilite el surgimiento de nuevas redes ciudadanas. Favorezca la generación y difusión de conocimiento entre los ciudadanos fomentando la cultura colaborativa. Pueda apoyar procesos participativos diversos. Promueva una discusión transparente, confortable y de calidad. Apoyo a las prácticas participativas presenciales ya existentes. Objetivos específicos I Estudio y análisis de necesidades de la participación ciudadana en el ámbito local, las Organizaciones municipales, las asociaciones ciudadanas y sus Territorios de actuación. Estudio de la tecnología utilizada en el prototipo alpha del sistema Kyosei-Polis y evaluación de las ventajas e inconvenientes del uso de los frameworks de Java Spring e Hibernate así como del resto de tecnologías utilizadas en el prototipo. Análisis y diseño de los módulos necesarios para la Gestión de Organizaciones y Territorios para el sistema Kyosei-Polis. Objetivos específicos II Implementación de un primer prototipo del sistema Kyosei-Polis que incorpore la gestión de organizaciones y territorios que dé soporte práctico al estudio de dicha arquitectura. Evaluar los resultados obtenidos y las dificultades encontradas en la utilización de las tecnologías incluidas en el prototipo inicial del sistema. Realización de un manual de desarrollador que dé soporte técnico a futuros desarrolladores. Realización de un manual de usuario que ofrezca un soporte sobre la utilización de la aplicación. Tecnologías utilizadas en el desarrollo Java (jdk 1.6) Eclipse Ganymede 3.4.2 Plugins Eclipse: Hibernate Tools, Subclipse, Maven 2.0 integration Maven 2.0.9 Tomcat 6.0 MySql 5.1 Hibernate 3.2.6 Subersion 1.5.4 y TortoiseSVN Toad Data Modeler 3.4 StarUML 5 Arquitectura y Tecnología empleada Spring Security Spring Web MVC Hibernate MySQL Spring MVC Permite al desarrollador centrarse en la lógica de negocio empleando buenos principios de diseño orientados a objetos. Hace uso de la inversión de control (código más limpio). Ofrece un soporte completo a formularios. Integración con múltiples tecnologías en la vista (view). Tiene una librería de etiquetas propia para JSP (Tag Library) Implementación Spring MVC Spring MVC VS STRUTS Objetivo a comparar Spring MVC Struts Capas MVC División clara entre Controllers, Models (JavaBeans) y Views. División menos clara entre capas. No tiene una interfaz bien definida para la capa de negocio. Flexibilidad en la implementación Muy flexible. Implementa toda su estructura mediante interfaces. Todas las partes del framework son configurables vía plugin. Más Testeable. Obliga a heredar de clases concretas tanto en sus Actions como en sus Forms. Menos Testeable. Implementación vista Integración con casi cualquier tecnología, no tiene porqué ser jsp. Obliga a que la vista sean jsp´s. Tecnología más nueva, menos documentación. Muy madura y abundante documentación y ejemplos. Madurez y documentación Hibernate Es un motor de persistencia de código abierto. Permite establecer relaciones entre clases Java y tablas de una base de datos haciendo uso de ficheros XML en los que se describe dicha relación y cómo persistir las clases Java. Permite desarrollar clases persistentes a partir de clases comunes, incluyendo asociación, herencia, polimorfismo, composición y colecciones de objetos. Ejemplo Hibernate (mapeo objeto-relacional tabla territory) hibernate.cfg.xml: fichero de configuración de Hibernate. Describe cómo Hibernate debe conectarse a la base de Territory datos. -territoryid: java.lang.Integer territory.hbm.xml: describen -territoryType: TerritoryType los mapeos entre las clases y -name: String -personalinfos: List <Personalinfo> las tablas de la base de datos.<<create>>+Territory() +getTerritoryid(): java.lang.Integer +setTerritoryid(territoryid: java.lang.Integer) Territory.java: Objeto java que +getTerritoryType(): TerritoryType hace +setTerritoryType(territoryType: referencia (mapeo) TerritoryType) a la tabla +getName(): Territory.String +setName(name: String) +getPersonalinfos(): List Territory -territoryid: java.lang.Integer -territoryType: TerritoryType -name: String -personalinfos: List <Personalinfo> -usersInterests: List <UsersInterest> <<create>>+Territory() +getTerritoryid(): java.lang.Integer +setTerritoryid(territoryid: java.lang.Integer) +getTerritoryType(): TerritoryType +setTerritoryType(territoryType: TerritoryType) +getName(): String +setName(name: String) +getPersonalinfos(): List +setPersonalinfos(personalinfos: List) +getUsersInterests(): List +setUsersInterests(usersInterests: List) Hibernate VS EJB3 (capa persistecia) Objetivo a comparar Hibernate EJB3 Curva de aprendizaje, Simplicidad y Madurez Muy corta, fácil de aprender. Siempre ha sido sencillo de utilizar. Más maduro. Similar a Hibernate. Versiones anteriores a EJB 3 la comparación favorecía a Hibernate. Dependencia de otros proyectos Hibernate se encarga únicamente de la capa de persistencia. Una implementación de la especificación EJB3 cubre todos los aspectos del desarrollo de una aplicación empresarial JEE. Comparativas de rendimiento Frente a versiones anteriores de EJB, era indudablemente mejor usar Hibernate. EJB3 nace con JEE 5.0 el mismo que viene optimizado y es un 60% más rápido y eficiente que JDK 1.4. Soportadas mediante extensiones de Hibernate y mediante el uso de otros frameworks como Spring Soportadas nativamente como parte de la especificación. Manejo de Transacciones Spring soporte de transacciones para Hibernate Ejemplo de soporte a transacciones declarados en el fichero baseTransactionProxy aplicationcontext.xml: territoryManager transactionManager MAVEN Herramienta software para la gestión y construcción de proyectos Java. Crea una estructura de directorios para nuestro proyecto. Carpetas para fuentes, imagenes, ficheros de configuración y datos, etc Utiliza un fichero de configuración XML denominado Project Object Model (POM). Consta de tareas claramente definidas, como la compilación del código, su empaquetado, documentación, métricas sobre el código fuente y un innumerable número de informes son todos controlados por el POM. Listo para usar en red y descargar plugins de un repositorio. Beneficios de la arquitectura utilizada MVC si se desean cambiar elementos de una capa tan sólo serían necesarios cambios en esa capa reduciendo al mínimo posible las dependencias entre capas. Hibernate hace el mapeo objeto-relacional y la conexión de una manera transparente reduciéndose a unas pocas líneas de código. No nos tenemos que preocupar de abrir y cerrar conexiones a Base de datos. Maven esta herramienta mediante sus tareas nos ayudará a la compilación, gestión de dependencias, generar ejecutables, etc. Spring facilita la integración con otros frameworks con el fin de obtener los beneficios que el desarrollador desea de cada una de ellas. Spring esta diseñado con interfaces promoviendo así la reutilización de código y un estándar del paradigma orientado a objetos. Spring ofrece simplificación del desarrollo, consistencia y estructuración. Spring Security garantiza y brinda todas las funcionalidades necesarias para no poner en riesgo la seguridad del sistema. Desventajas de la arquitectura utilizada Fue que muchas veces es necesario utilizar muchos archivos XML, lo cual a veces es inevitable para configurar ciertos aspectos del framework. Exceso de frameworks. Proceso de aprendizaje más costoso. Implementación de la gestión de organizaciones y territorios en el sistema Kyosei-Polis Representar geográficamente la ciudad, permitiendo crear un modelo geográfico de “región, ciudad, distrito, barrio”. Registrar organizaciones ciudadanas y gubernamentales que trabajan en la ciudad, estableciendo para cada una las temáticas que trabajan y los territorios sobre los que actúan. Registrar usuarios, que además de establecer un perfil personal, pueden señalar cuáles son sus intereses, tanto desde un punto de vista temático (ecología, tránsito, derechos humanos, etc.) como geográfico (en tal ciudad y tal barrio). Esto permitirá que cuando las organizaciones publiquen actividades los potenciales usuarios interesados en ellas (de acuerdo a sus intereses geográficos, temáticos y de organizaciones) se podrán apuntar a ellas. Gestión de Territorios Definir Tipos de Territorios Modelo geográfico Definir Territorios Definir Relaciones entre Tipos de Territorios Definir Relaciones entre Territorios País España Comunidad Autónoma Castilla León Ávila Provincia Gestión organizaciones Registrar Organizaciones ciudadanas y gubernamentales. Establecer sus territorios de actuación. Establecer sus temáticas de interés. Registrar actividades. Registrar documentos de la organización. Participación Ciudadana Asociación Ciudades Kyosei Alcalá de Henares Gestión de Usuarios Registrar usuario. Crear su perfil. Visualizar los territorios, organizaciones y temáticas registradas en el sistema. Registrar sus Intereses: Territorios, Organizaciones, Temáticas, Actividades, etc. Visualizar espacio de las organizaciones y apuntarse a sus actividades. Modelo físico de datos PERSONALINFO ORGANIZATION TERRITORY Diagrama de casos de uso Usuario Administrador Conclusiones Escasa madurez alcanzada en el campo de la participación ciudadana. Contribuir a facilitar el trabajo de futuros desarrolladores del sistema. Curva de aprendizaje del sistema alpha Kyosei-polis costosa. Reducir la tecnología más sencilla o menos frameworks. Contribuir al fomento de la participación ciudadana. Incorporar al sistema Kyosei-polis un prototipo para la gestión de organizaciones y territorios. Demostración Implementación de un prototipo que incorpora la gestión de organizaciones y territorios. FIN Gracias por su atención.