CN102385617A - 动态域查询及查询转换 - Google Patents

动态域查询及查询转换 Download PDF

Info

Publication number
CN102385617A
CN102385617A CN2011103077497A CN201110307749A CN102385617A CN 102385617 A CN102385617 A CN 102385617A CN 2011103077497 A CN2011103077497 A CN 2011103077497A CN 201110307749 A CN201110307749 A CN 201110307749A CN 102385617 A CN102385617 A CN 102385617A
Authority
CN
China
Prior art keywords
service
query expression
system model
dynamic system
action
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2011103077497A
Other languages
English (en)
Other versions
CN102385617B (zh
Inventor
M·萨诺维茨
S·A·科纳斯曼
M·M·M·切蒂亚尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN102385617A publication Critical patent/CN102385617A/zh
Application granted granted Critical
Publication of CN102385617B publication Critical patent/CN102385617B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2452Query translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/24569Query processing with adaptation to specific hardware, e.g. adapted for using GPUs or SSDs

Abstract

本发明涉及动态域查询及查询转换。各实施方式涉及通过动态系统模型来定义查询表达式以及将动态地构建的查询表达式变换成简化的正则形式。计算机系统接收要作为用于对动态系统模型进行查询的查询表达式的一部分的各种用户输入。该动态系统模型可被查询以确定由后端服务器所主存的服务所提供的特征。计算机系统基于接收到的输入和动态系统模型所指示的由服务提供的可用特征来动态地构建查询表达式。该查询表达式还包括表示该服务所提供的该服务的那些特征的元数据结构。计算机系统还使用动态地构建的查询表达式来查询动态系统模型以检索并提供在接收到的用户输入中请求的服务特征。

Description

动态域查询及查询转换
技术领域
本发明涉及数据查询,尤其涉及通过动态系统模型来定义查询表达式以及查询变换。
背景技术
计算机已变得高度集成于工作、家庭、移动设备以及许多其他地方中。计算机可快速且有效地处理大量信息。被设计成在计算机系统上运行的软件应用程序允许用户执行包括商业应用程序、学校作业、娱乐等等在内的各种各样的功能。软件应用程序通常被设计成执行特定任务,诸如用于草拟文档的文字处理器应用程序或者用于发送、接收和组织电子邮件的电子邮件程序。
在许多情况下,软件应用程序被设计为与其他软件应用程序或其他计算机系统交互。例如,客户机计算机系统可被配置成请求并接收由后端服务器所主存的服务或软件应用程序。在一些情况下,客户机系统可具有呈现由后端服务器所主存的服务所提供的选项的用户界面。当未被正确更新时,或当使用后端服务器的不同版本时,这一用户界面可以显示未被后端服务器所主存的服务真正提供的特征的选项。
发明内容
本文描述的各实施方式涉及通过动态系统模型来定义查询表达式以及将动态地构建的查询表达式变换成简化的正则形式。在一个实施方式中,计算机系统接收要作为用于对动态系统模型进行查询的查询表达式的一部分的各种用户输入。该动态系统模型可被查询以确定由后端服务器所主存的服务所提供的特征。计算机系统基于接收到的输入和动态系统模型所指示的由服务提供的可用特征来动态地构建查询表达式。查询表达式还包括表示该服务所提供的该服务的那些特征的元数据结构。计算机系统还使用动态地构建的查询表达式来查询动态系统模型以检索并提供在接收到的用户输入中请求的服务特征。
在另一实施方式中,计算机系统接收要作为用于对动态系统模型进行查询的查询表达式的一部分的各种用户输入。该动态系统模型可被查询以确定由后端服务器所主存的服务所提供的特征。计算机系统基于接收到的输入和动态系统模型所指示的由服务提供的可用特征来动态地构建查询表达式。查询表达式还包括表示该服务所提供的该服务的那些特征的元数据结构。计算机系统将动态地构建的查询表达式变换成一般可由多个不同后端服务器理解的简化的正则形式。计算机系统还使用动态地构建的查询表达式来查询动态系统模型以检索并提供在接收到的用户输入中请求的服务特征。
在又一实施方式中,计算机系统接收要作为用于对动态系统模型进行查询的查询表达式的一部分的各种用户输入。该动态系统模型可被查询以确定由后端服务器所主存的服务所提供的特征。计算机系统基于接收到的输入和动态系统模型所指示的由服务提供的可用特征来动态地构建查询表达式。查询表达式还包括表示该服务所提供的该服务的那些特征的元数据结构。计算机系统使用动态地构建的查询表达式来查询动态系统模型以检索并提供在接收到的用户输入中请求的服务特征。计算机系统还在对查询表达式的处理期间维护与元数据结构相对应的元数据信息的一部分,并将该元数据信息附加到返回给客户机的结果以唯一地标识该查询所返回的每一对象。
提供本发明内容以便以简化形式介绍将在以下的具体实施方式中进一步描述的一些概念。本发明内容并非旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
本发明的附加特征和优点将在以下描述中阐述,且其一部分根据本描述将是显而易见的,或可通过对此处的原理的实践来获悉。本发明的特征和优点可通过在所附权利要求书中特别指出的工具和组合来实现和获得。本发明的特征将通过以下描述和所附权利要求书变得更加显而易见,或可通过对下文中所述的本发明的实践来获悉。
附图说明
为了进一步阐明本发明的各实施方式的以上和其他优点和特征,将参考附图来呈现本发明的各实施方式的更具体的描述。可以理解,这些附图只描绘本发明的典型实施方式,因此将不被认为是对其范围的限制。本发明将通过使用附图用附加特征和细节来描述和解释,附图中:
图1示出其中本发明的各实施方式可在其中操作(包括通过动态系统模型来定义查询表达式)的计算机体系结构。
图2示出用于通过动态系统模型来定义查询表达式的示例方法的流程图。
图3示出用于将动态地构建的查询表达式变换成简化的正则形式的示例方法的流程图。
图4示出本发明的一实施方式,其中动态地各阶段查询表达式被变换成简化的正则形式并且被转换成标准的后端句法。
具体实施方式
本文描述的各实施方式涉及通过动态系统模型来定义查询表达式以及将动态地构建的查询表达式变换成简化的正则形式。在一个实施方式中,计算机系统接收要作为用于对动态系统模型进行查询的查询表达式的一部分的各种用户输入。该动态系统模型可被查询以确定由后端服务器所主存的服务所提供的特征。计算机系统基于接收到的输入和动态系统模型所指示的由服务提供的可用特征来动态地构建查询表达式。查询表达式还包括表示该服务所提供的该服务的那些特征的元数据结构。计算机系统还使用动态地构建的查询表达式来查询动态系统模型以检索并提供在接收到的用户输入中请求的服务特征。
在另一实施方式中,计算机系统接收要作为用于对动态系统模型进行查询的查询表达式的一部分的各种用户输入。该动态系统模型可被查询以确定由后端服务器所主存的服务所提供的特征。计算机系统基于接收到的输入和动态系统模型所指示的由服务提供的可用特征来动态地构建查询表达式。查询表达式还包括表示该服务所提供的该服务的那些特征的元数据结构。计算机系统将动态地构建的查询表达式变换成一般可由多个不同后端服务器理解的简化的正则形式。计算机系统还使用动态地构建的查询表达式来查询动态系统模型以检索并提供在接收到的用户输入中请求的服务特征。
在又一实施方式中,计算机系统接收要作为用于对动态系统模型进行查询的查询表达式的一部分的各种用户输入。该动态系统模型可被查询以确定由后端服务器所主存的服务所提供的特征。计算机系统基于接收到的输入和动态系统模型所指示的由服务提供的可用特征来动态地构建查询表达式。查询表达式还包括表示该服务所提供的该服务的那些特征的元数据结构。计算机系统使用动态地构建的查询表达式来查询动态系统模型以检索并提供在接收到的用户输入中请求的服务特征。计算机系统还在对查询表达式的处理期间维护与元数据结构相对应的元数据信息的一部分,并将该元数据信息附加到返回给客户机的结果以唯一地标识该查询所返回的每一对象。
下面的讨论现在引用了可执行的多个方法和方法动作。应当记住,虽然这些方法动作可能是按一定次序讨论的,或者是在流程图中被描绘为是按照特定顺序进行的,然而并非必然需要特定的次序,除非特别声明,或者是因为一个动作依赖于另一动作在该动作被执行之前完成而需要的。
本发明的各实施方式可包括或利用包括诸如例如,一个或多个处理器和系统存储器之类的计算机硬件的专用或通用计算机,如以下更详细讨论的。本发明范围内的各实施方式还包括用于承载或存储计算机可执行指令和/或数据结构的物理和其他计算机可读介质。这些计算机可读介质可以是可由通用或专用计算机系统访问的任何可用介质。存储计算机可执行指令的计算机可读介质是计算机存储介质。承载计算机可执行指令的计算机可读介质是传输介质。由此,作为示例而非限制,本发明的各实施方式可包括至少两种完全不同的计算机可读介质:计算机存储介质和传输介质。
计算机存储介质包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁存储设备、或可用于存储计算机可执行指令或数据结构形式的所需程序代码装置且可由通用或专用计算机访问的任何其他介质。
“网络”被定义为允许在计算机系统和/或模块和/或其他电子设备之间传输电子数据的一个或多个数据链路。当信息通过网络或另一个通信连接(硬连线、无线、或者硬连线或无线的组合)传输或提供给计算机时,该计算机将该连接适当地视为传输介质。传输介质可包括可用于承载计算机可执行指令或数据结构形式的所需程序代码装置且可由通用或专用计算机访问的网络和/或数据链路。上述的组合也应被包括在计算机可读介质的范围内。
此外,在到达各种计算机系统组件之后,计算机可执行指令或数据结构形式的程序代码装置可从传输介质自动传输到计算机存储介质(或反之亦然)。例如,通过网络或数据链路接收到的计算机可执行指令或数据结构可被缓存在网络接口模块(例如,“NIC”)内的RAM中,然后最终被传输到计算机系统RAM和/或计算机系统处的较不易失性的计算机存储介质。因而,应当理解,计算机存储介质可被包括在同样(或甚至主要)利用传输介质的计算机系统组件中。
计算机可执行指令包括例如,使通用计算机、专用计算机、或专用处理设备执行某一功能或某组功能的指令和数据。计算机可执行指令可以是例如二进制代码、诸如汇编语言之类的中间格式指令、或甚至源代码。尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述特征或动作。相反,上述特征和动作是作为实现权利要求的示例形式而公开的。
本领域的技术人员将理解,本发明可以在具有许多类型的计算机系统配置的网络计算环境中实践,这些计算机系统配置包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持式设备、多处理器系统、基于微处理器的或可编程消费电子设备、网络PC、小型计算机、大型计算机、移动电话、PDA、寻呼机、路由器、交换机等等。本发明也可在其中通过网络链路(或者通过硬连线数据链路、无线数据链路,或者通过硬连线和无线数据链路的组合)的本地和远程计算机系统两者都执行任务的分布式系统环境中实施。在分布式系统环境中,程序模块可位于本地和远程存储器存储设备中。
图1示出了可在其中采用本发明的原理的计算机体系结构100。计算机体系结构100包括后端服务器135。后端服务器可以是包括数据库、服务提供者、应用服务器、或任何其他类型的服务器或托管计算机系统的任何类型的计算机系统。后端服务器可以提供一个或多个服务136,其中这些服务中的每一个提高不同特征132或服务操作。这些特征可以作为服务的一部分来单独地或共同地提供。
后端服务器可由动态系统模型125来表示。动态系统模型是可在运行时改变的可动态改变的模型。定义包括服务特征、域、类型、类型属性、以及类型关系的各种托管系统对象的元数据结构131可被存储在该系统模型中。这些服务特征、域、类型、类型属性、以及类型关系中的每一个可被动态地更新或改变。如此,在该模型连接到不同的后端服务器时,该模型可被更新以反映由该不同的后端服务器提供的那些服务特征以及其他托管系统对象。
在一些情况下,各种后端服务器实现不同的句法、不同的协议、不同的调用方法、以及其他实现差异。如此,在动态系统模型连接到不同的后端服务器(或后端服务器的不同版本)时,取决于当前正在使用哪一后端服务器,查询的句法需要被改变。因此,查询表达式构建模块110可被实现成生成将由当前使用的后端服务器理解的正确查询。查询表达式构建模块的输入接收模块115可被配置成从用户105接收用户输入106。用户可以是任何类型的计算机用户,包括最终用户、开发人员、管理员或其他用户。输入可以是请求来自后端服务器的信息的任何类型的数据库请求或其他数据请求。在一些情况下,该请求专用于由用户当前正在使用的后端服务器所提供的服务。
查询表达式构建模块可被配置成接受用户的数据请求并生成查询表达式116。这一动态地构建的查询表达式可被发送到查询变换模块120以变换成简单的正则形式。这一经变换的查询121可被发送到动态系统模型的查询接收模块130,其中查询可由该系统模型针对后端服务器来运行。该查询可由该动态系统模型转换成可由后端服务器135理解的标准的后端句法。查询141的结果随后经由该系统模型发送给用户。查询结果可包括所附元数据142的附加部分。所附元数据可包括唯一地标识该查询所返回的每一对象的标识信息。
在一些情况下,图1的计算环境100一般被配置成将查询的表达与查询的执行分开。表达式树(例如,查询表达式116)可被动态地构建并且根据底层的动态系统模型来定义。查询表达式可以增量式地组成,从而允许用户不断地对它进行扩充,直至他或她决定执行该表达式为止。执行模型将后端专用逻辑分成可针对不同的后端来进行改变的提供者分量。提供者将通用的面向模型的查询表达式转换成后端专用句法并向用户返回结果141。
在一些实施方式中,查询表达式可以提供动态系统模型来定义。该动态系统模型可被表达成一组元数据结构131。每一元数据结构可以表示类型、或类型的属性或关系。元数据结构可以在应用程序运行时改变,因为该动态系统模型适用于该模型所连接到的后端系统的各个变型。客户机代码(例如,用户输入116)可以通过引用元数据结构来定义查询表达式116。因此,至少在一些实施方式中,只有有效的系统元数据可被查询,因为只有这些元数据结构对客户机是可见的。此外,在查询处理期间,可以始终携带元数据信息142并且将其附加到所返回的结果141以正确地标识它们。另外,通过根据元数据结构构建表达式树来定义查询提供了真实的动态性:客户机不必知道在该客户机写入时该模型的各具体元素。在一些情况下,客户机只需要知道动态系统模型被表达成各实体(例如,托管系统对象)和关系。
可以定义自定义表达式运算符,它允许客户机代码使用模型关系作为定义查询结果的主要方式来在模型抽象层构建表达式。内部表达式可包括比客户机代码指定的更多的信息,如所需类型属性、到所需键值的关系扩展、父关系的自动重新填充,以及更多。至少在一些实施方式中,该信息是从模型元数据131检索的。以此方式的处理确保最终查询表达式树包括将该树变换成本机后端请求所必需的信息,而变换的细节中的至少一些不一定由客户机代码来指定。
如图4所述,动态地构建的查询表达式405可被转换成后端专用请求415。查询表达式的处理在客户机代码开始查询树的枚举或变换时开始。在变换406时,查询处理器将查询表达式变换成简化的正则形式410,并随后分析它以确定将该查询传递给提供者分量的哪一实例。提供者分量用作通用查询处理以及后端专用实现之间的中间层。提供者分量使用一组映射文件来将表达式转变或转换411成标准的后端句法415。标准的句法查询被传递给后端服务器,并且结果被返回给提供者分量。当结果141被传递回客户机105时,可以用元数据结构142来对结果进行注释,该元数据结构允许客户机代码标识所返回的数据的意义并将记录与系统模型对象进行关联下面,分别针对图2和图3的方法200和300,更详细地解释这些和其他概念。
考虑到以上描述的系统和体系结构,参考图2和图3的流程图将更好地理解可根据所公开的主题实现的方法。为了解释简明起见,这些方法被示出和描述为一系列框。然而,应该理解和了解,所要求保护的主题不受框的次序的限制,因为一些框可按不同的次序进行和/或与此处所描绘和描述的其他框同时进行。此外,并非全部所示出的框都是实现下面所描述的方法所必需的。
图2示出用于通过动态系统模型来定义查询表达式的方法200的流程图。现在将频繁参照环境100的组件和数据来描述方法200。
方法200包括接收要作为用于对动态系统模型进行查询的查询表达式的一部分来包括的一个或多个用户输入的动作,其中该动态系统模型可被查询以确定由后端服务器所主存的服务所提供的特征(动作210)。例如,输入接收模块115可以接收要作为查询表达式116的一部分来包括的用户输入106。查询表达式(在本文中也被称为表达式树)可被用来对动态系统模型125进行查询。该动态系统模型可被查询以确定由后端服务器135上所主存的服务136所提供的特征132和/或托管系统对象。
在一些情况下,服务的各特征可以在运行时期间添加或移除。此外,其他后端系统对象(例如,类型、类型属性及类型关系)也可在运行时期间改变。该动态系统模型可对应地在运行时期间改变以反映后端服务器上作出的改变。另外,后端系统本身可被改变,从而使得使用不同版本。该动态系统模型可被类似地更新以反映后端服务器的新版本。因此,该动态系统模型被设计成对多个不同服务和后端版本有效。
在其中该模型提供对用户界面的支持的情况下,服务136所提供的特征可以作为用户界面上的选项来显示。该用户界面可以接收多个不同请求,包括来自用户的指示查询的结果141要被过滤的后续请求。基于这样的过滤请求,该动态系统模型可以动态地改变查询的结果,以使得只有与该过滤匹配的结果才在用户界面中显示给用户。
方法200包括基于接收到的输入和由动态系统模型所指示的服务所提供的可用特征来动态地构建查询表达式的动作,其中查询表达式包括表示由该服务提供的该服务的那些特征的元数据结构(动作220)。例如,查询表达式构建模块110可以基于用户代码106和由系统模型125的元数据结构131中指示的服务136所提供的可用特征132来动态地构建查询表达式116。该元数据结构表示该服务所提供的该服务的那些特征。这些特征可包括服务的一部分或整个服务本身。该元数据结构可以表示服务特征132以及托管系统或后端服务器对象,包括类型、类型属性以及关系。如上所示,这些类型、类型属性以及关系可以在运行时期间改变。这些改变随后反映在经更新的可动态地改变的系统模型中。
方法200包括使用动态地构建的查询表达式来查询动态系统模型以检索并提供在接收到的用户输入中请求的服务特征的动作(动作230)。例如,查询表达式116可被用来查询动态系统模型125以检索并提供用户输入106所请求的服务特征。在一些情况下,可在查询中实现自定义查询运算符以检索并提供接收到的用户输入中所需的服务特征。自定义查询运算符可被配置成查询表示由后端服务器提供的服务的特征的一列对象,而无需知道这些对象会是什么。动态系统模型可使这一点成为可能,因为它提供查询与后端服务器之间的抽象层。
在一些情况下,自定义查询运算符可以通过遍历定义由后端服务器提供的服务的特征的各元数据结构之间的一个或多个关系来查询表示该服务的特征的一列对象,而无需知道这些对象会是什么。自定义查询运算符可以使用标准的查询句法(例如415)的至少一部分来遍历元数据结构关系。因为动态地构建的查询表达式被转换成本机后端请求,所以可以对多个不同的后端系统(及它们的对应的动态系统模型)使用相同的查询表达式。与元数据结构相对应的元数据信息可以在查询表达式的整个处理期间维护。所维护的元数据可被附加142到返回给客户机105的结果141以唯一地标识该查询所返回的每一对象。
现在转向图3,图3示出用于将动态地构建的查询表达式变换成简化的正则形式的方法300的流程图。现在将频繁参照环境100的组件和数据来描述方法300。
方法300包括接收要作为用于对动态系统模型进行查询的查询表达式的一部分来包括的一个或多个用户输入的动作,其中该动态系统模型可被查询以确定由后端服务器所主存的服务所提供的特征(动作310)。例如,可在输入接收模块115处接收用户输入106,其中用户输入要作为用于查询动态系统模型125的查询表达式的一部分来包括。动态系统模型可被查询以确定由后端服务器135所主存的服务136提供哪些特征。因为动态系统模型可在运行时期间动态地更新,所以动态地构建的查询表达式也可在运行时期间改变,直至查询被实际上执行为止。
方法300包括基于接收到的输入和由动态系统模型所指示的服务所提供的可用特征来动态地构建查询表达式的动作,其中查询表达式包括表示由该服务提供的该服务的那些特征的元数据结构(动作320)。例如,查询表达式构建模块110可以基于用户输入106和由系统模型的元数据结构131所指示的服务136所提供的可用服务特征132来动态地构建查询表达式116。如上所示,元数据可被维护并被附加到查询结果中,从而允许用户将每一查询结果标识为与给定查询表达式相关联。
方法300包括将动态地构建的查询表达式变换成一般可由多个不同后端服务器理解的简化的正则形式的动作(动作330)。例如,动态地构建的查询表达式116可被查询变换模块120变换成一般可由多个不同的后端服务器版本理解的简化的正则形式(例如,经变换的查询121)。在一些情况下,查询表达式116和经变换的查询121中的任一个或两者被发送到动态系统模型的查询接收模块130。该系统模型随后可使用该查询来访问存储在后端服务器上的数据。在一些实施方式中,简化的正则形式410可被进一步转换成标准的后端句法,该句法对所使用的后端服务器的当前版本而言是标准的。
在一些情况下,用户可以提供指示存储在动态系统模型中的模型对象的串名称的输入。该系统模型随后可以定位与接收到的串名称相对应的元数据对象。此外,在一些情况下,可创建各种绑定来将对应的元数据对象与接收到的串名称进行链接。因此,这些绑定可被实现成创建查询表达式的简化的正则形式。
方法300还包括以其简化的正则形式来使用动态地构建的查询表达式来查询动态系统模型以检索并提供在接收到的用户输入中请求的服务特征的动作(动作340)。例如,经变换的简化的正则查询表达式410可被用来查询动态系统模型125以检索并提供用户输入106所请求的那些服务特征132。以此方式,用户可以从可在每次使用新后端服务器时或在后端服务器的服务或特征改变时改变的可动态地改变的系统模型请求资源。此外,用户的查询可按需变换和/或转换以完成用户对资源的请求。
因此,提供了通过动态系统模型来定义查询表达式的方法、系统和计算机程序产品,其中查询表达式可在运行时动态地改变,直至查询被执行为止。此外,提供了在将动态地构建的查询表达式转换成后端专用查询句法之前,将该查询变换成简化的正则形式的方法、系统和计算机程序产品。
本发明可被具体化为其他具体形式而不背离其精神或本质特征。所描述的实施方式在所有方面都应被认为仅是说明性而非限制性的。因此,本发明的范围由所附权利要求书而非前述描述指示。落入权利要求书的等效方案的含义和范围内的所有改变都被权利要求书的范围所涵盖。

Claims (15)

1.一种计算机联网环境中的计算机系统处的计算机实现的方法,所述计算机联网环境包括多个计算系统,所述计算机系统包括处理器和存储器,所述方法用于通过动态系统模型来定义查询表达式,包括:
接收要作为用于对动态系统模型125进行查询的查询表达式116的一部分来包括的一个或多个用户输入106的动作,其中所述动态系统模型可被查询以确定由后端服务器135所主存的服务136所提供的特征;
基于接收到的输入和由所述动态系统模型所指示的服务所提供的可用特征132来动态地构建所述查询表达式的动作,其中所述查询表达式包括表示由所述服务提供的所述服务的那些特征的元数据结构131;以及
使用所述动态地构建的查询表达式来查询所述动态系统模型以检索并提供在接收到的用户输入中请求的服务特征的动作。
2.如权利要求1所述的方法,其特征在于,在所述查询中实现一个或多个自定义查询运算符以检索并提供在接收到的用户输入中要求的服务特征。
3.如权利要求2所述的方法,其特征在于,所述自定义查询运算符查询表示由所述后端服务器提供的服务的特征的一列对象,而无需知道这些对象会是什么。
4.如权利要求3所述的方法,其特征在于,所述自定义查询运算符通过遍历定义由所述后端服务器提供的服务的特征的各元数据结构之间的一个或多个关系来查询表示所述服务的特征的一列对象,而无需知道这些对象会是什么。
5.如权利要求4所述的方法,其特征在于,所述自定义查询运算符使用标准查询句法的至少一部分来遍历所述元数据结构关系。
6.如权利要求1所述的方法,其特征在于,所述服务所提供的特征被显示成显示给用户的用户界面上的选项。
7.如权利要求6所述的方法,其特征在于,还包括:
在所述用户界面处从所述用户接收指示所述查询的结果要被过滤的后续请求的动作;以及
基于接收到的过滤请求,动态地改变所述查询的结果,以使得只有与所述过滤匹配的结果才在所述用户界面中显示给用户。
8.如权利要求1所述的方法,其特征在于,所述元数据结构中的每一个表示类型、类型的属性及关系中的至少一个。
9.如权利要求8所述的方法,其特征在于,所述类型、类型属性及关系中的至少一个在运行时期间改变。
10.如权利要求1所述的方法,其特征在于,还包括:
在对所述查询表达式的处理期间,维护与所述元数据结构相对应的元数据信息的一部分的动作;以及
将所述元数据信息附加到返回给所述客户机的结果以唯一地标识所述查询所返回的每一对象的动作。
11.一种用于实现一种方法的计算机程序产品,所述方法用于将动态地构建的查询表达式变换成简化的正则形式,所述计算机程序产品包括其上存储有计算机可执行指令的一个或多个计算机可读存储介质,所述指令在被所述计算系统的一个或多个处理器执行时使得所述计算系统执行所述方法,所述方法包括:
接收要作为用于对动态系统模型125进行查询的查询表达式116的一部分来包括的一个或多个用户输入106的动作,其中所述动态系统模型可被查询以确定由后端服务器135所主存的服务136所提供的特征;
基于接收到的输入和由所述动态系统模型所指示的服务所提供的可用特征132来动态地构建所述查询表达式的动作,其中所述查询表达式包括表示由所述服务提供的所述服务的那些特征的元数据结构131;
将所述动态地构建的查询表达式变换成一般可由多个不同后端服务器理解的简化的正则形式121的动作;以及
以其简化的正则形式使用所述动态地构建的查询表达式来查询所述动态系统模型以检索并提供在接收到的用户输入中请求的服务特征的动作。
12.如权利要求11所述的计算机程序产品,其特征在于,所述用户在接收到的用户输入中提供模型对象的串名称。
13.如权利要求12所述的计算机程序产品,其特征在于,还包括定位与接收到的串名称相对应的元数据对象的动作。
14.如权利要求13所述的计算机程序产品,其特征在于,还包括创建一个或多个绑定以将对应的元数据对象与接收到的串名称进行链接的动作,其中所述绑定被实现成创建所述查询表达式的简化的正则形式。
15.一种计算机系统,包括:
一个或更多个处理器;
系统存储器;
其上存储有计算机可执行指令的一个或多个计算机可读存储介质,所述指令在被所述一个或多个处理器执行时使得所述计算系统执行一种用于提供动态系统模型来定义查询表达式的方法,所述方法包括以下动作:
接收要作为用于对动态系统模型125进行查询的查询表达式116的一部分来包括的一个或多个用户输入106的动作,其中所述动态系统模型可被查询以确定由后端服务器135所主存的服务136所提供的特征132;
基于接收到的输入和由所述动态系统模型所指示的服务所提供的可用特征来动态地构建所述查询表达式的动作,其中所述查询表达式包括表示由所述服务提供的所述服务的那些特征的元数据结构131;
使用所述动态地构建的查询表达式116来查询所述动态系统模型以检索并提供在接收到的用户输入中请求的服务特征的动作。
在所述查询表达式的处理期间,维护与所述元数据结构相对应的元数据142信息的一部分的动作;以及
将所述元数据信息附加到返回给所述客户机的结果141以唯一地标识所述查询所返回的每一对象的动作。
CN201110307749.7A 2010-09-30 2011-09-28 动态域查询及查询转换 Active CN102385617B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/895,532 US9262474B2 (en) 2010-09-30 2010-09-30 Dynamic domain query and query translation
US12/895,532 2010-09-30

Publications (2)

Publication Number Publication Date
CN102385617A true CN102385617A (zh) 2012-03-21
CN102385617B CN102385617B (zh) 2017-11-17

Family

ID=45825033

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110307749.7A Active CN102385617B (zh) 2010-09-30 2011-09-28 动态域查询及查询转换

Country Status (2)

Country Link
US (2) US9262474B2 (zh)
CN (1) CN102385617B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103795750B (zh) * 2012-10-31 2017-03-01 中国银联股份有限公司 一种文件传送方法及其系统
US10102269B2 (en) 2015-02-27 2018-10-16 Microsoft Technology Licensing, Llc Object query model for analytics data access
CN111095385B (zh) * 2017-09-21 2021-06-22 夏普株式会社 显示装置
US10657317B2 (en) * 2018-02-27 2020-05-19 Elasticsearch B.V. Data visualization using client-server independent expressions
US11586695B2 (en) 2018-02-27 2023-02-21 Elasticsearch B.V. Iterating between a graphical user interface and plain-text code for data visualization
US10997196B2 (en) 2018-10-30 2021-05-04 Elasticsearch B.V. Systems and methods for reducing data storage overhead
DE102018219570A1 (de) * 2018-11-15 2020-05-20 Audi Ag Authentifizieren eines Nutzers einer Softwareapplikation

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040236633A1 (en) * 2003-05-05 2004-11-25 Knauerhase Robert C. Management and arbitration of mobile service discovery
US20050097087A1 (en) * 2003-11-03 2005-05-05 Punaganti Venkata Murali K. System and method for providing a unified framework for service discovery
CN101047512A (zh) * 2006-03-31 2007-10-03 国际商业机器公司 服务注册器以及相关系统和方法

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5542078A (en) 1994-09-29 1996-07-30 Ontos, Inc. Object oriented data store integration environment for integration of object oriented databases and non-object oriented data facilities
US5838965A (en) 1994-11-10 1998-11-17 Cadis, Inc. Object oriented database management system
GB9508283D0 (en) * 1995-02-07 1995-06-14 British Telecomm Information services provision and management
US6167449A (en) * 1997-11-19 2000-12-26 Apple Computer, Inc. System and method for identifying and locating services on multiple heterogeneous networks using a query by type
US7197491B1 (en) * 1999-09-21 2007-03-27 International Business Machines Corporation Architecture and implementation of a dynamic RMI server configuration hierarchy to support federated search and update across heterogeneous datastores
US6871346B1 (en) 2000-02-11 2005-03-22 Microsoft Corp. Back-end decoupled management model and management system utilizing same
US7222147B1 (en) 2000-05-20 2007-05-22 Ciena Corporation Processing network management data in accordance with metadata files
US7272833B2 (en) * 2000-12-26 2007-09-18 International Business Machines Corporation Messaging service in a federated content management system
US7263514B2 (en) * 2001-05-17 2007-08-28 International Business Machines Corporation Efficient object query processing technique on object's dynamic properties via pushdown
US20030140119A1 (en) * 2002-01-18 2003-07-24 International Business Machines Corporation Dynamic service discovery
DE10322684A1 (de) 2003-05-20 2004-12-16 Siemens Ag Verfahren zur Verarbeitung einer Versionsänderung eines medizinische Therapiehinweise umfassenden Datensatzes
US7716357B2 (en) * 2003-10-24 2010-05-11 Microsoft Corporation Service discovery and publication
US7656822B1 (en) * 2003-12-22 2010-02-02 Sun Microsystems, Inc. Method and apparatus for decentralized device and service description and discovery
US20060047649A1 (en) * 2003-12-29 2006-03-02 Ping Liang Internet and computer information retrieval and mining with intelligent conceptual filtering, visualization and automation
GB2409735A (en) * 2003-12-30 2005-07-06 Ibm Method and system for change management of interfaces in distributed computer systems
US7933290B2 (en) * 2004-03-30 2011-04-26 Nokia Corporation System and method for comprehensive service translation
US7428530B2 (en) * 2004-07-01 2008-09-23 Microsoft Corporation Dispersing search engine results by using page category information
US7788662B2 (en) 2004-07-28 2010-08-31 Microsoft Corporation Automatic upgrade of pluggable components
US7716664B2 (en) 2004-12-30 2010-05-11 Microsoft Corporation Metadata-based application model for large applications
GB2422067B (en) * 2005-01-06 2007-09-05 Toshiba Res Europ Ltd Distributed network discovery
US10769215B2 (en) * 2005-07-14 2020-09-08 Conversant Wireless Licensing S.A R.L. Method, apparatus and computer program product providing an application integrated mobile device search solution using context information
US7454413B2 (en) 2005-08-19 2008-11-18 Microsoft Corporation Query expressions and interactions with metadata
US20090144229A1 (en) 2007-11-30 2009-06-04 Microsoft Corporation Static query optimization for linq
US9336327B2 (en) 2007-11-30 2016-05-10 Microsoft Technology Licensing, Llc Mapping and query translation between XML, objects, and relations
US7987163B2 (en) * 2008-02-12 2011-07-26 Bae Systems Information And Electronic Systems Integration Inc. Apparatus and method for dynamic web service discovery
US20090319501A1 (en) 2008-06-24 2009-12-24 Microsoft Corporation Translation of streaming queries into sql queries
US20090328016A1 (en) 2008-06-27 2009-12-31 Microsoft Corporation Generalized expression trees

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040236633A1 (en) * 2003-05-05 2004-11-25 Knauerhase Robert C. Management and arbitration of mobile service discovery
US20050097087A1 (en) * 2003-11-03 2005-05-05 Punaganti Venkata Murali K. System and method for providing a unified framework for service discovery
CN101047512A (zh) * 2006-03-31 2007-10-03 国际商业机器公司 服务注册器以及相关系统和方法

Also Published As

Publication number Publication date
US20170011128A1 (en) 2017-01-12
CN102385617B (zh) 2017-11-17
US20120084301A1 (en) 2012-04-05
US9262474B2 (en) 2016-02-16

Similar Documents

Publication Publication Date Title
CN109086409B (zh) 微服务数据处理方法、装置、电子设备及计算机可读介质
US9578082B2 (en) Methods for dynamically generating an application interface for a modeled entity and devices thereof
US9659043B2 (en) Data system and method
CN102385617A (zh) 动态域查询及查询转换
CN102236701A (zh) 关于多个域的依赖图
CN101796752A (zh) 无限企业平台
JP2008511936A (ja) データ・システムにおける意味識別のための方法およびシステム
TW200818010A (en) System and method for managing objects according to the common information model
CN102364464A (zh) 对象实例版本化
CN112699151B (zh) 数据处理方法、装置、设备以及介质
CN101405761A (zh) 服务序列中的变换的声明
CN109144785A (zh) 用于备份数据的方法和装置
CN105518669A (zh) 数据模型改变管理
CN112948486A (zh) 批量数据同步方法、系统及电子设备
CN111611206A (zh) 一种基于平台级企业消息总线的消息处理方法和装置
US11068496B2 (en) System and method for data management
Kim et al. Comprehensive Knowledge Archive Network harvester improvement for efficient open‐data collection and management
Chauhan et al. Introducing Microsoft Azure HDInsight
CN109284452A (zh) 电子协议在线展示方法、装置、电子设备、存储介质
US9059992B2 (en) Distributed mobile enterprise application platform
CN105981010B (zh) 创建数据视图
CN115905274A (zh) 数据处理的方法、装置、电子设备及介质
CN102402433B (zh) 模型、操作以及实现的分离
CN105701187B (zh) 流程整合服务器及利用其实现系统整合的方法
CN105518670A (zh) 用于模型查询的数据模型索引

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150723

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20150723

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.

GR01 Patent grant
GR01 Patent grant