CN102866910A - 用元数据描述操作系统的本机应用编程接口 - Google Patents
用元数据描述操作系统的本机应用编程接口 Download PDFInfo
- Publication number
- CN102866910A CN102866910A CN2012103177396A CN201210317739A CN102866910A CN 102866910 A CN102866910 A CN 102866910A CN 2012103177396 A CN2012103177396 A CN 2012103177396A CN 201210317739 A CN201210317739 A CN 201210317739A CN 102866910 A CN102866910 A CN 102866910A
- Authority
- CN
- China
- Prior art keywords
- api
- operating system
- name
- application programming
- data file
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
- G06F9/4484—Executing subprograms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本机操作系统应用编程接口(API)被使用元数据描述,且这样的描述被以标准文件格式存储在已知的位置中。通过存储使用这样的元数据的API定义,其它应用可以容易地识别和使用API。为了创建这样的API表示,在开发期间,开发者描述API的形态,包括(但不限于)由API定义的类、接口、方法、属性、事件、参数、结构和枚举的类型。这个API描述通过用来生成机器可读的元数据文件的工具进行处理。所述机器可读的元数据文件包含与API描述相同的信息,然而在格式上被设计成是机器读取的而不是人创作的。
Description
背景技术
操作系统典型地具有几个应用编程接口,这些应用编程接口允许应用访问由操作系统支持的功能性。这样的API典型地由操作系统通过使用某种计算机编程语言中的命名文件或对象而被规定。例如,C编程语言使用可能具有诸如 “interface.h”那样的名字的首标文件。同样地,在C#中,称为“P/Invoke”签名的机制被使用来访问操作系统API。编写将利用操作系统API的计算机程序的人典型地在程序中包括对命名的API文件或对象的引用,或使用由编程语言提供的另一种机制。该程序于是例如包括按照由该API使用的语法的、对由该API定义的函数的调用(call)。
以这种方式定义的API不能由与它们被编写的语言不同的语言直接访问。为了使得用其他语言编写的程序可访问API,API 被“包装(wrap)”。这种包装典型地必须按API和按语言来人工地完成,并需要深入理解目标语言和API以及操作系统。因此,许多操作系统API是无法使用的。
发明内容
本概要被提供来以简化的形式介绍概念的选择,这些概念在下面的详细说明中被进一步描述。本概要既不打算确认所要求保护的主题的关键特征或必要特征,也不打算被使用来限制所要求保护的主题的范围。
本机操作系统应用编程接口(API)是通过使用元数据进行描述的,且这样的描述被以标准文件格式存储在已知的位置。通过存储使用这样的元数据的API定义,其它应用可以容易地识别和使用API。
为了创建这样的API表示,在开发期间,开发者描述API的形态(shape),包括(但不限于)由API定义的类、接口、方法、属性、事件、参数、结构和枚举的类型。这个API描述通过用来生成机器可读的元数据文件的工具进行处理的。机器可读的元数据文件包含与API描述相同的信息,然而在格式上被设计成是机器读取的而不是人创作的。例如,这种机器可读的元数据文件可以以ECMA-335 CLI格式被存储。
当操作系统被构建时,所有的个体的API描述都被编译成一个个元数据文件。这些元数据文件被组合在一起,以提供关于在系统内可用的所有API的全面的信息。这个组合的元数据被包括在操作系统映像(即,编译的二进制文件)中,以用于安装。例如,组合的系统元数据可以以ECMA-335 CLI格式被存储在一连串的元数据文件中,但具体的格式对于本发明是不重要的。这样,操作系统和它的API是自描述的。
通过具有这样的操作系统,即:用于其的API是用与编程语言无关的元数据充分描述的,有可能构建语言投射(projection),它是读取元数据并以另一种编程语言实现API的应用。例如,JavaScript解释器可包括这样的语言投射,并自动提供由JavaScript程序对操作系统API的访问。按照编译语言的程序可由包括这样的语言投射的编译器提供类似的访问。如果在后来的版本中,操作系统添加了新的API,则与该新版本一起分发的元数据使得应用能够立即利用新的功能性,而不用修改解释器或编译器。
因此,一方面,计算机的操作系统包括被存储在计算机存储媒体上的计算机程序指令,在其被处理设备处理时,指令处理器执行实现操作系统的操作。操作系统具有可由应用程序访问的一个或多个应用编程接口,用于为应用程序提供对由操作系统所实现的功能性的访问。元数据文件以机器可读的与编程语言无关的格式描述应用编程接口的命名的元素。命名的元素可以是或者包括各种各样的数据类型中的任何数据类型,诸如基本类型、枚举的类型、结构、委托(delegate)、接口、类、方法、属性和事件。元数据文件可包括对于应用编程接口的每个命名的元素的、位于名字空间中的标识符(或类型名称)。
在以下的说明中,参考了形成本说明的一部分的附图,且在图上,作为举例说明,显示了本技术的具体的示例性实现。应当理解,可以利用其它实施例以及可以做出结构的改变而不背离本公开内容的范围。
附图说明
图1是具有描述应用编程接口的元数据的示例性操作系统的框图。
图2是数据流程图,其图示用于构建具有描述应用编程接口的元数据的操作系统的开发工具的示例性实现。
图3是图示API描述文件可以如何被处理来生成元数据的例子的流程图。
图4是可以在其中实施这样的系统的示例性计算设备的框图。
具体实施方式
下面的段落提供在其中可以实施这样的操作系统的示例性操作环境。
参照图1,计算机系统100包括操作系统102,它与计算机硬件(见图4)相组合,提供在其上运行各种应用104的平台。应用作为由操作系统管理的进程被运行,它们消耗或者以别的方式可以访问由操作系统管理的计算机系统的资源,诸如文件等等。
操作系统提供被应用104访问的几个应用编程接口106。这些API 106用一个或多个元数据文件108进行描述。元数据文件108是操作系统的API或API们的、机器可读的、与编程语言无关的表示。正如下面描述的,这样的元数据文件可以从API描述文件被自动创建,因此允许自动生成操作系统的表面(surface)的,或全部API的、机器可读的、与编程语言无关的描述。与语言编译器和/或解释器(未示出)相组合,这样的元数据文件允许应用104以这样的方式被开发,即:其中操作系统API被以自然和自动的方式投射到编程语言。
在假设这个上下文后,将结合图2和3更详细地描述这样的操作系统的示例性实现。
在图2上,显示了用于应用开发的示例性数据流。应用编程接口描述文件200由开发者在开发过程—即编写实现操作系统的代码的过程—期间进行定义。
被使用来把用于操作系统的代码编译成要被安装到计算机系统上的可执行文件的构建工具202处理API描述文件,以生成元数据文件204。最后,构建工具202把元数据文件204组合成经组合的元数据文件206。
构建工具202的任何实现均依赖于编程语言和用于该API描述文件200的任何规范。这样的API描述文件200可以定义是函数或对象类或数据结构的接口,以及可以定义用于这样的接口的一个或多个方法、事件、属性、参数、数据类型、参数排序、异常(exception)等等。构建工具解析这样的API描述文件,识别接口的特性,以及把表示这样的特性的数据以机器可读的、与编程语言无关的格式存储在元数据文件中。
图3图示由构建工具执行的一般的示例性过程。构建工具访问300 API描述文件。它处理302该 API描述文件,识别API的命名的元素,诸如类、方法、数据类型、属性、事件、异常等等。识别的命名元素被映射304 到它的元数据表示。这个元数据表示被存储306在对应于该API描述文件的元数据文件中。直至该API描述文件被完全处理(如在308中确定的),才重复进行步骤302到308。在处理该API描述文件后,另一个API描述文件(如果有的话,如在310处确定的)被访问300,并且对于该文件来重复进行步骤302到308。当所有的API描述文件的处理均完成时,于是创建312复合的元数据文件。例如,经组合的系统元数据可以以ECMA-335 CLI格式被存储在一连串的元数据文件中,但具体的格式对于本发明是不重要的。这个经组合的元数据文件因此提供操作系统的表面――即可用的接口的――完全的、自动的、与编程语言无关的描述。
现在将描述可以在步骤304中使用的示例性映射。应当理解,就元数据的形式和结构均被使用来表示API中的命名元素来说,其它的映射也是可能的。在本示例性实现中,把API描述文件映射到元数据牵涉到首先识别API描述文件中的命名的元素。命名的元素可以是或者包括各种各样的数据类型的任何数据类型,诸如基本类型、枚举的类型、结构、委托、接口、类、方法、属性和事件。元数据文件可包括对于应用编程接口的每个命名的元素的、位于名字空间中的标识符(或类型名称)。
在这个实现中,每个命名的元素可以是或者可以包括各种各样的数据类型的任何数据类型,以及具有位于名字空间内的标识符。两个命名的元素可以具有相同的标识符,只要它们存在于分开的名字空间中即可。当规定API的API文件在诸如参数或结构体字段中使用命名的元素时,文件的作者可以使用完全受名字空间限制(namespace-qualified)的名称或短的标识符。如果使用短的标识符,则通过把短的标识符附加到当前的名字空间范围而在元数据中使用完全受名字空间限制的名称。通过使用这种机制,在元数据中,名称决不会有歧义。名字空间块可以在元数据中被使用,且这些块可以被嵌套,以避免在该块内每个命名的元素上明确地声明该名字空间。命名的元素可以用性质来加标签。示例性性质包括,但不限于,版本号、简单的标志,或者它们可以在参数中包含附加信息。
现在转向示例性表示细节,是基本类型的命名的元素可以用符合该基本类型的关键字、后跟在API描述文件中使用的标识符来表示,所述关键字诸如是布尔(Boolean)、字节、双、浮点、整型、长、短、字符、字符串、guid、句柄、错误状态等等。例如,表示被称为“回答”的值的布尔值将被表示为:
“Boolean Answer(布尔回答)”
数组的示例性表示如下。它具有关键字(诸如“array)、后跟标识符的一般形式。这后面跟随的是作为指针的值和数组中元素的数量的对。例如:
array [identifier]
{
[pointer]
[number of elements]
}
枚举的类型(“Enum”)的示例性表示如下。首先,它具有标识枚举的类型的关键字 “enum” 、后跟标识符的一般形式。标识符后面跟随的是枚举值的集合。像所有的类型一样,enum标识符在它们被包含在的名字空间内是唯一的。然而,enum值标识符可以仅仅在enum本身内是唯一的。
enum [identifier]
{
[value 1 identifier] [optional: = value], . . .
[value n identifier] [optional: = value]
}
作为例子,使用扑克牌的排列(ranking):
enum CardRank
{
Ace=1,
2, 3, 4, 5, 6, 7, 8, 9, 10, Jack, Queen, King
}
简单的数据结构类型(“struct(结构体)”)的示例性表示如下。首先,它具有结构类型说明符、后跟字段集合的一般形式,每个字段具有类型和标识符。像所有的类型一样,struct标识符在它们被包含在的名字空间内是唯一的。然而,struct字段标识符可以仅仅在struct本身内是唯一的。
[version([version number])]
struct [struct.identifier]
{
[field[1] type] [field[1] identifier];
[field[n] type] [field[n] identifier];
};
作为对于鼠标事件的自变量的结构体的具体例子:
[version(OS.version.number)]
struct MouseEventArgs
{
MouseButtons Buttons;
unsigned int Clicks;
unsigned int Delta;
Point Location;
}
接口的示例性表示是方法、属性或事件的集合。方法的实现可以在实现该接口的类中完成。除了共同的性质(attribute)以外,接口使用要被规定的UUID性质。接口可以“需要”另一个接口。这意味着如果构件实施给定的接口,则所有的“需要的”接口也由同一个构件实施。用于表示接口的示例性语法如下:
interface:
| attributes "interface" IDENTIFIER ':' IDENTIFER requires '{'interface_member_list'}'
requires:
| <empty>
| "requires" interface_list
interface_list:
| IDENTIFIER
| IDENTIFIER "," interface_list
interface_member_list:
| <empty>
| interface_member
| interface_member interface_member_list
interface_member:
| method
| property
| event
在本示例性实现中,在接口的表示的结尾处是方法、属性和/或事件。在这个例子中,接口可包含取得零个或更多个参数并返回单个类型的方法。方法的返回类型是HRESULT。参数具有名称和类型。参数用[in(入)]或[out(出)]性质被标记。可以有任何数量的输入和输出参数。对于所有的RIDL-支持的指针类型,参数可以被标记为既输入又输出。对于把HRESULT返回值映射到异常事件的语言,单个输出参数可以任选地用[retval]标记。在接口内的方法名称是唯一的。
同样在这个示例性实现中,可以出现类似于字段的属性,但所述属性与被使用来访问它们的放置(put)和得到(get)操作的输入和输出参数相关联。
接口支持事件,一种用于接口的当感兴趣的某些事情发生时通知感兴趣的各方的机制。所述表示包括添加方法的规范和去除方法的规范。添加方法具有作为事件委托类型的输入参数的第一参数和作为类型EventRegistrationToken的输出参数的第二参数。去除方法具有作为类型EventRegistrationToken的输入参数的第一参数。用于事件的事件委托类型本身具有作为到事件源――即发送这个事件的对象――的接口指针的第一参数。以下是显示委托类型MouseEventHandler可以如何被使用来声明接口事件的例子。
[eventadd] HRESULT MouseMove(
[in] MouseEventHandler *pMouse,
[out] EventRegistrationToken* token);
[eventremove] HRESULT MouseMove(
[in] EventRegistrationToken token)。
委托可以被表示为带有其签名匹配于委托规范的签名的单个方法启用(Invoke)的接口。该方法具有单个返回类型以及零个或更多个参数。委托的返回类型是HRESULT。参数具有名称和类型。参数被标记为输入或输出。可以有任意数量的输入和输出参数。对于把HRESULT返回值映射到异常事件的语言,单个输出参数可以任选地被标记为返回值。用于表示委托的示例性语法如下:
delegate:
| delegate_attributes "delegate" TYPE_IDENTIFIER IDENTIFIER '(' parameter_list ')'';'
应当理解,前文仅仅是API的元素可以如何在与编程语言无关的元数据中被表示的例子。可以使用各种各样的元数据表示。
通过具有这样的操作系统,即:用于其的API是用与编程语言无关的元数据充分描述的,有可能构建语言投射,它是读取元数据并以另一种编程语言实现API的应用。例如,JavaScript解释器可包括这样的语言投射,并自动提供由JavaScript程序对操作系统API的访问。按照编译语言的程序可以由包括这样的语言投射的编译器来提供类似的访问。
在目前描述了示例性实现后,现在将描述这样的系统被设计来在其中操作的示例性计算环境。以下的说明打算提供其中可以实施这种系统的适用的计算环境的概略的、一般的描述。所述系统可以通过许多通用或专用的计算硬件配置被实施。可以适用的熟知的计算设备的例子包括,但不限于,个人计算机、服务器计算机、手持或膝上型设备(例如,媒体播放器、笔记本电脑、蜂窝电话、个人数据助理、录音机)、多处理器系统、基于微处理器的系统、机顶盒、游戏控制台、可编程消费电子装置、网络PC、小型计算机、大型计算机、包括任何的上述系统或设备的分布式计算环境等等。
图4图示适用的计算系统环境的例子。该计算系统环境仅仅是适用的计算环境的一个例子,且不打算用来对这样的计算环境的使用或功能性的范围提出任何限制。该计算环境不应当被解释为具有涉及在示例性操作环境中图示的任一部件或部件组合的依赖性或要求。
参照图4,示例性计算环境包括计算机器,诸如计算机器400。在它的最基本的配置中,计算机器400典型地包括至少一个处理单元402和存储器404。该计算设备可包括多个处理单元和/或附加的共同处理单元,诸如图形处理单元420。取决于计算设备的确切配置和类型,存储器404可以是易失性(诸如RAM)、非易失性(诸如ROM、闪存等等)或这二者的某种组合。这种最基本的配置在图4上用虚线406图示。另外,计算机器400还可以具有附加的特征/功能性。例如,计算机器400还可以包括附加的存储装置(可拆卸的和/或非可拆卸的),包括,但不限于,磁盘或光盘或磁带。这样的附加的存储装置在图4上用可拆卸的存储装置408和非可拆卸的存储装置410图示。计算机存储媒体包括以任何方法或技术实施的、用于存储诸如计算机程序指令、数据结构、程序模块或其它数据那样的信息的易失性和非易失性的、可拆卸和非可拆卸的媒体。存储器404、可拆卸的存储装置408和非可拆卸的存储装置410都是计算机存储媒体的例子。计算机存储媒体包括,但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光学存储装置、盒式磁带、磁带、磁盘存储装置或其他磁存储设备、或可被使用来存储想要的信息并可以由计算机器400访问的任何其它介质。任何这样的计算机存储媒体可以是计算机器400的一部分。
计算机器400还可以包含通信连接412,其允许所述设备与其它设备通信。通信连接412是通信媒体的例子。通信媒体典型地以诸如载波或其它输送机制那样的调制的数据信号承载计算机程序指令、数据结构、程序模块或其它数据,并且通信媒体包括任何信息传递媒体。术语“调制的数据信号”是指这样的信号,即:该信号使它的特性中的一个或多个以这样的方式被设置或改变使得将信息编码在信号中,由此改变信号的接收设备的配置或状态。作为例子,而不是限制,通信媒体包括有线媒体,诸如有线网或直接连线的连接,以及包括无线媒体,诸如声学、RF、红外和其它无线媒体。
计算机器400可以具有各种输入设备414,诸如显示器、键盘、鼠标、笔、照相机、触摸输入设备等等。还可以包括输出设备416,诸如扬声器、打印机等等。所有的这些设备在本领域都是熟知的,在这里不需要详细讨论。
这样的具有描述应用编程接口的元数据的操作系统可以在软件的一般上下文中被实施,所述软件包括由计算机器处理的计算机可执行的指令和/或计算机解释的指令,诸如程序模块。通常,程序模块包括例行程序、程序、对象、构件、数据结构等等,它们在被处理单元处理时指令处理单元执行特定的任务或实施特定的抽象数据类型。本系统可以在分布式计算环境下被实践,其中任务是由通过通信网链接的远程处理设备执行的。在分布式计算环境中,程序模块可以位于包括存储器存储设备的本地和远端计算机存储媒体中。
在所附权利要求的前序中的术语 “制造品”、“过程”、“机器”、和“事物的组成”打算用来把权利要求限制到这样的主题,即所述主题被认为属于由35 U.S.C.§101中的这些术语定义的可专利主题的范围内。
这里描述的任何的或所有的前述替换实施例可以以想要的任何组合被使用来形成另外的混合实施例。应当理解,在所附权利要求中定义的主题不必限于上述的特定实现。上述的特定实现仅仅作为例子被公开。
Claims (10)
1.一种计算机器,包括:
处理器(402);
一个或多个计算机存储媒体(408,410,404);
被存储在计算机存储媒体中的计算机程序指令,当其被处理器处理时,指令处理器执行操作,其中该指令包括提供操作系统(102)的操作,应用通过该操作系统(102)来访问计算机器的资源,其中该操作系统提供:
应用程序(104)可访问的一个或多个应用编程接口(106),用于为应用程序提供对由操作系统实施的功能性的访问;以及
其中所述应用编程接口中的每个应用编程接口具有相关联的元数据文件(108),其中该元数据文件以机器可读的与编程语言无关的格式描述应用编程接口的元素。
2.权利要求1的计算机器,其中所述元数据文件包括对于应用编程接口的命名的元素的、位于名字空间中的标识符。
3.权利要求2的计算机器,其中命名的元素可以是一组基本数据类型中的一个。
4.权利要求3的计算机器,其中命名的元素还可以是接口、方法、属性和事件中的一个。
5.权利要求3的计算机器,其中命名的元素还可以是数据结构、枚举的类型和数组中的一个。
6.一种计算机实施的过程,包括:
接收数据文件,该数据文件定义用于为应用程序提供对由操作系统实施的功能性的访问的应用编程接口;和
为应用编程接口生成相关联的元数据文件,其中元数据文件以机器可读的与编程语言无关的格式描述应用编程接口的元素;以及
存储所述元数据文件作为操作系统的一部分。
7.权利要求6的计算机实施的过程,其中所述元数据文件包括对于应用编程接口的命名的元素的、位于名字空间中的标识符。
8.权利要求7的计算机实施的过程,其中命名的元素可以是一组基本数据类型中的一个。
9.权利要求8的计算机实施的过程,其中命名的元素还可以是接口、方法、属性和事件中的一个。
10.权利要求8的计算机实施的过程,其中命名的元素还可以是数据结构。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/223,291 US20130055291A1 (en) | 2011-08-31 | 2011-08-31 | Describing native application programming interfaces of an operating system with metadata |
US13/223291 | 2011-08-31 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102866910A true CN102866910A (zh) | 2013-01-09 |
Family
ID=47445791
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012103177396A Pending CN102866910A (zh) | 2011-08-31 | 2012-08-31 | 用元数据描述操作系统的本机应用编程接口 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20130055291A1 (zh) |
EP (1) | EP2751675A4 (zh) |
JP (1) | JP2014525622A (zh) |
KR (1) | KR20140067018A (zh) |
CN (1) | CN102866910A (zh) |
WO (1) | WO2013032505A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105511875A (zh) * | 2015-12-04 | 2016-04-20 | 福建星网锐捷网络有限公司 | 硬件资源的访问方法及装置 |
CN106445562A (zh) * | 2016-11-14 | 2017-02-22 | 用友网络科技股份有限公司 | 基于元数据的OpenAPI实现方法及OpenAPI实现装置 |
WO2017101727A1 (zh) * | 2015-12-18 | 2017-06-22 | 阿里巴巴集团控股有限公司 | 调用应用编程接口的方法和系统 |
CN112379951A (zh) * | 2020-11-19 | 2021-02-19 | 北京百度网讯科技有限公司 | 服务接口的访问方法、装置、电子设备和介质 |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10089119B2 (en) | 2009-12-18 | 2018-10-02 | Microsoft Technology Licensing, Llc | API namespace virtualization |
US8776094B2 (en) | 2011-08-11 | 2014-07-08 | Microsoft Corporation | Runtime system |
US8695021B2 (en) | 2011-08-31 | 2014-04-08 | Microsoft Corporation | Projecting native application programming interfaces of an operating system into other programming languages |
US8433697B2 (en) * | 2011-09-10 | 2013-04-30 | Microsoft Corporation | Flexible metadata composition |
US9830146B2 (en) | 2013-06-07 | 2017-11-28 | Microsoft Technology Licensing, Llc | API lifecycle platform and version management |
US10635504B2 (en) * | 2014-10-16 | 2020-04-28 | Microsoft Technology Licensing, Llc | API versioning independent of product releases |
US10394552B2 (en) | 2016-05-17 | 2019-08-27 | Dropbox, Inc. | Interface description language for application programming interfaces |
LU93300B1 (de) * | 2016-11-10 | 2018-06-18 | Phoenix Contact Gmbh & Co Kg Intellectual Property Licenses & Standards | Austausch von Echtzeitdaten zwischen Programmmodulen |
US10318254B2 (en) * | 2017-01-27 | 2019-06-11 | Oracle International Corporation | Integrating application features into a platform interface based on application metadata |
US10915377B2 (en) * | 2018-05-18 | 2021-02-09 | International Business Machines Corporation | Automatically building a web API definition from a microservice or web application |
US10754628B2 (en) * | 2018-11-02 | 2020-08-25 | Microsoft Technology Licensing, Llc | Extracting web API endpoint data from source code to identify potential security threats |
CN110780950B (zh) * | 2019-10-24 | 2024-02-20 | 深圳前海环融联易信息科技服务有限公司 | 接口元数据管理方法、装置、计算机设备及存储介质 |
CN111124471A (zh) * | 2019-12-20 | 2020-05-08 | 中国电子科技集团公司第二十八研究所 | 基于数据类型模板的仿真模型注册方法及计算机存储介质 |
CN113742094A (zh) * | 2020-05-31 | 2021-12-03 | 华为技术有限公司 | 一种api元数据确定方法、装置及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080034381A1 (en) * | 2006-08-04 | 2008-02-07 | Julien Jalon | Browsing or Searching User Interfaces and Other Aspects |
CN101344846A (zh) * | 2007-07-12 | 2009-01-14 | 株式会社日立制作所 | Gui应用程序开发支持装置和开发支持方法 |
CN101542436A (zh) * | 2006-12-01 | 2009-09-23 | 微软公司 | 开发分层平台组件 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3562435B2 (ja) * | 2000-04-12 | 2004-09-08 | 日本電気株式会社 | コンポーネントの自動生成装置 |
US20030188043A1 (en) * | 2002-03-27 | 2003-10-02 | Woodall Thomas R. | Two layer middleware architecture with an intermediate target independent interface |
US7846023B2 (en) * | 2003-03-27 | 2010-12-07 | Microsoft Corporation | Application-centric user interface techniques |
US7380235B1 (en) * | 2003-06-27 | 2008-05-27 | Microsoft Corporation | Application program interface call replay tool |
US20050091271A1 (en) * | 2003-10-23 | 2005-04-28 | Kasy Srinivas | Systems and methods that schematize audio/video data |
US7721254B2 (en) * | 2003-10-24 | 2010-05-18 | Microsoft Corporation | Programming interface for a computer platform |
US7392527B2 (en) * | 2003-12-10 | 2008-06-24 | Microsoft Corporation | Driver-specific context for kernel-mode shimming |
US7716246B2 (en) * | 2005-11-30 | 2010-05-11 | Microsoft Corporation | Dynamic mechanism for providing metadata |
US20070156913A1 (en) * | 2005-12-30 | 2007-07-05 | Hiroyuki Miyamoto | Method for enabling extension points through plug-ins |
KR101528853B1 (ko) * | 2007-12-14 | 2015-07-01 | 삼성전자주식회사 | Api 서비스 방법과 api 매쉬업 생성 방법, 장치 및기록매체 |
-
2011
- 2011-08-31 US US13/223,291 patent/US20130055291A1/en not_active Abandoned
- 2011-10-11 KR KR1020147005375A patent/KR20140067018A/ko not_active Application Discontinuation
- 2011-10-11 JP JP2014528373A patent/JP2014525622A/ja active Pending
- 2011-10-11 WO PCT/US2011/055700 patent/WO2013032505A1/en active Application Filing
- 2011-10-11 EP EP11871602.6A patent/EP2751675A4/en not_active Withdrawn
-
2012
- 2012-08-31 CN CN2012103177396A patent/CN102866910A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080034381A1 (en) * | 2006-08-04 | 2008-02-07 | Julien Jalon | Browsing or Searching User Interfaces and Other Aspects |
CN101542436A (zh) * | 2006-12-01 | 2009-09-23 | 微软公司 | 开发分层平台组件 |
CN101344846A (zh) * | 2007-07-12 | 2009-01-14 | 株式会社日立制作所 | Gui应用程序开发支持装置和开发支持方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105511875A (zh) * | 2015-12-04 | 2016-04-20 | 福建星网锐捷网络有限公司 | 硬件资源的访问方法及装置 |
CN105511875B (zh) * | 2015-12-04 | 2019-01-29 | 福建星网锐捷网络有限公司 | 硬件资源的访问方法及装置 |
WO2017101727A1 (zh) * | 2015-12-18 | 2017-06-22 | 阿里巴巴集团控股有限公司 | 调用应用编程接口的方法和系统 |
CN106445562A (zh) * | 2016-11-14 | 2017-02-22 | 用友网络科技股份有限公司 | 基于元数据的OpenAPI实现方法及OpenAPI实现装置 |
CN112379951A (zh) * | 2020-11-19 | 2021-02-19 | 北京百度网讯科技有限公司 | 服务接口的访问方法、装置、电子设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
US20130055291A1 (en) | 2013-02-28 |
KR20140067018A (ko) | 2014-06-03 |
JP2014525622A (ja) | 2014-09-29 |
WO2013032505A1 (en) | 2013-03-07 |
EP2751675A1 (en) | 2014-07-09 |
EP2751675A4 (en) | 2015-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102866910A (zh) | 用元数据描述操作系统的本机应用编程接口 | |
CN102866884B (zh) | 将本机应用编程接口投射到其他编程语言的方法和设备 | |
KR101807897B1 (ko) | 크로스―플랫폼 어플리케이션 프레임워크 | |
CN100559346C (zh) | 用于实例化抽象类的系统和方法 | |
CN108292231B (zh) | 从数据生成应用的方法和系统 | |
Deitel | Java how to program | |
CN101263486B (zh) | 利用属性来标识和过滤可插入功能 | |
CN103718155A (zh) | 运行时系统 | |
Van der Linden | Just Java 2 | |
CN102591710A (zh) | 共享对象表示 | |
Deitel et al. | Java SE 8 for programmers | |
De Smet | C# 4.0 Unleashed | |
Norris | APPLICATIONS OF COMPUTER SOFTWARE LANGUAGES | |
Elrom | Force Charts: Part 2 | |
Ludin | Learn BlackBerry 10 App Development: A Cascades-Driven Approach | |
Zaa et al. | Apex Design Patterns | |
Deitel | C++ for Programmers | |
Sanghera | SCJP Exam for J2SE 5: A Concise and Comprehensive Study Guide for Sun Certified Java Programmer Exam | |
Seth et al. | Evolution of Technology through Procedural, Object Oriented, and Component Based to Service Oriented |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C05 | Deemed withdrawal (patent law before 1993) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20130109 |