Large-scale distributed systems, such as ubiquitous computing environments, require a service delivery mechanism in order to keep track of the vast set of services offered and make them available to interested clients. The amount of services and clients, their context, and loose coupling between them makes service delivery in ubiquitous environments different from other systems. This paper presents a solution to overcome these issues by utilizing the underlying ontology and semantics for service lookup. Access control over context data is also considered by specifying dynamic policies at the system and service level.1