Our daily lives will be dramatically changed by embedded small computers in our environments. The environments are called pervasive computing environments. To realize the environments, it is important to reduce the cost to develop pervasive computing applications by encapsulating complexities in middleware infrastructures that are shared by various applications. In this paper, we present three middleware infrastructures for pervasive computing, that have been developed in our projects. These middleware infrastructures hide various complexities such as context-awareness and distribution to make it easy to develop pervasive computing applications. We also describe some design issues related to human factors that we found while designing and implementing our middleware infrastructures.