  We develop formal foundations for notions and mechanisms needed to support
service-oriented computing. Our work builds on recent theoretical advancements
in the algebraic structures that capture the way services are orchestrated and
in the processes that formalize the discovery and binding of services to given
client applications by means of logical representations of required and
provided services. We show how the denotational and the operational semantics
specific to conventional logic programming can be generalized using the theory
of institutions to address both static and dynamic aspects of service-oriented
computing. Our results rely upon a strong analogy between the discovery of a
service that can be bound to an application and the search for a clause that
can be used for computing an answer to a query; they explore the manner in
which requests for external services can be described as service queries, and
explain how the computation of their answers can be performed through
service-oriented derivatives of unification and resolution, which characterize
the binding of services and the reconfiguration of applications.
