CN108123996B - 应用管理服务实例 - Google Patents

应用管理服务实例 Download PDF

Info

Publication number
CN108123996B
CN108123996B CN201711148679.9A CN201711148679A CN108123996B CN 108123996 B CN108123996 B CN 108123996B CN 201711148679 A CN201711148679 A CN 201711148679A CN 108123996 B CN108123996 B CN 108123996B
Authority
CN
China
Prior art keywords
service
instance
application
manager
agent
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.)
Active
Application number
CN201711148679.9A
Other languages
English (en)
Other versions
CN108123996A (zh
Inventor
P.埃伯莱因
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.)
SAP SE
Original Assignee
SAP SE
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 SAP SE filed Critical SAP SE
Publication of CN108123996A publication Critical patent/CN108123996A/zh
Application granted granted Critical
Publication of CN108123996B publication Critical patent/CN108123996B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/562Brokering proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • 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
    • 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
    • G06F9/548Object oriented; Remote method invocation [RMI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • H04L67/125Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)

Abstract

利用控制器注册服务代理和实例管理器代理。在控制器从与应用相关联的部署器接收请求以将实例管理器的服务实例绑定到应用。将接收到的请求从控制器转发到实例管理器代理以实例化实例管理器的服务实例。将由实例管理器代理从实例管理器的实例化服务实例返回的凭证从控制器转发到部署器。

Description

应用管理服务实例
技术领域
本公开涉及具有实例管理功能的用于应用服务实例管理的方法和系统。
背景技术
面向微服务的应用平台(例如,XS ADVANCED或底层CLOUD FOUNDARY PaaS)将服务作为应用运营商在部署时实例化和绑定的资源来管理。对于例如数据库中的模式的仅需要特定类型的固定数量(通常为一个) 的实例的应用,这是合适的模型。然而,对于利用(leverage)服务实例进行租户分离的多租户能力的应用(例如,每个租户将其数据存储在单独的模式中),这样的静态绑定是不够的。这样的应用需要每当添加新的租户时在运行时创建额外的实例,并且在处理特定租户的请求时还需要连接到这些实例中的任何一个。
发明内容
本公开描述了方法和系统,包括计算机实施的方法、计算机程序产品和用于具有实例管理功能的应用服务实例管理的计算机系统。
在一种实施方式中,将服务代理(Service Broker)和实例管理器代理 (InstanceManager Broker)注册到控制器。在控制器从与应用相关联的部署器 (Deployer)接收请求,以将实例管理器的服务实例绑定到应用。将接收到的请求从控制器转发到实例管理器代理,以实例化实例管理器的服务实例。将由实例管理器代理从实例管理器的实例化的服务实例返回的凭证从控制器转发到部署器。
上述实现可以使用计算机实施的方法来实现;非暂时的计算机可读介质存储执行计算机实施的方法的计算机可读指令;以及计算机实施的系统,包括与硬件处理器互操作地耦合的计算机存储器,硬件处理器被配置为执行存储在非暂时计算机可读介质上的计算机实施的方法/指令。
在本说明书中描述的主题可以在特定实施方式中实现,以便实行一个或多个以下优点。首先,所描述的应用管理的服务实例概念利用了用于服务实例创建和绑定的现有功能和实现,以为多租户和其他用例提供动态服务实例供应。现有的服务代理接口可以被利用来通过应用在运行时可以使用 (consume)的REST API来提供服务。其次,这个概念是现有接口完全兼容的扩展。第三,这些扩展通过重用现有的服务代理实现,而不修改现有的服务代理的实现(或不进行实质性的修改),以便既易于应用使用,又简化了提供的方式,大大增强了应用的服务实例管理功能。其他优点对于本领域普通技术人员是显而易见的。其他优点对于本领域普通技术人员是显而易见的。
本说明书的主题的一个或多个实现的细节在附图和下面的描述中阐述。从描述、附图和权利要求中,主题的其它特征、方面和优点将变得显而易见。
附图说明
图1是示出根据实施方式的利用服务代理的应用服务实例管理的当前静态组件/数据关系的框图。
图2是根据实施方式的用于利用服务代理的当前静态应用服务实例管理的示例方法的流程图。
图3是示出根据实施方式的用于利用实例管理器代理和实例管理器的应用服务实例管理的组件/数据关系的框图。
图4A-图4B表示了示出了根据实施方式的用于利用实例管理器和实例管理器代理的应用服务实例管理的示例方法。
图5是示出了根据实施方式的用于提供与本发明描述的所描述的算法、方法、功能、过程、流程和过程相关联的计算功能的示例性计算机系统的框图。
各附图中的相似附图标记和标号指示相同的元件。
具体实施方式
以下详细描述描述了允许应用动态管理服务实例的功能,并且被呈现以使任何本领域技术人员能够在一个或多个特定实施方式的上下文中制作和使用所公开的主题。所公开的实施方式的各种修改对于本领域普通技术人员将是显而易见的,并且所描述的原理可以应用于其它实施方式和应用而不脱离本公开的范围。因此,本公开不旨在限于所描述或示出的实施方式,而是被赋予与本文公开的原理和特征一致的最广范围。
由于用户期望丰富、交互和动态的体验,在线或网络可用的多租户 (Multi-Tenancy-Capable,MTC)软件应用(以下称为“应用”)必须是可扩展的,具有最少的停机时间,并且是云-计算-环境使能的。整体式(Monolithic) 应用不能满足这些要求。然而,在微服务架构(MicroServices Architecture, MSA)中,应用通常被划分为多个围绕功能组织的、可单独部署的、焦点集中的、可重复使用的容错软件服务(以下称为“服务”)(其中每个都可能会被分解为附加的支持子服务)(例如,数据库持久性服务、电子邮件发送服务、作业调度服务、用户界面管理服务和其他服务)。服务可以作为用于调用特定服务的接口在各种软件/硬件环境、数据库、编程语言等中实现。由于对应用的一小部分的更改只需要一个或少量的服务进行重建和重新部署,所以MSA自然是模块化的,并允许更连续的交付型软件开发过程。
特定应用通常使用服务绑定(例如,包含服务URL和访问凭证的一组键/值对),使应用能够知道与各种各样的服务中的每一个互动所需的数据/ 接口要求。MSA应用平台(例如,SAP HANA XS ADVANCED或基础的 CLOUD FOUNDARY平台即服务(PaaS))将服务管理为部署器在部署时实例化和绑定的资源(例如,第三方或应用开发者/管理员)。这是适用于诸如数据库中的模式的仅需要固定数量的特定类型的服务实例(通常为一个)的应用,是一个合适的模型。
然而,对于利用对租户(以下称为“租户”)(例如,每个租户将其数据存储在单独的数据库模式中)的服务实例(以下称为“服务实例”)的分离的应用,静态绑定的这种类型是不够的。这样的应用需要能够每当将新租户添加(或载入)到云-计算-类型的环境中时,在运行时动态地创建额外的服务实例,并且还需要当处理适用于特定的租客的请求时,连接到任何一个服务实例。当新租户订阅应用时,应用通过载入(onboard)程序知道租户是新的,并且应用有机会为租户准备其服务的规定(provision)。
为了提供这些要求,引入了实例管理器代理和实例管理器组件。实例管理器公开了可由使用绑定到实例管理器实例的服务来创建实际服务实例或者将特定服务实例的凭证检索到实例管理器管理(例如,在载入期间,应用可以向实例管理器的服务实例请求动态创建一个或多个服务实例)的应用可以访问的代理状态转移(REST)应用编程接口(API)。实例管理器基于服务代理的功能,服务代理通过为应用提供也动态管理服务实例的功能来处理静态实例创建和绑定。
在当前实施方式中,在高层次上,在应用部署之前,通常由部署器创建用于应用的服务实例。在这里,向控制器发送请求以创建与给定服务计划相关联的给定服务的实例(参见下文)。控制器将此请求转发到根据请求创建新的服务实例的特定服务类型的服务代理。然后,服务实例可以利用另一个请求(例如,由部署器发送)绑定到应用,该请求被从控制器转发到其中创建用于访问服务实例的适当凭证的服务代理。然后,当应用启动时,这些凭证将提供给应用(例如,在环境变量中),以便应用具有访问服务实例所需的信息。利用此方法,应用被静态绑定到在应用运行时期间使用的服务实例。
为了允许应用每当新的租户载入(onboard)时,在运行时动态地创建附加的服务实例,并且当处理对特定租户的请求时连接到这些服务实例中的任何一个,可以由实例管理器代理以与上述当前实施方式中的创建和绑定常规服务实例相同的方式,创建上述实例管理器绑定并绑定到应用。请注意,从服务的服务代理的角度来看,创建和绑定以与当前实施方式相同的方式发生。然而,从应用的角度来看有不同,应用不会访问从其环境变量绑定过程中创建的凭证,而是作为REST调用实例管理器的结果,应用动态接收这些凭证。在这个架构和方法中的高层,请求被发送到控制器(例如,由部署器) 来创建类型实例管理器的服务实例。该请求被转发到创建实例管理器的服务实例的实例管理器代理。
实例管理器本身被认为是公开了REST API的服务,该API可以由应用使用服务绑定到特定实例管理器实例的服务来访问,以创建实际的服务实例,或者检索到该实例管理器管理的特定服务实例的凭证。由于实例管理器通过在运行时调用的API直接提供此访问权限,所以应用可以动态地绑定到由实例管理器管理的任何服务实例。应用管理服务实例概念利用由现有服务代理提供的服务实例创建和绑定功能,为多租户和其他用例提供动态服务实例规定;利用现有的服务代理接口通过应用在运行时可以使用的REST API 来提供服务。
用于使能多租户的应用的动作的高级流程的一个示例可以是:当应用启动时,应用接收用于实例管理器实例,而不是实际的服务实例的凭证。利用这些凭证,每当将新租户添加到应用时,应用调用实例管理器提供的服务,以便创建新的实际服务实例。当租户使用应用并且需要访问实际的服务实例时,应用调用实例管理器的另一个服务,该服务根据例如租户标识符动态地将凭证返回给租户的实际服务实例,该租户标识符可以在服务实例最初创建时被提供。利用返回的凭证,应用可以然后连接到实际的服务实例,根据需要动态切换可用的服务实例,以处理特定租户的请求。在典型的实施方式中,可以缓存服务实例凭证并且可以池化开放的连接,以最小化由对实例管理器的附加调用创建的开销。
实例管理器本身被认为是托管的服务,但是对于实际的服务代理,实例管理器充当附加的控制器(即实际的服务代理需要在实例管理器中注册,因此实例管理器可以管理由实际的服务代理所代理的服务)。对于实际服务代理希望使用实例管理器公开的每个服务和服务计划,实例管理器代理创建相应的托管服务和托管服务计划(例如但不限于将服务名称前缀为“managed_”)。例如,对于SAP HANA数据库服务代理,可能存在与表1 中所示的类似的服务和计划:
服务 计划 托管服务 托管计划
hana hdi-共享 managed_hana hdi-共享
hana sbss
hana 模式 managed_hana 模式
hana 安全存储 managed_hana 安全存储
表1
请注意,在本示例中,sbss计划(静态绑定)不会通过实例管理器公开,因为实例管理器用于动态绑定,并且没有相应的“托管”版本的“sbss”服务计划。另一方面,“hdi共享”、“模式”和“安全存储”服务计划可以通过实例管理器公开。
服务计划由服务代理定义。当服务代理注册到控制器时,控制器将调用服务代理API来检索服务目录。服务目录列出了服务代理提供的所有服务和服务计划。一旦服务代理已注册,控制器将存储这些服务和服务计划,以便控制器可以向消费者提供列表(例如,在常规情况下向部署器,部署器可以使用命令行界面获取所有服务代理的所有服务和服务计划的列表;或者和实例管理器一起,实例管理器验证来自应用的针对特定服务和服务计划的请求,以确定应将请求转发到哪个服务代理以及是否支持请求的服务计划)。
在典型的实施方式中,一个实例管理器可以管理由其他服务代理提供的任何数量的服务和服务计划。当附加的服务代理注册到实例管理器时,实例管理器使用标准的服务代理API获取上述服务和服务计划的服务目录。附加提供到实例管理器的参数可用作过滤器,以做出通过实例管理器可用的服务和服务计划列表,不包括不应通过实例管理器可用的服务和服务计划(例如,在表1中的“sbss”计划)。当应用调用实例管理器API请求相应的动作时,实例管理器还可以使用服务代理API来创建、更新、删除等服务实例和绑定。
图1是示出根据实施方式的用于利用服务代理的当前静态应用服务实例管理的组件/数据关系100的框图。提供图1仅出于为了增强对所呈现的概念的理解的示例目的。如本领域普通技术人员将会理解的,存在各种其他方式来呈现或排列所呈现的组件、构造它们的相互作用、描述组件间/组件内的相互作用/通信等。只要它们是与本公开一致,这些其他可能的方向、布置等被认为在本公开的范围之内。
在服务实例管理的高级和当前静态实施方式中,通用中间人型控制器 104组件用于创建应用102的服务(例如,服务实例108)的实例。使用控制器104调用服务代理106组件,该组件创建并获取所请求的服务实例的绑定凭证(例如,如上所述的服务绑定)。绑定凭证被传递到控制器104并且用于使用绑定凭证将应用102绑定到服务实例108。注意,与图1中的连接箭头相关联的数字(例如,1.0、1.1、1.2等)在图2中用于参考目的,以将组件之间的对应关系相结合。
应用102是实现运行逻辑并利用在其自身实施方式之外的共享服务的软件应用(例如,如上所述的MTC应用)。虽然服务是共享的,但是每个应用在被称为服务实例108中服务中具有一个(或多个)隔离空间。服务实例108 是提供给应用102的共享服务之内的空间。在数据库服务的示例中,服务可以被认为是数据库系统,并且服务实例108可以被认为是该数据库系统中的数据库模式。
服务代理106管理(或代理)共享服务的服务实例。存在与每个服务类型相关联的服务代理106,但每个服务代理可以管理多种服务类型。服务代理106被配置为创建特定服务的实例,并且能够向需要访问服务实例108的应用102提供连接参数和凭证。
控制器104是应用102和服务代理106之间的中间人。控制器104知道系统中可用的所有服务代理106,并且协调来自应用102的请求特定类型的服务实例108的请求到适当的服务代理106。在一些实施方式中,控制器104 还可以缓存由服务代理106提供的连接参数和凭证,使得可以处理来自应用 102到同一服务实例108的重复绑定请求,而不需要重复地查询服务代理 106。
图2是根据实施方式的用于利用服务代理的当前静态应用服务实例管理的示例方法200的流程图。为了清楚地说明,下面的描述通常在本说明书中的其他附图的上下文中描述方法200。然而,应当理解,方法200可以例如通过适当的任何合适的系统、环境、软件和硬件,或系统、环境、软件和硬件的组合来执行。在一些实施方式中,方法200的各种步骤可以并行、组合、循环或以任何顺序运行。
在202,(1.0)在部署应用之前,通过由部署器(未示出)发送到控制器104的以创建应用102的服务类型的服务实例108的请求,服务的服务实例108被创建并绑定到应用102。例如,每个应用102可以具有服务计划(未示出)-描述每个应用应该/被允许使用哪些服务的数据。服务计划通常存储在由服务代理106可访问的位置。控制器104可以向服务代理106查询可用于特定应用102的可用服务计划的列表。
在图1和图2的静态情况示例中,部署器(未示出)而不是应用102本身创建并将服务实例108绑定到应用102。在典型的实施方式中,应用请求的服务计划被存储在部署描述符文件中,该文件包括在应用中并由部署器用于创建正确的实例。部署器可以读取所请求的应用定义的服务计划,并告知控制器104应用102希望用于各种功能的服务。在逻辑上,这是代表应用102 (在方法200的这个和相应的步骤中)来完成的。为了简单起见,在图1和图2的提供的例子中,发送到控制器104的请求的相应箭头(1.0)被示出为在应用102启动。技术上,这些步骤通常不在应用102本身内部实现。
每个应用102可以接收与服务实例108有关的信息。例如,在数据库的情况中,五个不同的应用102可以使用相同的数据库,但是将创建五个单独的服务实例108(在数据库上下文中,每个应用102将接收它们自己的模式,以便不相互干扰)。从202开始,方法200进行到204。
在204,(1.1)控制器104将部署器服务请求委托给服务代理106以创建应用102的服务类型的服务实例108。这里,控制器104调用服务代理106 (通常每个服务类型有其自己的服务代理106)。在较低层次上,控制器104 调用特定服务代理106的接口(未示出),因为控制器104配置有所需的服务类型的知识。可以根据所需服务的类型,交换描述被调用接口的细节的数据。例如,如果希望切换数据库类型、版本等,则可以修改描述控制器104 应该使用以启动数据库服务生成的数据库的数据结构,并且控制器104将调用适当的服务代理106的更新后的接口信息。从204,方法200进行到206。
在206,(1.2)服务代理106创建(或开始(initiate)创建)服务类型的服务实例108(例如,创建数据库模式的服务)。由服务代理106获得绑定凭证。从206,方法200进行到208。
(208),(2.0)部署器向控制器104发送请求以将所创建的服务实例108 绑定到应用102。从208,方法200进行到210。
在210,(2.1)控制器104将绑定请求委托给服务代理106以将服务实例108绑定到应用102。从210,方法200进行到212。
在212,(2.2)服务代理106为应用102创建服务实例凭证(未示出)(例如,创建可访问相关联的数据库模式的数据库用户),并将服务实例凭证返回给控制器104。从212开始,方法200进行到214。
在214,(3.0)控制器104向应用102提供服务实例凭证以将服务实例 108绑定到应用102。例如,在一个实施方式中,控制器104可以将参数/凭证注入到应用102的环境变量中来实现绑定。从214开始,方法200进行到 216。
在(216),(4.0)启动应用102,并且可以使用服务实例凭证来访问绑定的服务实例108。利用这种方法,应用102被静态地绑定到可以在应用102 的运行时间使用的特定的服务实例108。在该示例中,如果特定服务实例108 崩溃或由应用程序102以某种方式呈现不可达,则应用102不具有使用不同的服务实例108的能力,因为它被绑定到失败的服务实例108。从216开始,方法200停止。
通过实例管理器/实例管理器代理增强功能
在云-计算-类型环境中可以由多个客户使用应用(例如,应用102)的情况下,关于图1和图2描述的实施方式不够。在云计算类型环境中,当用户(例如,租户)登录到应用102时,用户与租户标识符(例如,与租户相关联的数字签名的票据)相关联,并由应用102使用以访问和检索租户的数据。虽然在一些实施方式中,可能配置例如数据库以识别与特定客户/租户相关联的表(例如,当操作数据库模式的数据库表时,在每个查询中,使用特定客户/租户唯一关联的的值),但可扩展性、定制等受到影响,因为一个租户所需的更改最终会影响所有租户(例如,租户希望通过添加一个字段来扩展数据库表-此操作会增加数据库的大小,可能会影响数据库性能等)。在多租户环境中,所需要的是,相同的应用102能够动态地使用多个/不同的服务实例(例如,数据库模式),每个适用于不同租户而应用102不用需要部署多次(即,针对特定租户的每个特定应用102部署)。不是将应用102直接绑定到服务实例108,而是执行间接以将应用绑定到实例管理器,其向特定服务实例108(例如,数据库模式)提供API。应用102可以调用实例管理器来动态获得对服务实例108的访问。
图3是示出根据实施方式的利用实例管理器代理和实例管理器的应用服务实例管理的组件/数据关系的框图300。注意,提供图1仅出于增强对所呈现的概念的理解的示例目的。如本领域普通技术人员将会理解的,存在各种其他方式来呈现或排列所呈现的组件、构造它们的相互作用、描述组件间/ 组件内的相互作用/通信等。只要它们是与本公开一致,这些其他可能的方向、布置等被认为在本公开的范围内。
为了增强图1和图2的功能,通过引入用于应用托管的服务实例的实例管理器代理302和实例管理器304组件来扩展服务代理106功能,而无需修改(或实质性修改)服务代理106。可以通过对实例管理器代理302的调用来创建实例管理器304的服务实例306,而不是创建并将实际服务实例绑定到应用102。服务实例306可以以创建和绑定常规服务实例(例如,图1和图2的服务实例108)相同的方式绑定到应用102。注意,上面参照图1和2 描述的功能也可用于图3和图4A-图4B的组件(例如,控制器104可以访问由服务代理106存储的服务计划,类似于上面相对于控制器104和服务代理106描述的那样)。在一些实施方式中,图1和图3之间的相应组件可以共享一些或全部相同的功能。
在高层次上,服务代理106和实例管理器代理302都注册到控制器104。在注册之后,控制器104向开发者提供来自两个不同代理的供应用102使用的服务(开发者可以使用服务代理106或实例管理器代理302实例化服务)。
服务代理106也注册到实例管理器304。这里,服务代理106在技术上被注册到另一个控制器(这里是实例管理器304)。这也意味着如果另一个特定服务308需要可用/托管,则与特定服务308相关联的服务代理106将简单地向实例管理器304注册它自己。结果,实例管理器304知道可用的服务308 和服务实例108。
服务代理106提供对服务308的服务实例108的访问,并且实例管理器代理302提供对实例管理器304的服务实例306的访问。注意,从控制器104 的观察点实例管理器304作为服务,从服务代理106的观点实例管理器304 作为不同的控制器组件。服务308是将要代理的示例服务,并且通过服务代理106进行代理,而实例管理器304(作为服务)通过实例管理器代理302 代理。开发者可以使用服务代理106将服务308的服务实例108静态地绑定到应用102(例如并且如上所述,跟随从控制器104到服务代理106的SB1 和从服务代理106到服务308的SB2,以返回所创建的静态地绑定到应用102 的服务实例108的凭证),而实例管理器代理302可以被用于将实例管理器 304的服务实例306绑定到应用102以允许将服务308的服务实例108动态分配给应用102。
部署器101通过向控制器104发送请求来请求将实例管理器304的服务实例306静态绑定到应用102。控制器104将请求转发到实例管理器代理302。实例管理器代理302创建/实例化实例管理器304的服务实例306,并将服务实例306的凭证返回给部署器101。部署器101将从控制器104/实例管理器代理302接收到的凭证传递到应用102。凭证用于将服务实例306绑定到应用102。
当应用102启动时,应用102可以使用实例管理器304的静态绑定的服务实例306来请求服务308的服务实例108。应用102请求实例管理器304 的服务实例306创建服务实例108。这是当例如新租户被载入时,来自应用 102的动态REST调用的示例。服务实例306将请求转发到服务代理106。服务代理106创建/实例化服务308的服务实例108,并返回服务实例108的凭证(例如,对于数据库,凭证可以包括数据库模式、数据库的技术用户、数据库的密码等)到实例管理器服务实例306(这里用作调用控制器),其将凭证返回给应用102。应用102使用所接收的凭证访问服务实例108。
图4A-图4B表示示出根据实施方式的用于利用实例管理器的应用服务实例管理的示例性方法400(400a-400b)的流程图。为了表示清楚,下面的描述通常在本说明书中的其它附图的上下文中描述方法400。然而,应当理解,方法400可以例如通过适当的任何合适的系统、环境、软件和硬件,或系统、环境、软件和硬件的组合来执行。在一些实施方式中,方法400的各种步骤可以并行、组合、循环或以任何顺序运行。
在402(1A),服务代理106被注册到控制器104中。从402开始,方法400进行到404。
在404(1B),实例管理器代理302被注册到控制器104。在402和404 的注册之后,控制器104可以从两个不同的代理提供供应用102使用的服务。从404,方法400进行到405。
在405(1C),服务代理106被注册到实例管理器304。这里,服务代理技术上被注册到另一个控制器(这里是实例管理器304)。这也意味着如果另一个特定服务308需要可用/托管,则与特定服务308相关联的服务代理106 将简单地向实例管理器304注册它自己。结果,实例管理器304知道可用的服务308和服务实例108。从405,方法400进行到406。
在406(2A),部署器101通过向控制器104发送请求来请求将实例管理器304的服务实例306绑定到应用102。从406,方法400进行到408。
在408(2B),控制器104将请求转发到实例管理器代理302。从408,方法400进行到410。
在410(2C),实例管理器代理302创建/实例化实例管理器304的服务实例306,并将服务实例306的凭证返回给部署器101。从410,方法400 进行到412。
在412(2D)处,部署器101将接收到的凭证从控制器104/实例管理器代理302传递到应用102。凭证用于将实例化的服务实例306绑定到应用102。从412,方法410进行至414。
在414(3A),在启动时,应用102请求服务实例306创建服务实例108。从414,方法400进行到图4B中的416。
在416(3B),服务实例306将来自应用102的请求转发到服务代理106。从416,方法400进行到418。
在418(3C),服务代理106创建/实例化服务308的服务实例108并返回服务实例108的凭证(例如,对于数据库,凭证可以包括数据库模式、数据库的技术用户、数据库密码等)到实例管理器服务实例306(这里是调用控制器),其将凭证返回给应用102。从418,方法400进行到420。
在420(4),应用102使用接收到的凭证访问服务实例108。在420后,方法400停止。
如果当使用有效凭证请求时,所请求的服务实例108未运行,则可以使系统组件(未示出)以适当地启动服务实例108。如果租户完成使用服务实例108,则服务实例108可以从应用102断开连接,并在应用102的后续请求之后重新连接(例如,租户登录到应用102并再次需要服务实例)。通常,实例管理器304为所有注册的服务代理106保持可用服务实例108凭证的记录(当服务308的新服务实例需要被创建/删除时,实例管理器服务实例306 调用服务代106,例如创建绑定或删除绑定)。以这种方式,实例管理器服务实例306可以将信息传递给应用102,而不需要始终联系服务代理106。在 420之后,方法400停止。
注意,如果服务实例108失败,则应用102可以动态地请求创建新的服务实例108以供使用。实例管理器服务实例306可以回复来自应用102的对其管理的服务实例108和凭证列表的请求(像控制器104可以响应对其管理的静态服务实例108的类似请求)。
针对上述服务计划的讨论,部署器101可以选择特定服务所期望的服务计划的类型。部署器101可以使用详述每个服务的可用服务计划(例如静态、托管等)的服务目录(例如,参见上面的表1)。特定服务计划可以作为上面图3中2A的参数发送。当控制器104接收到创建请求时,控制器104将基于服务目录的知识将服务计划参数转发到适当的代理(服务代理106或实例管理器代理302)。在“托管”服务计划的情况下,控制器104将请求转发到实例管理器代理302,并且该请求将被转发到实例管理器,其中相应的服务实例306的实例将被实例化。部署器101将服务计划参数传递给应用102。应用102从实例管理器服务实例306请求服务实例108。请注意,实例管理器服务实例306将在实例管理器服务实例306被创建时,使用部署器101所请求的服务计划。实例管理器服务实例306将服务计划参数传递给服务代理 106,以便为所请求的服务计划实例化适当的服务实例108。实例管理器服务实例306存储当创建实例管理器服务实例306时所请求的服务计划。这允许实例管理器服务实例306稍后在应用102调用该实例管理器服务实例306请求新的服务实例108时注入该信息。如上所述,在这一点,应用102不能再改变主意并传递另一个服务计划,因为这已经利用实例管理器服务实例306 确定了。
图5是根据实施方式的用于提供与本发明所述的所描述的算法、方法、功能、过程、流程和过程相关联的计算功能的示例性计算机系统500的框图。所示的计算机502旨在包括诸如服务器、台式计算机、膝上型计算机/笔记本计算机、无线数据端口、智能电话、个人数字助理(Personal Data Assistant, PDA)、平板计算设备、这些设备内的一个或多个处理器、或任何其他合适的处理设备,包括计算设备的物理或虚拟实例(或两者)。另外,计算机502 可以包括计算机,其包括诸如键板、键盘、触摸屏或可以接受用户信息的其他设备的输入设备,以及包括数字数据、视觉或音频信息(或信息的组合) 或图形用户界面(GraphicalUser Interface,GUI)的传达与计算机502的操作相关联的信息的输出设备。
计算机502可以作为客户端、网络组件、服务器、数据库或其他持久性的角色,或者用于执行在本公开中所描述的主题的计算机系统的任何其他组件(或角色的组合)。所示的计算机502可与网络530可通信地耦合。在一些实施方式中,计算机502的一个或多个组件可被配置为在包括基于云计算的、本地的、全局或其他环境(或环境的组合)的环境中运转。
在高层次上,计算机502是可操作以接收、发送、处理、存储或管理与所述主题相关联的数据和信息的电子计算设备。根据一些实施方式,计算机 502还可以包括或可通信地耦合应用服务器、电子邮件服务器、网络服务器、缓存服务器、流数据服务器或其他服务器(或服务器的组合)。
计算机502可以通过网络530从客户端应用(例如,在另一计算机502 上运行)接收请求,并通过在适当的软件应用中处理所述请求来响应所接收的请求。此外,请求也可以从内部用户(例如,从命令控制台或通过其他适当的访问方法)、外部或第三方、其他自动化应用以及任何其他适当的实体、个人系统或计算机发送到计算机502。
计算机502的组件中的每一个可以使用系统总线503进行通信。在一些实施方式中,计算机502的任何或全部组件,硬件或软件两者(或硬件和软件的组合),可以在系统总线503上使用应用编程接口(API)512或服务层 513(或API 512和服务层513的组合)彼此或者与接口504接口(或两者的组合)连接。API 512可以包括对例程、数据结构和对象类的规范。API 512 可以是计算机语言独立的或依赖的,并且指的是完整的接口、单个功能、甚至一组API。服务层513向计算机502或可通信地耦合到计算机502的其他组件(无论是否示出)提供软件服务。对于使用该服务层的所有服务使用者,计算机502的功能可以访问。诸如由服务层513提供的软件服务通过定义的接口提供可重复使用的定义的功能。例如,接口可以是使用JAVA、C++或其他合适语言编写的软件,以可扩展标记语言(XML)格式或其他合适格式提供数据。尽管被示为计算机502的集成组件,但是替代实施方式可以将 API 512或服务层513示出为与计算机502的其他组件有关的独立组件或可通信地耦合到计算机502的其他组件(无论是否示出)。此外,在不脱离本公开的范围的情况下,API 512或服务层513的任何或所有部分可以被实现为另一软件模块、企业应用或硬件模块的孩子或子模块。
计算机502包括接口504。尽管示出为图5中的单个接口504,根据计算机502的特定需要、期望或特定实施方式使用两个或更多个接口504。接口504由计算机502使用来与连接到网络530的分布式环境中的其他系统进行通信(无论是否显示)。通常,接口504包括以软件或硬件(或软件和硬件的组合)编码并可操作以与网络530通信的逻辑。更具体地,接口504可以包括支持与通信相关联的一个或多个通信协议的软件,使得网络530或接口的硬件可操作以在所示的计算机502内部和外部传达物理信号。
计算机502包括处理器505。尽管被示为图5中的单个处理器505,但可以根据计算机502的特定需要、期望或特定实施方式来使用两个或更多个处理器。通常,处理器505运行指令并操纵数据以执行计算机502的操作以及任何算法、方法、进程、流程和过程,如本公开所述。
计算机502还包括数据库506,其可以保存可以连接到网络530(无论是否示出)的计算机502或其他组件(或两者的组合)的数据。例如,数据库506可以是存储与本公开一致的数据的内存中、常规的或其他类型的数据库。在一些实施方式中,数据库506可以是根据计算机502的特定需要、期望或特定实施方式以及所描述的功能的两种或更多种不同数据库类型(例如,混合内存和常规数据库)的组合。尽管在图5中被示为单个数据库506,但可以根据计算机502的特定需要、期望或特定实施方式以及所描述的功能,来使用两个或更多个数据库(相同或组合的类型)。虽然数据库506被示为计算机502的整体组件,但是在替代实施方式中,数据库506可以在计算机 502的外部。如图所示,数据库506可以如上所述保存服务514和应用516 (以及服务514和应用516的特定实例)。如上所述,存储器507还可以保存服务514和应用516(以及服务514和应用516的特定实例)。
计算机502还包括可以保存计算机502或可连接到网络530(无论是否)) 的其他组件(或两者的组合)的数据的存储器507。例如,存储器507可以是存储与本公开一致的数据的随机存取存储器(Random Access Memory, RAM)、只读存储器(Read Only Memory,ROM)、光学、磁性等。在一些实施方式中,根据计算机502的特定需要、期望或特定实施方式和所描述的功能,存储器507可以是两种或更多种不同类型的存储器(例如,RAM和磁存储的组合)的组合。尽管在图5中示为单个存储器507,但可以根据计算机502的特定需要、期望或特定实施方式以及所描述的功能来使用两个或多个存储器507(相同或组合的类型)。虽然存储器507被示出为计算机502 的整体组件,但是在替代实施方式中,存储器507可以在计算机502的外部。
应用508是根据特定需要、期望或计算机502的特定实施方式,特别是针对在本公开中描述的功能提供功能的算法软件引擎。例如,应用508可以充当一个或多个组件、模块、应用等。此外,虽然被示为单个应用508,但是应用508可以被实现为计算机502上的多个应用507。另外,虽然示出为与计算机502是一体的,但在替代实施方式中,应用508可以在计算机502 的外部。
可以存在与包含计算机502的计算机系统相关联或在其外部的任何数量的计算机502,每个计算机502通过网络530进行通信。此外,在不脱离本公开的范围的情况下,术语“客户端”、“用户”以及其他适当的术语可以适当地互换使用。此外,该公开内容考虑到许多用户可以使用一个计算机502,或者一个用户可以使用多个计算机502。
主题的描述的实施方式可以单独地或组合地包括一个或多个特征。
例如,在第一实施方式中,一种计算机实施的方法,包括:注册服务代理;注册实例管理器代理;从与应用相关联的部署器接收请求以将实例管理器的服务实例绑定到应用;将接收到的请求转发到实例管理器代理以实例化实例管理器的服务实例;以及将由实例管理器代理从实例管理器的实例化服务实例返回的凭证转发到部署器。
前述和其它描述的实施方式可以各自可选地包括以下特征中的一个或多个:
可以与以下任何特征组合的第一特征,包括将服务代理注册到实例管理器。
可以与先前或后续特征中的任何一个组合的第二特征,包括:使用实例管理器代理实例化实例管理器的服务实例;将与实例管理器的服务实例相关联的凭证返回给实例管理器代理;并将凭证从实例管理器代理返回给部署器。
可以与先前或后续特征中的任何一个组合的第三特征,包括将返回的凭证从部署器传递到应用,以将应用绑定到实例管理器的服务实例。
可以与先前或后续特征中的任何一个组合的第四特征,包括从实例管理器的服务实例请求可用服务的服务实例以及与可用服务的服务实例相关联的凭证的应用。
可以与先前或后续特征中的任何一个组合的第五特征,包括:将来自应用的请求发送到实例管理器的服务实例以实例化服务的特定服务实例;并将来自应用的请求从实例管理器的服务实例转发到服务代理。
可以与先前或后续特征中的任何一个组合的第六特征,包括:使用服务代理实例化服务的特定服务实例;以及使用与可用服务的服务实例相关联的凭证,利用应用访问服务的实例化服务实例。
在第二实施方式中,存储可由计算机系统运行以执行操作的一个或多个指令的非暂时的计算机可读介质,包括:注册服务代理;注册实例管理器代理;从与应用相关联的部署器接收请求,以将实例管理器的服务实例绑定到应用;将接收到的请求转发到实例管理器代理以实例化实例管理器的服务实例;以及将由实例管理器代理从实例管理器的实例化服务实例返回的凭证转发到部署器。
前述和其它描述的实施方式可以各自可选地包括以下特征中的一个或多个:
可以与以下任何特征组合的第一特征,包括一个或多个用于向服务代理注册实例管理器的指令。
可以与先前或后续特征中的任何一个组合的第二特征,包括一个或多个指令以:利用实例管理器代理实例化实例管理器的服务实例;将与实例管理器的服务实例相关联的凭证返回给实例管理器代理;并将凭证从实例管理器代理返回给部署器。
可以与先前或后续特征中的任何一个组合的第三特征,包括一个或多个指令,用于将从部署器返回的凭证传递到应用,以将应用绑定到实例管理器的服务实例。
可以与先前或后续特征中的任何一个组合的第四特征,包括一个或多个指令,以由应用从实例管理器的服务实例请求可用服务的服务实例和与可用服务的服务实例相关联的凭证。
可以与先前或后续特征中的任何一个组合的第五特征,包括一个或多个指令以:将请求从应用发送到实例管理器的服务实例,以实例化服务的特定服务实例;并将来自应用的请求从实例管理器的服务实例转发到服务代理。
可以与先前或后续特征中的任何一个组合的第六特征,包括一个或多个指令:用服务代理实例化服务的特定服务实例;并使用应用使用与可用服务的服务实例相关联的凭证访问服务的实例化服务实例。
在第三实施方式中,一种计算机实施的系统,包括:计算机存储器;以及硬件处理器,其与所述计算机存储器互操作地耦合并且被配置为执行操作,操作包括:注册服务代理;注册实例管理器代理;从与应用相关联的部署器接收请求以将实例管理器的服务实例绑定到应用;将接收到的请求转发到实例管理器代理以实例化实例管理器的服务实例;以及将由实例管理器代理返回的凭证从实例管理器的实例化的服务实例转发部署器的。
前述和其它描述的实施方式可以各自可选地包括以下特征中的一个或多个:
可与任何以下特征组合的第一特征,还被配置为向服务代理注册实例管理器。
可以与先前或后续特征中的任一个组合的第二特征,还被配置为:用实例管理器代理实例化实例管理器的服务实例;将与实例管理器的服务实例相关联的凭证返回给实例管理器代理;并将凭证从实例管理器代理返回给部署器。
可以与先前或后续特征中的任何一个组合的第三特征,还被配置为将所返回的凭证从部署器传递到应用,以将应用绑定到实例管理器的服务实例。
可以与先前或后续特征中的任何一个组合的第四特征,还被配置为由应用从实例管理器的服务实例请求可用服务的服务实例和与可用服务的服务实例相关联的凭证。
可以与先前或后续特征中的任一个组合的第五特征,还被配置为:将来自应用的请求发送到实例管理器的服务实例,以实例化服务的特定服务实例;并将请求从应用从实例管理器的服务实例转发到服务代理。
可以与先前或后续特征中的任一个组合的第六特征,还被配置为:利用服务代理实例化服务的特定服务实例;并使用与可用服务的服务实例相关联的凭证,利用应用访问服务的实例化服务实例。
本说明书中描述的主题和功能操作的实施方式可以在数字电子电路中,在有形实施的计算机软件或固件、在计算机硬件中、包括本说明书中公开的结构及其结构等同物、或它们中的一个或多个的组合中实施。本说明书中描述的主题的实施方式可以被实施为在有形的、非暂时的、计算机可读的计算机存储介质上编码的,用于由数据处理装置运行或者控制数据处理装置的操作的一个或多个计算机程序指令。或者或另外,程序指令可以在人为生成的传播信号上进行编码,例如,机器生成的电、光或电磁信号,其被生成以编码信息,用于传输到合适的接收机设备以供数据处理装置运行。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行存取存储器件或计算机存储介质的组合。
术语“实时”、“实时的”、“实时”、“实时(快速)时间(Real(Fast)Time, RFT)”、“近实时(Near(ly)Real-Time,NRT)”、“准实时”或类似术语(如本领域普通技术人员所理解的),意味着动作和响应在时间上接近,使得个体感知动作和响应基本同时发生。例如,在个人访问数据的动作之后的数据的显示响应(或显示开始)的时间差可能小于1毫秒、小于1秒、小于5秒等。虽然所请求的数据不需要立即显示(或开始显示),但是考虑到所描述的计算系统的处理限制和例如收集、准确地测量、分析、处理、存储或传输数据所需的时间,它被显示(或开始显示)而没有任何有意的延迟。
术语“数据处理装置”、“计算机”或“电子计算机设备”(或本领域普通技术人员所理解的等效物)是指数据处理硬件,并且包括所有种类的装置、设备和用于处理数据的机器,包括例如可编程处理器、计算机或多个处理器或计算机。该装置还可以是或者进一步包括专用逻辑电路,例如中央处理单元(Central Processing Unit,CPU)、FPGA(现场可编程门阵列)或ASIC(专用集成电路)。在一些实施方式中,数据处理装置或专用逻辑电路(或数据处理装置或专用逻辑电路的组合)可以是基于硬件或基于软件的(或基于硬件和软件的组合)。该装置可以可选地包括为计算机程序创建运行环境的代码,例如构成处理器固件、协议栈、数据库管理系统、操作系统或执行环境的组合的代码。本公开预期数据处理装置的使用,具有或不具有常规操作系统,例如LINUX、UNIX、WINDOWS、MAC OS、ANDROID、IOS或任何其它合适的常规操作系统。
计算机程序,也可以被称为或者被描述为程序、软件、软件应用、模块、软件模块,脚本或代码,可以以任何形式的编程语言(包括编译或解释语言、或声明性或程序性语言)来编写的代码,,并且可以以任何形式部署,包括作为独立程序或作为模块、组件、子例程或适用于计算环境的其他单元。计算机程序可能但不一定对应于文件系统中的文件。程序可以存储在例如存储在标记语言文档中的一个或多个脚本的保存其他程序或数据的文件的一部分中,在专用于所讨论的程序的单个文件中,或例如存储一个或多个模块、子程序或代码部分的文件的多个协调文件中。计算机程序可以部署在一台计算机上或多台计算机上运行,这些计算机位于一个站点或跨多个站点分布并通过通信网络互连。尽管各图中示出的程序的部分被显示为通过各种对象、方法或其他过程来实现各种特征和功能的各模块,但是适当地程序可以替代地包括多个子模块、第三方服务、组件、库等等。相反,各种组件的特征和功能可以适当地组合成单个组件。用于进行计算确定的阈值可以静态、动态地或同时静态地和动态地确定。
在本说明书中描述的方法、过程、逻辑流等可以由运行一个或多个计算机程序以一个或多个可编程计算机程序执行,以通过对输入数据进行操作并生成输出来执行功能。方法、过程、逻辑流等也可以由专用逻辑电路(例如 CPU、FPGA或ASIC)来执行,并且装置也可以被实现为专用逻辑电路。
适用于运行计算机程序的计算机可以基于通用或专用微处理器、两者、或者任何其他类型的CPU。通常,CPU将从只读存储器(ROM)或随机存取存储器(RAM)或两者接收指令和数据。计算机的基本要素是用于执行或运行指令的CPU,以及用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括或可操作地耦合到从一个或多个用于存储数据的大容量存储设备(例如磁、磁光盘或光盘)以从其接收数据或传送数据到其中,或两者。然而,计算机不需要具有这样的设备。此外,计算机可以嵌入在另一设备中,例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏机、全球定位系统(Global PositioningSystem,GPS)接收器或便携式存储器设备,例如通用串行总线(Universal Serial Bus,USB)闪存驱动器,仅举几例。
适用于存储计算机程序指令和数据的计算机可读介质(适当的暂时性或非暂时性的)包括所有形式的非易失性存储器、介质和存储设备,包括例如半导体存储器件,例如可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,EPROM)、电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;和CD-ROM、DVD+/-R、DVD-RAM、和DVD-ROM磁盘。存储器可以存储各种对象或数据,包括高速缓存、类、框架、应用、备份数据、作业、网页、网页模板、数据库表、存储动态信息的存储库、以及包括任何参数、变量、算法、指令、规则、约束或对其的引用的任何其他适当的信息。此外,存储器可以包括任何其他适当的数据,诸如日志、策略、安全性或访问数据、报告文件以及其他数据。处理器和存储器可由专用逻辑电路补充或并入其中。
为了提供与用户的交互,本说明书中描述的主题的实施方式可以在具有例如CRT(阴极射线管)、LCD(液晶显示器)、LED(发光二极管)或用于向用户显示信息的等离子体监视器的显示设备,以及例如鼠标、轨迹球或轨迹板的键盘的用户可以通过其向计算机提供输入的指示设备和键盘的计算机上实施。还可以使用诸如具有压力敏感性的平板计算机表面、使用电容或电感测的多点触摸屏或其它类型的触摸屏的触摸屏来向计算机提供输入。也可以使用其他类型的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。此外,计算机可以通过向用户使用的设备发送文档并从其接收文档来与用户进行交互;例如,通过响应于从网络浏览器接收的请求,将网页发送到用户的客户端设备上的网络浏览器。
术语“图形用户界面”或“GUI”可以以单数或复数形式用于描述一个或多个图形用户界面和特定图形用户界面的显示器中的每一个。因此,GUI可以表示任何图形用户界面,包括但不限于web浏览器、触摸屏或命令行界面 (Command Line Interface,CLI),其处理信息并有效地将信息结果呈现给用户。通常,GUI可以包括一些或全部与web浏览器相关联的多个用户界面 (UI)元素,诸如交互式字段、下拉列表和按钮。这些和其他UI元素可以与web浏览器的功能有关或表示其功能。
本说明书中描述的主题的实施方式可以在包括后端组件(例如,作为数据服务器)、或包括中间件组件(例如,应用服务器)、或者包括前端组件(例如具有图形用户界面或Web浏览器的客户端计算机,用户可以通过该浏览器与本说明书中描述的主题的实现相互作用)、或者一个或多个这样的后端、中间件或前端组件的任何组合的计算系统中实施。系统的组件可以通过有线或无线数字数据通信(或数据通信的组合)(例如,通信网络)的任何形式或介质互连。通信网络的示例包括局域网(Local Area Network,LAN)、无线接入网(Radio Access Network,RAN)、城域网(Metropolitan Area Network, MAN)、广域网(WideArea Network,WAN)、全球微波接入互操作性 (Worldwide Interoperability forMicrowave Access,WIMAX)、使用例如 802.11a/b/g/n或802.20(或802.11x和802.20的组合或与本公开一致的其他协议)的无线局域网络(Wireless Local Area network,WLAN),互联网的全部或一部分或任何其他通信系统或在一个或多个位置(或通信网络的组合) 的系统。网络可以在网络地址之间利用例如互联网协议(IP)分组、帧中继帧、异步传输模式(ATM)小区、语音、视频、数据或其他合适的信息(或通信类型的组合)通信。
计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器的关系是凭借在各自的计算机上运行的并且彼此具有客户端-服务器关系的计算机程序产生的。
虽然本说明书包含许多具体的实施细节,但是这些说明不应被解释为对任何发明的范围或所要求保护的范围的限制,而是作为特定于特定发明的特定实施方式的特征的描述。在单独实施方式的上下文中的本说明书中描述的某些特征也可以在单个实施方式中组合地实施。相反,在单个实施方式的上下文中描述的各种特征也可以在多个实施方式中,单独地,或以任何合适的子组合来实现。此外,尽管上述功能可以以某些组合的形式进行描述,并且甚至最初要求如此,但是在某些情况下,可以从组合中删除要求的组合的一个或多个特征,并且所要求的组合可以针对子-组合或子组合的变化。
已经描述了主题的特定实施方式。所描述的实施方式的其他实施方式、改变和排列在所附权利要求的范围之内,这对于本领域技术人员将是显而易见的。虽然以特定顺序在附图或权利要求中描述了操作,但是这不应被理解为要求以所示的特定顺序或按顺序执行这些操作,或者执行所有所示的操作 (一些操作可以被认为是可选的),以达到理想的效果。在某些情况下,多任务或并行处理(或多任务和并行处理的组合)可能是有利的,并且被认为是适当的。
此外,在上述实施方式中的各种系统模块和组件的分离或集成不应被理解为在所有实施方式中需要这样的分离或集成,并且应当理解,所描述的程序组件和系统通常可以被集成一起在单一软件产品中或打包成多个软件产品。
因此,以上对示例实施方式的描述并不限定或约束本公开。在不脱离本公开的精神和范围的情况下,其它改变、替换和变更也是可能的。
此外,以下所要求的任何实现被认为适用于至少一种计算机实施的方法;存储执行计算机实施的方法的计算机可读指令的非暂时的计算机可读介质;以及计算机系统,其包括与硬件处理器互操作地耦合的计算机存储器,硬件处理器被配置为执行存储在非暂时的计算机可读介质上的计算机实施的方法或指令。

Claims (20)

1.一种计算机实施的方法,包括:
将服务代理注册到控制器,其中,所述服务代理用于静态服务实例绑定;
将实例管理器代理注册到控制器,其中,所述实例管理器代理用于动态服务实例绑定;
由控制器从与应用相关联的部署器接收将实例管理器的服务实例绑定到所述应用的请求;
由控制器将接收到的请求转发到实例管理器代理以实例化实例管理器的服务实例;以及
将由实例管理器代理从实例管理器的实例化服务实例返回的凭证转发到部署器。
2.如权利要求1所述的计算机实施的方法,包括将所述服务代理注册到所述实例管理器。
3.如权利要求1所述的计算机实施的方法,包括:
利用实例管理器代理实例化实例管理器的服务实例;
将与实例管理器的服务实例相关联的凭证返回给实例管理器代理;以及
将凭证从实例管理器代理返回给部署器。
4.如权利要求1所述的计算机实施的方法,包括将所返回的凭证从所述部署器传递到所述应用,以将所述应用绑定到所述实例管理器的服务实例。
5.如权利要求1所述的计算机实施的方法,包括所述应用从所述实例管理器的服务实例请求可用服务的服务实例和与可用服务的服务实例相关联的凭证。
6.如权利要求5所述的计算机实施的方法,包括:
将来自应用的请求发送到实例管理器的服务实例以实例化服务的特定服务实例;以及
将来自应用的请求从实例管理器的服务实例转发到服务代理。
7.如权利要求6所述的计算机实施的方法,包括:
利用服务代理实例化服务的特定服务实例;以及
使用与可用服务的服务实例相关联的凭证,利用应用访问服务的实例化服务实例。
8.一种存储可由计算机系统运行以执行包括以下各项操作的一个或多个指令的非暂时性计算机可读介质:
将服务代理注册到控制器,其中,所述服务代理用于静态服务实例绑定;
将实例管理器代理注册到控制器,其中,所述实例管理器代理用于动态服务实例绑定;
由控制器从与应用相关联的部署器接收将实例管理器的服务实例绑定到所述应用的请求;
由控制器将接收到的请求转发到实例管理器代理以实例化实例管理器的服务实例;以及
将由实例管理器代理从实例管理器的实例化服务实例返回的凭证转发到部署器。
9.如权利要求8所述的非暂时性计算机可读介质,包括用于将所述服务代理注册到所述实例管理器的一个或多个指令。
10.如权利要求8所述的非暂时性计算机可读介质,包括用于进行以下各项的一个或多个指令:
利用实例管理器代理实例化实例管理器的服务实例;
将与实例管理器的服务实例关联的凭证返回给实例管理器代理;以及
将凭证从实例管理器代理返回给部署器。
11.如权利要求8所述的非暂时性计算机可读介质,包括用于将所返回的凭证从所述部署器传递到所述应用,以将所述应用绑定到所述实例管理器的所述服务实例的一个或多个指令。
12.如权利要求8所述的非暂时性计算机可读介质,包括用于由所述应用从所述实例管理器的服务实例请求可用服务的服务实例以及与可用服务的服务实例相关联的凭证的一个或多个指令。
13.如权利要求12所述的非暂时性计算机可读介质,包括用于进行以下各项的一个或多个指令:
将来自应用的请求发送到实例管理器的服务实例以实例化服务的特定服务实例;以及
将来自应用的请求从实例管理器的服务实例转发到服务代理。
14.如权利要求13所述的非暂时性计算机可读介质 ,其包括用于进行以下各项的一个或多个指令:
利用所述服务代理实例化所述服务的特定服务实例;以及
使用与所述可用服务的服务实例关联的凭证,利用所述应用访问服务的实例化服务实例。
15.一种计算机实施的系统,包括:
计算机存储器;以及
硬件处理器,其与所述计算机存储器可互操作地耦合并且被配置为执行操作,所述操作包括:
将服务代理注册到控制器,其中,所述服务代理用于静态服务实例绑定;
将实例管理器代理注册到控制器,其中,所述实例管理器代理用于动态服务实例绑定;
由控制器从与应用相关联的部署器接收将实例管理器的服务实例绑定到所述应用的请求;
由控制器将接收到的请求转发到所述实例管理器代理以实例化所述实例管理器的服务实例;以及
将由实例管理器代理从实例管理器的实例化服务实例返回的凭证转发到部署器。
16.如权利要求15所述的计算机实施的系统,还被配置为将所述服务代理注册到所述实例管理器。
17.如权利要求15所述的计算机实施的系统,还被配置为:
利用实例管理器代理实例化实例管理器的服务实例;
将与实例管理器的服务实例关联的凭证返回给实例管理器代理;以及
将来自实例管理器代理的凭证返回给部署器。
18.如权利要求15所述的计算机实施的系统,还被配置为将所返回的凭证从所述部署器传递到所述应用,以将所述应用绑定到所述实例管理器的所述服务实例。
19.如权利要求15所述的计算机实施的系统,还被配置为由所述应用从所述实例管理器的服务实例请求可用服务的服务实例以及与可用服务的服务实例相关联的凭证。
20.如权利要求19所述的计算机实施的系统,还被配置为:
将来自应用的请求发送到实例管理器的服务实例,以实例化服务的特定服务实例;
将来自应用的请求从实例管理器的服务实例转发到服务代理;
利用服务代理实例化服务的特定服务实例;以及
使用与可用服务的服务实例相关联的凭证,利用应用访问服务的实例化服务实例。
CN201711148679.9A 2016-11-18 2017-11-17 应用管理服务实例 Active CN108123996B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/356,190 US10491700B2 (en) 2016-11-18 2016-11-18 Application managed service instances
US15/356,190 2016-11-18

Publications (2)

Publication Number Publication Date
CN108123996A CN108123996A (zh) 2018-06-05
CN108123996B true CN108123996B (zh) 2022-01-25

Family

ID=60269590

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711148679.9A Active CN108123996B (zh) 2016-11-18 2017-11-17 应用管理服务实例

Country Status (3)

Country Link
US (1) US10491700B2 (zh)
EP (1) EP3324293B1 (zh)
CN (1) CN108123996B (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11044257B1 (en) * 2018-11-26 2021-06-22 Amazon Technologies, Inc. One-time access to protected resources
US11310328B2 (en) 2019-05-03 2022-04-19 Sap Se Generic command line interface to an extensible list of cloud platform services
US20200356885A1 (en) * 2019-05-10 2020-11-12 International Business Machines Corporation Service management in a dbms
US11797879B2 (en) 2019-05-13 2023-10-24 Sap Se Machine learning on distributed customer data while protecting privacy
US10983762B2 (en) 2019-06-27 2021-04-20 Sap Se Application assessment system to achieve interface design consistency across micro services
US11249812B2 (en) 2019-07-25 2022-02-15 Sap Se Temporary compensation of outages
CN110798504B (zh) * 2019-09-10 2021-06-15 华为技术有限公司 跨区域共享服务的方法、装置、管理设备及存储介质
US11269717B2 (en) 2019-09-24 2022-03-08 Sap Se Issue-resolution automation
US11561836B2 (en) 2019-12-11 2023-01-24 Sap Se Optimizing distribution of heterogeneous software process workloads
CN111221655B (zh) * 2020-01-08 2023-04-07 山东汇贸电子口岸有限公司 管理OpenStack平台的资源的方法及装置
US11134083B2 (en) * 2020-01-14 2021-09-28 Sap Se User authorization and authentication accessing microservices across spaces
US11457057B2 (en) * 2020-03-11 2022-09-27 Microsoft Technology Licensing, Llc Systems and methods for establishing highly secure and resilient persistent communication connections
CN111641675A (zh) * 2020-04-28 2020-09-08 深圳壹账通智能科技有限公司 多租户访问服务实现方法、装置、设备及存储介质
US11354302B2 (en) 2020-06-16 2022-06-07 Sap Se Automatic creation and synchronization of graph database objects
CN112068850A (zh) * 2020-09-08 2020-12-11 北京金山云网络技术有限公司 服务产品实例的创建方法、装置及电子设备
CN113660315B (zh) * 2021-07-28 2023-12-01 北京宝兰德软件股份有限公司 一种云计算服务提供方法、装置、设备及可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101272281A (zh) * 2008-04-22 2008-09-24 北京邮电大学 一种涉及四方的提供网络服务的系统和方法
CN104704448A (zh) * 2012-08-31 2015-06-10 思杰系统有限公司 本地和远程计算环境之间的反向无缝集成
CN104917815A (zh) * 2015-04-21 2015-09-16 武大吉奥信息技术有限公司 一种用于云中gis服务计算的异构云隔离系统及方法

Family Cites Families (72)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7523142B2 (en) 2001-12-17 2009-04-21 Sap Ag Systems, methods and articles of manufacture for upgrading a database with a shadow system
US7720992B2 (en) 2005-02-02 2010-05-18 Sap Aktiengesellschaft Tentative update and confirm or compensate
US7657575B2 (en) 2005-12-30 2010-02-02 Sap Ag Sequencing updates to business objects
US7894602B2 (en) 2006-03-31 2011-02-22 Sap Ag System and method for generating pseudo-random numbers
US7734648B2 (en) 2006-04-11 2010-06-08 Sap Ag Update manager for database system
WO2008005102A2 (en) 2006-05-13 2008-01-10 Sap Ag Consistent set of interfaces derived from a business object model
US9262763B2 (en) 2006-09-29 2016-02-16 Sap Se Providing attachment-based data input and output
US7739387B2 (en) 2007-03-08 2010-06-15 Sap Ag System and method for message packaging
US7971209B2 (en) 2007-05-18 2011-06-28 Sap Ag Shortcut in reliable communication
US8407297B2 (en) 2007-10-22 2013-03-26 Sap Ag Systems and methods to receive information from a groupware client
US8225303B2 (en) 2007-11-30 2012-07-17 Sap Ag System and method for providing software upgrades
US9122669B2 (en) 2008-08-29 2015-09-01 Sap Se Flat schema integrated document oriented templates
US8200634B2 (en) 2008-10-08 2012-06-12 Sap Ag Zero downtime maintenance using a mirror approach
US8996466B2 (en) 2008-12-01 2015-03-31 Sap Se Extend crud to support lifecyle management and business continuity
US8479187B2 (en) 2008-12-02 2013-07-02 Sap Ag Adaptive switch installer
US9229707B2 (en) 2008-12-18 2016-01-05 Sap Se Zero downtime mechanism for software upgrade of a distributed computer system
US8291038B2 (en) 2009-06-29 2012-10-16 Sap Ag Remote automation of manual tasks
US8572369B2 (en) 2009-12-11 2013-10-29 Sap Ag Security for collaboration services
US10560541B2 (en) * 2010-05-26 2020-02-11 Sap Se Service delivery management for brokered service delivery
US9032406B2 (en) 2010-07-01 2015-05-12 Sap Se Cooperative batch scheduling in multitenancy system based on estimated execution time and generating a load distribution chart
US8560876B2 (en) 2010-07-06 2013-10-15 Sap Ag Clock acceleration of CPU core based on scanned result of task for parallel execution controlling key word
US8250135B2 (en) 2010-07-09 2012-08-21 Sap Ag Brokered cloud computing architecture
US8301610B2 (en) 2010-07-21 2012-10-30 Sap Ag Optimizing search for insert-only databases and write-once data storage
US8880486B2 (en) 2010-07-27 2014-11-04 Sap Ag Distributed database system utilizing an extended two-phase-commit process
US8392573B2 (en) 2010-07-30 2013-03-05 Sap Ag Transport of customer flexibility changes in a multi-tenant environment
US8924384B2 (en) 2010-08-04 2014-12-30 Sap Ag Upgrading column-based databases
US8380667B2 (en) 2010-08-11 2013-02-19 Sap Ag Selectively upgrading clients in a multi-tenant computing system
US8356010B2 (en) 2010-08-11 2013-01-15 Sap Ag Online data migration
US8434060B2 (en) 2010-08-17 2013-04-30 Sap Ag Component load procedure for setting up systems
US8751573B2 (en) 2010-11-23 2014-06-10 Sap Ag Cloud-processing management with a landscape directory
US8604973B2 (en) 2010-11-30 2013-12-10 Sap Ag Data access and management using GPS location data
US8375130B2 (en) 2010-12-16 2013-02-12 Sap Ag Shared resource discovery, configuration, and consumption for networked solutions
US8762929B2 (en) 2010-12-16 2014-06-24 Sap Ag System and method for exclusion of inconsistent objects from lifecycle management processes
US8972934B2 (en) 2010-12-20 2015-03-03 Sap Ag Support for temporally asynchronous interface extensions
US9009105B2 (en) 2010-12-30 2015-04-14 Sap Se Application exits for consistent tenant lifecycle management procedures
US8706772B2 (en) 2010-12-30 2014-04-22 Sap Ag Strict tenant isolation in multi-tenant enabled systems
US8875122B2 (en) 2010-12-30 2014-10-28 Sap Se Tenant move upgrade
US8467817B2 (en) 2011-06-16 2013-06-18 Sap Ag Generic business notifications for mobile devices
US8566784B2 (en) 2011-09-22 2013-10-22 Sap Ag Business process change controller
US9137130B2 (en) 2011-09-22 2015-09-15 Sap Se Dynamic network load forecasting
US8805986B2 (en) 2011-10-31 2014-08-12 Sap Ag Application scope adjustment based on resource consumption
US8645483B2 (en) 2011-11-15 2014-02-04 Sap Ag Groupware-integrated business document management
US9256840B2 (en) 2011-12-01 2016-02-09 Sap Se Establishing business networks using a shared platform
US9069984B2 (en) 2011-12-21 2015-06-30 Sap Se On-demand authorization management
US8612406B1 (en) 2012-05-22 2013-12-17 Sap Ag Sharing business data across networked applications
US20130325672A1 (en) 2012-05-31 2013-12-05 Sap Ag Mobile forecasting of sales using customer stock levels in a supplier business system
US9116906B2 (en) 2012-06-12 2015-08-25 Sap Se Centralized read access logging
US9183540B2 (en) 2012-07-03 2015-11-10 Sap Se Mobile device analytics engine
US20140047319A1 (en) 2012-08-13 2014-02-13 Sap Ag Context injection and extraction in xml documents based on common sparse templates
US9276942B2 (en) 2012-09-07 2016-03-01 Oracle International Corporation Multi-tenancy identity management system
US8762731B2 (en) 2012-09-14 2014-06-24 Sap Ag Multi-system security integration
US9720994B2 (en) 2012-10-04 2017-08-01 Sap Se Replicated database structural change management
US9075633B2 (en) 2012-10-12 2015-07-07 Sap Se Configuration of life cycle management for configuration files for an application
US9026857B2 (en) 2012-10-19 2015-05-05 Sap Se Method and system for postponed error code checks
US8793230B2 (en) 2012-10-23 2014-07-29 Sap Ag Single-database multiple-tenant software system upgrade
US9077717B2 (en) 2012-11-30 2015-07-07 Sap Se Propagation and adoption of extensions across applications in networked solutions
US20140164963A1 (en) 2012-12-11 2014-06-12 Sap Ag User configurable subdivision of user interface elements and full-screen access to subdivided elements
US9069832B2 (en) 2012-12-21 2015-06-30 Sap Ag Approach for modularized sychronization and memory management
US11050820B2 (en) 2013-04-29 2021-06-29 Sap Se Cloud sharing system
US9182979B2 (en) 2013-04-29 2015-11-10 Sap Se Social coding extensions
US9031910B2 (en) 2013-06-24 2015-05-12 Sap Se System and method for maintaining a cluster setup
US9721116B2 (en) 2013-06-24 2017-08-01 Sap Se Test sandbox in production systems during productive use
US9026502B2 (en) 2013-06-25 2015-05-05 Sap Se Feedback optimized checks for database migration
US9189226B2 (en) 2013-06-25 2015-11-17 Sap Se Software logistics protocols
US10291704B2 (en) 2013-06-26 2019-05-14 Sap Se Networked solutions integration using a cloud business object broker
US9126265B2 (en) 2013-09-06 2015-09-08 North American Refractories Co. Refractory component for lining a metallurgical vessel
US9336227B2 (en) 2013-10-07 2016-05-10 Sap Se Selective synchronization in a hierarchical folder structure
US9223985B2 (en) 2013-10-09 2015-12-29 Sap Se Risk assessment of changing computer system within a landscape
US10061788B2 (en) 2013-12-19 2018-08-28 Sap Se Transformation of document flow to contributors network
WO2015156249A1 (ja) 2014-04-08 2015-10-15 シャープ株式会社 表示装置
US9876822B2 (en) * 2014-11-28 2018-01-23 International Business Machines Corporation Administration of a context-based cloud security assurance system
US10230708B2 (en) * 2016-05-20 2019-03-12 Sap Se Application managed service instances

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101272281A (zh) * 2008-04-22 2008-09-24 北京邮电大学 一种涉及四方的提供网络服务的系统和方法
CN104704448A (zh) * 2012-08-31 2015-06-10 思杰系统有限公司 本地和远程计算环境之间的反向无缝集成
CN104917815A (zh) * 2015-04-21 2015-09-16 武大吉奥信息技术有限公司 一种用于云中gis服务计算的异构云隔离系统及方法

Also Published As

Publication number Publication date
EP3324293B1 (en) 2022-07-27
US20180146056A1 (en) 2018-05-24
US10491700B2 (en) 2019-11-26
EP3324293A1 (en) 2018-05-23
CN108123996A (zh) 2018-06-05

Similar Documents

Publication Publication Date Title
CN108123996B (zh) 应用管理服务实例
US10659449B2 (en) Application managed service instances
US10827008B2 (en) Integrated user interface for consuming services across different distributed networks
US10693989B2 (en) Brokering services from partner cloud platforms
US11030164B2 (en) Artifact deployment for application managed service instances
US11409719B2 (en) Co-locating microservice persistence containers within tenant-specific database
US11108845B2 (en) Rendering a web application in a cloud service
US10574644B2 (en) Stateful session manager
CN106462467B (zh) 在不同分布式网络上针对消费服务的集成api和ui
US11693945B2 (en) Secure calls between applications
EP2947569A1 (en) Hybrid applications operating between on-premise and cloud platforms
US10656972B2 (en) Managing idempotent operations while interacting with a system of record
US20190166209A1 (en) Service cross-consumption based on an open service broker application programming interface
US11360765B2 (en) Metadata driven serverless functions in a multitenant environment
US11334837B2 (en) Modeling internet of things devices in processes
US10572842B1 (en) Notification service for managing actionable messages from backend services
CN110401555B (zh) 用于生成适用性声明4适配器的可插入框架
US10104200B2 (en) Automatic service extensibility
US10999393B2 (en) Cloud broker for connecting with enterprise applications
US10542119B2 (en) Multi-geographical processing of user requests
US11652871B1 (en) Providing access to functionality of a web application via microapps
US11968177B2 (en) Systems and methods for verifying a firewall for a cloud provider

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
GR01 Patent grant
GR01 Patent grant