Dynamic domain query and query translation
Abstract
Embodiments are directed to defining a query expression over a dynamic system model and to transforming a dynamically built query expression into a simplified, canonical form. A computer system receives various user inputs that are to be included as part of a query expression for querying a dynamic system model. The dynamic system model is queryable to determine features provided by a service hosted by a back-end server. The computer system dynamically builds the query expression based on both the received inputs and the available features provided by the service as indicated by the dynamic system model. The query expression also includes metadata structures representing those features of the service which are provided by the service. The computer system also queries across the dynamic system model using the dynamically built query expression to retrieve and provide the service features requested in the received user input.
Claims
exact text as granted — not AI-modifiedWe claim:
1 . At a computer system including a processor and a memory, in a computer networking environment including a plurality of computing systems, a computer-implemented method for defining a query expression over a dynamic system model, the method comprising:
an act of receiving one or more user inputs that are to be included as part of a query expression for querying a dynamic system model, wherein the dynamic system model is queryable to determine features provided by a service hosted by a back-end server; an act of dynamically building the query expression based on both the received inputs and the available features provided by the service as indicated by the dynamic system model, wherein the query expression includes metadata structures representing those features of the service which are provided by the service; and an act of querying across the dynamic system model using the dynamically built query expression to retrieve and provide the service features requested in the received user input.
2 . The method of claim 1 , wherein one or more custom query operators are implemented in the query to retrieve and provide the service features required in the received user input.
3 . The method of claim 2 , wherein the custom query operators query for a list of objects representing the features of the service provided by the back-end server without knowing what those objects will be.
4 . The method of claim 3 , wherein the custom query operators query for a list of objects representing the features of the service provided by the back-end server without knowing what those objects will be by traversing one or more relationships among the metadata structures that define the features of the service.
5 . The method of claim 4 , wherein the custom query operators traverse the metadata structure relationships using at least a portion of standard query syntax.
6 . The method of claim 1 , wherein one or more features of the service is added or removed during runtime.
7 . The method of claim 1 , wherein the features provided by the service are displayed as options on a user interface displayed to the user.
8 . The method of claim 7 , further comprising:
an act of receiving a subsequent request from the user at the user interface indicating that the results of the query are to be filtered; and based on the received filter request, an act of dynamically changing the results of the query such that only results matching the filter are shown to the user in the user interface.
9 . The method of claim 1 , wherein each of the metadata structures represents at least one of a type, a property of a type and a relationship.
10 . The method of claim 9 , wherein at least one of the type, type property and relationship changes during runtime.
11 . The method of claim 1 , wherein the dynamic system model changes during runtime based on differences in back-end systems to which the model is connecting during runtime.
12 . The method of claim 1 , further comprising:
an act of maintaining a portion of metadata information corresponding to the metadata structures through the processing of the query expression; and an act of attaching the metadata information to the results returned to the client to uniquely identify each object returned by the query.
13 . The method of claim 1 , wherein the dynamically built query expression is converted to a native back-end request.
14 . The method of claim 1 , wherein the dynamic system models are designed to work on multiple different service versions.
15 . A computer program product for implementing a method for transforming a dynamically built query expression into a simplified, canonical form, the computer program product comprising one or more computer-readable storage media having stored thereon computer-executable instructions that, when executed by one or more processors of the computing system, cause the computing system to perform the method, the method comprising:
an act of receiving one or more user inputs that are to be included as part of a query expression for querying a dynamic system model, wherein the dynamic system model is queryable to determine features provided by a service hosted by a back-end server; an act of dynamically building the query expression based on both the received inputs and the available features provided by the service as indicated by the dynamic system model, wherein the query expression includes metadata structures representing those features of the service which are provided by the service; an act of transforming the dynamically built query expression into a simplified, canonical form that is generically understandable by a plurality of different back-end servers; and an act of querying across the dynamic system model using the dynamically built query expression in its simplified, canonical form to retrieve and provide the service features requested in the received user input.
16 . The computer program product of claim 15 , wherein the user provides a string name of a model object in the received user input.
17 . The computer program product of claim 16 , further comprising an act of locating the metadata object corresponding to the received string name.
18 . The computer program product of claim 17 , further comprising an act of creating one or more bindings to link the corresponding metadata object to the received string name, wherein the bindings are implemented to create the simplified, canonical form of the query expression.
19 . The computer program product of claim 18 , further comprising translating the simplified, canonical form of the query expression into back-end specific query syntax.
20 . A computer system comprising the following:
one or more processors; system memory; one or more computer-readable storage media having stored thereon computer-executable instructions that, when executed by the one or more processors, causes the computing system to perform a method for defining a query expression over a dynamic system model, the method comprising the following:
an act of receiving one or more user inputs that are to be included as part of a query expression for querying a dynamic system model, wherein the dynamic system model is queryable to determine features provided by a service hosted by a back-end server;
an act of dynamically building the query expression based on both the received inputs and the available features provided by the service as indicated by the dynamic system model, wherein the query expression includes metadata structures representing those features of the service which are provided by the service;
an act of querying across the dynamic system model using the dynamically built query expression to retrieve and provide the service features requested in the received user input;
an act of maintaining a portion of metadata information corresponding to the metadata structures through the processing of the query expression; and
an act of attaching the metadata information to the results returned to the client to uniquely identify each object returned by the query.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.