Automated video surveillance systems require sophisticated middleware, which supports large-scale, intelligent video surveillance by partitioning systems according to an activity topology. This middleware can help address these generic challenges, including support for both communication and computation. The middleware is structured around an activity topology, a graph describing the flow of observed activity through the network. It uses compute servers at the network edge to run detection pipelines executing signal-processing functions. The middleware divides processing into three layers, comprising low-level detection, medium-level activity, and high-level reasoning. The middleware will further support evolvability, availability, and other systemic requirements.