The ubiquitous computing vision is to make knowledge and services easily available in our everyday environments. A wide range of devices, applications and services can be interconnected to provide intelligent and automatic systems that make our lives more enjoyable and our workplaces more efficient. Interaction typically is to be between peers rather than clients and servers. In this context, the JXTA peer-to-peer infrastructure, designed for interoperability, platform independence and ubiquity, is a suitable foundation to build future computer systems on. Peers need ways to effortlessly discover, consume and provide services, and to take advantage of new services as they become available in a dynamically changing network. However, JXTA does not currently handle this servicediscovery problem. In this paper, we examine several service-discovery architectures, to see whether they can be adapted to JXTA. We conclude that none of them adequately support the flexibility and expressiveness ...