|
|
|||||
|
|
|
|
Con el objetivo de responder a los requisitos más exigentes de capacidad de cálculo hemos adaptado el módulo de motor de computación de INvSIGHT para que pueda operar en modo grid computing (computación en paralelo). De este modo la aplicación es susceptible de manejar los cálculos en múltiples ordenadores en red que tengan capacidad de proceso ociosa. Esto permite reducir significativamente los tiempos de proceso. Lo cual es un requisito imprescindible para muchas tareas que requieren elevada capacidad de cómputo, piensese por ejemplo en gestión de riesgos de mercado, gestión de riesgos de crédito, valoración de productos complejos, valoraciones estocásticas de pasivos actuariales (pólizas). Esta capacidad permite abaratar significativamente los costes de la infraestructura hardware necesaria. SOFTWARE DE APOYO - Gestión de Cambios El ámbito en el que se gestionan los cambios abarca desde una aplicación, un ordenador concreto en el que pueden estar ejecutándose varias instancias de la misma aplicación, o toda una red de ordenadores en la que puede encontrarse un número indeterminado de instancias del programa. El framework se basa en el mecanismo de propagación de cambios observado en los seres vivos: Existen ciertas entidades capaces de producir cambios: células sensibles al dolor, al calor, etc. que producen cambios eeléctricos en el sistema nervioso, glándulas que generan cambios hormonales en el sistema circulatorio... Otras entidades se sensibilizan ante ciertas señales, de forma que es como si mostraran especial interés en determinados tipo de señales o cambios. Así diferentes órganos son sensibles a distintas hormonas que controlan su funcionamiento. Entre unos y otros existe un mecanismo de transporte de las señales: el sistema nervioso, el sistema linfático, el sistema circulatorio... De manera similar, con el ChangeMgmt framework, un objeto existente dentro de un programa puede tener asociado cierto número de emisores, que generan cambios muy concretos, informando de modificaciones en su estado. Por otra parte, ciertos objetos pueden mostrar su sensibilización hacia cambios concretos, con independencia de quién los emita, haciendo uso de receptores configurados para reaccionar ante esos cambios. Los cambios son entonces enviados por los emisores a un sistema de propagación de cambios que los hace llegar a los receptores interesados. El sistema de propagación de cambios puede ser tan complejo como toda una red de clientes/servidores distribuída por ordenadores situados en cualquier lugar geográfico. Uno de los puntos fuertes de este framework es la entidad Cambio. Por una parte, los emisores envían cambios muy concretos, con información que permite a los receptores saber si tienen que activarse o no, además de información que ayuda al objeto receptor del cambio a reaccionar. Por otra parte, los receptores se configuran haciendo uso de la misma entidad Cambio, rellenando sus campos según interese, con más o menos datos. Es decir, el receptor utiliza en realidad patrones de cambio para configurarse, de forma que el patrón puede ser desde totalmente concreto (lo que haría que se produzcan menos activaciones) a muy abstracto (lo que puede producir gran nmero de activaciones del receptor). La activación de un receptor se produce por la comparación del Cambio recibido con los patrones de cambios con los que el receptor ha sido configurado. SOFTWARE DE APOYO - Gestión de Datos Asíncronos Cuando un programa realiza un cálculo, bien sea para imprimir el resultado en pantalla, o para devolverlo como cálculo intermedio a otra entidad del programa, normalmente necesita un conjunto de datos con los que operar. Es posible que algunos de estos datos no estén disponibles en la aplicación, por lo que debería consultarse a una fuente externa (aplicación, base de datos local o remota). Una consulta de este tipo puede tener un tiempo de respuesta impredecible, por lo que no sería conveniente bloquear al programa hasta que obtuviera cada dato que tenga que ser consultado a una fuente externa. Se necesita, pues, un modo de trabajo asíncrono con estas fuentes de datos (de ahí el nombre de este framework) frente al modo de trabajo síncrono. Lo normal, modo síncrono, es que un programa: Pida un dato que se le devuelve inmediatamente. Opere con el dato y lleve a cabo una acción con el resultado: devolverlo, imprimirlo, guardarlo en una base de datos... En contraposición, el modo de trabajo asíncrono que proponemos con AsynchDataSrc se basa en: Petición de un dato. Si ese dato va a tardar en estar disponible un tiempo intedeterminado, obtendremos una especie de resguardo de haber pedido el dato. Este resguardo se puede combinar con otros que hayamos podido obtener de otras peticiones similares, o de peticiones síncronas, para implementar qué queremos que se haga con ellos. Cuando los datos asíncronos están disponibles se ejecutaría automáticamente aquello que implementamos en el punto anterior. Ejemplo: Acción principal: Decidir si me voy a la montaña. Datos necesarios: -Estado del tiempo: fuente Instituto Meteorológico Nacional. -Estado de las carreteras: fuente Dirección General de Tráfico. Implementación: Decidir si me voy a la montaña devuelve un Resguardo resguardoIMN= obtenerPrediccionTiempo; resguardoDGT= obtenerPrediccionCarreteras; Devuelve un nuevo resguardo que combina de la siguiente manera los anteriores: si (el valor de resguardoDGT es "bueno" y el valor de resguardoIMN es "bueno") -> el valor de este nuevo resguardo es "SI" En otro caso -> el valor de este nuevo resguardo es "NO" Con el modo síncrono de trabajar el programa preguntaría "te vas a la montaña?" y se quedaría esperando a que se le respondiera. Vemos que en este caso, al hacer la pregunta lo que se devuelve es un resguardo, por lo que el programa puede utilizarlo para decir qué quiere que se haga con el valor de la respuesta cuando esté disponible (por ejemplo, preparar los esquíes si el valor es "SI") y seguir haciendo otras cosas, habiendo dejado la tarea programada y pendiente. |
|
||||||||||||||||||||||||||||||||||||||||||
|
|
||
|
Copyright© 1999 - 2008
Soluciones Holísticas para InterNet |
|
|
|
|
||