CN110506257B - 在云服务代理系统中创建和分配集成连接器的方法 - Google Patents

在云服务代理系统中创建和分配集成连接器的方法 Download PDF

Info

Publication number
CN110506257B
CN110506257B CN201880024966.5A CN201880024966A CN110506257B CN 110506257 B CN110506257 B CN 110506257B CN 201880024966 A CN201880024966 A CN 201880024966A CN 110506257 B CN110506257 B CN 110506257B
Authority
CN
China
Prior art keywords
connector
developer
computing device
api
cloud service
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
CN201880024966.5A
Other languages
English (en)
Other versions
CN110506257A (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.)
Yunlan Co ltd
Original Assignee
Yunlan 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 Yunlan Co ltd filed Critical Yunlan Co ltd
Publication of CN110506257A publication Critical patent/CN110506257A/zh
Application granted granted Critical
Publication of CN110506257B publication Critical patent/CN110506257B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • 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
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0641Shopping interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5015Service provider selection

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Finance (AREA)
  • Accounting & Taxation (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

用于在云服务代理系统中创建和分配集成连接器的技术包括通信地耦接到市场计算设备的连接器集线器的开发者门户计算设备。开发者门户计算设备被配置为经由开发者门户计算设备的开发者UI门户从开发者处接收信息。这样的信息包括与云服务相关联的连接器的连接器描述符信息以及连接器的一个或多个资源类型。开发者门户计算设备还被配置为经由开发者门户计算设备的连接器构建器,将连接器作为连接器描述符信息和一个或多个资源类型的函数来构建,生成针对所构建的连接器的连接器封装,并且将所生成的连接器封装传输到云服务市场计算设备的连接器集线器,其中连接器封装可用于创建连接器的一个或多个实例。本文描述了另外的实施例。

Description

在云服务代理系统中创建和分配集成连接器的方法
相关申请的交叉引用
本申请要求享有于2017年4月14日提交的美国临时专利申请No.62/485,665的优先权,其全部内容通过引用并入本文。
技术领域
当前公开的实施例一般涉及云服务代理,更具体地,涉及用于在云服务代理系统中创建和分配集成连接器的技术。
背景技术
独立软件供应商(ISV)开发和销售通常被设计为在一个或多个计算机硬件或操作系统平台上运行的软件应用程序。这样的软件应用程序的范围从基础实用应用程序或生产力增强应用程序到企业的业务流程应用程序(例如,客户关系管理(CRM)、企业资源规划(ERP)、自动化工具等)。随着云计算变得越来越普遍,这样一种软件交付方法已经由使用了基于“软件即服务(SaaS)”模型的云来进行。使用这样的交付方法,ISV可以通过公共云或云市场来销售其软件应用程序或其软件应用程序的订阅。
虽然云市场为客户访问基于云的服务和软件应用程序提供了在线店面,但是云服务代理可例如通过使用针对每个云服务的插件或API连接器来用于促进ISV与终端用户、经销商、零售商等之间的交易。在传统的云服务代理实施方案中,每个云服务代理通常与每个云服务的每个ISV签订合同,其向云服务代理提供对平台和/或基础设施的访问,所述平台和/或基础设施可以被访问(例如,经由门户)以便创建并管理API连接器,从而使它们的服务能够在云中被购买、配置和执行。
通常,这样的API连接器从云服务代理侧启动,云服务代理侧要么在本地(即,提供商侧)要么在云中(例如,在云服务代理的帐户下)。因此,每个云服务代理平台实例针对云服务代理平台意图提供的每种服务都具有自己的API连接器。然而,这样的手动实施方案通常需要多种API方法和很少的用户界面集成点,这可能导致ISV将其服务集成到相应的云服务代理平台上的释放时间要更长。因此,需要在云服务代理系统中创建和分配集成连接器。
发明内容
在一个方面,一种用于在云服务代理系统中创建和分配云服务集成连接器的方法。该方法包括:经由开发者门户计算设备的开发者UI门户从开发者处接收与云服务相关联的连接器的连接器描述符信息;经由开发者UI门户从开发者处接收连接器的一种或多种资源类型;经由开发者门户计算设备的连接器构建器,将连接器作为连接器描述符信息和一个或多个资源类型的函数来构建;由连接器构建器生成针对所构建的连接器的连接器封装;并且,由连接器构建器将所生成的连接器封装传输到云服务市场计算设备的连接器集线器,其中连接器封装可用于创建连接器的一个或多个实例。
在一些实施例中,该方法还包括:由开发者门户计算设备的专家系统分析是否已经发布了与云服务相关联的连接器的先前版本;由专家系统并且在后续确定已经发布过连接器的先前版本之后,确定连接器与先前版本的连接器之间的一致性等级;通过专家系统将一致性水平与一致性水平阈值进行比较;并且,由专家系统将连接器与先前版本的连接器相关联,作为先前版本的连接器的新版本。
在一些实施例中,该方法还包括:经由开发者门户计算设备的专家系统分析是否应该将另一服务与连接器相关联;由专家系统识别一个或多个其他服务是否可能与连接器进行关联;并且,通过专家系统并且在已经具有了经识别的能与连接器进行关联的一个或多个其他服务之后,对一个或多个其他服务进行关联。
在一些实施例中,该方法还包括:经由开发者UI门户从开发者处接收与来自开发者门户计算设备的连接器骨架数据库的连接器骨架相关联的标识符,其中连接器骨架可用于生成用于创建连接器的框架,并且其中接收连接器的一个或多个资源类型包括基于连接器骨架接收连接器的一个或多个资源类型。
在一些实施例中,接收连接器描述符信息包括接收服务的标题、服务的类型、与服务相关联的图标,以及一个或多个服务提供商指令。附加地或替代地,在一些实施例中,该方法还包括:由连接器构建器确定连接器和先前版本的连接器之间的一个或多个差异;由连接器构建器将一个或多个升级指令作为所确定的一个或多个差异的函数来生成,其中生成连接器封装包括将连接器封装作为一个或多个升级指令的函数来生成。
附图说明
通过参照以下结合附图的本公开的各种示例性实施例的描述,本文所包含的实施例和其他特征,优点和公开内容以及获得它们的方式将变得显而易见,并且将更好地理解本公开,其中:
图1是用于在云服务代理系统中创建和分配集成连接器的云服务市场兼代理系统的说明性实施例的方框图,所述云服务市场兼代理系统包括代理计算设备、服务提供商计算设备和开发者门户计算设备,这些设备的每个均通信地耦接到市场计算设备;
图2是图1的市场计算设备的云服务代理市场的计算设备中的一个的说明性实施例的方框图;
图3是图1的开发者门户计算设备的说明性环境的方框图;
图4A-图4D是用于在云服务代理系统中创建和分配集成连接器的说明性方法的示意流程图,该方法可以由图1的开发者门户计算设备执行;
图5是用于对连接器对象执行版本分析的说明性方法的示意流程图,该方法可以由图1的开发者门户计算设备执行;以及
图6是用于对连接器对象执行配对分析的另一说明性方法的示意流程图,该配对分析可由图1的开发者门户计算设备执行。
具体实施方式
为了促进对本公开的原理的理解,现在将参照附图中示出的实施例,并且将使用特定语言来描述这些实施例。然而,应理解的是,因此不旨在限制本公开的范围。
图1示出了用于创建和分配集成连接器的云服务市场兼代理系统100。云服务市场兼代理系统100包括开发者门户计算设备116、服务提供商计算设备122和代理计算设备130,这些设备中的每一个均通信地耦接到市场计算设备102(例如,经由网络128)。在使用中,与云服务提供商相关联的云服务应用开发者/程序员开发出应用程序编程接口(API)(参见例如图1的API 126)和用于一个或多个云服务的API连接器。
为了开发API连接器,开发者使用开发者门户(例如,开发者门户计算设备116的开发者用户界面(UI)门户118)来提供在云服务市场中出售的特定服务(例如,通过市场计算设备102的云服务代理市场104)。应当理解,开发者可以经由通信地耦接(例如,经由网络128)到开发者门户计算设备116的端点计算设备(未示出)访问开发者UI门户118。
API连接器可以是可用于创建该API连接器的复制实例(参见,例如,图1的连接器工厂112的对应API连接器实例114)的源代码的形式,所述复制实例可用于与其相应的API126通信。因此,每个API 126被配置为从云服务接收命令(例如,经由服务提供商计算设备122的云服务提供商接口124)并将接收到的命令发送到API 126所连接的相应的API连接器114实例,反之亦然。
开发者门户被配置为从开发者处接收可用于定义连接器封装的主要组件的输入,例如模型(例如,用于应用对象的业务模型的解释),支持用户交互的各用户界面,以及用于连接器的后端(例如,用于进程供应、管理、请求监视等的代表性状态转移(REST)服务)。应当理解,开发者门户可以被配置为接收与连接器相关联的附加信息、例如云服务地址、默认设置、定价信息、销售模板、云服务的标识符等。
开发者门户还被附加地配置为,如将在下面进一步详细描述,生成连接器封装,测试所生成的连接器封装,以及将测试后的连接器封装发布到连接器目录(例如,市场计算设备102的连接器集线器106中的可用服务数据库110)。在开发阶段之后,连接器封装然后可以进入生产阶段,其中连接器可以部署到云服务代理(例如,通过云服务代理市场104经由代理计算设备130的云服务代理接口132来进行。)
市场计算设备102被配置为管理云服务提供商和云服务代理之间的各种云服务的许可。在说明性示例中,云服务提供商(例如,独立软件供应商(ISV))与云服务市场102的控制实体签订合同以促进向终端用户销售许可。然后,许可可以允许终端用户或与其相关联的其他终端用户对云服务提供商的云服务(例如,基于云的“软件即服务(SaaS)”应用程序)的某些访问。
为此,说明性市场计算设备102包括连接器集线器106,连接器集线器被配置为(例如,在可用服务数据库110中)存储经由开发者UI门户118生成的封装后的连接器,并且为连接器工厂112的连接器114在服务提供商计算设备122的云服务提供商接口124与代理计算设备130的云服务代理接口132之间建立供应信道。因此,云服务代理可以经由终端用户各自的云服务代理接口132向终端用户(例如,客户、代理、转售商等)销售与所封装的连接器相关联的云服务的许可。
连接器集线器106还被配置生成针对每个连接器114的供应信道凭证(例如,代理凭证和/或云服务提供商凭证,例如可以存储在凭证数据库108中)。应当理解,供应信道凭证可以是使用该供应信道凭证就可用于认证两个实体之间的安全通信信道的任何类型的信息(例如,加密密钥或其他任意数据)。
如说明性云服务市场兼代理系统100中所示,市场计算设备102、开发者门户计算设备116、服务提供商计算设备122和代理计算设备130中的每一个均被实施为计算设备134。因此,应当理解,各个计算设备134中的每一个可以实施为能够执行本文描述的功能的任何类型的计算和/或存储设备。另外,应当进一步理解,各个计算设备134中的每一个均可以包括一个以上的计算设备134。例如,一个或多个计算设备134可以实施为一个或多个服务器(例如,单独、机架安装等)和/或云架构网络或数据中心中的计算刀片和数据存储设备(例如,存储区域网络(SAN)的组合),同时一个或多个其他计算设备134可以实施为一个或多个台式计算机、移动计算设备(例如,智能电话、可穿戴设备、平板电脑、膝上型电脑、笔记本电脑等),或任何其他类型的“智能”或其他因特网连接的设备。
现在参照图2,示出了表示市场计算设备102、开发者门户计算设备116、服务提供商计算设备122和代理计算设备130中的一个或多个的计算设备134的说明性实施例。一些说明性计算设备134包括中央处理单元(CPU)200、输入/输出(I/O)控制器202、存储器204、网络通信电路206和数据存储设备210,以及一些在一些实施例中,包括一个或多个I/O外围设备208。在一些实施例中,一个或多个说明性组件可以组合在单个集成电路(IC)上的单个片上系统(SoC)上。应当理解,替代实施例可以为示例性计算设备134包括附加的、更少的和/或替代性的组件,诸如图形处理单元(GPU)、电源等,为确保描述清楚性这些组件未被示出。应进一步了解,相应计算装置134的存储/计算组件的类型可基于相应计算装置134的类型和预期用途来预测。
CPU 200或处理器可以实施为能够处理数据的任何类型的硬件或电路的组合。因此,CPU 200可以包括单核处理器架构中的一个处理核(未示出),或多核处理器架构中的多个处理核。不管处理核的数量如何,CPU 200都能够读取和执行程序指令。在一些实施例中,CPU 200可以包括高速缓冲存储器(未示出),其可以直接与CPU 200集成或者放置在具有到CPU 200的单独互连的单独芯片上。应当理解,在一些实施例中,管道逻辑可以用于执行软件和/或硬件操作(例如,网络流量处理操作),而不是采用发布到CPU 200或从CPU 200发出的命令。
I/O控制器202或I/O接口可以实施为能够在输入/输出设备和计算设备134之间进行接口连接的任何类型的计算机硬件或电路的组合。说明性地,I/O控制器202被配置为从CPU 200接收输入/输出请求,并将控制信号发送到相应的输入/输出设备,从而管理去向/来自计算设备134的数据流。
存储器204可以实现为能够保存数据和用于处理的指令的任何类型的计算机硬件或电路的组合。这样的存储器204可以称为主存储器或主存储器。应当理解,在一些实施例中,计算设备134的一个或多个组件可以有权对存储器的直接访问,使得可以独立于CPU200地经由直接存储器访问(DMA)来存储某些数据。
网络通信电路206可以实现为能够经由无线和/或有线通信模式管理网络接口通信(例如,消息、数据报、分组等)的任何类型的计算机硬件或电路的组合。因此,在一些实施例中,网络通信电路206可以包括能够被配置为将计算设备134连接到计算机网络(例如,网络128)的网络接口控制器(NIC),以及云服务市场兼代理系统100的其他计算设备。
一个或多个I/O外围设备208可以实现为被配置为连接到计算设备134并与计算设备134通信的任何辅助设备。例如,I/O外围设备208可以包括但不限于,鼠标、键盘、监视器、触摸屏、打印机、扫描仪、麦克风、扬声器等。因此,应该理解一些I/O设备能够具有一种功能(即输入或输出),或两种功能(即输入和输出)。
在一些实施例中,I/O外围设备208可以经由线缆(例如,带状线缆、线缆、通用串行总线(USB)线缆、高清晰度多媒体接口)连接到计算设备134(计算设备134的HDMI)电缆等。在这样的实施例中,电缆连接到计算设备134的相应端口(未示出),为此可以由I/O控制器202管理它们之间的通信。在备选实施例中,I/O外围设备208可以经由无线通信模式(例如,蓝牙、Wi-Fi等)连接到计算设备134,其可以由网络通信电路206管理。
数据存储设备210可以实施为能够非易失性地存储数据的任何类型的计算机硬件(例如,半导体存储介质、磁存储介质、光存储介质等)。这样的数据存储设备210通常被称为备用或辅助存储器,并且通常用于存储相对于上述存储器204的大量数据。
返回参照图1,说明性云服务市场系统100包括网络128,其可供其他计算设备134(即,开发者门户计算设备116、服务提供商计算设备122和代理计算设备130)与市场计算设备102通信。网络128可以实施为利用了任何有线和/或无线通信技术和网络通信传输协议的任何类型的有线和/或无线网络,包括局域网(LAN)、广域网(WAN)、城域网(MAN)、全球网络(因特网)等。因此,网络128可以包括一个或多个通信耦接的网络计算设备(未示出),用于通过一系列有线和/或无线互连来促进网络通信流量的流动和/或处理。这样的网络计算设备可以包括但不限于一个或多个接入点、路由器、交换机、服务器、计算设备、存储设备等。
例如,一个或多个这样的网络计算设备可以被配置为在使用有线(例如,以太网、令牌环等)通信技术和相关协议的LAN配置中和/或在使用无线(例如,蓝牙、Wi-Fi、无线宽带、ZigBee等)通信技术和相关协议的WLAN配置中,将市场计算设备102、开发者门户计算设备116、服务提供商计算设备122和/或代理计算设备130中的一个或多个耦接到网络128。在该示例的变型中,LAN配置可以通过网络128的附加网络计算设备耦接(例如,经由同轴,移动电话,光纤等)到一个或多个更大的区域网络(例如,WAN、城域网(MAN)、因特网等)。应当理解,可以虚拟化网络计算设备和/或网络配置中的一个或多个(例如,虚拟交换机、虚拟LAN等)。
如前所述,开发者门户计算设备116包括开发者UI门户,服务提供商计算设备122包括云服务提供商接口124,并且说明性代理计算设备130包括云服务代理接口132。开发者UI门户118、云服务提供商接口124和云服务代理接口132可以实现为能够执行本文描述的功能的软件、硬件、固件和电路的任何组合。在一些实施例中,开发者UI门户118、云服务提供商接口124和云服务代理接口132中的一个或多个可以被配置为对它们各自的计算设备134的显示器呈现信息(例如,经由图形UI、命令行界面等)。在这样的实施例中,开发者UI门户118、云服务提供商接口124和/或云服务代理接口132可以被配置为中继从用户接收的输入以进行登录,配置相应的界面,或操纵与其相关的信息(例如,设置)。
现在参照图3,示出了开发者门户计算设备116的说明性环境300。说明性环境300包括连接器构建器304、连接器播放器314、测试系统316和专家系统318,以及图1的开发者UI门户118。在一些实施例中,开发者UI门户118、连接器构建器304、连接器播放器314、测试系统316和专家系统318中的一个或多个可以包括其上存储有指令的一个或多个计算机可读介质(例如,存储器204、数据存储设备210和/或任何其他媒体存储设备),以及与一个或多个计算机可读介质耦接并被配置为执行指令以执行这里描述的功能的一个或多个处理器(例如,CPU 200)。另外,说明性环境300包括模型数据库302和库管理器306,下面将进一步详细描述模型数据库302和库管理器306中的每一个。
如前所述,开发者UI门户118可以实施为能够执行本文描述的功能的任何类型的固件、硬件、软件、电路或其组合。另外,连接器构建器304,连接器播放器314,测试系统316和专家系统318中的每一个还可以实施为本文中能够执行所描述的相应功能的任何类型的固件、硬件、软件、电路或其组合。
如前所述,开发者UI门户118被配置为向开发者提供用于生成用于云服务的封装API连接器的接口。为此,开发者UI门户118被配置为与开发者通信(例如,经由超文本传输协议(HTTP)请求/响应)并与环境300的各种组件和存储介质交互。
例如,开发者UI门户118被配置为与开发者通信以接收可用于封装由开发者开发的API连接器的信息(即,连接器描述信息)。如前所述,API连接器可用于生成连接器的实例,连接器的实例实现了云服务代理和云服务提供商之间的交互。这样,连接器描述信息可以包括与API连接器相关的、可以用于创建API连接器的实例的任何信息。例如,连接器描述信息可以包括但不限于UI信息(例如,服务的标题、一个或多个图标等)、资源模型信息(例如,提供的服务,诸如磁盘空间、邮箱、域等)、用于建立供应信道的凭证、服务计划信息(例如,代理/提供商的计费规则)、资源信息。连接器描述信息可以存储在模型数据库302中。
应当理解,开发者可以经由开发者UI门户118来修改连接器描述信息的任何部分(例如,可以存储在模型数据库302中)。为此,开发者UI门户118被配置为:提供开发者可用的一个或多个可视界面以生成连接器的模型和/或发布连接器(例如,通过连接器构建器304),在测试系统上对开发的连接器运行一个或多个测试(例如,通过连接器播放器314和测试系统316),并且根据一个或多个兼容性规则验证连接器(例如,通过专家系统318),以确保对连接器进行的升级/改变的向后兼容性。
模型数据库302被配置为针对每个连接器存储模型。该模型可以包括可用于定义或以其他方式封装连接器的任何信息,诸如UI标签(例如,名称、描述等),视觉材料(例如,图标、屏幕截图、样式等)、UI扩展(例如,描述如何将UI元素插入现有应用程序)、连接器所支持的业务对象的定义(例如,用户、邮箱、垃圾邮件过滤规则等)。应当理解,在一些实施例中,UI扩展的至少一部分可以被定义为HTML页面,并且包括相关的JavaScript、CSS、图像等,以及用于将UI元素插入每个适用页面的UI结构的描述。另外,对于连接器所支持的每个对象而言,模型信息可以包括一个或多个属性(例如,类型、描述、标签、默认值等)、一个或多个关系(即,对象如何是与服务域模型的其他对象连接的以及该关系的基数(cardinality),和/或使用/限制映射(例如,如何将使用/限制映射到可销售资源和计划上)。应当理解,在一些实施例中,模型数据库可以保持相同连接器的多个版本和/或多个连接器的多个版本。因此,应当进一步理解,在这种保持多个版本的实施例中,可以自动地(例如,通过比较某些模型信息)确定版本之间的差异(即,更改)。
连接器构建器304被配置为针对与连接器相关联的所有业务对象而生成方案文件。为此,连接器构建器304被配置为分析连接器的元数据(例如,连接器描述信息)以识别业务对象并生成方案文件。另外,在连接器不是连接器的首次版本(即,被封装的连接器被升级了或包括了相对于相同服务的先前封装的连接器的更改)的实施例中,连接器构建器304被配置为生成一组升级指令。升级指令可以包括可被跟踪并被应用于连接器的升级版本上的任何模型更改,例如:更改连接器的元数据、在默认值的类型范围或分配范围内添加新属性、删除属性、更改属性名称/类型、添加服务(例如,应用域模型中的新对象)、向其他连接器或应用域模型的对象添加新关系或在这些对象之间添加新关系、重命名关系、更改关系基数或选项、更改关系所需的类型、改变属性访问规则,改变关系访问和/或分配规则、根据规则将关系分成多个关系等。
连接器构建器304还被配置为将上述生成的方案和升级指令(如果适用的话)与连接器的源代码和前端模板一起组装到连接器封装中。此外,连接器构建器304被配置为将组装的连接器封装上载到市场计算设备102的可用服务数据库110,可用服务数据库包括连接器目录(即,可用的各服务)。
库管理器306被配置为管理说明性数据库之间的数据流,库管理器306说明性地包括兼容性规则数据库308、连接器骨架数据库310和前端模板数据库312。为此,库管理器306被配置为对数据库中的每一个执行读取和写入操作,以及可能需要对数据执行的任何其他操作(例如,标准化数据、规范化数据、增强数据等)。
兼容性规则数据库308被配置为存储用于版本控制管理的规则(即,兼容性规则)。换句话说,兼容性规则确保版本之间的向后兼容性。例如,兼容性规则不允许对正在销售的资源类型进行更改,因为向后兼容性会被破坏;但是,兼容性规则允许扩展该资源类型的配置或要销售资源的其他类型。这样,兼容性规则提供允许执行自动升级的能力,因为可以比对着兼容性规则(例如,通过连接器构建器304)来测试所提议的升级。应该理解,可能存在几组这样的规则。例如,次要升级可以保持完全的向后兼容性,而主要升级可以保持有限的向后兼容性。
连接器骨架数据库310被配置为存储根据用于连接器开发的模型和最佳实践制备的代码。这样,存储的代码可以用作连接器后端开发的起始方框架。应当理解,可以根据开发者定义的模型来定制代码。
前端模板数据库312被配置为存储用于已知场景的用户界面(例如,创建新客户/账户、为客户购买订阅、禁用订阅、终止订阅等)。因此,当开发者启用已知场景时,可以将与该场景相关的UI代码从前端模板数据库312添加到连接器的UI组件。
应当理解,在一些实施例中,如本文所述存储在各个数据库中的数据可以不是互斥的。换句话说,这里描述的存储在一个数据库中的某些数据可以附加地或替代地存储在这里描述的另一个数据库中,或者一起存储在另一个数据库中。应进一步了解,在一些实施例中,数据可存储在单个数据库、分布式数据库或替代数据库布置中。
连接器播放器314被配置为比对着测试系统(例如,测试系统316)运行连接器的测试场景。这样的场景可以包括部署连接器、创建连接器实例、配置服务模板和计划、测试订阅/用户创建、请求对计数器资源的使用等。因此,测试系统316被配置为提供可用于测试连接器的各种场景的资源。应当理解,资源可以是物理资源和/或虚拟资源。
专家系统318被配置为分析潜在的配对服务并建议一个或多个识别的服务作为与连接器相关联的服务配对的候选者。为此,专家系统318被配置为识别与连接器相关联的信息(例如,服务类型、描述等),并将所识别的信息与被典型配对的其他服务的相应信息进行比较。在说明性示例中,专家系统318可以基于在用于电子邮件服务的连接器上执行的分析结果来建议配对反垃圾邮件服务。应当理解,任何关系都可以改变相关联的连接器模型。
如前所述,开发者门户计算设备116可以包括一个或多个计算设备134。因此,尽管开发者UI门户118、模型数据库302、库管理器306、连接器构建器304、连接器时播放器314、测试系统316和专家系统318被说明性地示出为驻留在单个计算设备134(即,开发者门户计算设备116)上,但是应当理解,在一些实施例中,一个或多个组件可以位于不同的计算设备134上,一起包括开发者门户计算设备116。
现在参照图4A-图4D,提供了用于在云服务代理系统中创建和分配集成连接器的说明性方法400,其可以由开发者门户计算设备116执行,或者更具体地,其由开发者门户计算设备116的一个或多个组件(例如,开发者UI门户118、连接器构建器304等)来执行。方法400开始于方框402,其中开发者门户计算设备116确定是否创建连接器对象。如果是,则方法400前进到方框404,其中开发者门户计算设备116选择相关的连接器骨架(例如,从图3的连接器骨架数据库310中)。如前所述,连接器骨架可以是可用作开发连接器后端的起始方骨架的代码的形式。
在方框406中,开发者门户计算设备116生成唯一的连接器模型标识符。在方框408中,开发者门户计算设备116(例如,经由UI开发者门户118)从连接器开发者处请求连接器模型的连接器描述信息。在说明性示例中,在方框410中,开发者门户计算设备116请求UI信息(例如,服务标题、服务类型、图标等)和一个或多个提供商指令。如前所述,连接器描述信息可以包括与API连接器有关的、可以用于实例化API连接器的实例的任何信息,例如:资源模型信息(例如,提供的服务,例如磁盘空间、邮箱、域等)、用于建立供应信道的凭证、服务计划信息(例如,代理/提供商的计费规则)、资源信息。
在方框412中,开发者门户计算设备116确定是否已经接收到所请求的信息(例如,经由UI开发者门户118)。如果是,则方法400前进到方框414,其中开发者门户计算设备116存储所接收的信息(例如,存储在图3的模型数据库302中)。在方框416中,开发者门户计算设备116通知专家系统(例如,图3的专家318系统)以执行版本分析(参见例如图5的方法500)。换句话说,开发者门户计算设备116通知专家系统分析(例如,在图1的连接器集线器106的可用服务数据库110中的)现有连接器,以寻找那些作为先前版本的连接器对象的可能的连接器。在方框418中,开发者门户计算设备116确定版本分析是否已经完成,例如可以依据从任务执行版本分析的专家系统接收到指示来确定。
如果开发者门户计算设备116确定版本分析已经完成,则方法400前进到方框420,如图4B所示。在方框420中,开发者门户计算设备116基于在方框404中由连接器开发者选择的相关联的连接器骨架,请求从连接器开发者(例如,经由UI开发者门户118)接收连接器对象的资源类型。在方框422中,开发者门户计算设备116确定是否已经接收到所请求的资源类型。如果是,则方法400前进到方框424,其中开发者门户计算设备116将所接收的资源类型存储在模型数据库中(例如,在图3的模型数据库302中)。
在方框426中,开发者门户计算设备116通知专家系统(例如,专家系统318)执行关系分析(参见例如图6的方法600)。换句话说,开发者门户计算设备116通知专家系统分析正在针对可能服务而创建的连接器对象,以便与连接器对象的服务进行相关。在方框428中,开发者门户计算设备116确定关系分析是否已经完成。如果是,则方法400分支到方框430,其中开发者门户计算设备116基于在方框418中从专家系统318接收的信息来确定连接器对象是否具有先前已发布的连接器对象的一个或多个对应版本。如果是,则方法400分支到方框450,如图4D所示,并在下面描述;否则,方法400分支到方框432,如图4C所示。
在方框432中,开发者门户计算设备116将连接器作为服务模型的函数来构建。为此,在方框434中,开发者门户计算设备116检索在方框406中生成的相关联的连接器模型标识符。另外,在方框436中,开发者门户计算设备116检索相关联的模型资源。此外,在方框438中,开发者门户计算设备116检索前端模板(例如,用于已知场景的用户界面)。此外,在方框440中,开发者门户计算设备116基于所检索的相关联模型资源和前端模板来设计货品清单。
在方框442中,开发者门户计算设备116确定连接器是否被成功构建。如果不是,则方法400返回到方框408以请求附加和/或替代的连接器描述信息;否则,方法400前进到方框444。在方框444中,开发者门户计算设备116基于该模型生成连接器封装。在方框446中,开发者门户计算设备116存储该连接器封装(例如,存储在图1的连接器集线器106的可用服务数据库110中)。在方框448中,开发者门户计算设备116向连接器开发者发送指示,指示已存储了连接器封装。
如先前所描述,在方框430(图4B中所示)中,如果开发者门户计算装置116确定连接器对象具有任何先前发布的版本,那么方法400分支到方框450,其在图4D中示出。在方框450中,开发者门户计算设备116将连接器作为服务模型的函数来构建。为此,在方框452中,开发者门户计算设备116检索在方框406中生成的相关联的连接器模型标识符。另外,在方框454中,开发者门户计算设备116检索相关联的模型资源。此外,在方框456中,开发者门户计算设备116比对着任何适用的兼容性规则来检查资源,以确保对连接器进行的升级/更改的向后兼容性。如前所述,兼容性规则提供允许执行自动升级的能力,因为可以比对着兼容性规则来测试所提议的升级(例如,可以存储在兼容性规则数据库308中)。此外,在方框458中,开发者门户计算设备116检索前端模板(例如,用于已知场景的用户界面)。此外,在方框460中,开发者门户计算设备116基于检索到的相关联模型资源和前端模板来设计货品清单。
在方框462中,开发者门户计算设备116确定连接器是否被成功构建(例如,资源是否违反任何兼容性规则)。如果不是,则方法400返回到方框408以请求附加和/或替代的连接器描述信息;否则,方法400前进到方框464。在方框464中,开发者门户计算设备116确定出先前连接器版本和当前连接器版本的模型之间的任何差异。在方框466中,开发者门户计算设备116基于在方框464中确定的差异生成一个或多个升级指令。如前所述,升级指令可以包括能被跟踪并应用于连接器的升级版本的任何模型更改。
在方框468中,开发者门户计算设备116基于模型和升级指令来生成连接器封装。在方框470中,开发者门户计算设备116存储连接器封装(例如,在图1的连接器集线器106的可用服务数据库110中)。在方框472中,开发者门户计算设备116向连接器开发者发送指示,指示已存储了该连接器封装。
现在参照图。参照图5,提供了用于对连接器对象执行版本分析的说明性方法500,其可以由开发者门户计算设备116来执行,或更具体地由开发者门户计算设备116的专家系统318执行。方法500开始于方框502,其中专家系统318确定是否接收到版本分析通知(例如,经由图1和图3的开发者UI门户118从开发者处接收)。
在方框504中,专家系统318将正在创建的当前连接器对象的连接器描述信息与当前存储在图1的连接器集线器106的可用服务数据库110中的连接器封装的对应信息进行比较,例如,该信息可以从相关联的模型(例如,存储在图3的模型数据库302中的资源模型信息)确定。如前所述,连接器描述信息可包括与API连接器有关的、可用于实例化API连接器实例的任何信息。在说明性示例中,在方框506中,专家系统318比较每个连接器对象的服务类型、服务名称和服务图标。
在方框508中,专家系统318将连接器对象之间的一致性等级作为在方框504中执行的比较的结果的函数来确定。在方框510中,专家系统318确定方框508中确定的一致性等级是否大于或等于一致性等级阈值。一致性等级可以是可用于传达每个连接器对象的信息(例如,服务类型、服务名称、服务图标等)之间的一致性的等级的任何数值(例如,量、数量、计数器值、百分比等)。因此,一致性等级阈值可以被定义为可用于比对着一致性等级来确定该一致性等级是否足够高到能合理地确定出连接器对象是相关联的(即,一个是另一个的先前版本)的任何对应量。
如果专家系统318确定一致性等级大于或等于一致性等级阈值,则方法500在前进到方框514之前分支到方框512。在方框512中,专家系统318将当前连接器对象与先前发布的连接器相关联,作为该连接器对象的新版本。如果专家系统318确定一致性等级小于一致性等级阈值,则方法500分支到方框514,其中专家系统318向连接器构建器(例如,图3的连接器构建器304)发送指示,指示专家系统已完成版本分析。在方框516中,专家系统318发送先前版本的连接器对象的标识符,(例如,如果方框512中出现了关系)这可能是适用的。
现在参照图6,提供了用于对连接器对象执行配对分析的说明性方法600,该方法可以由开发者门户计算设备116执行,或更具体地由开发者门户计算设备116的专家系统318执行。方法600开始于方框602,其中专家系统318确定是否接收到关系分析通知(例如,经由图1和图3的开发者UI门户118从开发者处接收)。在方框604中,专家系统318识别出可能与当前连接器对象有关的任何其他服务。为此,在方框606中,专家系统318可以基于其他服务存储在连接器集线器106的可用服务数据库110中的连接器封装的信息(例如它们各自的连接器资源类型),来识别这些其他服务。
在方框608中,专家系统318提示连接器开发者接受已识别出的、与要链接到连接器的任何现有和/或识别后服务的关系。在方框610中,专家系统318确定是否接受了此(些)关系。应当理解,在一些实施例中,可以接受一些、全部、或者完全不接受所识别的关系。应当进一步理解,在一些实施例中,可能不提示开发者接受该关系。换句话说,在这样的实施例中,可以识别并自动关联各关系,使得方法600直接从方框604前进到方框612。如果在方框610中接受了任何识别的关系,则方法600在进行到方框614之前前进到方框612。在方框612中,专家系统318向与所接受的服务相关联的每个连接器所有者发送指示,以确认该关系。否则,如果在方框610中不接受任何所识别的关系,则方法600前进到方框614,其中专家系统318向连接器构建器(例如,图3的连接器构建器304)发送指示,指示专家系统已完成关系分析。
尽管已经在附图和前面的描述中详细示出和描述了本公开,但是应将其视为示例性的,而在性质上不是限制性的,应理解,仅示出和描述了某些实施例,并且期望保护落入本公开的精神内的所有改变和修改。

Claims (4)

1.一种用于在云服务代理系统中创建和分配API连接器的方法,该方法包括:
经由开发者门户计算设备的开发者UI门户从开发者处接收与云服务相关联的API连接器的连接器描述符信息;
经由所述开发者UI门户从所述开发者处接收所述API连接器的模型的一种或多种资源类型;
经由所述开发者门户计算设备的连接器构建器,基于所存储的连接器后端开发框架来构建所述API连接器,其中将所述API连接器作为所述连接器描述符信息和所述一种或多种资源类型的函数来构建,其中所述连接器后端开发框架包括根据开发者定义的模型来定制的代码;
由所述连接器构建器生成针对所构建的API连接器的连接器封装;以及
由所述连接器构建器将所生成的所述连接器封装传输到云服务市场计算设备的连接器集线器,其中所述连接器封装能用于创建所述API连接器的一个或多个实例;
由所述开发者门户计算设备的专家系统分析是否已发布了与所述云服务相关联的所述API连接器的先前版本;
由所述专家系统并且在确定已经发布过所述API连接器的先前版本之后,确定所述API连接器与先前版本的API连接器之间的一致性水平;
由所述专家系统将所述一致性水平与一致性水平阈值进行比较;以及
由所述专家系统将所述API连接器与所述先前版本的API连接器相关联,将所述连接器API作为所述先前版本的API连接器的新版本;
由所述连接器构建器确定所述API连接器和所述先前版本的API连接器之间的一个或多个差异;以及
由所述连接器构建器将一个或多个升级指令作为所确定的所述一个或多个差异的函数来生成,
其中,生成所述连接器封装包括:将所述连接器封装作为所述一个或多个升级指令的函数来生成。
2.根据权利要求1所述的方法,还包括:
经由所述开发者门户计算设备的所述专家系统分析是否应当将另一个服务与所述API连接器进行关联;
由所述专家系统识别一个或多个其他服务是否可能与所述API连接器进行关联;以及
由所述专家系统并且在已经具有了经识别的能与所述API连接器进行关联的所述一个或多个其他服务之后,对所述一个或多个其他服务进行关联。
3.根据权利要求1所述的方法,还包括:经由所述开发者UI门户从所述开发者处接收与来自所述开发者门户计算设备的连接器骨架数据库的连接器骨架相关联的标识符,其中所述连接器骨架能用于生成连接器创建框架,并且其中接收所述API连接器的所述一种或多种资源类型包括基于所述连接器骨架接收所述API连接器的所述一种或多种资源类型。
4.根据权利要求1所述的方法,其中,接收所述连接器描述符信息包括接收所述服务的标题、所述服务的类型、与所述服务相关联的图标以及一个或多个服务提供商指令。
CN201880024966.5A 2017-04-14 2018-04-13 在云服务代理系统中创建和分配集成连接器的方法 Active CN110506257B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201762485665P 2017-04-14 2017-04-14
US62/485,665 2017-04-14
PCT/US2018/027596 WO2018191680A1 (en) 2017-04-14 2018-04-13 Technologies for creating and distributing integration connectors in a cloud service brokerage system

Publications (2)

Publication Number Publication Date
CN110506257A CN110506257A (zh) 2019-11-26
CN110506257B true CN110506257B (zh) 2023-11-03

Family

ID=63790654

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880024966.5A Active CN110506257B (zh) 2017-04-14 2018-04-13 在云服务代理系统中创建和分配集成连接器的方法

Country Status (17)

Country Link
US (2) US20180300115A1 (zh)
EP (1) EP3610369B1 (zh)
JP (1) JP7073394B2 (zh)
CN (1) CN110506257B (zh)
AU (1) AU2018252007B2 (zh)
CA (1) CA3059798A1 (zh)
DK (1) DK3610369T3 (zh)
ES (1) ES2970491T3 (zh)
FI (1) FI3610369T3 (zh)
HR (1) HRP20240139T1 (zh)
LT (1) LT3610369T (zh)
MX (1) MX2019012212A (zh)
PL (1) PL3610369T3 (zh)
PT (1) PT3610369T (zh)
RS (1) RS65115B1 (zh)
SI (1) SI3610369T1 (zh)
WO (1) WO2018191680A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220244936A1 (en) * 2021-01-29 2022-08-04 Salesforce.Com, Inc. Dynamically evolving and updating connector modules in an integration platform
CN113626007B (zh) * 2021-10-13 2021-12-31 树根互联股份有限公司 连接器模型的应用方法、装置及服务器

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8843997B1 (en) * 2009-01-02 2014-09-23 Resilient Network Systems, Inc. Resilient trust network services
CN104488291A (zh) * 2012-07-27 2015-04-01 诺基亚公司 用于促进云服务的利用的方法和装置
CN104604201A (zh) * 2012-09-07 2015-05-06 甲骨文国际公司 用于提供云服务的基础设施
CN104737517A (zh) * 2012-09-07 2015-06-24 甲骨文国际公司 基于ldap的多客户云内身份管理系统

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7062506B2 (en) * 2003-01-24 2006-06-13 The Cobalt Group, Inc. Staged publication and management of dynamic webpages
US7735077B2 (en) * 2004-05-05 2010-06-08 Bea Systems, Inc. System and method for inventory services
JP2006092167A (ja) * 2004-09-22 2006-04-06 Ricoh Co Ltd サービス提供装置、意味関係サービス提供装置、サービス提供プログラム、意味関係サービス提供プログラム、記録媒体、サービス提供方法及び意味関係サービス提供方法
US8046441B2 (en) * 2006-02-13 2011-10-25 Infosys Limited Business to business integration software as a service
JP4367424B2 (ja) * 2006-02-21 2009-11-18 沖電気工業株式会社 個人識別装置,個人識別方法
US20070300237A1 (en) * 2006-06-22 2007-12-27 Tim Neil Facilitating access to application data at an application server by a wireless communication device
US8782637B2 (en) * 2007-11-03 2014-07-15 ATM Shafiqul Khalid Mini-cloud system for enabling user subscription to cloud service in residential environment
US8699499B2 (en) * 2010-12-08 2014-04-15 At&T Intellectual Property I, L.P. Methods and apparatus to provision cloud computing network elements
US20140006482A1 (en) * 2012-07-02 2014-01-02 Vmware, Inc. Method and system for providing inter-cloud services
US20130282565A1 (en) * 2012-04-18 2013-10-24 Mastercard International Incorporated Systems and methods for managing transactions for a merchant
US9348652B2 (en) * 2012-07-02 2016-05-24 Vmware, Inc. Multi-tenant-cloud-aggregation and application-support system
US9824390B2 (en) * 2013-03-15 2017-11-21 International Business Machines Corporation Cloud service brokerage service store
US20140365350A1 (en) * 2013-06-10 2014-12-11 Rawllin International Inc. Financial platform that facilitates management of financial services
EP2824891A1 (en) * 2013-07-12 2015-01-14 Twinlife SAS Distributed programmable connection method to establish peer-to-peer multimedia interactions
US20150067171A1 (en) * 2013-08-30 2015-03-05 Verizon Patent And Licensing Inc. Cloud service brokering systems and methods
US10129078B2 (en) * 2014-10-30 2018-11-13 Equinix, Inc. Orchestration engine for real-time configuration and management of interconnections within a cloud-based services exchange
US20160198014A1 (en) * 2015-01-05 2016-07-07 Onavo Mobile Ltd. Techniques for predictive network resource caching
US9974415B2 (en) * 2015-01-19 2018-05-22 Kohler Co. Shower door assemblies and methods for installing same
US20160260157A1 (en) * 2015-03-05 2016-09-08 International Business Machines Corporation Rapid service orchestration and management
CN107836007B (zh) 2015-07-31 2023-04-11 难题知识产权有限责任公司 发现并发布api信息
AU2015404396B2 (en) 2015-07-31 2021-09-02 Ent. Services Development Corporation Lp Federated marketplace portal

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8843997B1 (en) * 2009-01-02 2014-09-23 Resilient Network Systems, Inc. Resilient trust network services
CN104488291A (zh) * 2012-07-27 2015-04-01 诺基亚公司 用于促进云服务的利用的方法和装置
CN104604201A (zh) * 2012-09-07 2015-05-06 甲骨文国际公司 用于提供云服务的基础设施
CN104737517A (zh) * 2012-09-07 2015-06-24 甲骨文国际公司 基于ldap的多客户云内身份管理系统

Also Published As

Publication number Publication date
MX2019012212A (es) 2019-11-28
ES2970491T3 (es) 2024-05-29
LT3610369T (lt) 2024-02-12
PT3610369T (pt) 2024-02-05
JP7073394B2 (ja) 2022-05-23
DK3610369T3 (da) 2024-01-29
CN110506257A (zh) 2019-11-26
WO2018191680A1 (en) 2018-10-18
AU2018252007A1 (en) 2019-10-03
FI3610369T3 (fi) 2024-01-30
US20210034345A1 (en) 2021-02-04
HRP20240139T1 (hr) 2024-04-12
RS65115B1 (sr) 2024-02-29
JP2020516989A (ja) 2020-06-11
US11748079B2 (en) 2023-09-05
AU2018252007B2 (en) 2022-11-24
SI3610369T1 (sl) 2024-03-29
CA3059798A1 (en) 2018-10-18
US20180300115A1 (en) 2018-10-18
EP3610369B1 (en) 2023-11-01
EP3610369A1 (en) 2020-02-19
EP3610369A4 (en) 2021-01-13
PL3610369T3 (pl) 2024-03-25

Similar Documents

Publication Publication Date Title
JP7097958B2 (ja) 自動ユニバーサルコネクタパッケージを使用してクラウドアプリケーションをクラウドサービスブローカプラットフォームに統合するためのシステムおよび方法
CN111279320B (zh) 实现微服务配置和管理的api储存库
CN110313000B (zh) 用于在云服务市场中安全地扩展云服务api的方法
JP7105298B2 (ja) クラウドサービスブローカーシステムにおいてオファーの機能を自動的に検証する技術
US20140082156A1 (en) Multi-redundant switchable process pooling for cloud it services delivery
US20180196647A1 (en) Application Programming Interface Discovery Using Pattern Recognition
CN112333096A (zh) 一种微服务流量调度方法及相关组件
US20200233786A1 (en) Default mock implementations at a server
US11748079B2 (en) Technologies for creating and distributing integration connectors in a cloud service brokerage system
US10705895B2 (en) Device based automated tool integration for lifecycle management platform
US10452371B2 (en) Automating enablement state inputs to workflows in z/OSMF
US11907731B1 (en) Configurable cloud development environments
WO2023193609A1 (en) Selective privileged container augmentation

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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20220526

Address after: California, USA

Applicant after: Yunlan Co.,Ltd.

Address before: California, USA

Applicant before: Ingram Micro Inc.

GR01 Patent grant
GR01 Patent grant