Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
AUTORES
Francisco J. García-Bonet
Raúl Casado Universidad de Granada
Ramón Pérez Red de Información Ambiental
Blas M. Benito Centro Andaluz de Medio Ambiente
CONTENIDOS
Introducción..................................................................................3
¿Qué es Kepler?............................................................................3
Características de Kepler.............................................................................4
Los flujos de trabajo en Kepler......................................................5
El lenguaje de modelado de Kepler...............................................7
Vergil, la interfase de Kepler..........................................................8
Requerimientos de hardware.....................................................................11
Algunos problemas conocidos....................................................................11
Los Directores.............................................................................11
Selección del Director adecuado................................................................12
Los Actores..................................................................................13
Control de flujo............................................................................15
Kepler y los Sistemas de Información Geográfica........................16
Hoja de ruta de Kepler.................................................................16
Algunos sistemas similares.........................................................17
Bibliografía..................................................................................18
Glosario.......................................................................................19
DISEÑO Y CREACIÓN DE UN REPOSITORIO DE MODELOS PARA LA RED DE INFORMACIÓN AMBIENTAL DE ANDALUCÍA
Introducción
En los últimos años, gracias al desarrollo de las tecnologías de comunicación y las
infraestructuras de datos distribuidos, se ha incrementado la necesidad de interfases
adaptables y herramientas para acceso a datos y ejecución de análisis complejos. Este
tipo de análisis pueden ser modelados como flujos de trabajo descritos en un lenguaje
formal.
¿Qué es Kepler?
Kepler (http://kepler-project.org/) es un proyecto colaborativo (ver cuadro 1), de código
abierto, que pretende proporcionar un “entorno de modelado y resolución de
problemas”. Mas concretamente, se trata de un sistema diseñado para crear modelos
ejecutables utilizando una representación visual de los procesos que implican. La
representación gráfica de estos modelos, también llamadas flujos de trabajo muestra
el flujo de datos entre los distintos componentes del análisis.
Kepler está especialmente diseñado para dar soporte al flujo de datos en distintos
dominios técnicos y científicos, como la bioinformática, la ecoinformática y la
geomática entre otros, pero sus características pueden ser aplicadas a cualquier
campo que requiera flujos de trabajo con datos para resolver problemas.
Características de Kepler
Kepler se aplica a flujos de trabajo con gran volumen de datos, altos requerimientos
computacionales, transformación de datos, análisis y simulación. Kepler hereda de
Ptolemy II el paradigma de modelado orientado a actores, que diferencia los
componentes del flujo de trabajo y enfatiza la concurrencia y comunicación entre
actores, que están gobernado por un “director”.
como “tokens”. Cada token tiene asignado un tipo de datos concreto (enteros,
coma flotante, etc).
Los distintos actores pueden ofrecer sus salidas en ventanas diferentes según se trate
de texto, gráficos descriptivos o imágenes (ver Figura 2).
Las fuentes de datos pueden (deben) llevar metadatos escritos según el lenguaje EML
(Ecological Metadata Languaje; http://knb.ecoinformatics.org/software/eml/). Los
metadatos asociados a un conjunto de datos pueden visualizarse desde Kepler, tal y
como muestra la Figura 4.
Figura 2: Ejemplos de ventanas de salidas de los actores Image y Display del flujo de trabajo
representado en la Figura 1.
Vergil permite abrir varias instancias de la interfase con distintos flujos de trabajo
abierto (aunque solo uno puede estar ejecutándose) para copiar y pegar componentes
de un flujo a otro.
Una descripción exhaustiva de la utilización de Vergil está fuera del objetivo del
presente informe, pero para profundizar en su uso pueden consultarse los siguientes
documentos (reseñados en la bibliografía): Kepler User Manual, y Kepler Getting
Started Guide.
Requerimientos de hardware
Kepler y su interfase Vergil están escritos en java, un lenguaje interpretado con ciertos
requerimientos de hardware. Para correr Kepler sin problemas se recomiendan:
La implementación actual del código de Kepler lo hace ineficiente para procesar datos
organizados en matrices tridimensionales. Para cubrir estas necesidades son mas
adecuados entornos orientados a matrices como SciLab, Octave o Matlab.
Los Directores
Director PN (Process Networks): En los flujos dirigidos por este director los actores
funcionan como procesos independientes que se ejecutan concurrentemente, cada
uno con su propio hilo de control, y se comunican entre sí mediante canales
unidireccionales. El volumen de escritura de datos en un canal no está limitado, pero
la lectura de datos si puede estarlo, e iniciarse el actor cuando tiene suficientes datos.
El Director PN no precalcula el plan de trabajo de los actores, por lo que los flujos de
trabajo gobernados por este director tienen muy pocas restricciones, pero pueden se
muy ineficientes. Este director puede ocasionar resultados inesperados, como la
terminación automática de un flujo cuando un actor pasa demasiada información a
otro, ocasionando desbordamiento de memoria.
Los Actores
Los actores de Kepler están escritos en java, pero cualquier código escrito en
lenguajes distintos a java pueden ser incluidos en kepler encapsulando el código en
java. Cualquier usuario con conocimientos de java puede generar el código para
compilar e incluir en Kepler un nuevo actor.
A continuación se presenta una pequeña lista de actores y sus utilidades, que solo
tiene como objetivo mostrar algunas de las capacidades que los actores pueden
proporcionar a los flujos de trabajo.
Control de flujo
Los flujos de trabajo de Kepler pueden tener una gran complejidad, dependiendo del
análisis a realizar. Para abordar cualquier peculiaridad de un análisis complejo Kepler
dispone de posibilidades para controlar el flujo de información y diseñar estructuras de
control. Entre las estructuras de control mas importantes en los flujos de Kepler están
las ramificaciones, determinadas por el elemento “Relación”, y las estructuras
denominadas bucles (o “loops” en lenguaje informático). Un bucle permite a un flujo
iterar, reenviando información a actores situados corriente arriba. Las herramientas
adecuadas para iterar y generar bucles en flujos de trabajo son:
● Iteraciones del director SDF: Configurando el director para que realice varias
iteraciones (parámetro iterations > 1) el flujo puede realizar n iteraciones
independientes (el resultado de una iteración no depende de los resultados de
iteraciones previas). Flujos con actores como LineReader, para transformar
series de valores leídos de un archivo son los apropiados para esta técnica.
● Actores Ramp y Repeat: Ambos actores permiten diseñar estructuras de control
gobernadas por un índice determinado por los parámetros de Ramp, y repetir
las iteraciones un número de veces determinadas por el actor Repeat.
● Listados: Los listados de datos permiten procesar series de valores sin
necesidad de iterar. Los actores Expression y los actores R están diseñados para
procesar matrices.
● Bucles retroalimentados: Consisten en iteraciones que dependen de los valores
de iteraciones anteriores. Requieren el actor SampleDelay para proporcionar un
paquete de datos inicial.
Bibliografía
Kepler User FAQ: www.kepler-project.org/Wiki.jsp?page=UserFAQ
Kepler Project FAQ: http://kepler-project.org/Wiki.jsp?page=ProjectFAQ
Getting Started Guide:
http://cvs.ecoinformatics.org/cvs/cvsweb.cgi/~checkout~/kepler-
docs/user/app/getting-started-guide.pdf?rev=1.3&content-type=application/pdf
Kepler Actor Reference:
http://cvs.ecoinformatics.org/cvs/cvsweb.cgi/~checkout~/kepler-
docs/user/app/ActorReference.pdf?rev=1.2&content-type=application/pdf
Kepler User Manual: http://cvs.ecoinformatics.org/cvs/cvsweb.cgi/~checkout~/kepler-
docs/user/app/UserManual.pdf?rev=1.5&content-type=application/pdf
Iterations in Kepler: www.kepler-project.org/Wiki.jsp?page=Kepler_Iterations
Directors in Kepler: www.kepler-project.org/Wiki.jsp?page=DirectorsInKepler
Collection-Oriented Scientific Workflows for Integrating and Analyzing Biological Data,
T. McPhillips, S. Bowers, B. Ludäscher. In 3rd International Conference on Data
Integration for the Life Sciences (DILS), LNCS/LNBI 2006.
http://daks.ucdavis.edu/~sbowers/McPhillips_et_al_DILS06.pdf
Scientific Workflow Management and the Kepler System, B. Ludäscher, I. Altintas, C.
Berkley, D. Higgins, E. Jaeger-Frank, M. Jones, E. Lee, J. Tao, Y. Zhao, Concurrency and
Computation: Practice & Experience, 18(10), pp. 1039-1065, 2006.
http://www.sdsc.edu/%7Eludaesch/Paper/kepler-swf.pdf
Actor-Oriented Design of Scientific Workflows, S. Bowers, B. Ludaescher, 24th Intl.
Conf. on Conceptual Modeling (ER'05), LNCS 3716, Springer, 2005.
http://daks.ucdavis.edu/~sbowers/bowers_SWF_er05.pdf
Kepler: An Extensible System for Design and Execution of Scientific Workflows, I.
Altintas, C. Berkley, E. Jaeger, M. Jones, B. Ludäscher, S. Mock, system demonstration,
16th Intl. Conf. on Scientific and Statistical Database Management (SSDBM'04), 21-23
June 2004, Santorini Island, Greece. http://www.sdsc.edu/~ludaesch/Paper/ssdbm04-
kepler.pdf
Ptolemy II Frequently Asked Questions:
http://ptolemy.eecs.berkeley.edu/ptolemyII/ptIIfaq.htm
C. Brooks, E.A. Lee, X. Liu, S. Neuendorffer, Y. Zhao, H. Zheng (eds.), "Heterogeneous
Concurrent Modeling and Design in Java (Volume 1: Introduction to Ptolemy II)," EECS
Department, University of California, Berkeley, UCB/EECS-2008-28, April 1, 2008.
http://www.eecs.berkeley.edu/Pubs/TechRpts/2008/EECS-2008-28.pdf
C. Brooks, E.A. Lee, X. Liu, S. Neuendorffer, Y. Zhao, H. Zheng (eds.), "Heterogeneous
Concurrent Modeling and Design in Java (Volume 2: Ptolemy II Software Architecture),"
EECS Department, University of California, Berkeley, UCB/EECS-2008-29, April 1, 2008.
http://www.eecs.berkeley.edu/Pubs/TechRpts/2008/EECS-2008-29.html
Glosario
Computación GRID: Sistema de computación distribuido que permite compartir
recursos no centrados geográficamente para resolver problemas de gran escala. Ver
en Wikipedia.
Darwin Core (DwC): es un estándar diseñado para facilitar el intercambio de
información acerca de la ocurrencia geográfica de especies, y la existencia de
especímenes en colecciones. Ampliar información.
EML (Ecological Metadata Languaje): Es una especificación de metadatos desarrollada
para disciplinas relacionadas con la ecología. El lenguaje está implementado como una
serie de tipos de documentos XML que se utilizan para documentar datos ecológicos.
Ampliar información.
GDAL (Geospatial Data Abstraction Library): Librería gratuita de código abierto que
facilita la interconversión entre distintos formatos SIG raster (mas de 40). Además de
cambios de formato, la librería provee herramientas para procesamientos básicos. Ver
en www.gdal.org.
GRASS (Geographical Resources Analysis Support System): Software con capacidades
SIG utilizado para la captura, procesamiento, almacenamiento y análisis de
información geoespacial. Es un proyecto oficial de la Open Source Geospatial
Foundation, y se está extendiendo en el ámbito académico y comercial. Es muy
versátil y potente, y aunque ha tenido fama de ser poco amigable, esta circunstancia
ha cambiado y actualmente supone una competencia importante para otros
programas del ramo, como Idrisi. Ampliar información.
JNI (Java Native Interface): Permite a un programa escrito en Java interactuar con
programas escritos en otros lenguajes. Ver en Wikipedia.
Matlab (MATrix LABoratory): Lenguaje de computación numérica y entorno de
desarrollo especializado en el cálculo matricial, el modelado de sistemas y la
implementación de algoritmos. Está diseñado y producido por la compañía The
MathWorks. Es muy utilizado en el ámbito científico y académico, aunque las licencias
son muy costosas.
R: Lenguaje de programación orientado a objetos y entorno de software para el
cálculo estadístico y la composición de gráficos. Soporta una gran cantidad de
funciones estadísticas y técnicas numéricas, que son desarrolladas por la comunidad
científica y puestas a disposición del público (software libre y gratuíto). Destaca por su
flexibilidad y potencia, y es el software libre estadístico de elección en el ámbito
académico. Ampliar información.
WSDL (Web Services Description Languaje): Es un formato XML que se utiliza para
describir servicios Web. Describe los requisitos del protocolo y los formatos de
comunicación necesarios para interactuar con el servicio que describe. Ver en
Wikipedia.