CN106484391A - 动态服务扩展性 - Google Patents

动态服务扩展性 Download PDF

Info

Publication number
CN106484391A
CN106484391A CN201610710314.XA CN201610710314A CN106484391A CN 106484391 A CN106484391 A CN 106484391A CN 201610710314 A CN201610710314 A CN 201610710314A CN 106484391 A CN106484391 A CN 106484391A
Authority
CN
China
Prior art keywords
extension
script
application
agent process
memory
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
CN201610710314.XA
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.)
NCR Voyix Corp
Original Assignee
NCR Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NCR Corp filed Critical NCR Corp
Publication of CN106484391A publication Critical patent/CN106484391A/zh
Pending legal-status Critical Current

Links

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/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/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • 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
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/73Program documentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/603Details of cache memory of operating mode, e.g. cache mode or local memory mode

Abstract

在本发明的各种实施例中,每个实施例都包括用于动态服务扩展性的至少一个系统、设备、方法和软件。例如,可以实施或涉及一些实施例,提供可在所有设备、应用和应用程序平台使用的单一形式的进程定制,减少开发、集成及维护的费用和工作量。方法形式的一个实施例包括由在能够执行应用的计算设备上所执行的代理进程(118或126)从应用接收扩展脚本调用和参数(步骤302)。然后,所述方法根据代理进程(118或126)的脚本执行环境内的参数,检索和执行扩展脚本,获得结果数据(步骤304),并将结果数据返回到应用(步骤306)。

Description

动态服务扩展性
技术领域
本发明涉及动态服务扩展性。
背景技术
软件系统的开发和维护非常昂贵。为了节省开发费用,各家公司通常寻求商业现货产品(即COTS)、解决方案,然后,对这些产品进行自定义、定制和配置,从而满足它们的特定需求。但是,在目前的现代计算环境中,许多软件解决方案,虽然也许由单一软件系统后端支持,但部署在类型不同的许多设备上及在类型不同的许多设备上执行。因此,COTS解决方案节省的成本,虽然在某些方面比较显著,但是,在其它方面比较有限。
此外,从旧系统换到COTS系统可能需要在COTS系统内重新开发旧系统的功能,需要的时间较多,成本高昂-这两者都是成功部署的障碍。
此外,各公司通常将多重软件系统用于不同的用途,并与业务合作伙伴的计算机系统集成。当考虑到计算机系统可能部署于许多设备类型时,集成多个软件系统及与业务合作伙伴的计算机系统集成成本高昂且需时较多,维护工作量大。
发明内容
根据本发明的第一个方面,提供一种方法,包括:在扩展流注册表内,维持代理进程脚本执行环境中可执行的扩展脚本的版本集,与应用扩展点有关的多个扩展脚本集;经由执行所述方法的计算机的网络接口设备接收来自代理进程、包括应用扩展点标识符的扩展脚本检索请求;从扩展流注册表检索与扩展脚本检索请求中所含应用扩展点标识符有关的扩展脚本最新版本;经由执行所述方法的计算机的网络接口设备,将检索到的扩展脚本传输给代理进程。
任选所述扩展脚本检索请求包括由代理进程所缓存的扩展脚本的版本标识符,所述方法进一步包括:将扩展检索请求的版本标识符与和在扩展流注册表内维持的应用扩展点标识符有关的扩展脚本最新版本的版本标识符进行比较;当扩展检索请求的版本标识符与和扩展流注册表内的应用扩展点标识符有关的扩展脚本最新版本相等时,放弃检索和传输;经由执行所述方法的计算机的网络接口设备向代理进程传输一个答复,表明代理进程缓存的扩展脚本是最新版本。
任选所述方法进一步包括:识别从检索到的扩展脚本的脚本内所调用的任何其它扩展脚本;检索在检索到的扩展脚本的脚本内识别的任何其它扩展脚本;其中传输检索的扩展脚本包括传输已经检索的任何其它扩展脚本。
当扩展脚本包括其中调用的多个其它扩展脚本时,扩展脚本任选包括顺序调用多个其它扩展脚本中的每个扩展脚本;顺序调用多个其它扩展脚本任选将前面其它扩展脚本的输出与后面其它扩展脚本的输入相关联。
任选当扩展脚本被调用时,其会接收指定形式的参数,扩展脚本的输出也是根据所述指定形式来进行的。
根据本发明的第二个方面,提供一种系统,包括:至少一个网络接口设备;至少一个处理器;至少一个存储器;应用,所述应用储存在至少一个存储器内且可由至少一个处理器执行,从而执行包括扩展点的进程,每个扩展点包括某个应用的代理进程的标识符和扩展点调用,代理进程进一步可由至少一个处理器执行,以提供脚本执行环境,执行数据处理活动,数据处理活动包括:接收具有来自应用的参数的扩展点调用;检索与扩展点调用有关的扩展脚本;根据脚本执行环境内的参数,执行扩展脚本,得到结果数据;将结果数据返回到应用。
任选以第一格式接收参数;结果数据采用第一格式。
任选当检索到的扩展脚本时,当脚本缓存在至少一个存储器内时,代理进程从至少一个存储器检索扩展脚本,当扩展脚本未缓存在至少一个存储器内时,代理进程经由至少一个网络接口设备从网络位置的扩展流注册表检索扩展脚本,代理进程的数据处理活动任选进一步包括:当从扩展流注册表检索时,将扩展脚本缓存在至少一个存储器内。
任选代理进程包括配置设置,其指导代理进程进行如下事项:绕过从至少一个存储器检索扩展脚本的企图;根据扩展脚本的缓存版本的版本标识符(缓存时)询问扩展流注册表;只有当至少一个存储器确实包括扩展脚本的缓存版本时或当扩展流注册表包含比在至少一个存储器内缓存的扩展脚本更新的版本时,才检索扩展脚本。
任选扩展脚本是可由位于应用扩展点的应用调用的多个扩展脚本中的一个脚本,每个应用扩展点与一个扩展脚本相关联;至少一个应用扩展脚本不包括用于执行的功能脚本。
任选扩展脚本包括以下中的至少一种:调用至少一个其它扩展脚本,当其调用时,在代理进程的脚本执行环境内执行;经由至少一个网络接口设备,调用至少一种在联网计算设备上执行的服务。
根据本发明的第三个方面,提供一种方法,包括:由在能够执行应用的计算设备上所执行的代理进程从应用接收扩展脚本调用和参数;根据代理进程的脚本执行环境内的参数,检索和执行扩展脚本,获得结果数据;将结果数据返回到应用。
任选以第一格式接收参数;结果数据采用第一格式。
任选当检索扩展脚本时,当脚本缓存在计算设备的存储器内时,代理进程从计算设备的存储器检索扩展脚本,当扩展脚本未缓存在计算设备的存储器内时,代理进程经由计算设备的网络接口设备从网络位置的扩展流注册表检索扩展脚本。
任选代理进程包括配置设置,识别何时试图从存储设备检索扩展脚本,何时绕过从存储器检索扩展脚本的企图。
任选扩展脚本是位于应用扩展点的、可由应用所调用的多个扩展脚本中的一个脚本,每个应用扩展点与一个扩展脚本相关联。
任选至少一个应用扩展脚本不包括用于执行的功能脚本。
任选扩展脚本包括调用至少一个当被调用时会在代理进程的脚本执行环境内执行的其它扩展脚本。
任选扩展脚本包括经由计算设备的网络接口设备调用在联网计算设备上执行的至少一个服务。
任选代理进程是该应用的模块。
在本发明的各种实施例中,每个实施例都包括用于动态服务扩展性的至少一个系统、设备、方法和软件。例如,可以实施或涉及一些实施例,提供可在所有设备、应用和应用程序平台使用的单一形式的进程定制,减少开发、集成及维护的费用和工作量。
方法形式的一个实施例包括由在能够执行应用的计算设备上所执行的代理进程从应用接收扩展脚本调用和参数。然后,所述方法根据代理进程的脚本执行环境内的参数,检索和执行扩展脚本,获得结果数据,并将结果数据返回到应用。
另一个方法实施例包括在扩展流注册表内维持代理进程脚本扩展环境内可执行的扩展脚本的版本集。多个扩展脚本集通常与应用扩展点相关联。然后,所述方法经由执行所述方法的计算机的网络接口设备,从代理进程接收包括应用扩展点标识符的扩展脚本检索请求。然后,从扩展流注册表检索与扩展脚本检索请求中所含应用扩展点标识符有关的扩展脚本的最新版本。这个方法实施例进一步包括经由执行方法的计算机的网络接口设备将检索的扩展脚本传输给代理进程。
另一个实施例以系统方式呈现。该等实施例的系统包括至少一个网络接口设备、至少一个处理器、至少一个存储器。应用储存在至少一个存储器内,可由至少一个处理器执行,从而执行包括扩展点的进程。此类实施例的每个扩展点包括某个应用的代理进程的标识符和扩展点调用。代理进程可由至少一个处理器执行,以提供脚本执行环境和执行数据处理活动。数据处理活动可包括从应用接收带参数的扩展点调用,检索与扩展点调用有关的扩展脚本。数据处理活动进一步包括根据脚本执行环境内的参数,执行扩展脚本,获得结果数据。然后,将结果数据返回到应用。
附图说明
以下通过举例并参照附图,对本发明的上述内容和其他方面加以具体说明:
根据一个示例实施例,图1是系统的逻辑方框图;
根据一个示例实施例,图2是方法的流程方框图;
根据一个示例实施例,图3是方法的流程方框图;及
根据一个示例实施例,图4是计算设备的方框图。
具体实施方式
在本发明的各种实施例中,每个实施例都包括用于动态服务扩展性的至少一个系统、设备、方法和软件。例如,可以实施或涉及一些实施例,提供可在所有设备、应用和应用程序平台使用的单一形式的进程定制,减少开发、集成及维护的费用和工作量。一些此类实施例包括为每个特定设备、应用和应用程序平台定制的代理,包括脚本执行环境,在这些环境内,不管特定设备、应用和应用程序平台是什么,都可以执行单一形式的脚本。脚本可在代理内从应用和应用程序(例如,应用或应用程序内定义的扩展点)调用。接收脚本调用时,当调用脚本未缓存在本地存储器内或过期时,代理从中央脚本库检索脚本,然后在代理的脚本执行环境内执行脚本。当执行这种脚本时,可以根据代理和其它情况中部署的其它代理内以前配置的各种协议,调用其它系统的进程。但是,并非应用内的所有扩展点都包括扩展脚本中表示的扩展。在一些实施例中,扩展脚本可能仍然存在,但是包括扩展脚本空集。其它实施例并没有扩展脚本,而是开发用于处置来自扩展脚本检索企图的空(NULL)返回。
由于部署实体(如公司)内可能有各种不同的设备、应用和应用程序平台,因此,通常为每个此类平台定制代理。但是,代理为脚本提供共同的执行环境,从而提供标准化机制,通过这种机制,软件系统、应用和应用程序可以集成、定制和统一到单一进程和代码主体内,从而利用新平台上的现有功能及在旧系统内开拓新的功能。
此外,一些实施例提供软件系统的定制化、扩展和灵活性,用于新进程和附加进程、促销和其它新程序、技术等的快速增长和采用。例如,由于技术已经引领人们使用移动设备,如智能手机、平板电脑和智能手表以及智能电视、机顶盒等,以前只在营业时间在商店销售点(POS)终端开展的交易现在实际上可以在所有地点和一天中的所有时间内进行。为了在许多技术设备平台(每个平台操作不同的应用程序或应用)上开展这些交易,开发了支持每种技术设备平台的客户端和服务器代码。结果是大量代码和功能重复。此处的一些实施例提供利用实际上所有交易的共性的解决方案,例如,向交易增添购买、计税、生成总额、接收付款和生成收据的项目。
此类实施例包括一组应用程序和应用标准化的规定的应用程序和应用扩展点。对这些扩展点进行定制,为每个扩展点提供标准化形式的数据,然后,将这些数据与标准化扩展脚本调用一起传输到如前文所述的代理,并且这些数据与应用程序或应用一起呈现,或呈现于应用程序或应用之内。收到扩展脚本调用后,代理可以检索与标准化扩展点(从该扩展点接收扩展脚本调用)有关的脚本。扩展脚本可由代理从储存在存储设备上的存储器中的扩展脚本缓存进行检索或从位于网络位置的扩展流注册表进行检索。一旦检索到扩展脚本,就会由代理根据扩展脚本调用内所包含的数据来执行该扩展脚本。然后,可能包括一个或多个远程进程调用的扩展脚本就会执行,从而提供、检索或产生交易相关数据。当扩展脚本已经执行后,扩展脚本提供输出,通常是与与扩展脚本调用一同接收的数据相同的标准化形式,并将数据返回到调用应用程序或应用。
通过此类实施例,几乎为任何设备和计算平台提供了增加新的交易处理及改善现有交易处理的很大的灵活性。这可能包括以新的方式集成新的客户忠诚计划,在所有计算平台等以标准化方式增加强制ID验证。此外,由于每个脚本都可在代理的脚本执行环境内执行,代理位于组织的每个支持的计算和设备平台上,写入一次的脚本代码可在任何地方执行。此外,当前脚本代码的分发通过代理来进行,非常方便。从而简化和加速了开发,减少了开发和维护成本、工作量和时间。
本文参照图形对该等及其他实施例加以描述。
在下文的详细描述中,引用了构成本文组成部分的附图,并在所述附图中以图示方式显示了其中可以实施发明主旨事项的特定实施例。该等实施例乃以足够的细节予以描述,以确保本领域的技术人员能够实施它们,并且需要了解的是,可以利用其他实施例,且可以在不偏离发明主旨事项范围的情况下做出结构、逻辑及电气改变。该等发明主旨事项的实施例在本文中可以单独及/或共同地被称为“发明”,其仅仅是为了方便而无意将本申请的范围主动限制为任何单个发明或发明概念(如果实际披露的多于一个的话)。
因此,下文的描述不应被视为具有限制意义,并且发明主旨事项的范围由所附权利要求予以界定。
在一个实施例中,本文描述的功能或算法可以以硬件、软件或软件和硬件的组合来实现。软件包括存储在诸如存储器或其他类型的存储设备等计算机可读媒体上的计算机可执行指令。此外,所描述的功能可对应于模块,其可以是软件、硬件、固件或其任何组合。多个功能以所期望的一个或多个模块来执行,并且所描述的实施例仅仅是示例。软件在数字信号处理器、ASIC、微处理器或在系统(例如个人计算机、服务器、路由器或能够处理数据的其他设备,包括网络互连设备)上操作的其他类型的处理器上执行。
某些实施例实现其中相关控制及数据信号在模块之间及通过模块传送的两个或多个具体互连的硬件模块或设备中的功能,或作为应用程序专用集成电路的一部分。因此,示范流程可适用于软件、固件及硬件实现。
根据一个示例实施例,图1是系统100的逻辑方框图。系统100是一些实施例可以在其内实施和执行的计算环境的实例。系统100包括多个不同的客户端类型。客户端类型可能包括一个或多个移动设备,如智能手机102、平板电脑104和智能手表(未画出)。客户端类型还可以包括个人计算机106、旧企业系统108和终端110,如POS终端和自助服务终端(SST)。SST可包括一个或多个自动柜员机(ATM)、自助服务结帐台(SSC)、自助图书馆结帐台、信息亭和售货机等。
每个不同的客户端类型与网络112连接。网络112可以是一个网络类型或各种网络类型组合。例如,网络可以是局域网或广域网、安全网络、因特网、无线服务提供商网络、网络及其它网络类型。在一些实施例中,其它类型的网络可作为网络112的一部分或位于客户端-类型和另一个设备之间,例如,智能手机102或平板电脑104和智能手表之间的或其它近场通信连接。
也与网络112连接的是企业系统114。如本发明所示,企业系统114提供一组标准服务116。标准服务116可包括网络服务器、网络服务及企业系统114进程内可访问的和其它计算系统和设备经网络112可访问的其它数据处理服务。例如,标准服务可为在各种客户端类型客户端102、104、106、108、110上执行的应用程序和应用提供交易处理服务。一些此类服务可包括定价、计税、运输估计、相关客户忠诚度计划及其它此类服务。在一些实施例中,此类服务116可通过客户端102、104、106、108、110和企业系统114上执行的应用程序、应用和它们的进程直接访问。在一些实施例中和其它实施例中,服务116可通过在企业系统114的数据存储设备或可由企业系统访问的数据存储设备上的扩展流注册表120所储存的扩展脚本来访问。扩展流注册表120储存由代理进程118、126及应用和应用程序124从扩展流注册表120所检索到的脚本,代理进程118、126位于企业系统114上,应用和应用程序124位于客户端102、104、106、108、110上,并在这些客户端上执行。
扩展脚本由扩展流注册表120储存,在扩展流注册表120中集中储存、管理和编辑版本。脚本通常以脚本语言,例如JavaScript或其它类似或衍生脚本语言进行编码。代理进程118、126位于计算设备上或应用程序或应用124内,包括虚拟机器形式的脚本执行环境,扩展脚本在该环境内执行。代理进程118、126可以是应用或应用程序124的一部分或是加在它上面的模块。在一些实施例中,代理进程118、126可添加到旧系统的程序内,例如,旧企业系统108,或作为可以在此种旧系统计算环境内执行或访问的服务。
在一些实施例中,代理进程118、126从客户端102、104、106、108、110上执行的应用或应用程序124接收扩展脚本调用。在一些实施例中,根据应用程序或应用开发者或其它团体,如公司、工业团体、标准制定机构等制定的标准建立和调用扩展脚本。在此类实施例中,扩展脚本与应用或应用程序124中包含的扩展点或添加到应用或应用程序的扩展点相关联。这种扩展点是其中扩展脚本调用到代理进程118、126,从而执行该扩展点的扩展脚本的点。当扩展点和扩展脚本标准化时,调用应用或应用程序124提供带调用扩展脚本预期扩展脚本调用的参数数据。此外,代理进程能够正确地识别和检索调用的扩展脚本。
当扩展脚本调用通过代理进程118、126接收时,代理进程118、126可部分根据配置设置检索扩展脚本。配置设置可配置代理进程118、126,使其总是从扩展流注册表120检索扩展脚本,将检索的扩展脚本缓存在客户端102、104、106、108、110的存储器内,针对扩展流注册表120的最新版本,检查缓存扩展脚本的版本,只下载更新的版本,否则利用缓存的版本等。不管怎样,代理进程118、126都检索调用的扩展脚本。
但是,在一些情况下,扩展脚本可包括调用其中的其它扩展脚本。例如,调用的扩展脚本可包括调用三个其它扩展脚本。当从存储器内缓存的版本检索此种扩展脚本时,代理进程118、126可首先对扩展脚本进行评估,明确其内是否还有任何其它扩展脚本。当其内有任何其它扩展脚本时,在此例中是三个扩展脚本,代理进程118、126可根据关于扩展脚本检索的配置设置,以单一的方式检索其它三个扩展脚本。在一些实施例中,当从扩展流注册表120检索扩展脚本时,扩展流注册表120的进程可以识别所请求的扩展脚本内包含的扩展脚本调用。当完成此种识别时,扩展流注册表120的进程还可以检索和提供请求的扩展脚本及其它脚本给请求代理118、126。
一旦代理进程118、126已经检索调用的扩展脚本,及其内可调用的其它任何扩展脚本,代理进程118、126执行这些扩展脚本。值得指出的是,扩展脚本还可以包括通过网络112调用一个或多个标准服务116或其它服务112。
通过这些实施例,在不同客户端类型的客户端102、104、106、108、110上执行的应用和应用程序124能够利用单一开发和部署的扩展脚本代码,增强现有功能和新部署的功能。不管交易在哪里进行或在哪种类型的设备上进行,都可为数据处理提供通用性和一致性。
根据一个示例实施例,图2是方法200的流程方框图。方法200是包含图1扩展流注册表120的企业系统114可执行的方法的实例。
方法200包括在扩展流注册表内维持202代理进程脚本扩展环境内可执行的扩展脚本的版本集。在此类实施例中,多个扩展脚本集与应用扩展点有关。方法200还经由执行所述方法的计算机的网络接口设备,从代理进程接收204包括应用扩展点标识符的扩展脚本检索请求。应用点标识符通常是调用扩展脚本的名称,但通常与产生扩展脚本检索请求的应用程序扩展点或应用扩展点有关。然后,方法200从扩展流注册表检索206与扩展脚本检索请求中包含的应用扩展点标识符有关的扩展脚本的最新版本。检索到的扩展脚本经由网络接口设备传输208给请求代理进程。
在一些实施例中,接收的204扩展脚本检索请求包括由代理进程所缓存的扩展脚本版本标识符。在此类实施例中,方法200将收到的版本标识符与扩展流注册表中维持的与应用扩展点标识符有关的扩展脚本的最新版本的版本标识符进行比较。当版本标识符与所请求的扩展脚本的最新版本的版本标识符相等时,方法200将放弃检索206和传输208,可能传输一种指示,表明代理进程已经拥有所请求的扩展脚本的最新版本。
方法200的一些实施例进一步识别检索到的206扩展脚本内调用的任何其它扩展脚本,然后,检索任何识别的其它扩展脚本。在方法200的此类实施例中,检索到的扩展脚本的传输208包括传输已经检索到的任何其它扩展脚本。
在一些此类实施例中,当扩展脚本包括其内调用的多个其它扩展脚本时,扩展脚本包括顺序调用多个其它扩展脚本中的每个脚本。此类实施例中顺序调用多个其它扩展脚本通常包括将前面其它扩展脚本的输出与后面其它扩展脚本的输入相关联。
根据一个示例实施例,图3是方法300的流程方框图。方法300是可能出现企业系统114和客户端102、104、106、108、110上的代理进程118、126所执行的方法的实例。
方法300包括由在能够执行应用的计算设备上所执行的代理进程从应用(可能是移动设备或其它类型设备上执行的应用程序)上接收302扩展脚本调用和参数。然后,方法300根据代理进程的脚本执行环境内的参数,检索和执行304扩展脚本,获得结果数据。然后,代理进程将结果数据返回306到应用。在一些实施例中,参数被以特定的格式与扩展脚本一起接收302,结果数据以同样的特定格式返回306到应用。在此类实施例中,数据以与调用应用预期数据在应用内进一步处理的特定格式相同的格式返回306。因此,在执行扩展脚本时可能发生的关于或涉及数据的其它处理,并不会破坏应用的执行。
在一些实施例中,当检索304扩展脚本时,如果脚本缓存在存储器内,代理进程从计算设备的存储器检索扩展脚本。当扩展脚本未缓存在计算设备的存储器内时,此类实施例可从扩展流注册表(如图1扩展流注册表120)检索304扩展脚本。在一些此类实施例中,代理进程包括配置设置,它识别何时试图从存储设备检索扩展脚本、何时绕过从存储器检索扩展脚本的企图。例如,配置设置可表明,每次调用扩展脚本时,代理进程仅从扩展流注册表检索扩展脚本。在其它实施例中,配置设置可指导代理进程向扩展流注册表发送检索304请求,该请求包含存储器中缓存的扩展脚本版本的版本标识符。然后,扩展流注册表返回扩展脚本的更新版本或提示缓存的扩展脚本是最新版本。
在一些实施例中,检索304的扩展脚本包括调用至少一个调用时在代理进程的脚本执行环境内执行的其它扩展脚本。在一些此类实施例中,当检索304扩展脚本时,扩展流注册表自动返回其它扩展脚本。但是,在其它实施例中,在执行扩展脚本之前,代理进程识别在检索到的304扩展脚本内调用的其它扩展脚本,然后再检索其它扩展脚本。在另一个实施例中,方法300在检索到的扩展脚本的执行期间执行,但是,接收的302扩展脚本调用就会产生,并会被返回306到代理进程。
代理进程执行304的一些扩展脚本可包括通过网络调用服务。此类服务可通过由代理进程所支持的一个或多个协议来实现,或通过与代理进程通信的另一个系统间接地实现。
根据一个示例实施例,图4是计算设备的方框图。在一个实施例中,多个该等计算机系统被用于一个分布式网络中,以在基于交易的环境中执行多个组件。一个面向对象、面向服务或面向其他的架构可能被用以实现该等功能,并在多个系统及组件之间进行通信。以计算机410形式存在的一个示例计算设备可能包括处理单元402、存储器404、可移动存储设备412,以及非可移动存储设备414。尽管示例计算设备被图示及描述为计算机410,但在不同的实施例中该计算设备可以不同形式存在。例如,该计算设备可以是智能手机、平板电脑、智能手表或其他包含相同或类似元件(如图4所示及描述)的计算设备。智能手机、平板电脑和智能手表等设备通常统称为移动设备。此外,尽管各种数据存储元件被图示为计算机410的组成部分,但是,存储设备还可以或者替代地包括经由网络(例如互联网)可存取的基于云端的存储设备。
回到计算机410,存储器404可能包括易失性存储器406和非易失性存储器408。计算机410可能包括—或者能够存取包括各种电脑可读媒体的计算环境,例如易失性存储器406和非易失性存储器408,可移动存储设备412和非可移动存储设备414。计算机存储包括随机存取存储器(RAM)、只读存储器(ROM)、可擦可编程只读存储器(EPROM)及电可擦可编程只读存储器(EEPROM)、闪存或其他存储器技术、光盘只读存储器(CD ROM)、数码多功能光碟(DVD)或其他光盘存储器、盒式磁带、磁带、磁盘存储器或其他磁存储设备,或者能够存储计算机可读指令的任何其他媒体。
计算机410可能包括或能够存取包括输入416、输出418,以及通信连接420的计算环境。输入416可以包括一个或多个触摸屏、触摸板、鼠标、键盘、摄像头,一个或多个设备-专用按钮,一个或多个集成在计算机内或经由有线或无线数据连接与计算机410连接的传感器,及其它输入设备。计算机410可使用通信连接420与一个或多个远程计算机,例如数据库服务器,网络服务器,及其它计算设备连接,从而在网络环境中操作。一个示例远程计算机可包括个人计算机(PC)、服务器、路由器、网络个人计算机、对等设备或其他共用网络节点等等。通信连接420可能是一个网络界面设备,如一个以太网卡或无限网卡,或者两者兼备,或者可连接至网络的电路。此处的网络可能包括一个或多个局域网(LAN)、广域网(WAN)、互联网及其他网络。在一些实施例中,通信连接420还可以或替代地包括一个收发器设备,例如可使计算机410从其它设备无线接收数据和传输数据给其它设备的设备。
存储在电脑可读媒体上的电脑可读指令可由计算机410的处理单元402执行。硬盘(磁盘或固态盘)、CD-ROM和RAM是包括永久性计算机可读媒体的物品的一些实例。例如,各种计算机程序425或应用程序(如实现本文图示及描述的一个或多个方法的一个或多个应用及模块,或者可在移动设备上执行的应用程序、应用或模块或通过网络浏览器可予存取的应用程序)可被存储在永久性计算机可读媒体中。
本领域的技术人员将容易理解,可以在不偏离如所附权利要求中表达的本发明主旨事项的原理和范围的情况下,在已经描述或图示的细节、材料及部件的布置和方法阶段方面作出各种其他改变,以便解释发明主旨事项的本质。

Claims (12)

1.一种方法(200),包括:
在扩展流注册表(120)内,维持代理进程脚本执行环境(118或126)中可执行的扩展脚本的版本集,与应用扩展点有关的多个扩展脚本集(步骤202);
经由执行所述方法的计算机的网络接口设备接收来自代理进程(118或126)、包括应用扩展点标识符的扩展脚本检索请求(步骤204);
从扩展流注册表(120)检索与扩展脚本检索请求中所含应用扩展点标识符有关的扩展脚本的最新版本(步骤206);
经由执行所述方法的计算机的网络接口设备,将检索到的扩展脚本传输给代理进程(118或126)(步骤208)。
2.权利要求1所述的方法,其中所述扩展脚本检索请求包括由代理进程所缓存的扩展脚本的版本标识符,所述方法进一步包括:
将扩展检索请求的版本标识符与和在扩展流注册表(120)内所维持的应用扩展点标识符有关的扩展脚本最新版本的版本标识符进行比较;
当扩展检索请求的版本标识符与和扩展流注册表(120)内的应用扩展点标识符有关的扩展脚本最新版本相等时,放弃检索和传输;及
经由执行所述方法的计算机的网络接口设备向代理进程(118或126)传输一个答复,表明代理进程(118或126)缓存的扩展脚本是最新版本。
3.权利要求1或2所述的方法,进一步包括:
识别从检索到的扩展脚本的脚本内所调用的任何其它扩展脚本;
检索在检索到的扩展脚本的脚本内识别的任何其它扩展脚本;
其中传输检索到的扩展脚本包括传输已经检索到的任何其它扩展脚本。
4.权利要求3所述的方法,其中:当扩展脚本包括其中调用的多个其它扩展脚本时,扩展脚本包括顺序调用多个其它扩展脚本中的每个扩展脚本;顺序调用多个其它扩展脚本将前面其它扩展脚本的输出与后面其它扩展脚本的输入相关联。
5.权利要求4所述的方法,其中当扩展脚本被调用时,其会接收指定形式的参数,扩展脚本的输出也是根据所述指定形式来进行的。
6.一个系统(114),包括:
至少一个网络接口设备;
至少一个处理器;
至少一个存储器;及
应用,所述应用储存在至少一个存储器内且可由至少一个处理器执行,从而执行包括扩展点的进程,每个扩展点包括某个应用的代理进程(118或126)的标识符和扩展点调用,代理进程(118或126)进一步可由至少一个处理器执行,以提供脚本执行环境和执行数据处理活动,数据处理活动包括:
接收具有来自应用的参数的扩展点调用(步骤302);
检索与扩展点调用有关的扩展脚本;
根据脚本执行环境内的参数,执行扩展脚本,得到结果数据(步骤304);
将结果数据返回到应用(步骤306)。
7.权利要求6所述的系统,其中以第一格式接收参数;结果数据采用第一格式。
8.权利要求6所述的系统,其中当检索扩展脚本时,当脚本缓存在至少一个存储器内时,代理进程(118或126)从至少一个存储器检索扩展脚本;当扩展脚本未缓存在至少一个存储器内时,代理进程(118或126)经由至少一个网络接口设备从网络位置的扩展流注册表(120)检索扩展脚本;代理进程的数据处理活动进一步包括:当从扩展流注册表(120)检索到扩展脚本时,将扩展脚本缓存在至少一个存储器内。
9.权利要求8所述的系统,其中代理进程(118或126)包括配置设置,其指导代理进程(118或126)进行如下事项:绕过从至少一个存储器检索扩展脚本的企图;根据扩展脚本的缓存版本的版本标识符(缓存时)询问扩展流注册表(120);只有当至少一个存储器确实包括扩展脚本的缓存版本时或当扩展流注册表(120)包含比在至少一个存储器内缓存的扩展脚本更新的版本时,才检索扩展脚本。
10.权利要求6至9任一项所述的系统,其中:扩展脚本是可由位于应用扩展点的应用调用的多个扩展脚本中的一个脚本,每个应用扩展点与一个扩展脚本相关联;至少一个应用扩展脚本不包括用于执行的功能脚本。
11.一种方法,包括权利要求1至5中的任意一个技术特征或者技术特征的任意组合。
12.一个系统,包括权利要求6至10中的任意一个技术特征或者技术特征的任意组合。
CN201610710314.XA 2015-08-28 2016-08-23 动态服务扩展性 Pending CN106484391A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/838,692 2015-08-28
US14/838,692 US20170060650A1 (en) 2015-08-28 2015-08-28 Dynamic service extensibility

Publications (1)

Publication Number Publication Date
CN106484391A true CN106484391A (zh) 2017-03-08

Family

ID=56507426

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610710314.XA Pending CN106484391A (zh) 2015-08-28 2016-08-23 动态服务扩展性

Country Status (3)

Country Link
US (1) US20170060650A1 (zh)
EP (1) EP3136232A1 (zh)
CN (1) CN106484391A (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200210210A1 (en) * 2018-12-26 2020-07-02 Servicenow, Inc. Systems and methods for enabling widget customization via extension points
US11061696B2 (en) * 2019-01-22 2021-07-13 Servicenow, Inc. Extension points for web-based applications and services
CN112783978A (zh) * 2021-01-28 2021-05-11 北京东方优播网络科技有限公司 数据传输方法、装置、计算机系统和存储介质
US11809904B2 (en) * 2021-04-29 2023-11-07 Shopify Inc. System and method for executing multiple scripts at a single extension point

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101571876A (zh) * 2009-05-26 2009-11-04 华为技术有限公司 脚本程序运行逻辑扩展的方法、服务器和客户端
US20110197184A1 (en) * 2010-02-05 2011-08-11 Microsoft Corporation Extension point declarative registration for virtualization
US20120159145A1 (en) * 2010-12-17 2012-06-21 Oracle International Corporation Plug-in system for software applications
CN103927163A (zh) * 2014-03-06 2014-07-16 中国人民解放军装甲兵工程学院 插件框架处理装置及插件系统
CN104298511A (zh) * 2014-10-10 2015-01-21 王钟 实现网络化远程插件的方法及系统
CN104699511A (zh) * 2015-03-27 2015-06-10 北京奇虎科技有限公司 插件升级方法及装置

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5915112A (en) * 1996-01-02 1999-06-22 International Business Machines Corporation Remote procedure interface with support for multiple versions
US6202205B1 (en) * 1998-07-21 2001-03-13 Hewlett-Packard Company System and method for profile-based, on-the-fly optimization of library code
US6920607B1 (en) * 1999-12-15 2005-07-19 Microsoft Corp. Methods and systems for dynamically creating user interfaces
US6883168B1 (en) * 2000-06-21 2005-04-19 Microsoft Corporation Methods, systems, architectures and data structures for delivering software via a network
US7596611B1 (en) * 2002-04-01 2009-09-29 Veritas Operating Corporation Method and apparatus for maintaining information for use in the configuration of a client
US7519801B2 (en) * 2003-12-18 2009-04-14 International Business Machines Corporation Post-install configuration of modules during startup of a modular application platform
US8539497B2 (en) * 2006-03-30 2013-09-17 Microsoft Corporation Method for organizing software so the set of extensions for an extendable application can be run securely
US8132188B2 (en) * 2006-04-21 2012-03-06 International Business Machines Corporation Method and system for extension registry filtering
US8356294B2 (en) * 2007-02-13 2013-01-15 Cisco Technology, Inc. Controlling and extending programmable network functions using a declarative approach
US8220007B1 (en) * 2007-10-01 2012-07-10 Adobe Systems Incorporated Systems and methods for extension of software features without changing the host software binary code
US20150205594A1 (en) * 2008-04-30 2015-07-23 Adobe Systems Incorporated Delivery and updating of extensions to software products
US8667480B1 (en) * 2010-04-19 2014-03-04 Google Inc. Automatically updating browser extensions, and applications thereof
CN102682014A (zh) * 2011-03-14 2012-09-19 腾讯科技(深圳)有限公司 在浏览器上实现的开放式插件管理平台及插件管理方法
US9563488B2 (en) * 2014-05-29 2017-02-07 Apple Inc. Sharing extension points to allow an application to share content via a sharing extension

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101571876A (zh) * 2009-05-26 2009-11-04 华为技术有限公司 脚本程序运行逻辑扩展的方法、服务器和客户端
US20110197184A1 (en) * 2010-02-05 2011-08-11 Microsoft Corporation Extension point declarative registration for virtualization
US20120159145A1 (en) * 2010-12-17 2012-06-21 Oracle International Corporation Plug-in system for software applications
CN103927163A (zh) * 2014-03-06 2014-07-16 中国人民解放军装甲兵工程学院 插件框架处理装置及插件系统
CN104298511A (zh) * 2014-10-10 2015-01-21 王钟 实现网络化远程插件的方法及系统
CN104699511A (zh) * 2015-03-27 2015-06-10 北京奇虎科技有限公司 插件升级方法及装置

Also Published As

Publication number Publication date
EP3136232A1 (en) 2017-03-01
US20170060650A1 (en) 2017-03-02

Similar Documents

Publication Publication Date Title
US10754513B2 (en) Updating assets rendered in a virtual world environment based on detected user interactions in another world
CN102609813B (zh) 基于云的主数据管理体系结构
CN107239279A (zh) 基于电商类PaaS平台系统的订单数据获取和推送方法
CN106484391A (zh) 动态服务扩展性
CN111651746A (zh) 登录数据处理方法、装置、设备及系统
CN111262897B (zh) 服务调用路由处理方法、装置及系统
CN106301885A (zh) 统一业务管理的方法和系统
CN105243407A (zh) 读写智能卡的方法及装置
CN110473036A (zh) 一种生成订单号的方法和装置
CN111415146A (zh) 资源数据的处理方法、装置及设备
CN111258567B (zh) 服务代码开发处理方法及装置
CN108667872A (zh) 用于调度服务器的存档方法和装置
CN106095886A (zh) 一种数据处理方法及其装置
CN112000746B (zh) 数据管理方法、装置及服务器
CN109345249A (zh) 一种支付失败处理方法及装置
CN110858209A (zh) 业务对象访问/发布方法、装置、系统及电子设备
CN111506340B (zh) 业务规则信息处理方法、装置及系统
US9232388B2 (en) Initiation of wireless service
CN108932785B (zh) 一种彩票微服务调用方法、系统及移动智能终端
CN111801696A (zh) 支付页面管理方法、设备、支付系统以及存储介质
US11574293B2 (en) Information processing apparatus and method, and information processing system
CN111539730A (zh) 基于区块链的数据处理方法、装置和电子设备
US20240020628A1 (en) Inventory management for a network traffic surge resistant platform
US11763257B1 (en) Group inventory management for a network traffic surge resistant platform
US10592309B2 (en) Using smart data to forecast and track dual stage events

Legal Events

Date Code Title Description
C06 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: 20170308

RJ01 Rejection of invention patent application after publication