1. A distributed sensing system, comprising: a number of sensor nodes; a device database in communication with at least one sensor node and configured to maintain physical information on at least one sensor node; a sensing module registry configured to maintain a registry of a number of software modules that are available for extracting information from sensor data; a sensing needs monitor configured to maintain a list of context pairs that represent a number of sensing needs of a sensing application; and an automatic composer configured to generate a composition of software modules, at runtime, to realize the sensing needs of users and applications, wherein the automatic composer is coupled to the device database, the sensing module registry, the sensing needs monitor, and the number of sensor nodes.