Continuous Computation Language (CCL)

Developers create Coral8-based CEP applications using the Continuous Computation Language (CCL). Introduced in 2005, CCL was the first commercial, declarative SQL-based CEP language and remains the most extensive SQL-based CEP language on the market.

Because The Coral8 Continuous Computation Language (CCL) is a SQL-based language, it gives programmers a huge head start in creating CEP applications. The Coral8 Studio helps manage all aspects of the application development process, further increasing programmer productivity.

Familiar SQL Syntax

Coral8 CCL implements standard SQL syntax to give programmers a familiar environment to build basic complex event processing constructs, such as JOINS (for filters and correlations) and Aggregators. CCL offers integrated extensions such as windows, time series operations, output control, and pattern matching, for the most powerful and complete CEP language.

Advanced Window Control

Windows, which define the sets of data CEP applications operate upon, are a staple in CEP languages. Coral8 supports all four combinations of window types: sliding and jumping windows that may be time-based or row-based. Windows can retain, uniquely identify, and remove rows based on one or more column values. In addition, Coral8 allows developers to have windows that combined row- AND time-based policies for further precision and control.

Event Pattern Matching

CCL offers powerful event pattern matching syntax – a technique required in many real-world CEP applications. CCL uses basic operators in an integrated “Matching” clause to look for event patterns, allowing developers to easily express elaborate event patterns that would otherwise require complex coding.

Procedural Extensions

CCL offers numerous procedural language extensions, giving developers the ability to create sophisticated applications, and making CCL a fully featured language for CEP application development. Procedural extensions include: IF expressions, CASE expressions, Loops, Functions, and variables.

Native XML

The Coral8 Engine supports a native XML data type and CCL provides native XML processing functions (similar to SQL/XML) which operate on XML data. While other CEP engines require complex shredding logic, Coral8’s Native XML feature dramatically simplifies coding and provides tremendously better performance when using XML-based data in event processing applications versus non-native XML CEP engines.

Extensibility

Developers can easily extend CCL and the systems CCL can interact with through user-defined functions and plug-ins, and integrating the Coral8 Engine into other applications. Once built, user-defined functions and aggregators can be seamlessly accessed from CCL to extend the power of complex event processing queries.

Compiler and Optimizer

The CCL Compiler compiles CCL queries into a network of low-level primitive operators, analogous to a database query “execution plan.” The CCL compiler analyzes a query and automatically produces all the optimal data structures necessary, including the right index structures.

Unlike other CEP products that generate static runtime executables, the Coral8 Server manages runtime execution via its highly tuned optimizer and scheduler that considers many static and dynamic conditions for optimal throughput and performance. This allows the Coral8 Engine to optimize performance in real-world applications where multiple query modules are running, each with varying degrees of complexity.

Examples and More Information

The Coral8 Server ships with numerous sample queries and applications that can show you the power of CCL. Documentation on these examples and more information on CCL are available in the developer section of our website.