CN106547524A - 一种用于软件调用的方法和装置 - Google Patents

一种用于软件调用的方法和装置 Download PDF

Info

Publication number
CN106547524A
CN106547524A CN201510601067.5A CN201510601067A CN106547524A CN 106547524 A CN106547524 A CN 106547524A CN 201510601067 A CN201510601067 A CN 201510601067A CN 106547524 A CN106547524 A CN 106547524A
Authority
CN
China
Prior art keywords
call
call request
message
log
result
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
CN201510601067.5A
Other languages
English (en)
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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201510601067.5A priority Critical patent/CN106547524A/zh
Publication of CN106547524A publication Critical patent/CN106547524A/zh
Pending legal-status Critical Current

Links

Abstract

本发明提供了一种用于软件调用的方法和装置,其中,该方法包括以下步骤:获取用户基于调用接口信息所发送的第一调用请求;基于所述第一调用请求以及注册信息,确定第二调用请求;基于所述第二调用请求,进行软件调用以获得第一调用结果;将所述第一调用结果发送至所述用户。与现有技术相比,利用本发明的方法,用户可基于调用接口信息来发送的第一调用请求,基于该调用请求以及注册信息,利用本发明的方法可以确定第二调用请求并进行软件调用并将结果返回给用户,从而使得用户可基于统一的调用接口信息来进行软件调用,从而提高了用户体验。

Description

一种用于软件调用的方法和装置
技术领域
本发明涉及计算机设备领域,尤其涉及一种用于软件调用的方法和装置。
背景技术
现有技术中,为便于用户使用或进行系统集成等,软件系统可向用户提供应用编程接口(Application Program Interface,API)。当软件系统较为复杂时,例如其实际由多个不同的业务组件所组成时,有时各个业务组件所提供的API具有各不相同的格式,从而造成用户使用上的困难。因此,如何在不对业务组件的代码进行较大修改的前提下使用户能够以统一的方式进行API调用,从而降低使用难度是一个值得研究的问题。
发明内容
本发明的目的是提供一种用于软件调用的方法和装置。
根据本发明的一个方面,提供一种用于软件调用的方法,其中,该方法包括以下步骤:
-获取用户基于调用接口信息所发送的第一调用请求;
-基于所述第一调用请求以及注册信息,确定第二调用请求;
-基于所述第二调用请求,进行软件调用以获得第一调用结果;
-将所述第一调用结果发送至所述用户。
根据本发明的另一个方面,提供一种用于软件调用的装置,其中,该装置包括:
-用于获取用户基于调用接口信息所发送的第一调用请求的装置;
-用于基于所述第一调用请求以及注册信息,确定第二调用请求的装置;
-用于基于所述第二调用请求,进行软件调用以获得第一调用结果的装置;
-用于将所述第一调用结果发送至所述用户的装置。
与现有技术相比,利用本发明的方法,用户可基于调用接口信息来发送的第一调用请求,基于该调用请求以及注册信息,利用本发明的方法可以确定第二调用请求并进行软件调用并将结果返回给用户,从而使得用户可基于统一的调用接口信息来进行软件调用,从而提高了用户体验。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1示出根据本发明一个方面的实施例的用于软件调用的方法的流程图;
图2示出根据本发明另一个方面的实施例的用于软件调用的装置的示意图。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
在上下文中所称“计算机设备”,也称为“电脑”,是指可以通过运行预定程序或指令来执行数值计算和/或逻辑计算等预定处理过程的智能电子设备,其可以包括处理器与存储器,由处理器执行在存储器中预存的存续指令来执行预定处理过程,或是由ASIC、FPGA、DSP等硬件执行预定处理过程,或是由上述二者组合来实现。计算机设备包括但不限于服务器、个人电脑、笔记本电脑、平板电脑、智能手机等。
所述计算机设备包括用户设备与网络设备。其中,所述用户设备包括但不限于电脑、智能手机、PDA等;所述网络设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(Cloud Computing)的由大量计算机或网络服务器构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。其中,所述计算机设备可单独运行来实现本发明,也可接入网络并通过与网络中的其他计算机设备的交互操作来实现本发明。其中,所述计算机设备所处的网络包括但不限于互联网、广域网、城域网、局域网、VPN网络等。
需要说明的是,所述用户设备、网络设备和网络等仅为举例,其他现有的或今后可能出现的计算机设备或网络如可适用于本发明,也应包含在本发明保护范围以内,并以引用方式包含于此。
后面所讨论的方法(其中一些通过流程图示出)可以通过硬件、软件、固件、中间件、微代码、硬件描述语言或者其任意组合来实施。当用软件、固件、中间件或微代码来实施时,用以实施必要任务的程序代码或代码段可以被存储在机器或计算机可读介质(比如存储介质)中。(一个或多个)处理器可以实施必要的任务。
这里所公开的具体结构和功能细节仅仅是代表性的,并且是用于描述本发明的示例性实施例的目的。但是本发明可以通过许多替换形式来具体实现,并且不应当被解释成仅仅受限于这里所阐述的实施例。
应当理解的是,虽然在这里可能使用了术语“第一”、“第二”等等来描述各个单元,但是这些单元不应当受这些术语限制。使用这些术语仅仅是为了将一个单元与另一个单元进行区分。举例来说,在不背离示例性实施例的范围的情况下,第一单元可以被称为第二单元,并且类似地第二单元可以被称为第一单元。这里所使用的术语“和/或”包括其中一个或更多所列出的相关联项目的任意和所有组合。
应当理解的是,当一个单元被称为“连接”或“耦合”到另一单元时,其可以直接连接或耦合到所述另一单元,或者可以存在中间单元。与此相对,当一个单元被称为“直接连接”或“直接耦合”到另一单元时,则不存在中间单元。应当按照类似的方式来解释被用于描述单元之间的关系的其他词语(例如“处于...之间”相比于“直接处于...之间”,“与...邻近”相比于“与...直接邻近”等等)。
这里所使用的术语仅仅是为了描述具体实施例而不意图限制示例性实施例。除非上下文明确地另有所指,否则这里所使用的单数形式“一个”、“一项”还意图包括复数。还应当理解的是,这里所使用的术语“包括”和/或“包含”规定所陈述的特征、整数、步骤、操作、单元和/或组件的存在,而不排除存在或添加一个或更多其他特征、整数、步骤、操作、单元、组件和/或其组合。
还应当提到的是,在一些替换实现方式中,所提到的功能/动作可以按照不同于附图中标示的顺序发生。举例来说,取决于所涉及的功能/动作,相继示出的两幅图实际上可以基本上同时执行或者有时可以按照相反的顺序来执行。
下面结合附图对本发明作进一步详细描述。
图1示出根据本发明一个方面的实施例的用于软件调用的方法的流程图。
其中,本实施例的方法主要通过计算机设备来实现;所述计算机设备包括但不限于服务器、个人电脑、笔记本电脑、平板电脑、智能手机等。
需要说明的是,所述计算机设备仅为举例,其他现有的或今后可能出现的计算机设备如可适用于本发明,也应包含在本发明保护范围以内,并以引用方式包含于此。
首先,在步骤S11中,将获取用户基于调用接口信息所发送的第一调用请求。
此处,调用接口信息意指软件开发者或提供者等向用户所提供的可用于调用该软件的接口信息,例如应用编程接口(ApplicationProgram Interface,API)等。此处,第一调用请求意指用户基于该调用接口信息,相应地向软件系统发送的调用请求,该第一调用请求符合该调用接口信息的定义。例如,调用接口信息所定义的调用请求格式为https://访问域名/格式/产品线/版本/上游业务接口映射类名/上游业务接口映射方法名,则第一调用请求可为例如:https://api.baidu.com/json/sms/v3/CampaignService/updateCampaign。本领域技术人员应理解,此处,对于调用接口信息以及第一调用的相关描述仅为示例性而非限定性描述,存在其他各种实现方式而不背离本发明的精神或范畴,并以引用的方式包含于此。
接着,在步骤S12中,将基于所述第一调用请求以及注册信息,确定第二调用请求。
软件可包括一个或多个软件组件。此处,软件组件可以为软件的功能单元,也可以为独立运行的子系统,还可以与软件能够进行集成的其他软件系统。为便于描述,在下文中将软件组件所提供的不符合调用接口信息定义格式的调用接口称之为内部调用接口,也即不用于用户使用的接口;将符合该定义格式的调用接口称之为外部调用接口,也即可用于用户使用的接口。如上文所述,第一调用请求为用户向软件系统所发送的调用请求,也即,第一调用请求基于调用接口信息,使用外部调用接口。与此对应,将基于内部调用接口的调用请求称为第二调用请求。在一个实施例中,第一调用请求基于统一格式,例如调用接口信息中所定义的格式;而第二调用请求基于一种或多种格式,也即不同软件组件之间,和/或同一软件组件的不同内部调用接口之间可以具有相同或各不相同的格式,从而各个第二调用请求相应地基于相同或不同的格式。
软件组件通过注册过程,可以提供该软件组件的调用接口的注册信息,该注册信息中包括软件组件所提供的内部调用接口与外部调用接口之间的映射关系。例如,软件组件A可提供内部调用接口http://10.50.10.50:8080/fc-apiV3/api/UpdateCampaignAPI。则软件组件A可为该内部调用接口进行注册,以按照预先定义的标准规范来向用户提供外部调用接口:https://api.baidu.com/json/sms/v3/CampaignService/updateCampaign。相应地,注册信息中包括该内部调用接口与该外部调用接口之间的映射关系。
当获取到用户所发送的第一调用请求时,由于该第一调用请求所使用的为外部调用接口,则可通过注册信息中所包括的外部调用接口与内部调用接口之间的映射关系,确定与该外部调用接口相对应的内部调用接口,从而确定使用该内部调用接口的第二调用请求。
在一个实施例中,软件组件在为其内部调用接口进行注册时,还可以注册提供该内部调用接口的一个或多个服务器的信息,从而在注册信息中还包括所述一个或多个服务器的信息。该一个或多个服务器也可以实现为服务器集群。则当获取到用户所发送的第一调用请求时,可以通过注册信息确定该软件组件所注册的服务器信息。从而可基于第一调用请求、注册信息以及服务器信息来确定第二调用请求。例如,当第一调用请求为https://api.baidu.com/json/sms/v3/CampaignService/updateCampaign时,可基于注册信息获取到该外部调用接口所对应的内部调用接口http://api.baidu.com/fc-apiV3/api/UpdateCampaignAPI,并且可基于注册信息获取到提供该内部调用接口的服务器地址及端口为10.50.10.50:8080,则可确定该第二调用请求为http://10.50.10.50:8080/fc-apiV3/api/UpdateCampaignAPI。
本领域技术人员应理解,此处,对于确定第二调用请求的相关描述仅为示例性而非限定性描述,存在其他各种实现方式而不背离本发明的精神或范畴,并以引用的方式包含于此。
接着,在步骤S13中,将基于所述第二调用请求,进行软件调用以获得第一调用结果。具体地,可直接或通过网络向软件发送该第二调用请求从而进行相应的软件调用,并获得第一调用结果。此处,第一调用结果意指由执行该软件调用的软件组件所返回的结果。
在一个实施例中,可以首先确定用户进行该第一调用请求的频率。具体地,可以例如监控用户所进行的各个第一调用请求从而确定出该用户进行各个第一调用请求的频率。接着,可基于该第二调用请求以及该频率,进行软件调用以获得第一调用结果。例如,当用户进行第一调用请求http://api.baidu.com/fc-apiV3/api/UpdateCampaignAPI的频率超出阈值时,可等待一定时间后再进行软件调用以获得第一调用结果,或可拒绝该第一调用请求,从而避免过于频繁地调用某一功能。本领域技术人员应理解,此处,对于基于第二调用请求以及频率,进行软件调用以获得第一调用结果的相关描述仅为示例性而非限定性描述,存在其他各种实现方式而不背离本发明的精神或范畴,并以引用的方式包含于此。
在另一个实施例中,在按照上文所述的方法确定第二调用请求时,还可以确定用户进行该第一调用请求的配额信息。具体地,当软件组件进行上述注册过程时,可设置用户进行各个内部调用请求和/或外部调用请求的配额信息。该配额信息用于指示该用户可同时进行的该内部或外部调用请求的数量。则当获取到用户所发送的第一调用请求时,可通过注册信息来确定用户进行该第一调用请求的配额信息。接着,可按照上文所述的方法确定出第二调用请求。并可基于该第二调用请求以及该配额信息,进行软件调用以获得第一调用结果。例如,可监控用户所进行的各次第一调用请求,从而可确定用户当前同时正在进行的第一调用请求http://api.baidu.com/fc-apiV3/api/UpdateCampaignAPI的数量。当发现用户同时进行该第一调用请求的数量超过其配额时,可拒绝该第一调用请求,或等待并确定同时进行该第一调用请求的数量不再超过其配额时,再进行软件调用以获得第一调用结果。本领域技术人员应理解,此处,对于基于第二调用请求以及配额信息,进行软件调用以获得第一调用结果的相关描述仅为示例性而非限定性描述,存在其他各种实现方式而不背离本发明的精神或范畴,并以引用的方式包含于此。
在又一个实施例中,在按照上文所述的方法确定第二调用请求时,还可以基于第一调用请求以及注册信息,来确定调用尝试次数。此处,调用尝试次数意指尝试软件调用直至调用成功的次数。具体地,当软件组件进行上述注册过程时,可设置内部调用请求和/或外部调用请求的调用尝试次数。从而当按照上文所述的方法确定第二调用请求时,可基于注册信息来确定该第二调用请求的调用尝试次数。接着,可基于该第二调用请求以及该调用尝试次数,进行软件调用以获得第一调用结果。例如,当发出第二调用请求以尝试进行软件调用失败时,可再次尝试发出第二调用请求,直至软件调用成功或达到调用尝试次数。本领域技术人员应理解,此处,对于基于第二调用请求以及调用尝试次数,进行软件调用以获得第一调用结果的相关描述仅为示例性而非限定性描述,存在其他各种实现方式而不背离本发明的精神或范畴,并以引用的方式包含于此。
接着,在步骤S14中,可将所述第一调用结果发送至用户。在一个实施例中,可对该第一调用结果不做解析处理而直接转发至用户。在另一个实施例中,将对第一调用结果进行解析以获取第二调用结果,然后将该第二调用结果发送至用户。具体地,可以预先定义第一调用结果的格式。则执行软件调用的软件组件应按照该预先定义的格式来返回第一调用结果。相应地,可按照该预先定义的格式来解析该第一调用结果,从而得到解析后的第二调用结果。例如,可预先定义第一调用结果应包括头部及数据部分。其中,头部可包括该第二调用请求执行时间、执行状态等信息;数据部分则可包括具体调用执行结果。由于头部中所包含的信息可仅用于软件内部处理而不发送至用户,则可对第一调用结果进行解析,以解析出头部及数据部分,并将数据部分作为解析后的第二调用结果来返回至用户。又例如,对上例中的数据部分还可进一步进行解析,以得到具体数据项。并可对各个数据项执行例如合并、格式转换、类型转换等各种处理,从而将经处理后的数据作为第二调用结果来返回至用户。本领域技术人员应理解,此处,对于解析第一调用结果的相关描述仅为示例性而非限定性描述,存在其他各种实现方式而不背离本发明的精神或范畴,并以引用的方式包含于此。
在一个实施例中,可创建和/或更新注册信息。如上文所述,软件组件可注册内部调用接口与外部调用接口之间的映射关系。具体地,软件组件可通过集中式或分布式注册平台来创建和/或更新上述注册信息。接着,可基于注册信息,来创建和/或更新调用接口信息。如上文所述,调用接口信息意指向用户所提供的可用于调用该软件的接口信息,例如应用编程接口(Application Program Interface,API)等。也即,调用接口信息中所包含的为外部调用接口的信息。可基于注册信息来获取到内部调用接口所映射到的外部调用接口,并可依据各个外部调用接口的信息来创建和/或更新调用接口信息。接着,可向一个或多个用户发布该调用接口信息。此处,在一个优选实施例中,当软件组件完成上述注册过程后,注册信息可暂存于缓存系统中而并不立即生效。然后可对该软件组件所注册的内部调用接口及外部调用接口进行测试,当测试通过后,再将该注册信息标记为有效并将其从缓存系统中推送至实际运行系统中,然后将依据该生效的注册信息所得到的调用接口信息发布给一个或多个用户。
图2示出根据本发明另一个方面的实施例的用于软件调用的装置的示意图。
其中,本实施例的装置主要通过计算机设备来实现;所述计算机设备包括但不限于服务器、个人电脑、笔记本电脑、平板电脑、智能手机等。
需要说明的是,所述计算机设备仅为举例,其他现有的或今后可能出现的计算机设备如可适用于本发明,也应包含在本发明保护范围以内,并以引用方式包含于此。
如图2所示,该用于软件调用的装置包括用于获取用户基于调用接口信息所发送的第一调用请求的装置21,以下简称获取装置21;用于基于所述第一调用请求以及注册信息,确定第二调用请求的装置,以下简称第一确定装置22;用于基于所述第二调用请求,进行软件调用以获得第一调用结果的装置23,以下简称第一调用装置23;以及用于将所述第一调用结果发送至所述用户的装置24,以下简称第一发送装置24。
首先,获取装置21将获取用户基于调用接口信息所发送的第一调用请求。
此处,调用接口信息意指软件开发者或提供者等向用户所提供的可用于调用该软件的接口信息,例如应用编程接口(ApplicationProgram Interface,API)等。此处,第一调用请求意指用户基于该调用接口信息,相应地向软件系统发送的调用请求,该第一调用请求符合该调用接口信息的定义。例如,调用接口信息所定义的调用请求格式为https://访问域名/格式/产品线/版本/上游业务接口映射类名/上游业务接口映射方法名,则第一调用请求可为例如:https://api.baidu.com/json/sms/v3/CampaignService/updateCampaign。本领域技术人员应理解,此处,对于调用接口信息以及第一调用的相关描述仅为示例性而非限定性描述,存在其他各种实现方式而不背离本发明的精神或范畴,并以引用的方式包含于此。
接着,第一确定装置22将基于所述第一调用请求以及注册信息,确定第二调用请求。
在实际应用中,软件可包括一个或多个软件组件。此处,软件组件可以为软件的功能单元,也可以为独立运行的子系统,还可以与软件能够进行集成的其他软件系统。为便于描述,在下文中将软件组件所提供的不符合调用接口信息定义格式的调用接口称之为内部调用接口,也即不用于用户使用的接口;将符合该定义格式的调用接口称之为外部调用接口,也即可用于用户使用的接口。如上文所述,第一调用请求为用户向软件系统所发送的调用请求,也即,第一调用请求基于调用接口信息,使用外部调用接口。与此对应,将基于内部调用接口的调用请求称为第二调用请求。在一个实施例中,第一调用请求基于统一格式,例如调用接口信息中所定义的格式;而第二调用请求基于一种或多种格式,也即不同软件组件之间,和/或同一软件组件的不同内部调用接口之间可以具有相同或各不相同的格式,从而各个第二调用请求相应地基于相同或不同的格式。
软件组件通过注册过程,可以提供该软件组件的调用接口的注册信息,该注册信息中包括软件组件所提供的内部调用接口与外部调用接口之间的映射关系。例如,软件组件A可提供内部调用接口http://10.50.10.50:8080/fc-apiV3/api/UpdateCampaignAPI。则软件组件A可为该内部调用接口进行注册,以按照预先定义的标准规范来向用户提供外部调用接口:https://api.baidu.com/json/sms/v3/CampaignService/updateCampaign。相应地,注册信息中包括该内部调用接口与该外部调用接口之间的映射关系。
当获取装置21获取到用户所发送的第一调用请求时,由于该第一调用请求所使用的为外部调用接口,则第一确定装置22可通过注册信息中所包括的外部调用接口与内部调用接口之间的映射关系,确定与该外部调用接口相对应的内部调用接口,从而确定使用该内部调用接口的第二调用请求。
在一个实施例中,软件组件在为其内部调用接口进行注册时,还可以注册提供该内部调用接口的一个或多个服务器的信息,从而在注册信息中还包括所述一个或多个服务器的信息。该一个或多个服务器也可以实现为服务器集群。则当获取装置21获取到用户所发送的第一调用请求时,第一确定装置22中所包括的用于基于所述第一调用请求以及注册信息,确定服务器信息的装置,以下简称第二确定装置221(未示出),可以通过注册信息确定该软件组件所注册的服务器信息。从而第一确定装置22中所包括的用于基于所述第一调用请求、注册信息以及所述服务器信息,确定第二调用请求的装置,以下简称第三确定装置222(未示出),可基于第一调用请求、注册信息以及服务器信息来确定第二调用请求。例如,当第一调用请求为https://api.baidu.com/json/sms/v3/CampaignService/updateCampaign时,第一确定装置22可基于注册信息获取到该外部调用接口所对应的内部调用接口http://api.baidu.com/fc-apiV3/api/UpdateCampaignAPI,并且可基于注册信息获取到提供该内部调用接口的服务器地址及端口为10.50.10.50:8080,则可确定该第二调用请求为http://10.50.10.50:8080/fc-apiV3/api/UpdateCampaignAPI。
本领域技术人员应理解,此处,对于确定第二调用请求的相关描述仅为示例性而非限定性描述,存在其他各种实现方式而不背离本发明的精神或范畴,并以引用的方式包含于此。
接着,第一调用装置23将基于所述第二调用请求,进行软件调用以获得第一调用结果。具体地,第一调用装置23可直接或通过网络向软件发送该第二调用请求从而进行相应的软件调用,并获得第一调用结果。此处,第一调用结果意指由执行该软件调用的软件组件所返回的结果。
在一个实施例中,第一调用装置23中所包括的用于确定用户进行所述第一调用请求的频率的装置,以下简称频率确定装置231(未示出)可以首先确定用户进行该第一调用请求的频率。具体地,频率确定装置231可以例如监控用户所进行的各个第一调用请求从而确定出该用户进行各个第一调用请求的频率。接着,第一调用装置23中所包括的用于基于所述第二调用请求以及所述频率,进行软件调用以获得第一调用结果的装置,以下简称第二调用装置232(未示出),可基于该第二调用请求以及该频率,进行软件调用以获得第一调用结果。例如,当用户进行第一调用请求http://api.baidu.com/fc-apiV3/api/UpdateCampaignAPI的频率超出阈值时,第二调用装置232可等待一定时间后再进行软件调用以获得第一调用结果,或可拒绝该第一调用请求,从而避免过于频繁地调用某一功能。本领域技术人员应理解,此处,对于基于第二调用请求以及频率,进行软件调用以获得第一调用结果的相关描述仅为示例性而非限定性描述,存在其他各种实现方式而不背离本发明的精神或范畴,并以引用的方式包含于此。
在另一个实施例中,第一确定装置22在按照上文所述的方法确定第二调用请求时,第一确定装置22中所包括的用于基于注册信息,确定用户进行所述第一调用请求的配额信息的装置,以下简称配额确定装置223(未示出),还可以确定用户进行该第一调用请求的配额信息。具体地,当软件组件进行上述注册过程时,可设置用户进行各个内部调用请求和/或外部调用请求的配额信息。该配额信息用于指示该用户可同时进行的该内部或外部调用请求的数量。则当获取装置21获取到用户所发送的第一调用请求时,配额确定装置223可通过注册信息来确定用户进行该第一调用请求的配额信息。接着,第一确定装置22可按照上文所述的方法确定出第二调用请求。并且第一调用装置23中所包括的用于基于所述第二调用请求以及所述配额信息,进行软件调用以获得第一调用结果的装置,以下简称第三调用装置233(未示出)可基于该第二调用请求以及该配额信息,进行软件调用以获得第一调用结果。例如,第三调用装置233可监控用户所进行的各次第一调用请求,从而可确定用户当前同时正在进行的第一调用请求http://api.baidu.com/fc-apiV3/api/UpdateCampaignAPI的数量。当第三调用装置233发现用户同时进行该第一调用请求的数量超过其配额时,可拒绝该第一调用请求,或等待并确定同时进行该第一调用请求的数量不再超过其配额时,再进行软件调用以获得第一调用结果。本领域技术人员应理解,此处,对于基于第二调用请求以及配额信息,进行软件调用以获得第一调用结果的相关描述仅为示例性而非限定性描述,存在其他各种实现方式而不背离本发明的精神或范畴,并以引用的方式包含于此。
在又一个实施例中,第一确定装置22中所包含的用于基于所述第一调用请求以及注册信息,确定调用尝试次数的装置,以下简称次数确定装置224(未示出)在确定第二调用请求时,还可以基于第一调用请求以及注册信息,来确定调用尝试次数。此处,调用尝试次数意指尝试软件调用直至调用成功的次数。具体地,当软件组件进行上述注册过程时,可设置内部调用请求和/或外部调用请求的调用尝试次数。从而当第一确定装置22按照上文所述的方法确定第二调用请求时,次数确定装置224可基于注册信息来确定该第二调用请求的调用尝试次数。接着,第一调用装置23中所包含的用于基于所述第二调用请求以及所述调用尝试次数,进行软件调用以获得第一调用结果的装置第四调用装置234(未示出),可基于该第二调用请求以及该调用尝试次数,进行软件调用以获得第一调用结果。例如,当第四调用装置234发出第二调用请求以尝试进行软件调用失败时,可再次尝试发出第二调用请求,直至软件调用成功或达到调用尝试次数。本领域技术人员应理解,此处,对于基于第二调用请求以及调用尝试次数,进行软件调用以获得第一调用结果的相关描述仅为示例性而非限定性描述,存在其他各种实现方式而不背离本发明的精神或范畴,并以引用的方式包含于此。
接着,第一发送装置24可将所述第一调用结果发送至用户。在一个实施例中,第一发送装置24可对该第一调用结果不做解析处理而直接转发至用户。在另一个实施例中,第一发送装置24中包括的用于对所述第一调用结果进行解析以获取第二调用结果的装置,以下简称解析装置241(为示出)将对第一调用结果进行解析以获取第二调用结果,然后将该第二调用结果发送至用户。具体地,可以预先定义第一调用结果的格式。则执行软件调用的软件组件应按照该预先定义的格式来返回第一调用结果。相应地,解析装置241可按照该预先定义的格式来解析该第一调用结果,从而得到解析后的第二调用结果。例如,可预先定义第一调用结果应包括头部及数据部分。其中,头部可包括该第二调用请求执行时间、执行状态等信息;数据部分则可包括具体调用执行结果。由于头部中所包含的信息可仅用于软件内部处理而不发送至用户,则解析装置241可对第一调用结果进行解析,以解析出头部及数据部分,并且,第一发送装置24中所包含的用于将所述第二调用结果发送至所述用户的装置,以下简称第二发送装置242(未示出)将数据部分作为解析后的第二调用结果来返回至用户。又例如,解析装置241对上例中的数据部分还可进一步进行解析,以得到具体数据项。并且解析装置241可对各个数据项执行例如合并、格式转换、类型转换等各种处理,从而第二发送装置242将经处理后的数据作为第二调用结果来返回至用户。本领域技术人员应理解,此处,对于解析第一调用结果的相关描述仅为示例性而非限定性描述,存在其他各种实现方式而不背离本发明的精神或范畴,并以引用的方式包含于此。
在一个实施例中,该用于软件调用的装置中还包括用于创建和/或更新注册信息的装置,以下简称注册信息创建装置25。该注册信息创建装置25可创建和/或更新注册信息。如上文所述,软件组件可注册内部调用接口与外部调用接口之间的映射关系。具体地,软件组件的注册信息创建装置25可通过集中式或分布式注册平台来创建和/或更新上述注册信息。该用于软件调用的装置中还包括用于基于所述注册信息,创建和/或更新调用接口信息的装置,以下简称接口信息创建装置26(未示出)。接口信息创建装置26可基于注册信息,来创建和/或更新调用接口信息。如上文所述,调用接口信息意指向用户所提供的可用于调用该软件的接口信息,例如应用编程接口(Application ProgramInterface,API)等。也即,调用接口信息中所包含的为外部调用接口的信息。接口信息创建装置26可基于注册信息来获取到内部调用接口所映射到的外部调用接口,并可依据各个外部调用接口的信息来创建和/或更新调用接口信息。该用于软件调用的装置中还包括用于向一个或多个用户发布所述调用接口信息的装置,以下简称发布装置27(未示出)。发布装置27可向一个或多个用户发布该调用接口信息。此处,在一个优选实施例中,当软件组件完成上述注册过程后,注册信息可暂存于缓存系统中而并不立即生效。然后可对该软件组件所注册的内部调用接口及外部调用接口进行测试,当测试通过后,再将该注册信息标记为有效并将其从缓存系统中推送至实际运行系统中,然后将依据该生效的注册信息所得到的调用接口信息发布给一个或多个用户。
需要注意的是,本发明可在软件和/或软件与硬件的组合体中被实施,例如,本发明的各个装置可采用专用集成电路(ASIC)或任何其他类似硬件设备来实现。在一个实施例中,本发明的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本发明的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本发明的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

Claims (16)

1.一种用于软件调用的方法,其中,所述方法包括:
-获取用户基于调用接口信息所发送的第一调用请求;
-基于所述第一调用请求以及注册信息,确定第二调用请求;
-基于所述第二调用请求,进行软件调用以获得第一调用结果;
-将所述第一调用结果发送至所述用户。
2.根据权利要求1所述的方法,其中,所述基于所述第一调用请求以及注册信息,确定第二调用请求的步骤包括:
-基于所述第一调用请求以及注册信息,确定服务器信息;
-基于所述第一调用请求、注册信息以及所述服务器信息,确定第二调用请求。
3.根据权利要求1或2所述的方法,其中,所述基于所述第二调用请求,进行软件调用以获得第一调用结果的步骤包括:
-确定用户进行所述第一调用请求的频率;
-基于所述第二调用请求以及所述频率,进行软件调用以获得第一调用结果。
4.根据权利要求1至3中任一项所述的方法,其中,所述基于所述第一调用请求以及注册信息,确定第二调用请求的步骤还包括:
-基于注册信息,确定用户进行所述第一调用请求的配额信息;
其中,基于所述第二调用请求,进行软件调用以获得第一调用结果的步骤包括:
-基于所述第二调用请求以及所述配额信息,进行软件调用以获得第一调用结果。
5.根据权利要求1至4中任一项所述的方法,其中,所述基于所述第一调用请求以及注册信息,确定第二调用请求的步骤还包括:
-基于所述第一调用请求以及注册信息,确定调用尝试次数;
其中,基于所述第二调用请求,进行软件调用以获得第一调用结果的步骤包括:
-基于所述第二调用请求以及所述调用尝试次数,进行软件调用以获得第一调用结果。
6.根据权利要求1至5中任一项所述的方法,其中,将所述第一调用结果发送至所述用户的步骤包括:
-对所述第一调用结果进行解析以获取第二调用结果;
-将所述第二调用结果发送至所述用户。
7.根据权利要求1至6中任一项所述的方法,其中,所述方法还包括:
-创建和/或更新注册信息;
-基于所述注册信息,创建和/或更新调用接口信息;
-向一个或多个用户发布所述调用接口信息。
8.根据权利要求1至7中任一项所述的方法,其中,所述第一调用请求基于统一格式,所述第二调用请求基于一种或多种格式。
9.一种用于软件调用的装置,其中,所述装置包括:
-用于获取用户基于调用接口信息所发送的第一调用请求的装置;
-用于基于所述第一调用请求以及注册信息,确定第二调用请求的装置;
-用于基于所述第二调用请求,进行软件调用以获得第一调用结果的装置;
-用于将所述第一调用结果发送至所述用户的装置。
10.根据权利要求9所述的装置,其中,所述用于基于所述第一调用请求以及注册信息,确定第二调用请求的装置包括:
-用于基于所述第一调用请求以及注册信息,确定服务器信息的装置;
-用于基于所述第一调用请求、注册信息以及所述服务器信息,确定第二调用请求的装置。
11.根据权利要求9或10所述的装置,其中,所述用于基于所述第二调用请求,进行软件调用以获得第一调用结果的装置包括:
-用于确定用户进行所述第一调用请求的频率的装置;
-用于基于所述第二调用请求以及所述频率,进行软件调用以获得第一调用结果的装置。
12.根据权利要求9至11中任一项所述的装置,其中,所述用于基于所述第一调用请求以及注册信息,确定第二调用请求的装置还包括:
-用于基于注册信息,确定用户进行所述第一调用请求的配额信息的装置;
其中,用于基于所述第二调用请求,进行软件调用以获得第一调用结果的装置包括:
-用于基于所述第二调用请求以及所述配额信息,进行软件调用以获得第一调用结果的装置。
13.根据权利要求9至12中任一项所述的装置,其中,所述用于基于所述第一调用请求以及注册信息,确定第二调用请求的装置还包括:
-用于基于所述第一调用请求以及注册信息,确定调用尝试次数的装置;
其中,用于基于所述第二调用请求,进行软件调用以获得第一调用结果的装置包括:
-用于基于所述第二调用请求以及所述调用尝试次数,进行软件调用以获得第一调用结果的装置。
14.根据权利要求9至13中任一项所述的装置,其中,用于将所述第一调用结果发送至所述用户的装置包括:
-用于对所述第一调用结果进行解析以获取第二调用结果的装置;
-用于将所述第二调用结果发送至所述用户的装置。
15.根据权利要求9至14中任一项所述的装置,其中,所述装置还包括:
-用于创建和/或更新注册信息的装置;
-用于基于所述注册信息,创建和/或更新调用接口信息的装置;
-用于向一个或多个用户发布所述调用接口信息的装置。
16.根据权利要求9至15中任一项所述的装置,其中,所述第一调用请求基于统一格式,所述第二调用请求基于一种或多种格式。
CN201510601067.5A 2015-09-18 2015-09-18 一种用于软件调用的方法和装置 Pending CN106547524A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510601067.5A CN106547524A (zh) 2015-09-18 2015-09-18 一种用于软件调用的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510601067.5A CN106547524A (zh) 2015-09-18 2015-09-18 一种用于软件调用的方法和装置

Publications (1)

Publication Number Publication Date
CN106547524A true CN106547524A (zh) 2017-03-29

Family

ID=58362275

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510601067.5A Pending CN106547524A (zh) 2015-09-18 2015-09-18 一种用于软件调用的方法和装置

Country Status (1)

Country Link
CN (1) CN106547524A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112181537A (zh) * 2020-09-27 2021-01-05 朱领军 一种在计算机程序中调用api的方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040083465A1 (en) * 2002-10-28 2004-04-29 Weijia Zhang Method and system for connecting to an application programming interface
CN102663038A (zh) * 2012-03-27 2012-09-12 南京迪威视讯技术有限公司 一种提供地理信息系统接口服务的方法和装置
CN103095479A (zh) * 2011-11-04 2013-05-08 华为技术有限公司 业务配置的方法及装置
CN104065736A (zh) * 2014-07-03 2014-09-24 车智互联(北京)科技有限公司 一种url重定向方法、装置及系统
CN104852939A (zh) * 2014-02-18 2015-08-19 中国电信股份有限公司 一种部署能力接口的方法和系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040083465A1 (en) * 2002-10-28 2004-04-29 Weijia Zhang Method and system for connecting to an application programming interface
CN103095479A (zh) * 2011-11-04 2013-05-08 华为技术有限公司 业务配置的方法及装置
CN102663038A (zh) * 2012-03-27 2012-09-12 南京迪威视讯技术有限公司 一种提供地理信息系统接口服务的方法和装置
CN104852939A (zh) * 2014-02-18 2015-08-19 中国电信股份有限公司 一种部署能力接口的方法和系统
CN104065736A (zh) * 2014-07-03 2014-09-24 车智互联(北京)科技有限公司 一种url重定向方法、装置及系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112181537A (zh) * 2020-09-27 2021-01-05 朱领军 一种在计算机程序中调用api的方法及系统

Similar Documents

Publication Publication Date Title
CN110535831B (zh) 基于Kubernetes和网络域的集群安全管理方法、装置及存储介质
US9811370B2 (en) Determining an optimal datacenter for placing a resource instance in a cloud that would benefit an intended set of end users in a geographical region
US9098312B2 (en) Methods for dynamically generating an application interface for a modeled entity and devices thereof
CN110765024B (zh) 模拟测试方法、装置、电子设备和计算机可读存储介质
US9008693B2 (en) Method and apparatus for information aggregation around locations
CN106534281B (zh) 一种数据请求的响应方法、装置及系统
CN106464746B (zh) 支持事件流处理系统中的故障转移的方法与非暂时性计算机可读媒体以及系统
CN105630267B (zh) 视图界面资源管理方法和装置
CN108696400A (zh) 网络监测方法和装置
CN106657314A (zh) 跨数据中心数据同步系统及方法
CN104199957A (zh) 一种Redis通用代理的实现方法
CN109412853A (zh) 分布式服务注册存储方法、系统、装置和存储介质
US10110456B2 (en) Scalable software monitoring infrastructure, using parallel task queuing, to operate in elastic cloud environments
CN108089912A (zh) 一种虚拟机与容器超融合系统构建方法及装置
US20140026119A1 (en) Integrated development environment-based workload testing in a networked computing environment
CN108830093A (zh) 终端设备操作权限的管理方法、服务器和终端设备
EP2616968A1 (en) Method and apparatus for choosing resources based on context and inheritance
US20130262189A1 (en) Analyzing metered cost effects of deployment patterns in a networked computing environment
CN110223088A (zh) 一种信息分配的方法、信息生成的方法及装置
CN109428839A (zh) 一种cdn调度方法、设备及系统
CN109873839A (zh) 数据访问的方法、服务器与分布式系统
CN108287706A (zh) 数据处理方法及装置
CN112015468A (zh) 一种接口文档处理方法、装置、电子设备以及存储介质
CN104717268A (zh) 一种利用面向对象技术实现界面配置开发方法及系统
Lee et al. Decoupling cognitive agents and virtual environments

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20170329

RJ01 Rejection of invention patent application after publication