h1

Hello world!

Febrero 20, 2008

Disperso en mis aficiones y constante en el trabajo. Creo que esa es la única forma con la que puedo llegar a definirme sin no extenderme más de una línea.

¿Cómo un fanático del futbol y a las composiciones con mis viejas guitarras (Dispersión en aficiones) acaba dirigiendo proyectos en una consultora hasta llegar a trabajar en su propio proyecto emprendedor (Constancia)?. Como diría mi padre… un 7 u 8 en todo :)

Siempre he creido que el blog es una muy buena forma de conocer gente y que te conozcan antes incluso de tener un café en persona. Pero mis anteriores experiencias en blogging  han sido poco fructíferas. Tanto a nivel personal como global.

Bienvenido a mi blog, donde no me cortaré en hablar sobre lo que me de la gana (sin ofender… o si) y en donde intentaré ir plasmando aquellos hechos relevantes que crea necesario compartir. Tanto a nivel personal como sobretodo profesional.

Me comprometo a intentar escribir almenos un post al día (Esto lo uno a facturar 1 Millón de euros en 1 año, terminar una dieta, ir más al gimnasio, liberar la plataforma de think in grid, hacerme más 2.0, etc. etc.).

Y nada más, artistas al escenario, que empiece el espectáculo.

h1

Merry Christmas

Diciembre 25, 2007

Think in grid wants to wish you a MERRY CHRISTMAS and a HAPPY NEW YEAR

Thank you John ;)

h1

Hello Flex, bye bye Ajax

Diciembre 3, 2007

Yesterday, Angel and Miguel, creators of the development Flex framework called Guasax visited Think in grid. After a visit to CitiLab and greet people of iWeekend, we started to talk about Flex and how to apply it in our Grid Portal.

One point for Diego, who started to defend it a few months ago. Flex it’s a very good RIA solution, maybe the best. Angel and Miguel solved our questions and my concerns:

1º I don’t want to use another technology if I can solve it with Ajax, gwt or other java solutions. Flex surpass the probe. It’s easy to learn, and the most important thing, it’s very easy to integrate with a Java architecture (I am thinking in Spring + hibernate). And the development time is shorter than a RIA application using Ajax. The result, no color, flex wins.

2º The performance. Our web application have on-line chart pages, Many nodes to manage, etc. This page answered our concerns.

3º How much does it cost? Flex is open source. The development IDE (Standalone or eclipse plugin) is unexpensive. Maybe the bad news are that some interesting solutions (data management module) are expensive when the application is stored on a production environment. But we can avoid this module using our own solutions.

4º No limits. Easy development for rich interfaces with usability and design. All in one.

Thanks to Angel and Miguel, now we will start to work and “think in flex”.

h1

Ibergrid trip: Facendo amigos

Mayo 30, 2007

La pasada semana estuvimos con un poster en el ibergrid, la primera conferencia de lo que será futura red de Grid España, Portugal y quizás Iberoamérica. El congreso lo abrió Ian Foster nada menos, con una gran charla sobre la evolución de las infraestructuras de investigación desde los griegos hasta el Grid ….

poster_ibergrid_final

Nuestro poster presentaba la infraestructura Grid de la empresa, con los resultados correspondientes al meta-scheduler o planificador adaptativo basado en agentes de IA. Estuvimos haciendo algunos amigos:

akogrimo

Manager Applications E-Infrastructure Europe Latin America( ELAA)

Centro supercomputacion Galicia CESGA

sales manager de HP Portugal

h1

Burning Framework

Abril 30, 2007

Con este título, robado de mi querido Albert abro este pequeño post. Digamos que está bien hablar de otras empresas o de externalidades, pero de vez en cuando toca contar como va el tema técnico.
La verdad que las cosas pintan muy bien, después de un proceso intenso de prototipaje en estos últimos 4 meses el FW entro hace 2 semanas en fase de testeo intensivo donde tenemos varios objetivos:

· Probar el sistema de Agentes desarrollado por Isaac y sacar conclusiones.
· Hacer sufrir el FW e ir depurando código para sacar el máximo partido y conocer los límites actuales con los que nos encontramos.
· ¿Cuanto fácil de instalar es?

Sobre el primero… creo que Isaac estará encantado de comentar sus resultados en otro post, hace 1 semana que se ha cerrado en su laboratorio de pruebas y anda allí jugando con el tema. De forma sencilla, en mis últimas pruebas pude observar como el FW descartaba uno de los nodos al comprobar que este andaba saturado haciendo cosas en local.

Sobre el segundo punto… Espero que Albert os comente algo, pero ya ha montado su servicio de saturación y ha empezado a realizar peticiones intensivamente a la arquitectura. Hasta el momento, 1086 conexiones abiertas entre el FW i los diferentes MW. No está mal ;). Encima se ha montado un interesante sistema de monitorización que nos permite ver bonitos gráficos online de la carga de CPU en cada MW y el estado de las diferentes colas de ejecución.

Por último, la prueba de fuego :). Diego ha cogido el FW y el MW y mediante documentación generada en nuestra wiki interna ha instalado todo el entorno en el despacho. Creo que ver su cara de satisfacción no tiene precio :). En 15 min. (Contando la instalación puramente estandard de Tomcat), a conseguido hacer correr un pequeño Grid con 7 nodos (1 Linux, 2 Mac y 4 Windows).

Bueno, después de lanzar retos a Isaac, Albert (Para que escriban un post) solo me queda añadir que todo y las interesantes resultados obtenidos en las pruebas (hasta el momento) ya tenemos una larga lista de @TODO’s para la próxima versión (de aquí la grandeza del prototipaje) que, añadido a la agonía a la que estoy sometiendo a Albert con la documentación del FW nos permitirá tener una versión de la que ahora ya, nos sentimos muy orgullosos.

Por cierto, ando buscando artículos, manuales, documentación que hable sobre testing de arquitecturas montadas con tecnología Java, cosas a tener en cuenta, herramientas, etc. El objetivo, añadir más conocimiento a lo que ya tenemos hasta el momento y encontrar otros puntos de vista en ejecución de pruebas de estrés. Por lo tanto, lanzo está petición a quien quiera contar sus experiencias.

Hasta la próxima…

h1

Simulador agentes en el Grid disponible para descarga en sourceforge, versión alpha

Marzo 10, 2007

Ya anunciamos en un post de hace un par semanas que teníamos completado un simulador de agentes en el Grid.

Hemos completado la fase de documentación y hemos añadido un manual de usuario que esperamos sea de utilidad. El release está ahora mismo disponible para descarga en souceforge.

Incluye:

- código fuente

- manual de usuario/tutorial

Debería de ser posible para cualquiera (con algo de background en Grid y manejo de java/eclipse) procesar el manual y ejecutar simulaciones básicas en unos 30 minutos. Animaros a probarlo!

Si encontrais agún problema intentando llevar esto acabo, agradecemos especialmente vuestro feedback.

Si os meteis a inspeccionar el código y tenéis sugerencias y/o recomendaciones, también son especialmente bienvenidas

Si os interesa lo que veais, el proyecto seguirá vivo en sourceforge, estáis invitados a participar activamente. En paralelo iremos informando por el blog de avances importantes :)

h1

IA en el Grid, que aplicaciones existen?

Marzo 2, 2007

El comentario de Luis sobre la necesidad o no de aplicaciones de IA en el Grid nos pareció tan bueno que decidimos responder al reto con un post completo, listando 10 aplicaciones de IA en el Grid, que no serían lo mismo sin ella. Los colocamos en el orden descendente de prioridad. Entendemos aquí prioridad como la necesidad práctica de la solución que se propone para el escenario Grid actual o de futuro próximo, por contraposición a aplicaciones más potentes en un futuro, pero también más inciertas o especulativas. Invitamos a los lectores a discutir sobre la necesidad o no de las aplicaciones propuestas, y eventualmente a variar el orden de las prioridades. Aquí van:

1. “Scheduling” de tareas en el Grid:
Si se quiere que escale a entornos heterogéneos y dinámicos, es preciso dotar a los componentes de control de habilidades de adaptación a los cambios en el sistema.
Cuando la escala del sistema es grande ( >> 1000 nodos) o muy grande ( >> 10000 nodos) esa adaptación debe de ser automática (no supervisada por administradores, o sólo supervisada para cuestiones cruciales) si se quiere mantener el sistema con garantías. Los agentes de software proporcionan numerosas técnicas para esto, manteniendo la autonomía de cada entidad del Grid, algo seguramente muy importante para los administradores de cada organización que participen en un mismo Grid: mantener el control de sus recursos.
Nosotros estamos desarrollando con buenos resultados de momento agentes basados en Reinforcement Learning para scheduling automático en el Grid. Sistemas reales de e-science en el Grid como Pegasus en Chicago ya se han apuntado en algunos trabajo académicos como potenciales beneficiarios de estas técnicas en sus Grids de gran escala.

2. QoS en el Grid:
Grid vs P2P
. La diferencia la marca la calidad de servicio para escenarios generales e interoperables, objetivo principal de la tecnología Grid y responsable de buena parte de sus complejidades. Para gestionar la calidad de servicios entre multiples servicios, se necesitan como mínimo capacidades de negociación automática.

3. Gestión de SLAs:
Los SLAs estandarizan los contratos de provisión de recursos en el Grid, y es un tópico de gran interés en la industria Grid ahora mismo. De nuevo la gestión de SLAs entre servicios de manera automática requiere de coordinación y negociación, ambos escenarios muy desarrollados en la tecnología de sistemas multiagente.

4. Mercados Grid:
Si lo que tenemos es un mercado de recursos en un escenario virtual, porqué no organizarlo como un mercado usando los modelos económicos disponibles? Implementar esto es, de hecho, implemenar un sistema multiagente.

5. Mobile/pervasive/ubiquitous Grid Computing:
Este escenario es favorito de TiG. Avances técnicos importantes en el campo de virtualización son pre-condición para disponer de todos esos dispositivos en un Grid. Pero cuando todo esté listo…. ese escenario es si cabe más dinámico e impredecible que cualquier otro. Capacidad de adaptación será un requisito importante, y cada dispositivo será por supuesto autónomo. Agentes … sí.

6. Organizaciones virtuales en el Grid:
Antes o después esto será una realidad en el mundo globalizado poblado por compañías ávidas de asociarse para obtener ventajas competitivas. Garantizar un mínimo de órden requerirá bastante automatización y capacidad de adaptación por parte de las herramientas de coordinación de políticas en las VOs.

7. Social Network Grid Computing:
Cuando una red social está compuesta no solo personas sino también de máquinas, aplicaciones, sensores… esperamos que interaccionen con nosotros de una manera mínimamente “personalizada”. Sin una inteligencecia artificial mínima ese “nivel de satisfacción” para los usuarios del redes sociales en un Grid nunca se podrá alcanzar.

8. Grid y Web 2.0 :
Hype o no, es muy relevante la cantidad de mashups de los que uno ya dispone para facilitarle la vida en la red. Y si un día los mashups los construyen los propios servicios Grid según lo vayan necesiatando? Ciencia ficción, o no, Grid 2.0. Lo colocamos de 8, por eso eh :P
9. Grid 3.0, semantic Grid:
Semantic Web (Web 3.0 como dicen algunos ahora) convergiendo con el Grid. Hay mucha gente que dice que ese es el escenario definitivo… veremos. Lo que está claro es que hará falta mucha, mucha IA para convertir esto en realidad.

10. Pues aquí ya nos hemos cansado/quedado sin aplicaciones :) Sin embargo aprovechamos para filosofar y condensar los 9 puntos anteriores: Si en algó está de acuerdo la comunidad Grid, es que es importante ofrecer servicios interoperables. Si tenemos servicios interoperables, significa que pueden interoperar. Si mi google reader se lee solo los feeds sin que yo me preocupe de qué está pasando gracias a que hay un estandar RSS, por qué se tendría que terminar ahí la diversión? Si los recursos en Grids de gran escala estuvieran estandarizados, lo lógico sería aprovechar para automatizar muchas cosas. Entonces los futuros servicios Grid, para aprovechar todo ese potencial, deberán ser activos, aprender de las respuestas de los usuarios y de otros servicios, de los cambios en su entorno… deberá tener IA.

En resumen, cuando se requiere coordinación o toma de decisiones automatizada en sistemas de gran escala, dinámicos y heterogéneos (como pasa ya en algunos escenarios Grid, y pasará cada vez más), la IA resulta muy útil. Ahí quedan las 10 aplicaciones, se abre la veda de las discusiones ;)

h1

AgentGrid Repast Simulator

Febrero 16, 2007

Dicen algo para ti las palabras Grid, agente, y simulación en una misma frase? Entonces seguro que echabas de menos lo que vamos a presentar. Tranquilo, si no te dice nada la combinación, es muy posible que esto tambíen te parezca interesante o curioso. Sigue leyendo :)

Lo veníamos anunciando desde Navidades,  estábamos desarrollando un simulador de agentes en el Grid. Tenemos algún post explicando para qué queremos este simulador:

Acabamos de montar en sourceforge el proyecto que da cobijo la alpha de nuestro simulador de sistemas multiagente en el Grid.
AgentGrid Repast Simulator at sourceforge

La idea central es crear una comunidad (es un dominio muy específico, pero hay bastantes investigadores a nivel europeo y mundial) al rededor de la herramienta, que es pionera ya que no existe otro simulador de Grid  enfocado a Inteligencia Artificial y que sea accesible públicamente. Por un lado los investigadores obtienen una herramienta agil y flexible para analizar de manera sencilla sistmas mulitiagente en el Grid. Por el otro contribuyen a la mejora de la herramienta. La licencia, GPL. Tendremos un lugar en la web de la empresa para complementar la info sobre el simulador.

En un post posterior (en 1 semana digamos) daremos cumplida cuenta de los detalles técnicos (los imprescindibles) sobre el simulador, así como acceso via sourceforge al simulador en sí, el código y el manual de usuario. La idea  central es que cualquira con algún conocimiento de los entornos Grid y algunos (escasos) conocimientos de Java, y una idea de lo que quiere que sus agentes hagan  y como quiere que aprendan (eh, esta  parte no la podemos hacer por ti, esa es tu aportación creativa a la receta;) podrá disponer de una herramienta sencilla para testear sus hipótesis.

De momento os pasamos este video para que podais verlo en acción. Pedimos disculpas por la baja calidad del video, de momento lo nuestro es el Grid y no la edición de video / optimización de formatos para youtube. Agradecemos consejo de algún entendido en la materia sobre herramientas/trucos para pulir la edición del video ;)

h1

Noches de bohemia… y java

Enero 21, 2007

Llevamos 4 días metidos en el despacho, 4 días non-stop donde el portero del edificio nos mira con cara rara. 4 días a ritmo de start-up.  4 días para poder cerrar temas aplazados, empaquetar demostraciones y terminar material de soporte para mostrar a nuestros futuros clientes a que cosas nos dedicamos y que cosas podemos llegar a realizar con ellos.

Pero no quiero hablar de ventas… quiero hablar de las demos.

Think in grid cuenta con una herramienta interactiva que se dedica a comprobar resultados obtenidos de una base de datos para recuperar el patrón molecular que más se parece al que el usuario ha dibujado por pantalla. Ya os aviso que el cuello de botella se encuentra en dicha comprobación, y más cuando te encuentras con una base de datos repleta de valores, y mucho más cuando esta base de datos se encuentra distribuida por toda tu organización. Pues nada,  a gridear se ha dicho. El resumen del resultado es el siguiente:

  1. 3 horas de definición técnica de los objetivos.
  2. 2 horas para montar el servicio de comparación de moléculas. Aclarar que el algoritmo de comparación no está hecho por nosotros, menuda gracia tendría hacer algo que desconocemos y que será uno de los pre-requisitos marcados por el cliente.
  3. 1 hora para montar el entorno. Un Framework corriendo sobre un servidor Tomcat con axis2 y 4 middlewares (1 línux, 2 windows y un mac). Toda una delicia.
  4. 53 minutos (Contados con el reloj). Para programar la aplicación con la infraestructura grid (Instalar la librería de desarrollo y escribir 4 líneas de código).

Con eso cumplimos el primer pre-requisito de nuestra arquitectura. Simplicidad de implementación.

Pero tiene truco…. porque eso no suma 4 días… La verdad que toda la complicación la hemos encontrado en 2 puntos, que creo que conocido por todos los programadores java de este, nuestro mundo.

  1. Gestión de librerías…. No puede ser que sea un caos definir que librerías necesitas. Que entre librerías existan conflictos porque dentro de ellas tienen otras librerías repetidas entre jar’s, que te vayas encontrando con incompatibilidades a medida que pruebas…. ufff, ha sido toda una odisea.
  2. Java.policy. La aplicación la teníamos corriendo en un simple applet (No quiero comentarios). Y eso conlleva modificar las políticas propias de seguridad que implementa Java en su ficherito Java.policy, que dicho quede de paso… puedes llegarte a encontrar 3 o 4 versiones del mismo en tu ordenador y no sabes cual tocar, y como tocarlo. ¿Cual es el motivo de esto? Porque no utiliza las propias políticas de seguridad de la máquina? Porque de tanta anarquía? El tema esta en que ya somos casi expertos en el tema…. y no nos sirve de nada :).

De estos dos puntos Albert ya se encargará de hacer una buena optimización a nuestra librería y a lo que no lleguemos por limitaciones, un buen manual y una dirección y foro de soporte… lo arregla todo.

Pero aún queda 1 día y una noche más. La demo debe de estar para el lunes a las 19:00. Ya sabéis… clientes y esas cosas…. Por eso ahora toca adornarnos…. Y vamos a rematar el trabajo realizado con los siguientes puntos.

  1. Sacaremos números de rendimiento para ver que tal funciona esto. (Isaac nos lo agradecerá)
  2. Integraremos la primera versión del portal de Gestión Grid que está realizando Kiusap.
  3. Montaremos una presentación de soporte para la venta :).

Y con eso creo que nos mereceremos unas buenas vacaciones: Lunes por la noche libra todo el mundo. El martes por la tarde volvemos al trabajo.

PD: La foto lo dice todo… material de start-up.

Marca en Flickr aquello que reconozcas ;)
h1

Web Services, sockets y ThinkInGrid (II)

Diciembre 29, 2006

Creo que los comentarios e inquietudes expuestas por Luís y Lluís se merecían un nuevo post.  Nos hemos sentado Albert y yo, un par de vasos de Coca-cola y este es el resultado:

Web Services e interoperabilidad… ese gran dilema. No creas que no hemos hablado de ello. Si una cosa está clara es que los web Services fueron definidos para solucionar la interoperabilidad. Y después de mucho darle vueltas, creemos que Axis cubre nuestras expectativas. Así, como funcionalidad, se puede desplegar el framework como web service. Esto nos permite conectarnos a un framework remotamente a través de una interface web (pudiendo administrar o requerir ejecuciones).

Como dice Luís "…no es un problema atacar un SW implementado en Java desde un cliente .Net, Python o Symbian C++.." . Yo incluso creo que cosas sencillas y un poco complicadas, que realmente por mi justa experiencia creo que cubrimos el 90% de las necesidades de todos nuestros clientes potenciales. Pero ya puestos a pedir, y espero que no me cobres por ello , conoces alguna tecnología que te cubra todo el abanico de posibilidades?

La API de aplicaciones (ya hablaremos más adelante de que lenguajes soportaremos) permitirá la representación en objetos para su manipulación,  que en última instancia se traduciran a mensajes xml a enviar al FW (a través del puerto nativo). Por lo tanto destacar que tanto los mensajes que llegan a través del web service como en socket son equivalentes.

Lo que se comentaba sobre la API REST, quizás no me he explicado bien. Es justamente lo que tenemos :). Un servidor web + AXIS + XML. Todo y eso, creemos que no debemos olvidar tener un soporte clásico de sockets, porque como dices tu en otras palabras, no se puede pedir todo en esta vida y menos a los web Services.

Ligero, si, ligero, ligero, ligero. Por suerte, el diseño de nuestra arquitectura requiere de un módulo ligero en cada nodo de la red (El middleware) pero nos podemos permitir el lujo de decidir que FW exponen sus servicios en forma de web services, que es la parte central (que no centralizada) de nuestra arquitectura.

Los beneficios que nos aportaba tener sockets y SOA era mayor a los perjuicios de no hacerlo. Encima, está montado de tal forma que se reaprovecha gran parte del código en las dos interfaces (Que en el fondo es una pero con dos puertos de entrada).

La liberación de código está planificada para finales del mes siguiente (si todo va según lo planificado). Como comentábamos en el post del KICK OFF, de entrada no liberaremos el framework.

Sin más me despido. Gracias por vuestros comentarios :)