Está en la página 1de 46

Toulouse

Francia

Algunas tecnologías de software para


Computación resiliente
Jean-Charles FABRE

Conferencia OSD, Tokio, Japón 7 de marzo, 2012


Toulouse
Francia

la computación
elástica
La resiliencia se define como “La persistencia de
fiabilidad ante los cambios”.
JC Laprie, “A partir de fiabilidad a la Resistencia”, IEEE / IFIP Conferencia
Internacional en sistemas fiables y Redes, Anchorage, Alaska, EE.UU., junio
de 2008.

Computación resiliente vs Open System fiabilidad?


- La misma motivación y el mismo objetivo ....
El dominio de los cambios y las propiedades de confiabilidad ...
• El proceso de desarrollo de la arquitectura y permitiendo cambios
• medios técnicos y herramientas para realizar cambios de forma fiable
- OSD abarca la apertura y la implicación partes interesadas (elicitación,
el consenso, etc.), junto con herramientas de apoyo ...
Toulouse
Francia

la computación
elástica
• ¿Por qué es importante hoy en día?
- La mayoría de los sistemas tienen que adaptarse y su adaptación no es
posible determinar a priori debido a los requisitos evoluciones, cambios en
el entorno, etc.
- Fiabilidad propiedades deben mantenerse sea cual sea la evolución
es, funcional o no funcional,
- Una modificación funcional puede tener un impacto a su
contraparte no funcionales

• Es cierto que en la gran .... sino también en la pequeña?


- Arquitectura orientada a Servicios: "…. La evolución y la apertura es un
hecho ... “.
- Aviónica: “.... mantenimiento remoto y la evolución parcial es esencial ....”
- Automoción: “.... personalización de las funciones incrustadas es de interés
....”
Toulouse
Francia

Conceptos clave para sistemas Resilient


- La componentización
Gráfico de componentes autónomos en el tiempo incorporada,
tiempo de ejecución

- Separación de intereses
El software de aplicación independiente de software de FT

- conceptos arquitectónicos
La arquitectura debe permitir el control sobre un gráfico
componentes

- Proceso de desarrollo
Diseño para la adaptación es un concepto clave y asignación de componentes
Toulouse
Francia

tecnologías de software y dimensiones

• SOA y servicios Web


Hacia Computing Resilient en la gran

• Ingeniería de software basado en


componentes
Arquitectura de Sistemas de Computación resilientes

• Programación Orientada a Aspectos


Programación de sistemas de computación resilientes

De grano grueso .... de grano fino, de off-line ... con la adaptación en línea
Toulouse
Francia

tecnologías de software y dimensiones

✔ SOA y servicios Web


Hacia Computing Resilient en la gran

✔ ingeniería de software basado en


componentes
Arquitectura de Sistemas de Computación resilientes

• Programación Orientada a Aspectos


Programación de sistemas de computación resilientes
De grano grueso .... de grano fino, de off-line ... con la adaptación en línea
Toulouse
Francia

SOA y servicios web

Conectores de fallo de tolerancia para


Servicios Web no fiables

Con el apoyo de resistir, red de excelencia de la CE, resiliencia y capacidad de supervivencia en IST (Proyecto n ° 026764).
Toulouse
Francia

Arquitecturas Orientadas a Servicios


(SOA)

Moscú

Nueva York
Los Angeles Beijing
Toulouse

El Cairo
Dakar
Bombay

Nairobi

Rio de Janeiro

: Cliente Sydney
: Proveedor
Toulouse
Francia

Arquitecturas Orientadas a Servicios


(SOA)

Moscú

Nueva York
Los Angeles Beijing
Toulouse
Tokio
El Cairo
Dakar
Bombay

Nairobi

: Cliente Buenos Aires Rio de Janeiro Sydn ey

Perth
: Proveedor
Toulouse
Francia

Fallo específico del conector Tolerante

Error Confinamiento
SOA crítica Área
aplicación basada
afirmaciones de tiempo de
ejecución

Las acciones de recuperación


clientela No fidedigno
Supervisión Servicio web
La tolerancia específica de
la falla objetivo no fiable
Conector (SFTC) Servicios web
réplicas
Toulouse
Francia

Desarrollo de conectores
Environnement de Servicio web
Desarrollo: Contrato WSDL
Registro
Usuario

Modelo Generador Pre y post La inserción de


tratamiento Tolerancia a fallos
comportamiento
conector
DescriptionTemplate

Recuperación
estrategia
Generador conector

SFTC
Toulouse
Francia

Desarrollo de conectores

Un dominio
específico del
lenguaje, Dewel
Toulouse
Francia

La Plataforma IWSD
Una infraestructura de la fiabilidad del servicio Web

ejecución replicado
apoyo
para conectores
Toulouse
Francia

Mediciones
proporcionada por conectores
objetivos:
Recoger información operativa (disponibilidad, tiempo de respuesta, la tasa de fallos,
etc.)

Ejemplo de resultados experimentales:


2000 peticiones enviadas en cada servicio Web
Toulouse
Francia

Síntesis
• la computación elástica se basa en WS ( WSDL),
Redundante implementaciones y la noción de un conector
específico (FTM):
- Detección de error: afirmaciones de tiempo de ejecución (pre y post-
procesamiento).
- Señalización de error: excepciones definidas por el usuario
planteadas al cliente
- La recuperación de errores: built-in estrategias (parametrizado) de
recuperación
- Seguimiento / Diagnóstico: comportamiento de los conectores y
Servicios Web

• herramientas de apoyo
- Un DSL (Dewel) Y sus herramientas de desarrollo para
prevenir (límite) la ocurrencia de fallos de software en los
conectores
- Una plataforma (Marco IWSD) Como un soporte fiable
ejecución, incluyendo la gestión y monitoreo de los
conectores y los Servicios Web
Nicolas Salatge, Jean-Charles Fabre, "Fault Tolerance Conectores para los servicios web poco fiables". DSN 2007: 51-60 (IEEE
Xplore)
Toulouse
Francia

software basado en componentes


Ingenieria

Diseño para la adaptación y la arquitectura de


sistemas elásticos

Con el apoyo de MURPHY, un proyecto financiado por la Fundación de Ciencias francesa (ANR) en redes
de sensores fiables (proyecto nº ANR-BLAN-SIM / 10-LS-100618-6-01).
Toulouse
Francia

culpa consciente del contexto de computación


tolerante
Cambiar el capítulo Modelo de
• Referencia


Sin estado / stateful
El estado del sistema es
O no accesibles
representado en un eje 3
Determinista o no
espacio
Sistema WRT evolución ejes
múltiples valores avería del
desplome
TrayectoriaActivación del valor
falla transitoria
Cada FTM cubre una región
....
(límites aceptables)
En una determinada Nótese bienpunto.de
en el tiempo, una
solicitudprocesadoresisattached a una
adecuada FTMancho de banda
Memoria
Dejando un «espacio validez»
Duración de la batería

implica el cambio de la FTM!


Toulouse
Francia

Enfoque general: patrones de diseño FT

Recursos necesarios / / uso de problemas de rendimiento y los límites


aceptables función de coste
• parámetros deterministas (por ejemplo, número de sitios) relación de orden entre las soluciones
• Parámetros de aplicación dependiente (estado)
Toulouse
Francia

Proceso de desarrollo
Diseño FTM el desarrollo del patrón:
UML herramienta de diseño y implementación en C ++

Herramientas que permitan la reconfiguración en tiempo de ejecución:


basado en componentes middleware: Frascati

algoritmos de transición:
FScript + motor de ejecución del script

servicio de monitoreo:
la disponibilidad de recursos y la verificación de la propiedad
Toulouse
Francia

Diseño para la adaptación de FTMs

• Adaptación en cuenta en el diseño


• Una caja de herramientas de bloques de construcción
reutilizables FT
• Reducir al mínimo el estado del componente
Toulouse
Francia

Componentización de FTMs
• La descomposición para la adaptación del software FT

FTM FTM
Tolerante a fallos nivel nivel

Solicitud
Nivel funcional Nivel funcional

• Soporte de CBSE middleware - reflectante Middleware


- Observar y modificar el estado de los componentes
- Observar y control las interacciones entre
componentes en tiempo de ejecución (enlace
dinámico)
- Observar y modificar la arquitectura de componentes
(Creación, destrucción, inserción y eliminación de los componentes)
Toulouse
Francia

Diseño para la adaptación: Diseño inicial


modelo de avería
del desplome
Mezcl
• Soporte de Comunicación ado
preocupa
• Solicitud de ciones
procesamiento
• Comprobar duplicado
• Inter-Replica Protocolo para PBR

el desarrollo de nuevos protocolos



nueva «DuplexProtocol *» clase
Toulouse
Francia

Diseño para la adaptación a través de la


iteración
• Paso 1:
- exteriorizar características comunes de
todos
Protocolos dúplex
- Romper el Protocolo Inter-Réplica en:
* sync_before
* tratamiento
* sync_after
- Evoluciones
⇒Facilitar dúplex variantes de desarrollo
(Por ejemplo LFR), no duplicación de
código
⇒nuevo modelo de fallo (fallo valor
transitorio) => La combinación de un
modelo de protocolo dúplex y el patrón
de tiempo de la redundancia
Toulouse
Francia

Diseño para la adaptación a través de la


iteración
• Paso 2:
- procesamiento de
solicitudes
exteriorizar y la
comunicación con
el cliente
- Implementación de
Tiempo de
redundancia (fallo
valor transitorio)
- Fácil composición
de Protocolos de
tolerancia a fallos
Toulouse
Francia

Diseño para la adaptación a través de la


iteración
• Facilitar la
composición
protocolo
• Protocolos de Compuesto 
extensión modelo de fallo
• clases de grano fino:
- facilitar el mapeo a los
componentes en un
middleware CBSE
- minimiza la manipulación
de estado durante la
actualización del
software
Toulouse
Francia

On-line adaptación
variantes FTM y transiciones algoritmos middleware en
• CBSE
se definen fuera de línea (bucle externo)
acción
algoritmos de transición se ejecutan en
línea - Parar un componente
• Todas las solicitudes en
curso
(UN ∩ B y B \ A y A \ B) deben ser procesados
• solicitudes de entrada
Queuing
• Componente de
Activación
almacenamiento de
estado
- Comenzando un
componente
y provocando su
inicialización
Un API mínimo se puede implementar
CBSE en un middleware que proporciona - Unión y
SW compromiso.Por
actuadores en ciclo de vida de
componente componentes
Toulouse
Francia

On-line adaptación
variantes FTM y transiciones algoritmos algoritmo de
• transición
se definen fuera de línea (bucle externo)
modelo
algoritmos de transición se ejecutan en
línea - Identificacion de
componentes que se
(UN ∩ B y B \ A y A \ B) cambiado
- definición de secuencias
de comandos fuera de
línea
Deja de componentes
• en una
estado adaptación
adecuada
(cabellos)
• componentes unbind
Instalar nuevos
• componentes
Un API mínimo se puede implementar
CBSE en un middleware que proporciona
SW • componentes se unen
actuadores en ciclo de vida de
componente • Comience componentes
Toulouse
Francia

On-line adaptación
variantes FTM y transiciones algoritmos Los experimentos en curso
se definen fuera de línea (bucle externo) • Guión
- T0: modelo de fallo de un accidente
la replicación pasiva
algoritmos de transición se ejecutan en - modelo de fallo de caja para R: T1
línea replicación activa Semi
T2: dinero en efectivo + modelo de
- defecto transitorio para A
(UN ∩ B y B \ A y A \ B) la replicación semiactivo
+ Tiempo de redundancia
• pasos de trabajo
- diseño de Mapeo de componentes
Pocos componentes a ser
- cambiados
Estado mínimo, la función de
- transferencia fácil
Realizar las actualizaciones en
- tiempo de ejecución

• Soporte de middleware Frascati


Un API mínimo se puede - La secuencia de comandos se
puede probar con la mano a
implementar en un middleware través de una interfaz interactiva
CBSE proporcionar actuadores SW - definición script puede ser sintonizado
en el ciclo de vida componente antes de ejecutar
Toulouse
Francia

Síntesis y etapas de trabajo


• Diseño para la adaptación es esencial
- diseño basado en UML para los patrones de diseño FTM
- La generación de código en C ++ para pruebas de concepto
- Evaluación práctica en un estudio de caso simple
- Comentarios al diseño siguiendo criterios de adaptación
• Los experimentos
- Los experimentos en el Frascati CBSE / middleware SCA
- aplicación ad hoc de un soporte componente de ejecución de los
sensores inteligentes
• Las transiciones entre FTMs es en gran medida asistidos por el
soporte de ejecución CBSE (suspender / activar, bind /
unbind, ...).

M.Stoicescu , JCFabre , M.Roy, «Arquitectura de Sistemas de Computación resilientes: Enfoque general y cuestiones abierto»,
Int. Taller En Ingeniería de software para sistemas resilientes (SERENO 2011), Ginebra (Suiza), Septembre 2011, pp.48-62
Toulouse
Francia

Conclusión
Toulouse
Francia

Observaciones finales
• Muchas tecnologías están disponibles para SE aplicar
resiliente informática en el intestino, sino también en el
intestino.
• En los grandes sistemas, computación elástica es obligatorio desde el
individuo
elementos (por ejemplo, servicios web) tienen
propiedades de confiabilidad desconocidos y el cambio
de una manera incontrolada.
• Ingeniería de software basado en componentes ayuda a desarrollar
sistemas flexibles
- Tiempo de diseño
• Diseño y análisis de FT marco de los mecanismos de referencia WRT
• FTMs Proyectos de adaptación y que facilita la asignación de componentes

- Tiempo de ejecución
• Identificación de un soporte de middleware para realizar modificaciones en línea
• Definición de algoritmos de transición para la adaptación en tiempo de ejecución
• Sincronización de cambios para garantizar un comportamiento coherente