Capas de la arquitectura de referencia Capa de interfaz de usuario

Anuncio
DOCUMENTO DE ARQUITECTURA DE REFERENCIA PARA APLICACIONES WEB
GESTIÓN INFORMÁTICA
UNIVERSIDAD DE ANTIOQUIA
Este documento se estructura teniendo en cuenta las recomendaciones del artículo de IBM
“Reference
Architecture:
The
best
of
best
practices”
http://www.ibm.com/developerworks/rational/library/2774.html puede encontrarse también en
Alfresco: Company Home > Sistemas > ArquitecturaDeSoftware.
Capas de la arquitectura de referencia
El documento de referencia está dividido en las siguientes capas:
Capa de Interfaz de usuario: estándares y herramientas para soportar la interfaz de usuario y/o
los servicios de presentación. (p.e: html, interfaces de usuario enriquecidas).
Capa de negocio: estándares y herramientas para soportar la lógica de negocio. (p.e: lenguajes,
estándares de componentes).
Capa media: estándares y herramientas para soportar la gestión de transacciones y la
comunicación entre procesos. (p.e: servidores de aplicaciones, APIs de IPC).
Capa de software de sistema: estándares y herramientas para soportar la gestión de sistemas.
(p.e: sistemas operativos y sistemas de gestión de bases de datos).
A continuación se detalla cada una de las capas:
Capa de interfaz de usuario
Área
Estilos y usabilidad
Productos/servicios/componentes
Ver el documento “Estandarización de línea grafica.doc” que se encuentra
en alfresco Company Home > Sistemas > FormatosyEstandares. Este
documento define los estándares de línea gráfica que deben seguirse para
el desarrollo de aplicaciones web.
Herramientas de construcción
Lenguajes
1. Para aplicaciones nuevas web se debe usar JSF 1.2 y Icefaces 1.8.
 Para creación de reportes se debe usar JasperReports 3.7.4
2. Para aplicaciones preexistentes en lenguaje PHP 5, el mantenimiento
se debe realizar con el mismo lenguaje y versión.
Entorno
de 1. Se debe usar el IDE Netbeans 6.5.1, e incluir el plugin para generar
desarrollo (IDE)
Estrategias
diseño
Seguridad
proyectos usando la plantilla básica de aplicaciones web. Ver
documento “ManualPlantilla.doc” que se puede encontrar en Alfresco
Company Home > Sistemas > ArquitecturaDeSoftware, el cual explica
la forma de instalación y el uso de este plugin.
Se deben incluir los plugins: jasperserver-plugin-3.7.4.nbm, iReport3.7.4.nbm, Facelets support, ICEfaces run-time libraries versión 1.8.2.2
2. Para php: Dado que en PHP se hacen solo modificaciones a
aplicaciones existentes, debe utilizarse lo que actualmente se tiene.
de Para aplicaciones en Java, se debe implementar el patrón de diseño MVC,
el cual se apoya en JSF 1.2 y Icefaces 1.8 para las capas de Vista y
Controlador. Como aplicación de referencia puede consultarse el proyecto
ejemploPlantilla que se encuentra en la raíz del CVS instalado en sikuani.
Toda página que use datos personales del usuario debe utilizar el
protocolo https y por ende todos los componentes usados en esta, con el
fin de no generar en el navegador del usuario alertas de seguridad. La
Universidad dispone de certificado de seguridad válido en su servidor de
aplicaciones de producción y de un certificado no válido en pruebas.
Componentes
1. Presentación de Para la presentación de errores al usuario se debe usar el estándar de JSF
errores
al 1.2
usuario
Capa de negocio
Área
Componentes
1. Lenguajes
Productos/servicios/componentes
1. Java (máximo 1.5.018)
2. PHP 5 para mantenimiento de aplicativos hechos en este lenguaje.
2. Entorno
de Se debe usar el IDE Netbeans 6.5.1
desarrollo (IDE)
Uso de patrones
Patrón DAO
Patrón recomendado por J2EE
http://java.sun.com/blueprints/corej2eepatterns/Patterns/DataAccessObj
ect.html para acceso a datos.
Este patrón aplica tanto para aplicaciones Java como para aplicaciones
PHP.
Patrón Factory
Patrón recomendado por J2EE para complementar el patrón DAO. Este
patrón se usa para dar la posibilidad de acceder a los datos a través
Hibernate o JDBC. La configuración del acceso debe hacerse a través de
DataSource, por ende la aplicación no debe almacenar contraseñas de
acceso a base de datos.
La url de referencia es la misma que para el patrón DAO.
Este patrón aplica tanto para aplicaciones Java como para aplicaciones
PHP.
Patrón DTO
Patrón recomendado por J2EE
http://java.sun.com/blueprints/corej2eepatterns/Patterns/TransferObject.
html para transferencia de datos. Este patrón se usa transversal a toda la
aplicación.
Este patrón aplica tanto para aplicaciones Java como para aplicaciones
PHP.
Componentes de servicio
1. Seguridad
Para aplicaciones java, utilizar el OID institucional para la autenticación y el
MUA (Módulo Único de Autorización) para la autorización a través de un
filtro de seguridad proveído por la institución.
1. Manejo de logs
Log4j versión 1.2.9. En el archivo de propiedades log4j.properties incluido
en el proyecto de referencia se detallan los parámetros que se deben
configurar para el uso de la librería log4j.
Los llamados a la librería pueden ser mediante un método que existe en el
backing bean común que se llama redirectError o mediante un llamado
directo al servicio de registro de log de la librería log4j.
2. Lógica
de La lógica de negocio se debe manejar a través de clases dentro del paquete
negocio
“bl” (business logic).
3. Servicios web
Las clases clientes de servicios web, deben ubicarse dentro del paquete
“bl”.
Para el consumo de servicios web proveídos por la institución se debe
usar la librería OrgSistemasSecurity.jar tal como se indica en el manual
“Para consumir servicios web UdeA. docx“
4. Enrutamiento de Esto es gestionado por IceFaces y JSF 1.2.
peticiones desde
la interfaz de
usuario hacia la
lógica
de
negocio
5. Filtros
Cualquier filtro necesario en la aplicación, deberá ubicarse en el paquete
“flt”.
Componentes de acceso a datos
1. Procedimientos Con el fin de hacer más segura la aplicación y sus transacciones, todas las
almacenados
operaciones (consulta, actualización, creación y eliminación) sobre la base
de datos deben realizarse a través de procedimientos almacenados y
funciones.
El usuario con el cual se accede a la base de datos debe ser diferente al
dueño del esquema, normalmente debe llamarse consultaXXXXX donde
XXXXX es el nombre del sistema (P.E. consultaReune, consultaMares, etc.).
A dicho usuario se le deben otorgar los permisos necesarios para la
ejecución de los procedimientos y funciones creados.
2. Tipos de acceso 1. Utilizar Hibernate 3.0 cuando la aplicación no requiera ejecutar un alto
a datos
contenido de consultas.
2. Utilizar JDBC en caso contrario.
De acuerdo con las condiciones de la aplicación, puede darse una
combinación de ambos tipos de acceso. Esta decisión se toma durante la
etapa de diseño de la aplicación.
La configuración del acceso debe hacerse a través de DataSource, por ende
la aplicación no debe almacenar contraseñas de acceso a base de datos.
Capa media
Área
Servidores
aplicaciones
Servicios
directorio
Productos/servicios/componentes
de Para aplicaciones web Java, Oracle Application Server 10.1.3.5
de Oracle Internet Directory (OID).
Capa de software de sistema
Área
Sistemas operativos
SGBD
Productos/servicios/componentes
Estaciones para desarrollo: Microsoft Windows 7 y posteriores.
Oracle 10g
Ambientes: desarrollo, pruebas y producción –
Diagrama general del estándar de arquitectura para desarrollo de
aplicaciones web en java
Descargar