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, g operators to generate, filter, and abstract streams of values.
Norman H. Cohen, Hui Lei, Paul Castro, John S. Dav