Documente Academic
Documente Profesional
Documente Cultură
Control de versiones:
Índice de contenido
1. Lineamientos Generales...................................................................................4
1.1. Lineamientos....................................................................................................4
2. Manejo de Logs................................................................................................6
2.1. Lineamientos....................................................................................................6
3. Manejo de Excepciones.....................................................................................9
3.1. Lineamientos....................................................................................................9
4. Manejo de Mensajes y Auditoría......................................................................11
4.1. Lineamientos..................................................................................................11
5. Consideraciones de Implementación...............................................................12
6. Requerimientos de Calidad.............................................................................14
1. Lineamientos Generales
Este capítulo pretende ilustrar y proveer lineamientos a nivel general que deben ser
tenidos en cuenta al momento de la construcción y puesta en producción de los servicios.
1.1. LINEAMIENTOS
Toda excepción a algún lineamiento deberá tener su debida sustentación y
argumentación de negocio (funcional/contractual) y/o técnica. Cada proyecto donde se
materialice la excepción deberá generar un documento donde se tenga la debida
sustentación.
Se deben realizar pruebas unitarias sobre todas las capacidades de los servicios.
Cabe recalcar que las pruebas unitarias que se hagan deben ser repetibles, es decir, no
deben depender de datos previos cargados de manera externa a las pruebas, o que la
misma prueba altere datos que hagan que al ejecutarla, por segunda vez falle. Se debe
entregar evidencia e informe de la ejecución de las pruebas en cada entrega de versión
del servicio.
Para desarrollos en plataformas cerradas (.Net, IOS, etc) usar las herramientas
propias de la plataforma, abstenerse de usar frameworks o herramientas de terceros que
pongan en riesgo la compatibilidad a futuro de los desarrollos con la plataforma.
1
Libro: SOA Principles of Service Design. Author: Thomas Erl. 2008. Editorial: PRENTICE HALL. ISBN: ISBN
0-13-234482-3
OFICINA DE ARQUITECTURA PÁGINA 3 DE
15
VICEPRESIDENCIA DE ÁREA ARQUITECTURA LINEAMIENTOS Y DIRECTRICES SERVICIOS
OPERACIONES Y TECNOLOGÍA
Apto de Composición.
Todo servicio debe tener asociado un service profile (ficha técnica), el cual debe irse
actualizando en las diferentes etapas del ciclo de desarrollo, incluido la etapa de soporte y
mantenimiento.
Las definiciones que se realicen en el service profile de cada servicio deberán detallar
los lineamientos en este documento presentados. Adicionalmente estas definiciones
primaran sobre las generales.
Los clientes de los servicios no deben acceder directamente a las capacidades del
servicio, sino que lo debe hacer a través de un proxy el cual se debe implementar en la
capa de interoperabilidad2. Adicionalmente el consumo a través del proxy debe hacerse
por el protocolo HTTPS.
Se deben hacer pruebas de carga y estrés sobre todas las capacidades del servicio,
generando un informe y análisis con el fin de refinar el sizing de la infraestructura
requerida.
2
Para conocer con más detalle el objetivo y uso de la capa de interoperabilidad por favor remitirse al
documento ARQ - Arquitectura de referencia Capa Interoperabilidad.
OFICINA DE ARQUITECTURA PÁGINA 4 DE
15
VICEPRESIDENCIA DE ÁREA ARQUITECTURA LINEAMIENTOS Y DIRECTRICES SERVICIOS
OPERACIONES Y TECNOLOGÍA
2. Manejo de Logs
Este capítulo provee consideraciones, para el correcto manejo de Logs, apoyado por las
mejores prácticas de la industria que contribuyan a mejorar la calidad de los productos de
software, facilitando con ello el mantenimiento de los servicios y las labores del área de
desarrollo y del centro de cómputo en la identificación y diagnóstico de incidentes.
2.1. LINEAMIENTOS
No se debe mostrar por consola los errores, si no, usar un sistema de log.
Todo servicio debe contar con un único y propio registro de eventos (log) para
facilitar el diagnóstico y resolución de fallos.
Los mensajes del registro deben proveer información clara y suficiente sobre la
actividad del servicio, con el propósito de diagnosticar claramente el problema
presentado. Se deben evitar mensajes como “Ha ocurrido un error interno.” ya que no
proveen información sobre el tipo de error y la causa del mismo.
El log debe permitir el manejo de diferentes niveles de registro, por ejemplo INFO,
DEBUG, ERROR, FATAL, y se debe hacer un correcto uso de las mismas.
DEBUG, para información de muy bajo nivel solo útil para el debug de la
aplicación, tanto en el desarrollo como en el análisis de incidencias.
Llamadas a funciones y procedimientos y otros componentes, con parámetros
y respuestas.
Flujos de ejecución.
Desarrollo de algoritmos y procedimientos que permitan identificar y seguir su
ejecución en desarrollo.
INFO, información de más alto nivel que permita hacer un seguimiento de la
ejecución normal
Paradas y arranques de servicios y sistemas.
Hay que tener en cuenta las diferencias y zonas horarias a la hora de trabajar con
logs de varias máquinas o componentes.
3. Manejo de Excepciones
3.1. LINEAMIENTOS
Usar un sólo try y varios catch en la implementación de los métodos, y en los catch
capturar y trazar todas las excepciones.
Evitar el uso de jerarquías, se debe usar muy pocas clases para describir las
excepciones, prefiriendo el uso de código y descripción dentro de la clase para identificar
cada tipo de error. El uso de los mensajes y códigos de error, se deben hacer externos al
código fuente de la aplicación, por ejemplo usando archivos de propiedades, de tal forma
que se pueda hacer uso de la internacionalización en los servicios.
Log de las excepciones, en general cada vez que se vaya a lanzar una excepción
debe logearse como ERROR antes de lanzarla, para que quede evidencia de lo que ocurrió
en donde se detecta la situación anormal y no en el que la maneja. En los casos en los
que la necesidad de lanzar la excepción surja por haber atrapado otra excepción de nivel
bajo (producto de llamar una API de j2se por ejemplo) debe registrarse en el log la causa
también.
4.1. LINEAMIENTOS
Para cada servicio se debe definir si debe manejar mensajes específicos dependiendo
de la lógica de negocio manejada, tanto para las excepciones, mensajes de error o de
éxito de la ejecución de las capacidades.
Todos los mensajes que se requieran manejar en el servicio debe ser configurables,
no deben estar quemados en código.
Se debe propender por la internacionalización del servicio, es decir que los mensajes
se puedan manejar en diferentes idiomas, haciendo uso de archivos de propiedades con
los valores de los mensajes que se quieran manejar.
3
Revisar también documento de seguridad informática para las aplicaciones web OSI-CO-Estándar de
Seguridad para Aplicaciones Web
OFICINA DE ARQUITECTURA PÁGINA 10
DE 15
VICEPRESIDENCIA DE ÁREA ARQUITECTURA LINEAMIENTOS Y DIRECTRICES SERVICIOS
OPERACIONES Y TECNOLOGÍA
5. Consideraciones de Implementación
Los tipos de datos a utilizar para representar las estructuras de datos de las entradas
y salidas de las capacidades son:
Double para atributos que requieren realizar cálculos matemáticos, la precisión
será definida por el negocio.
String para atributos que no requieren realizar operaciones matemáticas.
Los campos de fecha se deben manejar como dateTime con formato estándar dado
por la especificación XSD.
Para el manejo de archivos se debe hacer en base 64.
Para atributos de verdadero o falso se debe utilizar boolean.
Evitar que el servicio realice cálculos derivados de la los datos que están saliendo,
Por ejemplo calcular la edad a partir de la fecha de nacimiento.
Los valores de dominio para los atributos que se requieran deben ser configurables
(manejo paramétrico).
4
Para mayor información de este tema refierase a la sección 3.2.4 Vista de Implementación del documento
ARQ - Arquitectura de referencia Capa Interoperabilidad.
OFICINA DE ARQUITECTURA PÁGINA 11
DE 15
VICEPRESIDENCIA DE ÁREA ARQUITECTURA LINEAMIENTOS Y DIRECTRICES SERVICIOS
OPERACIONES Y TECNOLOGÍA
En las capacidades cuyos mensajes de salida tengan campos opcionales y éstos sean
elementos XML, si el valor es nulo el elemento no se enviará. Dado lo anterior se debe
tener en cuenta que si sobre ese elemento se deben hacer operaciones, validaciones o
conversiones en la capa de interoperabilidad el elemento debe ser obligatorio y traer
algún valor.
6. Requerimientos de Calidad
prestadores del SW. El proveedor de servicios puede tener distintos enfoques y niveles de
prestación de seguridad en función del solicitante del servicio.
A continuación se presenta una tabla con valores y atributos de referencia, para ser
tenidos en cuenta en la definición de los mismos en el Service Profile. Estos valores han
sido tomados como referentes de la industria, sin embargo se aclara que estos deberan
ser definidos en cada Service Profile.
Valores de latencia
Tiempo de más bajos
250ms – 500ms WS
respuesta representan un buen
desempeño
La confidencialidad y
la autenticación
Seguridad WS-Security WS, Capacidad
correcta de las partes
involucradas
El WS debe soportar
Concurrencia 1000 usuarios muchos usuarios WS
conectados a la vez
Tiempo para
El WS siempre debe
establecimiento 1 min WS
estar disponible
de conectividad
Después de un tiempo
Tiempo de Espera de inactividad el
45 segundos WS
(TimeOut) servicio genera una
excepción.
7. Consumo Servicios
En este capítulo se describen los lineamietos relacionados con los servicios ofrecido y/o
consumidos desde las aplicaciones de la organización.
-------------------------------------------------------------