CN111373365A - 模式语法 - Google Patents

模式语法 Download PDF

Info

Publication number
CN111373365A
CN111373365A CN201780096786.3A CN201780096786A CN111373365A CN 111373365 A CN111373365 A CN 111373365A CN 201780096786 A CN201780096786 A CN 201780096786A CN 111373365 A CN111373365 A CN 111373365A
Authority
CN
China
Prior art keywords
source
syntax
schema
language
data
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.)
Pending
Application number
CN201780096786.3A
Other languages
English (en)
Inventor
C·J·格雷厄姆
W·江
S·施
Z·王
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.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
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 Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of CN111373365A publication Critical patent/CN111373365A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • G06F16/972Access to data in other repository systems, e.g. legacy data or dynamic Web page generation
    • 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/21Design, administration or maintenance of databases
    • G06F16/211Schema design and management
    • 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/242Query formulation
    • G06F16/2433Query languages
    • 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/25Integrating or interfacing systems involving database management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/315Object-oriented languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一个示例可以包括处理资源、存储指令的存储器资源,该指令可由处理资源执行以利用模式语言来指定存在于多个源位置中的模式元素的源位置;利用模式语言来指定定制动作;以及利用模式语言来向定制动作指定多个源相关语法。

Description

模式语法
背景技术
一种应用可以包括可由处理资源执行以实行特定任务或作业的机器可读指令。一些应用可以通过利用来自诸如单个计算系统、单个虚拟位置、单个计算设备等的单个源的计算资源来操作。一些应用可以是分布式应用。分布式应用可以利用来自多个源的计算资源,所述多个源是诸如多个计算系统、多个虚拟位置、多个计算设备、远程服务器、云计算资源等。
附图说明
图1图示根据本公开的计算系统的框图;
图2图示根据本公开的计算系统的框图;
图3图示根据本公开的方法的图;
图4图示根据本公开的指令;
图5图示根据本公开的指令。
具体实施方式
软件应用可以用web(网络)优先或甚至仅web开发模型来开发。例如,应用可以被开发为分布式应用或应用服务,其至少部分地从跨网络分布的计算资源操作和/或利用跨网络分布的计算资源。分布式应用可以例如在同一计算机网络上的多个服务器或设备上操作和/或与其通信。分布式应用在其操作中利用的数据可以分布在计算机网络中的多于一个服务器或设备上。在一些示例中,分布式应用可以被分成可由处理资源执行的单独的机器可读指令集。例如,分布式应用可以包括基于客户端的机器可读指令和基于服务器和/或云的机器可读指令。基于客户端的机器可读指令可以在客户端设备上操作,并且从服务器或从计算云环境访问数据,而基于服务器或云的机器可读指令可以处理数据。简而言之,分布式应用可以利用分布在网络中的不同位置处的计算资源,以便执行它们的特定任务或作业。
在开发这样的分布式应用时,接口设计可能是复杂的过程。具体地,接口设计可以被配置成提供外部开发者对应用编程接口(API)的访问,以便构建附加功能来驱动应用服务的效用。另外,接口设计可以被配置成将API抽象成在应用通过其操作的web浏览器的上下文内可容易地摘要的语法。
两种分布式应用开发方法可以包括利用表述性状态转移(REST)应用模型和GraphQL应用模型。REST应用模型可以包括用于利用在超文本传输协议(HTTP)内已经可用的语义来寻址资源的规范。客户端可以利用REST API来做出对可寻址的分布式资源的请求。利用REST API可以包括利用返回固定数据结构的多个端点。应用服务器可以翻译去往和来自由应用所利用的数据服务和利用该应用的客户端的请求。
GraphQL应用模型可以包括可以尝试通过提供可以用于向应用服务器查询其可用API的语法来向API提供自省的规范。客户端可以利用GraphQL做出针对可寻址资源的请求。GraphQL可以启用声明性数据提取。应用服务器可以将应用的数据请求移交给GraphQL服务器。GraphQL服务器可以暴露单个端点并且以客户端请求的数据来精确地响应。REST和GraphQL机制可以由开发者用来自省和操纵由应用托管的资源。
然而,分布式应用的大规模开发可能随之带来由应用利用的数据的多个真值源的存在的复杂性。例如,在企业内,可能存在跨组织和应用是不同的客户概念的多个表示。在一个示例中,营销团队具有作为销售工具的客户的视图,而运送、应收帐款、服务和支持等具有客户的不同和/或独特视图。在企业架构中合并所有这些视图可能是复杂的,因为每个组织及其应用都在不断地改变以适应新的特征和能力。此外,组织利用外部资源,诸如托管在客户关系管理计算公司中的客户数据,其可以进一步破坏该示例性企业内的客户的各种视图之间的相互融合。
合成这些各种视图可包括创建来自多个资源的分布式数据之间的关系和/或将来自多个数据资源的对象组合以形成单个资源视图。在REST的语义和GraphQL的语义二者中,没有支持资源的合成的固有机制。
可以在客户端处尝试合成。在客户端处合成分布式数据资源的多个视图可包括不同系统内的资源之间的客户端应用知道并相关的标识符。客户端也可以知晓组成数据的每个视图的相关元素以及如何正确地操纵该数据。因此,维护基于客户端的合成方案可以包括维护跨多个数据源的相关身份。在一些示例中,每对资源都可以潜在地具有唯一的相关性。维护基于客户端的合成方案还可包括当每个支持系统也是经受更新的实时系统时维护数据视图的一致性。因此,合成客户端可实现保持数据视图最新的机制。维护基于客户端的合成方案可包括同步跨每一数据服务的更新的操作,以确保原子操作和回滚事务的能力。另外,基于客户端的合成可包括维护在一个或多个数据服务改变其数据类型的定义时再现数据的准确表示中所涉及的基于客户端的应用代码。在基于web的分布式应用中维护基于客户端的合成方案可另外包括从二进制协议和/或API到web环境的转换的增加的复杂性。
可以在应用处尝试合成。基于应用的合成可以类似于基于客户端的合成,除了该合成发生在与该应用相关联的应用服务器内之外。这样,用于管理应用的上下文内的相关性和操作的计算智能。另外,应用可以充当服务和/或数据源之间的网关,否则这些服务和/或数据源将被限制直接访问。维护基于应用的合成方案可以包括创建随着时间的推移而连续维护的服务层冗余。当应用被用作与依赖于服务层冗余的其它预先存在的应用的接口时,服务层冗余的维护可以是相对较高优先级的。基于应用的合成还可包括实现保持数据视图最新的机制。
在基于客户端的和基于应用的合成模型二者中,合成可涉及如上所述的代表应用程序开发者的附加工作和维护。此外,子系统之间的每层或链接可包含其自己的一组复杂度和管理规范,诸如API语义、优选数据类型表示、用于访问数据的控制方法和/或用于保持数据完整性的措施。
与之相对,本公开的示例可以包括用于基于用于扩展模式模型的语法来合成分布式数据资源的模型。例如,根据本公开的系统可以包括处理资源和存储指令的存储器资源,所述指令可由处理资源执行以利用模式语言来扩展模式元素,利用模式语言来指定存在于多个源位置中的模式元素的源位置,利用模式语言来指定要基于源位置执行的定制动作,以及利用模式语言来指定对定制动作的多个依赖于源的语法。
图1是根据本公开的计算系统100的框图。计算系统100可以与图2中所示的计算系统220相同或不同。计算系统100可以包括能够与至少一个远程系统通信的至少一个计算设备。在图1的示例中,计算系统100包括处理资源102和计算机可读介质104。尽管以下描述涉及单个处理资源和单个计算机可读介质,但是所述描述也可以应用于具有多个处理资源和计算机可读介质的系统。在这样的示例中,指令可以跨多个计算机可读介质分布(例如,存储),并且指令可以跨多个处理资源分布(例如,由其执行)。
处理资源102可以是中央处理单元(CPU)、微处理器和/或适于检索和执行存储在计算机可读介质104中的指令的其他硬件设备。在图2所示的示例中,处理资源102可检索、执行和/或发送用于扩展模式元素的指令106、108和110。作为检索和执行指令的替代或附加于检索和执行指令,处理资源102可以包括电子电路,该电子电路包括用于执行计算机可读介质104中的指令的功能的多个电子组件。例如,处理资源102可以包括专用电路(ASIC)。关于本文描述和示出的可执行指令表示(例如,框),应当理解,包括在特定框内的可执行指令和/或电子电路的部分或全部可以被包括在图中所示的不同框中或未示出的不同框中。
计算机可读介质104可以是存储可执行指令的任何电子、磁性、光学或其他物理存储设备。因此,计算机可读介质104可以是例如随机存取存储器(RAM)、电可擦除可编程只读存储器(EEPROM)、存储驱动器、光盘等。计算机可读介质104可以被布置在系统100内,如图1所示。在这种情况下,可执行指令可以″安装″在系统100上。另外和/或替代地,计算机可读介质104可以是例如允许系统100从便携式/外部/远程存储介质下载指令的便携式、外部或远程存储介质。在这种情况下,可执行指令可以是″安装包″的一部分。如本文所述,计算机可读介质104可以被编码有用于扩展模式元素的可执行指令。
计算机可读介质104可以经由通信链路(例如,路径)114与处理资源102通信。通信链路114可以是对与处理资源102相关联的机器(例如,计算系统)本地的或远程的。本地通信链路114的示例可以包括机器(例如,计算系统)内部的电子总线,其中机器可读介质104是经由电子总线与处理资源102通信的易失性、非易失性、固定和/或可移除存储介质之一。
在本公开的一些示例中,指令106、108和110可以由处理资源102执行以利用模式语言来扩展模式元素。模式语言可包括如何存储数据以及如何将数据与数据存储内的其它数据相关的定义。例如,模式可包括诸如标准查询语言(SQL)等数据定义语言。模式元素可包括数据存储内的可寻址数据项或数据的表示。
基本模式元素可按照名称、数据类型及其在数据存储内的位置来定义数据元素。扩展模式元素可以包括提供除包含在基本模式中的那些定义之外的与模式语言中的数据检索相关的附加定义。附加定义可以促进数据元素的数据定位和编译。
参考图1,指令106在由处理器(例如,处理资源102)执行时可以使计算系统100利用模式语言来指定模式元素的源位置。模式元素的源位置可包括响应于所利用的模式语言中所包括的命令而在导出模式元素时要利用和/或从中提取的一个或多个数据源。例如,源位置可以包括数据库或数据服务。
在一些示例中,模式语言可以用于指定存在于多个源位置中的模式元素的源位置。例如,模式元素可包括存储在各种不同数据源中和/或源自各种不同数据源的数据。不同的数据源可以在不同的物理位置,具有不同的数据格式,并且利用不同的语法操作。
指定模式元素的源位置可以包括定义模式元素存储在和/或源自哪些数据源。指定模式元素的源位置可包括定义与模式元素存储在其中和/或源自的数据源相关联的类型。例如,定义类型可包括定义存储模式元素的数据的数据源是持久性类型存储器还是易失性类型存储器。
指定源位置可以包括将源位置定义为多个源位置的合成。多个源位置可以位于多个不同的资源域。将源位置定义为多个位置的合成可以包括指定与存储或提供模式元素的数据的不同数据源中的每一个相关联的多个不同资源域中的每一个。
参考图1,指令108在由处理器(例如,处理资源102)执行时可以使计算系统100使计算系统利用模式语言来指定要执行的动作。动作可以包括关于存储和/或提供模式元素的数据的数据源要采取的动作。动作的示例可以包括创建、读取、更新和/或删除动作。
模式可被用于指定定制动作。定制动作可包括对多个源位置中的每一个定制的动作的定义。例如,定制动作可以包括如何将以合成数据源的语法格式化的所请求的动作转换成以存储和/或提供模式元素数据的所合成的不同数据源中的每一个的语法格式化的特定动作的定义。
如上所述,源位置可以包括多个源位置的合成。因此,定制动作可以适合于多个源位置中的每一个。例如,存储和/或提供模式元素的数据的每个数据源可以包括用于对数据源执行动作的特定实现指令集和/或语法。定义定制动作可包括提供在模式语言内定制动作的转换,该模式语言专用于用于对数据源执行动作的特定实现指令集和/或语法。
参考图1,指令108在由处理器(例如,处理资源102)执行时可以使得计算系统100利用模式语言来对定制动作指定多个源相关的语法。对定制动作的语法可以是由存储和/或提供模式元素的数据的数据源支持的语法。由于模式元素的数据可以分布在不同的数据源之间,所以计算系统100可以指定与数据源中的相应数据源相对应的多个数据源相关语法。
模式可用于将定制动作从其原始语法或格式转换成一个或多个底层数据源所支持的语法或格式。所利用的模式可以通过指定适用于利用不同的语法的多个不同数据源中的每一个的定制动作的语法来转换定制动作。
在多个源位置的每一个处的主机可以利用一种语言。指定每个特定源位置(例如,在导出模式元素中使用的源位置)的源相关的语法可以包括识别在每个特定源位置处利用的语法。可以基于由在源位置处的主机使用的语言来选择用于特定源位置的源相关的语法。
在一些示例中,源位置可以与应用编程接口(API)相关联。API可以包括提供客户端设备和数据源之间的定义的通信方法的一组子例程定义、协议和/或工具。与特定源位置相关联的API可以利用特定语法。可以基于与源位置相关联的API所利用的语言来选择特定源位置的源相关的语法。
利用计算系统100可以提供将模式元素定义为其他资源的合成的机制。这样,模式元素可以被定义为跨越多个资源域(诸如不同的数据库服务器、其它API和其它数据存储介质)的数据源的合成。
另外,计算系统100可以提供定义多个数据源中的每一个特定的语法的机制。以这种方式,可以基于哪种语法和数据源格式允许以相对最高效的形式存储底层数据来选择由数据源利用的语法,所述相对最有效的形式诸如在时间序列模型内存储历史数据、在关系数据源内存储关系数据、在文档仓库内存储文档数据、或在存储器高速缓存模型内存储度量数据。可以做出语法和相对最高效的存储形式的确定,而不考虑对与客户端所利用的特定语法的兼容性的担心。
类似地,提供定义多个数据源中的每一个特定的语法的机制可以允许基于数据源的语法的资源访问中的偏差。该偏差不仅可以允许上述合成,而且还可以适应资源从一种数据源类型到另一种数据源类型的无缝迁移,而无需实现可由处理资源102执行以维护和/或更新数据源关系和调用惯例的低级指令。
提供定义多个数据源中的每一个特定的语法的机制可以允许实现允许应用调用跨越多个资源域的基于web的应用开发的通用模式语言。同样,计算系统100可以允许解析器的一般化,该解析器可以基于合成行为的模板定义来合成来自多个资源域的模式元素。
图2是根据本公开的计算系统220的框图。计算系统220可以与图1中所示的计算系统100相同或不同。计算系统220可以包括能够与至少一个远程系统通信的至少一个计算设备。在图2的示例中,计算系统220包括处理资源222和计算机可读介质224。尽管以下描述涉及单个处理资源和单个计算机可读介质,但是所述描述也可以应用于具有多个处理资源和计算机可读介质的系统。在这样的示例中,指令可以跨多个计算机可读介质分布(例如,存储),并且指令可以跨多个处理资源分布(例如,由其执行)。
处理资源222可以是中央处理单元(CPU)、微处理器和/或适于检索和执行存储在计算机可读介质224中的指令的其他硬件设备。在图2中所示的示例中,处理资源222可检索、执行和/或发送用于扩展模式元素的指令226、228和230。作为检索和执行指令的替代或附加于检索和执行指令,处理资源222可包括电子电路,所述电子电路包括用于执行计算机可读介质224中的指令的功能的多个电子组件。例如,处理资源222可以包括专用电路(ASIC)。关于本文描述和示出的可执行指令表示(例如,框),应当理解,包括在特定框内的可执行指令和/或电子电路的部分或全部可以被包括在图中所示的不同框中或未示出的不同框中。
计算机可读介质224可以是存储可执行指令的任何电子、磁性、光学或其他物理存储设备。因此,计算机可读介质104可以是例如随机存取存储器(RAM)、电可擦除可编程只读存储器(EEPROM)、存储驱动器、光盘等。计算机可读介质224可以被布置在计算系统220内,如图2所示。在这种情况下,可执行指令可以″安装″在计算系统220上。附加地和/或替代地,计算机可读介质244可以是例如允许计算系统220从便携式/外部/远程存储介质下载指令的便携式、外部或远程存储介质。在这种情况下,可执行指令可以是″安装包″的一部分。如本文所述,计算机可读介质224可以编码有用于扩展模式元素的可执行指令。
计算机可读介质224可以经由通信链路(例如,路径)232与处理资源222通信。通信链路232可以是对与处理资源222相关联的机器(例如,计算系统)本地的或远程的。本地通信链路232的示例可包括机器(例如,计算系统)内部的电子总线,其中机器可读介质224是经由电子总线与处理资源222通信的易失性、非易失性、固定和/或可移除存储介质之一。
参考图2,指令226在由处理器(例如,处理资源222)执行时可使计算系统220利用模式来定义模式元素的源。计算系统220可以利用模式语言元数据来定义模式元素的源。模式语言可以包括从应用到数据源的请求的定义和描述,其中请求的定义和描述利用特定语义格式或语法。模式语言的一个示例可以包括GraphQL接口定义扩展语言。模式语言可通过添加模式语言元数据来扩展。模式语言元数据可以包括模式语言中的数据,该数据没有定义或描述动作或在动作的执行中将要操纵的特定数据。例如,模式语言元数据可包括数据源位置的定义和/或是否模式元素的第一部分存储在易失性存储器中以及模式元素的第二部分存储在非易失性存储器中的规范。
计算系统220可以利用模式语言元数据来将模式元素的源定义为多个其他源的合成。将模式元素的源定义为多个其他源的合成可以包括将模式元素定义为在合成下面引用的模式的组合,那些引用的模式是与存储和/或提供模式元素的数据的各种数据源相关联的模式。例如,将模式元素定义为存储和/或提供模式元素的数据的其他数据源的合成可以包括定义其他数据源中的每一个的位置和/或存储器类型。
参考图2,指令228在由处理器(例如,处理资源222)执行时可使得计算系统220利用模式语言元数据来定义定制动作的第一语法以从多个其他源中的第一源导出模式元素。由于模式元素可被定义为存储和/或提供该模式元素的数据源的合成,因此用于导出模式元素的定制动作可被定向到多个数据源。
如上所述,多个其它数据源中的每一个可利用特定语法来操作。第一数据源的语法可以是与第二数据源所利用的语法不同的语法。这样,模式语言元数据可被用来识别由第一数据源利用的特定语法,并且因此识别定制动作应当被转换成以便从第一数据源导出模式元素的数据的语法。
参考图2,指令230在由处理器(例如,处理资源222)执行时可以使计算系统220利用元数据来定义关于从多个其他源中的第二源导出模式元素的定制动作的第二语法。如上所述,响应于定制动作,模式元素从其导出的多个数据资源中的每一个可以利用不同的语法来操作。在一个示例中,所识别的第一语法可以包括结构化查询语言(SQL)语法,而第二语法可以包括Javascript语法。
计算系统220可以利用模式语言元数据来将定制动作转换成由多个数据源中的每一个利用的语法,而不是以每个单独的语法来生成定制动作并将它们单独地传送给多个资源中的每一个。元数据可以提供定义以实现定制动作到多个其他源中的每一个的不同语法的转换。
计算系统220可以包括指令,当由处理器(例如,处理资源222)执行时,所述指令可以使计算系统220从模式语言元数据解析模式元素、定制动作以及第一和第二语法的多个源的合成定义。基于web的应用然后可以基于该模式元素、定制动作、以及第一和第二语法的多个源的解析的合成定义,从第一源和从第二源导出该模式元素。这样,计算系统220可以通过利用包括在模式语言的元数据扩展中的转换指令和定义,导致利用不同的语法从多个不同的源导出模式元素。因此,计算系统220可允许通过模式语言中的定义的表示来进行合成。这样,计算系统220可以消除在客户端处或在应用内的合成的复杂性,诸如创建、维护、更新和/或跨多个数据源同步相关性。
图3图示根据本公开的示例性方法340。方法340可以利用图1中的计算系统100和/或图2中的计算系统200来执行。在342,方法340可以包括确定对象的多个源位置。对象可以包括在从分布式应用到诸如服务器的数据源的请求中识别的元素。对象可包括要由分布式应用利用的数据的特定组成。对象可以跨多个源位置分布。
可以从其导出对象的源位置可以基于解析与请求的第一语法中的对象的定义相关联的元数据来确定。第一语法可以包括通过包括与对象相关联的元数据而扩展的基本模式语言。请求的模式语言可以用元数据来扩展,以便在识别多个源时使用。例如,该请求可以包括模式语言中的对象的动作和标识,并且可以根据模式语言扩展模板和/或与模式语言扩展相关联的语义方案用元数据来扩展模式语言。
在344处,方法340可以包括识别由多个源位置中的源位置利用的第二语法。第二语法可以是与第一语法不同和/或相异的语法。这样,在可以从源位置导出对象之前,可以将第一语法中指定的动作转换为第二语法。第二语法可以从处理对源的请求的API和/或由源位置处的主机利用的语言来识别。在一些示例中,可以识别存储和/或提供对象的数据的多个分布式源位置中的每一个的语法。
在346处,方法340可以包括识别包括在请求中的动作的转换。如上所述,请求可以包括元数据。元数据可以包括多个不同的语法。多个不同语法可以是由多个源位置利用的多个不同语法。例如,源位置可以被托管在利用不同的模式语言语法的不同的系统内。
元数据还可以包括以请求的语法指定的动作的转换。可以基于第二语法的转换模板将包括在请求中的动作从第一语法转换成第二语法。例如,转换模板可以包括以第二语法定义动作的适当格式的一组参数。转换模板可以包括与以第二语法的动作相对应的以其他语法的动作。转换模板可以包括用于将以第一语法的动作改变为第二上下文中的对应的适当格式化的动作的指令。
这样,元数据可以包括动作到多个不同语法的转换和其他翻译。在一个示例中,元数据可以用作到不同语法的动作转换的索引,所述语法可以被存储和/或提供请求中的对象的多个资源利用和理解。
如上所述,可以识别源位置所利用的第二语法,并且元数据可以包括请求中的动作到包括第二语法的各种语法的转换。因此,可以在元数据中定义包括在请求中的动作到第二语法的转换。这样,可以从请求的元数据中提供的定义来识别转换。可以是被多个转换,每一个对应于对象的不同源位置。
所识别的转换可被用于从多个源位置导出对象。例如,对于每个源位置,可以执行对应转换动作以导出对象。因此,可以利用不同的模式语言语法从在不同的系统内托管的多个源位置导出对象。
在一些示例中,动作可以包括与查询或订阅相对的变化。变化可以包括对诸如服务器的源位置上的数据的改变。该变化可包括对数据的改变,随后是全部在一次操作中改变的数据片段的提取。与之相对,查询可包括以只读方式获取数据的操作,而订阅可包括从诸如服务器的源位置得到数据的实时馈送的操作。在动作指定对对象的变化的情况下,可以形成对多个源位置的变化。例如,可以改变在每个源位置处存储和/或提供的数据。因此,可以基于包括到第二语法的转换的动作的多个转换来对多个源中的每一个执行变化。由于多个源中的每一个可以利用不同的语法,所以执行变化可以包括以特定于每个源位置的语法执行经转换的动作。
图4图示根据本公开的指令350。指令350可由诸如图1中的计算设备100和/或计算设备220的计算设备可执行。指令350可以包括以模式域语言格式化的请求。指令350可以包括源类型352。源类型352可以指定模式元素的数据的源的类型。源类型352可包括位置指示符,诸如″易失性″或″非易失性″,其指示存储和/或提供模式元素的数据的存储器的类型。源代码可以包括值指示符356。值指示符356可以以第一语法指定要采取的动作。
指令350还可以包括将值指示符356转换360-1...360-N成第二语法。值指示符356到第二语法的转换360-1...360-N可以是语法特定的。指令350可以包括语法指示符358-1...358-N,其指定与对应转换360-1...360-N相关联的语法。
图5图示根据本公开的指令370。指令370可由诸如图1中的计算设备100和/或计算设备220的计算设备可执行。指令370可以包括以模式域语言格式化的请求。例如,指令370可以包括GraphQL接口定义语言扩展。指令370可以包括源类型372。源类型372可以指定模式元素的数据的源的类型。源类型372可以包括位置指示符,诸如″易失性″或″非易失性″,其指示存储和/或提供模式元素的数据的存储器的类型。源代码可以包括值指示符374。值指示符374可以以第一语法指定要采取的动作。
指令370还可以包括值指示符374到第二语法的转换378-1...378-N。值指示符374到第二语法的转换378-1...378-N可以是语法特定的。指令370可以包括语法指示符380-1...380-N,其指定与对应的转换378-1...378-N相关联的语法。
在本公开的前述详细描述中,参考了形成本公开的一部分的附图,并且在附图中通过图示的方式示出了可以如何实践本公开的示例。充分详细地描述这些示例以使本领域普通技术人员能够实践本公开的示例,并且应当理解,可以利用其它示例,并且可在不脱离本公开范围的情况下作出过程、电学和/或结构上的改变。
本文中的图遵循编号惯例,其中第一数位对应于附图图号且其余数位识别附图中的元件或组件。在本文的各个图中示出的元件可以被添加、交换和/或消除,以便提供本公开的多个附加示例。另外,图中提供的元件的比例和相对尺度旨在说明本公开的示例,并且不应在限制意义上进行理解。如本文所使用的,指示符″N″,特别是相对于附图中的参考数字,指示如此指定的多个特定特征可以包括在本公开的示例中。指示符可以表示相同或不同数量的特定特征。此外,如本文所使用的,″多个″元件和/或特征可以指一个或多个这样的元件和/或特征。
如本文所使用的,″逻辑″是用于执行本文所描述的特定动作和/或功能等的替代或附加处理资源,与存储在存储器中并可由处理器执行的计算机可执行指令(例如,软件固件等)相对,其包括硬件,例如,各种形式的晶体管逻辑、专用集成电路(ASIC)等。

Claims (15)

1.一种系统,包括:
处理资源;以及
存储器资源,存储可由所述处理资源执行以进行以下操作的指令:
利用模式语言来指定存在于多个源位置中的模式元素的源位置;
利用模式语言来指定要执行的定制动作;以及
利用模式语言来向定制动作指定多个源相关语法。
2.根据权利要求1所述的系统,包括可由所述处理资源执行的指令以将源位置定义为多个源位置的合成。
3.根据权利要求2所述的系统,其中所述多个源位置位于多个不同资源域处。
4.根据权利要求1所述的系统,包括用于基于由源位置处的主机利用的语言来选择在导出模式元素中使用的多个源相关语法中的源相关语法的指令。
5.根据权利要求1所述的系统,包括用于基于与源位置相关联的应用编程接口(API)来选择在导出模式元素中利用的多个源相关语法中的源相关语法的指令。
6.一种非暂时性计算机可读介质,其包含可由处理资源执行以使所述处理资源进行以下操作的指令:
利用模式语言元数据来将模式元素的源定义为多个其他源的合成;
利用元数据来定义定制动作的第一语法,以从多个其他源中的第一源导出模式元素;以及
利用元数据来定义关于从多个其他源中的第二源导出模式元素的定制动作的第二语法。
7.根据权利要求6所述的非暂时性计算机可读介质,其中所述第一语法是结构化查询语言(SQL)语法。
8.根据权利要求7所述的非暂时性计算机可读介质,其中所述第二语法为Javascript语法。
9.根据权利要求6所述的非暂时性计算机可读介质,其中,所述元数据指定模式元素的第一部分被存储在易失性存储器中并且模式元素的第二部分被存储在非易失性存储器中。
10.根据权利要求6所述的非暂时性计算机可读介质,其中,所述模式语言是GraphQL接口定义语言扩展。
11.根据权利要求6所述的非暂时性计算机可读介质,其中,所述语法被基于网络的应用解析和利用,以从多个其它源导出模式元素。
12.一种方法,包括:
从与以请求的第一语法的对象的定义相关联的元数据确定对象的多个源位置;
识别由多个源位置中的源位置利用的第二语法;以及
识别在元数据中定义的、包括在请求中的动作到第二语法的转换。
13.根据权利要求12所述的方法,还包括基于用于第二语法的转换模板将包括在请求中的动作从第一语法转换成第二语法。
14.根据权利要求12所述的方法,还包括从多个源位置导出对象。
15.根据权利要求12所述的方法,还包括利用不同的模式语言语法从托管在不同系统内的多个源位置导出对象。
CN201780096786.3A 2017-10-12 2017-10-12 模式语法 Pending CN111373365A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2017/105829 WO2019071511A1 (en) 2017-10-12 2017-10-12 SYNTAX OF DIAGRAM

Publications (1)

Publication Number Publication Date
CN111373365A true CN111373365A (zh) 2020-07-03

Family

ID=66100234

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780096786.3A Pending CN111373365A (zh) 2017-10-12 2017-10-12 模式语法

Country Status (4)

Country Link
US (1) US20210191907A1 (zh)
EP (1) EP3676701B1 (zh)
CN (1) CN111373365A (zh)
WO (1) WO2019071511A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10558671B2 (en) * 2018-05-01 2020-02-11 Servicenow, Inc. Modified representational state transfer (REST) application programming interface (API) including a customized GraphQL framework

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101044472A (zh) * 2004-08-31 2007-09-26 国际商业机器公司 数据系统中的语义识别方法和系统
US20130304724A1 (en) * 2012-05-09 2013-11-14 Sap Ag Data Relations and Queries Across Distributed Data Sources
US20160162557A1 (en) * 2014-12-03 2016-06-09 Sas Institute Inc. System to convert semantic layer metadata to support database conversion

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7779396B2 (en) * 2005-08-10 2010-08-17 Microsoft Corporation Syntactic program language translation
US20100088686A1 (en) * 2008-10-06 2010-04-08 Microsoft Corporation Programming language with extensible syntax
CN101950294A (zh) * 2010-08-16 2011-01-19 无锡市浏立方科技有限公司 一种用于语义数据模型的描述性查询语言
US9177017B2 (en) * 2010-09-27 2015-11-03 Microsoft Technology Licensing, Llc Query constraint encoding with type-based state machine
US9959103B2 (en) * 2010-11-19 2018-05-01 Microsoft Technology Licensing, Llc Code deployment assistance

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101044472A (zh) * 2004-08-31 2007-09-26 国际商业机器公司 数据系统中的语义识别方法和系统
US20130304724A1 (en) * 2012-05-09 2013-11-14 Sap Ag Data Relations and Queries Across Distributed Data Sources
US20160162557A1 (en) * 2014-12-03 2016-06-09 Sas Institute Inc. System to convert semantic layer metadata to support database conversion

Also Published As

Publication number Publication date
EP3676701B1 (en) 2023-11-29
WO2019071511A1 (en) 2019-04-18
US20210191907A1 (en) 2021-06-24
EP3676701A1 (en) 2020-07-08
EP3676701A4 (en) 2021-04-07

Similar Documents

Publication Publication Date Title
CN110023923B (zh) 生成数据变换工作流
US10853338B2 (en) Universal data pipeline
US9342557B2 (en) Low latency query engine for Apache Hadoop
US9477731B2 (en) Background format optimization for enhanced SQL-like queries in Hadoop
US8904343B2 (en) Adding services to application platform via extension
CN104517181B (zh) 一种核电站企业内容管理系统及方法
US10203937B1 (en) Grand unified processor
CN113196231A (zh) 用于解耦对基础设施模型的访问的技术
JP2018067280A (ja) ソフトウェアサービスの実行のためのシステム、方法、及びプログラム
AU2017351024B2 (en) Processing application programming interface (API) queries based on variable schemas
CA2928316C (en) Facilitating communication between software components that use middleware
JP6754696B2 (ja) ヘテロジニアスコンピューティング環境におけるデータタイプ変換をサポートするためのシステムおよび方法
US11294901B1 (en) Isolating the performance of functions included in queries
CN111373365A (zh) 模式语法
US20140100840A1 (en) Systems and Methods for Creating Context Sensitive Graph Topologies Based on Multidimensional Context Information
US20200125569A1 (en) Method and system to implement sql macros
US9378468B2 (en) Generic boxed components for multi-client systems
CN110442629B (zh) 大数据多中心异构动态数据转换方法
Kricke et al. Preserving Recomputability of Results from Big Data Transformation Workflows: Depending on External Systems and Human Interactions
US20240078140A1 (en) APPLICATION PROGRAMMING INTERFACE (API) ENABLER FOR UPDATED APIs
US20240126759A1 (en) Converting an api into a graph api
US20230266947A1 (en) Rapid prototyping of user experience components and related application functionality
WO2020077526A1 (en) Method for cross-platform model transformation
US10467077B2 (en) Configuration item integrity
US9491115B1 (en) Providing service using run local daemon

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20200703

WD01 Invention patent application deemed withdrawn after publication