CN113811854A - 利用跨应用的活动相关性的微应用功能建议 - Google Patents

利用跨应用的活动相关性的微应用功能建议 Download PDF

Info

Publication number
CN113811854A
CN113811854A CN202080009580.4A CN202080009580A CN113811854A CN 113811854 A CN113811854 A CN 113811854A CN 202080009580 A CN202080009580 A CN 202080009580A CN 113811854 A CN113811854 A CN 113811854A
Authority
CN
China
Prior art keywords
application
trees
micro
dependency
sequence
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.)
Granted
Application number
CN202080009580.4A
Other languages
English (en)
Other versions
CN113811854B (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.)
Citrix Systems Inc
Original Assignee
Citrix Systems Inc
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 Citrix Systems Inc filed Critical Citrix Systems Inc
Publication of CN113811854A publication Critical patent/CN113811854A/zh
Application granted granted Critical
Publication of CN113811854B publication Critical patent/CN113811854B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/0631Item recommendations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • G06F8/22Procedural
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3438Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment monitoring of user actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/77Software metrics
    • 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/451Execution arrangements for user interfaces
    • G06F9/453Help systems
    • 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
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • 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
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • Finance (AREA)
  • Accounting & Taxation (AREA)
  • General Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Human Resources & Organizations (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Databases & Information Systems (AREA)
  • Development Economics (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Tourism & Hospitality (AREA)
  • Operations Research (AREA)
  • Educational Administration (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Game Theory and Decision Science (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)
  • User Interface Of Digital Computer (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

一种用于生成微应用推荐的方法,包括:接收表征用户与应用之间的交互的观察数据。该方法还包括:基于接收到的观察数据来定义相关树的集合。在集合中的每个相关树代表用户中的一个用户与应用中的一个或多个应用之间的交互序列。该集合包括第一数量的相关树。该方法还包括:识别相似相关树的子集,相似相关树中的每一个被包括在集合中。该子集包括第二数量的相关树,该第二数量小于第一数量。该方法还包括:做出第二数量大于阈值数量的确定。该方法还包括:响应于做出确定,基于由代表子集的相关树所代表的交互序列来生成微应用推荐。

Description

利用跨应用的活动相关性的微应用功能建议
背景技术
数字工作空间是一种软件框架,其被设计为不管用户的设备或位置如何,都以一致且安全的方式递送和管理用户的应用、数据和台式机。数字工作空间通过使用户频繁执行的那些任务(例如,批准费用报告、确认日历约会、提交服务台票据和审查休假请求)简化和自动化来增强用户体验。数字工作空间允许用户通过单个接口访问由多个企业应用(包括“软件即服务”(SaaS)应用、web应用、桌面应用和专有应用)提供的功能。数字工作空间还通过使用微应用来扩展这些应用的能力。微应用同步来自复杂的企业应用的数据以简化功能,并且因此可以被理解为用户可以在数字工作空间内从其访问的简化用例。
发明内容
在第一示例实现方式中,提供了一种用于生成微应用推荐的方法。该方法包括:接收表征多个用户与多个应用之间的交互的观察数据。该方法还包括:基于接收到的观察数据来定义相关树的集合。在集合中的每个相关树代表用户中的一个用户与应用中的一个或多个应用之间的交互序列。该集合包括第一数量的相关树。该方法还包括:识别相似相关树的子集,相似相关树中的每一个被包括在集合中。该子集包括第二数量的相关树,该第二数量小于第一数量。该方法还包括:做出第二数量大于阈值数量的确定。该方法还包括:响应于做出确定,基于由代表子集的相关树所代表的交互序列来生成微应用推荐。
在第二示例实现方式中,生成微应用推荐还包括生成机器可读指令,该机器可读指令在被执行时使得由代表性的相关树所代表的交互序列被调用。
在第三示例实现方式中,第一示例实现方式的方法还包括:从相关树的集合中提取多个频繁动作集合;识别频繁动作集合中的特定一个与后续频繁动作之间的因果关系,其中,后续频繁动作与置信度参数相关联,该置信度参数代表后续频繁动作跟随特定频繁动作集合的频率;以及响应于确定置信度参数超过阈值置信度,生成包括后续频繁动作的微应用推荐。
在第四示例实现方式中,由集合中的相关树中的特定一个所代表的交互序列包括用户认证交互、用户数据输入动作和注销交互。
在第五示例实现方式中,识别相似相关树的子集还包括:(a)识别子集中的相似相关树的质心(centroid);以及(b)确定子集中的相似相关树中的每一个与质心之间的距离,其中,距离中的每一个小于阈值距离。
在第六示例实现方式中,第一示例实现方式的方法还包括:确定子集中的相似相关树中的特定一个与子集中的其他相似相关树中的每一个之间的距离,其中,距离中的每一个小于阈值距离。
在第七示例实现方式中,相关树的集合包括:单应用相关树,其代表用户中的一个用户与应用中的一个应用之间的交互序列;以及跨应用相关树,其代表用户中的一个用户与至少两个不同应用之间的交互序列。
在第八示例实现方式中,第一示例实现方式的方法还包括:识别联络点(liaisonpoint),该联络点链接集合中的相关树中的两个,其中,两个链接的相关树代表由第一应用和第二应用提供的功能,并且其中,联络点代表从第一应用传递到第二应用的数据;生成跨应用相关树,该跨应用相关树代表用户中的一个用户与第一应用和第二应用之间的交互序列;以及将跨应用相关树包括在相关树的定义集合中。
在第九示例实现方式中,第一示例实现方式的方法还包括:识别联络点,该联络点链接集合中的相关树中的两个,其中,两个链接的相关树代表由第一应用和第二应用提供的功能,并且其中,联络点代表在第一应用中的复制操作和在第二应用中的粘贴操作。
在第十示例实现方式中,一种系统包括数字工作空间服务器。该数字工作空间服务器包括存储器和耦合到存储器的至少一个处理器。数字工作空间服务器被配置为通过以下操作来生成微应用推荐:接收表征多个用户与多个应用之间的交互的观察数据。数字工作空间服务器还被配置为通过以下操作来生成微应用推荐:基于接收到的观察数据来定义相关树的集合。在集合中的每个相关树代表用户中的一个用户与应用中的一个或多个应用之间的交互序列。数字工作空间服务器还被配置为通过以下操作来生成微应用推荐:从相关树的集合中提取多个频繁动作集合。数字工作空间服务器还被配置为通过以下操作来生成微应用推荐:识别频繁动作集合中的特定一个与后续频繁动作之间的因果关系。该后续频繁动作与置信度参数相关联,该置信度参数代表后续频繁动作跟随特定频繁动作集合的频率。数字工作空间服务器还被配置为通过以下操作来生成微应用推荐:响应于确定置信度参数超过阈值置信度,生成包括后续频繁动作的微应用推荐。
在第十一示例实现方式中,(a)数字工作空间服务器还被配置为通过链接定义的相关树中的两个来生成微应用推荐;(b)链接的相关树中的第一相关树包括代表关于数据元素采取的第一动作的联络点;以及(c)链接的相关树中的第二相关树包括关于数据元素采取的第二动作。
在第十二示例实现方式中,数字工作空间服务器还被配置为通过以下操作来生成微应用推荐:识别相似相关树的子集,相似相关树中的每一个被包括在集合中;做出子集中存在多于阈值数量的相关树的确定;以及响应于做出确定,基于由代表子集的相关树所代表的交互序列来生成微应用推荐。
在第十三示例实现方式中,生成微应用推荐还包括在用户界面中显示后续频繁动作的代表。
在第十四示例实现方式中,每个频繁动作集合与支持参数相关联,该支持参数代表频繁动作集合被观察到的频率。
在第十五示例实现方式中,一种存储用于生成微应用推荐的处理器可执行指令的非暂时性计算机可读介质。处理器可执行指令包括用于进行以下操作的指令:接收表征多个用户与多个应用之间的交互的观察数据。处理器可执行指令还包括用于进行以下操作的指令:基于接收到的观察数据来定义相关树的集合。在集合中的每个相关树代表用户中的一个用户与应用中的一个或多个应用之间的交互序列。集合包括第一数量的相关树。处理器可执行指令还包括用于进行以下操作的指令:识别相似相关树的子集,相似相关树中的每一个被包括在集合中。子集包括第二数量的相关树,第二数量小于第一数量。处理器可执行指令还包括用于进行以下操作的指令:做出第二数量大于阈值数量的确定。处理器可执行指令还包括用于进行以下操作的指令:响应于做出确定,基于与代表子集的相关树相对应的交互序列来生成微应用推荐。
在第十六示例实现方式中,处理器可执行指令还包括用于进行以下操作的指令:识别特定交互序列的开始点和结束点;以及识别在开始点与结束点之间发生的多个用户动作。
在第十七示例实现方式中,处理器可执行指令还包括用于进行以下操作的指令:将代表相关树的集合的数据保存在树数据库中。
在第十八示例实现方式中,(a)处理器可执行指令还包括用于进行以下操作的指令:识别特定交互序列的开始点;以及(b)开始点是从由用户认证动作和统一资源定位符提交组成的组中被选择的。
在第十九示例实现方式中,(a)处理器可执行指令还包括用于进行以下操作的指令:识别特定交互序列的结束点;以及(b)结束点是从由用户注销动作、页面关闭动作和检测到的活动超时事件组成的组中被选择的。
在第二十示例实现方式中,处理器可执行指令还包括用于进行以下操作的指令:识别第一交互序列的结束点;识别第二交互序列的开始点;识别由开始点和结束点两者对其进行操作的数据对象;以及响应于识别数据对象,将第一交互序列的结束点指定为第一序列与第二序列之间的联络点。
附图说明
下面参考附图讨论至少一个示例的各个方面,附图不旨在按比例绘制。附图被包括以提供对各个方面的说明和进一步理解,并且附图被并入并构成本公开的一部分。然而,附图不旨在作为任何特定示例的限制的定义。附图与本公开的其余部分一起用于解释所描述和要求保护的方面的原理和操作。在图中,示出的每个相同或几乎相同的组件由相同的附图标记表示。为清楚起见,可能不在每幅图中标记每个组件。
图1是示意性地示出由联络点连接的工作流操作的序列的框图。
图2是示意性地示出微应用推荐框架的示例实现方式的选定组件的框图,该微应用推荐框架通过分析在一个或多个应用内的用户交互序列来生成微应用功能推荐。
图3是示出用于通过分析在一个或多个应用内的用户交互序列来生成微应用功能推荐的示例方法的流程图。
图4是示出用于识别和检测在一个或多个应用内的用户交互序列的示例方法的流程图。
图5是示出用于构建和链接代表在一个或多个应用内的用户交互序列的相关树的示例方法的流程图。
图6是示出用于分析相关树以识别在一个或多个应用内频繁调用的用户动作和动作序列的示例方法的流程图。
图7是代表在Jira应用内的示例用户交互序列单应用相关树。
图8是代表在Jira应用和Git应用两者内的示例用户交互序列的跨应用相关树。
图9是示意性地示出从多个相关树中识别高频用户交互序列的示例的框图。
图10是示意性地示出识别关键路径的示例的框图,该关键路径代表可以形成推荐的微应用功能的基础的用户交互序列。
图11是示意性地示出用于通过分析在一个或多个应用内的用户交互序列来生成微应用功能推荐的示例方法的框图。
具体实施方式
如上面所指出的,数字工作空间允许用户通过单个用户界面访问由多个应用提供的功能。微应用同步来自这些应用的数据,以简化数字工作空间内的用户体验。因此,微应用允许用户查看信息并执行动作,而无需启动底层应用或切换到不同的界面。因此,从概念的角度来看,微应用可以被理解为对由用户的应用提供的功能解绑,以在数字工作空间界面内为用户提供简化的动作。在微应用内采取的用户动作用作被提供给用户的底层应用的输入的基础。这些用户动作被设计为快速且容易地解决特定的常见问题和用例,从而增加用户生产力。这种频繁调用的动作的示例包括批准费用报告、确认日历约会、提交服务台票据和审查休假请求。
微应用广泛的生产力和可用性优势已经不仅导致可用微应用的数量的快速增长,而且还已经导致使开发人员简单创建自定义集成的工具的开发。这种开发工具简化了将频繁调用的动作从用户的应用提取到他/她的数字工作空间的过程。例如,预构建的微应用动作模板可以直接集成到用户的数字工作空间中,而微应用构建器允许管理员针对旧有、专有或其他专门的SaaS应用定制和部署新的微应用。诸如此类的工具允许组织“可用动作”的列表并将其呈现给用户,由此允许用户在甚至没有离开数字工作空间界面的情况下与各种应用的整个程序组(suite)进行交互。
因此,现有的微应用开发工具帮助管理员开发和部署针对特定工作组的需要定制的微应用程序组。这个开发过程仍然严重依赖于人类的知识和直觉来识别微应用应该促进的工作流。例如,为了创建有用的微应用集成,开发人员应该知道哪些应用被频繁使用,以及更具体地,知道哪些应用功能被特定用户频繁调用。开发人员还应该知道功能如何跨不同的企业应用扩展,例如,当用户使用第一应用进行旅行预订,然后使用第二应用通过电子邮件发送预订确认副本时发生的情况。在大型组织中,管理员很难跨工作组组织这种个性化的使用数据,因此对有用的微应用程序组的开发造成了阻碍。
在更一般的意义上,由微应用提供的功能和微应用所利用的底层应用通常是基于开发人员、管理员或其他软件工程师的主观判断来选择的。对于软件工程师而言,判断哪个微应用功能将最有可能在改进效率和简化工作流方面带来好处通常是挑战性的。更具体地,负责开发数字工作空间和其中提供的微应用功能的软件工程师通常不知道其他领域的用户认为最有用的应用功能。例如,金融服务或医疗保健行业的用户将可能要求与软件工程师或产品经理不同的功能。换言之,虽然开发人员可能具有关于生成和创建微应用的很好的技能,但他们往往缺乏对微应用应该提供的特定操作的见解。因此,通过不那么依赖于人类的知识和直觉,以及不那么依赖于软件开发人员和工程师的判断和/或主观假设,评估用户活动的更加分析性的方法将简化微应用开发过程。
鉴于前述内容,本文公开了一种微应用推荐框架,其通过分析涉及一个或多个企业应用的观察到的用户交互序列来生成微应用功能推荐。在某些实现方式中,这样的框架提供了分析性地识别在不同领域的竞争性日常任务过程中实际执行的频繁调用的动作序列的能力。这个识别出的动作序列有时被称为“关键路径”。在一些情况下,关键路径可以跨多个应用扩展,在这种情况下,微应用推荐框架识别一个或多个“联络点”,这些“联络点”代表链接在两个不同应用中的功能的动作。例如,用于将数据从一个应用移动到另一应用的复制-粘贴动作用作两个应用之间的联络点。无论涉及的应用数量如何,识别出的动作序列都可以作为推荐提供给微应用开发人员,或者可以直接提供给微应用构建器。换言之,联络点代表可以在微应用构建器中自动化或推荐的操作。本文公开的微应用推荐框架还可选地实现独立于任何总体序列而识别个体频繁调用动作。在一些情况下,推荐的微应用功能在由管理员或其他指定用户批准之后被部署到用户的数字工作空间。
图1是示意性地示出由联络点12连接的工作流步骤节点10的序列的框图。步骤节点10代表可以从其采取一个或多个动作的工作流的离散阶段。联络点12代表动作,该动作在被调用时将工作流从一个步骤节点推进到下一步骤节点。由联络点12建立的序列定义了关键路径,该关键路径可以形成推荐的微应用功能的基础。如图1中进一步示出的,从步骤节点10采取附加动作,包括频繁观察到的动作14和不频繁观察到的动作16。频繁观察到的动作14可以另外地或可替代地形成其他推荐的微应用功能的基础。图1中示出的工作流是从“以用户为中心”的角度呈现的,而不是从工作流中使用的任何一个应用的角度呈现的。
例如,在一个示例工作流中,监督者接收来自下属的休假请求并对其做出响应。在这样的工作流中观察到监督者要采取的动作可以形成推荐的微应用功能的基础,如使用本文公开的分析性技术推导出的。例如,在接收到请求后,监督者可以访问共享日历,决定批准或拒绝该请求,并向请求者发送决策通知。在该工作流中,监督者接收到请求的点可以被理解为第一步骤节点。监督者访问共享日历的动作可以被理解为第一联络点。在一些情况下,例如,当来自消息传送应用的传入数据被提供给调度应用时,该联络点可以代表跨应用功能。向监督者呈现共享日历的点可以被理解为第二步骤节点。监督者向请求者发送通知的动作可以被理解为第二联络点,并且请求已经被批准或拒绝的点可以被理解为第三步骤节点。当频繁观察到接收请求、显示共享日历和发送响应通知的序列时,该序列代表形成推荐的微应用功能基础的关键路径。
虽然该示例休假请求工作流涉及由两个联络点链接的三个步骤节点,但其他实现方式中可能涉及附加的或更少的步骤节点和联络点。此外,本文公开的分析性技术还可以用于识别其他频繁观察到的动作,这些动作可以形成推荐的微应用功能的基础,即使这些动作利用由单个应用提供的功能。例如,在一些情况下,可以观察到监督者在接收到休假请求之后频繁地向人力资源部门发送消息。发送这样的消息可以被理解为从包括休假请求工作流的步骤节点中的任一步骤节点采取的频繁观察到的动作。各种不同类型的频繁观察到的动作(包括自动化的动作和要求人类输入的动作)可以形成进行微应用功能推荐的基础。本文公开的微应用推荐框架的一些实现方式能够在应该形成推荐的微应用功能的基础的频繁观察到的动作与不应形成这种推荐的基础的不频繁观察到的动作之间进行区分。例如,如果观察到监督者只在个别的场合访问休假请求者的绩效评价,则微应用推荐框架可以被配置为在进行微应用功能建议时忽略这种个别的观察。
可以从本文公开的微应用推荐框架的各种实现方式中推导出许多优点。例如,本文公开的技术中的某些技术依赖于收集和分析来自在不同范围的使用上下文中工作的大量用户的应用使用数据。机器学习技术可以用于分析该使用数据并提取模式,这些模式形成识别频繁调用的动作和动作序列的基础。因此,所得到的微应用功能建议依赖于识别和分析应用使用模式,这些应用使用模式可能是人类分析师难以识别的或甚至不可能识别的。公开的技术中的某些技术还使得能够针对特定角色和与该角色相关联的应用使用模式专门定制微应用功能推荐。对于人类分析师而言,准确地做出单独定制的微应用推荐可能是不可行的,尤其是在大型组织中。针对特定用户和特定工作组的需要紧密定制的微应用功能最终将导致改进的用户体验和生产力。
定义
如本文所使用的,术语“微应用”除了其通常含义之外,还指代轻量级软件应用,其被配置为向用户提供对由一个或多个底层应用提供的特定功能和/或数据的简化访问。例如,微应用允许用户查看信息并执行动作,而无需启动底层应用或将上下文切换到底层应用。微应用可以被表征为“事件驱动”或“用户发起”的。事件驱动的微应用响应于检测到某个事件或条件而被调用,并且可以被配置为在某些事情要求注意时生成用户通知。例如,事件驱动的微应用可以响应于接收到费用批准请求而显示预算报告或响应于课程注册期的开始而显示课程提纲。另一方面,用户发起的微应用响应于用户动作而被调用,并且用作到频繁执行的动作(例如,批准费用报告、确认日历约会、提交服务台票据和审查休假请求)的捷径(shortcut)。微应用通过减少上下文切换和消除学习如何使用复杂应用的需要来简化工作流。
如本文所使用的,术语“相关树”除了其通常含义之外,还指代代表由软件应用执行的一个或多个动作序列的数据。在一些情况下,相关树代表一个接一个顺序执行的动作的集合。在其他情况下,相关树代表动作的多个集合,其中至少一个集合与另一集合互斥。这种互斥可能发生在例如用户必须在两个互斥的动作(例如,删除或保存数据对象)之间进行选择的情况下。互斥动作可以由单个相关树的不同分支代表。动作可以由单个应用(“单应用相关树”)或多个应用(“跨应用相关树”)执行。相关树由可以以任何合适格式(包括机器可读的数据结构,或作为人类可读的示意图)存储的数据所代表,其中动作由通过边(edge)链接的节点所代表。图7和图8示出了由人类可读的示意图所代表的相关树的示例。用于代表相关树的数据可以保存在例如分布式存储器结构、关系数据库或任何其他合适的数据结构中。
如本文所使用的,术语“联络点”除了其通常含义之外,还指代在由一个或多个底层应用提供的功能之间形成链接的用户动作。链接功能可以由微应用提供。例如,用户可以在记事本应用中调用“复制”命令,将上下文切换为web浏览器,然后在web浏览器中调用“粘贴”命令。“复制”命令可以被理解为联络点,因为它是链接由记事本应用提供的功能与由web浏览器提供的功能的用户动作。在该示例中,可以生成微应用,该微应用允许将数据从记事本应用快速传送到web浏览器。工作流中的其他示例联络点包括注销动作、页面关闭动作、用户输入动作、文件传送动作和超文本标记语言(HTML)动作。联络点可以被理解为由跨应用相关树中的不同应用提供的链接功能。
系统架构
图2是示意性地示出微应用推荐框架2000的示例实现方式的选定组件的框图,该微应用推荐框架2000通过分析在一个或多个应用内的用户交互序列来生成微应用功能推荐。框架2000包括能够分析与端点200相关联的用户如何与由一个或多个应用服务器300提供的应用交互的数字工作空间服务器100。用户与端点200的关联可以凭借例如用户正在登录或认证到端点而存在。虽然为了清楚起见,在图2中仅示出了一个端点和三个示例应用服务器,但是将认识到的是,通常,框架2000能够分析任意数量的端点与任意数量的应用服务器之间的交互。数字工作空间服务器100、端点200和应用服务器300经由网络500彼此通信。网络500可以是公共网络(例如,互联网)或专用网络(例如,公司内联网或具有受限访问的其他网络)。取决于特定实现方式的粒度,其他实施例可以具有更少或更多的通信路径、网络、子组件和/或资源。例如,在一些实现方式中,应用功能的至少一部分由在端点处被本地托管的一个或多个应用提供。因此,对应用服务器300的引用应该被理解为涵盖在一个或多个端点处被本地托管的应用。因此,应当认识到的是,本文描述和示出的实施例并不旨在限于提供或排除任何特定服务和/或资源。
数字工作空间服务器100被配置为通过分析端点200与应用服务器300之间的交互来生成微应用功能推荐。数字工作空间服务器100可以包括各种合适的计算设备中的一个或多个,例如,台式计算机、膝上型计算机、工作站、企业级服务器计算机、平板计算机或能够支持本文公开的功能的任何其他设备。可以在某些实施例中使用不同设备的组合。如图2中示出的,数字工作空间服务器100包括被配置为实现本文公开的功能中的某些功能的一个或多个软件模块以及能够实现这种实现方式的硬件。
实现硬件可以包括但不限于处理器110、存储器120以及任何其他合适的组件,这些组件使数字工作空间服务器100能够与框架2000的其他组件或人类用户交互。这种其他组件的示例包括但不限于通信模块、总线和/或互连、显示器、文本输入设备(例如,键盘)、基于指针的输入设备(例如,鼠标)、麦克风和相机。例如,通信模块可以包括一个或多个接口,以使得数字工作空间服务器100能够通过各种有线和/或无线连接(包括蜂窝连接)访问计算机网络,例如,局域网、广域网、个域网或互联网。
处理器110可以由一个或多个可编程处理器实现,以执行一个或多个可执行指令(例如,计算机程序)来执行本文公开的功能。如本文所使用的,术语“处理器”描述执行功能、操作或操作序列的电路。功能、操作或操作序列可以被硬编码到电路中,或通过保存在存储器120中并由处理器电路执行的指令的方式被软编码。处理器110可以使用数字值和/或使用模拟信号来执行功能、操作或操作序列。在一些示例中,处理器110可以体现在一个或多个专用集成电路、微处理器、数字信号处理器、图形处理单元、微控制器、现场可编程门阵列、可编程逻辑阵列、多核心处理器或具有关联存储器的通用计算机中。处理器110可以是模拟的、数字的或混合的。处理器110可以是一个或多个物理处理器,在一些情况下,这些物理处理器可以从数字工作空间服务器100远程定位。包括多个处理器核心的处理器和/或多个处理器可以提供用于针对多于一条数据并行地同时执行多个指令或并行地同时执行一个指令的功能。
可以使用任何合适类型的数字存储装置(例如,磁盘驱动器、独立磁盘的冗余阵列、闪速存储器设备或随机存取存储器(RAM)设备中的一个或多个)来实现存储器120。在某些实施例中,存储器120用于存储指令,该指令当使用处理器110执行时,导致与本文描述的各种模块相关联的操作被调用。存储器120可以包括可以提供比主存储器更快的响应时间的一种或多种类型的RAM和/或高速缓冲存储器。
另一方面,实现软件可以包括但不限于微应用服务140、微应用分析服务150以及使数字工作空间服务器100能够执行本文公开的功能的任何其他合适的组件。这种其他组件的示例包括但不限于通信模块和操作系统。特别地,通信模块可以包括任何适当的网络芯片或芯片组,其允许到数字工作空间服务器100的其他组件和/或网络500的有线或无线连接。这使得数字工作空间服务器100能够与其他本地和远程计算系统、服务和资源(其示例包括端点200和应用服务器300)通信。作为另一示例,数字工作空间服务器100可以包括任何合适的操作系统。通常,可以在不考虑结合数字工作空间服务器100提供的特定操作系统的情况下实现本文提供的技术,并因此也可以使用任何合适的现有或后续开发的平台来实现本文提供的技术。
仍然参考图2中示出的示例实施例,微应用服务140和微应用分析服务150各自是使用计算装置的非暂时性计算机可读介质(例如,存储器120)和一个或多个处理器(例如,处理器110)被实现的。在这种实施例中,非暂时性计算机可读介质存储可由一个或多个处理器执行以使数字工作空间服务器100执行本文公开的技术的某些方面的程序指令。取决于特定实现方式的粒度,其他实施例可以具有更少或更多的模块。
例如,在某些实施例中,微应用服务140提供使用户能够访问由一个或多个应用服务器300提供的数据和功能的微应用和支持服务。最终,该框架允许用户查看信息并执行动作,而无需启动底层应用或切换到不同的界面。为此,微应用服务140包括多个微服务142以及存储特定微应用的微应用库144。在某些实现方式中,微应用服务140是单租户服务,其创建、管理和提供用于支持存储在微应用库144中的微应用的实现服务。这是通过与应用服务器300的定期通信和从应用服务器300获取数据来完成的。在一些实现方式中,微应用库144在数字工作空间服务器100处(例如,在存储器120中)被本地托管,但是在其他实现方式中,微应用库144部分或全部托管在联网的存储仓储中。
微应用服务140包括一个或多个微服务142,该微服务142提供实现功能以支持存储在微应用库144中的微应用的执行。例如,活动数据高速缓存微服务是单租户服务,其可以使用每租户数据库加密密钥和每租户数据库证书来存储配置信息和微应用数据。证书钱包微服务可以存储针对由应用服务器300提供的应用的加密服务证书,以及用户认证令牌,例如,OAuth2令牌。数据集成提供商微服务可以进行以下操作:(a)与应用服务器300交互以解密用户证书;以及(b)在用户的身份下与应用服务器300通信。这种通信使用用户的实际帐户来确保所有动作符合适用的数据政策。通知微服务处理在与应用服务器300交互的过程中创建的通知。通知可以存储在数据库中、在通知馈送中提供、和/或作为推送通知被发送。通知微服务可选地包括可被配置为限制敏感内容暴露的内容控件。将认识到的是,本文描述的微服务仅代表支持存储在微应用库144中的微应用的创建、管理和执行的微服务的几个示例。在其他实施例中,另外的或替代的微服务可以被包括在微应用服务140中。
再次参考图2,微应用分析服务150处理端点200与应用服务器300之间观察到的交互,基于观察到的交互构建相关树,并且生成从相关树推导出的微应用功能推荐。这些推荐可以经由用户界面提供给管理员,和/或可以用于自动生成新的微应用。为此,在一个实现方式中,微应用分析服务150包括用户活动分析器151、相关树构建器152、相关树分析器153和微应用构建器154。这些子组件中的每一个可以使用非暂时性计算机可读介质来实现,该非暂时性计算机可读介质存储可由处理器110执行以使得微应用分析服务150执行本文公开的功能中的某些功能的程序指令。取决于特定实现方式的粒度,其他实施例可以具有更少或更多的子组件。如图2中示出的,在某些实施例中,微应用分析服务150还包括存储资源,例如,用于存储代表观察到的交互的数据的活动数据库158和用于存储代表相关树的数据的树数据库159。活动数据库158和树数据库159可以在数字工作空间服务器100处(例如,在存储器120中)被本地托管,但是在其他实施例中,这样的数据库部分或全部托管在联网的存储仓储中。
在示例实现方式中,用户活动分析器151被配置为检测和分析多个用户(其中一个示例由端点200代表)与多个应用服务器300之间的交互。这可以例如使用任何合适的现有或后续开发的软件来完成,该软件能够监视用户活动并编译反映被监视的活动的使用信息。例如,在某些实现方式中,用户活动分析器151包括能够捕获用户与web浏览器之间的交互的浏览器插件。被监视的交互的示例包括但不限于:认证交互;数据输入交互(包括经由定点设备或键盘提供的输入);数据显示和/或接收交互;应用上下文切换交互;注销交互;浏览器标签、页面和/或窗口关闭交互;浏览器标签、页面和/或窗口打开交互;超时检测;剪贴板交互(包括剪切、复制和粘贴);以及超文本传输协议(HTTP)命令交互。在一些情况下,代表被监视的用户活动的数据存储在活动数据库158中。
在示例实现方式中,相关树构建器152被配置为基于观察到的用户活动生成相关树,并且可选地对其进行链接。例如,这可以通过识别给定用户的活动对应于可以由相关树的特定分支代表的动作序列来完成。多个动作序列可以由单个相关树代表,例如,互斥的动作由单个相关树的不同分支代表。可以通过识别多个应用中存在公共数据的节点(例如,数据从第一应用复制并粘贴到第二应用的位置)来生成跨应用相关树。在一些情况下,代表一个或多个相关树的数据保存在树数据库159中。用于代表相关树的数据可以保存在例如分布式存储器结构、关系数据库或任何其他合适的数据结构中。
在示例实现方式中,相关树分析器153被配置为分析相关树的集合以识别频繁调用的动作和/或动作序列。识别出的动作序列可以涉及用户与一个或多个应用的交互。可以例如通过使用关联规则学习从树数据库159中提取频繁动作集合来完成识别频繁调用的动作。类似地,可以使用树相似性过程来聚类相似的相关树,并且因此识别频繁调用的动作序列。频繁调用的动作序列提供对最频繁调用的动作以及在多个应用中的动作被级联时跨多个应用扩展的关键路径两者的见解。这种关键路径的简单示例是在第一应用中调用的复制动作,以及随后的在第二应用中调用的对应的粘贴动作。本文公开的技术允许从用户的工作流的角度而不是从分析任何一个应用的操作的角度来学习这样的关键路径。
识别出的频繁调用的动作序列可以形成推荐的微应用功能的基础。频繁调用的用户动作和频繁调用的动作序列两者可以传递到微应用构建器154。在某些实现方式中,微应用构建器154可以被配置为向管理员提供推荐的微应用功能以供批准。在其他实现方式中,微应用构建器154可以被配置为基于识别出的频繁调用的动作或动作序列来自动生成新的微应用。生成的微应用可选地被存储在微应用仓储中。
如上面所指出的,在某些实施例中,端点200体现在由用户使用的计算设备中。这种计算设备的示例包括但不限于台式计算机、膝上型计算机、平板计算机和智能电话。数字工作空间服务器100及其组件被配置为与多个端点交互。在示例实施例中,用户与可通过数字工作空间210访问的多个工作空间应用212交互。用户与工作空间应用212和/或应用服务器300的交互由用户活动分析器151分析,并最终形成推荐的微应用功能的基础。任何生成的微应用可以通过数字工作空间210对用户可用,从而允许用户查看信息并执行动作,而无需启动(或将上下文切换到)底层工作空间应用212。工作空间应用212可以由应用服务器300提供和/或可以在端点200处本地提供。例如,示例工作空间应用212包括SaaS应用310、web应用320和企业应用330,但是也可以使用任何其他合适的现有或后续开发的应用,包括专有应用和桌面应用。
方法论——概述
图3是示出用于通过分析在一个或多个应用内的用户交互序列来生成微应用功能推荐的示例方法3000的流程图。方法3000开始于用户活动分析器151检测和分析多个用户(例如,由端点200代表)与多个应用服务器300之间的交互。参见图3中的附图标记4000。图4中提供了关于由用户活动分析器151提供的功能的附加细节。方法3000还包括相关树构建器152基于观察到的用户交互来生成相关树。参见图3中的附图标记5000。图5中提供了关于由相关树构建器152提供的功能的附加细节。方法3000还包括相关树分析器153从相关树的集合中挖掘(mine)模式以识别频繁调用的动作和/或动作序列。参见图3中的附图标记6000。图6中提供了关于由相关树分析器153提供的功能的附加细节。方法3000还包括微应用构建器154基于频繁调用的动作和/或动作序列来构建微应用和/或推荐微应用功能。参见图3中的附图标记7000。例如,观察到的一个或多个用户已经频繁调用的动作序列定义了关键路径,该路径可以形成推荐的微应用功能的基础。
图11是示意性地示出用于生成微应用功能推荐的示例方法3000的概述的框图。如下面更详细讨论的,用户活动分析器151基于识别出的动作序列开始点60、动作序列结束点64和介于中间的生产力时段62来检测用户活动。检测到的用户活动被存储在活动数据库158中。在给定的动作序列的结尾处,关于用户是否切换或联络到第二应用做出确定,如由附图标记66所指示的。如果没有发生这样的切换,则观察到的工作流可以被理解为已经到达结尾。如果用户确实开始使用第二应用,则可以观察到附加的动作序列并将其记录到活动数据库158中。相关树构建器152使用存储在活动数据库158中的数据来构建代表观察到的动作序列的相关树。生成的相关树存储在树数据库159中。相关树分析器153分析相关树以生成代表频繁调用的动作序列的用户活动模式68。这些频繁调用的动作序列用作生成微应用功能推荐的基础。将依次提供关于用户活动分析器151、相关树构建器152和相关树分析器的操作的附加细节。
方法论——分析用户活动
图4是示出识别和检测在一个或多个应用内的用户交互序列的示例用户活动分析操作4000的流程图。操作4000可以例如使用图2中示出且在本文描述的系统架构来实现,特别是使用用户活动分析器151来实现。然而,可以在其他实现方式中使用其他系统架构。为此,图4中示出的各种功能与用户活动分析器151的相关性不旨在暗示任何结构或使用限制。而是,其他实现方式可以包括例如不同程度的集成,其中某些功能由不同的系统或模块高效地执行。例如,在替代实现方式中,单独的软件模块用于检测用户活动并将检测到的活动存储在活动数据库158中。在另一实现方式中,单独的软件模块用于解析HTTP语法和命令,作为检测用户活动的一种方式。因此,取决于特定实现方式的粒度,其他实现方式可以具有更少或更多的模块。如可以看出的,操作4000包括多个阶段和子进程,其序列可以从一个实现方式到另一个实现方式而不同。然而,当集成考虑时,这些阶段和子进程能够检测和分析多个用户与多个应用服务器300之间的交互。
在一个示例实现方式中,用户活动分析操作4000用作后台进程,该后台进程持续监视用户与其应用之间的交互。被监视的交互可以被理解为包括多个离散动作序列,这些离散动作序列中的每一个以“开始点”开始,该“开始点”由与特定应用交互的特定用户代表。每个动作序列以“结束点”或“联络点”结束。结束点指代特定用户与特定应用之间的最终交互,而联络点指代形成到由第二应用提供的功能的链接的端点。因此,虽然可以认为用户活动分析器151在一般意义上监视多个用户与多个应用之间的交互,但在更精细的级别上,分析器151可以被理解为检测和记录特定用户与特定应用之间的离散动作序列。
为此,即使在用户活动分析操作4000可以被理解为持续地执行的后台进程的情况下,检测和记录离散动作序列的示例进程也可以被理解为在检测到开始点时开始。参见图4中的附图标记4110。在一般意义上,开始点可以被理解为特定用户开始与特定应用的交互序列的点。例如,在一个实现方式中,用户活动分析器151响应于观察到登录交互(例如,使用密码认证、生物认证和/或对等认证的用户认证交互)来检测开始点。登录交互可以使用专有和/或开放标准技术以用于交换认证数据,其一个示例是安全断言标记语言开放标准。分析器151可以响应于观察到单点登录(SSO)交互来检测开始点。观察到的SSO交互可以由身份管理提供商(例如,Okta公司(San Francisco,CA))管理。在其他实施例中,用户活动分析器151可以被配置为检测其他类型的登录交互。
用户的浏览器活动可以另外地或可替代地形成检测开始点的基础。例如,在一个实现方式中,用户输入目标统一资源定位符(URL)的动作被检测为开始点。可以经由保存的书签、经由从另一URL重定向或经由从数字工作空间启动的SaaS应用来手动输入URL。
如上面所指出的,离散动作序列可以被理解为以开始点开始并在结束点或联络点处结束。因此,在一个实施例中,在检测到开始点之后,用户活动分析器151检测结束点或联络点。参见图4中的附图标记4120。可以使用与用于检测开始点的技术类似的技术来检测结束点或联络点。结束点可以被检测为在用户在没有从第一应用切换上下文的情况下完成动作序列时发生。另一方面,联络点可以被检测为在用户使用第一应用完成动作序列、从该第一应用获得结果或其他数据、然后将上下文切换到第二应用程序时发生。在切换上下文之后,用户可以使用从第一应用获得的结果或其他数据在第二应用中发起第二离散动作序列。
例如,在一个实现方式中,用户活动分析器151响应于观察到注销动作、浏览器页面关闭动作、提交完成动作或其他实质上类似的用户动作而检测结束点或联络点。在其他实现方式中,可以响应于应用页面、浏览器标签或其他聚焦的用户界面检测到“超时”或其他指定的不活动时段而检测结束点或联络点。在其他实现方式中,分析器151响应于观察到与剪贴板相关联的某些动作(例如,字符串复制命令(例如,当用户复制采购订单标识符时或当用户复制服务票据时)、文件复制命令(例如,当用户下载文件时或用户将文件保存到本地或基于云的存储资源时)或URL复制命令)而检测结束点或联络点。
分析器151可选地包括子模块,该子模块能够解析HTTP语法和命令作为检测结束点或联络点的一种方式。例如,可以响应于观察到返回码、发布数据、获取数据或返回内容类型标识符的HTTP命令来检测结束点或联络点。这样的子模块可选地能够解析HTTP命令的主体以识别指示结束点或联络点的特定字符串,例如,“再见”或“任务完成”。浏览器插件另外地或可替代地用于检测用户与web浏览器的交互。
用户活动分析器151可以被理解为检测和记录离散动作序列,该离散动作序列以检测到的开始点开始并以检测到的结束点或联络点结束。在动作序列的开始和结束之间是“生产力时段”。用户活动分析操作4000还包括识别在该生产力时段期间的用户动作。参见图4中的附图标记4140。分析器151可以被配置为检测和识别在生产力时段期间发生的任何相关的用户动作。这种动作的示例包括但不限于:页面打开操作;浏览器标签打开操作;窗口打开操作;用户输入操作(包括例如经由定点设备提供的运动输入和经由键盘提供的文本输入);重新聚焦动作,其导致特定窗口或界面变为活动的(也称为上下文切换动作);以及剪贴板动作,例如,与粘贴内容的源相关联的粘贴命令。将认识到的是,前述列表是通过示例的方式提供的,并且通常,可以在生产力时段期间识别任何相关的可检测动作。在一些情况下,检测到的用户输入可以关于每个时间段检测到的动作的速率被表征,并且生产力时段可以被理解为持续直到检测到的动作的速率低于既定阈值为止。
图4示出了其中在生产力时段中的用户动作被识别之前检测到开始点和结束点(或联络点)的操作序列。这可以通过分析用户活动的记录日志来实现,其中开始点和结束点(或联络点)在初始操作中被识别,然后在生产力时段中的介于中间的动作在后续操作中被识别。然而,将认识到的是,在其他实现方式中,可以以不同的序列调用这些操作。例如,在替代实现方式中,首先识别开始点,识别生产力时段中的动作,然后检测结束点(或联络点)。因此,应当认识到的是,图4中示出的示例操作序列以及在本申请中描述的这些操作的序列不是限制性的。
范围广泛的现有仪器、遥测和业务见解生成平台能够捕获大多数或所有浏览器活动。这种平台的一个示例是由Citrix Systems公司(Ft.Lauderdale,FL)提供的CitrixInsight Services。范围广泛的浏览器插件也能够检测用户的浏览器活动。同样,能够解析HTTP语法和命令的子模块可以用于检测开始点、结束点(或联络点)和/或其他介于中间的用户活动。任何合适的现有或后续开发的工具(例如,这些工具)可以用于检测开始点、结束点或联络点,以及在介于中间的生产力时段中的用户动作。另外地,如上面所指出的,用户活动的记录日志可以另外地或可替代地用于检测和识别相关的用户动作。这样的用户活动日志可以被配置为记录本文公开的各种动作中的任何一个以及其他相关的动作,包括用户捷径动作。在一些情况下,可以从既定的业务工作流中推导或抽象用户动作。
在示例实现方式中,表征检测到的开始点、检测到的结束点或联络点以及相关的介于中间的用户动作的数据可以存储在活动数据库158中。参见图4中的附图标记4150。该存储操作可选地发生在获取相关数据之后的任何时间。因此,例如,在替代实施例中,在检测到开始点之后立即将表征开始点的数据存储在活动数据库158中。如上面所指出的,用户活动分析操作4000可以被理解为持续执行的后台进程,该后台进程监视用户与其应用之间的交互。因此,在存储相关数据之后,可以关于观察到的用户是否联络到第二应用做出确定。参见图4中的附图标记4160。如果观察到的用户联络到第二应用(例如,在离散动作序列以联络点结束的情况下),则可以分析另一离散动作序列。如果观察到的用户没有联络到第二应用,则操作4000可以被理解为至少相对于一个离散动作序列结束。在更宽泛的意义上,操作4000可以被理解为相对于一个离散动作序列终止,同时继续监视和分析用户与应用之间的其他交互。
方法论——构建相关树
图5是示出示例相关树生成操作5000的流程图,其构建和链接代表在一个或多个应用内观察到的用户交互序列的相关树。操作5000可以例如使用图2中示出且在本文描述的系统架构来实现,特别是使用相关树构建器152来实现。然而,可以在其他实现方式中使用其他系统架构。为此,图5中示出的各种功能与相关树构建器152的相关性不旨在暗示任何结构或使用限制。而是,其他实现方式可以包括例如不同程度的集成,其中某些功能由不同的系统或模块高效地执行。例如,在替代实现方式中,单独的软件模块用于定义相关树并识别可以链接相关树的联络操作。因此,取决于特定实现方式的粒度,其他实现方式可以具有更少或更多的模块。如可以看出的,操作5000包括多个阶段和子进程,其序列可以从一个实现方式到另一个实现方式而不同。然而,当集成考虑时,这些阶段和子进程能够检测和分析多个用户与多个应用服务器300之间的交互。
在一个示例实现方式中,相关树生成操作5000用作后台进程,该后台进程监视记录的用户活动,例如,在活动数据库158中记录的用户活动。在一些情况下,当新数据被记录在活动数据库158中时调用操作5000,尽管在其他实施例中可以使用其他触发器。例如,在替代实现方式中,操作5000在周期性的基础上被调用或响应于用户命令(例如,由数字工作空间服务器200的管理员调用的命令)而被调用。无论触发事件或条件如何,当在活动数据库158中识别出相关的用户动作集合时,相关树生成操作5000开始。参见图5中的附图标记5110。动作集合可以通过以下事实相关:动作共同地代表由与特定应用交互的特定用户所采取的一个或多个动作序列。因此,相关动作的集合被理解为与特定应用相关。动作可以凭借链接多个动作序列的至少一个动作(例如,共同的开始点(例如,初始用户认证操作))相关。因此,相关动作可以包括多个动作序列,其中至少一些是互斥的。这种互斥可能发生在例如用户必须在两个互斥的动作(例如,删除或保存数据对象)之间进行选择的情况下。
然后,可以基于在第一应用中执行的相关动作集合来定义第一相关树。参见图5中的附图标记5120。同样,可以基于在第二应用中执行的相关动作集合来定义第二相关树。参见图5中的附图标记5140。通常,可以通过针对相关动作集合中的每个用户动作定义节点来构建相关树,其中顺序动作(即,节点)由边链接。可以由节点所代表的动作的示例包括鼠标点击动作、URL选择动作、按钮选择动作、数据输入动作和数据生成动作。观察到的用户动作(如活动数据库158中记录的)可以相关到离散动作序列。这些识别出的动作序列可以用于定义一个或多个相关树。所定义的相关树可以体现在存储在计算机可读介质中的数据结构中。相关树不需要并且实际上在许多实现方式中将不会以人类可读的格式呈现或显示。
图7示出了代表在Jira应用20内的示例用户交互序列的单应用相关树。Jira是由Atlassian(Sydney,Australia)开发的专有问题跟踪软件产品。图7中示出的相关树包括多个节点,节点中的每一个对应于与Jira应用20的观察到的用户交互(即,动作)。示例动作包括“创建史诗(epic)”(由节点21代表)、“改变链接故事的受让人”(由节点22代表)、“搜索故事”(由节点23代表)、“将故事链接到史诗”(由节点24代表)、“改变故事受让人”(由节点25代表)、“发送电子邮件通知”(由节点26代表)以及“将史诗URL复制到剪贴板”(由节点27代表)。图7中示出的示例相关树可以基于一个或多个用户与Jira应用20之间的观察到交互来生成,如使用本文公开的用户活动分析技术识别和检测的。然而,将认识到的是,也可以根据使用其他数据收集和监视技术收集到的数据来生成相关树。节点通过有向边连接,其中连接节点的序列代表由与Jira应用20交互的用户执行的动作序列。
例如,考虑Jira应用20的用户,其已经组织了大量的故事。用户希望创建史诗并将现有故事中的一些链接到新创建的史诗。首先,用户登录Jira应用20,并通过输入相关数据来创建史诗,如由节点21所代表的。接下来,用户搜索相关故事,如由节点23所代表的。最后,用户针对选定的故事打开web浏览器标签,并修改选定的故事以将其链接到新创建的史诗,如由节点24所代表的。所得到的“创建史诗”、“搜索故事”和“将故事链接到史诗”的动作序列可以被视为在图7中示出的相关树中由边连接的节点的序列。其他动作序列是可能的,例如,当用户在执行搜索之后改变故事受让人时(如由节点25所代表的),或当用户在创建新史诗之后改变链接故事的受让人时(如由节点22所代表的)。当用户在创建新史诗之后输入适用于所有链接的故事的描述时,会发生另一可能的动作序列。
在这些示例中,序列中的第一动作(“创建史诗”)可以被理解为开始点。同样,每个序列中的最后一个动作(“改变链接故事的受让人”,“将故事链接到史诗”,或“将故事链接到史诗”)可以被理解为结束点或联络点。结束点特别地指代工作流中仅限于单个应用的最后一个动作。例如,“发送电子邮件通知”可以被理解为在创建新史诗之后到达的结束点。在图7中示出的示例相关树中,一个节点(“将史诗URL复制到剪贴板”)被识别为联络点,其用作到由第二应用提供的功能的链接,这将依次进行讨论。可以通过基于其中观察到活动已经发生的各种序列对观察到的用户活动进行相关来生成相关树。
相关树生成操作5000继续识别链接第一相关树和第二相关树的联络点。参见图5中的附图标记5150。联络点可以被理解为链接由第一应用提供的功能(如由第一相关树所代表的)和由第二应用提供的功能(如由第二相关树所代表的)。例如,图8示出了代表在Jira应用20和Git应用30内的示例用户交互序列的跨应用相关树。除了图7中示出的节点之外,跨应用相关树还包括代表动作“通过粘贴史诗URL来创建Git分支”(由节点31代表)、“将本地仓储切换到新分支”(由节点32代表)和“更新自述文件”(由节点33代表)的节点。
考虑前述Jira应用20的用户。在创建新史诗时,用户能够复制针对新史诗的URL和/或ticket标识符。然后,用户打开Git应用30,创建新分支,并将复制的史诗URL和/或ticket标识符粘贴到新创建的分支中。在Git应用中的该动作由图8中的节点31代表。在该示例中,Jira应用20提供了用于将史诗URL和/或ticket标识符复制到剪贴板的功能,并且Git应用30提供了用于使用如从剪贴板粘贴的史诗URL创建Git分支的功能。这在Jira应用20中的用户活动与Git应用30中的用户活动之间建立了相关。更具体地,由于观察到用户已经复制了来自Jira应用20的内容并将该内容粘贴到Git应用30中,因此这些应用是相关的。复制-粘贴操作和相关联的复制的内容(史诗URL或ticket标识符)提供了在两个应用之间建立关联的链接,并且另外地还提供了建立节点27作为用于创建跨应用相关树的联络点的链接。
虽然图8示出了基于用户将史诗URL和/或ticket标识符复制到新的Git分支中的示例跨应用相关树,但将认识到的是,该功能仅被公开作为本质上范围不受限制的可以链接两个或更多个应用的功能的一个示例。例如,在另一实现方式中,用户使用电子邮件应用访问旅行预订、复制确认编号、并将确认编号粘贴到财务管理器中以实现对旅行预订的支付。更一般地,当数据作为总体工作流的一部分从一个应用传递到另一应用时,可以使用跨应用相关树来代表由这种工作流提供的功能。可以用作两个应用之间的联络点的动作的其他示例包括但不限于应用输入和输出(例如,针对新史诗的Jira生成的URL)、应用内容(例如,Jira ticket标识符)以及紧密耦合的用户动作(例如,复制-粘贴动作和文件传送应用)。
虽然节点27在图7和图8中示出的示例相关树中被提供为联络点,但在替代实现方式中(例如,在其中复制的URL被粘贴到相同的Jira应用20内(例如,在Jira应用20内的子页面内)的工作流中),节点27可以不是联络点。因此,给定动作是否被识别为联络点可以取决于后续观察到的动作是在相同还是不同的应用内执行的。
识别联络点用作不同应用之间的链接功能的基础,并因此用于生成跨应用相关树。通常,当用户在第一应用中完成动作序列时,这可以被理解为产生输出数据,例如,复制到剪贴板或其他数据结构中的文件数据。然后,用户移动到第二应用程序,并使用由第一应用生成的数据执行附加动作。这种示例由链接Jira应用20和Git应用30的复制-粘贴操作代表,如图8中示出的。当多个应用中存在相同的数据时,用户活动可以跨多个应用相关。所得到的跨应用相关树可以被理解为存在于独立于任何一个应用的工作空间中。因此,通过基于观察到的工作流识别结束点和联络点来学习用户行为,并且特别地,可以在不聚焦用户与任何一个应用的交互的情况下学习用户行为。虽然图8示出了由Jira应用20和Git应用30提供的示例跨应用相关树链接功能,但通常任何合适数量的应用可以在跨应用相关树中链接。
在一些情况下,可能没有识别出任何联络点,例如,在动作序列形成了存在于单个应用内的独立的工作流,并且该动作序列不链接到由其他应用提供的功能的情况下。因此,关于是否识别出任何联络点做出确定。参见图5中的附图标记5160。如果识别出联络点,则可以链接第一相关树和第二相关树以定义跨应用相关树。参见图5中的附图标记5170。如上面所指出的,图8示出了跨应用相关树的示例。没有必要以人类可读的格式实际呈现跨应用相关树。然后,可以将代表跨应用相关树的数据保存在树数据库159中。参见图5中的附图标记5180。如果没有识别出第一相关树与第二相关树之间的联络点,则可以将代表第一相关树和第二相关树的数据保存在树数据库159中。参见图5中的附图标记5190。在一些情况下,即使在识别出联络点的情况下,也将代表第一相关树和第二相关树的数据作为不同元素保存在树数据库159中,尽管这不是要求的。用于代表相关树的数据可以保存在例如分布式存储器结构、关系数据库或任何其他合适的数据结构中。
在替代实现方式中,相关树生成操作5000被修改以定义和保存单个相关树。在这样的实现方式中,可以在初始操作阶段定义和保存单独的相关树,并且可以在后续的操作阶段识别链接定义的相关树的联络点。因此,应当认识到的是,可以在其他实现方式中修改图5中示出的操作序列。
方法论——分析相关树
图6是示出示例相关树分析操作6000的流程图,该示例相关树分析操作6000分析相关树的集合以识别在一个或多个应用内的频繁调用的用户动作和动作序列。操作6000可以例如使用图2中示出且在本文描述的系统架构来实现,特别是使用相关树构建器153来实现。然而,可以在其他实现方式中使用其他系统架构。为此,图6中示出的各种功能与相关树构建器153的相关性不旨在暗示任何结构或使用限制。而是,其他实现方式可以包括例如不同程度的集成,其中某些功能由不同的系统或模块高效地执行。例如,在替代实现方式中,单独的软件模块用于从树数据库159中提取频繁动作集合并对相似的相关树进行聚类。因此,取决于特定实现方式的粒度,其他实现方式可以具有更少或更多的模块。如可以看出的,操作6000包括多个阶段和子进程,其序列可以从一个实现方式到另一个实现方式而不同。然而,当集成考虑时,这些阶段和子进程能够检测和分析多个用户与多个应用服务器300之间的交互。
在一个示例实现方式中,相关树分析操作6000用作后台进程,该后台进程监视具有代表多个相关树的数据的数据结构,例如,树数据库159。在一些情况下,当新数据被记录在活动数据库159中时调用操作6000,尽管在其他实施例中可以使用其他触发器。例如,在替代实现方式中,操作6000在周期性的基础上被调用或响应于用户命令(例如,由数字工作空间服务器200的管理员调用的命令)而被调用。无论触发事件或条件如何,在一个实现方式中,当使用关联规则学习从树数据库159中识别并提取频繁动作集合时,相关树分析操作6000开始。参见图6中的附图标记6110。这在图9中示意性地示出,其中使用关联规则学习52来处理由存储在树数据库159中的多个相关树50a所代表的用户活动50,以生成多个频繁动作集合54。频繁动作集合54可以形成推荐的微应用功能的基础,并且特别地,频繁动作集合54可以形成跨由一个或多个联络点连接的多个应用扩展的关键路径的一部分。
如上面所指出的,在某些实现方式中,使用关联规则学习来识别频繁动作集合。关联规则学习指代能够发现在大型数据集中的变量之间的关系的一类机器学习技术,并且这一类机器学习技术特别地与本公开相关,以在这样的数据集中寻找最频繁和/或相关的模式。在分析相关树的集合50a的上下文中,关联规则学习可以用于推断单独观察到的用户动作之间的因果关系。例如,关联规则学习可以用于进行这样的推断:当观察到用户已经调用了序列活动1→活动2→活动3时,则该用户很可能接下来将调用活动4。已经开发了许多不同的算法来生成关联规则,包括频繁模式生长(“FP生长”)算法。识别出的频繁动作集合形成推荐特定微应用功能和使微应用构建器154能够实现推荐的功能的基础。
如图9中示出的,关联规则学习不仅可以用于生成频繁动作集合54,还可以用于生成频繁动作集合的对应支持值。支持值代表特定动作集合被观察到发生的频率,其中高支持度代表频繁观察到的动作集合。当识别出因果关系时(例如,在预测序列活动1→活动2→活动3之后是活动4的情况下),预测的活动(本示例中为活动4)可以与支持度相关联。如果因果关系具有足够高的支持度(例如,超过既定阈值),则可以将预测的活动识别为频繁观察到的动作。参见图6中的附图标记6120。在这种情况下,识别出的频繁观察到的动作可以代表为对应于图1中示出的频繁观察到的动作14。如上面所指出的,在一个实现方式中,FP生长算法用于识别频繁动作集合54及其对应的支持值。频繁观察到的动作可以用于生成最终被提供给微应用构建器154的推荐的微应用功能。参见图6中的附图标记6170。
关联规则学习(包括频繁模式发现技术,例如,前述FP生长算法)也可以用于从频繁动作集合54中推导出模式,如由图9中示出的模式生成56所代表的。这些模式代表当多个应用中的动作被级联时跨多个应用扩展的关键路径。每个识别出的模式可选地与对应的置信度值相关联。
除了使用相关树来识别频繁观察到的动作之外,相关树还可以用于识别关键路径和对应的联络点,这些联络点代表了形成推荐的微应用功能基础的用户交互序列。因此,在替代实施例中,当树相似性算法用于聚类相似的相关树时,操作6000开始。参见图6中的附图标记6140。这在图10中示意性地示出,其中使用树相似性算法来处理由存储在树数据库159中的多个相关树50a所代表的用户活动50,以生成多个相关树组58a。相关树组58a可以统称为聚类的相关树58。
可以用于这方面的树相似性算法的一个示例在Xu于2015年8月13日提交的“AnAlgorithm for Comparing Similarity Between Two Trees”中公开,提交的论文部分满足了杜克大学研究生院计算机科学系理学硕士学位的要求(检索自<https://arxiv.org/pdf/1508.03381.pdf>)。在其他实施例中,可以使用其他合适的现有或后续开发的树相似性算法。在高级别处,该算法可以被理解为计算两个树之间的距离,其中相似树以更短的距离间隔开。例如,考虑树A、B、C和D,其中树i和j间隔开距离dij。如果dAB和dCD两者小于dAC和dBD,则可以得出结论:(a)树A和B彼此相似,并且因此应被聚类在一起;以及(b)树C和D彼此相似,并且因此应被聚类在一起。
一旦使用树相似性算法来组织聚类的相关树58,就可以关于特定的相关树组58a是否包括大于阈值数量的相关树做出确定。参见图6中的附图标记6150。如果特定的相关树组58a不包括大于阈值数量的相关树,则对应于分组的相关树的任何动作序列被理解为太不频繁地被调用以支持微应用功能推荐。另一方面,如果相关树组58a包括大于阈值数量的相关树,则可以从足够大的相关树组58a中的代表性的树59a推导出关键路径59。参见图6中的附图标记6160。在一个实现方式中,代表性的树59a由来自足够大的相关树组58a的公共节点定义。关键路径59可以用于生成最终被提供给微应用构建器154的推荐的微应用功能。参见图6中的附图标记6170。
一旦已经定义了推荐的微应用功能,就可以将这样的推荐传递给微应用构建器154。微应用构建器154被配置为基于频繁调用的动作和/或动作序列来构建微应用和/或推荐的微应用功能。可以自动生成微应用和/或可以向管理员进行推荐,该管理员例如经由数字工作空间关于最终将部署哪个微应用功能做出最终决定。这允许根据在各种使用上下文中工作的大量用户开发微应用功能,因此允许以人类分析师难以进行或甚至不可能进行的方式来识别应用使用模式。这还允许针对特定角色和与该角色相关联的应用使用模式专门定制微应用功能推荐。对于人类分析师而言,准确地做出单独定制的微应用推荐可能是不可行的,尤其是在大型组织中。针对特定用户和特定工作组的需要紧密定制的微应用功能最终将导致改进的用户体验和生产力。
结论
各种实施例的前述描述和附图仅通过示例的方式呈现。这些示例并非旨在是详尽的或将本发明限制为所公开的精确形式。鉴于本公开内容,更改、修改和变型将是显而易见的,并且旨在落入根据权利要求书中阐述的本发明的范围内。另外地,本文使用的措辞和术语是出于描述的目的,并且不应被视为限制性的。以单数形式对本文中引用的系统和方法的示例、组件、元素或动作的任何引用也可以涵盖包括复数的示例,并且以复数形式对本文中任何示例、组件、元素或动作的任何引用也可以涵盖仅包括单数的示例。以单数或复数形式的引用不旨在限制当前公开的系统或方法、它们的组件、动作或元素。本文中对“包括”、“包含”、“具有”、“含有”、“涉及”及其变型的使用意在涵盖其后列出的项目和其等同物以及附加项。对“或”的引用可以被解释为包括性的,使得使用“或”描述的任何项目可以指示被描述的项目中的单个、多于一个、以及所有中的任一个。

Claims (20)

1.一种用于生成微应用推荐的方法,所述方法包括:
接收表征多个用户与多个应用之间的交互的观察数据;
基于接收到的观察数据来定义相关树的集合,其中,在所述集合中的每个相关树代表所述用户中的一个用户与所述应用中的一个或多个应用之间的交互序列,并且其中,所述集合包括第一数量的相关树;
识别相似相关树的子集,所述相似相关树中的每一个被包括在所述集合中,其中,所述子集包括第二数量的相关树,所述第二数量小于所述第一数量;
做出所述第二数量大于阈值数量的确定;以及
响应于做出所述确定,基于由代表所述子集的相关树所代表的交互序列来生成微应用推荐。
2.根据权利要求1所述的方法,其中,生成所述微应用推荐还包括生成机器可读指令,所述机器可读指令在被执行时使得由代表性的相关树所代表的交互序列被调用。
3.根据权利要求1所述的方法,还包括:
从所述相关树的集合中提取多个频繁动作集合;
识别所述频繁动作集合中的特定一个与后续频繁动作之间的因果关系,其中,所述后续频繁动作与置信度参数相关联,所述置信度参数代表所述后续频繁动作跟随特定频繁动作集合的频率;以及
响应于确定所述置信度参数超过阈值置信度,生成包括所述后续频繁动作的微应用推荐。
4.根据权利要求1所述的方法,其中,由所述集合中的相关树中的特定一个所代表的交互序列包括用户认证交互、用户数据输入动作和注销交互。
5.根据权利要求1所述的方法,其中,识别相似相关树的所述子集还包括:
识别所述子集中的相似相关树的质心;以及
确定所述子集中的相似相关树中的每一个与所述质心之间的距离,其中,所述距离中的每一个小于阈值距离。
6.根据权利要求1所述的方法,还包括:确定所述子集中的相似相关树中的特定一个与所述子集中的其他相似相关树中的每一个之间的距离,其中,所述距离中的每一个小于阈值距离。
7.根据权利要求1所述的方法,其中,所述相关树的集合包括:
单应用相关树,其代表所述用户中的一个用户与所述应用中的一个应用之间的交互序列;以及
跨应用相关树,其代表所述用户中的一个用户与至少两个不同应用之间的交互序列。
8.根据权利要求1所述的方法,还包括:
识别联络点,所述联络点链接所述集合中的相关树中的两个,其中,两个链接的相关树代表由第一应用和第二应用提供的功能,并且其中,所述联络点代表从所述第一应用传递到所述第二应用的数据;
生成跨应用相关树,所述跨应用相关树代表所述用户中的一个用户与所述第一应用和所述第二应用之间的交互序列;以及
将所述跨应用相关树包括在相关树的定义集合中。
9.根据权利要求1所述的方法,还包括:识别联络点,所述联络点链接所述集合中的相关树中的两个,其中,两个链接的相关树代表由第一应用和第二应用提供的功能,并且其中,所述联络点代表在所述第一应用中的复制操作和在所述第二应用中的粘贴操作。
10.一种包括数字工作空间服务器的系统,其中,所述数字工作空间服务器包括存储器和耦合到所述存储器的至少一个处理器,并且其中,所述数字工作空间服务器被配置为通过以下操作来生成微应用推荐:
接收表征多个用户与多个应用之间的交互的观察数据;
基于接收到的观察数据来定义相关树的集合,其中,在所述集合中的每个相关树代表所述用户中的一个用户与所述应用中的一个或多个应用之间的交互序列;
从所述相关树的集合中提取多个频繁动作集合;
识别所述频繁动作集合中的特定一个与后续频繁动作之间的因果关系,其中,所述后续频繁动作与置信度参数相关联,所述置信度参数代表所述后续频繁动作跟随特定频繁动作集合的频率;以及
响应于确定所述置信度参数超过阈值置信度,生成包括所述后续频繁动作的微应用推荐。
11.根据权利要求10所述的系统,其中:
所述数字工作空间服务器还被配置为通过链接定义的相关树中的两个来生成微应用推荐;
链接的相关树中的第一相关树包括代表关于数据元素采取的第一动作的联络点;以及
链接的相关树中的第二相关树包括关于所述数据元素采取的第二动作。
12.根据权利要求10所述的系统,其中,所述数字工作空间服务器还被配置为通过以下操作来生成微应用推荐:
识别相似相关树的子集,所述相似相关树中的每一个被包括在所述集合中;
做出所述子集中存在多于阈值数量的相关树的确定;以及
响应于做出所述确定,基于由代表所述子集的相关树所代表的交互序列来生成微应用推荐。
13.根据权利要求10所述的系统,其中,生成所述微应用推荐还包括在用户界面中显示所述后续频繁动作的代表。
14.根据权利要求10所述的系统,其中,每个频繁动作集合与支持参数相关联,所述支持参数代表所述频繁动作集合被观察到的频率。
15.一种非暂时性计算机可读介质,其存储用于生成微应用推荐的处理器可执行指令,所述处理器可执行指令包括用于进行以下操作的指令:
接收表征多个用户与多个应用之间的交互的观察数据;
基于接收到的观察数据来定义相关树的集合,其中,在所述集合中的每个相关树代表所述用户中的一个用户与所述应用中的一个或多个应用之间的交互序列,并且其中,所述集合包括第一数量的相关树;
识别相似相关树的子集,所述相似相关树中的每一个被包括在所述集合中,其中,所述子集包括第二数量的相关树,所述第二数量小于所述第一数量;
做出所述第二数量大于阈值数量的确定;以及
响应于做出所述确定,基于与代表所述子集的相关树相对应的交互序列来生成微应用推荐。
16.根据权利要求15所述的非暂时性计算机可读介质,其中,所述处理器可执行指令还包括用于进行以下操作的指令:
识别特定交互序列的开始点和结束点;以及
识别在所述开始点与所述结束点之间发生的多个用户动作。
17.根据权利要求15所述的非暂时性计算机可读介质,其中,所述处理器可执行指令还包括用于进行以下操作的指令:将代表所述相关树的集合的数据保存在树数据库中。
18.根据权利要求15所述的非暂时性计算机可读介质,其中:
所述处理器可执行指令还包括用于进行以下操作的指令:识别特定交互序列的开始点;以及
所述开始点是从由用户认证动作和统一资源定位符提交组成的组中被选择的。
19.根据权利要求15所述的非暂时性计算机可读介质,其中:
所述处理器可执行指令还包括用于进行以下操作的指令:识别特定交互序列的结束点;以及
所述结束点是从由用户注销动作、页面关闭动作和检测到的活动超时事件组成的组中被选择的。
20.根据权利要求15所述的非暂时性计算机可读介质,其中,所述处理器可执行指令还包括用于进行以下操作的指令:
识别第一交互序列的结束点;
识别第二交互序列的开始点;
识别由所述开始点和所述结束点两者对其进行操作的数据对象;以及
响应于识别所述数据对象,将所述第一交互序列的结束点指定为所述第一序列与所述第二序列之间的联络点。
CN202080009580.4A 2020-03-26 2020-03-26 利用跨应用的活动相关性的微应用功能建议 Expired - Fee Related CN113811854B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2020/081406 WO2021189356A1 (en) 2020-03-26 2020-03-26 Microapp functionality recommendations with cross-application activity correlation

Publications (2)

Publication Number Publication Date
CN113811854A true CN113811854A (zh) 2021-12-17
CN113811854B CN113811854B (zh) 2022-06-28

Family

ID=77745900

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080009580.4A Expired - Fee Related CN113811854B (zh) 2020-03-26 2020-03-26 利用跨应用的活动相关性的微应用功能建议

Country Status (7)

Country Link
US (1) US11132179B1 (zh)
EP (1) EP3908925A4 (zh)
CN (1) CN113811854B (zh)
AU (1) AU2020403711A1 (zh)
BR (1) BR112021014123B1 (zh)
CA (1) CA3123916C (zh)
WO (1) WO2021189356A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11593130B2 (en) * 2021-03-23 2023-02-28 Acronis International Gmbh Systems and methods for customizing a user workspace environment using action sequence analysis
US20220413689A1 (en) * 2021-06-28 2022-12-29 Citrix Systems, Inc. Context-based presentation of available microapp actions
US11797623B2 (en) 2021-12-09 2023-10-24 Citrix Systems, Inc. Microapp recommendations for networked application functionality
US20240112289A1 (en) * 2022-05-23 2024-04-04 The Government of the United States of America, as represented by the Secretary of Homeland Security Augmented reality security screening and dynamic step-by-step guidance and communication
US20240045782A1 (en) * 2022-08-08 2024-02-08 Qualcomm Incorporated Suggesting a New and Easier System Function by Detecting User's Action Sequences
CN115373643A (zh) * 2022-09-15 2022-11-22 贵州电网有限责任公司 基于模块化的云计算系统及方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102054004A (zh) * 2009-11-04 2011-05-11 清华大学 一种网页推荐方法和装置
US20160234624A1 (en) * 2015-02-10 2016-08-11 Microsoft Technology Licensing, Llc De-siloing applications for personalization and task completion services
US20180075513A1 (en) * 2016-09-14 2018-03-15 International Business Machines Corporation Software recommendation services for targeted user groups
CN107820701A (zh) * 2015-05-01 2018-03-20 三星电子株式会社 开发者交换系统
CN108268260A (zh) * 2017-12-21 2018-07-10 博康智能信息技术有限公司 一种基于一体化支撑技术的快速微应用组装方法

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060117059A1 (en) * 2004-11-30 2006-06-01 Tidal Software, Inc. System and method for monitoring and managing performance and availability data from multiple data providers using a plurality of executable decision trees to consolidate, correlate, and diagnose said data
US20140020068A1 (en) 2005-10-06 2014-01-16 C-Sam, Inc. Limiting widget access of wallet, device, client applications, and network resources while providing access to issuer-specific and/or widget-specific issuer security domains in a multi-domain ecosystem for secure personalized transactions
US9110685B2 (en) 2008-03-25 2015-08-18 Qualcomm, Incorporated Apparatus and methods for managing widgets in a wireless communication environment
US8312450B2 (en) 2008-12-18 2012-11-13 Sap Ag Widgetizing a web-based application
FR2964484B1 (fr) 2010-09-02 2015-09-18 Banque Accord Procede de recueil de donnees a caracteres evenementiel de formulaires electroniques
US20120278736A1 (en) * 2011-04-30 2012-11-01 Samsung Electronics Co., Ltd. Collaborative decision-making for deriving micro-recommendations for offsite users
US9008288B2 (en) * 2012-03-26 2015-04-14 Jacada Inc. System and method for supporting self service and associated agent-assisted service call routing
US20130326499A1 (en) 2012-05-31 2013-12-05 Microsoft Corporation Automatically installing and removing recommended applications
US9280252B1 (en) 2013-03-08 2016-03-08 Allstate Insurance Company Configuring an application task list of an application based on previous selections of application tasks
US20140351052A1 (en) 2013-05-24 2014-11-27 Harbhajan S. Khalsa Contextual Product Recommendation Engine
US9405531B2 (en) 2013-07-16 2016-08-02 Software Ag Methods for building application intelligence into event driven applications through usage learning, and systems supporting such applications
US9471624B1 (en) 2013-12-26 2016-10-18 Quixey, Inc. Method for recommending applications for deletion
US20150356495A1 (en) 2014-06-05 2015-12-10 Accenture Global Services Limited Digital workspace
US9405665B1 (en) * 2015-05-22 2016-08-02 Amazon Technologies, Inc. Application testing based on user input captured during a trial period and priority scheme analysis
US20170212650A1 (en) 2016-01-22 2017-07-27 Microsoft Technology Licensing, Llc Dynamically optimizing user engagement
US10747554B2 (en) 2016-03-24 2020-08-18 Google Llc Contextual task shortcuts
CN106101250A (zh) 2016-06-30 2016-11-09 乐视控股(北京)有限公司 应用功能的定制方法及装置
CN106201624A (zh) * 2016-07-18 2016-12-07 深圳市金立通信设备有限公司 一种应用程序的推荐方法及终端
US10452717B2 (en) * 2016-09-22 2019-10-22 Intel Corporation Technologies for node-degree based clustering of data sets
US10621062B2 (en) 2017-02-21 2020-04-14 International Business Machines Corporation Widget provisioning of user experience analytics and user interface / application management
US10635433B2 (en) 2017-08-24 2020-04-28 General Electric Company Cross application behavior customization
CN110007986B (zh) 2018-01-04 2022-11-01 阿里巴巴集团控股有限公司 功能实现方法及装置
US10909024B2 (en) 2018-04-19 2021-02-02 Think Research Corporation System and method for testing electronic visual user interface outputs
CN109117164B (zh) 2018-06-22 2020-08-25 北京大学 基于关键元素差异性分析的微服务更新方法及系统
US20200026502A1 (en) 2018-07-19 2020-01-23 Michael Moore Method and system for determining inefficiencies in a user interface
US10817270B2 (en) 2018-08-02 2020-10-27 Oracle International Corporation AI-generated instant micro apps
US10848500B2 (en) 2018-10-24 2020-11-24 Jamf Software, Llc Systems and methods for group-based mobile device management
CN110069463B (zh) * 2019-03-12 2021-07-16 北京奇艺世纪科技有限公司 用户行为处理方法、装置电子设备及存储介质
CN110806975A (zh) 2019-10-22 2020-02-18 湖南物会网络信息技术有限公司 一种小程序应用管理系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102054004A (zh) * 2009-11-04 2011-05-11 清华大学 一种网页推荐方法和装置
US20160234624A1 (en) * 2015-02-10 2016-08-11 Microsoft Technology Licensing, Llc De-siloing applications for personalization and task completion services
CN107820701A (zh) * 2015-05-01 2018-03-20 三星电子株式会社 开发者交换系统
US20180075513A1 (en) * 2016-09-14 2018-03-15 International Business Machines Corporation Software recommendation services for targeted user groups
CN108268260A (zh) * 2017-12-21 2018-07-10 博康智能信息技术有限公司 一种基于一体化支撑技术的快速微应用组装方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
MACIEJ A.MAZUROWSKI: "Estimating confidence of individual rating predictions in collaborative filtering recommender systems", 《EXPERT SYSTEMS WITH APPLICATIONS》 *
白琳等: "一种面向移动应用的探索式服务组合方法", 《软件学报》 *

Also Published As

Publication number Publication date
US20210303269A1 (en) 2021-09-30
CA3123916C (en) 2023-03-14
CA3123916A1 (en) 2021-09-15
BR112021014123A2 (zh) 2021-12-07
EP3908925A1 (en) 2021-11-17
AU2020403711A1 (en) 2021-10-14
CN113811854B (zh) 2022-06-28
EP3908925A4 (en) 2022-02-23
WO2021189356A1 (en) 2021-09-30
US11132179B1 (en) 2021-09-28
BR112021014123B1 (pt) 2022-10-11

Similar Documents

Publication Publication Date Title
CN113811854B (zh) 利用跨应用的活动相关性的微应用功能建议
US10657107B1 (en) Many task computing with message passing interface
US10380185B2 (en) Generation of job flow objects in federated areas from data structure
US10331495B2 (en) Generation of directed acyclic graphs from task routines
US10002029B1 (en) Automated transfer of neural network definitions among federated areas
US10346476B2 (en) Sketch entry and interpretation of graphical user interface design
US10795935B2 (en) Automated generation of job flow definitions
US10678682B2 (en) Intelligent batch job testing
US11775341B2 (en) Automated job flow generation to provide object views in container-supported many task computing
US11533330B2 (en) Determining risk metrics for access requests in network environments using multivariate modeling
JP2019536185A (ja) コンピュータおよびネットワーク活動を監視および分析するためのシステムおよび方法
Vinay et al. A quantitative approach using goal-oriented requirements engineering methodology and analytic hierarchy process in selecting the best alternative
Bahrami et al. WATAPI: composing web API specification from API documentations through an intelligent and interactive annotation tool
CN114846491A (zh) 使用结构化日志事件的辅助和自动工作流
Ashbourn et al. Biometric Application Design

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20220628

CF01 Termination of patent right due to non-payment of annual fee