Peer-to-peer systems have become extremely popular on the Internet in recent years. However, peerto- peer systems are not limited to Internet applications, but are also of significant interest to ubiquitous computing. This is because both peer-to-peer systems and ubiquitous computing are based on collaboration between independent, autonomous entities. Peer-to-peer systems are built around resource sharing and in this chapter, we will look at the different aspects of this resource sharing, from the types of resources to be shared to how the peers are connected to each other and on to how the resources can be located in these different kinds of networks. This chapter is organized as follows. First we provide a definition of what peer-to-peer is and discuss its relevance to ubiquitous computing in more detail. The section “Current Systems” gives an overview of currently deployed and used peer-to-peer systems. Then, we will present a classification of peer-to-peer systems according to how resources are located. In the section “Resource Location in Peer-to-Peer Networks” we will present algorithms for locating resources in peer-to-peer networks. Finally, the chapter discusses the future of peer-to-peer systems.