39
openFWPA Internacional openFWPA Presentación de openFWPA Internacional (Presentacion_openFWPA_20111230_v1.0)

01. Presentacion openFWPA 20111230 v1 - Joinup.eu · 2017-10-03 · Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011 Como tantos otros proyectos de éxito, FWPA empezó pequeño

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 01. Presentacion openFWPA 20111230 v1 - Joinup.eu · 2017-10-03 · Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011 Como tantos otros proyectos de éxito, FWPA empezó pequeño

openFWPA Internacional

openFWPA

Presentación de openFWPA Internacional

(Presentacion_openFWPA_20111230_v1.0)

Page 2: 01. Presentacion openFWPA 20111230 v1 - Joinup.eu · 2017-10-03 · Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011 Como tantos otros proyectos de éxito, FWPA empezó pequeño

Proyecto OpenFWPA Internacional

openFWPA

Página 2 de 39

Estado Definitivo

Documento Presentación de openFWPA Internacional

Cluster TIC (www.clustertic.net) 01. Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011

ÍNDICE 1. Control del documento..........................................................................................................................3

1.1. Información general .......................................................................................................................3 1.2. Histórico de revisiones...................................................................................................................3 1.3. Estado del documento ....................................................................................................................3

2. Presentación de openFWPA Internacional ...........................................................................................4 2.1. Introducción ...................................................................................................................................4 2.2. Historia de OpenFWPA .................................................................................................................8 2.3. Visión general de openFWPA......................................................................................................10

2.3.1. Aceptación ............................................................................................................................11 2.3.2. Entorno de desarrollo ............................................................................................................14 2.3.3. Código abierto.......................................................................................................................14 2.3.4. Sistema de tiempo de ejecución (runtime) de openFWPA ...................................................15 2.3.5. Módulos de integración.........................................................................................................16 2.3.6. Seguridad ..............................................................................................................................16

2.3.6.1. Seguridad en openFWPA...............................................................................................18 2.3.7. Operaciones...........................................................................................................................19 2.3.8. Documentación .....................................................................................................................21

2.4. Empaquetamiento de openFWPA................................................................................................21 2.5. Requerimientos técnicos y del sistema ........................................................................................23 2.6. Funcionalidades ...........................................................................................................................24 2.7. Lista de componentes de terceras partes ......................................................................................24 2.8. Arquitectura de referencia............................................................................................................30

3. Arquitectura Modelo – Vista – Controlador con openFWPA.............................................................34 3.1. MVC.............................................................................................................................................34 3.2. Desarrollo de la vista....................................................................................................................38

3.2.1. Accesibilidad.........................................................................................................................38

Page 3: 01. Presentacion openFWPA 20111230 v1 - Joinup.eu · 2017-10-03 · Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011 Como tantos otros proyectos de éxito, FWPA empezó pequeño

Proyecto OpenFWPA Internacional

openFWPA

Página 3 de 39

Estado Definitivo

Documento Presentación de openFWPA Internacional

Cluster TIC (www.clustertic.net) 01. Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011

1. Control del documento

1.1. Información general

Título Manual de Instalación en Windows

Creado por: Jorge Méndez Rodríguez

A revisar por: Consultores Senior: Juan José Parada Vales e Ignacio Álvarez Valdeón

A aprobar por: Jefe de Proyecto: Joaquín Fernández Juárez

1.2. Histórico de revisiones

Versión Fecha Autor Observaciones

1.0 30/12/2011 Jorge Méndez Rodríguez

1.3. Estado del documento

Versión Estado Fecha

1.0 Definitivo 30/12/2011

Page 4: 01. Presentacion openFWPA 20111230 v1 - Joinup.eu · 2017-10-03 · Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011 Como tantos otros proyectos de éxito, FWPA empezó pequeño

Proyecto OpenFWPA Internacional

openFWPA

Página 4 de 39

Estado Definitivo

Documento Presentación de openFWPA Internacional

Cluster TIC (www.clustertic.net) 01. Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011

2. Presentación de openFWPA Internacional

2.1. Introducción

openFWPA es el Framework de desarrollo libre para sistemas de administración electrónica y

gobierno electrónico desarrollado por el Gobierno del Principado de Asturias. Está basado en la tecnología J2EE y su objetivo es facilitar el diseño, implementación, implantación y mantenimiento de las aplicaciones. openFWPA es Software Libre / Open Source y está publicado bajo una doble licencia: LGPL 3.0 (o superior) y EUPL 1.0 (o superior). La Licencia Pública General Menor del proyecto GNU (LGPL) es una de las licencias desarrolladas y promovidas por la Free Software Foundation (FSF), y da permisos de reproducción, distribución, modificación y redistribución con copyleft, aunque no se impide la utilización de componentes privativos dentro del sistema. La Licencia Pública de la Unión Europea (EUPL) es una licencia de software libre con copyleft creada y apoyada por la Unión Europea para el impulso del Software Libre en las administraciones públicas.

Ilustración 1: Aplicación base - appblank

Desde el punto de vista técnico, openFWPA es un framework basado en el patrón de diseño MVC,

construido sobre Struts y Spring, incorporando además otros proyectos Open Source como

Display Tag, Log4J, JUnit, JasperReports, etc… Además, también incluye componentes propios

Page 5: 01. Presentacion openFWPA 20111230 v1 - Joinup.eu · 2017-10-03 · Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011 Como tantos otros proyectos de éxito, FWPA empezó pequeño

Proyecto OpenFWPA Internacional

openFWPA

Página 5 de 39

Estado Definitivo

Documento Presentación de openFWPA Internacional

Cluster TIC (www.clustertic.net) 01. Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011

para cubrir otras funcionalidades como la configuración, la inicialización de las aplicaciones o la integración entre sistemas. openFWPA es esencialmente un framework de desarrollo para sistemas de administración electrónica y gobierno electrónico basado en la tecnología J2EE y que permiten facilitar el diseño, implementación y mantenimiento de las aplicaciones. Consiste en más de 100.000 líneas de código desarrolladas por el Principado de Asturias, y de cuya solidez y estabilidad son indicativas las decenas de sistemas en producción que funcionan sobre él. openFWPA va a definir un conjunto de estándares de desarrollo, de obligado cumplimiento, para exigir y garantizar unos niveles mínimos de calidad en las aplicaciones J2EE que se desarrollen. Las grandes organizaciones requieren de un número importante de sistemas de información. Existen muchas tecnologías alternativas para la realización de estos sistemas, y a menudo es necesario seleccionar una plataforma estándar. No disponer de un Framework estándar para el desarrollo de aplicaciones implica:

• Dispersión tecnológica mayores costes de desarrollo • Mantenimiento • Operación • Integración • Mayor formación • etc…

2 Problemática de no disponer de un Framework estándar de desarrollo

Page 6: 01. Presentacion openFWPA 20111230 v1 - Joinup.eu · 2017-10-03 · Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011 Como tantos otros proyectos de éxito, FWPA empezó pequeño

Proyecto OpenFWPA Internacional

openFWPA

Página 6 de 39

Estado Definitivo

Documento Presentación de openFWPA Internacional

Cluster TIC (www.clustertic.net) 01. Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011

Seleccionar una plataforma (J2EE/.NET/TUXEDO) no resuelve completamente el problema, hace falta algo más.

Solución, desarrollar un Framework. En nuestro contexto, openFWPA nos permite la estandarización y simplificación del proceso de desarrollo de un tipo específico de aplicaciones.

• Simplificación y homogeneización del proceso de desarrollo de aplicaciones. Para ello openFWPA proporciona una arquitectura reutilizable y un conjunto de herramientas y librerías que implementan algunos de los componentes más habituales, y de escritura más tediosa, en aplicaciones Web. Todo ello debiera redundar en un menor coste total de propiedad (TCO) de las soluciones desarrolladas sobre openFWPA.

• Definición de estándares de desarrollo, calidad y aceptación. Se trata de un conjunto de

directrices, de obligado cumplimiento, para exigir y garantizar unos niveles mínimos de calidad en las aplicaciones J2EE. Estos estándares son internos al Principado de Asturias, y son por tanto aplicables solamente dentro de aquellos proyectos desarrollados dentro del Principado de Asturias.

Disponer de un Framework plantea una serie de ventajas:

• Reutilización. El Framework contiene una serie de componentes (menús, autenticación, operación) que sólo han de configurarse y no desarrollarse.

• Homogeneización. Todas las aplicaciones tienen la misma estructura y los mismos elementos. Se desarrollan, mantienen y operan (monitorizan/instalan) de la misma manera.

• Mayor Calidad. Pueden establecerse criterios objetivos de calidad, basados en métricas. Puede especificarse qué quiero y cómo lo quiero construido.

Page 7: 01. Presentacion openFWPA 20111230 v1 - Joinup.eu · 2017-10-03 · Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011 Como tantos otros proyectos de éxito, FWPA empezó pequeño

Proyecto OpenFWPA Internacional

openFWPA

Página 7 de 39

Estado Definitivo

Documento Presentación de openFWPA Internacional

Cluster TIC (www.clustertic.net) 01. Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011

Los principales objetivos que se buscan con el desarrollo de un Framework estándar son reducir los tiempos de desarrollo de las aplicaciones, un menor coste mantenimiento y menor coste de formación, entre otros. openFWPA posee las siguientes características:

• Uso de software libre. Hay una serie de proyectos del mundo del software libre que poseen una excelente calidad, lo que los habilita para participar en aplicaciones de misión crítica.

• Uso de patrones de diseño. openFWPA promueve el uso de patrones de diseño, en dos sentidos

importantes. Primeramente, el Framework está diseñado y construido sobre patrones. Por otro lado, las aplicaciones que se desarrollan sobre el Framework hacen uso asimismo de patrones. Entre otros, las aplicaciones desarrolladas sobre openFWPA siguen una arquitectura Modelo2, el estándar en aplicaciones Web (se trata de una adaptación del famoso MVC).

• Uso de estándares. En el diseño de openFWPA se ha promovido la utilización e incorporación

de estándares (por ejemplo, XHTML + CSS, etc.). El uso tanto de patrones de diseño como de estándares proporciona importantes ventajas en cuanto a la adaptabilidad y longevidad de las aplicaciones que los utilizan, al ser más fácilmente mantenidas, extendidas o reutilizadas.

• Aspecto corporativo. openFWPA incluye un conjunto de plantillas y componentes para

construir la capa de presentación de acuerdo a las guías de estilo corporativo del Principado de Asturias. Estas plantillas pueden modificarse de acuerdo a las necesidades de cada proyecto. Sin embargo, los proyectos del Principado de Asturias han de seguir las directrices de estilo corporativo.

• Integración de aplicaciones. La nueva funcionalidad, añadida en openFWPA en las últimas

versiones, facilita la integración de las aplicaciones con otros sistemas del Principado de Asturias (sistema de seguridad, comunicaciones, bases de datos corporativas, sistemas de seguridad, sistemas de CRM, etc.). Esta funcionalidad solo está disponible para los proyectos internos, al carecer de interés en aplicaciones desarrolladas fuera de la organización.

• Ciclo de vida. Las aplicaciones poseen un ciclo de vida más allá de su desarrollo y puesta en

producción. Éstas han de ser configuradas, migradas y operadas en los diversos entornos. Por ejemplo, el Framework proporciona piezas con una funcionalidad importante que facilita el soporte a la operación. Los componentes del Framework están preparados para ser gestionados “en caliente” desde una consola de operaciones, y ofrece componentes para aspectos críticos de operación (como gestión adecuada de logging, pistas de auditoría, estadísticas de rendimiento y uso). En general, estos aspectos se incorporan al Framework de manera transparente a las

Page 8: 01. Presentacion openFWPA 20111230 v1 - Joinup.eu · 2017-10-03 · Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011 Como tantos otros proyectos de éxito, FWPA empezó pequeño

Proyecto OpenFWPA Internacional

openFWPA

Página 8 de 39

Estado Definitivo

Documento Presentación de openFWPA Internacional

Cluster TIC (www.clustertic.net) 01. Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011

aplicaciones. Asimismo, se ofrece (opcionalmente) una serie de APIs avanzadas que permiten a las aplicaciones publicar funcionalidad en la consola de operaciones.

2.2. Historia de OpenFWPA

En Mayo de 2004, la Administración del Principado de Asturias se planteó lanzar un ambicioso programa de gobierno electrónico que consiguiera mejorar y ampliar los servicios estaba ofreciendo hasta entonces, y permitir con ello que administración, ciudadanos y empresas pudieran relacionarse sin desplazamientos, sin colas y sin horarios.

Durante la fase de evaluación de dicho programa se hizo patente la necesidad de contar con un único marco de trabajo que sirviera de base a todos los desarrollos que iban a ser necesarios. En aquel momento se disponía de más de 800 servidores, con casi 500 aplicativos desarrollados en más de 20 entornos de desarrollo distintos. Mantener este esquema complicaba mucho las cosas, ya que suponía muchos mayores costes en diferentes aspectos como integración, formación, operación, etc.

Para confeccionar la base tecnológica sobre la que se construirían los nuevos servicios se seleccionó J2EE (Java Enterprise Edition) como plataforma base y se comenzó con el desarrollo de lo que recibió el nombre de FWPA: el Framework J2EE del Principado de Asturias.

Page 9: 01. Presentacion openFWPA 20111230 v1 - Joinup.eu · 2017-10-03 · Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011 Como tantos otros proyectos de éxito, FWPA empezó pequeño

Proyecto OpenFWPA Internacional

openFWPA

Página 9 de 39

Estado Definitivo

Documento Presentación de openFWPA Internacional

Cluster TIC (www.clustertic.net) 01. Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011

Ilustración 3: Aplicación de ejemplo - sampleapp

Teníamos una visión de un único entorno de desarrollo común a todas las aplicaciones, que estuviera basado en una única tecnología y en el que módulos, componentes y servicios reutilizables permitieran crear potentes aplicaciones y nuevos servicios por composición. Un puzzle donde todas las piezas estuvieran hechas del mismo material (FWPA) y que nos permitiera prestar más y mejores servicios a través de nuevos canales de comunicación como Internet o el teléfono.

Al empezar a construir FWPA nos dimos cuenta de que iban a ser necesarias un número importante de piezas (librerías de logging, parseo de XML, un controlador MVC, etc.). Tras identificar e inventariar las necesidades acudimos al mundo del Software Libre, donde encontramos un enorme número de proyectos de gran calidad que estaban respaldados por potentes comunidades. Comprendimos entonces que era posible construir FWPA basándonos totalmente en Software Libre y que esto nos permitiría en algún momento revertir nuestros resultados a la propia comunidad, posibilitando que terceras partes usaran nuestro software igual que en ese momento nosotros usábamos el software que la comunidad estaba poniendo a nuestra disposición.

Page 10: 01. Presentacion openFWPA 20111230 v1 - Joinup.eu · 2017-10-03 · Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011 Como tantos otros proyectos de éxito, FWPA empezó pequeño

Proyecto OpenFWPA Internacional

openFWPA

Página 10 de 39

Estado Definitivo

Documento Presentación de openFWPA Internacional

Cluster TIC (www.clustertic.net) 01. Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011

Como tantos otros proyectos de éxito, FWPA empezó pequeño y fue creciendo a lo largo de múltiples iteraciones. Su evolución ha ido desarrollándose en base a una serie de requisitos básicos que se han ido incrementando con el tiempo y el uso. La primera versión de FWPA se inició en Mayo de 2004, y fue publicada en septiembre de ese mismo año. Mes y medio más tarde se liberaban las dos primeras aplicaciones.

En la actualidad, la versión 1.5 de FWPA supera las 100.000 líneas de código y da soporte a más de 150 aplicaciones instaladas en producción en la Administración del Principado de Asturias. Asimismo hay organizaciones empresariales que han desarrollado sistemas para sus clientes sobre esta tecnología, fuera del ámbito público. Se trata por tanto de un producto maduro y listo para empezar a ser usado por otras organizaciones públicas y privadas.

De todo esto surge openFWPA, como uno de los proyectos de liberación de Software Libre más importantes llevados a cabo hasta la fecha por un organismo público. Queremos elevar nuestras capacidades tecnológicas a un escalón superior al actual y creemos que la mejor forma de hacerlo es a través de la comunidad de Software Libre, compartiendo ideas, proyectos y desarrollos. Creemos que openFWPA puede ser la chispa que ayude a aglutinar en torno a esta comunidad a otras organizaciones y desarrolladores/as, persiguiendo ampliar y evolucionar esta base tecnológica.

Nos gustaría que openFWPA pudiera servir de base para desarrollar el paradigma del gobierno electrónico y que su comunidad facilite las vías de colaboración entre organismos públicos. Pensamos que esto puede tener un tremendo impacto en cuanto a la cantidad, calidad y transparencia de los servicios prestados por estos organismos a sus ciudadanos y empresas, que les dan razón de ser.

2.3. Visión general de openFWPA

El Framework de desarrollo J2EE openFWPA posee la siguiente estructura. Dentro de cada elemento se muestran los artefactos más relevantes:

Page 11: 01. Presentacion openFWPA 20111230 v1 - Joinup.eu · 2017-10-03 · Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011 Como tantos otros proyectos de éxito, FWPA empezó pequeño

Proyecto OpenFWPA Internacional

openFWPA

Página 11 de 39

Estado Definitivo

Documento Presentación de openFWPA Internacional

Cluster TIC (www.clustertic.net) 01. Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011

4 Estructura de openFWPA

A continuación, se muestran en más detalle los diversos elementos que lo componen.

2.3.1. Aceptación

5 Aceptación

En primer lugar debemos tener en cuenta los aspectos que nos gustaría que se tengan en cuenta en la construcción de todas nuestras aplicaciones, como por ejemplo:

• Uso de pool de conexiones • Mecanismos de autenticación homogéneos

Page 12: 01. Presentacion openFWPA 20111230 v1 - Joinup.eu · 2017-10-03 · Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011 Como tantos otros proyectos de éxito, FWPA empezó pequeño

Proyecto OpenFWPA Internacional

openFWPA

Página 12 de 39

Estado Definitivo

Documento Presentación de openFWPA Internacional

Cluster TIC (www.clustertic.net) 01. Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011

• MVC/Modelo2 • struts/spring/log4j… • Aspecto corporativo • Etc …

En segundo lugar, hay que definir las directrices tanto de desarrollo como de aceptación que deberán seguir todas nuestras aplicaciones.

6 Directrices que deben seguir todas nuestras aplicaciones

Es recomendable disponer de una plantilla de aceptación para comprobar que se están cumpliendo todos los criterios definidos previamente, y garantizar que nuestra aplicación tiene el nivel de calidad exigida.

Page 13: 01. Presentacion openFWPA 20111230 v1 - Joinup.eu · 2017-10-03 · Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011 Como tantos otros proyectos de éxito, FWPA empezó pequeño

Proyecto OpenFWPA Internacional

openFWPA

Página 13 de 39

Estado Definitivo

Documento Presentación de openFWPA Internacional

Cluster TIC (www.clustertic.net) 01. Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011

7 Ejemplo de plantilla en formato de lista

openFWPA incluye una metodología de pruebas de rendimiento donde se especifica el mínimo de información que ha de suministrarse con la aplicación. Esto nos garantiza que la aplicación correrá en la arquitectura elegida y nos permite dimensionar la capacidad hardware, redes de comunicaciones, etc. Es recomendable analizar los siguientes factores:

• Uso de red • Como se degrada en función del número de usuarios conectados

o Tiempo respuesta de la aplicación o Calidad del servicio o …

• …

8 Ejemplo de criterios analizados sobre una aplicación

Page 14: 01. Presentacion openFWPA 20111230 v1 - Joinup.eu · 2017-10-03 · Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011 Como tantos otros proyectos de éxito, FWPA empezó pequeño

Proyecto OpenFWPA Internacional

openFWPA

Página 14 de 39

Estado Definitivo

Documento Presentación de openFWPA Internacional

Cluster TIC (www.clustertic.net) 01. Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011

2.3.2. Entorno de desarrollo

El Framework de desarrollo es agnóstico en cuanto al entorno de desarrollo. Éste debiera poseer los siguientes elementos:

• Entorno Integrado de desarrollo. Ofrece un entorno donde los desarrolladores pueden desarrollar, compilar, depurar y probar el software en construcción.

• Herramientas de despliegue. Permite el despliegue de las aplicaciones en los distintos entornos (máquina local, máquinas del entorno de desarrollo, etc.).

• Diseño de informes. Permite la construcción de informes en distintos formatos. • Gestión de la configuración. Permite la gestión del cambio de los distintos elementos del sistema

(código fuente, scripts de construcción, pruebas, etc.). Se trata de un sistema de control de versiones. • Entorno de integración (semi) continua. El entorno de desarrollo debiera ofrecer funcionalidad

avanzada de integración continua o semi-continua.

Estas herramientas deben instalarse y configurarse de manera estándar (igual para todas las estaciones de trabajo). Puedes obtener más información a través del documento de instalación del entorno de desarrollo tanto en Linux como en Windows.

2.3.3. Código abierto

Tras la definición de los requisitos del Framework en términos de herramientas necesarias para el entorno de desarrollo, directrices de aceptación y diseño del runtime del Framework, se realizó la selección de distintos componentes del mundo del código abierto o gratuito para su inclusión. Por ejemplo, se seleccionó Eclipse como Entorno Integrado de Desarrollo, o SVN para el Control de Versiones. Como elementos más relevantes, destaca el uso de Spring o Struts.

9 Código abierto

A continuación podemos ver algunos de los proyectos del mundo del software libre utilizados por openFWPA. .

Page 15: 01. Presentacion openFWPA 20111230 v1 - Joinup.eu · 2017-10-03 · Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011 Como tantos otros proyectos de éxito, FWPA empezó pequeño

Proyecto OpenFWPA Internacional

openFWPA

Página 15 de 39

Estado Definitivo

Documento Presentación de openFWPA Internacional

Cluster TIC (www.clustertic.net) 01. Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011

10 Ejemplo de proyectos de código abierto utilizados en openFWPA

2.3.4. Sistema de tiempo de ejecución (runtime) de openFWPA

11 Runtime openFWPA

El sistema de tiempo de ejecución es un conjunto de ficheros .jar que se despliegan con cada una de las aplicaciones del Framework. Este sistema sigue las directrices de construcción de aplicaciones, y ofrece componentes reutilizables y una base extensible para el desarrollo basado fuertemente en patrones de diseño. De

Page 16: 01. Presentacion openFWPA 20111230 v1 - Joinup.eu · 2017-10-03 · Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011 Como tantos otros proyectos de éxito, FWPA empezó pequeño

Proyecto OpenFWPA Internacional

openFWPA

Página 16 de 39

Estado Definitivo

Documento Presentación de openFWPA Internacional

Cluster TIC (www.clustertic.net) 01. Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011

esta manera, las aplicaciones se reducen en tamaño y complejidad, teniendo toda la misma estructura interna (basada en una adaptación del patrón MVC llamada Modelo2). El sistema de tiempo de ejecución emplea diversos componentes del mundo de código abierto, usando lo mejor de cada uno de ellos e integrándolos. Esta aproximación ha facilitado enormemente el desarrollo, y emplea internamente dos Framework – Struts y Spring. openFWPA contiene por ejemplo clases de soporte para el desarrollo de nuevas aplicaciones así como clases que facilitan la implementación de las correspondientes pruebas unitarias.

2.3.5. Módulos de integración

12 Runtime openFWPA

Existen una serie de componentes que se incluyen dentro de openFWPA como jars, y que se distribuyen junto con este Framework. Estos componentes se verán con más detalle en los documentos correspondientes a cada uno de estos módulos. Los sistemas a construir dentro del ámbito de la Administración Pública presentan por norma general un fuerte componente de integración con otros sistemas. Se han escrito adaptadores para los distintos sistemas corporativos que puedan existir dentro de la organización, de manera que se simplifica y homogeneiza enormemente las tareas de integración siguiendo un patrón Proxy.

2.3.6. Seguridad

Es crucial que las aplicaciones desarrolladas posean un nivel de seguridad suficiente, y que esta seguridad pueda gestionarse centralmente desde los sistemas corporativos de seguridad.

Page 17: 01. Presentacion openFWPA 20111230 v1 - Joinup.eu · 2017-10-03 · Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011 Como tantos otros proyectos de éxito, FWPA empezó pequeño

Proyecto OpenFWPA Internacional

openFWPA

Página 17 de 39

Estado Definitivo

Documento Presentación de openFWPA Internacional

Cluster TIC (www.clustertic.net) 01. Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011

13 Seguridad Todas las aplicaciones necesitan un modelo de seguridad que les permita:

• Asegurar la comunicación. ¿Qué protocolos han de usarse para garantizar la confidencialidad y que el mensaje no se ha modificado por el camino?

• Autenticar. ¿Con quién estoy hablando? Usando distintos elementos (usuario/contraseña, certificados digitales, IP, etc…).

• Autorizar. ¿Qué le está permitido hacer al usuario? • Etc…

Actualmente existe un gran número de estándares de la industria:

• LDAP • X.509 • SSL • JAAS • Etc…

La solución técnica está marcada fuertemente por los requisitos de la organización:

• N sistemas de almacenamiento de contraseñas. o Y son móviles!

• Validación de certificados digitales o n Autoridades de Certificación!

• Gran variedad de escenarios de autenticación: o ej. Usuario + posiciones de clave + dir. IP o ej. Usuario + clave o ej. Certificado digital

• Protección basada en SSL (v2 y v3) de algunas partes de la aplicación. • Validación de ciudadanos, representantes de empresas, empleados públicos, atención telefónica,

entidades colaboradoras, … Muchas de estas circunstancias se combinan en muchas aplicaciones!

Page 18: 01. Presentacion openFWPA 20111230 v1 - Joinup.eu · 2017-10-03 · Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011 Como tantos otros proyectos de éxito, FWPA empezó pequeño

Proyecto OpenFWPA Internacional

openFWPA

Página 18 de 39

Estado Definitivo

Documento Presentación de openFWPA Internacional

Cluster TIC (www.clustertic.net) 01. Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011

2.3.6.1. Seguridad en openFWPA

A este fin, se ha desarrollado toda una infraestructura de seguridad sobre estándares (X509, Java Authentication and Authorization Service (JASS), Web Services, etc.).

• Filtro de Seguridad J2EE Servlet Filter • Redirección a páginas de login • Ficheros de configuración

o Definición de recursos protegidos o Declaración de protocolos de acceso o Declaración de roles que tienen acceso

Desde el punto de vista de la aplicación, se trata de realizar una parametrización. Toda esta infraestructura es extensible. Dado que determinados proyectos se desarrollan por equipos externos sin acceso al entorno final de producción, se incluye un simulador de autenticación, de manera que determinados escenarios pueden ejecutarse empleando un documento XML en local como repositorio de credenciales. Asimismo, esta infraestructura es extensible, de manera que pueden desarrollarse adaptadores a otros repositorios (LDAP, etc) en proyectos ajenos a la organización propietaria.

Page 19: 01. Presentacion openFWPA 20111230 v1 - Joinup.eu · 2017-10-03 · Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011 Como tantos otros proyectos de éxito, FWPA empezó pequeño

Proyecto OpenFWPA Internacional

openFWPA

Página 19 de 39

Estado Definitivo

Documento Presentación de openFWPA Internacional

Cluster TIC (www.clustertic.net) 01. Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011

14 Aplicación independiente del sistema de autenticación

Podemos obtener más información sobre la seguridad en openFWPA revisando el documento [Componentes de openFWPA].

2.3.7. Operaciones

Las aplicaciones han de ser operadas en los distintos entornos, de manera que el personal de operaciones pueda mantener la aplicación en funcionamiento.

Page 20: 01. Presentacion openFWPA 20111230 v1 - Joinup.eu · 2017-10-03 · Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011 Como tantos otros proyectos de éxito, FWPA empezó pequeño

Proyecto OpenFWPA Internacional

openFWPA

Página 20 de 39

Estado Definitivo

Documento Presentación de openFWPA Internacional

Cluster TIC (www.clustertic.net) 01. Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011

15 Operaciones

El Framework posee una serie de herramientas que facilitan esta operación, como pueden ser:

• Filtro de compresión de tráfico http (gzip). Framework proporciona un filtro de compresión de las comunicaciones, de manera que se minimice la comunicación entre el servidor y el cliente.

• Manual de Operaciones. En este documento se describen las operaciones que pueden realizarse sobre la aplicación desplegada.

• Configuración. El Framework posee un subsistema flexible de configuración, de manera que las aplicaciones se aíslan de los repositorios de configuración.

• Pista de auditoría. Se proporciona funcionalidad para la generación de pistas de auditoría. • Gestión de logs configurables (log4j). El Framework proporciona un potente sistema de logs, de manera

que (por configuración) puede enviarse los mensajes a una BD, a ficheros de texto, XML, HTML, etc. Esta configuración puede cambiarse en caliente.

• Consola de Administración (JMX). Las aplicaciones desarrolladas con el Framework poseen una consola de administración Web para la modificación de los distintos componentes.

• Métricas de uso. Pueden habilitarse diversas métricas de uso de la aplicación, de manera transparente para las aplicaciones.

• Gestión en caliente de aplicaciones.

o Encender o apagar componentes (filtro de compresión) o Métricas de uso de la aplicación.

Page 21: 01. Presentacion openFWPA 20111230 v1 - Joinup.eu · 2017-10-03 · Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011 Como tantos otros proyectos de éxito, FWPA empezó pequeño

Proyecto OpenFWPA Internacional

openFWPA

Página 21 de 39

Estado Definitivo

Documento Presentación de openFWPA Internacional

Cluster TIC (www.clustertic.net) 01. Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011

o Modificar la configuración o Invocar métodos de los objetos registrados

2.3.8. Documentación

Con el Framework se entrega toda la documentación necesaria para el desarrollo y operación de aplicaciones. Se entregan una aplicación de ejemplo - sampleapp (con sus pruebas de rendimiento correspondientes) y una aplicación en blanco de partida - appblank, con la estructura de directorios creada.

16 Operaciones Esta documentación está dirigida tanto a los equipos de desarrollo como a los equipos de operaciones.

2.4. Empaquetamiento de openFWPA

El conjunto completo de entregables acompaña al openFWPA es el que sigue. (En algunas distribuciones, pueden no estar disponibles determinados elementos):

DOC

sampleapp

blankapp

Manual

desarrollo

apps

Pruebas

rendimiento

sampleapp

Page 22: 01. Presentacion openFWPA 20111230 v1 - Joinup.eu · 2017-10-03 · Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011 Como tantos otros proyectos de éxito, FWPA empezó pequeño

Proyecto OpenFWPA Internacional

openFWPA

Página 22 de 39

Estado Definitivo

Documento Presentación de openFWPA Internacional

Cluster TIC (www.clustertic.net) 01. Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011

• Presentación de openFWPA (este documento). • Manual de instalación en entorno Windows • Manual de instalación en entorno Linux • Componentes de openFWPA • openFWPA. (binarios y fuentes) • Aplicación de ejemplo: SampleApp (binarios y fuentes) • Aplicación en blanco: AppBlank (binarios y fuentes)

Page 23: 01. Presentacion openFWPA 20111230 v1 - Joinup.eu · 2017-10-03 · Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011 Como tantos otros proyectos de éxito, FWPA empezó pequeño

Proyecto OpenFWPA Internacional

openFWPA

Página 23 de 39

Estado Definitivo

Documento Presentación de openFWPA Internacional

Cluster TIC (www.clustertic.net) 01. Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011

Ilustración 17: Aplicación de ejemplo - sampleapp

2.5. Requerimientos técnicos y del sistema

Para la correcta ejecución de las aplicaciones que utilizan el openFWPA es necesario disponer de los siguientes elementos:

• Contenedor de aplicaciones J2EE con Java JRE 1.4.2 o superior

Page 24: 01. Presentacion openFWPA 20111230 v1 - Joinup.eu · 2017-10-03 · Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011 Como tantos otros proyectos de éxito, FWPA empezó pequeño

Proyecto OpenFWPA Internacional

openFWPA

Página 24 de 39

Estado Definitivo

Documento Presentación de openFWPA Internacional

Cluster TIC (www.clustertic.net) 01. Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011

2.6. Funcionalidades

Las funcionalidades soportadas por el openFWPA son las siguientes:

• Extensión del framework Struts con una colección propia de clases Action. • Acceso a datos a través de objetos DAO. • Automatización de la carga de consultas SQL desde ficheros de propiedades. • Plantillas (Tiles) para la creación rápida de páginas JSP. • Hojas de estilos con el look & feel del Principado de Asturias. • Facilidades para la generación de informes en formato PDF. • Etiquetas JSP para la inclusión de listas, barras de navegación, fechas y calendarios en las páginas web. • Integración de formularios (ActionForm) con entidades (ValueObject) de la aplicación. • Utilidades para la gestión de tablas de datos en formato {atributo, valor}. • Facilidades para la obtención de listas paginadas como resultado de consultas. • Herramienta para la generación automática de menús. • Infraestructura para pruebas unitarias. • Infraestructura para pruebas unitarias en contenedor. • Integración de una consola de monitorización y gestión basada en el estándar JMX [19]. • Jerarquía propia de excepciones. • Monitorización y control integrado de errores • Sistema de configuración centralizado. • Sistema de inicialización y arranque configurable. • Componentes para el acceso a pools de conexiones. • Sistema de logging con varios niveles. • Gestión de logging desde la consola de administración. • Monitor de rendimiento. • Sistema de monitorización para las clases Action. • Generación de estadísticas de acceso a las aplicaciones. • Generación de estadísticas de excepciones no controladas en las aplicaciones. • Componente para monitorizar el estado del sistema sobre el que corre la aplicación. • Infraestructura para filtros gestionados “en caliente”. • Inicialización de componentes configurables. • …

2.7. Lista de componentes de terceras partes

OpenFWPA incorpora componentes de terceras partes. Las aplicaciones que se construyan sobre el Framework han de utilizar las versiones enumeradas a continuación.

Page 25: 01. Presentacion openFWPA 20111230 v1 - Joinup.eu · 2017-10-03 · Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011 Como tantos otros proyectos de éxito, FWPA empezó pequeño

Proyecto OpenFWPA Internacional

openFWPA

Página 25 de 39

Estado Definitivo

Documento Presentación de openFWPA Internacional

Cluster TIC (www.clustertic.net) 01. Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011

En la siguiente tabla se muestran las librerías empleadas junto a su licencia de distribución correspondiente:

Librería Paquete Versión Licencia openFWPA openMCD openEUG

ant ant 1.6.1 Apache 2.0 SI

antlr antlr 2.7.2 BSD SI

aopalliance aopalliance 1.0 Public Domain SI SI

aspectj aspectjrt 1.5.3 Eclipse Public License 1.0 SI

axis axis-jaxrpc 1.3 Apache 2.0 SI

axis axis-jaxrpc 1.4 Apache 2.0 SI

axis axis-saaj 1.3 Apache 2.0 SI

axis axis-saaj 1.4 Apache 2.0 SI

axis axis-wsdl4j 1.5.1 Common Public License - v 1.0 SI

axis axis 1.3 Apache 2.0 SI SI

axis axis 1.4 Apache 2.0 SI SI

backport-util-concurrent backport-util-

concurrent 3.1 Public Domain SI SI

bouncycastle bcprov-jdk15 135

Propia, adaptación del MIT X11 License

(http://www.bouncycastle.org/licence.html)

SI

cactus cactus 13-1.6.1 Apache 2.0 SI SI

cglib cglib-nodep 2.1_3 Apache 2.0 SI SI

com.fdsapi fdsapi 1.1 BSD SI

com.h2database h2 1.1.105 Oracle Technology Network

Development and Distribution SI

com.ibatis ibatis2-common 2.1.6.589 Apache 2.0 SI

com.ibatis ibatis2-dao 2.1.6.589 Apache 2.0 SI

com.jamonapi jamon 2.6 BSD SI

com.jamonapi jamon 2.4 BSD SI

com.lowagie itext 1.3 Affero General Public License. SI

com.lowagie itext 1.3.1 Affero General Public License. SI

commons-beanutils commons-beanutils 1.6 Apache 1.1 SI

commons-beanutils commons-beanutils 1.7.0 Apache 2.0 SI SI

Page 26: 01. Presentacion openFWPA 20111230 v1 - Joinup.eu · 2017-10-03 · Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011 Como tantos otros proyectos de éxito, FWPA empezó pequeño

Proyecto OpenFWPA Internacional

openFWPA

Página 26 de 39

Estado Definitivo

Documento Presentación de openFWPA Internacional

Cluster TIC (www.clustertic.net) 01. Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011

Librería Paquete Versión Licencia openFWPA openMCD openEUG

commons-chain commons-chain 1.0 Apache 2.0 SI

commons-codec commons-codec 1.3 Apache 2.0 SI SI

commons-collections commons-collections 3.0 Apache 2.0 SI

commons-collections commons-collections 3.2.1 Apache 2.0 SI

commons-collections commons-collections 3.1 Apache 2.0 SI SI

commons-collections commons-collections 3.2 Apache 2.0 SI

commons-dbcp commons-dbcp 1.2 Apache 2.0 SI SI

commons-digester commons-digester 1.7 Apache 2.0 SI SI

commons-discovery commons-discovery 0.2 Apache 2.0 SI SI

commons-fileupload commons-fileupload 1.0 Apache 2.0 SI

commons-httpclient commons-httpclient 3.0.1 Apache 2.0 SI

commons-io commons-io 1.2 Apache 2.0 SI

commons-io commons-io 1.3 Apache 2.0 SI

commons-io commons-io 1.3.2 Apache 2.0 SI

commons-lang commons-lang 2.4 Apache 2.0 SI SI

commons-lang commons-lang 2.5 Apache 2.0 SI

commons-logging commons-logging 1.0.4 Apache 2.0 SI SI

commons-net commons-net 1.4.1 Apache 2.0 SI

commons-pool commons-pool 1.2 Apache 2.0 SI SI

commons-validator commons-validator 1.1.4 Apache 2.0 SI

concurrent concurrent 1.3.4 Public Domain SI SI

dbunit dbunit 2.1 LGPL SI SI

displaytag displaytag-export-poi 1.2 Artistic SI

displaytag displaytag 1.2 Artistic SI SI

dom4j dom4j 1.6.1 BSD SI

dwr dwr 1.0rc1 Apache 2.0 SI

dwr dwr 1.1.3 Apache 2.0 SI

easymock easymock 1.2_Java1.3 Apache 2.0 SI

eu.medsea.mimeutil mime-util 2.1.3 Apache 2.0 SI

httpunit httpunit 1.5.4 Propia

(http://httpunit.sourceforge.net/doc/license.html)

SI

janino janino 2.5.10 New BSD SI

jasperreports jasperreports 1.1.1 LGPLv3 SI

Page 27: 01. Presentacion openFWPA 20111230 v1 - Joinup.eu · 2017-10-03 · Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011 Como tantos otros proyectos de éxito, FWPA empezó pequeño

Proyecto OpenFWPA Internacional

openFWPA

Página 27 de 39

Estado Definitivo

Documento Presentación de openFWPA Internacional

Cluster TIC (www.clustertic.net) 01. Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011

Librería Paquete Versión Licencia openFWPA openMCD openEUG

javax.activation activation 1.1

COMMON DEVELOPMENT AND DISTRIBUTION

LICENSE (CDDL) Version 1.0 1 (* no es compatible con la GPL)

SI SI

javax.ejb ejb 2.0 Apache 2.0 SI SI

javax.jms jms 1.1 Apache 2.0 SI SI

javax.jmx jmxri 1.1 Oracle Binary Code SI SI

javax.jmx jmxtools 1.1 Oracle Binary Code SI SI

javax.mail mail 1.4 Javamail 1.4 License SI SI

javax.servlet servlet-api 2.4 Apache 2.0 SI

javax.servlet servlet-api 2.3 Apache 2.0 SI SI

javax.transaction jta 1.0.1B Oracle Technology Network

Development and Distribution SI

jaxen jaxen 1.1.1 Apache-style SI

jdom jdom 1.0 Apache-style SI

joda-time joda-time 1.4 Apache 2.0 SI SI

net.sf.jsr107cache jsr107cache 1.0 Apache 2.0 SI

junit junit 3.8.1 Common Public License - v 1.0 SI SI

jwebunit jwebunit 1.2 LGPL SI SI

log4j log4j 1.2.14 Apache 2.0 SI SI

mysql mysql-connector-java 3.1.12 GPL SI

mysql mysql-connector-java 5.1.6 GPL SI

nekohtml nekohtml 0.8.1 Apache 2.0 SI

net.sf.ehcache ehcache 1.5.0 Apache 2.0 + Terracotta Public

License (variación MPL) SI SI

net.sf.josql josql 1.5 Apache 2.0 SI

net.sf.josql.gentlyweb gentlyWEB-utils 1.1 Apache 2.0 SI

net.sf.jsr107cache jsr107cache 1.0 Apache 2.0 SI

opensymphony oscache 2.3 ApachePL-1.1, Apache-2.0 SI SI

oracle classes12 1.2 Oracle Technology Network

Development and Distribution SI SI

Page 28: 01. Presentacion openFWPA 20111230 v1 - Joinup.eu · 2017-10-03 · Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011 Como tantos otros proyectos de éxito, FWPA empezó pequeño

Proyecto OpenFWPA Internacional

openFWPA

Página 28 de 39

Estado Definitivo

Documento Presentación de openFWPA Internacional

Cluster TIC (www.clustertic.net) 01. Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011

Librería Paquete Versión Licencia openFWPA openMCD openEUG

org.antlr antlr-runtime 3.0 BSD SI

org.apache.ant ant 1.7.1 Apache 2.0 SI

org.apache.ant ant-launcher 1.7.1 Apache 2.0 SI

org.apache.ibatis ibatis-sqlmap 2.3.0 Apache 2.0 SI SI

org.apache.poi poi 3.2-FINAL Apache 2.0 SI

org.codehaus.woodstox wstx-asl 3.2.1 Apache License 2.0 SI SI

org.compass-project compass 2.2.0 Apache 2.0 SI

org.csvbeans csvbeans 0.7.1 Apache 2.0 SI

org.drools drools-compiler 4.0.7 Apache 2.0 SI

org.drools drools-core 4.0.7 Apache 2.0 SI

org.eclipse.jdt core 3.2.3.v_686_

R32x

Eclipse Foundation Software User

Agreement(http://www.eclipse.org/legal/epl/notice.html)

SI

org.jibx jibx-extras 1.1.6 BSD form + Apache BCEL +

XPP3 SI SI

org.jibx maven-jibx-plugin 1.1.6 BSD form + Apache BCEL +

XPP3 SI SI

org.jibx jibx-run 1.1.6 BSD form + Apache BCEL +

XPP3 SI SI

org.mvel mvel 1.3.1-java1.4 Apache 2.0 SI

org.seleniumhq.selenium.client-drivers

selenium-java-client-driver

1.0.2 Apache 2.0 SI

org.seleniumhq.selenium.server

selenium-server-coreless

1.0.3 Apache 2.0 SI

org.slf4j jcl104-over-slf4j 1.4.2 MIT SI

org.slf4j slf4j-api 1.4.2 MIT SI

org.slf4j slf4j-api 1.5.6 MIT SI

org.slf4j slf4j-log4j12 1.4.2 MIT SI

org.slf4j slf4j-log4j12 1.5.6 MIT SI

org.springframework beandoc 0.7.0 Apache 2.0 SI

org.springframework spring-test 2.5.6 Apache 2.0 SI SI

org.springframework spring-test 2.5.6.SEC02 Apache 2.0 SI SI

org.springframework spring-core 2.5.6.SEC02 Apache 2.0 SI SI

org.springframework spring-beans 2.5.6.SEC02 Apache 2.0 SI SI

org.springframework spring-orm 2.5.6.SEC02 Apache 2.0 SI SI

Page 29: 01. Presentacion openFWPA 20111230 v1 - Joinup.eu · 2017-10-03 · Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011 Como tantos otros proyectos de éxito, FWPA empezó pequeño

Proyecto OpenFWPA Internacional

openFWPA

Página 29 de 39

Estado Definitivo

Documento Presentación de openFWPA Internacional

Cluster TIC (www.clustertic.net) 01. Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011

Librería Paquete Versión Licencia openFWPA openMCD openEUG

org.springframework spring-jdbc 2.5.6.SEC02 Apache 2.0 SI SI

org.springframework spring-webmvc-struts 2.5.6.SEC02 Apache 2.0 SI SI

org.springframework spring-aop 2.5.6.SEC02 Apache 2.0 SI SI

org.springframework spring-web 2.5.6.SEC02 Apache 2.0 SI SI

org.springframework spring-context 2.5.6.SEC02 Apache 2.0 SI SI

org.springmodules spring-modules-cache 0.9 Apache 2.0 SI

org.springmodules spring-modules-cache 0.8a Apache 1.1 SI

org.tuckey Urlrewritefilter 2.5.1 BSD SI SI

org.uddi4j uddi4j 2.0.5 IBM Public License Version 1.0 SI SI

oro oro 2.0.8 Apache 2.0 SI SI

ostermiller ostermiller-utils 1.05.00 GNU General Public License 2 o

sup SI SI

postgresql postgresql 8.2-507.jdbc3 BSD SI

regexp regexp 1.3 Apache 2.0 SI SI

rhino js 1.5R4.1 MPL 1.1/GPL 2.0 SI

soap soap 2.3 Apache 2.0 SI SI

stax stax-api 1.0.1 Apache License 2.0 SI SI

struts struts 1.2.7 Apache 2.0 SI SI

struts struts-el 1.2.7 Apache 2.0 SI SI

struts-menu struts-menu 2.4.3 Apache 1.1 SI SI

strutstestcase strutstestcase 2.1.2-1.1-2.3 Apache 1.1 SI SI

tomcat catalina-util 4.1.36 Apache 2.0 SI

velocity velocity 1.4 Apache 2.0 SI SI

velocity-tools velocity-tools-view 1.0 Apache 2.0 SI

wsdl4j wsdl4j 1.5.1 Common Public License - v 1.0 SI SI

xerces xercesImpl 2.4.0 Apache 2.0 SI

xerces xercesImpl 2.6.2 Apache 2.0 SI SI

xerces xmlParserAPIs 2.6.2 Apache 2.0 SI SI

xml-apis xml-apis 1.0.b2 Apache 2.0 SI

xpp3 xpp3_min 1.1.3.4.O Indiana University Extreme! Lab

Software License SI

xstream xstream 1.1.3 BSD SI SI

Page 30: 01. Presentacion openFWPA 20111230 v1 - Joinup.eu · 2017-10-03 · Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011 Como tantos otros proyectos de éxito, FWPA empezó pequeño

Proyecto OpenFWPA Internacional

openFWPA

Página 30 de 39

Estado Definitivo

Documento Presentación de openFWPA Internacional

Cluster TIC (www.clustertic.net) 01. Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011

2.8. Arquitectura de referencia

OpenFWPA hace un uso intensivo de Patrones de Diseño. A fin de lograr una homogeneidad efectiva en las aplicaciones realizadaS, se propone una Arquitectura de Referencia que describe la arquitectura de las aplicaciones desarrolladas con el openFWPA. El uso de esta arquitectura de referencia es obligatorio, al ser parte de las Directrices de Aceptación de aplicaciones. Una arquitectura de referencia es una descripción de los elementos de los que se compone una aplicación, y de las relaciones entre estos elementos. Manejar arquitecturas de referencia es tremendamente beneficioso, ya que permite: Homogeneizar las aplicaciones. Al usar la arquitectura de referencia, las aplicaciones son estructuralmente iguales, cambiando sólo los elementos en concreto, pero no la forma que tienen de relacionarse. Esto tiene un impacto directo en el esfuerzo en desarrollo y mantenimiento. Extender las mejores prácticas y tecnologías. La arquitectura de referencia ha de mantenerse, de manera que se vayan introduciendo cambios basados en cambios tecnológicos o en el establecimiento de mejores prácticas. La arquitectura de referencia J2EE propuesta se basa en el patrón Modelo2 sobre una disposición en capas, y puede verse en el siguiente diagrama:

Page 31: 01. Presentacion openFWPA 20111230 v1 - Joinup.eu · 2017-10-03 · Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011 Como tantos otros proyectos de éxito, FWPA empezó pequeño

Proyecto OpenFWPA Internacional

openFWPA

Página 31 de 39

Estado Definitivo

Documento Presentación de openFWPA Internacional

Cluster TIC (www.clustertic.net) 01. Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011

18 Arquitectura de referencia El concepto de separación en capas está claramente definido en esta arquitectura de referencia. La comunicación entre capas sólo puede existir a través de interfaces, y los datos deben pasarse en objetos VO

(Value Objects). Los elementos de la arquitectura de referencia pueden verse en la siguiente tabla:

Page 32: 01. Presentacion openFWPA 20111230 v1 - Joinup.eu · 2017-10-03 · Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011 Como tantos otros proyectos de éxito, FWPA empezó pequeño

Proyecto OpenFWPA Internacional

openFWPA

Página 32 de 39

Estado Definitivo

Documento Presentación de openFWPA Internacional

Cluster TIC (www.clustertic.net) 01. Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011

Elementos Descripción Patrones relevantes

Capa de Acceso a Datos Encapsula toda la lógica de acceso a datos (por ejemplo una base de datos). Asimismo, encapsula los accesos a sistemas remotos (por ejemplo un servicio Web).

Data Access Object, Proxy, Value Object, Absctract Factory

Capa de Objetos de Datos Representa las entidades del modelo, como objetos JavaBean y sin lógica de negocio.

Value Object

Capa de Negocio Implementa la lógica ‘de negocio’, dando soporte a los procesos de negocio asociados (ej. hacer una transacción bancaria). Oculta toda la complejidad a la capa superior. Si requiere acceder a datos en una BD o en otro sistema, se apoya en la capa de acceso a datos.

Business Delegate, Façade

Capa de Controlador Transforma eventos en la vista en invocaciones de objetos en el modelo. Actualiza la vista en base a cambios en el modelo.

MVC, Command

Capa de Vista

Presenta el modelo al usuario, y comunica sus acciones al controlador

MVC

Filtro web Permiten filtrar las peticiones de los clientes, a fin de proporcionar autenticación, asertos a toda la aplicación, compresión de datos, etc.

Chain Of Responsibility

Datasource Gestiona pools de conexiones a fin de no crear una conexión por cliente a Base de Datos u otros repositorios.

Gestión de sesión Gestiona la sesión de los clientes, de manera que

Page 33: 01. Presentacion openFWPA 20111230 v1 - Joinup.eu · 2017-10-03 · Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011 Como tantos otros proyectos de éxito, FWPA empezó pequeño

Proyecto OpenFWPA Internacional

openFWPA

Página 33 de 39

Estado Definitivo

Documento Presentación de openFWPA Internacional

Cluster TIC (www.clustertic.net) 01. Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011

desconecta a los inactivos. Sistema externo Representa cualquier sistema a

integrar a través de un interfaz bien definido.

Dado el número de librerías que implementan el patrón MVC, tiene todo el sentido usar alguna de ellas en vez de implementarlo para un proyecto. openFWPA da soporte para este patrón. Caso de ser una aplicación J2EE no construida sobre openFWPA, debiera hacer uso del Framework Struts. Una vez fijada la arquitectura de referencia, se ha acudido al mundo del software libre buscando implementaciones de los elementos reseñados en ella. Por ejemplo, para la capa del controlador se ha optado por usar una implementación de un proyecto del software libre en vez de proceder a realizar una implementación propia. Asimismo, openFWPA ofrece soporte en la implementación de todas las capas, desde acceso a datos hasta presentación. En general, prácticamente todas las librerías utilizadas por openFWPA provienen de la Apache Software Foundation (ASF) y también pueden ser consideradas como estándares “de facto” en sus respectivas áreas. Las librerías proporcionadas por la ASF, son de código libre y abierto, están mantenidas por un nutrido grupo de desarrolladores de todo el mundo y son muy habituales en proyectos de desarrollo (principalmente Java) de cualquier índole.

Page 34: 01. Presentacion openFWPA 20111230 v1 - Joinup.eu · 2017-10-03 · Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011 Como tantos otros proyectos de éxito, FWPA empezó pequeño

Proyecto OpenFWPA Internacional

openFWPA

Página 34 de 39

Estado Definitivo

Documento Presentación de openFWPA Internacional

Cluster TIC (www.clustertic.net) 01. Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011

19 Componentes genéricos de openFWPA

3. Arquitectura Modelo – Vista – Controlador con openFWPA

3.1. MVC

El patrón MVC – Modelo 2 puede ser visto como una implementación del lado del servidor del patrón de diseño Modelo-Vista-Controlador (MVC). Este patrón describe cómo debe implementarse una aplicación con tres elementos básicos:

• Modelo. Se trata de las entidades del dominio del problema, implementadas con total independencia de su presentación.

Page 35: 01. Presentacion openFWPA 20111230 v1 - Joinup.eu · 2017-10-03 · Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011 Como tantos otros proyectos de éxito, FWPA empezó pequeño

Proyecto OpenFWPA Internacional

openFWPA

Página 35 de 39

Estado Definitivo

Documento Presentación de openFWPA Internacional

Cluster TIC (www.clustertic.net) 01. Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011

• Vista (Presentación). Esta capa se encarga de mostrar las entidades del modelo al usuario. En openFWPA, se implementa esta capa sobre la tecnología JSP. En esta capa, no hay lógica de negocio

• Controlador. Traduce eventos/operaciones realizadas sobre la vista a invocaciones de métodos

en el modelo. En openFWPA se emplean servlet para esta capa. Básicamente, en esta capa se procesa la petición de entrada de un cliente, se accede a las entidades del modelo y se coloca cualquier elemento a pasar a la vista en algún ámbito de aplicación (request, session, etc.). Asimismo, dispara un evento que se mapeará a una página jsp que mostrará los resultados.

Esta estrategia da lugar a una separación entre presentación y contenido, produciéndose una clara definición de los roles y responsabilidades de los desarrolladores y diseñadores de páginas, en los equipos de programación. De hecho, cuanto más compleja sea la aplicación, mayores son los beneficios de utilizar la arquitectura de Modelo 2.

20 Modelo-Vista-Controlador

El proyecto Struts de la Apache Software Foundation es una implementación del MVC Modelo 2. El núcleo del framework Struts es una capa de control flexible basada en tecnologías estándar como servlets, JavaBeans, ResourceBundles y XML, así como varios paquetes del proyecto Jakarta Commons. (http://jakarta.apache.org/commons). Struts suministra su propio componente controlador (Controller) y se integra con otras tecnologías para proporcionar el Modelo y la Vista. Para el Modelo, Struts puede interactuar con tecnologías de acceso a datos estándar, como JDBC y EJB, así como con la mayoría de paquetes de terceras partes, como Hibernate, iBATIS, u Object Relational Bridge. Para la Vista, Struts trabaja bien con JSPs, incluyendo JSTL y JSF, así como con Velocity, XSLT y otros sistemas de presentación. Actualmente, openFWPA sólo da soporte a JDBC y JSP.

Page 36: 01. Presentacion openFWPA 20111230 v1 - Joinup.eu · 2017-10-03 · Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011 Como tantos otros proyectos de éxito, FWPA empezó pequeño

Proyecto OpenFWPA Internacional

openFWPA

Página 36 de 39

Estado Definitivo

Documento Presentación de openFWPA Internacional

Cluster TIC (www.clustertic.net) 01. Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011

La figura siguiente muestra como es el ciclo petición-accion-jsp del framework Struts:

21 Ciclo petición-acción-jsp de struts

Page 37: 01. Presentacion openFWPA 20111230 v1 - Joinup.eu · 2017-10-03 · Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011 Como tantos otros proyectos de éxito, FWPA empezó pequeño

Proyecto OpenFWPA Internacional

openFWPA

Página 37 de 39

Estado Definitivo

Documento Presentación de openFWPA Internacional

Cluster TIC (www.clustertic.net) 01. Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011

22 Estructura de capas de las aplicaciones J2EE con openFWPA

Page 38: 01. Presentacion openFWPA 20111230 v1 - Joinup.eu · 2017-10-03 · Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011 Como tantos otros proyectos de éxito, FWPA empezó pequeño

Proyecto OpenFWPA Internacional

openFWPA

Página 38 de 39

Estado Definitivo

Documento Presentación de openFWPA Internacional

Cluster TIC (www.clustertic.net) 01. Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011

3.2. Desarrollo de la vista

3.2.1. Accesibilidad

Un aspecto que se ha tenido en cuenta en openFWPA es el de la accesibilidad. Podemos definir la accesibilidad como la posibilidad de que un sitio o servicio Web pueda ser visitado y utilizado de forma satisfactoria por el mayor número posible de personas, independientemente de sus propias limitaciones o de las derivadas de su entorno. Para tener en cuenta la accesibilidad en openFWPA se han tenido en cuenta las ‘Directrices de Accesibilidad para el Contenido Web 1.0’. (WCAG 1.0) [http://www.w3.org/TR/WCAG10/]. Las Pautas de Accesibilidad al Contenido Web están formadas por 14 pautas generales divididas en un total de 65 puntos de verificación. Cada punto de verificación tiene asignada una prioridad (1, 2 o 3) que indica cómo afecta a la accesibilidad de un sitio Web si dicho punto de verificación no se cumple. Existen tres niveles de adecuación (A, AA y AAA) que indican el grado de cumplimiento de los puntos de verificación por un determinado sitio Web. Tanto en el nuevo modelo de etiquetas para el diseño de interfaces de usuario como en las aplicaciones distribuidas en openFWPA (appBlank, sampleApp), se ha intentado satisfacer un nivel de adecuación AA [http://www.w3.org/WAI/WCAG1AA-Conformance]. El punto de verificación 3.2 de la prioridad 2 de las Directrices de Accesibilidad para el Contenido Web 1.0 (WCAG 1.0) [http://www.w3.org/TR/WCAG10/] indica que se deben desarrollar documentos que estén validados por las gramáticas formales publicadas. Todo el código de las aplicaciones distribuidas con la openFWPA están escritos siguiendo una gramática formal (identificados mediante !DOCTYPE) y validados con el servicio de validación [http://validator.w3.org/] proporcionado por el W3C [http://www.w3.org/]. En el desarrollo de cualquier aplicación desarrollada utilizando openFWPA, se recomienda validar las páginas JSP con alguna herramienta disponible que verifique que la gramática formal utilizada es correcta.

23 Servicio de validación de gramáticas Las aplicaciones distribuidas con openFWPA se han desarrollado utilizando la gramática XHTML 1.0 con el DTD "Strict". Esta gramática da prioridad a la estructura frente a la presentación. Por lo tanto todo lo referente a la maquetación y presentación se debe incluir en las hojas de estilo. En openFWPA todas las hojas de estilos propias han sido validadas con el servicio de validación de CSS [http://jigsaw.w3.org/css-validator/] proporcionado por el W3C [http://www.w3.org/]. De la misma forma que se recomienda validar la gramática utilizada, también se recomienda validar las hojas de estilo.

Page 39: 01. Presentacion openFWPA 20111230 v1 - Joinup.eu · 2017-10-03 · Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011 Como tantos otros proyectos de éxito, FWPA empezó pequeño

Proyecto OpenFWPA Internacional

openFWPA

Página 39 de 39

Estado Definitivo

Documento Presentación de openFWPA Internacional

Cluster TIC (www.clustertic.net) 01. Presentacion_openFWPA_20111230_v1.0.docx 30/12/2011

24 Servicio de validación de hojas de estilo openFWPA también recomienda el uso de alguna herramienta de evaluación automática para comprobar:

• Sintaxis de las páginas, tanto del código HTML como de las hojas de estilo, para verificar que están bien formadas y son válidas

• Accesibilidad. Estas herramientas permiten identificar algunos de los problemas de accesibilidad del código HTML (nivel de adecuación)

Existen varias herramientas de evaluación automática. De entre todas ellas, openFWPA recomienda la herramienta TAW [http://www.tawdis.net/], desarrollada por la Fundación CTIC [http://www.fundacionctic.org/]. :

25 TAW – Herramienta de evaluación automática