Event Driven Software Architecture for Multi-camera and Distributed Surveillance Research Systems