CN101002170A - 用于实现一般的应用程序接口的系统和方法 - Google Patents

用于实现一般的应用程序接口的系统和方法 Download PDF

Info

Publication number
CN101002170A
CN101002170A CNA2005800249329A CN200580024932A CN101002170A CN 101002170 A CN101002170 A CN 101002170A CN A2005800249329 A CNA2005800249329 A CN A2005800249329A CN 200580024932 A CN200580024932 A CN 200580024932A CN 101002170 A CN101002170 A CN 101002170A
Authority
CN
China
Prior art keywords
api
mapping
application
rule
program product
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
CNA2005800249329A
Other languages
English (en)
Other versions
CN100504769C (zh
Inventor
唐海涛
珀特里·波伊奥南
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.)
Nokia Oyj
Original Assignee
Nokia Oyj
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 Nokia Oyj filed Critical Nokia Oyj
Publication of CN101002170A publication Critical patent/CN101002170A/zh
Application granted granted Critical
Publication of CN100504769C publication Critical patent/CN100504769C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/445Program loading or initiating
    • 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/4482Procedural
    • G06F9/4484Executing subprograms
    • G06F9/4486Formation of subprogram jump address

Abstract

公开了与应用程序接口(API)有关的系统和方法。该方法涉及把应用连接到通用API的计算机实现的方法。该方法包括:在API中接收映射请求,该映射请求是由应用触发的;从向该API注册的一组映射模块中选择一个或多个候选映射模块;访问表示该应用与一个或多个映射模块之间的关联的至少一条信息和规则;以及基于该信息和规则选择与该应用一起使用的一个或多个目标映射模块。

Description

用于实现一般的应用程序接口的系统和方法
技术领域
本发明涉及软件。更特别地,本发明涉及用于提供通用应用程序接口的系统和方法。
背景技术
应用程序为计算设备提供用来执行包括起草文件、与其它设备通信、准备幻灯片、定位信息等多种任务的能力。应用程序是有组织的指令列表,当执行时,使计算机按预定方式运行。为执行应用程序而进行的准备处理可以包括使用汇编程序、编译程序、解释程序或翻译程序,这取决于实现语言。
应用程序接口(API)是应用程序可以引用以访问支持系统或网络服务的软件调用和例程的形式化集合。API是由计算机操作系统或由应用程序规定的特有方法,其中编写应用程序的程序员通过其向操作系统或者向另一个应用程序发起请求。API通常也接收来自操作系统或另一个应用程序的请求,并且把这些请求路由到适合的应用程序。
操作系统是安装在计算机上的低级软件,用于处理与外围硬件的接口,调度任务,分配内存,并且在没有运行应用程序时向用户显示默认界面。内核是操作系统的核心部分,其负责资源分配、低级硬件接口连接以及安全等。通过使用统称为API的函数,操作系统使得应用程序可以利用这些资源。这些函数通常是按照向应用程序员提供什么资源或服务进行分组的。因此,例如,一个API的目的可以在于计算系统安全服务。例如,安全服务API为应用程序员提供对多种基础密码机制上的安全服务的统一访问,其实现方法是,在执行身份认证、消息完整性保护和消息私密性保护的安全机制上提供一个抽象层。
应用程序通过调用各API函数请求资源。同时,API函数作为向应用程序回传操作系统提供的消息和信息的手段。API是在源代码级定义的,API提供应用程序和内核或其它应用程序之间的抽象层,以确保从一台机器到另一台机器的代码的可移植性,因此,提供平台独立性。API也可以提供高级语言与较低级实体和服务之间的接口,在编写该较低级实体和服务时没有考虑高级程序语言所支持的调用规则。在这种情况中,API的主要任务可以是把参数列表从一种格式翻译成另一种格式,以及在一个方向或两个方向上解释传值调用和引用调用自变量。调用规则是用于过程或函数调用的自变量的安排,以至通过接口传送的数据映射到合适的参数。不同的编程语言可能要求按照从左到右或从右到左的顺序把自变量推送到堆栈中或输入到寄存器中,调用者或被调用者可以负责按照合适的顺序从堆栈或寄存器中删除自变量。调用规则还确定是否允许可变数目的自变量。
API提供常用功能性以满足特定基础需求。API的使用通过提供可能是对与该API对接的未知操作系统或应用程序的通用接口,缩短了编程时间并增加了应用程序的可靠性。因此,API提供了应用程序在具有不同软件和硬件配置的不同计算设备上的可移植性和更广泛的使用并隐藏了其复杂性。
通用API提供已经实现的用来满足特定基础需求的常用功能性。这些通用API提供用于特定应用实现的常用起点,因此减少了编程时间,并且增加了根据该通用API构造的特定实现的可靠性。从前,通用API是由行业团体为满足特定应用领域而开发的。例如,通用安全服务应用程序接口(GSS-API)为应用程序员提供对多种基础密码机制上的安全服务的统一访问。GSS-API在执行身份认证、消息完整性保护和消息私密性保护的安全机制上提供一个抽象层。GSS-API允许调用程序对主要身份进行身份认证,给对端授权,并且以每条消息为基础应用诸如保密性和完整性的安全服务。
然而,需要的是能够把任何一种实现连接到通用API而非仅诸如安全服务的特定应用领域的常用方法。另外,需要的是当有几个实现可用于同一目的时,选择特定API实现的常用方法。
除上述之外,当通用接口支持不同的独立的软件模块实现的模块使用时,可能需要通过该接口提供事务处理的能力,该事务处理包括不同实现的多个原子或可逆操作。然而,当前并没有用于根据当前可用的软件模块实现动态创建事务处理的可用机制。
发明内容
本发明的典型实施例涉及把应用连接到通用应用程序接口(API)的计算机实现的方法。该方法包括:在API中接收映射请求,该映射请求是由应用触发的,从向该API注册的一组映射模块中选择一个或多个候选映射模块,访问表示该应用与一个或多个映射模块之间的关联的至少一条信息和规则,以及基于该信息和规则选择与该应用一起使用的一个或多个目标映射模块。
本发明的另一个实施例涉及应用程序接口(API)系统。该系统包括:模块注册,其适合于管理与一个或多个应用关联的映射模块的连接、分离和跟踪;以及映射模块选择器,其适合于响应于应用触发的映射请求,协助一个或多个映射模块的选择。
本发明的另一个实施例涉及电子设备,其具有一个或多个应用程序,适合于执行该应用程序的处理器以及应用程序接口(API)。该API包括:模块注册,其适合于管理与一个或多个应用关联的映射模块的连接、分离和跟踪;以及映射模块选择器,其适合于响应于应用触发的映射请求,协助一个或多个映射模块的选择。
本发明提供超越常规系统的许多益处。例如,本发明提供用于动态创建单一软件实现内的或多个实现中的事务处理的通用机制。本发明的软件实现不需要知道事务处理的概念。当环境或需求改变时,可以“实时在线地”动态地修改事务处理。最后,借助本发明,一般的API提供的服务自动地、透明地适合于周围环境(亦即,注册的软件模块)。
通过审查以下附图、详细说明书和所附权利要求书,本发明的其它主要特征和优势对本领域的熟练技术人员是显然的。
附图说明
以下参照附图描述典型实施例,其中相同数字表示相同元件。
图1是说明根据本发明的某一实施例的示例计算机系统的框图;
图2是说明根据本发明的某一实施例的API安排的框图;
图3是根据某一实施例的映射模块选择处理的图示实例;
图4是更详细地说明图3的映射模块选择处理的流程图;
图5是说明模块分离处理的实施例的流程图;
图6是说明模块连接处理的实施例的流程图;以及
图7是表示根据本发明的通用API、管理API、核心功能性、数据存储区域和各软件模块实现的布局的图示。
具体实施方式
API提供应用与内核或其它应用程序与低级实体和服务之间的抽象层,该抽象层协助软件从一个计算设备到另一个的移植性。API供编写应用程序的程序员使用,从而定义到操作系统或另一个应用程序或系统服务的接口,而无需理解该操作系统、应用程序或系统服务的细节。这些元素可以是用不同形式实现的,但是程序员仅需关心其接口。因此,程序员专注于作为该API之输入所需的信息以及由该API输出的信息。
通用API是提供少许非常一般化的操作和参数的一般化的API。这些操作一般包括但不限于,生成并处理错误代码的操作,以及处理用来向应用通知模块或API生成的事件的通用事件服务的操作。API可以提供用来交付实现特有的参数集的通用部分。
服务质量(QoS)允许网络管理员有效地使用其现有资源,并在不快速扩张其网络或甚至超额备付其网络的情况下确保关键应用得到高质量的服务。QoS跨越网络运行,并且向应用分配诸如带宽的资源。该分配是这样确定的,使某些应用具有高于其它种类的应用的优先权。QoS使得管理员可以控制其网络,因此,有能力向其客户提供更好的服务。例如,可以确保关键任务应用的资源以在可接受的时间段内完成其事务处理。需要某些级别的QoS的应用可以粗略地分类为定性应用或定量应用。定量应用具有需要多少QoS的明确需求。定性应用需要某级别的QoS,但是网络管理员必须确定它们需要多少QoS才能正确执行。两个常用类型的定量应用是视频流传输和IP电话。视频流传输需要足够带宽,从而分组损失不会使图像降级。清楚地标识该通信量,以阻止它进入该网络的某些部分,如低容量链路也是所希望的。例如,MPEG-2流可能需要4兆比特每秒(Mbps)的带宽。IP电话是不能容忍等待时间的应用的经典示例。如果会话不能保持其实时特性,则从客户的观点看该服务是无用的。定性应用需要某级别的QoS,但是管理员必须决定如何满足那些需求。诸如SAP的ERP应用属于该类别。它们生成的通信量不会以连续流的方式出现,而是在一个时间段内出现的一连串事务处理。常用需求是某种等待时间保证,从而一组事务处理在例如1秒内出现。如何满足该需求是由管理员决定的。
图1说明其中可以实现根据本发明的某一实施例的API的系统。系统20可以是计算机系统或包含有处理器和操作系统的许多设备中的任何一个。系统20包括处理器22,处理器22执行来自一个或多个应用程序24、API26和其它设备、模块或其它软件的指令,外加处理器22本身包含的其它指令。在用户请求诸如移动设备的终端启动应用程序24之后,可以打开应用程序24以便执行。应用程序24和API26可以由同一处理器22执行。可选地,应用程序24和API26可以由不同处理器执行。应用程序24和API26可以是用相同或不同的计算机语言编写的,计算机语言包括但不限于,高级语言、脚本语言和汇编语言等。另外,可以用专用计算机、逻辑电路或硬件电路实现应用程序24和API26操作。因此,应用程序24和API26可以是用硬件、固件、软件或这些方法之任意组合实现的。
图2说明根据本发明的某一实施例的API的安排。在该安排中,API26包括用于协助特定函数的操作的多种组件,该特定函数与应用程序24的适合实现的管理和选择有关。诸如应用程序24和管理应用32的应用是仅在API26的观点上的应用。例如,应用26、32可以是诸如web浏览器的传统应用,或诸如数据链路或网络层的开放系统互连(OSI)层中的软件组件。
API26包括通用操作模块28以提供通用服务集。如上所述,此类服务可以是上下文特有的服务。通用操作模块28使这些服务可用于诸如应用程序24的一个或多个应用程序。
管理API模块30是在API26内提供的。管理API模块30与诸如管理应用32的一个或多个管理应用对接,以输入API26可能需要的数据,用于API26提供的各种功能的管理。
API26的所示实施例对应用程序24的实现的管理和选择提供支持。在一个实施例中,API26包含执行各种管理和选择功能的例程。具体地,所示实施例包括用于映射模块注册36、映射模块选择40和映射支持42的例程。通过与各个实现关联的一个或多个映射模块38a-c,可以表示各种实现。
映射模块注册例程36提供映射模块38a-c的管理。例如,正如下面参照图5和图6详细描述的那样,映射模块注册例程36可以管理映射模块38a-c的连接和分离。关于这一点,一旦在注册的映射模块38a-c与诸如应用程序24的应用程序之间建立联系或关联,映射模块注册例程36就向应用程序提供映射模块状态和警告。因此,正如图2中的虚线表示的那样,映射模块注册例程36可以直接或间接地监控每个映射模块38a-c。
由于特定实现不是通用API的一部分,所以提供映射模块38a-c以在相关通用API操作与特定实现的操作之间进行映射。当特定实现变得可用时,可以添加或连接映射模块38a-c。同样地,当删除特定实现时,也可以删除一个或多个映射模块38a-c或使其分离。当特定实现变得可用或删除了特定实现时,映射模块注册例程36将把相应映射模块38a-c的状态更新为例如可用或不可用。也可以通知所有的关联应用。因此,映射模块注册例程36用于经由统一接口容易地连接或分离映射模块38a-c,并且能够在不与现有实现发生联系的情况下容易地修改新型的实现。
当例如应用请求时,API26也可以提供映射模块38a-c之间的透明切换。映射模块38a-c可以通过提供如即将不能为任何一个应用服务的有关状态变换的信息,来协助透明切换处理。为了支持透明切换,API可能需要足够的信息以选择新的映射模块38a-c。在API26内提供内部控制接口45以提供系统接口,系统接口为API26内的实体提供足够的服务,以便在需要时请求各种系统状态信息。
映射模块选择例程40用于为应用程序24选择适合的映射模块38a-c。映射模块选择例程40进行的选择把一个或多个映射模块38a-c和应用程序24关联起来,由此选择特定实现。关于这一点,以下参照图3和图4描述选择处理的实施例。
映射模块选择例程40可以基于规则集运行。该规则可以由诸如管理应用32的管理应用通过管理API模块30来指定以及动态更新。该规则可以是通过基于文本的编码表示的,可以分析基于文本的编码以便在运行时动态选择,或者它们是可以在某些运行时环境中执行的二进制规则。当收到时,可以把规则存储到从API的角度看的内部数据存储或外部数据存储中,如数据库44中。
在模块连接处理期间,管理应用32可以从诸如数据存储器的内部或外部实体中动态提取规则。例如,连接映射模块38a-c可以提供足够的信息以允许管理应用确定提取什么和从哪里提取。
因此,映射模块选择例程40可以应用指定规则以便基于特定输入选择映射模块。可以根据特定需求和要求选择规则的结构。各映射模块38a-c可以使用不同的结构。以下提供示例结构:
switch(<应用表达式>){
case<表达式1>:动作1
case<表达式2>:动作2
case<表达式3>:动作3
case<表达式4>:动作4
default:动作d
}
每个“动作”可以是代码或步骤序列。因此,在具有默认“动作”的情况下,该结构为每个给定表达式提供选择结果。基于分析的表达式和动作,可以生成并安装运行时选择。例如,在上面的示例中,“应用表达式”可以是“流传输,带宽=96kbps,对传输无额外支付”。因此,可以用以下方式表示填充的结构:
switch(<流传输,带宽=96kbps,对传输无额外支付>)
{
case<对传输无额外支付>:
  if WLAN可用
   <选择WLAN>
  else
    <指示选择故障>
   end
case″带宽>256kbps″:动作2
default:<指示选择故障>
}
因此,可以在通用API之外保持选择规则的复杂性。此外,可以动态更新选择规则,并且可以在下次选择时应用该规则。
再次参照图2,提供映射支持42,目的是和与特定实现关联的映射模块38a-c一起工作,以便把通用API的各种操作和特定实现关联起来。关于这一点,映射支持42可以适合于访问数据库44或其它数据存储,以获取与该映射有关的信息。数据库44可以对于API26是内部的或外部的。因此,在添加新的实现或连接新的映射模块38a-c时,映射模块38a-c可以把为特定实现指定的操作和数据库44中列出的通用API的现有操作关联起来。如果映射支持42注意到在映射模块38a-c与API操作之间不能关联所有操作,则映射支持42可以充当它们之间的关联代理,以便从API和映射模块38a-c两者的角度实现关联。
现在参照图3,将描述单个映射模块选择处理的示例。请注意,多个映射模块的选择也是可能的,也是受支持的,例如,用于负载平衡目的。可以在以上参照图2描述的映射模块选择例程40中实现并由其执行此类选择处理50。在图3的左侧显示处理50,并且在图3的右侧显示映射模块60的结果集。当应用触发新的映射请求时处理50开始(块52)。这可以导致正在识别的一个或多个映射模块的识别。例如,图3说明其中识别出5个模块M1-M5作为候选的示例。
接着,处理50请求附加选择信息以缩小可能性(块54)。可以把该请求发送到适合于提供系统状态信息的内部控制接口。系统状态信息可以例如提供用于选择的上下文,从而允许消除作为可能性的某些候选模块。该系统状态信息可以包括例如各映射模块38a-c上的对应接口的状态,所以在该选择处理中可以消除带有禁用或非活动接口的所有映射模块。在所示示例中,此时消除作为可能性的映射模块M2和M4。
接着,处理50搜索存储的选择规则(块56)。如上所述,选择规则可以或者存储在API内或者存储在外部数据存储中。
基于选择规则,可以为特定实现选择单个映射模块(块58)。在所示示例中,选择映射模块M5。一旦做出选择,就存储把该实现和选择的映射模块关联起来的选择信息,以便将来使用。
在某些实施例中,如果指示应用具有多模块支持,则可以选择多个映射模块供应用使用。
正如图3所示的那样,如果选择处理导致多个映射模块(亦即,选择规则不能选择单个候选),则可以请求应用帮助以协助单个映射模块的选择。可选地,可以应用默认首选项集以选择剩余模块中的一个模块。
图4更详细地说明上面描述的处理。请注意,所描述的处理仅是用于示例的例子,并且取决于实现,可以执行其它步骤作为该处理的一部分。此外,对于不同的实施例,可以改变这些步骤的排序。认为此类变更在本发明的范围内。
当应用触发映射请求时处理70开始(块72)。在块74中,确定是否为该应用注册了不止一个模块。如果确定仅注册了一个模块,则选择该唯一模块(块92),并且该处理完成。
如果在块74中的确定指示存在不止一个映射模块作为该应用的特定实现的候选,则该处理转到块76,并且通过内部控制接口获取系统数据。基于在块76中获取的信息,确定是否需要重新定义候选映射模块集(块78)。如果需要重新定义,则重新定义用于候选模块的标准(块80),并且该处理转到块81。如果在块78中的确定指示不需要重新定义,则该处理跳过块80,转到块81。
在块81中,确定是否仍然有不止一个候选模块。如果该确定指示仅一个剩余模块,则处理70可以选择该唯一模块(块92),并且该处理终止。
如果在块81中的确定指示仍然有不止一个候选映射模块,则处理70搜索并获取选择规则(块82)。如上所述,该选择规则可以存储在该API的内部或外部数据存储中,如数据库中。
基于在块82中获取的搜索规则,确定是否需要重新定义候选映射模块集(块84)。如果需要重新定义,则重新定义用于候选模块的标准(块86),并且该处理转到块88。如果在块84中的确定指示不需要重新定义,则该处理跳过块86,转到块88。
在块88中,该处理确定是否仍然有不止一个映射模块作为该应用的候选。如果确定仅有一个候选,则该处理进行到块92,选择该唯一映射模块。如果在块88中仍然有不止一个映射模块作为候选,则处理70转到块90,在块90中,基于可用信息选择单个映射模块作为最好的目标。因此,选择了用于特定实现的单个映射模块。
图5说明用于分离映射模块的处理的实施例。可以用图2所示的映射模块注册例程36执行此处理。当API请求或检测到分离时处理100开始(块102)。确定要分离的模块是否有任何活动映射(块104)。例如,活动映射可以包括除请求分离的应用之外的一个或多个应用对该映射模块的访问。
如果确定不存在活动映射,则处理100转到块110。如果在块104中确定存在活动映射,则处理100搜索带有活动映射的应用(块106)。然后,通过例如警告,向具有活动映射的各应用程序通知正在分离该映射模块(块108)。
在块110中,该处理执行模块特有的功能性。例如,该映射模块特有的功能性可以包括受控高速缓存的清除。因此,在分离模块时,可以进一步处理与分离模块关联的高速缓存,并且不能忽略。
在块112中,该处理执行通用功能性。通用功能性是所有映射模块常用的。例如,这些功能性包括映射模块的注销。
图6说明用于生成诸如映射模块的连接或分离的事件的处理的实施例。正如上面参照图5描述的处理那样,可以用图2所示的映射模决注册例程36执行处理120。当API请求或检测到事件时处理120开始(块122)。事件可以是由模块生成的,如模块的连接或分离期间出现的事件。
在其它实施例中,事件可以是由应用生成的。例如,如果QoS应用确定某一参数被超过或被减至低于预定阈值,则该应用可以生成要向其它应用转发的事件。该事件可以允许或指示其它应用调整其功能性,以适应该参数值的变化。
确定生成该事件的映射模块或与应用生成的事件关联的映射模块是否有任何活动映射(块124)。如果确定不存在活动映射,则处理120终止。如果在块124中确定存在活动映射,则处理120搜索带有活动映射的应用(块126)。然后,向具有活动映射的各应用转发该事件(块128)。
在块130中,该处理执行事件特有的功能性。这些功能性可以是该事件和该映射模块特有的。因此,如果两个模块生成相同事件,则该处理可以基于不同的模块执行不同的功能性。例如,如果事件表示去往正在进行的流应用的数据流的中断,则该应用使用的压缩程序/解压缩程序(codec)的反应可以与其它压缩程序/解压缩程序的反应不同。某些压缩程序/解压缩程序可能适合该中断,而其它压缩程序/解压缩程序可能请求该应用程序切换到不同的压缩程序/解压缩程序。因此,每个压缩程序/解压缩程序需要不同的映射模块。
图7是一个示意布局,表示通用API、管理API、核心功能性、数据存储区域和多个软件模块实现之间的一般关系。核心功能性提供经由通用API为应用提供的服务与软件模块实现特有的操作之间的间接引用(indirection)。应用服务与安装的(可用的)软件实现之间的映射是动态地、实时在线地执行的。通常,该信息存储在数据存储区中,在图7中,把数据存储区描绘为在核心功能性部分内。经由管理API,可修改该信息,并且位于该系统之内部或外部的实体可以使用该信息。当该系统之外部的实体使用该信息时,使用外部信令的方式。
本发明的一个实施例的实现一般如下。作为例子,假设为应用提供的服务是f1(),f2()和f3()。另外,对于本例,假设模块具有以下操作:
模块-1:01,02,03
模块-2:04,05
模块-3:06,07
模块-1可以提供对3G访问的支持,模块-2可以提供对4G访问的支持并且模块-3可以提供诸如授权、身份认证等的与安全有关的服务,从而人们可以获得访问。核心功能性可以提供映射到各注册的软件模块实现的对应操作的伪操作。例如,这些伪操作可以如下:
A:身份认证
B:授权
C:通用无线技术访问
D:可选无线技术访问
可以考虑两种服务。第一服务fl()用于一种无线技术上的单个访问。第二服务f2()用于多种无线技术上的多路访问。可以按如下方式映射这些服务。用“[]”标记可选操作,用“{}”标记操作的列表。
f1()=A+[B]+C+[D]
f2()=A+[B]+{C+[D],C+[D],...,C+[D]}
软件模块实现知道这些伪操作,因为在注册期间它们需要向核心功能性部分提供足够的信息。下表表示软件模块实现与提供的API服务之间的映射。
    模块     操作     伪操作
    模块-1     01     C
    模块-1     02     D
    模块-1     03     -
    模块-2     04     C
    模块-2     05     C
    模块-3     06     A
    模块-3     07     B
此时,模块-1的03操作没有伪操作类,指示将不使用它作为事务处理的一部分。
当应用调用f1()服务时,按照以下顺序执行以下伪操作。用括号表示对应的实操作:A(06),B(07),C(04+05)。伪操作B被定义为可选操作。然而,因为它有对某些实现的操作的现有映射,所以执行它。操作D也被定义为可选操作。因为模块-2是基于首选项集使用的(亦即,如果可用的话总是使用4G而非3G),并且因为它不提供用于伪操作类D的有效操作,所以忽略它。
当应用调用f2()服务用于多路访问时,按以下顺序执行以下伪操作:A(06),B(07),C(04+05),C(01),D(02)。如前所述,B被定义为可选操作,但是因为它有对某些实现的操作的现有映射,所以执行它。如果用于该服务的对应实操作的某一操作失败,则整个服务失败,并且有关回滚(暗示/明示)发生。
请注意,诸如“模块”或“例程”的术语是相对于某些实施例使用在这里的。本领域的熟练技术人员懂得,在其它实施例中,此类术语系指用硬件、软件、固件或其它方式实现本发明。此外,可以分割由一个模块或例程执行的功能,以便由两个或更多模块或例程执行。同样地,可以组合由两个或更多模块或例程执行的功能,以便由单个模块或例程执行。认为所有此类变更均在本发明的范围内。
尽管公开了本发明的特定实施例,但是应该懂得,各种不同修改和组合都是可能的,并且认为其均在所附权利要求书的实质和范围内。因此,其意图并不限于本文提供的准确抽象和公开。

Claims (53)

1.一种通过使用通用应用程序接口(API)把应用连接到映射模块的计算机实现的方法,该方法包括:
a)在API中接收映射请求,所述映射请求是由应用程序触发的;
b)从向所述API注册的一组映射模块中选择一个或多个候选映射模块;
c)访问表示所述应用与一个或多个映射模块之间的关联的至少一条信息和规则;以及
d)基于所述至少一条信息和规则选择与所述应用一起使用的一个或多个目标映射模块。
2.如权利要求1的方法,其中步骤b)包括应用预定规则集。
3.如权利要求2的方法,其中所述预定规则集包括应用类型与所述候选映射模块的关联。
4.如权利要求1的方法,其中步骤c)包括通过内部控制接口提取系统数据。
5.如权利要求1的方法,其中步骤c)包括从数据库中提取规则。
6.如权利要求5的方法,其中所述数据库包含在所述API中。
7.如权利要求5的方法,其中所述规则包括所述API内的预定规则。
8.如权利要求1的方法,还包括:
基于所述选择一个或多个目标映射模块,把该通用API的操作映射并关联到具体实现。
9.如权利要求1的方法,还包括:
访问一个或多个管理应用以获得用于管理一个或多个API函数的数据。
10.如权利要求9的方法,其中所述访问步骤包括使用管理API模块来访问所述一个或多个管理应用。
11.如权利要求10的方法,其中管理API模块包含在所述API中。
12.如权利要求1的方法,还包括:
更新模块注册以记录所述应用程序与在步骤d)中选择的一个或多个目标映射模块之间的关联。
13.如权利要求1的方法,其中所述信息和规则适合于进行动态更新。
14.如权利要求13的方法,其中所述信息和规则包括在运行时进行分析的基于文本的编码。
15.如权利要求13的方法,其中所述信息和规则包括在运行时进行分析的基于二进制的编码。
16.如权利要求1的方法,其中该信息和规则把操作和用于该一个或多个映射模块的伪操作关联起来。
17.一种程序产品,包括用于使机器执行以下方法步骤的机器可读程序代码:
a)接收映射请求,所述映射请求是由应用触发的;
b)从一组注册的映射模块中选择一个或多个候选映射模块;
c)访问表示所述应用与一个或多个映射模块之间的关联的至少一条信息和规则;以及
d)基于所述至少一条信息和规则选择与所述应用一起使用的一个或多个目标映射模块。
18.如权利要求17的程序产品,其中步骤b)包括应用预定规则集。
19.如权利要求18的程序产品,其中所述预定规则集包括应用类型与所述候选映射模块的关联。
20.如权利要求17的程序产品,其中步骤c)包括通过内部控制接口提取系统数据。
21.如权利要求17的程序产品,其中步骤c)包括从数据库中提取规则。
22.如权利要求21的程序产品,其中所述数据库包含在API中。
23.如权利要求21的程序产品,其中所述规则包括API内的预定规则。
24.如权利要求17的程序产品,还包括用于使机器执行以下方法步骤的机器可读程序代码:
基于所述选择一个或多个目标映射模块,把该通用API的操作映射并关联到具体实现。
25.如权利要求17的程序产品,还包括用于使机器执行以下方法步骤的机器可读程序代码:
访问一个或多个管理应用以获得用于管理一个或多个API函数的数据。
26.如权利要求25的程序产品,其中所述访问步骤包括使用管理API模块来访问所述一个或多个管理应用。
27.如权利要求26的程序产品,其中管理API模块包含在所述API中。
28.如权利要求17的程序产品,还包括用于使机器执行以下方法步骤的机器可读程序代码:
更新模块注册以记录所述应用与在步骤d)中选择的一个或多个目标映射模块之间的关联。
29.如权利要求17的程序产品,其中所述信息和规则适合于进行动态更新。
30.如权利要求29的程序产品,其中所述信息和规则包括在运行时进行分析的基于文本的编码。
31.如权利要求29的程序产品,其中所述信息和规则包括在运行时进行分析的基于二进制的编码。
32.如权利要求17的程序产品,其中该信息和规则把操作和用于该一个或多个映射模块的伪操作关联起来。
33.一种应用程序接口(API)系统,包括:
模块注册,其适合于管理与一个或多个应用关联的映射模块的连接、分离和跟踪;以及
映射模块选择器,其适合于响应于应用触发的映射请求,协助一个或多个所述映射模块的选择。
34.如权利要求33的系统,其中所述映射模块选择器适合于应用预定规则集。
35.如权利要求34的系统,其中所述预定规则集包括应用类型与一个或多个候选映射模块的关联。
36.如权利要求33的系统,其中所述映射模块选择器适合于通过内部控制接口提取系统数据。
37.如权利要求33的系统,其中所述映射模块选择器适合于从数据库中提取规则。
38.如权利要求35的系统,其中所述数据库包含在所述API中。
39.一种电子设备,包括:
一个或多个应用程序;
适合于执行所述应用程序的处理器;以及
应用程序接口(API),所述API包括:
模块注册,其适合于管理与所述一个或多个应用关联的映射模块的连接、分离和跟踪;以及
映射模块选择器,其适合于响应于应用触发的映射请求,协助一个或多个所述映射模块的选择。
40.如权利要求39的电子设备,其中所述映射模块选择器适合于应用预定规则集。
41.如权利要求40的电子设备,其中所述预定规则集包括应用类型与一个或多个候选映射模块的关联。
42.如权利要求39的电子设备,其中所述映射模块选择器适合于通过内部控制接口提取系统数据。
43.如权利要求39的电子设备,其中所述映射模块选择器适合于从数据库中提取规则。
44.如权利要求43的电子设备,其中所述数据库包含在所述API中。
45.如权利要求39的电子设备,其中所述电子设备是移动设备。
46.一种把事件和一个或多个应用关联起来的计算机实现的方法,该方法包括:
a)确定事件是否和一个或多个活动映射模块相关联,每个映射模块表示API实现;
b)识别与所述一个或多个活动映射模块关联的一个或多个应用;以及
c)向所述一个或多个应用通知所述事件。
47.如权利要求46的方法,其中所述事件是映射模块的连接和分离中的至少一个。
48.如权利要求46的方法,其中所述事件是由应用生成的。
49.如权利要求46的方法,还包括:
d)基于所述事件执行所述应用的功能性。
50.一种程序产品,包括用于使机器执行以下方法步骤的机器可读程序代码:
a)确定事件是否和一个或多个活动映射模块相关联,每个映射模块表示API实现;
b)识别与所述一个或多个活动映射模块关联的一个或多个应用;以及
c)向所述一个或多个应用通知所述事件。
51.如权利要求50的程序产品,其中所述事件是映射模块的连接和分离中的至少一个。
52.如权利要求50的程序产品,其中所述事件是由应用生成的。
53.如权利要求50的程序产品,还包括用于使机器执行以下方法步骤的机器可读程序代码:
d)基于所述事件执行所述应用的功能性。
CNB2005800249329A 2004-05-28 2005-05-27 用于实现一般的应用程序接口的系统和方法 Expired - Fee Related CN100504769C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/857,157 2004-05-28
US10/857,157 US20050268308A1 (en) 2004-05-28 2004-05-28 System and method for implementing a general application program interface

Publications (2)

Publication Number Publication Date
CN101002170A true CN101002170A (zh) 2007-07-18
CN100504769C CN100504769C (zh) 2009-06-24

Family

ID=35426910

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005800249329A Expired - Fee Related CN100504769C (zh) 2004-05-28 2005-05-27 用于实现一般的应用程序接口的系统和方法

Country Status (7)

Country Link
US (1) US20050268308A1 (zh)
EP (1) EP1769337A1 (zh)
JP (1) JP2008501173A (zh)
CN (1) CN100504769C (zh)
BR (1) BRPI0512207A (zh)
CA (1) CA2568565A1 (zh)
WO (1) WO2005116821A1 (zh)

Cited By (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102057353A (zh) * 2008-06-04 2011-05-11 微软公司 用于并行数据的可配置划分
CN105871913A (zh) * 2016-06-02 2016-08-17 北京元心科技有限公司 身份认证方法及系统
CN107743616A (zh) * 2015-04-08 2018-02-27 亚马逊技术有限公司 提供应用编程接口代理服务的端点管理系统
CN108696575A (zh) * 2017-04-10 2018-10-23 艾拉物联公司 物联网平台中设备的第三方应用控制
US11010188B1 (en) 2019-02-05 2021-05-18 Amazon Technologies, Inc. Simulated data object storage using on-demand computation of data objects
US11099917B2 (en) 2018-09-27 2021-08-24 Amazon Technologies, Inc. Efficient state maintenance for execution environments in an on-demand code execution system
US11119826B2 (en) 2019-11-27 2021-09-14 Amazon Technologies, Inc. Serverless call distribution to implement spillover while avoiding cold starts
US11119809B1 (en) 2019-06-20 2021-09-14 Amazon Technologies, Inc. Virtualization-based transaction handling in an on-demand network code execution system
US11126469B2 (en) 2014-12-05 2021-09-21 Amazon Technologies, Inc. Automatic determination of resource sizing
US11132213B1 (en) 2016-03-30 2021-09-28 Amazon Technologies, Inc. Dependency-based process of pre-existing data sets at an on demand code execution environment
US11146569B1 (en) 2018-06-28 2021-10-12 Amazon Technologies, Inc. Escalation-resistant secure network services using request-scoped authentication information
US11159528B2 (en) 2019-06-28 2021-10-26 Amazon Technologies, Inc. Authentication to network-services using hosted authentication information
US11190609B2 (en) 2019-06-28 2021-11-30 Amazon Technologies, Inc. Connection pooling for scalable network services
US11243953B2 (en) 2018-09-27 2022-02-08 Amazon Technologies, Inc. Mapreduce implementation in an on-demand network code execution system and stream data processing system
US11263034B2 (en) 2014-09-30 2022-03-01 Amazon Technologies, Inc. Low latency computational capacity provisioning
US11354169B2 (en) 2016-06-29 2022-06-07 Amazon Technologies, Inc. Adjusting variable limit on concurrent code executions
US11360793B2 (en) 2015-02-04 2022-06-14 Amazon Technologies, Inc. Stateful virtual compute system
US11388210B1 (en) 2021-06-30 2022-07-12 Amazon Technologies, Inc. Streaming analytics using a serverless compute system
US11461124B2 (en) 2015-02-04 2022-10-04 Amazon Technologies, Inc. Security protocols for low latency execution of program code
US11467890B2 (en) 2014-09-30 2022-10-11 Amazon Technologies, Inc. Processing event messages for user requests to execute program code
US11550713B1 (en) 2020-11-25 2023-01-10 Amazon Technologies, Inc. Garbage collection in distributed systems using life cycled storage roots
US11561811B2 (en) 2014-09-30 2023-01-24 Amazon Technologies, Inc. Threading as a service
US11593270B1 (en) 2020-11-25 2023-02-28 Amazon Technologies, Inc. Fast distributed caching using erasure coded object parts
US11714682B1 (en) 2020-03-03 2023-08-01 Amazon Technologies, Inc. Reclaiming computing resources in an on-demand code execution system
US11836516B2 (en) 2018-07-25 2023-12-05 Amazon Technologies, Inc. Reducing execution times in an on-demand network code execution system using saved machine states
US11861386B1 (en) 2019-03-22 2024-01-02 Amazon Technologies, Inc. Application gateways in an on-demand network code execution system
US11875173B2 (en) 2018-06-25 2024-01-16 Amazon Technologies, Inc. Execution of auxiliary functions in an on-demand network code execution system
US11943093B1 (en) 2018-11-20 2024-03-26 Amazon Technologies, Inc. Network connection recovery after virtual machine transition in an on-demand network code execution system
US11968280B1 (en) 2021-11-24 2024-04-23 Amazon Technologies, Inc. Controlling ingestion of streaming data to serverless function executions

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8528058B2 (en) 2007-05-31 2013-09-03 Microsoft Corporation Native use of web service protocols and claims in server authentication
EP2245835A2 (en) 2008-02-08 2010-11-03 Ecrio, Inc. System, method and apparatus for controlling multiple applications and services on a digital electronic device
US9269059B2 (en) 2008-03-25 2016-02-23 Qualcomm Incorporated Apparatus and methods for transport optimization for widget content delivery
US9110685B2 (en) * 2008-03-25 2015-08-18 Qualcomm, Incorporated Apparatus and methods for managing widgets in a wireless communication environment
US9600261B2 (en) 2008-03-25 2017-03-21 Qualcomm Incorporated Apparatus and methods for widget update scheduling
US9069575B2 (en) 2008-03-25 2015-06-30 Qualcomm Incorporated Apparatus and methods for widget-related memory management
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
GB2502337A (en) * 2012-05-25 2013-11-27 Ibm System providing storage as a service
US9785350B2 (en) * 2013-02-21 2017-10-10 Seagate Technology Llc Data storage device having a virtual machine
CN104796797B (zh) * 2014-01-16 2018-11-20 深圳市双翼科技有限公司 光线路终端的后台管理方法及装置
US10635504B2 (en) 2014-10-16 2020-04-28 Microsoft Technology Licensing, Llc API versioning independent of product releases
US9876880B2 (en) * 2014-12-05 2018-01-23 Red Hat, Inc. Creation of a binding based on a description associated with a server
US9733999B1 (en) 2016-03-24 2017-08-15 Wells Fargo Bank, N.A. Dynamic optimization of application workflows
CN113392034B (zh) * 2021-08-17 2021-10-15 北京安普诺信息技术有限公司 Api自发现方法和基于此的测试覆盖率统计方法及装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6507857B1 (en) * 1999-03-12 2003-01-14 Sun Microsystems, Inc. Extending the capabilities of an XSL style sheet to include components for content transformation
US6643652B2 (en) * 2000-01-14 2003-11-04 Saba Software, Inc. Method and apparatus for managing data exchange among systems in a network
US6795868B1 (en) * 2000-08-31 2004-09-21 Data Junction Corp. System and method for event-driven data transformation
US6816865B2 (en) * 2001-04-18 2004-11-09 International Business Machines Corporation Process for data driven application integration for B2B
US7047535B2 (en) * 2001-07-30 2006-05-16 International Business Machines Corporation Method, system, and program for performing workflow related operations using an application programming interface
CA2404552C (en) * 2001-09-21 2008-12-09 Corel Corporation System and method for secure communication
US7370335B1 (en) * 2001-11-29 2008-05-06 Vignette Corporation System and method for providing a public application program interface
US20030133554A1 (en) * 2002-01-11 2003-07-17 Nokia Corporation System and method for facilitating access to network based services
US20030189589A1 (en) * 2002-03-15 2003-10-09 Air-Grid Networks, Inc. Systems and methods for enhancing event quality
EP1414211A1 (en) * 2002-10-23 2004-04-28 Sony International (Europe) GmbH Software architecture for capability and quality-of-service negotiations and session establishment for distributed multimedia applications
US7454007B2 (en) * 2004-03-26 2008-11-18 Samsung Electronics Co., Ltd. Telecommunication switch using generic API to support multiple protocol-specific signal control functions

Cited By (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8806426B2 (en) 2008-06-04 2014-08-12 Microsoft Corporation Configurable partitioning of parallel data for parallel processing
CN102057353A (zh) * 2008-06-04 2011-05-11 微软公司 用于并行数据的可配置划分
US11561811B2 (en) 2014-09-30 2023-01-24 Amazon Technologies, Inc. Threading as a service
US11467890B2 (en) 2014-09-30 2022-10-11 Amazon Technologies, Inc. Processing event messages for user requests to execute program code
US11263034B2 (en) 2014-09-30 2022-03-01 Amazon Technologies, Inc. Low latency computational capacity provisioning
US11126469B2 (en) 2014-12-05 2021-09-21 Amazon Technologies, Inc. Automatic determination of resource sizing
US11461124B2 (en) 2015-02-04 2022-10-04 Amazon Technologies, Inc. Security protocols for low latency execution of program code
US11360793B2 (en) 2015-02-04 2022-06-14 Amazon Technologies, Inc. Stateful virtual compute system
CN107743616B (zh) * 2015-04-08 2022-03-01 亚马逊技术有限公司 提供应用编程接口代理服务的端点管理系统
CN107743616A (zh) * 2015-04-08 2018-02-27 亚马逊技术有限公司 提供应用编程接口代理服务的端点管理系统
US11132213B1 (en) 2016-03-30 2021-09-28 Amazon Technologies, Inc. Dependency-based process of pre-existing data sets at an on demand code execution environment
CN105871913A (zh) * 2016-06-02 2016-08-17 北京元心科技有限公司 身份认证方法及系统
US11354169B2 (en) 2016-06-29 2022-06-07 Amazon Technologies, Inc. Adjusting variable limit on concurrent code executions
CN108696575A (zh) * 2017-04-10 2018-10-23 艾拉物联公司 物联网平台中设备的第三方应用控制
CN108696575B (zh) * 2017-04-10 2022-07-15 艾拉物联网络(深圳)有限公司 物联网平台中用于生成适配器模板的方法和系统
US11875173B2 (en) 2018-06-25 2024-01-16 Amazon Technologies, Inc. Execution of auxiliary functions in an on-demand network code execution system
US11146569B1 (en) 2018-06-28 2021-10-12 Amazon Technologies, Inc. Escalation-resistant secure network services using request-scoped authentication information
US11836516B2 (en) 2018-07-25 2023-12-05 Amazon Technologies, Inc. Reducing execution times in an on-demand network code execution system using saved machine states
US11099917B2 (en) 2018-09-27 2021-08-24 Amazon Technologies, Inc. Efficient state maintenance for execution environments in an on-demand code execution system
US11243953B2 (en) 2018-09-27 2022-02-08 Amazon Technologies, Inc. Mapreduce implementation in an on-demand network code execution system and stream data processing system
US11943093B1 (en) 2018-11-20 2024-03-26 Amazon Technologies, Inc. Network connection recovery after virtual machine transition in an on-demand network code execution system
US11010188B1 (en) 2019-02-05 2021-05-18 Amazon Technologies, Inc. Simulated data object storage using on-demand computation of data objects
US11861386B1 (en) 2019-03-22 2024-01-02 Amazon Technologies, Inc. Application gateways in an on-demand network code execution system
US11119809B1 (en) 2019-06-20 2021-09-14 Amazon Technologies, Inc. Virtualization-based transaction handling in an on-demand network code execution system
US11714675B2 (en) 2019-06-20 2023-08-01 Amazon Technologies, Inc. Virtualization-based transaction handling in an on-demand network code execution system
US11190609B2 (en) 2019-06-28 2021-11-30 Amazon Technologies, Inc. Connection pooling for scalable network services
US11159528B2 (en) 2019-06-28 2021-10-26 Amazon Technologies, Inc. Authentication to network-services using hosted authentication information
US11119826B2 (en) 2019-11-27 2021-09-14 Amazon Technologies, Inc. Serverless call distribution to implement spillover while avoiding cold starts
US11714682B1 (en) 2020-03-03 2023-08-01 Amazon Technologies, Inc. Reclaiming computing resources in an on-demand code execution system
US11593270B1 (en) 2020-11-25 2023-02-28 Amazon Technologies, Inc. Fast distributed caching using erasure coded object parts
US11550713B1 (en) 2020-11-25 2023-01-10 Amazon Technologies, Inc. Garbage collection in distributed systems using life cycled storage roots
US11388210B1 (en) 2021-06-30 2022-07-12 Amazon Technologies, Inc. Streaming analytics using a serverless compute system
US11968280B1 (en) 2021-11-24 2024-04-23 Amazon Technologies, Inc. Controlling ingestion of streaming data to serverless function executions

Also Published As

Publication number Publication date
JP2008501173A (ja) 2008-01-17
US20050268308A1 (en) 2005-12-01
CN100504769C (zh) 2009-06-24
EP1769337A1 (en) 2007-04-04
BRPI0512207A (pt) 2008-02-19
WO2005116821A1 (en) 2005-12-08
CA2568565A1 (en) 2005-12-08

Similar Documents

Publication Publication Date Title
CN100504769C (zh) 用于实现一般的应用程序接口的系统和方法
US8478350B2 (en) Distribution method, operation method and system of application system in mobile communication network
KR101311978B1 (ko) 멀티-포맷 메시지들을 파싱하기 위한 스키머-기반 동적파스/빌드 엔진
US6199100B1 (en) Interactive computer network and method of operation
US7548982B2 (en) Predictive branching and caching method and apparatus for applications
CN102930431B (zh) 支付服务器和支付通道标识方法
US7302681B2 (en) Method and system for customized information handling system support updates
CN111866158B (zh) 路由方法、装置、计算机设备和存储介质
CN110598093B (zh) 一种业务规则管理方法及装置
JP2002007182A (ja) 外部記憶装置の共有ファイル管理方式
US20060095432A1 (en) Disclosure control system and method
US8566408B2 (en) Method and system for providing a stateful experience while accessing content using a global textsite platform
US20080212763A1 (en) Network-based methods and systems for responding to customer requests based on provider presence information
EP2187318A1 (en) Performance optimized retrieve transformation nodes
US20040177017A1 (en) Distributed system and brokering method using context
US8073796B2 (en) Obtaining a value via a rule engine implemented by a collection object
KR20020051569A (ko) 지니 홈 네트워크 서비스 관리시스템 및 그의 제어방법
US7716343B2 (en) System and method for operating a networked software application on a network with sporadic connectivity
CN107679871A (zh) 名单管理方法、装置、系统以及计算机可读存储介质
KR20210128096A (ko) 사물인터넷 플랫폼 간 연동 방법 및 장치
CN110266596A (zh) 消息处理方法、装置、设备及计算机可读存储介质
KR20040024581A (ko) 이동 단말기로부터 통신 네트워크로의 액세스를 관리하는시스템 및 장치
US7222164B1 (en) Device and method to load commands in an integrated circuit card
KR101596588B1 (ko) 단말 간 어플리케이션 설치 이력 이전 시스템, 설치 이력 이전 방법 및 이를 위한 장치
CN103634326B (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
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090624

Termination date: 20120527