The LAICA Project: Supporting Ambient Intelligence via Agents and Ad-Hoc Middleware