Sliding Window Calculations on Streaming Data using the Kepler Scientific Workflow System

Similar documents
Workflow Fault Tolerance for Kepler. Sven Köhler, Thimothy McPhillips, Sean Riddle, Daniel Zinn, Bertram Ludäscher

Kepler/pPOD: Scientific Workflow and Provenance Support for Assembling the Tree of Life

San Diego Supercomputer Center, UCSD, U.S.A. The Consortium for Conservation Medicine, Wildlife Trust, U.S.A.

Scientific Workflow Tools. Daniel Crawl and Ilkay Altintas San Diego Supercomputer Center UC San Diego

Automatic Transformation from Geospatial Conceptual Workflow to Executable Workflow Using GRASS GIS Command Line Modules in Kepler *

Giotto Domain. 5.1 Introduction. 5.2 Using Giotto. Edward Lee Christoph Kirsch

Interface Automata and Actif Actors

Integrated Machine Learning in the Kepler Scientific Workflow System

SDF Domain. 3.1 Purpose of the Domain. 3.2 Using SDF Deadlock. Steve Neuendorffer

Embedded Systems 8. Identifying, modeling and documenting how data moves around an information system. Dataflow modeling examines

Future Directions. Edward A. Lee. Berkeley, CA May 12, A New Computational Platform: Ubiquitous Networked Embedded Systems. actuate.

Exploiting Predicate-window Semantics over Data Streams

Modeling and Simulating Discrete Event Systems in Metropolis

Accelerating the Scientific Exploration Process with Kepler Scientific Workflow System

A PRIMITIVE EXECUTION MODEL FOR HETEROGENEOUS MODELING

Using Web Services and Scientific Workflow for Species Distribution Prediction Modeling 1

Simulation of LET Models in Simulink and Ptolemy

DESIGN AND SIMULATION OF HETEROGENEOUS CONTROL SYSTEMS USING PTOLEMY II

A High-Level Distributed Execution Framework for Scientific Workflows

Component-Based Design of Embedded Control Systems

Concurrent Component Patterns, Models of Computation, and Types

Dynamic Dataflow. Seminar on embedded systems

LabVIEW Based Embedded Design [First Report]

Kepler: An Extensible System for Design and Execution of Scientific Workflows

DESIGN AND IMPLEMENTATION OF WINDOWED OPERATORS AND SCHEDULER FOR STREAM DATA

Embedded Systems 7 BF - ES - 1 -

Distributed Scheduling for the Sombrero Single Address Space Distributed Operating System

The Ptolemy II Framework for Visual Languages

EECS 144/244: Fundamental Algorithms for System Modeling, Analysis, and Optimization

Building Unreliable Systems out of Reliable Components: The Real Time Story

Heterogeneous Workflows in Scientific Workflow Systems

Scientific Workflows

Essentials for Modern Data Analysis Systems

Implementation Techniques

Apache Flink. Alessandro Margara

An Efficient Execution Scheme for Designated Event-based Stream Processing

Time Series Analytics with Simple Relational Database Paradigms Ben Leighton, Julia Anticev, Alex Khassapov

Integration of OpenModelica in Ptolemy II

Modelling and simulation of guaranteed throughput channels of a hard real-time multiprocessor system

Preliminary Research on Distributed Cluster Monitoring of G/S Model

ARTICLE IN PRESS Future Generation Computer Systems ( )

Hybrid-Type Extensions for Actor-Oriented Modeling (a.k.a. Semantic Data-types for Kepler) Shawn Bowers & Bertram Ludäscher

Context-Aware Actors. Outline

What Would a Reusable Meteorology Component for Environmental Models Look Like

Implementation of Process Networks in Java

Petri Nets. Petri Nets. Petri Net Example. Systems are specified as a directed bipartite graph. The two kinds of nodes in the graph:

A Methodology for Profiling and Partitioning Stream Programs on Many-core Architectures

Abstract Provenance Graphs: Anticipating and Exploiting Schema-Level Data Provenance

CHAPTER 4 PROPOSED ARCHITECTURE FOR INCREMENTAL PARALLEL WEBCRAWLER

Distributed Deadlock Detection for. Distributed Process Networks

A High-Level Distributed Execution Framework for Scientific Workflows

Classes and Inheritance in Actor- Oriented Models

Symbolic Buffer Sizing for Throughput-Optimal Scheduling of Dataflow Graphs

Hierarchical Reconfiguration of Dataflow Models

Process-Based Software Components Final Mobies Presentation

Optimal Architectures for Massively Parallel Implementation of Hard. Real-time Beamformers

Compositionality in system design: interfaces everywhere! UC Berkeley

Event Object Boundaries in RDF Streams A Position Paper

Architectural Styles. Software Architecture Lecture 5. Copyright Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved.

Hierarchical FSMs with Multiple CMs

Static Scheduling and Code Generation from Dynamic Dataflow Graphs With Integer- Valued Control Streams

Main application of SDF: DSP hardware modeling

Systems Infrastructure for Data Science. Web Science Group Uni Freiburg WS 2012/13

TiP: Analyzing Periodic Time Series Patterns

By: Chaitanya Settaluri Devendra Kalia

Multicore DSP Software Synthesis using Partial Expansion of Dataflow Graphs

Modeling Stream-Based Applications using the SBF model of computation

Dynamic Scheduling Implementation to Synchronous Data Flow Graph in DSP Networks

Autonomous Navigation in Unknown Environments via Language Grounding

A Cost Model for Adaptive Resource Management in Data Stream Systems

FILTER SYNTHESIS USING FINE-GRAIN DATA-FLOW GRAPHS. Waqas Akram, Cirrus Logic Inc., Austin, Texas

Scheduling Strategies for Processing Continuous Queries Over Streams

THE EFFECT OF JOIN SELECTIVITIES ON OPTIMAL NESTING ORDER

Accelerating Parameter Sweep Workflows by Utilizing Ad-hoc Network Computing Resources: an Ecological Example

7 th International Digital Curation Conference December 2011

Code Generation for TMS320C6x in Ptolemy

Embedded Software from Concurrent Component Models

Introduction to Data Mining

Impact of bandwidth-delay product and non-responsive flows on the performance of queue management schemes

STATIC SCHEDULING FOR CYCLO STATIC DATA FLOW GRAPHS

Modeling of an MPEG Audio Layer-3 Encoder in Ptolemy

UDP Packet Monitoring with Stanford Data Stream Manager

16 Greedy Algorithms

System Models for Distributed Systems

Transactum Business Process Manager with High-Performance Elastic Scaling. November 2011 Ivan Klianev

Multiprocessor and Real-Time Scheduling. Chapter 10

[Lokanath*, 5(5): March, 2016] ISSN: Impact Factor: 3.785

FCS 2013 USER S MANUAL. F i n i t e C a p a c i t y S c h e d u l i n g. Microsoft Dynamics NAV

City, University of London Institutional Repository

Component-Based Design of Embedded Control Systems

Distributed computing: index building and use

Modal Models in Ptolemy

Modeling Requirements

Introduction to Electronic Design Automation. Model of Computation. Model of Computation. Model of Computation

A Dataflow-Oriented Atomicity and Provenance System for Pipelined Scientific Workflows

Overview of Dataflow Languages. Waheed Ahmad

Chapter 12: Query Processing. Chapter 12: Query Processing

CHAPTER 5 GENERATING TEST SCENARIOS AND TEST CASES FROM AN EVENT-FLOW MODEL

Fundamental Algorithms for System Modeling, Analysis, and Optimization

Adaptive Aggregation Scheduling Using. Aggregation-degree Control in Sensor Network

Transcription:

Available online at www.sciencedirect.com Procedia Computer Science 9 (2012 ) 1639 1646 International Conference on Computational Science, ICCS 2012 Sliding Window Calculations on Streaming Data using the Kepler Scientific Workflow System Sven Köhler a,, Supriya Gulati a, Gongjing Cao a, Quinn Hart b, Bertram Ludäscher a a Department of Computer Science, University of California, Davis b Department of Land, Air and Water Resources, University of California, Davis Abstract In many areas of science unbounded (potentially infinite) data streams need to be processed in a continuous manner, e.g., to compute running aggregates or sliding window aggregates. One important example is the computation of Growing Degree Days (GDD) from a stream of temperature data, which provides a heuristic tool to predict plant development and the maturity of crops. The process of data acquisition, processing, storage, and presentation forms a scientific workflow and scientific workflow systems have been developed to automate their execution. The whole workflow is decomposed into its individual steps, represented by actors, which in turn are connected by channels that describe the flow of data. This workflow representation allows to reuse existing components for different workflows, and, in principle, easy modification of existing workflows. In current streaming workflow designs in Kepler, data belonging to a particular time window is typically identified by counting data tokens on channels between actors. For example, this token-counting approach does not work for windows of variable length nor for overlapping windows. In this paper, we address these limitations and present a new actor design with two incoming streams: a time-stamp ordered data stream, and a stream of aggregation windows, ordered by their start time. We present a new Chunker actor that stream-joins the data from one stream with the windows presented on the second stream, where windows represent aggregation intervals of variable length and possibly overlapping time. Windows containing the corresponding data are output as soon as they are completed, i.e. once timestamps in the data stream pass the end time of a window. We illustrate the approach with an improved GDD workflow based on our new Chunker actor. Keywords: Scientific workflow, data streaming, continuous queries 1. Introduction Scientists are faced with a range of computational problems in dealing with data collection, integration, analysis and visualization. Scientists often run parts of their experiments using different software and hardware tools and thus need to integrate these tools. Scientific workflows are representations of scientific processes that unambiguously describe data management, analysis, simulation, and visualization tasks. Scientific workflow management systems are a class of applications that pipeline scientific tasks and automate the execution of scientific workflows. They typically Corresponding author Email address: svkoehler@ucdavis.edu (Sven Köhler) 1877-0509 2012 Published by Elsevier Ltd. doi:10.1016/j.procs.2012.04.181

1640 Sven Kˆhler et al. / Procedia Computer Science 9 ( 2012 ) 1639 1646 contain a toolkit of common components, which are used as building blocks to develop more complex workflows. Kepler is an open source scientific workflow system that builds upon the dataflow-oriented Ptolemy II system [1]. Kepler provides an intuitive GUI for the design and execution of workflows. Actor-Oriented Modeling. The actor-oriented modeling paradigm of Kepler is an important feature derived from Ptolemy II. In Ptolemy, a system is viewed as a composition of components (or actors) that are interconnected with channels representing the flow of data. Every actor has input and output ports connecting them to channels. In Kepler, different models of computation are supported by explicitely asigning director to a workflow. The director defines how different components of a workflow communicate and how the workflow is executed. A Workflow Example. In environmental science, data often takes the form of historical or real-time continuous data streams rather than static data sets. Processing and analysis of such data often requires grouping of values within a given time window and subsequently applying aggregation functions. In fact, those operations are a common component in any stream processing. The REAP project [2] developed an example workflow in Kepler [3] to integrate sensor networks and to calculate Growing Degree Day (GDD) for a particular sensor. GDD is a measure of heat accumulation used to predict plant maturity. The crop development rate from emergence to maturity reliably depends upon the accrued daily temperatures. GDD is important in other agricultural studies including pest and weed management, and irrigation scheduling [4, 5]. The GDD measure is calculated as follows: 0 if T max < T base T GDD(T min, T max ) = min +T max 2 T base if T base T max T top T min +T top 2 T base if T top < T max T min and T max are the day s minimum and maximum temperatures. T base, the base temperature, varies by crop type or application and sets a minimum threshold on the effect of the day s contribution to GDD. Similarly, T top acts as an upper bound on the contribution to GDD for a single day. It is usually capped at 30 C because most plants do not improve their growth beyond that temperature. Figure 1 shows an example plot of the GDD and average temperatures for a time window from the CIMIS02 [6] sensor station. The conventional Kepler workflow design as developed in the REAP project implements the GDD computation, but also has a number of limitations. For example, grouping of data and therefore aggregation functions can only be applied to time windows of fixed length. Furthermore, overlapping windows and gaps between windows are not realizable. S. Gulati [7] developed the concept of a new actor that supports freely definable time-based sliding window computations and efficient aggregation of streaming data. In this paper, we present the main concepts of this new Chunker actor that was developed for Kepler. Furthermore, we describe limitations of the conventional design on the GDD workflow example and describe how the design can be improved to fully support streaming. In particular, we make the following contributions: We present the design of our new Chunker actor that can extract data from a stream within arbitrarily definable time windows. We demonstrate a new version of the GDD workflow that is based on our new actor and supports streaming data. The rest of the paper is organized as follows. Section 2 describes what we call the conventional design of the GDD workflow in more detail. Section 3 introduces our new actor. In Section 4 we demonstrate a new workflow design using our Chunker actor before we conclude in Section 5. 2. Conventional GDD Workflow Design The conventional GDD workflow design implemented in Kepler as shown in Figure 2 calculates GDD from temperature measurements and plots it. The sensor data source, here a relational PostgreSQL database, outputs measurements as tuples (t i, d i ) where temperatures constitute a data field d i of the record and the time t i associated with the temperature reading constitutes a timestamp field for the record. As daily minimum temperatures and daily maximum temperatures are needed to calculate GDD, the incoming data stream is grouped into daily time windows of fixed

Sven Kˆhler et al. / Procedia Computer Science 9 ( 2012 ) 1639 1646 1641 AVG Temperature and Growing Degree Days at CIMIS02 Number Growing Degree Days 5 0 5 10 15 20 25 gdd avg degrees C 0 5 10 15 20 Mar Apr May Jun date Figure 1: Plot of average temperature (upper curve with scale on the right) and GDD (lower curve with scale on the left) for CIMIS02 station. length using the Sequence to Array actor where each array contains a single day s temperature measurements. This method can only be applied for regularly spaced inputs where the beginning of a day is known a priori. Kepler inherits aggregation actors from Ptolemy that operate on a single array input at a time. Using such array-based aggregation, the minimum, maximum and average temperatures can be calculated easily: First, the minimum, maximum and average values are computed for each array of temparature readings form a whole day Then, the GDD is computed using an R actor. The R actor in Kepler works on a single input tuple: An array containing all readings is read from an input port. Then, it is converted to an R object, a user-defined script is executed, and the result is emitted on the output port. Finally, the GDD is plotted against timestamps with a plotting actor. This workflow will execute properly if it is guaranteed that the number of temperature readings is constant every day. However, in a realistic stream model the rate of measurements may vary, e.g., due to dropped readings or defective sensores. This requires special handling and a strategy to fill gaps in the data stream. The DataTurbine actor, for exmaple, includes a fillgaps() for that purpose. Aggregation by Token Counting. The Sequence to Array actor used in the GDD workflow of Figure 2 divides the incoming stream into arrays with a given, fixed number of records. The basic principle of this actor is shown in Figure 3. One incoming port receives a stream of data D = d 1, d 2,... indexed by timestamps t i. The actor groups incoming data items into groups of a fixed size specified by parameter s. Grouping of data starts immediately from receiving the first token and thereby implicitly with the timestamp of the first data tokens b. There is no integrated mechanism to introduce gaps between windows while grouping. After receiving the specified number of data tokens, the completed window is output as an array. Due to the fixed parameters for grouping, windows of different size, as in the case of Window 1 and Window 4 shown in Figure 4, are not possible. In the conventional Token Counting approach, the incoming stream is split into arrays. Thus, it is not possible to insert a data item into multiple time windows preventing overlapping windows as shown for Window 1 and Window 2 in Figure 4. The conventional GDD workflow design also uses the synchronous dataflow director (SDF). This is a statically scheduling director that executes all actors serially according to a precalculated schedule. Thus, it does not allow a variable number of data tokens emitted by an actor on a channel in different scheduling rounds within the same

1642 Sven Kˆhler et al. / Procedia Computer Science 9 ( 2012 ) 1639 1646 Figure 2: Conventional Token Counting GDD workflow: The data stream is split into non-overlapping windows of fixed size by counting data tokens using Sequence to Array with a statically defined data token count. Here, the maximum length of data arrays is calculated from constant parameters provided in the lower right of the workflow graph. workflow execution. Therefore, the use of the SDF director is another reason preventing the use of variable windows, since the array to sequence actor is required to output an array containing a window in a constant interval after consuming a constant number of tokens from the data stream. Finally, the R actor used to generate a plot requires all data to be available before the actor can create a graph. Thus, it is not possible to display results in a continuous stream but rather this requires the data stream for GDD measures to terminate. 3. Chunker Actor: Flexible Window-Based Grouping In context of scientific workflows, the goal is to develop a single grouping actor that is simple enough to be used easily in a number of scenarios, but at the same time is general enough that it could be reused in a number of different workflows. We developed the concept of a Chunker actor shown in Figure 5 for general grouping of streaming data into given time windows. A Chunker implementation is available for the Kepler scientific workflow system at [8]. The actor can be combined with different computational models including SDF, PN and Comad as shown in [9]. Window based Approach. Given two input streams, a data stream D and a window stream W, the Chunker will group input data for each window. The data stream is a sequence of pairs (t i, d i ) containing a timestamp t i and a value Figure 3: Grouping by Token Counting with Sequence to Array actor: Incoming data tokens are counted and starting from position b the temperature data stream is split into windows of fixed size s. Thus, grouping of data tokens depends on the correct position in the stream and windows cannot be constructed based on the timestamp t i associated with data stream.

Sven Kˆhler et al. / Procedia Computer Science 9 ( 2012 ) 1639 1646 1643 Figure 4: Examples for desirable time windows: Window 1 and 3 are consecutive, non overlapping and of fixed size. Window 4 has a different window length that cannot be generated using Sequence to Array because of a fixed parameter for the window size. Window 2 represents an overlapping window, which cannot be realized with Sequence to Array because the fixed window sizs also determines the start position of the following window. d i. The window stream is another sequence of pairs w i = (b i, e i ) containing the beginning b i and the end e i timestamp of the window. For each window in W, the Chunker will store the window in a list of active windows if the start time b i is smaller than the current time stamp in the data stream. For each active window w = (b, e) W the actor checks if incoming data is contained in that window, i.e., b t i e, and if so the data is stored with this window. Since both D and W are possibly infinite streams, an order needs to be imposed on the timestamps t i in D and on the start time of windows b i in W. Thus, groups can be built and output without storing a possibly infinite amount of data that would otherwise be stored in order to complete windows with start times reaching far back in time. Note that there is no requirement for an order on ending times of windows. In fact, for the Chunker actor, windows in W can overlap in an arbitrary manner. Whenever the timestamp t i of the data stream reaches or exceeds the end time e i of a stored window, this window can be output and removed for the list of active windows. Since grouped data is frequently used in aggregation functions and windows can be large, our Chunker actor computes aggregates over windows incrementally. The workflow developer can choose if either the complete data for a window, a selection of aggregates, or both should be output. The algorithm supports all standard aggregations, that can be computed using an initialization state, and function that updates the state based on incoming data, and a function that finalizes the aggregation state for output. Currently supported aggregates are: count, sum, average, maximum, minimum, and array. The array aggregation collects a stream of input data, into a single array for each window. This is essentially emulating the behavior of the Sequence to Array actor described earlier but with support for variable-sized windows. The Chunker implementation in Kepler requires tokens of type record on input streams. The window stream records need to provide an attribute window that holds a tuple containing the beginning and end time of the window. The data stream records need to provide at least two attributes, the timestamp, and the value. When Kepler sets up the workflow in preparation for execution, input and output ports are created to handle all streams. In addition, a priority queue is instantiated that is used to maintain the order of windows and as a result, windows are output ordered by window s end timestamp or at their earliest possible computation. An AggregationFactory is provided as a generic Figure 5: Flexible, window-based Grouping: Incoming data tokens from D are matched with all incoming windows W. If the timestamp t i of a data token is enclosed in window j : b j t i e j then the value of this data token is grouped with this window. If configured by the user, the value is also used to update aggregations stored for the window. Once the end time of window e j has passed, i.e. incoming data tokens have a greater timestamp, aggregations are finalized and the completed window is output.

1644 Sven Kˆhler et al. / Procedia Computer Science 9 ( 2012 ) 1639 1646 interface to any aggregation. New aggregates are derived from the AggregationFactory by calling the create() method as shown in Algorithm 3.1. Each aggregate has initialize, update and finalize methods used for setup, incremental update and final computation of the aggregate function. The finalize method is invoked after all the required data has been processed and returns the aggregates final value. Algorithm 3.1: fire() cur data.getnext() while windows.hasnext() and cur.timestamp() windows.peeknext().start() win windows.getnext() newagg aggfac.create() do newagg.initialize() pq.insert(win.endtime(), newagg) while { not pq.isempty() and pq.minkey() < cur.timestamp() minagg pq.getmin() do out.broadcast(minagg.finalize()) pq.apply(update(cur.value())) Algorithm 3.1 is implemented in the fire method of the Chunker to compute groups and sliding window aggregates. First, a data token is accepted from the data port and stored in the variable cur. cur is checked to see if it is contained in a window enqueued on the channel. The check is performed by comparing the cur timestamp with the window s start timestamp and if it is greater, then the window is retrieved from the windows port. For each retrieved window a new aggregate is created in newagg and subsequently initialized, e.g. the aggregate sum is initialized with 0. Then the initialized aggregate newagg is stored in the priority queue pq sorted by increasing end timestamp of win. Note that if cur timestamp is greater than win end timestamp, then the window win is still inserted into pq. The algorithm continues to process windows until the cur timestamp is less than the next windows start timestamp. After checking for windows, the algorithm processes all windows that are now present in the priority queue and sorted in increasing order of end timestamps. While the heap is not empty and cur timestamp is greater than the stop timestamp (MinKey) of the entry in front of the priority queue, an aggregate is retrieved from the queue, finalized by calling the corresponding function and output. In the last stage of the algorithm, the APPLY method is executed to update the aggregates of every remaining window in the heap with cur value. The postfire method of the Chunker actor returns true so that the fire method will be invoked again to process the next data token. 4. Growing Degree Days Workflow Using A Chunker To demonstrate the functionality of our Chunker actor, we used it to model a GDD workflow. The workflow shown in Figure 6 demonstrates processing of sliding window aggregate queries on stream of hourly temperatures. The data stream is generated by querying a database containing temperature readings together with a timestamp. The WindowsGenerator actor creates a stream of windows defined by parameters specifying a start time and a variable length. Multiple WindowsGenerator actors can be used to create overlapping windows. For the purpose of calculating and plotting daily GDD and daily temperature averages windows are generated for the start of every day with a window size of one day. To calculate monthly averages overlapping windows with a start time of the first day of a month and a size to cover the whole month are used. Another limitation of the conventional workflow design is the use of an R actor to calculate and plot the GDD data. The Scatterplot R actor of Figure 2 has no streaming capabilities, so that all required data has to be available befor graphs are drawn. In our new design, we use a generic Expression actor, which is able to process streaming data, to calculate the GDD values. Furthermore, we use the SequencePlotter actor to display the final graphs. This actor supports streaming data and updates the graph view whenever new data is received. Finally, the new workflow design uses a PN director that executes every actor of the workflow in a separate thread and therefore in parallel. In contrast to the conventional GDD workflow design, this does not imply a fixed numbers

Sven Kˆhler et al. / Procedia Computer Science 9 ( 2012 ) 1639 1646 1645 Figure 6: New GDD workflow design with Chunker actor: Through two separate streams, one containing data and the other containing userdefined windows, the Chunker actor can group data into arbitrary windows. Here, the actor is configured to output only the running min, max, and average over windows and not the window data itself. This data is subsequently extracted from the output array by a RecordDisassembler and plotted in a similar design as before but with streaming to allow continuous monitoring. of tokens flowing over channels since actors work independently and are only synchronized by writing to and reading from FIFO queues representing channels. The workflow is considerably simpler than the one in Figure 2, and aggregations can be calculated independently of the number of measurements present every day, making the workflow more robust. The results of the computation with a time window of one day are equivalent to the one produced by the original workflow. 5. Conclusions Kepler is a scientific workflow management system that exhibits a common problem regarding calculation of aggregations in scientific workflows. There are no mechanisms for computing sliding window aggregates based on timestamps apart from the very limited approach of counting tuples in the data stream. A more general Chunker actor has been developed that can process aggregations based on timestamps. The aggregator actor has shown to be a very useful tool in the world of scientific workflows, and Kepler in particular, for computing sliding window aggregates. It has eliminated the need for Sequence to Array based constructs employing token counting and instead directly supports extracting data from a stream within arbitrary time windows. Furthermore, this actor directly supports a selection of common aggregation functions in an efficient streaming manner. As demonstrated for the GDD workflow, the Chunker actor provides much more flexibility than the conventional token counting approach in creating workflows for answering sliding window queries. Along with standard aggregates min, max, sum, count and average, an array aggregate is provided that collects a stream of input data in a single array for each window, corresponding to those data within that window. A possible future project would be to further extend the applicability of our actor and include user defined aggregates. Acknowledgments. This work was supported in part by NSF grants AGS-0619139, EF-0619060, OCI-0722079, and DOE grant DE- FC02-07ER25811. References [1] C.Brooks, E. A. Lee, X. Liu, S. Neuendorffer, Y. Zhao, H. Zheng, Heterogeneous Concurrent Modeling and Design in Java(Volume 1-3), Dept. of EECS, University of California, Berkeley, Technical Memoranda UCB/ERL M04/27, M04/16, M04/17 (2004). [2] Real-time Environment For Analytical Processing, http://reap.ecoinformatics.org/ (2012). [3] D. Barseghian, I. Altintas, M. Jones, D. Crawl, N. Potter, J. Gallagher, P. Cornillon, M. Schildhauer, E. Borer, E. Seabloom, Workflows and extensions to the Kepler scientific workflow system to support environmental sensor data access and analysis, Ecological Informatics 5 (1) (2010) 42 50. [4] G. L. Baskerville, P. Emin, Rapid estimation of heat accumulation from maximum and minimum temperatures, Ecology 50 (3) (1969) pp. 514 517.

1646 Sven Kˆhler et al. / Procedia Computer Science 9 ( 2012 ) 1639 1646 [5] F. G. Zalom, P. B. Goodell, L. T. Wilson, W. W. Barnett, W. J. Bentley, Degree-days: The calculation and use of heat units in pest management, University of California Division of Agriculture and Natural Resources Leaflet 21373. [6] California Irrigation Management Information System, Office of Water Use Efficiency, California Department of Water Resources, http://wwwcimis.water.ca.gov/cimis/ (2012). [7] S. S. Gulati, Computing sliding window aggregates over data streams in a scientific workflow system, Master s thesis, Dept. of Computer Science, University of California, Davis (June 2010). [8] Comet Kepler suite, https://code.kepler-project.org/code/kepler/trunk/modules/comet/ (2012). [9] L. Dou, D. Zinn, T. M. McPhillips, S. Köhler, S. Riddle, S. Bowers, B. Ludäscher, Scientific workflow design 2.0: Demonstrating streaming data collections in kepler, in: S. Abiteboul, K. Böhm, C. Koch, K.-L. Tan (Eds.), ICDE, IEEE Computer Society, 2011, pp. 1296 1299.