Skip to Main Content
The emergence of pervasive networked data sources, such as Web services, sensors, and mobile devices, enables context-sensitive, mobile applications. We have developed a programming model for writing such applications, in which entities called composers accept data from one or more sources, and act as sources of higher-level data. We have defined and implemented a nonprocedural language, iQL, specifying the behavior of composers. An iQL programmer expresses requirements for data sources rather than identifying specific sources; a runtime system discovers appropriate data sources, binds to them, and rebinds when properties of data sources change. The language has powerful operators useful in composition, including operators to generate, filter, and abstract streams of values.