9 Conclusions
Hancock handles the scale of the data used in signature computations,
thereby reducing coding effort and improving the clarity of signature
code. The language, compiler, and runtime system provide the
scaffolding necessary to compute signatures, leaving programmers free
to focus on the signatures themselves. In particular, Hancock's
wiring diagram makes the relationships among phases clear. Its event
model allows programmers to specify the work needed to compute a
signature without having to write complicated control-flow code by
hand. Finally, Hancock's data model makes writing signatures less
error-prone by handling multiple data representations automatically.
We plan to extend Hancock in two ways. First, we intend to enrich the
set of operations that Hancock provides for streams.
For example, we plan to add a reduction operation that would allow
programmers to pre-process streams to combine related records. Second,
we intend to broaden the
class of data that can be processed using Hancock, for example, to
include Internet protocol logs or billing records. To accomplish this
goal, we need to provide a mechanism for describing data streams.
Such a description must include how such streams can be sorted and how
to detect events based on the sorting order.