The fast development on microelectronics has promoted the increase on the computational power of hardware components. On the other hand, we are facing a significant improvement on energy consumption as well as the reduction of the physical size of such components. These improvements and the emergence of wireless networking technologies are enabling the development of small and powered mobile devices. Due to this scenario, the so-called pervasive computing paradigm, introduced by Mark Weiser in 1991 (Weiser, 1991) is becoming a reality. Such a paradigm envisions a world where environments are inhabited by computing devices, all of them seamlessly integrated into peoples’ lives, and effectively helping to carry on their daily tasks. Among others, one major characteristic of Weiser’s vision is that each device in an environment becomes a potential client or provider of resources. Not surprisingly, pervasive computing environments are becoming dynamic repositories of computational resources, all of them available to mobile users from the palm of their hands. However, devices can unpredictably join and leave such environments. Thus, resources can be dynamically made available or unavailable. Such a scenario has a great impact on the way that resources are found and used. In the case of static environments, such as the Web, it is reasonable to look up and access resources, such as Web pages, knowing the address of their providers beforehand. On the other hand, for dynamic environments, such as the pervasive computing ones, this is not a reasonable approach. This is due to the fact that one cannot guarantee that the provider of a resource will be available at any moment, because it may have left the environment or simply turned off. A better approach would be to discover these resources based on their descriptions, or any other feature that does not require the client to know the specific address of their providers. To this end, some of the current pervasive computing solutions, like Wings (Loureiro, Bublitz, Oliveira, Barbosa, Perkusich, Almeida, & Ferreira, 2006), Green (Sivaharan, Blair, & Coulson, 2005), RUNES (Costa, Coulson, Mascolo, Picco, & Zachariadis, 2005), and Scooby (Robinson, Wakeman, & Owen, 2004), are making use of a novel approach from the branch of distributed applications, the service-oriented computing paradigm (Papazoglou, 2003; Huhns & Singh, 2005). This is due to the fact that such a paradigm provides a crucial element for pervasive computing systems, the ability for dynamically binding to remote resources (Bellur & Narenda, 2005), which enables mobile devices to find needed services on demand. However, pervasive environments may be structured in different ways. They can range from wired networks to completely wireless ones, where communication among the devices is performed in an ad hoc way. Such a characteristic indicates that the way services are provisioned in a pervasive computing environment should fit in its organization, in order to enhance the access to the services available. Considering the above discussion, in this article we provide a review on service provision and its applicability in pervasive computing. More precisely, we will list the existing service provision approaches and discuss the characteristics and problems associated with each one, as well as their usage in pervasive computing environments. We start by providing introductory concepts of service-oriented and pervasive computing, respectively in the service-oriented computing and pervasive computing sections. Next, we present the service provision techniques available and how they can be applied for pervasive computing environments. The main current solutions within this scope will be introduced in the service oriented technologies section. Some of the future trends associated with research for service provision in pervasive computing environments will be presented in the future research trends section. Finally, in the conclusions sect