A computer readable storage medium for creating and publishing a Query as a Web Service, QaaWS, wherein the QaaWS is a web service based on semantic layer universes associated with a data source and can be used by user applications as input, the medium comprising executable instructions to: retrieve, from a user, a query specification, wherein the query specification comprises on-screen selections of database elements and filters corresponding to a database; send, via a semantic layer communication API, the query specification to a semantic layer; resolve, at the semantic layer, query semantic parameters, QSPs, of the query specification for defining a query definition to be stored in a QaaWS data set in a repository, wherein the QSPs are generated by - accessing, via a query definition module, the semantic layer API that generates global parameter queries; - applying the global parameter queries to the semantic layer and to the database; generate a QaaWS WSDL file and a query identifier from the query definition in order to complete the QaaWS data set, wherein the QaaWS WSDL file is a general definition of elements to be considered for building a user application which take the QaaWS as input and comprises: - a query method; - the query identifier, - a query input/output; and - methods corresponding to ports and methods for connection to the QaaWS; and store the generated QaaWS WSDL file within the QaaWS data set in the repository; receive, at a generic web service, an input message comprising the query identifier and query parameters, from a user application via an interface at a user site; access the query definition in the QaaWS data set within the repository by means of the query identifier; map the query parameters to QaaWS definition and parameters in a semantic layer communication API to form a semantic query; pass the semantic query to the semantic layer; receive, at the semantic layer communication API, a result data set from the semantic layer; transmit the result data set in the form of an output data set formatted according to the QaaWS WSDL file to the generic web service; and transmit the output data set to a specified web service interface by means of an output message. retrieve, from a user, a query specification, wherein the query specification comprises on-screen selections of database elements and filters corresponding to a database; send, via a semantic layer communication API, the query specification to a semantic layer; resolve, at the semantic layer, query semantic parameters, QSPs, of the query specification for defining a query definition to be stored in a QaaWS data set in a repository, wherein the QSPs are generated by - accessing, via a query definition module, the semantic layer API that generates global parameter queries; - applying the global parameter queries to the semantic layer and to the database; - accessing, via a query definition module, the semantic layer API that generates global parameter queries; - applying the global parameter queries to the semantic layer and to the database; generate a QaaWS WSDL file and a query identifier from the query definition in order to complete the QaaWS data set, wherein the QaaWS WSDL file is a general definition of elements to be considered for building a user application which take the QaaWS as input and comprises: - a query method; - the query identifier, - a query input/output; and - methods corresponding to ports and methods for connection to the QaaWS; and - a query method; - the query identifier, - a query input/output; and - methods corresponding to ports and methods for connection to the QaaWS; and store the generated QaaWS WSDL file within the QaaWS data set in the repository; receive, at a generic web service, an input message comprising the query identifier and query parameters, from a user application via an interface at a user site; access the query definition in the QaaWS data set within the repository by means of the query identifier; map the query parameters to QaaWS definition and parameters in a semantic layer communication API to form a semantic query; pass the semantic query to the semantic layer; receive, at the semantic layer communication API, a result data set from the semantic layer; transmit the result data set in the form of an output data set formatted according to the QaaWS WSDL file to the generic web service; and transmit the output data set to a specified web service interface by means of an output message.