You are on page 1of 27

FW2 - Arquitectura Aplicaciones Web

FRAMEWORK 2 ARQUITECTURA APLICACIONES WEB


Versin 1.1 Septiembre 2008

Subdireccin General de Desarrollo, Tecnologa e Infraestructuras. Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales rea de Integracin y Arquitectura de Aplicaciones.

Pgina: 1

FW2 - Arquitectura Aplicaciones Web

CONTROL DE CAMBIOS
Fecha Versin Cambios

21/05/2008 11/09/2008

1.0 1.1

Primera versin Se eliminan las referencias a Remote Scripting y se sustituye por la librera DWR

Subdireccin General de Desarrollo, Tecnologa e Infraestructuras. Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales rea de Integracin y Arquitectura de Aplicaciones.

Pgina: 2

FW2 - Arquitectura Aplicaciones Web

INDICE 1 2 3 INTRODUCCION.................................................................................................... 4 GESTION DE USUARIOS...................................................................................... 5 CARACTERISTICAS DE LAS APLICACIONES ................................................. 5 3.1 CONFIGURACION ......................................................................................... 5 3.2 ARQUITECTURA DE LAS APLICACIONES .............................................. 6 3.2.1 Controlador............................................................................................... 8 3.2.2 Modelo.................................................................................................... 11 3.2.3 Acciones ................................................................................................. 14 3.2.4 Vista........................................................................................................ 16 3.3 ESTRUCTURA DE DIRECTORIOS ............................................................ 17 3.4 PAQUETES JAVA ........................................................................................ 17 3.5 GESTION DE EXCEPCIONES..................................................................... 19 4 PORTAL DE LA APLICACION........................................................................... 20 4.1 Hojas de estilo ................................................................................................ 22 4.2 Libreras de etiquetas del portal: regiones...................................................... 22 4.3 Men de aplicacin......................................................................................... 23 5 ANEXO 1: Variables del fichero de configuracin................................................ 26

Subdireccin General de Desarrollo, Tecnologa e Infraestructuras. Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales rea de Integracin y Arquitectura de Aplicaciones.

Pgina: 3

FW2 - Arquitectura Aplicaciones Web

INTRODUCCION

La presente gua presenta el framework para el desarrollo de las aplicaciones de entorno web que se desarrollen para la Comunidad de Madrid con el framework 2. Por tanto, estos desarrollos debern seguir adems la normativa general para el Desarrollo de las aplicaciones con el framework 2. Este framework es propietario de ICM y se encuentra implementado en la librera Sistemas2.x. REQUISITOS Para facilitar el desarrollo de aplicaciones web ICM proporciona una serie de plantillas. Estas plantillas son distintas dependiendo del tipo de acceso a la aplicacin. Podemos tener varios tipos de aplicaciones dependiendo del tipo de acceso: Pblicas: Todo el mundo tiene acceso a la aplicacin. Privadas: Para acceder a la aplicacin es necesario disponer de un usuario autorizado. Dentro de estas aplicaciones diferenciamos: o Aplicaciones para intranet: El usuario es de la Comunidad de Madrid. o Aplicaciones para internet: El usuario no es de la Comunidad de Madrid pero es un usuario controlado y gestionado por la Comunidad de Madrid.

Subdireccin General de Desarrollo, Tecnologa e Infraestructuras. Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales rea de Integracin y Arquitectura de Aplicaciones.

Pgina: 4

FW2 - Arquitectura Aplicaciones Web

GESTION DE USUARIOS

En ICM existe una gestin centralizada de los usuarios. Las aplicaciones no podrn implementar su propia gestin de usuarios, tendrn que utilizar la de ICM. Para la gestin de usuarios se dispone de dos modelos de datos: USU: Para aplicaciones de Intranet. USUI: Para aplicaciones de Internet.

Dentro de estos modelos de datos se encuentran las aplicaciones, los usuarios, los grupos (perfiles) y las acciones. Para generar este modelo de datos en las instalaciones de los proveedores es necesario abrir el modelo Erwin correspondiente y hacer Forward Engineer/Schema generation. Los modelos de datos se encuentran en la web de soja.

CARACTERISTICAS DE LAS APLICACIONES

3.1
REQUISITOS

CONFIGURACION

El fichero de configuracin deber estar en el directorio WEB-INF/conf.

Subdireccin General de Desarrollo, Tecnologa e Infraestructuras. Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales rea de Integracin y Arquitectura de Aplicaciones.

Pgina: 5

FW2 - Arquitectura Aplicaciones Web

3.2

ARQUITECTURA DE LAS APLICACIONES


Las aplicaciones debern desarrollarse basando su capa de presentacin en el Framework propietario de ICM. Este framework esta basado en el MVC Modelo 2.

REQUISITOS

Model-View-Controller: El modelo vista controlador (MVC) permite independizar la presentacin, de la lgica de navegacin y de los datos de la aplicaciones. Front-Controller: El procesamiento de la peticiones es gestionado de manera centralizada, unificando y facilitando el desarrollo de polticas de seguridad, trazabilidad entre otras. Composite View: Permite gestionar la capa de presentacin como la composicin de mltiples vistas (encabezado, pie de pgina, mens, contenido, etc).

El siguiente grfico muestra las distintas capas a implementar en las aplicaciones:

Subdireccin General de Desarrollo, Tecnologa e Infraestructuras. Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales rea de Integracin y Arquitectura de Aplicaciones.

Pgina: 6

FW2 - Arquitectura Aplicaciones Web

Modelo contiene toda la lgica de la aplicacin y accede a la base de datos. Debe ser independiente de la vista y del controlador. Vista proporciona la presentacin del Modelo. La vista puede acceder a los mtodos get de los JavaBean para obtener informacin pero no puede acceder a los mtodos set para actualizar el Modelo sino que las actualizaciones se harn a travs del controlador. Controlador es quien reacciona frente a las peticiones de los usuarios y es el encargado de crear las distintas Acciones para ejecutar la peticin correspondiente. Acciones es el conjunto de clases que actan como intermediarias entre el Controlador y el Modelo. Reciben informacin de la Base de Datos a travs del Modelo y la proporcionan a la vista a travs de Java Beans.

Las peticiones al Controlador van a ser de la forma Opcion.icm. Ejemplo: http://icmweb01.icm.es/empleados/AltaEmpleado.icm El siguiente diagrama muestra los distintos elementos que son invocados en cuanto llega una peticin al Controlador.

Opcion.icm: Nombre de la opcin. Ejemplo:AltaEmpleado.icm OpcionA.java: Clase de Accin correspondiente. Ejemplo: AltaEmpleado.java TablaDAO.java: Clase del Modelo que accede a la Base de Datos y rellena objetos de clases JavaBean. Ejemplo: EmpleadosDAO.java opcionA.jsp: Pgina resultado de la opcin. Ejemplo: confirmacion_alta.jsp Bean1 y Bean2: Objetos con informacin para ser visualizada por las pginas JSP. Ejemplo: EmpleadoBean.java

Subdireccin General de Desarrollo, Tecnologa e Infraestructuras. Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales rea de Integracin y Arquitectura de Aplicaciones.

Pgina: 7

FW2 - Arquitectura Aplicaciones Web

3.2.1

Controlador

El Controlador es un Servlet, nico por aplicacin que recibe todas las peticiones de los clientes de la aplicacin y acta como un dispatcher enviando la peticin a la clase correspondiente. Tipos de controladores segn el tipo de acceso a la aplicacin (todos estos controladores se encuentran en sistemas.framework.controlador): ControladorPublico: Cualquiera tiene acceso a la aplicacin. ControladorPublico + Certificado digital (SSL): Para acceder a la aplicacin es necesario disponer de un certificado digital, aunque cualquiera que lo tenga puede acceder. ControladorPrivadoIntranet: Este tipo de controlador se usa en aplicaciones para Intranet donde el usuario es de la Comunidad de Madrid y se identifica mediante login/password. La informacin de los usuarios que tienen acceso a la aplicacin se encuentra dentro de un directorio LDAP y en la base de datos de usuarios USUG. ControladorPrivadoInternet: Este tipo de controlador se usa en aplicaciones para Internet donde el usuario es externo a la Comunidad de Madrid pero no es un ciudadano. En principio se accede solicitando un certificado digital y en caso de que no disponga de l nos mostrar una pantalla de login/password. La informacin de los usuarios que tienen acceso a la aplicacin se encuentra dentro de la base de datos de usuarios USUI.

Subdireccin General de Desarrollo, Tecnologa e Infraestructuras. Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales rea de Integracin y Arquitectura de Aplicaciones.

Pgina: 8

FW2 - Arquitectura Aplicaciones Web

Por cada peticin al Controlador desde el navegador se van a realizar las siguientes operaciones. Obtener informacin del usuario Comprobar el acceso del usuario a la aplicacin Obtener una conexin para el acceso a la Base de Datos Indicar que las operaciones de BD son en una transaccin (autocommit a false) Cargar y crear una instancia de la clase suministrada en el parmetro opcion Procesar dicha clase Realizar un commit o un rollback de la transaccin dependiendo de si el proceso anterior ha ido bien o no. Capturar los posibles errores del proceso y mostrarlos en el fichero de trazas y en el navegador. Liberar la conexin con la Base de Datos

La clase Controlador es la nica que debe realizar el commit o el rollback. El hacer commit o rollback est prohibido en cualquier otra parte del cdigo. Tampoco se puede hacer commit o rollback en los procedimientos almacenados que son invocados desde java. La clase Controlador de la aplicacin se incluir en el paquete aplicacion.controlador. No se pueden crear nuevas clases Controlador.

Subdireccin General de Desarrollo, Tecnologa e Infraestructuras. Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales rea de Integracin y Arquitectura de Aplicaciones.

Pgina: 9

FW2 - Arquitectura Aplicaciones Web

Ejemplo de un controlador:
package empleados.controlador; import empleados.*; public class ControladorEmpleados extends sistemas.framework.controlador.ControladorPrivadoIntranet { public ControladorEmpleados() { } public String getPaquete() { return "empleados.acciones"; } public String getFicheroConfiguracion() { return "empleados.conf"; } public String getDirectorioPlantillas(String userAgent){ return "/WEB-INF/jsp/"; } }
ControladorPrivadoIntranet Controlador

ControladorEmpleados

Subdireccin General de Desarrollo, Tecnologa e Infraestructuras. Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales rea de Integracin y Arquitectura de Aplicaciones.

Pgina: 10

FW2 - Arquitectura Aplicaciones Web

3.2.2

Modelo

El Modelo comprende el conjunto de clases Java que implementan la lgica de negocio de la aplicacin. Las aplicaciones debern implementar la lgica de negocio atendiendo a los siguientes requisitos: La lgica se implementar en clases Java normales, comnmente conocidas como POJOs (Plain Old Java Object), de lo cual se deduce las siguientes normas: o o Se prohbe el uso de EJBs (Enterprise Java Beans). Las clases sern independientes de cualquier framework usado en la capa de presentacin, es decir, deben ser clases independientes de las acciones de nuestro framework. De forma que si se sustituyera el framework de presentacin no se viera afectada la parte de lgica de negocio.

REQUISITOS

La persistencia de los datos almacenados en la base de datos se realizar siguiendo el patrn DAO (Data Access Object). El patrn DAO permite encapsular y ocultar el acceso a base de datos a la capa de lgica, consiguindose independizar al mximo el desarrollo de las aplicaciones de la implementacin concreta de la persistencia. Todos los accesos a base de datos realizados por las aplicaciones se debern encapsular en clases DAO. Las clases DAO implementarn el acceso a base de datos mediante sentencias SQL directamente en el cdigo Java. No se utilizar ningn motor de persistencia ni ORM. Estas sentencias SQL se ejecutarn mediante PreparedStatement. El cdigo de acceso a Base de datos solo puede estar localizado en las clases DAO. Todas las clases del modelo estarn bajo el paquete aplicacin.modelo y dentro de este paquete se podr disponer de una estructura de paquetes.

Subdireccin General de Desarrollo, Tecnologa e Infraestructuras. Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales rea de Integracin y Arquitectura de Aplicaciones.

Pgina: 11

FW2 - Arquitectura Aplicaciones Web

El acceso a Base de Datos se va a realizar a travs de JDBC. Esto implica que necesitamos tener los drivers de JDBC de la Base de Datos que estemos utilizando. Los drivers en realidad son una librera de clases que en el caso de ORACLE es ojdbc14.jar. Esta librera slo se debe utilizar desde JBuilder o Eclipse, en el directorio lib de la aplicacin a la hora de compilar las clases java. A la hora de desplegar la aplicacin la librera de oracle no debe aparecer en el directorio WEB-INF/lib ya que el propio servidor de aplicaciones ya la incorpora. La conexin con la base de datos le llegar al modelo desde la capa de las acciones y el modelo se la pasar a las clases DAO para que la utilicen. Desde el Modelo nunca se van a crear conexiones ni se va a hacer commit ni rollback. El Modelo tiene que ser independiente de la forma en la que se van a presentar los datos esto quiere decir que nunca va a acceder al request ni al response. Para recibir o pasar informacin de esta capa a otras lo va a hacer mediante clases JavaBean. Estos JavaBean no van a procesar informacin simplemente van a contener propiedades y mtodos para acceder a esas propiedades. Todos los JavaBean deben heredar de ModeloBean.

A continuacin se muestra un ejemplo de una clase JavaBean:


package empleadosmvc.bean; import empleadosmvc.*; public class EmpleadosBean extends sistemas.framework.beans.ModeloBean { private String codigo; private String nombre; .... public EmpleadosBean() { } public String getCodigo() { return codigo; } public void setCodigo(String codigo) { this.codigo = codigo; } public String getNombre() { return nombre; } public void setNombre(String nombre) { this.nombre = nombre; }

ModeloBean

EmpleadoBean -codigo -nombre -apellido1 -apellido2 +getCodigo() +getNombre() +getApellidos() +getEdad()

Subdireccin General de Desarrollo, Tecnologa e Infraestructuras. Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales rea de Integracin y Arquitectura de Aplicaciones.

Pgina: 12

FW2 - Arquitectura Aplicaciones Web

Para el desarrollo de las clases DAO se ha creado dentro de la librera Sistemas una clase llamada ClaseDAO que obliga a implementar los mtodos de alta, baja, consulta y modificacin con un sintaxis comn a todas las clases DAO. Para desarrollar las clases DAO de la aplicacin hay que heredar de esta clase e implementar los mtodos necesarios. Los mtodos que no se necesite implementar devolvern una excepcin de que el mtodo no est implementado. Esta excepcin deber ser UnsupportedOperationException, y dicha excepcin deber tener el parmetro Operacin no disponible. Es decir, deber ser UnsupportedOperationException(Operacin no disponible). Se recuerda que el cdigo de acceso a base de datos deber incluirse dentro de un bloque try-catch. Los cursores debern cerrarse en la parte del finally.

Subdireccin General de Desarrollo, Tecnologa e Infraestructuras. Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales rea de Integracin y Arquitectura de Aplicaciones.

Pgina: 13

FW2 - Arquitectura Aplicaciones Web

3.2.3

Acciones

Para cada opcin de la aplicacin vamos a tener lo que vamos a llamar Acciones. Se trata de una clase Java que se corresponde con el nombre de la opcin y que implementa el interfaz Accion. Estas acciones van a ser invocadas por el Controlador. Para facilitar la creacin de Acciones se ha creado la clase ClaseAccion. Por lo tanto todas las clases que implementen una Accion tienen que heredar de ClaseAccion. En la implementacin tienen que sobreescribir el mtodo procesar. Estas acciones van a ser invocadas por el Controlador. Cada accin realiza las siguientes operaciones: Accede al Modelo para obtener o almacenar informacin Prepara el JavaBean y lo almacena en el mbito adecuado para que la correspondiente pgina JSP de la Vista lo lea. (En el caso de que tenga que hacerlo) Los posibles mbitos son: Aplicacin Sesin Request Page

Indica al Controlador cual es el destino del resultado de la opcin. Existe un fichero que mapea los destinos de cada opcin con la correspondiente pgina JSP.

Ejemplo de clase de Accion: package empleadosmvc.acciones; import empleadosmvc.modelo.EmpleadosDAO; import empleadosmvc.bean.EmpleadosBean; public class FormBajaEmpleado extends sistemas.framework.acciones.ClaseAccion { public static String NOMBRE_VISTA = "formulario-baja-empleado"; public FormBajaEmpleado() { super.tieneFormulariosSensibles = true; }

Subdireccin General de Desarrollo, Tecnologa e Infraestructuras. Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales rea de Integracin y Arquitectura de Aplicaciones.

Pgina: 14

FW2 - Arquitectura Aplicaciones Web

public String procesar() throws sistemas.framework.excepciones.AccionException { EmpleadosBean empleadosBean = new EmpleadosBean(); empleadosBean.setCodigo(request.getParameter("CODIGO")); try { empleadosBean =(EmpleadosBean) new EmpleadosDAO().consulta(con, empleadosBean); } catch (sistemas.framework.excepciones.DAOException ex) { throw new sistemas.framework.excepciones.AccionException(ex.getMessage()); } request.getSession(true).setAttribute("empleadosBeanId", empleadosBean); return NOMBRE_VISTA; } }

A continuacin se muestra un ejemplo de fichero vistas.conf:

formulario-modificacion-empleado = formModEmpleado.jsp baja-empleado = confirmacionBorrado.jsp formulario-accion-catalogo = formAccionCatalogo.jsp formulario-alta-empleado = formAltaEmpleado.jsp formulario-baja-empleado = formBajaEmpleado.jsp formulario-busqueda-empleado = formBuscarEmpleado.jsp pagina-inicio = index.jsp listado-catalogos = listadoCatalogos.jsp listado-empleados = listadoEmpleados.jsp modificacion-empleado = confirmacionModificacion.jsp menu-xml = menu_xml.jsp calendario = calendar.jsp

Subdireccin General de Desarrollo, Tecnologa e Infraestructuras. Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales rea de Integracin y Arquitectura de Aplicaciones.

Pgina: 15

FW2 - Arquitectura Aplicaciones Web

3.2.4

Vista
La vista es la que se encarga de la capa de presentacin de la aplicacin. La vista va a estar representada por pginas JSP que acceden a JavaBean previamente generados en el Modelo. Las aplicaciones utilizarn una librera propia de ICM llamada regiones para definir las estructura principal de las aplicaciones (encabezado, men, pie de pgina, etc) as como cualquier otra estructura que sea reutilizada en diferentes pginas. Cualquier validacin que realice la aplicacin en el navegador (cliente) deber replicarse de lado servidor para garantizar la robustez de la misma. Las funciones Javascript que sean propias de la aplicacin y comunes a varias pginas debern ser extradas a un nico fichero Javascript (fichero con extensin .js) que se deber incluir en el directorio js de la web. El cdigo JSP slo se podr utilizar para aspectos relacionados con la presentacin de los datos. Bsicamente se van a usar JavaBeans y libreras de tags. Los JavaBean van a contener la informacin a visualizar en la pgina o van a recibir informacin de la pgina. La librera de estandar de tags a utilizar es la JSTL (Java Standard Tag Library). Esta librera se utilizar para minimizar el uso de cdigo Java en la pgina JSP.

REQUISITOS

Subdireccin General de Desarrollo, Tecnologa e Infraestructuras. Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales rea de Integracin y Arquitectura de Aplicaciones.

Pgina: 16

FW2 - Arquitectura Aplicaciones Web

A fin de proporcionar un interfaz rico y evitar refrescos de pgina innecesarios, se proporciona la librera DWR que desde cdigo javascript en el navegador permite interactuar con cdigo java en el servidor. Por tanto, esta librera se utilizar como mecanismo de refresco de componentes de una pgina. Hay que tener en cuenta que el uso de esta librera Javascript implica que la aplicacin no va a cumplir los requisitos de accesibilidad de W3C. El uso de la librera debe estar orientado a una interaccin del usuario sobre un componente de la pgina JSP. Evitar el uso excesivo de este tipo de componentes. ICM proporciona una aplicacin de ejemplo de uso de esta librera. Cualquier otro componente o especializacin de los ejemplos deber ser programado por el proveedor de la aplicacin. No se puede utilizar la librera para actualizacin o borrado en Base de Datos.

3.3
REQUISITOS

ESTRUCTURA DE DIRECTORIOS

La estructura de directorios es la definida en la plantillas.

3.4

PAQUETES JAVA

Todas las clases de la aplicacin van a estar en un paquete llamado igual que el nombre del mdulo de la aplicacin.

Estructura de paquetes java de la aplicacin:

Subdireccin General de Desarrollo, Tecnologa e Infraestructuras. Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales rea de Integracin y Arquitectura de Aplicaciones.

Pgina: 17

FW2 - Arquitectura Aplicaciones Web

aplicacion.controlador: En este paquete se incorpora la clase del controlador. Dentro de este paquete no se puede incluir subpaquetes. aplicacion.modelo: En este paquete se incorporan todas las clases de la lgica de negocio de la aplicacin. Dentro de este paquete se pueden incluir subpaquetes. aplicacion.acciones: En este paquete se incorporan todas las clases de acciones. Dentro de este paquete no se puede incluir subpaquetes. Una excepcin a esta regla son las clases que se utilicen para DWR. Estas clases debern incluirse en el paquete aplicacin.acciones.ajax, tal y como se indica en el manual Librera DWR-Manual de uso. aplicacion.beans: En este paquete se incorporan todas las clases JavaBeans. Dentro de este paquete no se puede incluir subpaquetes.

REQUISITOS

Subdireccin General de Desarrollo, Tecnologa e Infraestructuras. Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales rea de Integracin y Arquitectura de Aplicaciones.

Pgina: 18

FW2 - Arquitectura Aplicaciones Web

3.5

GESTION DE EXCEPCIONES

Cada vez que se produzca una excepcin en las clases que son cargadas por el Controlador, esta excepcin va a ser capturada por la clase Controlador y va a mostrar una pgina jsp con el mensaje del error. La clase MostrarErrorGeneral es la que muestra la pgina de error y usa la pagina error.jsp que debe existir en el directorio de las jsp. Tambin es posible personalizar la clase que va a mostrar el error dependiendo del error producido. Para poder controlar que pgina se va a mostrar se debe conocer primero el cdigo del error a controlar Por ejemplo, ListaValores lanza el error de que no ha encontrado registros con el cdigo 1001. Si lo que se quiere es que un error (de la aplicacin) sea controlado por una clase propia o mostrado en una pagina personalizada lo que hay que hacer es lanzar este error usando el constructor de CargableException Este constructor acepta como parmetros una cadena y un nmero. El nmero ser el cdigo de error que tambin deber ser incluido en el fichero de configuracin. Ejemplo:
try{ }catch(SQLException sqle){ throw new CargableException(Mi error personalizado: +sqle.getMessage(), 501); }

Subdireccin General de Desarrollo, Tecnologa e Infraestructuras. Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales rea de Integracin y Arquitectura de Aplicaciones.

Pgina: 19

FW2 - Arquitectura Aplicaciones Web

Las modificaciones en el fichero de configuracin sern las siguientes: 1. Aadir una lnea con la pgina que queremos que muestre el controlador cuando se lance este error: aplicacion.codError[codigo_error].paginaError = [nuestra_pagina_de_error] 2. Aadir una linea con la clase que queremos que gestione este error: aplicacion.codError[codigo_error].claseError = [nuestra_clase_de_error]. Esta clase debe implementar el interface sistemas.framework.acciones.comunes.ErrorPersonalizado Si se aaden ambas lneas se harn las dos cosas, es decir, el error ser gestionado por una clase propia de la aplicacin y ser mostrado por una pgina jsp tambin propia de la aplicacin.

PORTAL DE LA APLICACION
Todas las aplicaciones web deben de tener un aspecto homogneo y de acuerdo al portal de madrid.org. Para conseguir este aspecto se han predefinido una cabecera y un pie que son comunes a todas las aplicaciones web. La cabecera y el pie se deben mantener tal cual, simplemente en la cabecera deberemos modificar el texto del Nombre del Centro, Nombre de la Consejera y Nombre de la aplicacin.

A continuacin se muestra un ejemplo del aspecto de una aplicacin:

REQUISITOS

Subdireccin General de Desarrollo, Tecnologa e Infraestructuras. Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales rea de Integracin y Arquitectura de Aplicaciones.

Pgina: 20

FW2 - Arquitectura Aplicaciones Web

Para conseguir este aspecto visual tenemos que utilizar los siguientes elementos: Hojas de estilo de madrid.org Librera de etiquetas para la definicin del portal: regiones Men de la aplicacin

Partiendo de las plantillas que ICM proporciona ya tenemos definido todo lo anterior.

Subdireccin General de Desarrollo, Tecnologa e Infraestructuras. Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales rea de Integracin y Arquitectura de Aplicaciones.

Pgina: 21

FW2 - Arquitectura Aplicaciones Web

4.1

Hojas de estilo

Dentro del directorio estilos de la web tenemos que tener las siguientes hojas de estilo: REQUISITOS Hoja de estilos de madrid.org: estilos.css Hoja de estilos del portal: sistemas.css

La primera hoja contiene los estilos propios del portal de madrid.org y que debemos utilizar en nuestras pginas jsp. En la hoja sistemas.css se encuentran los estilos que se utilizan para colocar los distintos elementos del portal. Ninguna de estas dos hojas se puede modificar. En el caso de que se usen estilos propios estos se incluirn en una hoja de estilos cuyo nombre va a ser <nombre_aplicacion>.css.

4.2

Libreras de etiquetas del portal: regiones

Se ha creado un librera de etiquetas para la creacin de un portal para una aplicacin. Esta librera permite dividir la pgina en regiones y a cada region darle un contenido que puede ser : fijo : una url de una pgina html o jsp ejecucin directa de una accin: Llamada directa a una accion contenido variable: La ejecucin de varias acciones va a ir a dicha region.

El conjunto de regiones es lo que denominamos rejilla. Un portal se compone por tanto de las distintas rejillas que contiene la aplicacin. Esta librera se llama regiones.

Subdireccin General de Desarrollo, Tecnologa e Infraestructuras. Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales rea de Integracin y Arquitectura de Aplicaciones.

Pgina: 22

FW2 - Arquitectura Aplicaciones Web

Una vez definidas las distintas regiones debemos asociar las distintas acciones de la aplicacin Java con la correspondiente regin donde se deben pintar. Esto lo haremos en el fichero de configuracin portal.xml. Para ms informacin sobre la definicin del portal consultar el manual especializado.

4.3

Men de aplicacin

REQUISITOS

En algunas aplicaciones nos interesa incorporar un men de aplicacin que normalmente a la izquierda de la aplicacin nos ofrece en forma de rbol desplegable las distintas opciones de la aplicacin. Para realizar estos mens sin incorporar cdigo Javascript en la pgina se ha preparado una solucin que mediante el uso de un fichero xml en el que se definen los distintos elementos del men y a travs de la ejecucin de una accin se genera el men correspondiente. Entre las caractersticas de este men estn: Definicin del men independiente de la forma de presentarlo. Sin uso de javascript. Men personalizado al perfil de la aplicacin para el usuario. Posibilidad de invocar directamente a un elemento del men.

Un men de ejemplo ya se encuentra incluido en las plantillas.

Subdireccin General de Desarrollo, Tecnologa e Infraestructuras. Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales rea de Integracin y Arquitectura de Aplicaciones.

Pgina: 23

FW2 - Arquitectura Aplicaciones Web

REQUISITOS

Para definir los elementos del men utilizamos un fichero xml. El nombre del fichero debe ser menu_aplicacion.xml. No es necesario llamar al Men es el propio Controlador el que se va a encargar de llamarlo. A continuacin se muestra un ejemplo de fichero menu_aplicacion.xml:

<?xml version="1.0" encoding="ISO-8859-1"?> <menu-principal desplegar-todos="false"> <elemento id="1" nombre="Inicio" nombre-navegacion="Home" url="../../html/web/index.htm" > <elemento id="1_1" nombre="Elemento 1_1" nombre-navegacion="Elemento 1_1" url="../../html/web/elemento1_1.htm"/> <elemento id="1_2" nombre="Elemento 1_2" nombre-navegacion="Elemento 1_2" url="../../html/web/elemento1_2.htm"> <elemento id="1_2_1" nombre="Accion1" nombre-navegacion="Accion 1" url="Accion1.icm"/> <elemento id="1_2_2" nombre="Ejemplo de aplicacin" nombre-navegacion="Ejemplo" url="../../html/web/ejemplo.htm"/> <elemento id="1_2_3" nombre="Ejemplo de paginacion" nombre-navegacion="Ejemplo de paginacion" url="IniciaListado.icm"/> <elemento id="1_2_4" nombre="Ejemplo de solapas" nombre-navegacion="Ejemplo de solapas" url="EjemploSolapas.icm"/> </elemento> <elemento id="1_3" nombre="Otro Elemento" nombre-navegacion="Elemento 1_3" url="../../html/web/elemento1_3.htm"/> </elemento>

Subdireccin General de Desarrollo, Tecnologa e Infraestructuras. Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales rea de Integracin y Arquitectura de Aplicaciones.

Pgina: 24

FW2 - Arquitectura Aplicaciones Web

<elemento id="2" nombre="Novedades" nombre-navegacion="Novedades" url="../../html/web/novedades.htm" target="Nueva ventana"/> <elemento id="3" nombre="(c) ICM-2003" no-url="true"/> </menu-principal>

En la definicin del menu podemos especificar los elementos que queremos que le aparezcan a los distintos perfiles. Esto se hace mediante el tag perfil asignando a este tag el valor del cdigo del grupo o grupos que tienen autorizacin para acceder a este elemento del men. Si el tag perfil no aparece entonces el elemento del men estar disponible para todos los usuarios. El Controlador ser el encargado de visualizar el men dependiendo del perfil o grupo al que pertenezca el usuario conectado. A continuacin se muestra un ejemplo de menu_aplicacion.xml con definicin de perfiles.
<?xml version="1.0" encoding="ISO-8859-1"?> <menu-principal desplegar-todos="false" imagenmenu="%IMG_ROOT%/samp2_downarrow.gif" imagenopcion="%IMG_ROOT%/samp2_bullet_hl.gif" cellpadding="0" cellspacing="0" width="158"> <elemento id="1" nombre="Empleados" url="Inicio.icm" perfil="2;1"> <elemento id="1_1" nombre="Informacin" url="Inicio.icm" perfil="2;1"/> <elemento id="1_2" nombre="Registro" url="FormAltaEmpleado.icm" perfil="1"/> </elemento> <elemento id="2" nombre="Busqueda avanzada" url="Menu.icm?numero=1" perfil="2;1"/> <elemento id="3" nombre="Administracion" url="Inicio.icm" perfil="1"> <elemento id="3_1" nombre="Direccin" url="ListadoCatalogos.icm?CATALOGO=DIRECCION" perfil="1"/> <elemento id="3_2" nombre="Sexo" url="ListadoCatalogos.icm?CATALOGO=SEXO" perfil="1"/> <elemento id="3_3" nombre="Area" url="ListadoCatalogos.icm?CATALOGO=AREA" perfil="1"/> <elemento id="3_4" nombre="Nivel" url="ListadoCatalogos.icm?CATALOGO=NIVEL" perfil="1"/> </elemento> <elemento id="4" nombre="(c) ICM-2003" no-url="true" perfil="2;1"/> </menu-principal>

Subdireccin General de Desarrollo, Tecnologa e Infraestructuras. Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales rea de Integracin y Arquitectura de Aplicaciones.

Pgina: 25

FW2 - Arquitectura Aplicaciones Web

ANEXO 1: Variables del fichero de configuracin

Variables para la definicin del portal


Variables
portal.integrar portal.definicion portal.clase portal.clasesNoIntegrables

Descripcin
Variable que indica que si se integrar el portal en la aplicacin. Fichero xml donde se define el portal de la aplicacin. Clase que integra el portal. Clases que no se integran en el portal. true/false portal.xml

Valores que toma

sistemas.portal.generico.PortalGenerico ListaValores;Calendario

Variables del ControladorPrivadoInternet

Variables
aplicacion.paginaAutentificacion

Descripcin

Valores que toma

Pgina web en la que se solicitan los datos para /WEB-INF/jsp/login.jsp la autentificacin. Clase para determinar el perfil del usuario de la aplicacin. Servidor que permite acceder a los datos de usuario. Nmero de intentos para validarse. Localizacin de certificado dentro del request. Variable que indica si hay que comprobar o no la existencia del certificado Pgina de error que se mostrar en el caso de que no exista certificado. Nombre de la cookie donde se guardan los datos del usuario en esa sesin. Clase que redirige a renuevaClave.jsp. Si el usuario ha sido bloqueado redirige a desbloqueaUsuario.jsp. sistemas.acceso.impl.GestionUsuariosInternet

aplicacion.claseControlAcceso

aplicacion.servidorAplicaciones aplicacion.limiteIntentos aplicacion.certificados.exportacion

sistemas.servidores.impl.USUIImpl Ejemplo: 5 Local:J2EE Desarrollo y produccin: PERL false/true

certificados.comprobar

certificados.paginaError

/WEB-INF/conf/error_certificado.xml

aplicacion.cookieUsuario CambiarClave Desbloqueo

cookie_usuario sistemas.framework.acciones.comunes.usui sistemas.framework.acciones.comunes.usui

Variables del ControladorPrivadoIntranetSSL Las variables para el controladorPrivadoIntranetSSL son las mismas que para el controladorIntranet excepto las siguientes que cambian su valor:
Variables Descripcin Valores que toma

Subdireccin General de Desarrollo, Tecnologa e Infraestructuras. Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales rea de Integracin y Arquitectura de Aplicaciones.

Pgina: 26

FW2 - Arquitectura Aplicaciones Web

aplicacion.claseControlAcceso aplicacion.servidorAplicaciones

Servidor que permite acceder a los datos de usuario. Servidor que permite acceder a los datos de usuario.

sistemas.acceso.impl.GestionUsuariosIntranetSSL sistemas.servidores.impl.LDAPImpl

Subdireccin General de Desarrollo, Tecnologa e Infraestructuras. Direccin de Anlisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales rea de Integracin y Arquitectura de Aplicaciones.

Pgina: 27

You might also like