Service discovery is an essential technique to provide applications
with appropriate resources. However, user mobility and heterogeneous environments
make the discovery of appropriate resources difficult. The execution
environments will be rapidly changed, so developers cannot predict available
resources exactly in design time. Thus, service discovery frameworks for pervasive
computing must guarantee transparent development environments to application
developers. In this paper, we introduce how to semantically describe and
discover a variety of services in different environments. This approach helps
applications to find appropriate services even though the required ones are not
available or not found. For this, we propose a fine-grained effect ontology
which is used to reasonably evaluate functional similarity among different services,
and a policy-based query coordination which is used to dynamically apply
different resource constraints according to human activities. Finally, we
show with a feasible scenario how to find appropriate services in different environments.
Our approach helps applications to seamlessly perform their tasks
across a dynamic range of environments.