Architecture-Independent Programming for Wireless Sensor Networks