Why Orc?

For a thorough discussion of Orc's motivation, please see our position paper, Structured Interacting Computations opens in new window.

Orc is designed to solve a computational pattern inherent in many wide-area applications: acquire data from one or more remote services, perform some calculation with those data, and invoke yet other remote services with the results. We call such services sites and the integration of sites orchestration. Orchestration demands an understanding of the kinds of computations that can be performed efficiently over a wide-area network, where the delays associated with communication, unreliability of servers, and competition for resources from multiple clients are dominant concerns.

The theory behind Orc is that smooth orchestration requires only four simple combinators: parallel computation, sequencing, selective pruning, and termination detection. Together, these combinators prove powerful enough to express typical distributed communication patterns.

Consider a typical wide-area computing problem. A client contacts two airlines simultaneously for price quotes. He buys a ticket from either airline if its quoted price is no more than $300, the cheapest ticket if both quotes are above $300, and any ticket if the other airline does not provide a timely quote. The client should receive an indication if neither airline provides a timely quote. Such problems are typically programmed using elaborate manipulations of low-level threads. We regard this as an orchestration problem in which each airline is a site; we can express such orchestrations very succinctly in Orc.

To see how this is achieved and learn more about Orc's syntax and semantics, please proceed to the Tutorial.

Get Started

Get Involved

Contact Us

Supporting Agencies

This research is supported in part by funding from the National Science Foundation. Any opinions, findings, and conclusions or recommendations expressed on this website are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.

Last updated 2013-09-20