Download INTRODUCCION

Document related concepts
no text concepts found
Transcript
Soluciones de Desarrollo Java 2.3
SOLUCIONES
DE DESARROLLO JAVA
PARA LAS APLICACIONES
DE LA
COMUNIDAD DE MADRID
Versión 1.2
Julio 2010
Subdirección General de Desarrollo, Tecnología e Infraestructuras.
Dirección de Análisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales
Área de Integración y Arquitectura de Aplicaciones.
Página: 1
Soluciones de Desarrollo Java 2.3
CONTROL DE CAMBIOS
Fecha
01/01/2006
11/09/2008
Versión
1.0
1.1
06/07/2010
1.2
Cambios
Primera versión
Se eliminan las referencias a Remote Scripting y se sustituye por
la librería DWR.
Se modifica el apartado “Envio de SMS” para hacer referencia a
la librería ment_lib.jar
Se elimina el uso de las librerías de Palluc para la generación de
informes
Subdirección General de Desarrollo, Tecnología e Infraestructuras.
Dirección de Análisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales
Área de Integración y Arquitectura de Aplicaciones.
Página: 2
Soluciones de Desarrollo Java 2.3
INDICE
1
2
3
3.1
3.2
3.3
4
4.1
4.2
5
5.1
6
7
8
9
10
11
12
13
14
15
16
17
18
REQUISITOS GENERALES .............................................................................. 4
CONTROL DE ACCESO A LOS USUARIOS................................................... 5
PORTAL DE LA APLICACION......................................................................... 6
Hojas de estilo .................................................................................................. 6
Librerías de etiquetas del portal: regiones........................................................ 7
Menú de aplicación........................................................................................... 8
GENERACION DE INFORMES......................................................................... 9
Crystal Reports X ............................................................................................. 9
IText ............................................................................................................... 10
CONSULTAS CON PAGINACIÓN ................................................................. 10
Librería de etiquetas: paginación.................................................................... 11
USO DE AJAX: LIBRERIA DWR.................................................................... 11
PAGO ON LINE ................................................................................................ 11
ENVIO DE CORREO ........................................................................................ 11
ENVIO DE SMS ................................................................................................ 12
GENERACION DE MAPAS ............................................................................. 12
TRATAMIENTO DE FICHEROS DBF............................................................ 14
GENERACION DE GRAFICOS ....................................................................... 14
CALENDARIO .................................................................................................. 14
LISTA DE VALORES ....................................................................................... 14
TRATAMIENTO DE FICHEROS TIFF ........................................................... 15
TRATAMIENTO DE FICHEROS XML........................................................... 15
RESUMEN ......................................................................................................... 17
REFERENCIAS ................................................................................................. 18
Subdirección General de Desarrollo, Tecnología e Infraestructuras.
Dirección de Análisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales
Área de Integración y Arquitectura de Aplicaciones.
Página: 3
Soluciones de Desarrollo Java 2.3
REQUISITOS
1
REQUISITOS GENERALES
La presente guía establece las distintas soluciones que ICM propone para necesidades
concretas que surgen durante el desarrollo de las aplicaciones web que se desarrollen
para la Comunidad de Madrid.
Para ello se estandarizan una serie de tecnologías o componentes a utilizar para cada
una de las necesidades.
El uso de cualquier nueva tecnología, producto, librería o componente, no incluido en la
presente guía, que se desee incorporar a las aplicaciones deberá ser consensuado
previamente por ICM.
Subdirección General de Desarrollo, Tecnología e Infraestructuras.
Dirección de Análisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales
Área de Integración y Arquitectura de Aplicaciones.
Página: 4
Soluciones de Desarrollo Java 2.3
2
CONTROL DE ACCESO A LOS USUARIOS
REQUISITOS
El control de acceso de los usuarios ya está implementado en las distintas clases
Controladoras que ofrece el Framework de ICM. El comportamiento de estos
controladores no puede modificarse.
Actualmente disponemos de tres tipos de Controladores:
•
•
•
ControladorPublico
ControladorPrivadoIntranet
ControladorPrivadoInternet
Cada uno de estos controladores ya tiene implementado la lógica de control de acceso a
los usuarios.
El siguiente gráfico muestra cuando hay que utilizar cada uno de los controladores.
ICM proporciona una serie de plantillas ya preparadas para cada uno de los controladores.
Además de utilizar el controlador necesario también hay que definir en el fichero de
configuración las variables correspondientes a cada controlador. En estas plantillas ya esta el
fichero de configuración con sus variables. También son necesarias unas páginas jsp que
sirven para la identificación de los usuarios. Estas páginas jsp también se encuentran en las
correspondientes plantillas.
A la hora de comenzar nuestro desarrollo debemos elegir la plantilla mas adecuada para
nuestra aplicación.
Si nuestra aplicación va a tener acceso tanto desde Internet como desde Intranet entonces se
deberán desarrollar dos módulos distintos cada uno con su controlador y su fichero de
configuración.
Subdirección General de Desarrollo, Tecnología e Infraestructuras.
Dirección de Análisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales
Área de Integración y Arquitectura de Aplicaciones.
Página: 5
Soluciones de Desarrollo Java 2.3
PORTAL DE LA APLICACION
Todas las aplicaciones web deben de tener un aspecto homogéneo 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.
REQUISITOS
3
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 Consejería y Nombre de la
aplicación.
A continuación se muestra un ejemplo del aspecto de una aplicación:
Para conseguir este aspecto visual tenemos que utilizar los siguientes elementos:
•
•
•
Hojas de estilo de madrid.org
Librería de etiquetas para la definición del portal: regiones
Menú de la aplicación
Partiendo de las plantillas que ICM proporciona ya tenemos definido todo lo anterior.
3.1
Hojas de estilo
Dentro del directorio estilos de la web tenemos que tener las siguientes hojas de estilo:
Subdirección General de Desarrollo, Tecnología e Infraestructuras.
Dirección de Análisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales
Área de Integración y Arquitectura de Aplicaciones.
Página: 6
Soluciones de Desarrollo Java 2.3
•
•
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 páginas 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 incluirán en una hoja de estilos cuyo
nombre va a ser nombre_app.css.
3.2
Librerías de etiquetas del portal: regiones
Se ha creado un librería de etiquetas para la creación de un portal para una aplicación. Esta
librería permite dividir la página en regiones y a cada region darle un contenido que puede ser :
•
•
•
fijo : una url de una página html o jsp
ejecución directa de una acción: Llamada directa a una accion
contenido variable: La ejecución 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 aplicación.
Esta librería se llama regiones.
Subdirección General de Desarrollo, Tecnología e Infraestructuras.
Dirección de Análisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales
Área de Integración y Arquitectura de Aplicaciones.
Página: 7
Soluciones de Desarrollo Java 2.3
Una vez definidas las distintas regiones debemos asociar las distintas acciones de la aplicación
Java con la correspondiente región donde se deben pintar. Esto lo haremos en el fichero de
configuración portal.xml.
Para más información sobre la definición del portal consultar el manual especializado.
3.3
Menú de aplicación
En algunas aplicaciones nos interesa incorporar un menú de aplicación que normalmente a la
izquierda de la aplicación nos ofrece en forma de árbol desplegable las distintas opciones de la
aplicación. Para realizar estos menús sin incorporar código Javascript en la página se ha
preparado una solución que mediante el uso de un fichero xml en el que se definen los
distintos elementos del menú y a través de la ejecución de una acción se genera el menú
correspondiente.
Entre las características de este menú están:
•
•
•
•
Definición del menú independiente de la forma de presentarlo.
Sin uso de javascript.
Menú personalizado al perfil de la aplicación para el usuario.
Posibilidad de invocar directamente a un elemento del menú.
Para definir los elementos del menú utilizamos un fichero xml.
El nombre del fichero debe ser menu_aplicacion.xml.
A continuación 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 aplicación"
nombre-navegacion="Ejemplo"
Subdirección General de Desarrollo, Tecnología e Infraestructuras.
Dirección de Análisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales
Área de Integración y Arquitectura de Aplicaciones.
Página: 8
Soluciones de Desarrollo Java 2.3
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>
<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>
No es necesario llamar al Menú es el propio Controlador el que se va a encargar de llamarlo.
Las plantillas que ICM proporciona ya incluyen la definición de un menú.
4
GENERACION DE INFORMES
Cuando una aplicación tenga la necesidad de generar informes vamos a tener tres opciones
Librería
Crystal Reports X
Orientado a:
Tipo de datos
que se utilizan:
Plantillas
Formatos de
exportación:
•
Informe en formato
tabular
• Informe tipo carta
• Informe con gráficos
• Informe con varias
páginas
• Informe con
agrupaciones
• Datos que se
encuentran en Base de
Datos
Plantilla generada desde
herramienta de Crystal Reports
y modificable sin tocar código
Java
pdf, rtf, doc, excell, html
IText
•
Pequeños informes
•
Datos en memoria
No hay plantilla por lo tanto todo
está en el código Java
pdf, html
La opción normal a utilizar es Crystal Reports.
4.1
Crystal Reports X
La solución que se ha de utilizar para la generación de informes o listados es Crystal Reports X
utilizando el Java Reporting Component. El Java Reporting Component (JRC) se proporciona
con las distribuciones de Crystal Reports X Developer y Advanced Developer.
El JRC es una solución de reporting en Java que procesa informes para ser visualizados o
exportados. Este componente debe ser utilizado en un servidor de aplicaciones Java y puede
Subdirección General de Desarrollo, Tecnología e Infraestructuras.
Dirección de Análisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales
Área de Integración y Arquitectura de Aplicaciones.
Página: 9
Soluciones de Desarrollo Java 2.3
ser usado para añadir funcionalidad de informes a aplicaciones Java sin la necesidad de
desplegar componentes como BusinessObjects Enterprise.
Aspectos del Java Reporting Component
•
Solución 100% Java que se ejecuta completamente dentro de un servidor de
aplicaciones Java.
•
Visualizador de informes en DHTML.
•
Visualizador de partes de un informe.
•
Soporta la capacidad enviar dinámicamente información a un report.
•
Soporta la capacidad de desde programación de cambiar la base de datos del informe.
•
Soporta exportación a formatos RTF y PDF.
Esta librería nos permite crear aplicaciones que ejecutan reports de CrystalReports 10.
En realidad Crystal Reports entrega una serie de librerías que ICM ha agrupado en una única
librería para facilitar la distribución de la misma.
Por otra parte ICM ha creado un API mas sencillo para llamar a las clases de Crystal Reports,
esta API también se encuentra incluido dentro de la librería.
El informe .rpt se va a encontrar dentro de la web de java en la carpeta reports.
A la hora de definir el report la conexión con la base de datos se va a definir como JDBC.
En el caso de que se desee exportar el report a DOC o Excel entonces el API de Java va a
invocar a un Webservice desarrollado en Delphi que genera el informe.
En este caso el informe se va a encontrar dentro de la web del Webservice de Delphi. A la hora
de definir el report la conexión con la base de datos se va a definir como Servidor Oracle.
Para más información consultar el manual especializado de Crystal Reports.
4.2
IText
Librería para generación de PDF desde cero. Esta librería solamente se deberá utilizar para
generación de reports que no acceden a base de datos y que son muy pequeños. Es decir que
con la solución de generación de Crystal Reports no es posible generarlos.
En el caso de utilizar esta librería se utilizará directamente el API que la librería proporciona.
5
CONSULTAS CON PAGINACIÓN
Cuando se realiza una consulta sobre la base de datos puede ocurrir que como resultado de
dicha consulta se obtenga un número muy elevado de registros. Como no es viable el que se
envíen todos los registros al cliente ya que esto supondría un coste muy elevado y
normalmente no se consultarían todos los registros enviados, es necesario buscar una
alternativa que envíe al cliente el resultado de la consulta en paginas con un intervalo
predefinido de registros.
Subdirección General de Desarrollo, Tecnología e Infraestructuras.
Dirección de Análisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales
Área de Integración y Arquitectura de Aplicaciones.
Página: 10
Soluciones de Desarrollo Java 2.3
La solución ofrecida se basa en realizar una nueva consulta cada vez que se consulta una
página de modo que se mantenga en sesión la información de la situación actual de la consulta
para poder realizar la nueva consulta pedida.
Para pintar los resultados en la página JSP existe una librería de etiquetas jsp para incluir la
barra de navegación.
5.1
Librería de etiquetas: paginación
Esta librería de tags que permite añadir la barra de navegación a través de las distintas
páginas.
Esta librería permite incluir las barras de navegación. Las posibilidades que ofrece son:
•
•
•
•
•
•
6
Botones de anterior y siguiente
Lista de páginas (de 1 en 1 página)
Lista de páginas agrupadas en intervalos.
Línea de resultado con total de registros y anterior - siguiente.
Acciones para ir a la primera y a la ultima página.
Número total de registros y de páginas.
USO DE AJAX: LIBRERIA DWR
DWR, Direct Web Remoting, es una librería de código abierto que facilita el uso de Ajax en
aplicaciones web.
Proporciona un mecanismo mediante el cual se puede invocar métodos java alojados en el
servidor a traves de código javascript. También proporciona una librería de utilidades javascript
para modificar la página web con los datos obtenidos del sevidor.
DWR consta de dos partes principales:
•
•
7
Javascript corriendo del lado del cliente que se comunica con el servidor y actualiza
dinámicamente la página web.
Un servlet que se ejecuta en el servidor de aplicaciones y que se encarga de procesar
las peticiones y enviar las respuestas.
PAGO ON LINE
Hay aplicaciones que necesitan realizar un pago on-line con una Entidad Bancaria para ello se
han incluido dentro de la librería Sistemas una serie de clases que realizan dichos pagos.
Para probar la funcionalidad de la aplicación en desarrollo se ha creado un Servidor que simula
el servidor de Caja Madrid, y es con este con el que se realizan las pruebas en desarrollo.
8
ENVIO DE CORREO
Desde cualquier aplicación se puede enviar un mail a una o varias direcciones de Internet. Para
facilitar el código de envío de correo se ha incluido dentro de la librería de Sistemas la clase
MensajeCorreo con el API correspondiente para el envío de correo.
Subdirección General de Desarrollo, Tecnología e Infraestructuras.
Dirección de Análisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales
Área de Integración y Arquitectura de Aplicaciones.
Página: 11
Soluciones de Desarrollo Java 2.3
Variables del fichero configuración:
email.smtp.host = mail.madrid.org
email.autentificarSiempre = true
email.smtp.user=<usuario>
email.smtp.pass=<password encriptada>
9
ENVIO DE SMS
Desde cualquier aplicación se puede enviar un mensaje SMS a un móvil.
Para ello, hay que hacer uso de la librería ment_lib.jar, que permite el envio de mensajes SMS
a través de la plataforma de Telefónica Soluciones MenTes.
10 GENERACION DE MAPAS
Esta librería nos permite crear aplicaciones java que acceden a la base de datos SIGI para
generar mapas.
Para la generación de estos mapas se va a utilizar un webservice que recibe un fichero xml con
la petición del mapa y accede a Geomedia para generarlo.
En esta librería se han incluido clases que son las encargadas de obtener el fichero xml de la
petición del mapa de forma que el desarrollador no tenga que conocer el formato de dicho
XML.
Para generar mapas de Geomedia se ha creado un webservice que accede al servicio de
Geomedia para solicitar los mapas.
En las aplicaciones que necesiten crear mapas se va a desarrollar un módulo en Java que
accede al webservice y se conecta a él para solicitar el mapa. La comunicación entre Java y el
webservice va a ser mediante mensajes xml.
El siguiente diagrama muestra los distintos componentes que participan en la
comunicación para la creación de mapas.
Subdirección General de Desarrollo, Tecnología e Infraestructuras.
Dirección de Análisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales
Área de Integración y Arquitectura de Aplicaciones.
Página: 12
Soluciones de Desarrollo Java 2.3
Van a existir distintos webservices que se parametrizarán para cada Consejería o incluso
Dirección General y en cada uno de estos webservices se configuran las capas que se pueden
tratar.
Se ha creado una librería para la obtención de mapas del SIGI. Esta librería se llama SIGI y
facilita la creación de los distintos ficheros xml y la conexión con el webservice.
Mediante esta librería se pueden obtener distintos tipos de mapas desde la programación Java.
Los tipos de mapas que se pueden obtener son:
Mapa callejero
A partir de una posición X e Y o de
los datos de una dirección:
municipio + calle + portal se
obtiene un mapa
Mapa guía o
índice
Mapa general de la Comunidad de
Madrid en el que se sitúa destacada
la zona del mapa en la que
estamos.
Subdirección General de Desarrollo, Tecnología e Infraestructuras.
Dirección de Análisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales
Área de Integración y Arquitectura de Aplicaciones.
Página: 13
Soluciones de Desarrollo Java 2.3
Mapa fit
Mapa general de la Comunidad de
Madrid
que
nos
permite
ir
profundizando en él hasta acceder a
la información que nos interese
Mapa temático
Mapa de municipios en los que los
valores de un dato de cada
municipio se representan mediante
colores
11 TRATAMIENTO DE FICHEROS DBF
Para trabajar con ficheros DBF tanto para leerlos como para generarlos hay que utilizar la
librería xBaseJ. Para utilizar esta librería hay que llamar al API de la librería directamente.
12 GENERACION DE GRAFICOS
Para la generación de gráficos de tipo barras, puntos, tartas, etc hay que utilizar la librería
JFreeChart. Para utilizar esta librería hay que llamar al API de la librería directamente.
13 CALENDARIO
Dentro de la librería de Sistemas existe una clase de Acción llamada Calendario que nos
muestra en un popup un Calendario.
14 LISTA DE VALORES
Subdirección General de Desarrollo, Tecnología e Infraestructuras.
Dirección de Análisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales
Área de Integración y Arquitectura de Aplicaciones.
Página: 14
Soluciones de Desarrollo Java 2.3
Dentro de la librería de Sistemas existe una clase de Acción llamada ListaValores que nos
muestra en un popup el resultado de una consulta a un catálogo e incluye una paginación si es
necesaria. Además incluye un campo para filtrar en esta consulta.
15 TRATAMIENTO DE FICHEROS TIFF
Para el tratamiento de ficheros Tiff se va a utilizar la librería Jai_image. Para utilizar esta librería
hay que llamar al API de la librería directamente.
16 TRATAMIENTO DE FICHEROS XML
Subdirección General de Desarrollo, Tecnología e Infraestructuras.
Dirección de Análisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales
Área de Integración y Arquitectura de Aplicaciones.
Página: 15
Soluciones de Desarrollo Java 2.3
Cuando las aplicaciones necesiten trabajar con ficheros XML, tanto para generarlos como
para leerlos, se utilizará el JAXB (Java Architecture for XML Binding ) que nos
proporciona un modo de mapear un esquema de un fichero xml con su representación en
clases Java.
REQUISITOS
.
Partiendo de un fichero de esquema de definición de xml se compilara y se generan las
correspondientes clases Java de la estructura definida en el esquema. Estas clases Java
se incorporan al proyecto.
Cuando se quiere leer un documento XML hay que realizar un unmarshal del fichero.
Cuando se quiere generar un documento XML hay que realizar un marshal del fichero.
Además nos permite validar los documentos XML.
JAXB se encuentra dentro del Java Web Services Developer Pack 2.0 DE Sun.
Subdirección General de Desarrollo, Tecnología e Infraestructuras.
Dirección de Análisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales
Área de Integración y Arquitectura de Aplicaciones.
Página: 16
Soluciones de Desarrollo Java 2.3
17 RESUMEN
REQUISITO
SOLUCIÓN BASE
VERSION
Build tool
Apache Ant
1.6.5
Configuración
Archivo propio de configuración
Documentación
Javadoc
Entrega del proyecto
Eclipse
Eclipse 3.1
Informes
Crystal Reports Java Reporting
Component
Crystal Reports
Developer
Devoloper XI
Modelo-VistaControlador
Framework propietario de ICM
2.1.x
Persistencia de
Datos
Sentencias SQL en clases DAO
Test de pruebas
JUnit
Tratamiento de
ficheros xml
JAXB (Java JWDP)
Trazabilidad
Clase Trazas propia de la librería
Sistemas
1.3
Subdirección General de Desarrollo, Tecnología e Infraestructuras.
Dirección de Análisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales
Área de Integración y Arquitectura de Aplicaciones.
Página: 17
Soluciones de Desarrollo Java 2.3
18 REFERENCIAS
PRODUCTO
URL
Ant
http://ant.apache.org/
Crystal Reports
http://www.businessobjects.com/products/dev_zone/java/
Eclipse
http://www.eclipse.org/
JAXB
http://java.sun.com/webservices/jaxb/
http://java.sun.com/webservices/jaxb/about.html
http://java.sun.com/webservices/jwsdp/index.jsp
JUnit
http://junit.sourceforge.net/
MyEclipse
http://www.myeclipseide.com/
Subdirección General de Desarrollo, Tecnología e Infraestructuras.
Dirección de Análisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales
Área de Integración y Arquitectura de Aplicaciones.
Página: 18