首页 / 专利库 / 电脑零配件 / 接口 / 用户界面 / web界面 / 与WEB服务集成的电子表格界面中的自适应认证

与WEB服务集成的电子表格界面中的自适应认证

阅读:102发布:2020-05-08

专利汇可以提供与WEB服务集成的电子表格界面中的自适应认证专利检索,专利查询,专利分析的服务。并且本公开涉及与WEB服务集成的 电子 表格界面中的自适应认证。示例方法促进对诸如电子表格等客户端侧程序的认证,以便 访问 和使用经由如表述性状态转移(REST)服务等web服务或应用程序编程 接口 (API)提供的受保护 服务器 侧数据和/或功能。所述示例方法使用电子表格的加载项或 插件 (其可以在移动装置、台式计算机、其他客户端系统上运行)来询问、协商或以其他方式测试或轮询要访问的web服务,从而在对客户端进行认证时确定由所述web服务使用的认证方法;并且根据所述认证方法来实施认证流程,从而有助于认证电子表格以便根据与所述经认证客户端 软件 (即,电子表格)相关联的权限来与web服务进行交互。,下面是与WEB服务集成的电子表格界面中的自适应认证专利的具体信息内容。

1.一种有形处理器可读介质,包括能够由一个或多个处理器执行的指令,并且所述指令当被执行时能够操作以:
从客户端侧程序接收信号以与服务器软件进行通信;
向所述服务器侧软件询问认证方法信息;
使用所述认证方法信息来认证所述客户端侧程序,以便与所述服务器侧软件进行交互;以及
使用由所述认证方法信息指定的认证方法来实现所述客户端侧程序与所述服务器侧软件之间的通信。
2.如权利要求1所述的有形处理器可读介质,其中,所述服务器侧软件包括表述性状态转移(REST)web服务。
3.如权利要求2所述的有形处理器可读介质,其中,所述客户端侧程序包括电子表格程序。
4.如权利要求3所述的有形处理器可读介质,其中,所述客户端侧程序包括Microsoft
5.如权利要求2所述的有形处理器可读介质,其中,使用所述客户端侧程序的加载项来实施权利要求1的步骤。
6.如权利要求5所述的有形处理器可读介质,其中,所述认证方法包括使用JSON Web令牌(JWT)。
7.如权利要求5所述的有形处理器可读介质,其中,所述认证方法包括基本访问认证(BASIC)。
8.如权利要求3所述的有形处理器可读介质,进一步包括能够由所述一个或多个处理器执行并且当被执行时能够操作以根据所述认证方法来选择用户界面(UI)显示屏的指令。
9.如权利要求8所述的有形处理器可读介质,进一步包括能够由所述一个或多个处理器执行并且当被执行时能够操作以使用所述UI显示屏从用户收集一个或多个凭证的指令。
10.如权利要求9所述的有形处理器可读介质,进一步包括能够由所述一个或多个处理器执行并且当被执行时能够操作以采用所述凭证来促进对所述用户和所述客户端侧程序的认证,以便经由所述服务器侧软件来访问基于的数据的指令。
11.一种用于促进客户端侧程序与服务器侧软件之间的通信的方法,所述方法包括:
从所述客户端侧程序接收信号以与服务器侧软件进行通信;
向所述服务器侧软件询问认证方法信息;
使用所述认证方法信息来认证所述客户端侧程序,以便与所述服务器侧软件进行交互;以及
使用由所述认证方法信息指定的认证方法来实现所述客户端侧程序与所述服务器侧软件之间的通信。
12.如权利要求11所述的方法,其中,所述服务器侧软件包括表述性状态转移(REST)web服务。
13.如权利要求12所述的方法,其中,所述客户端侧程序包括电子表格程序。
14.如权利要求13所述的方法,其中,所述客户端侧程序包括Microsoft 
15.如权利要求12所述的方法,其中,使用所述客户端侧程序的加载项来实施权利要求
11的步骤。
16.如权利要求15所述的方法,其中,所述认证方法包括使用JSON Web令牌(JWT)。
17.如权利要求15所述的方法,其中,所述认证方法包括基本访问认证(BASIC)。
18.如权利要求13所述的方法,进一步包括根据所述认证方法来选择用户界面(UI)显示屏。
19.如权利要求18所述的方法,进一步包括:
使用所述UI显示屏从用户收集一个或多个凭证;以及
采用所述凭证来促进对所述用户和所述客户端侧程序的认证,以便经由所述服务器侧软件访问基于云的数据。
20.一种设备,包括:
一个或多个处理器;以及
逻辑,所述逻辑编码在一个或多个有形介质中以供所述一个或多个处理器执行,并且所述逻辑当被执行时能够操作以:
从客户端侧程序接收信号以与服务器侧软件进行通信;
向所述服务器侧软件询问认证方法信息;
使用所述认证方法信息来认证所述客户端侧程序,以便与所述服务器侧软件进行交互;以及
使用由所述认证方法信息指定的认证方法来实现所述客户端侧程序与所述服务器侧软件之间的通信。
21.如权利要求20所述的设备,其中,所述逻辑能够进一步操作以根据所述认证方法来选择用户界面(UI)显示屏。
22.如权利要求21所述的设备,其中,所述逻辑能够进一步操作以使用所述UI显示屏从用户收集一个或多个凭证。
23.如权利要求22所述的设备,其中,所述逻辑能够进一步操作以采用所述凭证来促进对所述用户和所述客户端侧程序的认证,以便经由所述服务器侧软件访问基于云的数据。
24.一种用于促进客户端侧程序与服务器侧软件之间的通信的设备,所述设备包括:
用于从客户端侧程序接收信号以与服务器侧软件进行通信的装置;
用于向所述服务器侧软件询问认证方法信息的装置;
用于使用所述认证方法信息来认证所述客户端侧程序,以便与所述服务器侧软件进行交互的装置;以及
用于使用由所述认证方法信息指定的认证方法来实现所述客户端侧程序与所述服务器侧软件之间的通信的装置。
25.如权利要求24所述的设备,进一步包括用于根据所述认证方法来选择用户界面(UI)显示屏的装置。
26.如权利要求25所述的设备,进一步包括用于使用所述UI显示屏从用户收集一个或多个凭证的装置。
27.如权利要求26所述的设备,进一步包括用于采用所述凭证来促进对所述用户和所述客户端侧程序的认证,以便经由所述服务器侧软件访问基于云的数据的装置。

说明书全文

与WEB服务集成的电子表格界面中的自适应认证

[0001] 相关申请的交叉引用
[0002] 本申请要求于2019年9月4日提交的名称为“ADAPTIVE AUTHENTICATION IN SPREADSHEET INTERFACE INTEGRATED WITH WEB SERVICE(与WEB服务集成的电子表格界面中的自适应认证)”的美国专利申请序列号16/560,201(ORACP0245/ORA190245-US-NP)以及于2018年10月18日提交的名称为“ADAPTIVE AUTHENTICATION IN SPREADSHEET INTERFACE INTEGRATED WITH WEB SERVICE(与WEB服务集成的电子表格界面中的自适应认证)”的美国临时专利申请序列号62/747,500(ORACP0245P/ORA190245-US-PSP)的权益,所述专利申请出于所有目的如同在本申请中完整阐述的那样通过引用并入本文。

技术领域

[0003] 本申请涉及计算,并且更具体地涉及用于经由客户端侧软件与如表述性状态转移(REpresentational State Transfer,REST)web服务等web服务或应用程序编程接口(Application Programming Interface,API)并且尤其是提供对受保护服务器侧数据的经认证访问的web服务交互的系统和方法。

背景技术

[0004] 各种高要求的应用程序中采用了用于在允许经由一个或多个web服务或API与基于的数据进行交互之前认证用户和相关联的客户端侧软件的系统和方法,所述应用程序包括用于访问(例如,创建、更新、修改和/或删除)基于云的业务数据的企业移动app。这种应用程序通常需要高效的用户友好机制来认证用户和相关联的软件应用程序,以使软件应用程序能够经由相关联的web服务与基于云的数据进行交互。
[0005] 业务用户进一步需要使用如电子表格等客户端侧程序来访问其业务数据。传统上,这种应用程序可能缺乏用于与web服务进行认证(以及以其他方式与web服务交互)的高效机制,访问和更新基于云的数据(即,存储在云(表示一个或多个服务器系统的集合)中的数据)会需要所述机制。
[0006] 因此,这可能需要用户采用如浏览器等不同的软件程序来登录云;从云中下载数据等。然而,这可能需要用户手动提供管控客户端所使用的认证方法(加载项)的配置参数(例如,识别与web服务等交互时要采用的认证类型)。配置这种参数可能过于繁琐,并且可能需要专业用户知识来正确确定如何向特定的基于云的数据存储和(多个)相关联的web服务认证。
[0007] 此外,在一些情况下,用户或app开发者可能不会回想起如何登录(例如,使用什么认证方法)来访问特定REST服务负责的特定的基于云的数据存储。这可能会进一步复杂化客户端侧对数据的访问。在其他情况下,特定的web服务使用的认证方法可能会在其生命周期期间发生更改。然而,这可能会导致已经硬编码的某些客户端侧应用程序使用特定认证方法不再正确发挥作用。发明内容
[0008] 示例方法有助于实现客户端侧程序与服务器侧软件之间的通信,所述服务器侧软件服务于要由所述客户端侧程序访问的受保护数据和/或功能。所述示例方法包括从所述客户端程序接收信号以与服务器侧软件进行通信(例如,其中,加载项模从如电子表格等客户端侧程序接收信号;其中,所述信号对应于由用户与所述客户端侧程序的交互所触发的事件,并且其中,所述用户交互可以包括选择用于访问基于云的内容和/或功能的UI控件,如下文更为全面地讨论的);向所述服务器侧软件询问认证方法信息;使用所述认证方法信息来认证所述客户端侧程序,以便与所述服务器侧软件进行交互;以及使用由所述认证方法信息指定的认证方法来实现所述客户端侧程序与所述服务器侧软件之间的通信。
[0009] 在更具体的实施例中,所述服务器侧软件包括表述性状态转移(REST)web服务,并且所述客户端侧程序包括电子表格程序(本文中也简称为电子表格)。尽管可以参考特定类型的电子表格程序,例如Microsoft Excel、Google Sheets、Open Office等,但是应当显而易见的是,实施例的特征可以适用于与任何合适的电子表格程序一起使用。可以使用所述电子表格的加载项来实施示例方法。web服务可以使用的不同认证方法的示例包括基本访问认证(BASIC)和JavaScript对象表示法(JSON)Web令牌(JavaScript Object Notation(JSON)Web Token,JWT)方法。
[0010] 所述具体示例方法可以进一步包括自动确定用于从所述用户或身份提供者收集认证信息(本文中也称为证据)的适当用户界面(User Interface,UI)或其他机制。用于收集认证凭证或其他认证信息的UI和/或其他机制针对特定认证方法而定制,所述加载项的认证模块确定所述web服务使用所述特定认证方法。
[0011] 因此,本文所讨论的特定实施例提供了自适应认证方法,所述自适应认证方法可以根据经由所述电子表格加载项与所述web服务之间的交互而获得的认证方法信息来调整提供给所述用户的认证方法和相关联的UI(以便收集凭证、获取令牌或使用的认证方法所需的其他任务)。这消除了客户端侧软件开发者和用户对了解web服务所使用的认证方法细节的压,以使其软件能够访问或使用其数据和/或功能。此外,其提供了灵活性和自动适应性,以根据需要来适应web服务的不同认证方法。
[0012] 通过参考说明书的其余部分和所附附图,可以实现对本文公开的特定实施例的本质和优点的进一步理解。

附图说明

[0013] 图1图示了第一示例系统和伴随的计算环境,其采用客户端侧加载项以便通过用于促进对客户端侧程序的用户的认证的功能扩充电子表格,从而实现访问和/或使用web服务的受保护数据和/或功能。
[0014] 图2是适合与图1的系统一起使用的第一示例方法的流程图,并且所述方法并入了用于询问图1的web服务以获得认证方法信息的流程,以及用于基于所获得的认证方法信息来认证用户的流程。
[0015] 图3图示了示例用户界面(UI)显示屏,所述显示屏可以响应于对服务器所使用的认证方法的自动检测而经由图1至图2的实施例被自动激活,电子表格用于根据所述认证方法从所述服务器中提取数据。
[0016] 图4是适合与图1至图3的实施例一起使用的第二示例方法的流程图。
[0017] 图5是适合与图1至图4的实施例一起使用的第三示例方法的流程图。
[0018] 图6是适合与图1至图5的实施例一起使用的第四示例方法的流程图。
[0019] 图7是可用于实施图1至图6的实施例的系统和伴随的计算环境的总体框图
[0020] 图8是可用于实施图1至图7的实施例的计算装置的总体框图。

具体实施方式

[0021] 通常,计算环境的软件开发人员、配置管理人员、部署管理人员和其他用户可以订阅某些云服务,以促进软件应用程序的开发、配置和部署以及相关联文件的存储。
[0022] 出于本讨论的目的,服务器可以是任何计算资源,如适于将内容(例如,数据和/或功能)提供给请求所述内容的另一计算资源或实体(即,客户端)的计算机和/或软件。客户端可以是任何计算机或系统,包括适于从称为服务器的另一计算机或系统接收内容的软件系统。服务器系统可以是一个或多个服务器以及伴随的计算资源的任何集合。本文中术语“客户端装置”和“客户端”可以互换使用,然而,根据使用所述术语的上下文,术语客户端可以更一般地指代客户端装置和客户端软件两者。
[0023] 计算环境可以是用于执行涉及计算机处理的一个或多个任务的计算资源的任何集合。计算机可以是与存储器通信的任何处理器。计算资源可以是计算环境的任何部件、机制或其功能或数量,包括但不限于处理器、存储器、软件应用程序、用户输入装置以及输出装置、服务器等。计算资源的示例包括由一个或多个web服务、应用程序编程接口(API)等提供的数据和/或软件功能。
[0024] 企业计算环境可以是用于业务或组织的任何计算环境。示例企业计算环境包括跨网络分布的各种计算资源,并且可以进一步包括数据库、本地硬盘或文件服务器上的文件、电子邮件系统、文档管理系统、户、内联网Web服务器上的私有内容和共享内容,等等。
[0025] 给定软件应用程序可以包括(但不必是)组成软件应用程序或模块(例如,服务、功能、程序、计算对象等)。因此,术语“软件应用程序”还可以包括联网的软件应用程序或其集成组(integrated group)。
[0026] 出于本讨论的目的,软件系统可以是实施机器可读指令(即,计算机代码)的计算资源的任何集合。因此,术语“软件系统”可以指代软件应用程序,并且根据使用所述术语的上下文,所述术语可以进一步指代用于运行软件应用程序的(多个)伴随计算机和相关联的计算资源。
[0027] 根据使用所述术语的上下文,软件系统可以进一步包括硬件固件和实现运行软件应用程序的其他计算资源。应注意,某些软件系统可以包括根据过程模板和伴随的逻辑以特定的顺序实施的不同服务的集合。因此,术语“软件系统”、“系统”和“软件应用程序”在本文中可以互换使用,以指代用于计算机处理的模块或模块组或计算资源。
[0028] 出于本讨论的目的,web服务可以是适于由其代码存储在与web服务不同位置(例如,在另一台计算机或存储器存储单元或装置上)的应用程序或其他服务或进程调用的任何计算机代码和相关联的功能。因此,如本文所使用的术语“服务”相对较为广泛,并且可以包括由Web服务描述语言(Web Services Description Language,WSDL)接口、简单对象访问协议(Simple Object Access Protocol,SOAP)、表述性状态转移(REST)、YAML(Yet Another Markup Language,另一种标记语言)和/或其他类型的接口表征的远程可访问API和服务。
[0029] 通常,web服务(在本文中也简称为服务)提供可以由不同的应用程序、进程或web服务(其可以跨网络分布)重复使用的功能(例如,能力),所述不同的应用程序、进程或web服务经由与web服务的描述相一致的服务接口(例如,WSDL接口)访问所述功能。web服务模型可以表示松散耦接的集成模型,以允许各种网络分布式应用程序或进程的灵活集成。
[0030] 本文所讨论的实施例通常涉及用于使用在台式计算机、移动装置或其他计算机系统上运行的软件(在本文中称为客户端侧软件)来认证并且访问数据、更新或以其他方式使用由web服务(例如,表述性状态转移(REST)服务或应用程序编程接口(API))提供的任何功能的系统和方法。
[0031] 在各种高要求的应用程序(包括企业应用程序)中采用用于促进如电子表格等客户端侧软件与如web服务等服务器侧软件之间的交互和通信的方法,其中,企业人员在访问、操纵或以其他方式更新基于云的业务数据之前必须首先进行认证。
[0032] 然而,对于客户端侧程序的用户而言,认证、查看、编辑和更新基于云的数据(例如,存储在服务器系统的后端数据库中并且可经由一个或多个web服务或API访问的数据)可能相对较为麻烦。
[0033] 应注意,基于云的数据通常受要求在数据可以被访问或修改之前进行认证的安全策略的保护。传统上,用户或开发人员会手动提供管控客户端侧软件要使用的认证方法的配置参数(识别在与web服务等交互时要采用的认证类型)。
[0034] 此外,可以在开发阶段与生产阶段之间改变客户端侧软件所需的认证配置设置(例如,指定使用哪种认证方法)。本文所讨论的特定实施例提供了用于根据感测到的web服务的认证方法来自动适配客户端侧软件认证方法的机制。
[0035] 为了清楚起见,附图中不一定会明确指出某些众所周知的部件,如硬盘驱动器、处理器、电源、路由器、因特网服务供应商(Internet Service Provider,ISP)、工作流程协调器、进程调度器、身份管理云、进程云、证书授权机构、业务进程管理系统、数据库等。然而,本领域技术人员在了解本教导后将知道要实施哪些部件以及如何实施它们来满足对给定实施方式的需求。
[0036] 图1图示了第一示例系统10和伴随的计算环境,其将服务接口加载项18(在本文中也称为客户端侧加载项或插件)用于客户端侧程序16(例如,电子表格程序(在本文中也简称为电子表格))以通过用于促进对客户端侧程序16的用户的认证的功能扩充程序16,从而实现根据与已认证用户相关联的权限来访问和/或使用web服务或API 26的受保护数据和/或功能。web服务或API 26托管在服务器系统14上,所述服务器系统可经由如因特网等网络24来访问所述一个或多个客户端系统12。
[0037] 应注意,当用户为由web服务或API 26使用的特定认证方法提供有效凭证时,则使用所述凭证对用户进行认证。伴随的客户端侧程序16也被认为经认证以便访问web服务或API 26的数据和/或功能。应注意,在特定实施方式中,客户端侧程序16(例如,电子表格)仅可以访问与授予经认证用户的权限相关联的web服务或API 26的数据和/或功能。如本文所使用的短语“访问数据和/或功能”可以包括如下能力:从web服务或API 26负责的数据库中下载和查看数据;将数据上传到数据库,和/或修改数据库中的数据等,这取决于链接到经认证用户(例如,经由相关联的用户色或身份链接)的权限。
[0038] 应注意,通常,系统10的各个模块的分组是说明性的并且可以改变,例如,某些模块可以与其他模块进行组合或在其他模块的内部实施,或者在不脱离本教导的范围的情况下,模块另外可以以不同的方式(不同于所示出的方式)分布在网络之间或在一个或多个计算装置或虚拟机内。
[0039] 在本示例实施例中,客户端侧程序16是或包括已经通过加载项18扩充的电子表格。服务接口加载项18包括认证模块20,所述认证模块包括有助于对客户端侧程序16进行自适应认证以访问web服务或API 26的数据和/或功能的代码。数据集成模块22提供用于使客户端侧程序16能够进行以下操作的功能:从Web服务或API 26中取得数据(其中,数据可以维持在Web服务或API 26负责的数据库中);使用客户端侧程序16来操纵数据、上传新数据等,这取决于与已认证身份相关联的预定权限。
[0040] 总之,业务用户可能希望使用电子表格来访问和编辑其业务数据,以与web服务或API 26(例如,REST服务)集成。本文所讨论的加载项18有助于自动确定web服务或API 26正在使用哪种认证机制,以防止在未经授权的情况下访问web服务提供的数据和/或功能。
[0041] 可以很容易地将本文所讨论的实施例实施为与web服务进行通信以获得web服务元数据(例如,描述web服务或其特征或其他方面或由此使用的特征或其他方面的数据)的加载项18或插件。(多个)web服务或(多个)API 26可以支持不同的认证机制,如BASIC、JSON Web令牌(JWT)等,以防止未经授权的访问。
[0042] 在本示例实施例中,加载项18询问web服务或API 26来确定使用哪种类型的认证机制,并且然后相应地调整其行为,以允许经授权用户与web服务或API 26进行交互。换言之,认证模块20向web服务或API 26询问通用认证方案的存在,然后调整成选择操作认证方法或机制。一旦被选择,就可以为操作方法或机制定制用于提供认证凭证或其他证据的UI。
[0043] 这消除了对手动提供管控由服务接口加载项18采用的认证方法或方式的配置参数的需要。相反,加载项18自动调整以确定和选择操作机制。
[0044] 图2是适合与图1的系统10一起使用的示例方法100的流程图,并且所述方法包括用于询问图1的web服务或API 26与或图1的web服务或API 26进行协商以从web服务或API 26中获得认证方法信息的流程(步骤112至步骤118),以及基于所获得的认证方法信息对用户进行认证的流程(步骤120至步骤132)。
[0045] 参考图1和图2,在发起步骤112处,用户采用图1的客户端侧程序16来向web服务或API 26发起对数据(例如,要在电子表格中使用的数据)或元数据(例如,描述数据的数据,例如描述由web服务或API 26等使用的认证方法的数据)的请求。
[0046] 接下来,在询问步骤114中,图1的认证模块20询问(例如,发送请求消息)web服务或API 26以查询由web服务或API 26用来认证用户和相关联的客户端侧软件(例如,图1的客户端侧程序16)的认证方法或协议。
[0047] 接下来,在响应-发送(response-sending)步骤116处,图1的web服务或API 26对询问作出响应,如通过提供描述或以其他方式暗示或指示图1的web服务或API 26所采用的认证方法类型的认证方法信息对询问作出响应。
[0048] 随后的元数据检查步骤118检查返回的元数据(即,描述认证方法的数据)是否足以使图1的认证模块20确定要使用的适当认证方法,并且检查认证模块20是否可以成功促进实施指定类型的认证,即检查指定类型的认证是否对应于随后的子流程122至126中的一个。
[0049] 如果在元数据检查步骤118中,图1的认证模块20确认web服务或API 26使用适当的认证方法(即,可以由认证模块20处理的方法),则开始子流程发起步骤120。如果响应不适合,即认证模块20未确认web服务或API 26使用合适的认证方法,则认证模块20继续其尝试以查询web服务或API 26所使用的认证方法。查询或询问web服务或API 26以获取认证方法信息的重复尝试可以涉及使用不同类型的请求消息,并且可能会受询问步骤114包括的逻辑的管控。逻辑可以指定在给定测试没有返回图1的web服务26的合适的认证方法信息时运行哪个测试(例如,要发送的特定请求消息);何时终止特定测试或协商(例如,在竭尽所有测试之后);等等。
[0050] 子流程发起步骤120涉及(从子流程122至126中)选择由图1的认证模块20基于从web服务或API 26中返回的一个或多个响应而确定的适当的认证流程,其中web服务或API 26响应于认证模块20的一个或多个询问而返回所述一个或多个响应,其中所述认证模块20的一个或多个询问寻求确定web服务或API 26为保护web服务或API 26提供访问的数据和功能所采用的认证方法的类型。
[0051] 可能的认证流程的示例包括当web服务或API 26采用BASIC认证时使用的BASIC认证子流程122;嵌入式浏览器子流程124,例如,其可以在web服务或API 26采用JSON Web令牌(JWT)认证方法时使用(其中,这种方法可以利用可以经由浏览器对话框访问的身份提供者的服务,所述对话框由图1的加载项18经由嵌入式浏览器控件而激活,加载项18进而又激活浏览器以显示对话框并从而提供用户可以在其中输入凭证的UI),以及用于不同类型的认证的一个或多个其他子流程126。在一些实施例中可用的另外的子流程的示例包括多因素认证、开放授权(Open AUTHorization,OAUTH)和“联合”认证子流程。还应注意,可以想象可以将潜在的认证子流程扩展为包括生物认证,其包括但不限于指纹、视网膜以及面部扫描和识别。此外,在一些实施方式中,图1的加载项18可以依赖于本地(例如,客户端侧)操作系统向远程系统(例如,图1的web服务或APIS 26)认证用户(当这二者具有可信关系时)。此方法值得注意的是,在使用加载项时不需要终端用户交互(即,不需要另外的认证用户界面),因为用户(以及图1的相关联的客户端侧程序16)已经由本地操作系统认证。
[0052] 在适当的认证过程之后,即在完成子流程122至126中的一个之后,用户(以及图1的相关联的客户端侧程序16)在步骤128处认证并且提供凭证(或者由认证模块20以其他方式获得有效且可用的访问令牌)。
[0053] 接下来,证据收获步骤130涉及图1的认证模块20收获,即采集或收集认证证据。认证证据(即,成功认证的证据)可以包括一个或多个有效凭证、令牌、cookie等,这取决于所实施的认证子流程122至126。
[0054] 证据可以安全地缓存在图1的本地客户端系统12中,以使客户端侧程序(电子表格)16能够在给定通信会话期间根据需要访问web服务或API 26,而用户在其想要使用电子表格与服务器数据(本文中也称为基于云的数据)和经由web服务或API 26提供的功能进行交互时无需重新输入凭证。
[0055] 数据集成步骤132涉及图1的数据集成模块22继续促进图1的客户端侧程序16与web服务或API 26之间的通信。
[0056] 应注意,图2的方法100是说明性的,并且在不脱离本教导的范围的情况下可以用不同的方法对其进行修改或替换。例如,用于促进客户端侧程序与服务器侧软件之间的通信的更为通用的方法包括:从所述客户端侧程序接收信号以与服务器侧软件进行通信;向所述服务器侧软件询问认证方法信息;使用所述认证方法信息来认证所述客户端侧程序,以便与所述服务器侧软件进行交互;以及使用由所述认证方法信息指定的认证方法来实现所述客户端侧程序与所述服务器侧软件之间的通信。应注意,对于“接收信号”,用户执行手势以在加载项中启动(通过响应于所述手势而生成的信号)需要与web服务进行交互的进程(process)。此时,加载项可能已经或可能没有提前向web服务进行认证。如果没有,则如下文参考图2更为全面地讨论的,开始认证流程。
[0057] 服务器侧软件可以包括REST web服务,REST web服务提供服务由此经认证的客户端软件可以通过其访问基于云的数据,即可以将数据发布到数据库、从数据库下载数据、在数据库中更新数据、从数据库中删除数据等,取决于与经认证客户端相关联的权限。
[0058] 电子表格可以是如Microsoft Excel(R)等程序或其他电子表格。方法100中的另一步骤可以包括在适合于每个认证子流程122至126的预定UI中进行选择,以及使用用于给定认证方法的适当UI来收集足够的认证信息来使客户端侧程序16能够向图1的web服务或API 26进行认证。
[0059] 此外,应注意,如果图1的web服务或API 26没有为认证模块20提供足够的细节来确定要使用图2的哪个认证子流程122至126;则认证模块20可以实施另外的测试,如通过向web服务或API 26发送专门定制的测试消息;然后对web服务响应进行分析。
[0060] 总之,示例性方法100表示自适应认证流程和UI流程(例如,其中,可以根据所使用的认证子流程122至126来提供用于促进客户端认证的不同UI)。
[0061] 根据所识别的认证机制(例如,图2中的框120),图1的认证模块20可以启动适合于所述机制的用户界面(以实施子流程122至126中的一个)。一旦用户已经建立了他/她的身份,即已经认证,则图1的认证模块20收获必要的认证证据并且将其提供给数据集成模块22,从而使得模块22和伴随的客户端侧程序16可以继续与web服务或API 26进行通信(例如,包括取得元数据或数据;发送回已编辑的数据;等等)。
[0062] 图3图示了示例用户界面(UI)显示屏140(实施为对话框),其可以响应于对服务器(例如,图1的服务器系统14的服务器)所使用的认证方法的自动检测(例如,通过图1的认证模块20)经由图1至图2的实施例而被自动激活,电子表格(例如,图1的客户端侧程序16)用于访问其中的数据或与其进行交互(例如,如由与认证凭证相关联的权限所允许的,创建、读取、更新、删除等)。
[0063] 出于本讨论的目的,UI控件可以是用户界面显示屏的任何显示元素或部件,其适于使用户能够提供输入、查看数据和/或以其他方式与用户界面进行交互。用户界面控件的另外的示例包括按钮、下拉菜单、菜单项、点击和保持功能等。类似地,用户界面控制信号可以是被提供作为软件输入的任何信号,其中,输入影响用户界面显示屏和/或与所述软件相关联的伴随的软件应用程序。
[0064] 在本示例实施例中,用户已经选择了示例电子表格UI显示屏150的一个或多个UI控件152、154。示例UI控件152、154包括下载按钮152,所述下载按钮用于发起基于云的数据的下载以在电子表格UI显示屏150中使用。用户对上传按钮154的选择激活了用于促进将数据或经改变的数据上传到云(例如,对应于图1的服务器系统14)的功能。
[0065] 然而,在当前示例场景中,图1的显示图3的示例电子表格UI显示屏150的客户端侧程序16尚未通过认证以使用图1的(多个)web服务或API 26,以访问图1的(多个)web服务或(多个)API 26负责的基于云的数据(和/或以其他方式与之交互)。
[0066] 因此,图1的基础认证模块20检测到客户端侧程序16需要进行认证,然后自动启动图2的过程流程100,以与图1的(多个)web服务或(多个)API 26进行通信,从而根据需要确定关于所使用的认证方法类型;需要的参数等的细节,以认证图1的客户端侧程序16(和图3的相关联的UI显示屏150),从而经由图1的相关联的(多个)web服务或(多个)API 26与基于云的数据进行交互。
[0067] 在当前示例场景中,激活图2的BASIC认证子流程122,从而使得根据需要自动显示用于收集认证凭证(也称为登录凭证)144(包括用户名146和密码148)的示例对话框(在本文中也简称为对话)140,以便使用BASIC认证机制或方法向已识别服务器142进行认证。
[0068] 在用户输入登录凭证144然后选择登录控件156之后,将收集到的凭证发送到图1的(多个)web服务或(多个)API 26,所述web服务或API然后验证凭证并且认证图1的客户端侧程序16,以实现使用(多个)web服务或(多个)API 26与服务器侧数据(在本文中也称为基于云的数据)和功能进行交互。
[0069] 应注意,在验证有效认证凭证144之后,用户已经被成功认证。然而,图1的客户端侧程序16也被认为被认证以访问和使用图1的(多个)web服务或(多个)API 26,在这个意义上,客户端侧程序16现在可以根据由图1的(多个)web服务或(多个)API26所给的与提供的登录凭证144相关联的权限来交互和使用(多个)web服务或(多个)API 26。
[0070] 应注意,在其他实施例中,可以将登录凭证144发送给单独的身份提供者或身份管理系统,所述身份提供者或身份管理系统可以发布一个或多个令牌,所述令牌可用于访问可经由图1的(多个)web服务或(多个)API 26获得的数据和功能。关于向何处发送信息、应使用哪种通信协议等的细节可以经由与图1的(多个)web服务或(多个)API进行通信(包括对其进行询问)而由图1的认证模块20来自动确定。
[0071] 因此,本文所讨论的各种实施例结合了用于自适应地动态确定电子表格将与之通信的特定web服务使用哪种认证方法(包括认证方法类型、所需参数、协议细节等)的功能;然后继续根据检测到的认证方法收集认证凭证。这可能需要或可能不需要启动对话框。例如,在一些实施例中,生物统计、单点登录(Single Sign-On,SSO)、OAuth和联合访问认证机制可以帮助消除对图1的认证模块20启动如图3的对话框140等对话的需要。
[0072] 例如,如果图1的(多个)web服务或(多个)API 26采用了可以基于不需要经由对话框收集的其他数据来自动认证图1的客户端侧程序16的认证方法,则可能发生这种情况。在一些实施例或场景中,这可能涉及使用承载令牌(bearer token)和客户端ID来自动获得访问令牌以访问图1的(多个)web服务或(多个)API 26的数据和/或功能。
[0073] 在另一示例场景中,检测到的认证方法可以指定使用特定的身份管理系统。然后,图1的基础认证模块20可以引起嵌入式浏览器控件(例如,弹出窗口)的启动,所述控件示出由适当的身份管理系统托管并且可用于从用户捕获认证凭证的页面。然后,身份管理系统可以捕获凭证;验证有效性;并且然后随后允许在图1的服务接口加载项18与图1的(多个)web服务或(多个)API 26之间进行通信和交互。
[0074] 因此,具有图1的加载项18的客户端侧程序16包括用于检测针对基于云的数据访问的客户端请求(例如,经由图3的UI控件152、154中的一个或多个)的代码;然后询问REST服务(例如,对应于图1的web服务或API 26),以确定REST服务(其中,REST服务提供对基于云的数据的访问)使用哪种类型的认证方法。REST服务认证方法可以隐含在从REST服务(响应于询问)中获得或者以其他方式从另外的询问和响应REST服务答复中推断出来的元数据中。
[0075] 使用如本文所讨论的实施例,客户端侧电子表格现在可以(与之前的相反)容易地进行认证,并且然后经由电子表格插件将其本地存储的数据与基于云的数据进行同步和集成,所述电子表格插件与促进经认证客户端侧访问基于云的数据的REST服务进行通信。电子表格插件例如通过自动确定REST服务所采用的认证机制并且启动适当的流程进一步促进向REST服务(或其他类型的服务或API)进行用户认证。通过客户端侧电子表格与基于云的软件和数据之间的自动认证和集成,用户现在可以容易地使用其客户端侧电子表格来访问和更新基于云的数据和本地存储的数据两者。
[0076] 客户端侧电子表格通常用于使用本地存储的数据来操纵、更新和生成分析。然而,随着企业将其数据迁移到云中,使用传统电子表格可能需要例如用户采用单独的程序(例如,浏览器)来登录其云账户(即,认证);从云中下载数据;打开电子表格应用程序以访问/使用所下载的数据;并且然后返回单独的程序(例如,浏览器)以将任何已更新数据上传到云中。然而,传统上,此过程可能是冗余的并且容易出错。
[0077] 本文所讨论的特定实施例可以选择性地将用于促进用户认证(即,向用于取得数据以供客户端侧电子表格使用的REST服务认证)的功能与用于促进确定相关联的REST服务认证方法的功能结合。另外的功能有助于自动或以其他方式取得根据认证方法向REST服务和相关联的服务器进行认证所需的凭证。
[0078] 总之,参考图1,预先存在的电子表格应用程序的服务接口加载项(例如,图1的加载项18)实施用于促进客户端侧电子表格数据与云中存储的服务器侧数据之间的用户认证和自动数据集成的功能(例如,经由图1的模块20、22)。这缓解了上文所描述的传统的、冗余的、易于出错的过程。
[0079] 图4是适合与图1至图3的实施例一起使用的第二示例方法160的流程图。第二示例方法160促进客户端侧程序与服务器侧软件之间的通信。
[0080] 第二示例方法160包括第一信号接收步骤162,所述步骤涉及从客户端侧程序(例如,图1的客户端侧程序16)接收信号以与服务器侧软件(例如,包括图1的web服务或API 26)进行通信。例如,电子表格(例如,图1的客户端侧程序16)可以响应于用户选择图3的示例下载按钮152或上传按钮154而接收信号。
[0081] 接下来,询问步骤164包括向服务器侧软件询问认证方法信息。所述询问可以涉及例如发送针对来自图1的web服务或API 26的元数据(描述所使用的认证方法和/或机制)的请求消息。
[0082] 所述询问还可以涉及例如在取得的元数据不足以识别认证方法以及自动实施认证方法(例如,获得必要的凭证)所需的相关联的参数和描述符时,在图1的web服务或API26上实施测试。所述测试可以涉及发送消息(以及分析响应)来测试图1的web服务或API 26采用了哪种类型的认证方法(和/或其属性或参数)。
[0083] 随后的元数据使用步骤166包括使用认证方法信息来认证客户端侧程序以与服务器侧软件进行交互。
[0084] 接下来,通信实现步骤168包括使用由认证方法信息指定的认证方法实现客户端侧程序(例如,图1的客户端侧程序16)与服务器侧软件之间的通信。
[0085] 应注意,在不脱离本教导的范围的情况下,可以对第二示例方法160进行修改。例如,在不脱离本教导的范围的情况下,可以添加、交换、省略、用其他步骤代替某些步骤,或者可以指定另外的细节。
[0086] 例如,第二示例方法160可以进一步指定服务器侧软件包括REST web服务并且客户端侧程序包括如Microsoft Excel(R)等电子表格程序。
[0087] 第二示例方法160可以进一步包括使用客户端侧程序的加载项来实施方法160的步骤162至168。此外,在某些实例中,方法160可以进一步指定认证方法包括使用JSON Web令牌(JWT),或者认证方法包括BASIC(基本访问认证)等。
[0088] 出于本讨论的目的,UI显示屏可以是在显示器上呈现的任何软件生成的描绘。描绘的示例包括窗口、对话框、显示的表格以及经由如浏览器等软件呈现给用户的如用户界面控件等任何其他图形用户界面特征。单个边界内含有的UI显示屏可以称为视图、窗口。视图或窗口可以包括部分,如子视图或子窗口、对话框、图形、表格等。在某些情况下,用户界面显示屏可以指代当前显示在显示器上的所有应用程序窗口。
[0089] 第二示例方法160可以进一步包括基于认证方法(和相关联的特性)来选择和激活UI显示屏(例如,图3的UI显示屏140)。激活的UI显示屏包括用于获得或收获认证凭证的一个或多个UI控件(例如,图3的用户名146和密码148的字段以及登录按钮156)。UI显示屏可以为认证方法而定制,并且可以自动改变以适应web服务(例如,图1的web服务或API 26)所使用的不同的或不断变化的认证方法。
[0090] 第二示例方法160可以进一步包括使用UI显示屏从用户收集一个或多个认证凭证(例如,用户名和密码);然后采用凭证来促进对用户和客户端侧程序的认证,以便经由服务器侧软件访问基于云的数据。
[0091] 图5是适合与图1至图4的实施例一起使用的第三示例方法170的流程图。第三示例方法170促进了使用电子表格向web服务进行认证,以实现电子表格经由web服务访问基于云的数据(这要求在访问由所述服务管控的数据和/或功能以供特定客户端侧程序使用之前进行认证)。
[0092] 第三示例方法170包括初始通信步骤172,所述步骤包括使用电子表格的插件(例如,对应于图1的服务接口加载项18)与web服务(例如,对应于图1的web服务或API 26)进行通信(例如,询问web服务),以确定web服务所使用的认证机制。web服务提供了用于促进对服务器侧数据的访问的功能。应注意,术语“认证机制”可以包括例如认证方法类型、所使用的参数和协议、关于任何必要的身份服务提供者的信息、用于收集认证凭证的UI显示屏等或由其描述。
[0093] 接下来,机制使用步骤174包括使用认证机制或方法来自动激活(即,显示)UI显示屏(例如,以图3的对话框140为例),所述UI显示屏包括用于根据认证机制获得认证凭证的一个或多个UI控件,其中,UI显示屏的一个或多个特征可以根据认证机制的类型和相关联的方法而变化。
[0094] 随后,凭证取得步骤176包括使用UI显示屏来取得登录凭证,本文中也称为认证凭证。
[0095] 接下来,凭证使用步骤178包括使用认证凭证来促进插件的认证,以使插件能够例如经由一个或多个web服务或API(例如,对应于图1的web服务或API 26)来访问基于云的数据。
[0096] 在不脱离本教导的范围的情况下,可以对第三示例方法170进行修改。例如,第三示例方法170可以进一步指定初始通信步骤172包括询问web服务。所述询问可以包括向web服务发送针对描述web服务所使用的认证机制的元数据的一个或多个请求消息。
[0097] 所述询问可以进一步包括当web服务认证元数据未对认证机制和web服务所使用的任何必需参数进行精确描述时,通过经由专门定制的消息选择性测试web服务来确定web服务认证机制(以及相关联的属性,例如类型、参数、协议、其他要求等)。
[0098] 在特定场景中,询问可以有助于确定例如web服务认证机制支持JWT中继认证;支持BASIC认证;支持多因素认证;支持生物特征认证;联合认证和/或其他类型的认证机制和/或方法。
[0099] 图6是适合与图1至图5的实施例一起使用的第四示例方法180的流程图。第四示例方法180促进了对电子表格(例如,对应于图1的客户端侧程序16)的认证,以访问基于云的数据(例如,图1的web服务或API 26中的一个或多个负责的服务器侧数据)。
[0100] 第四示例方法180包括第一步骤182,所述步骤涉及选择性地使用电子表格插件来向web服务询问关于web服务所使用的认证方法的信息(例如,元数据)。web服务管控对基于云的数据的访问,即充当前端、接口或门户,尝试与基于云的数据进行交互或集成的客户端侧程序通过所述前端、接口或门户实现对基于云的数据的访问。
[0101] 第二步骤184包括使用与通过第一步骤182所确定的认证方法的特性相一致的方法来收集用户凭证。
[0102] 第三步骤186包括根据认证方法且根据认证方法所使用的协议将凭证转移到web服务或身份服务提供者。
[0103] 第四步骤188包括确定已经对电子表格插件进行认证以与web服务一起使用,从而根据与插件相关联联的权限和由此提供给web服务的凭证来访问、取得、下载、更新或修改基于云的数据。
[0104] 响应于确定已经对电子表格插件进行了认证以便与web服务一起使用,第五步骤190然后激活用于将电子表格所使用的数据与基于云的数据进行集成的功能。
[0105] 在不脱离本教导的范围的情况下,可以对第四示例方法180进行修改。例如,第四示例方法180可以进一步指定第一步骤182包括向REST服务端点询问公共认证方案或方法;然后基于任何识别的方案进行调整,其中,调整包括使得显示适当的对话框以获得所识别的认证方案等所需的认证凭证。
[0106] 用于促进对客户端侧程序的认证以使客户端侧程序能够与基于云的数据进行交互的另一示例方法包括:使用客户端侧程序的插件来询问web服务以确定web服务所使用的认证方法,其中,web服务实施用于使客户端侧插件能够访问基于云的数据的功能;自动调整插件以适应和使用基于插件响应于询问取得的元数据或测试结果而确定的认证方法,其中,客户端侧程序包括电子表格,并且其中,插件包括到电子表格的加载项;以及使用认证方法来认证客户端侧程序,以用于根据与用于认证客户端侧程序的凭证相关联的一个或多个权限来选择性地取得、修改、更新和/或删除基于云的数据。
[0107] 图7是可用于实施图1至图6的实施例的系统900和伴随的计算环境的总体框图。可以将实施例实施为独立应用程序(例如,驻留在用户装置中)或使用客户端侧代码与服务器侧代码的组合实施的基于web的应用程序。
[0108] 通用系统900包括用户装置960至990,包括台式计算机960、笔记本计算机970、智能电话980、移动电话985和平板计算机990。通用系统900可以与能够显示和导航web页面或其他类型的电子文档和UI和/或执行应用程序的任何类型的用户装置接口连接,所述用户装置如瘦客户端计算机、支持因特网的移动电话、移动因特网访问装置、平板计算机、电子书或个人数字助理等。尽管系统900被示出为具有五个用户装置,但是可以支持任何数量的用户装置。
[0109] web服务器910用于处理来自web浏览器以及独立应用程序针对web页面、电子文档、企业数据或其他内容的请求,以及来自用户计算机的其他数据。web服务器910还可以提供推送数据或与企业运营有关的数据的综合内容(syndicated content),如RSS订阅源(RSS feeds)。
[0110] 应用程序服务器920对一个或多个应用程序进行操作。应用程序可以被实施为以任何编程语言或任何脚本语言编写的一个或多个脚本或程序,所述编程语言如Java、C、C++、C#等,所述脚本语言如JavaScript或者ECMAScript(European Computer Manufacturers Association Script,欧洲计算机制造商协会脚本)、Perl、PHP(Hypertext Preprocessor,超文本预处理器)、Python、Ruby或TCL(Tool Command Language,工具命令语言)。可以使用库或应用程序框架(如Rails、Enterprise JavaBeans、或.NET等)来构建应用程序。可以使用HTML(HyperText Markup Language,超文本标记语言)、CSS(Cascading Style Sheets,层叠样式表)和其他web技术(包括模板语言和解析器)来创建web内容。
[0111] 在应用程序服务器920上运行的数据应用程序适于处理输入数据和用户计算机请求,并且可以存储或从数据存储装置或数据库930中取得数据。数据库930存储由数据应用程序创建和使用的数据。在实施例中,数据库930包括适于响应于SQL格式命令或其他数据库查询语言而存储、更新和取得数据的关系数据库。其他实施例可以使用非结构化数据存储架构和NoSQL(Not Only SQL,不仅仅SQL)数据库。
[0112] 在实施例中,应用程序服务器920包括能够执行程序或脚本的一个或多个通用计算机。在实施例中,web服务器910被实施为在一个或多个通用计算机上运行的应用程序。web服务器910和应用程序服务器920可以被组合并在相同的计算机上执行。
[0113] 电子通信网络940至950实现用户装置960至990、web服务器910、应用程序服务器920和数据库930之间的通信。在实施例中,网络940至950可以进一步包括任何形式的电通信装置或光通信装置,包括有线网络940和无线网络950。网络940至950还可以包括如以太网等一个或多个局域网、如因特网等广域网;蜂窝载波数据网络;以及如虚拟专用网络等虚拟网络。
[0114] 所述系统是用于执行根据本发明的实施例的应用程序的一个示例。在另一实施例中,应用程序服务器920、web服务器910以及可选的数据库930可以组合到单个服务器计算机应用程序和系统中。在进一步的实施例中,虚拟化应用程序和虚拟机应用程序可以用于实施应用程序服务器920、web服务器910和数据库930中的一个或多个。
[0115] 在又进一步的实施例中,服务功能的web和应用程序中的全部或一部分可以集成到在每个用户计算机上运行的应用程序中。例如,用户计算机上的JavaScript应用程序可以用于取得或分析数据并显示应用程序的部分。
[0116] 参考图1和图7,可以经由图7的台式计算机960、平板计算机990、智能电话980、笔记本计算机970和/或移动电话985中的一个或多个来实施图1的(多个)客户端系统12。可以经由图7的web服务器910和/或应用程序服务器920来实施图1的服务器系统14。
[0117] 在一个示例场景中,图1的web服务或API 26在应用程序服务器(例如,图7的应用程序服务器920)上运行,但是可经由由图7的web服务器910托管的网站的网页代码来访问(例如,由用户和客户端侧软件访问)。在图7的应用程序服务器920上运行的图1的web服务或API 26可以实现访问和使用经由图7的数据存储装置维护的数据和功能。图7的数据存储装置可以存储所谓的基于云的数据,并且可以包括可经由在应用程序服务器920上运行的软件来访问的后端数据库。
[0118] 图8是可用于实施图1至图7的实施例的计算装置的总体框图。虽然图8的装置500被描述为促进执行如在本文的特定实施方式中所描述的步骤,但是装置500的任何合适的部件或部件的组合或者与装置500相关联的任何合适的一个或多个处理器都可以用于执行所描述步骤。
[0119] 图8展示了可以用于本文所描述的实施方式的示例计算装置500的框图。例如,计算装置500可以用于实施图7的服务器910、920以及执行本文所描述的方法实施方式。在一些实施方式中,计算装置500可以包括处理器502、操作系统504、存储器506以及输入/输出(I/O)接口508。在各种实施方式中,处理器502可以用于实施本文所描述的各种功能和特征,以及用于执行本文所描述的方法的实施方式。虽然处理器502被描述为执行本文所描述的实施方式,但是装置500的任何合适的部件或部件的组合或者与装置500或任何合适的系统相关联的任何合适的一个或多个处理器都可以执行所述步骤。本文所描述的实施方式可以在用户装置、服务器或两者的组合上执行。
[0120] 计算装置500还包括软件应用程序510,所述软件应用程序可以存储在存储器506或任何其他合适的存储单元或计算机可读介质上。软件应用程序510提供使处理器502能够执行本文所描述的功能和其他功能的指令。计算装置500的部件可以由一个或多个处理器或硬件装置的任何组合以及硬件、软件、固件等的任何组合来实施。
[0121] 为了便于说明,图8为处理器502、操作系统504、存储器506、I/O接口508和软件应用程序510中的每一个示出了一个框。这些框502、504、506、508和510可以表示多个处理器、操作系统、存储器、I/O接口和软件应用程序。在各种实施方式中,计算装置500可以不具有所示出的所有部件和/或可以具有其他元件,所述其他元件包括替代或除本文所示出的那些部件之外的其他类型的部件。
[0122] 虽然已经关于说明书的特定实施例描述了说明书,但是这些特定实施例仅是说明性的而非限制性的。例如,虽然主要讨论了可与客户端侧电子表格一起使用以促进对由web服务提供的数据和/或功能的访问和更新的实施例,但是实施例不限于此。在不脱离本教导的范围的情况下,本文所描述的特征可以与其他类型的客户端侧软件一起使用,如数据可视化软件、关系数据库等。
[0123] 任何合适的编程语言都可以用于实施特定实施例的例程,包括C、C++、Java、汇编语言等。可以采用如面向程序或对象等不同的编程技术。所述例程可以在单个处理装置或多个处理器上执行。虽然这些步骤、操作或计算可能以特定顺序呈现,但是在不同的特定实施例中可以改变这种顺序。在一些特定实施例中,可以同时执行在本说明书中按顺序示出的多个步骤。
[0124] 特定实施例可以在计算机可读存储介质中实施,以供指令执行系统、设备、系统或装置使用或与其结合使用。特定实施例可以以控制逻辑的形式以软件或硬件或这两者的组合实施。所述控制逻辑当由一个或多个处理器执行时可操作以用于执行在特定实施例中描述的内容。例如,诸如硬件存储装置等有形介质可以用于存储包括可执行指令的控制逻辑。
[0125] 特定实施例可以通过使用经编程的通用数字计算机、通过使用专用集成电路、可编程逻辑装置、现场可编程门阵列、光学系统、化学系统、生物系统、量子系统或纳米工程系统等来实施。可以使用其他部件和机制。通常,特定实施例的功能可以通过本领域已知的任何手段来实现。可以使用分布式联网系统、部件和/或电路。可以采用云计算或云服务。数据的通信或传输可以是有线的、无线的或通过任何其他手段。
[0126] 还应当理解附图/图中描绘的元件中的一个或多个也可以以更分离或集成的方式实施,或者甚至在某些情况下被移除或呈现为不可操作,这根据特定应用程序是有用的。实施可以存储在机器可读介质中的程序或代码以允许计算机执行上述任何方法也在精神和范围内。
[0127] 还应当理解,上文所描述方法中的任何方法可以由包括一个或多个装置的设备来执行。例如,可以提供用于促进客户端侧程序与服务器侧软件之间的通信的设备。所述设备可以包括:用于从客户端侧程序接收信号以与服务器侧软件进行通信的装置;用于向所述服务器侧软件询问认证方法信息的装置;用于使用所述认证方法信息来认证所述客户端侧程序,以便与所述服务器侧软件进行交互的装置;以及用于使用由所述认证方法信息指定的认证方法来实现客户端侧程序与服务器侧软件之间的通信的装置。上文所描述方法中的其他步骤也可以由所述设备中的一个或多个装置来执行。在本文中,所述设备可以实施为如图1中的加载项18等软件,并且所述装置可以实施为所述软件中的程序模块。
[0128] “处理器”包括处理数据、信号或其他信息的任何合适的硬件和/或软件系统、机制或部件。处理器可以包括具有通用中央处理单元、多个处理单元、用于实现功能的专用电路的系统或其他系统。处理不必限于地理位置或具有时间限制。例如,处理器可以以“实时”、“离线”、“批处理模式”等方式来执行其功能。可以通过不同的(或相同的)处理系统在不同时间和不同位置处执行部分处理。处理系统的示例可以包括服务器、客户端、终端用户装置、路由器、交换机、联网存储装置等。计算机可以是与存储器通信的任何处理器。存储器可以是任何合适的处理器可读存储介质,诸如随机存取存储器(RAM)、只读存储器(ROM)、磁盘或光盘、或适合于存储由处理器执行的指令的其他有形介质。
[0129] 如在本文的说明书以及以下整个权利要求中所使用的,除非上下文中另外明确指明,否则“一个(a)”、“一种(an)”以及“所述(the)”包括复数指代物。同样,如在本文的说明书以及以下整个权利要求中所使用的,除非上下文中另外明确指明,否则“在……中(in)”的含义包括“在……中(in)”和“在……上(on)”。
[0130] 因此,虽然本文已经描述了特定实施例,但是在前述公开内容中意图进行一定范围的修改、各种改变和替换,并且应当理解,在一些实例中,可以在不背离如前所述的范围和精神的情况下采用特定实施例的一些特征而不相应地使用其他特征。因此,可以进行许多修改以使特定情况或材料适于基本范围和精神。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈