An Agent-Based Programming Model for Developing Client-Side Concurrent Web 2.0 Applications