传统自适应系统考虑的主要是软件系统内部的协调,譬如参数的重新配置,软件体系结构的重组等。而普适计算环境下的社会技术系统不仅包含软件,而且还包含硬件(如传感器、RFID 等)和人类行为等其他系统元素。这种社会技术系统具有开放性和动态性的特点,其整体的行为具有很强的不确定性,因此需要通过持续的运行时自适应调整减少系统的失效。针对此问题,在前期工作基础上提出一种普适计算环境下社会技术系统的自修复技术方案,并基于 Java 和 Arduino 平台进行开发和实现。该方案根据用户需求和环境的变化,结合需求目标模型和运行时上下文管理,接入和事件映射方案以及 ad hoc 环境下服务检索的选取方案,使系统按照预期的目标运行。实验结果表明,社会技术系统在环境和人的行为变化的情况下,当系统运行偏离预期目标时,可以依据传感器等监控到的环境数据和服务器中的策略自主修复系统以使系统达到目标,满足用户和系统需求。