CN111226197A - 认知学习工作流执行 - Google Patents
认知学习工作流执行 Download PDFInfo
- Publication number
- CN111226197A CN111226197A CN201880066941.1A CN201880066941A CN111226197A CN 111226197 A CN111226197 A CN 111226197A CN 201880066941 A CN201880066941 A CN 201880066941A CN 111226197 A CN111226197 A CN 111226197A
- Authority
- CN
- China
- Prior art keywords
- workflow
- information
- data source
- execution
- data
- 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
Links
- 230000001149 cognitive effect Effects 0.000 title description 24
- 238000000034 method Methods 0.000 claims abstract description 123
- 238000003860 storage Methods 0.000 claims description 34
- 230000004044 response Effects 0.000 claims description 21
- 238000012545 processing Methods 0.000 claims description 19
- 230000002452 interceptive effect Effects 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 14
- 230000008520 organization Effects 0.000 description 28
- 230000009471 action Effects 0.000 description 21
- 230000006870 function Effects 0.000 description 19
- 238000010586 diagram Methods 0.000 description 10
- 238000010200 validation analysis Methods 0.000 description 8
- 238000012795 verification Methods 0.000 description 8
- 238000009825 accumulation Methods 0.000 description 7
- 230000000977 initiatory effect Effects 0.000 description 7
- 238000007726 management method Methods 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 238000004088 simulation Methods 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000013528 artificial neural network Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 4
- 238000005859 coupling reaction Methods 0.000 description 4
- 238000010801 machine learning Methods 0.000 description 4
- 239000000203 mixture Substances 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 238000013515 script Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000002411 adverse Effects 0.000 description 2
- 239000000872 buffer Substances 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000010348 incorporation Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 210000003813 thumb Anatomy 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000014616 translation Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 241000700605 Viruses Species 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000009172 bursting Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000001627 detrimental effect Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 238000007670 refining Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0633—Workflow analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/01—Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N7/00—Computing arrangements based on specific mathematical models
- G06N7/01—Probabilistic graphical models, e.g. probabilistic networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Entrepreneurship & Innovation (AREA)
- Economics (AREA)
- Strategic Management (AREA)
- Marketing (AREA)
- Quality & Reliability (AREA)
- Operations Research (AREA)
- General Business, Economics & Management (AREA)
- Game Theory and Decision Science (AREA)
- Educational Administration (AREA)
- Tourism & Hospitality (AREA)
- Development Economics (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
描述了用于交互地执行包括多个工作流步骤的工作流的技术方案。示例方法包括从数据源拉取针对工作流的初步更新并动态地修改工作流。方法还包括选择工作流步骤,以及从数据源提取更新的信息并动态地修改工作流步骤。此外,方法包括从数据源取得指示由其他用户执行更新的工作流步骤的结果的第一结果信息,并且基于第一结果信息来执行更新的工作流步骤。方法还包括基于工作流步骤的执行来累积第二结果信息。此外,该执行包括在完成工作流步骤后将第二结果信息推送到数据源。
Description
技术领域
本发明一般涉及对计算机系统的改进,诸如用于执行工作流的系统。
背景技术
最近,随着计算设备的可用和普及,向客户或其他用户提供工作流以利用机器辅助来执行特定任务变得普遍。该工作流包括工作流步骤列表,其可以是用户在机器辅助下以工作流提供的特定顺序执行的操作的编译。
执行工作流的技术挑战包括在执行工作流步骤中的每一个时用用于辅助执行一个或多个工作流步骤的信息来更新工作流。
因此,在本领域中需要解决上述问题。
发明内容
从第一方面,本发明提供了一种用于执行交互式工作流的计算机实现的方法,该方法包括:选择用于交互执行的工作流,工作流包括一系列工作流步骤;从数据源拉取针对工作流的初步更新并动态地修改工作流;从工作流中选择工作流步骤用于执行;从数据源拉取针对工作流步骤的更新信息,并使用更新信息动态地修改工作流步骤;从数据源取得第一结果信息,第一结果信息指示由其他用户执行更新的工作流步骤的结果;响应于第一结果信息指示进行了执行,使用更新的工作流步骤执行工作流步骤,该执行包括改变目标系统;累积包括与工作流步骤的执行相关联的属性的执行信息,以及基于工作流步骤的执行的第二结果信息;以及在完成工作流步骤后将执行信息推送到数据源。
从另一方面,本发明提供了一种用于执行交互式工作流的系统,该系统包括:存储器;以及处理器,其被配置用于机器辅助的工作流执行,包j括:选择用于交互执行的工作流,工作流包括一系列工作流步骤;从数据源拉取针对工作流的初步更新并动态地修改工作流;从工作流中选择工作流步骤用于执行;从数据源拉取针对工作流步骤的更新信息,并使用更新信息动态地修改工作流步骤;从数据源取得第一结果信息,第一结果信息指示由其他用户执行更新的工作流步骤的结果;响应于第一结果信息指示进行了执行,使用更新的工作流步骤执行工作流步骤,该执行包括改变目标系统;累积包括与工作流步骤的执行相关联的属性的执行信息,以及基于工作流步骤的执行的第二结果信息;以及在完成工作流步骤后将执行信息推送到数据源。
从另一方面,本发明提供了一种用于执行交互式工作流的计算机程序产品,该计算机程序产品包括计算机可读存储介质,该计算机可读存储介质可由处理电路读取并且存储用于由处理电路执行以用于执行本发明的步骤的方法的指令。
从另一方面,本发明提供了一种存储在计算机可读介质上并且可加载到数字计算机的内部存储器中的计算机程序,包括软件代码部分,当程序在计算机上运行时,用于执行本发明的步骤。
根据一个或多个实施例,用于执行交互式工作流的计算机实现的方法包括选择用于交互式执行的工作流,该工作流包括一系列工作流步骤。该方法还包括从数据源拉取针对工作流的初步更新并动态地修改工作流。该方法还包括从工作流中选择工作流步骤用于执行,以及从数据源中拉取针对工作流步骤的更新信息并使用该更新信息动态地修改工作流步骤。此外,该方法包括从数据源取得第一结果信息,该第一结果信息指示由其他用户执行更新的工作流步骤的结果。该方法还包括响应于第一结果信息指示进行了执行,使用更新的工作流步骤执行工作流步骤,该执行改变目标系统。该方法还包括累积包括与工作流步骤的执行相关联的属性的执行信息,以及基于工作流步骤的执行的第二结果信息。此外,该方法包括在完成工作流步骤后将执行信息推送到数据源。
根据一个或多个实施例,一种用于交互式执行工作流的系统包括存储器和与存储器耦合的处理器。交互式执行包括选择用于交互式执行的工作流,该工作流包括一系列工作流步骤。该执行还包括从数据源拉取针对工作流的初步更新并动态地修改工作流。该执行还包括从工作流中选择工作流步骤用于执行,以及从数据源中拉取针对工作流步骤的更新信息并使用该更新信息动态地修改工作流步骤。此外,该执行包括从数据源取得第一结果信息,该第一结果信息指示由其他用户执行更新的工作流步骤的结果。该执行还包括响应于第一结果信息指示进行了执行,使用更新的工作流步骤执行工作流步骤,该执行改变目标系统。该执行还包括累积包括与工作流步骤的执行相关联的属性的执行信息,以及基于工作流步骤的执行的第二结果信息。此外,该执行包括在完成工作流步骤后将执行信息推送到数据源。
根据一个或多个实施例,一种计算机程序产品包括计算机可读存储介质,该计算机可读存储介质具有随其体现的程序指令,该程序指令可由处理电路执行以使处理电路提供机器辅助的工作流执行。交互式执行包括选择用于交互式执行的工作流,该工作流包括一系列工作流步骤。该执行还包括从数据源拉取针对工作流的初步更新并动态地修改工作流。该执行还包括从工作流中选择工作流步骤用于执行,以及从数据源中拉取针对工作流步骤的更新信息并使用该更新信息动态地修改工作流步骤。此外,该执行包括从数据源取得第一结果信息,该第一结果信息指示由其他用户执行更新的工作流步骤的结果。该执行还包括响应于第一结果信息指示进行了执行,使用更新的工作流步骤执行工作流步骤,该执行改变目标系统。该执行还包括累积包括与工作流步骤的执行相关联的属性的执行信息,以及基于工作流步骤的执行的第二结果信息。此外,该执行包括在完成工作流步骤后将执行信息推送到数据源。
附图说明
参考以下附图和描述将更好地理解贯穿本文件描述的示例。图中的部件不一定是按比例的。此外,在附图中,相同的附图标记在不同的图中表示对应的部件。
图1示出了根据本发明实施例的云计算环境;
图2示出了根据本发明实施例的抽象模型层;
图3描绘了用于使用认知学习来执行工作流的示例系统100;
图4示出了根据一个或多个实施例的示例系统200;
图5描绘了根据一个或多个实施例的用于在运行时更新工作流的示例方法的流程图;
图6描绘了根据一个或多个实施例的用于使用具有增强的安全性的认知学习来执行工作流的示例方法的流程图;
图7描绘了根据一个或多个实施例的用于使用提供认知推理的认知学习来执行工作流的示例方法的流程图;
图8描绘了根据一个或多个实施例的用于使用具有工作流步骤预览的认知学习来执行工作流的示例方法的流程图;以及
图9示出根据本发明的一个或多个实施例的使用具有工作流步骤结果信息的认知学习来执行工作流的示例方法的流程图。
具体实施方式
在此参考相关附图描述本发明的各种实施例。在不偏离本发明的范围的情况下,可以设计本发明的替代实施例。在以下描述和附图中,阐述了在元件之间的各种连接和位置关系(例如,上、下、相邻等)。除非另有说明,这些连接和/或位置关系可以是直接的或间接的,并且本发明并不旨在对这方面进行限制。因此,实体的耦接可以指直接或间接的耦接,并且实体之间的位置关系可以是直接或间接的位置关系。此外,本文所述的各种任务和过程步骤可并入具有本文未详细描述的附加步骤或功能性的更综合的程序或过程中。
以下定义和简写用于解释权利要求和说明书。如本文所用,术语"包含"、"包括"、"具有"、"含有"或其任何其它变型旨在涵盖非排他性的包括。例如,包括一系列元素的组合物、混合物、工艺、方法、制品或装置不必仅限于这些元素,而是可以包括未明确列出的或此类组合物、混合物、工艺、方法、制品或装置固有的其它元素。
另外,术语"示例性"在本文中用于表示"用作示例、实例或说明"。本文描述为"示例性"的任何实施例或设计不一定被解释为比其它实施例或设计优选或有利。术语"至少一个"和"一个或多个"可以理解为包括大于或等于1的任何整数,即1、2、3、4等。术语"多个"可以理解为包括大于或等于2的任何整数,即2、3、4、5等。术语"连接"可包括间接"连接"和直接"连接"两者。
术语"约"、"基本上"、"大约"及其变型旨在包括与基于提交本申请时可用的设备的特定量的测量相关联的误差度。例如,"约"可以包括给定值的±8%或5%或2%的范围。
为了简洁起见,与制造和使用本发明的方面相关的常规技术可以或可以不在本文中详细描述。特别地,用于实现本文描述的各种技术特征的计算系统和特定计算机程序的各个方面是公知的。因此,为了简洁起见,许多常规实现细节在本文中仅简要提及或完全省略,而不提供公知的系统和/或过程细节。
本文描述的技术方案有助于更新提供给用户以供执行的工作流,在用户执行工作流时,以在线和动态方式执行更新。工作流是向用户提供来根据工作流以特定顺序执行的操作的列表。在一个或多个示例中,工作流的一个或多个操作(工作流步骤)可以更改机器,例如,在其上执行工作流的机器。在一个或多个示例中,在第一机器上向用户提供工作流,并且在第二机器上执行工作流。在一个或多个示例中,来自工作流的一个或多个工作流步骤被手动执行。可替换地或另外,可以以自动化方式执行一个或多个工作流步骤。在一个或多个示例中,工作流作为手动和自动化步骤的组合来执行。
工作流的示例包括用于改变机器的硬件的工作流步骤的列表,例如,从计算机更新/更换存储器设备、从汽车更新/更换电池、从打印机改变档位、或针对机器的任何其它硬件改变。替代地或附加地,工作流的示例包括用于改变与机器相关联的软件的工作流步骤的列表,例如更新/替换操作系统、更新/替换软件系统、改变机器的配置,诸如加密存储器、设置软件系统的一个或多个选项、或针对机器的任何其它软件改变。应当理解,以上仅是工作流的一些示例,并且除了本文列出和/或描述的示例之外,本文描述的技术方案还可应用于工作流的其它示例。
执行工作流的技术挑战包括在执行工作流步骤中的每一个时用用于辅助执行一个或多个工作流步骤的信息来更新工作流。例如,比工作流的所有者(提供者/开发者)所提供的信息多得多的信息,并且在没有向用户提供/用户可获得该信息的情况下,她/他可能不能执行工作流步骤。本文描述的技术方案通过在执行工作流步骤之前/或在执行工作流步骤时促进提供该缺失信息来解决该技术挑战。
例如,本文描述的技术方案有助于确定和提供来自多个数据源的这种缺失信息。例如,数据源可以包括来自工作流开发者的更新。例如,如果工作流由开发者(设计工作流的供应商或所有者)更新或纠正,则该更新的信息被提供给用户。在进一步的描述中,该信息被称为"供应商更新信息"。
此外,数据源可以包括来自已经执行该同一工作流的其他用户的更新,该其他用户来自与执行该工作流的用户不同的域。本文中,不同的域可以指在与用户不同的环境中执行了该工作流的用户,例如,如果另一用户来自与该用户不同的组织,并且该工作流影响/使用组织信息,例如,更新组织服务器等。不同域的另一示例可以包括用户在不同硬件、不同操作系统等上执行相同工作流。应当理解,来自不同域的两个以上用户的各种其它示例是可能的,该两个以上用户在其各自的域环境中执行相同的工作流。在任何此类情况下,来自不同域的另一用户已经执行了具有关于工作流执行的共享信息的相同工作流,然后该共享信息通过本文描述的技术方案被标识并提供给用户。在进一步的描述中,该信息被称为"其他用户信息"。
此外,数据源可以包括同一用户在他/她之前执行类似工作流时所进行的更新,类似工作流例如是与正在执行的工作流具有一个或多个公共的工作流步骤的另一工作流。例如,用户可能已经将特定信息添加到数据源中的工作流步骤/添加关于数据源中的工作流步骤的特定信息;在这种情况下,通过本文描述的技术方案与其它工作流共享该信息。在进一步的描述中,该信息被称为"国内(domestic)信息"。
此外,数据源可以包括来自外部世界的其它源的更新,在此进一步被称为"其他用户信息"。该信息包括从一个或多个源自动识别和提供的信息,该一个或多个源例如是一个或多个社交媒体数据源,诸如TWITTERTM、LINKEDINTM、FACEBOOKTM、一个或多个论坛和/或博客数据源,诸如REDDITTM、QUORATM,以及经由因特网可用的其它此类数据源。
在执行工作流时获得并提供给用户的缺失信息包括但不限于技能水平反馈、时间反馈、影响反馈。此外,缺失信息包括一个或多个工作流步骤的评级,例如,容易对困难、竖起拇指对拇指向下(指示是否执行步骤)、有帮助对无帮助(指示工作流步骤是否提供了预期结果)、关键的或非关键的(指示是否可以跳过工作流步骤)等。可替换地或附加地,该信息可以包括评级,诸如指示针对工作流步骤可用的信息的概要的星级评级。此外,缺失信息可以包括来自同一用户已经完成的其它工作流的先前信息,诸如评论、笔记、步骤所有权、记事本信息、工作流历史文件等。来自社交媒体或其它因特网源的信息可包括可能来自执行了工作流的其他用户的暗示和提示。提供给用户的缺失信息还可以包括来自供应商的产品问题信息,例如缺陷信息或修正、补丁、更新等。
随着各种用户执行工作流,这种信息不断积累。然而,存在每个用户必须执行/进行工作流的时间点,因此期望用户在进行工作流时得到"直到现在"的附加信息。本文描述的技术方案通过在执行工作流时自动标识来自多个数据源的该更新并将该更新提供给用户,从而提供来自多个数据源的直到现在的更新,来用缺失信息解决更新工作流的这种技术挑战。
在一个或多个示例中,可以使用云计算来实现本文描述的技术方案。首先应当理解,尽管本公开包括关于云计算的详细描述,但其中记载的技术方案的实现却不限于云计算环境,而是能够结合现在已知或以后开发的任何其它类型的计算环境而实现。
云计算是一种服务交付模式,用于对共享的可配置计算资源池进行方便、按需的网络访问。可配置计算资源是能够以最小的管理成本或与服务提供者进行最少的交互就能快速部署和释放的资源,例如可以是网络、网络带宽、服务器、处理、内存、存储、应用、虚拟机和服务。这种云模式可以包括至少五个特征、至少三个服务模型和至少四个部署模型。
特征包括:
按需自助式服务:云的消费者在无需与服务提供者进行人为交互的情况下能够单方面自动地按需部署诸如服务器时间和网络存储等的计算能力。
广泛的网络接入:计算能力可以通过标准机制在网络上获取,这种标准机制促进了通过不同种类的瘦客户机平台或厚客户机平台(例如移动电话、膝上型电脑、个人数字助理PDA)对云的使用。
资源池:提供者的计算资源被归入资源池并通过多租户(multi-tenant)模式服务于多重消费者,其中按需将不同的实体资源和虚拟资源动态地分配和再分配。一般情况下,消费者不能控制或甚至并不知晓所提供的资源的确切位置,但可以在较高抽象程度上指定位置(例如国家、州或数据中心),因此具有位置无关性。
迅速弹性:能够迅速、有弹性地(有时是自动地)部署计算能力,以实现快速扩展,并且能迅速释放来快速缩小。在消费者看来,用于部署的可用计算能力往往显得是无限的,并能在任意时候都能获取任意数量的计算能力。
可测量的服务:云系统通过利用适于服务类型(例如存储、处理、带宽和活跃用户帐号)的某种抽象程度的计量能力,自动地控制和优化资源效用。可以监测、控制和报告资源使用情况,为服务提供者和消费者双方提供透明度。
服务模型如下:
软件即服务(SaaS):向消费者提供的能力是使用提供者在云基础架构上运行的应用。可以通过诸如网络浏览器的瘦客户机接口(例如基于网络的电子邮件)从各种客户机设备访问应用。除了有限的特定于用户的应用配置设置外,消费者既不管理也不控制包括网络、服务器、操作系统、存储、乃至单个应用能力等的底层云基础架构。
平台即服务(PaaS):向消费者提供的能力是在云基础架构上部署消费者创建或获得的应用,这些应用利用提供者支持的程序设计语言和工具创建。消费者既不管理也不控制包括网络、服务器、操作系统或存储的底层云基础架构,但对其部署的应用具有控制权,对应用托管环境配置可能也具有控制权。
基础架构即服务(IaaS):向消费者提供的能力是消费者能够在其中部署并运行包括操作系统和应用的任意软件的处理、存储、网络和其他基础计算资源。消费者既不管理也不控制底层的云基础架构,但是对操作系统、存储和其部署的应用具有控制权,对选择的网络组件(例如主机防火墙)可能具有有限的控制权。
部署模型如下:
私有云:云基础架构单独为某个组织运行。云基础架构可以由该组织或第三方管理并且可以存在于该组织内部或外部。
共同体云:云基础架构被若干组织共享并支持有共同利害关系(例如任务使命、安全要求、政策和合规考虑)的特定共同体。共同体云可以由共同体内的多个组织或第三方管理并且可以存在于该共同体内部或外部。
公共云:云基础架构向公众或大型产业群提供并由出售云服务的组织拥有。
混合云:云基础架构由两个或更多部署模型的云(私有云、共同体云或公共云)组成,这些云依然是独特的实体,但是通过使数据和应用能够移植的标准化技术或私有技术(例如用于云之间的负载平衡的云突发流量分担技术)绑定在一起。
云计算环境是面向服务的,特点集中在无状态性、低耦合性、模块性和语意的互操作性。云计算的核心是包含互连节点网络的基础架构。
现在参考图1,其中显示了示例性的云计算环境50。如图所示,云计算环境50包括云计算消费者使用的本地计算设备可以与其相通信的一个或者多个云计算节点10,本地计算设备例如可以是个人数字助理(PDA)或移动电话54A,台式电脑54B、笔记本电脑54C和/或汽车计算机系统54N。云计算节点10之间可以相互通信。可以在包括但不限于如上所述的私有云、共同体云、公共云或混合云或者它们的组合的一个或者多个网络中将云计算节点10进行物理或虚拟分组(图中未显示)。这样,云的消费者无需在本地计算设备上维护资源就能请求云计算环境50提供的基础架构即服务(IaaS)、平台即服务(PaaS)和/或软件即服务(SaaS)。应当理解,图1显示的各类计算设备54A-N仅仅是示意性的,云计算节点10以及云计算环境50可以与任意类型网络上和/或网络可寻址连接的任意类型的计算设备(例如使用网络浏览器)通信。
现在参考图2,其中显示了云计算环境50(图1)提供的一组功能抽象层。首先应当理解,图2所示的组件、层以及功能都仅仅是示意性的,本发明的实施例不限于此。如图2所示,提供下列层和对应功能:
硬件和软件层60包括硬件和软件组件。硬件组件的例子包括:主机61;基于RISC(精简指令集计算机)体系结构的服务器62;服务器63;刀片服务器64;存储设备65;网络和网络组件66。软件组件的例子包括:网络应用服务器软件67以及数据库软件68。
虚拟层70提供一个抽象层,该层可以提供下列虚拟实体的例子:虚拟服务器71、虚拟存储72、虚拟网络73(包括虚拟私有网络)、虚拟应用和操作系统74,以及虚拟客户端75。
在一个示例中,管理层80可以提供下述功能:资源供应功能81:提供用于在云计算环境中执行任务的计算资源和其它资源的动态获取;计量和定价功能82:在云计算环境内对资源的使用进行成本跟踪,并为此提供帐单和发票。在一个例子中,该资源可以包括应用软件许可。安全功能:为云的消费者和任务提供身份认证,为数据和其它资源提供保护。用户门户功能83:为消费者和系统管理员提供对云计算环境的访问。服务水平管理功能84:提供云计算资源的分配和管理,以满足必需的服务水平。服务水平协议(SLA)计划和履行功能85:为根据SLA预测的对云计算资源未来需求提供预先安排和供应。
工作负载层90提供云计算环境可能实现的功能的示例。在该层中,可提供的工作负载或功能的示例包括:地图绘制与导航91;软件开发及生命周期管理92;虚拟教室的教学提供93;数据分析处理94;交易处理95;以及。
图3描绘了根据本发明的一个或多个实施例的用于执行工作流的示例系统100。系统100使用认知学习来促进工作流的执行。系统100包括提供工作流执行者105来访问工作流125的工作流访问系统120。工作流125用于修改工作流目标系统110的组件和/或配置。应当注意,尽管在图3中将工作流访问系统120和工作流访问系统110描绘为两个单独的系统,但是在一个或多个示例中,这两个可以是同一个系统。
工作流125可以由工作流目标系统110的供应商和/或开发者提供。工作流125包括要由工作流执行者105执行的一个或多个工作流步骤。工作流125被分配唯一标识符。此外,在一个或多个示例中,工作流步骤中的每一个被分配唯一标识符。在一个或多个示例中,工作流步骤将以由工作流125提供的特定顺序执行。工作流125因此是由工作流执行者105执行的机器辅助的工作流。工作流执行者105可以是执行来自工作流125的每个工作流步骤的用户。可替代地,工作流执行者105是自动或半自动地执行来自工作流125的工作流步骤的机器。
系统100还包括用于更新工作流125的一个或多个数据源130。数据源130可以是一个或多个服务器计算机。在一个或多个示例中,数据源130包括供应商数据源130,其存储更新的工作流步骤和/或针对工作流125的信息。供应商数据源130可以由工作流125的供应商/创建者/开发者提供。在一个或多个示例中,工作流125包括诸如IP地址的访问位置或供应商数据源130的用于访问与工作流125相关联的信息的任何其它访问信息。在一个或多个示例中,供应商数据源130维护与工作流125的唯一标识符相关联并且还与来自工作流的一个或多个工作流步骤的唯一标识符相关联的信息。与工作流和工作流步骤相关联的数据可以由工作流访问系统120例如使用供应商数据源130提供的应用编程接口(API)在供应商数据源130中特别地标识。应当理解,在其它示例中,除了API之外,可以使用用于访问数据的其它技术。
可替换地或另外地,数据源130包括存储来自工作流执行者105的组织内的"国内信息"的国内数据源,该国内信息是该组织特有的。例如,如果工作流125在诸如SEARSTM的组织中执行,则工作流执行者105可以在一个或多个工作流步骤的执行期间使用诸如雇员号、服务器名、文件名、协议、客户标识数据、供应商标识数据等参数,这些参数是SEARSTM所特有的。该信息可以是不被公开的敏感信息。此外,该信息仅在SEARSTM组织内执行工作流步骤时有用,并且可能在不同的组织中执行该工作流步骤时导致错误(例如工作流故障或不正确的结果)。因此,数据源130可以包括国内信息数据源130,其存储特定于工作流执行者105的组织内的工作流执行的数据。可替换地或另外,该组织可以特定于工作流目标系统110,而不是工作流执行者105。
此外,数据源130包括其他用户数据源130,其是可经由因特网访问的"开放"数据源,并且提供由工作流125的其他用户提供的信息(称为"其他用户信息")。例如,其他用户数据源130可以包括社交媒体服务器(例如,FACEBOOKTM、LINKEDINTM、TWITTERTM等)、其他工作流执行者的博客(例如,WORDPRESSTM等)、论坛或可经由因特网访问的并且促进工作流访问系统120取得与工作流125和/或工作流步骤相关联的信息的任何其它数据源。
工作流执行者105可以指定哪些数据源130用于特定工作流125,并且指示要存储或从数据源130取得的数据的类型。应当注意,上面提供的数据源类型是一些示例,并且在其它示例中可以使用附加的和/或不同的数据源类型。
更新工作流125包括更新工作流步骤中的一个或多个。在一个或多个示例中,工作流访问系统120更新工作流125。在一个或多个示例中,可以响应于来自工作流执行者105的请求来执行更新。工作流访问系统120使用认知学习技术,例如机器学习算法,来更新工作流125。例如,工作流访问系统120使用像神经网络、贝叶斯、聚类、回归、决策树、正则化等或其组合的算法。工作流访问系统120使用可从数据源130获得的更新信息来修订来自工作流125的一个或多个工作流步骤。在一个或多个示例中,工作流访问系统120使用工作流125的标识符和/或工作流步骤的标识符来识别从特定工作流120和/或工作流步骤的数据源可用的更新信息。
此外,工作流访问系统120促进工作流执行者105利用与工作流执行者105执行工作流125相关联的信息来更新数据源130。例如,工作流执行者105基于他/她执行来自工作流125的工作流步骤或执行整个工作流125的经历来提供他/她的更新信息。
因此,工作流执行系统100基于来自数据源130的一个或多个反馈更新信息来更新/修订工作流125。此外,工作流执行系统100促进在完成工作流步骤之后和/或在完成工作流125的执行后利用来自工作流执行者105的反馈更新信息来更新数据源130。工作流执行系统100使用工作流步骤和/或工作流125的唯一标识符来访问、接收和/或更新相应的反馈信息。
图4示出了根据一个或多个实施例的示例系统200。系统200可以是通信装置,例如计算机。例如,系统200可以是台式计算机、平板计算机、膝上型计算机、电话,诸如智能电话、服务器计算机或经由网络265通信的任何其它设备。系统200包括硬件,例如电子电路。在一个或多个示例中,系统200是运行数据采集系统120。
系统200包括处理器205、耦合到存储器控制器215的存储器210、以及经由本地I/O控制器235通信地耦合的一个或多个输入设备245和/或输出设备240,诸如外围或控制设备。这些设备240和245可以包括例如电池传感器、位置传感器、指示器/识别灯等。诸如传统键盘250和鼠标255的输入设备可以耦合到I/O控制器235。I/O控制器235可以是例如一个或多个总线或其它有线或无线连接,如本领域已知的。I/O控制器235可以具有附加元件,为了简单起见省略了这些附加元件,例如控制器、缓冲器(高速缓存)、驱动器、中继器和接收器,以实现通信。
I/O设备240、245还可以包括与输入和输出通信的设备,例如磁盘和磁带存储器、网络接口卡(NIC)或调制器/解调器(用于访问其它文件、设备、系统或网络)、射频(RF)或其它收发器、电话接口、桥接器、路由器等。
处理器205是用于执行硬件指令或软件的硬件设备,特别是那些存储在存储器210中的硬件指令或软件。处理器205可以是定制的或商业上可获得的处理器、中央处理单元(CPU)、与系统200相关联的若干处理器中的辅助处理器、基于半导体的微处理器(以微芯片或芯片组的形式)、宏处理器、或用于执行指令的其它设备。处理器205包括高速缓存270,其可以包括但不限于用于加速可执行指令获取的指令高速缓存、用于加速数据获取和存储的数据高速缓存、以及用于加速可执行指令和数据的虚拟到物理地址转换的转换后备缓冲器(TLB)。高速缓存270可以被组织为更多高速缓存级(L1、L2等)的层次结构。
存储器210可以包括易失性存储器元件(例如,随机存取存储器、RAM,诸如DRAM、SRAM、SDRAM)和非易失性存储器元件(例如,ROM、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁带、光盘只读存储器(CD-ROM)、盘、磁盘、盒式磁带等)中的一个或组合。此外,存储器210可以包括电、磁、光或其它类型的存储介质。注意,存储器210可以具有分布式架构,其中各种组件彼此远离,但是可以由处理器205访问。
存储器210中的指令可以包括一个或多个单独的程序,每个程序包括用于实现逻辑功能的可执行指令的有序列表。在图2的示例中,存储器210中的指令包括合适的操作系统(OS)211。操作系统211本质上可以控制其它计算机程序的执行,并且提供调度、输入-输出控制、文件和数据管理、存储器管理、以及通信控制和相关服务。
附加数据(包括例如用于处理器205的指令或其它可取得信息)可以存储在存储装置220中,存储装置220可以是诸如硬盘驱动器或固态驱动器的存储设备。存储器210或存储装置220中存储的指令可以包括使得处理器能够执行本文描述的系统和方法的一个或多个方面的指令。
系统200还可以包括耦合到用户接口或显示器230的显示控制器225。在一些实施例中,显示器230可以是LCD屏。在其它实施例中,显示器230可以包括多个LED状态灯。在一些实施例中,系统200还可以包括用于耦合到网络265的网络接口260。网络265可以是用于在系统200和外部服务器、客户机等之间经由宽带连接通信的基于IP的网络。在实施例中,网络265可以是卫星网络。网络265在系统200和外部系统之间发送和接收数据。在一些实施例中,网络265可以是由服务供应商管理的受管理IP网络。网络265可以以例如使用无线协议和技术的无线方式实现,诸如WiFi、WiMax、卫星或任何其它无线方式。网络265还可以是分组交换网络,诸如局域网、广域网、城域网、因特网或其它类似类型的网络环境。网络265可以是固定无线网络、无线局域网(LAN)、无线广域网(WAN)、个人区域网(PAN)、虚拟专用网(VPN)、内联网或其它合适的网络系统,并且可以包括用于接收和发送信号的设备。
在一个或多个示例中,图1中描绘的一个或多个组件被实现为系统200。例如,工作流访问系统120、工作流目标系统110、一个或多个数据源130和/或系统100中的任何其它组件可以由系统200实现。系统100有助于实现本文所述的技术方案
在一个或多个示例中,工作流125的唯一标识符,以及还有工作流125中的每个工作流步骤的唯一标识符。在一个或多个示例中,工作流125和工作流步骤还可与更可由人使用的描述性名称相关联。描述性名称可以不是唯一的。在一个或多个示例中,使用工作流125和工作流步骤的唯一标识符的匹配来访问来自数据源130的适当信息。工作流执行者105期望获得的信息是与工作流125以及自从供应商创建并提供工作流125以来社区已创建的每个工作流步骤相关联的附加信息。
工作流访问系统120使用预先配置有工作流125的特定数据源130的访问信息来查找针对工作流步骤和/或工作流125的更新信息。可替换地或另外地,访问信息由工作流执行者105提供。可替换地或另外地,工作流访问系统120包括具有对应访问信息的预配置的数据源的列表。可替换地或另外地,工作流访问系统120例如使用搜索引擎,基于与工作流步骤相关联的关键字和/或工作流步骤的唯一标识符,查找针对工作流步骤的新数据源130。例如,工作流访问系统120执行工作流步骤的自然语言解析,并生成要使用搜索引擎或任何其它搜索系统执行的搜索查询。工作流访问系统120因此便于工作流执行者105从一个或多个数据源130取得针对工作流125和每个工作流步骤可使用的最新信息。
数据源130包括在工作流执行者105的组织中(针对"国内信息")的国内数据存储。国内信息包括由来自与工作流执行者105相同的组织内的一个或多个工作流执行者生成的信息。数据源130还可包括供应商的数据存储,该数据存储可存储由工作流125的供应商直接提供的信息("供应商更新信息")。此外,数据源130可包括"开放"数据存储,其可经由因特网获得,并且例如可经由应用编程接口(API)获得(针对"其他用户信息")。在一个或多个示例中,工作流执行者105指定哪些数据源将被用于特定工作流125和/或特定工作流步骤,并且指示其将存储或取得的数据的种类(国内信息、供应商更新信息等)。
工作流访问系统120在工作流执行者105执行工作流125时的某些时间点请求对工作流125和工作流步骤的更新。在一个或多个示例中,工作流执行者105必须指示对该更新的同意。作为响应,工作流访问系统120发起与适当的一个或多个数据源130的通信,以使用唯一标识符来取得针对工作流125的更新信息。将取得的更新信息与工作流125结合以在运行时修订工作流125。在一个或多个示例中,所结合的更新信息由从其取得信息的数据源130来识别。
在一个或多个示例中,当完成工作流步骤的执行时,工作流访问系统120将更新的信息推送回到适当的数据源130。对应于所生成的正确类型的数据来推送更新的信息数据。例如,特定于工作流执行者的组织的私有数据被发送到数据源130以用于"国内信息"。此外,将期望在"其他用户信息"中发布的更新信息被推送到其它数据源130。此外,期望发送回供应商的信息被发送到与工作流设计者(ISV)相关联的数据源130,以用于"供应商更新信息"。在一个或多个示例中,数据源130包含可用于使用的数据源130的列表,其中工作流访问系统120对来自该列表的数据源130执行查找以识别特定类型的数据源(国内、供应商等)。
图5描绘了根据一个或多个实施例的用于在运行时更新工作流的示例方法的流程图。该方法可以使用系统100来实现。如510所示,该方法包括选择工作流125以便由工作流执行者105经由工作流访问系统120执行。在一个或多个示例中,响应于接收到用于执行工作流125的通知或响应于接收到工作流125本身来执行选择。在一个或多个示例中,工作流125选自多个工作流。工作流由供应商提供给工作流执行者105,或者工作流执行者105可以由他/她自己写入。
在一个或多个示例中,工作流125包括用于各种类型的数据(国内、供应商更新、其他用户信息)的一个或多个数据源130。数据源130可由创建工作流125的供应商和/或工作流执行者105在工作流125中识别。可替换地或另外地,工作流125还可以指示工作流访问系统120执行查找动作,以搜索要用于发现关于工作流125的更新和/或附加信息的数据源130。
如515所示,方法还包括由工作流执行者105检查是否更新工作流125。如果工作流执行者105发起更新,则方法包括从一个或多个数据源中拉取针对工作流125的信息,如520所示。该信息包括针对工作流125的更新信息和附加信息,其可以促进工作流执行者105确定是否继续工作流125的执行。
从数据源130拉取信息包括选择数据源130并检查针对工作流125的更新信息是否在数据源130处可用,如522和524所示。例如,方法包括检测自从从供应商接收(或创建)工作流125以来工作流125是否已被更新。可替换地或附加地,该方法包括检测其他用户或供应商是否已经向一个或多个数据源添加了相关信息。该检测包括使用工作流125的唯一标识符来检查一个或多个数据源130。数据源130根据唯一标识符(例如由唯一标识符索引的)来维护更新的信息。
一个或多个数据源130可以包括由工作流125识别的预定数据源集130。例如,要检查的预定数据源130可包括供应商数据源,用于从创建工作流125以来供应商可能已为工作流125提供的更新。还可以检查任何其它数据源,诸如国内信息数据源、社交媒体数据源等。可以顺序地和/或并行地检查数据源130。在一个或多个示例中,响应于工作流125被选择用于执行(该执行可以在稍后当工作流125被创建并由供应商提供时进行)而进行检查。
如果更新的信息可用,则方法包括从一个或多个数据源130取得更新的信息,如526所示。如525所示,将更新的信息与工作流125结合。工作流125因此被更新。例如,该结合可以包括从工作流125添加和/或移除一个或多个工作流步骤。可替换地或另外地,更新可以包括修改来自工作流125的一个或多个工作流步骤。例如,修订可以包括工作流步骤中使用的参数值的改变,诸如文件的路径名、文件名、要使用的数值、要执行的脚本、要使用的脚本文件、要执行的数据库查询、应用编程接口调用、版本号、或工作流步骤指定的任何其它动作。
该方法还包括通过从工作流125中选择工作流步骤来开始执行工作流125,如530所示。无论是否具有前述的工作流更新,工作流步骤执行开始。
在执行工作流步骤之前,方法还包括确定是否要更新工作流步骤,如535所示。例如,自从较早的初步更新(515)以来,可能已经在任何数据源130中对工作流步骤进行了更新。可替换地或另外地,与工作流步骤的执行相关的数据可以在数据源130上可用。例如,附加数据可以包括添加在供应商数据源、国内信息数据源、社交媒体数据源或任何其它数据源130中的信息。附加数据指示工作流执行者105可读取和/或分析以确定是否继续执行工作流步骤的信息。
如535所示,查询工作流执行者105是否拉取了针对工作流步骤的该更新的信息。在一个或多个示例中,仅当工作流步骤被标记以由工作流执行者105检查是否发起更新时,才执行该检查。如果不存在该标记,则不查询工作流执行者105拉取更新的信息。
如果工作流执行者105发起对工作流步骤的更新,则方法包括从一个或多个数据源130中拉取针对工作流步骤的更新信息,如540所示。拉取更新的信息包括从与工作流125相关联的一个或多个预定数据源130中选择数据源130,如522所示。在一个或多个示例中,与工作流步骤相关联的数据源130可以不同于在方法(515)的开始处与更新工作流125相关联的数据源。此外,拉出更新的信息包括检查在所选数据源中是否有针对该工作流步骤的更新的信息可用,如524所示。在一个或多个示例中,使用工作流步骤标识符来识别与工作流步骤相关联的更新信息。在一个或多个示例中,数据源130基于与工作流步骤相关联的标识符来维护针对工作流步骤的更新信息,例如根据工作流步骤标识符来索引。在一个或多个示例中,工作流执行者105仅在满足两个条件时才执行工作流步骤,更新的信息来自受信的数据源并且由工作流供应商107推荐。
取得与工作流步骤相关联的更新信息,如526所示。如545所示,将取得的信息与工作流步骤结合。更新的信息可以包括对工作流步骤的修订。可替换地或另外地,更新的信息可以包括工作流执行者105可以读取/分析以确定是否继续工作流步骤的执行的数据。
如果工作流执行者105确定继续执行,则方法包括执行工作流步骤,并由此影响工作流目标系统110中的改变,如550所示。该改变可以包括如本文所述的硬件配置改变和/或软件配置改变。可替换地,工作流执行者105可以基于从一个或多个数据源130接收的更新信息来确定结束工作流执行,如570所示。
在一个或多个示例中,无论是否执行工作流步骤,工作流执行者105都可以将更新的信息推送到数据源130,如555所示。例如,如果工作流执行者105确定不继续执行工作流步骤,则工作流执行者105可以在数据源130中进行该指示。在一个或多个示例中,数据源130可以维护工作流步骤已经被执行的次数的计数,并且由工作流执行者105推送的该信息促进维护该计数。例如,供应商数据源可以维护该信息。可替换地或另外,任何其它数据源130可以维护该信息。另外,工作流执行者105可以上传或推送导致他/她决定中止/继续执行工作流步骤的信息,诸如安全性考虑、兼容性考虑、或工作流步骤为什么完成/未完成的任何其它原因。可替换地或另外地,工作流执行者105可以推送指示工作流步骤的执行的容易性的信息,诸如使用预定标度(诸如星的数量等)的评级。根据正在执行的工作流步骤的标识符,将所推送的信息存储到数据源130中。
当工作流执行者105执行工作流步骤时,她/他可以添加关于工作流步骤的信息,然后当工作流步骤完成执行后,将该信息发送到数据源130。例如,工作流执行者105可以提供注释、提示,或者甚至提供用于执行工作流步骤的工具,诸如为工作流步骤开发的脚本。可替换地或另外,工作流执行者105可以提供要执行的修改后的代码(编程指令)来代替最初在工作流步骤中的代码。可替换地或另外地,工作流执行者105可以提供要在执行工作流步骤之前执行的预操作或之后执行的后操作。可替换地或另外,工作流执行者可以描述在工作流目标系统110上执行工作流步骤的副作用。以上是一系列示例,并且在其它示例中,工作流执行者105可以提供关于工作流步骤的执行的附加细节。
如果工作流执行者105确定将关于工作流步骤的信息推送到数据源,则工作流访问系统120累积该信息并将信息推送到数据源,如560所示。累积数据包括确定与工作流目标系统110相关联的一个或多个参数,例如序列号、版本号、特定配置参数(例如操作系统、路径名)等,其提供关于工作流步骤的执行的上下文信息。可替换地或另外地,累积包括收集与工作流执行者105相关联的数据,诸如用户名、雇员ID、组织角色、组织权限等,以提供关于工作流步骤的执行的上下文信息。此外,该累积包括收集与执行该执行相关联的数据,诸如执行工作流步骤的持续时间、执行开始和/或结束的时间、从数据源130更新工作流步骤的次数、由工作流执行者105例如在预定软件应用(诸如ONENOTETM等)中采集的记录。在一个或多个示例中,累积还包括请求工作流执行者105诸如基于执行的容易度、执行时间、工作流步骤满足执行的结果等来对工作流步骤的执行进行评级。
将累积的信息推送到数据源130包括选择要推送到的一个或多个数据源130,如562所示。数据源130可以由工作流执行者105预先选择。可替换地或另外地,工作流访问系统120基于被推送数据的类型选择要被推送的数据源130。例如,如果被推送的数据是工作流步骤的评级,则数据可被推送到供应商数据源130。可替换地或另外,如果使用特定于工作流执行者105的环境的设置来执行工作流步骤,则可以将数据推送到国内数据源130。此外,可以询问工作流执行者105是否要在组织外部发布数据,诸如向供应商数据源或诸如社交媒体数据源的其它用户数据源发布数据。在一个或多个示例中,如果数据被推送到组织之外,工作流访问系统120解析数据并从被推送的数据中去除任何组织特定信息,诸如文件名、用户名、密码、路径名、雇员姓名、雇员编号、序列号等。在一个或多个示例中,当将数据推送到国内信息数据源130中时,维护或甚至添加该组织特定信息。
工作流访问系统120将数据连同工作流步骤唯一标识符一起推送到数据源130,以便容易搜索和识别与工作流步骤相关联的数据,如564所示。在一个或多个示例中,利用工作流标识符进一步标记被推送的数据。
在工作流步骤执行完成后,方法包括确定是否完成工作流执行或者是否还有其它工作流步骤要执行,如570所示。如果还有其余额外的工作流步骤,则方法针对下一工作流步骤进行迭代操作,直到完成整个工作流执行。如果整个工作流执行完成,则方法包括由工作流执行者105检查与整个工作流的执行相关联的数据是否要被推送到数据源130,如575所示。如果工作流执行者105决定不推送任何信息,则该方法完成。
如果数据要被推送到数据源130,则工作流访问系统120累积要被推送到一个或多个数据源130的数据并将其推送到该一个或多个数据源,如580所示。累积数据包括确定与工作流目标系统110相关联的一个或多个参数,诸如序列号、版本号、特定配置参数(诸如操作系统、路径名)等,其提供关于工作流125的执行的上下文信息。作为替换或补充,累积包括收集与工作流执行者105相关联的数据,诸如用户名、雇员ID、组织角色、组织许可等,以提供关于工作流125的执行的上下文信息。此外,该累积包括收集与进行该执行相关联的数据,诸如执行工作流125的持续时间、开始和/或结束执行的日期时间、工作流125从数据源130更新的次数、由工作流执行者105例如在预定软件应用(诸如ONENOTETM等)中采集的记录。此外,累积包括收集工作流特定信息,诸如工作流版本、供应商信息、执行了哪些工作流步骤中的以及跳过了哪些工作流步骤等。在一个或多个示例中,累积还包括请求工作流执行者105对工作流125的执行进行评级,诸如基于执行的容易度、执行时间、工作流步骤满足执行的结果等。工作流访问系统120将数据连同工作流唯一标识符一起推送到数据源130,以便容易搜索和识别与工作流相关联的数据,如580所示。
因此,数据源130现在存储针对工作流125和工作流步骤的更新信息,其可在第二工作流执行者使用唯一标识符请求时取得。第二工作流执行者因此可以在执行工作流125时使用由工作流执行者105提供的信息来做出明智的决定。所存储的信息的细节基于工作流执行者105选择推送什么以及已经找到什么(例如:从社交媒体源等)而变化。
因此,本文描述的技术方案促进工作流执行者105在执行工作流时具有最新版本的工作流步骤。此外,工作流执行者105从发起工作流步骤的执行之前接收关于工作流步骤的最新信息。此外,该技术方案便于工作流执行者更新与工作流步骤相关联的数据源,以便下一工作流执行者在执行工作流步骤时具有最新版本/数据。
从数据源130接收更新的信息并更新工作流125的技术挑战包括当修改工作流125和/或从数据源130取得数据时确保计算机安全性的挑战。本文描述的技术方案通过提供安全特征以管理工作流125的修改和/或取得不使工作流访问系统120的安全性恶化的更新信息,并且确保该修改和更新信息被跟踪如仅由受信的数据源所提供的,来进一步解决该技术挑战。根据一个或多个实施例,本文描述的技术方案便于在使用系统100时利用针对工作流执行者105的附加安全防范和增强来执行机器辅助工作流125。
例如,在他/她请求具有与工作流125相关联的最新信息时,工作流执行者105可以从一个或多个数据源130取得信息,并且增加取得的信息可能不准确的机会,例如,该信息可能不应用于工作流执行者105,导致不正确的结果。可替换地或另外地,当使用取得到的数据执行工作流步骤时,取得的数据可能对工作流执行者105有害,例如,由于病毒、木马、恶意软件或其它类型的数据安全问题。这里描述的技术方案有助于在基于取得的信息来取得和执行工作流步骤时向工作流执行者105提供验证。例如,该确认向工作流执行者105确保该步骤不仅是必需的,而且还由工作流供应商或可信的用户列表的成员验证为执行安全。可替换地或另外地,验证向工作流执行者105提供了以下指示:利用所取得的数据执行工作流步骤增强了在完成工作流步骤后正在运行的工作流目标系统110的安全性。
在一个或多个示例中,当访问与工作流125和/或工作流步骤相关联的更新信息时,供应商数据源130向工作流执行者105提供一个或多个通知。通知指示供应商更新信息是否与工作流目标系统110的安全增强特征相关。例如,更新的信息被标记为推荐给工作流执行者105。因此,当工作流执行者105从供应商数据源130接收更新信息时,她/他被告知更新信息是供应商推荐的,并且是经测试的,从而便于工作流执行者信任更新信息以便取得并与工作流125结合。
此外,在一个或多个示例中,如本文所述,工作流访问系统120可以基于由工作流执行者105提供的数据源,从除了供应商数据源130之外的数据源找到针对工作流125的更新信息。例如,工作流执行者105可以添加一个或多个其它数据源,诸如社交媒体服务器、博客、论坛和用于发现与工作流相关联的最新更新信息的其它此类数据引擎。工作流访问系统120可以使用此类其它数据源来存储和取得针对工作流125和工作流步骤的最新更新信息。在一个或多个示例中,例如经由供应商数据源130向工作流供应商提供该数据源的标识。供应商数据源130将其它数据源与由供应商维护的受信任数据源的列表进行比较。工作流访问系统120基于供应商数据源的受信任数据源的列表,将来自其它数据源的可用更新信息标记为可信或不可信,从而便于工作流执行者决定是否取得可用的更新信息和/或将可用的更新信息与工作流125结合。因此,本文描述的技术方案为了分析和安全目的而提供可信的数据挖掘引擎列表。本文描述的技术方案,利用使用可信的数据源的安全性的增强,促进工作流执行者105通过提供关于刚从"其他用户"数据源导入的工作流步骤是否准确且安全执行的信息来确定是否执行工作流步骤。此外,本文描述的技术方案促进工作流执行者105确定工作流步骤是否是工作流供应商推荐要执行的,以使工作流目标系统110尽可能安全。
图6描绘了根据一个或多个实施例的用于使用具有增强的安全性的认知学习来执行工作流的示例方法的流程图。该方法可以由本文描述的工作流执行系统100或任何其它工作流执行来实现。该方法包括选择工作流125以便由工作流执行者105经由工作流访问系统120执行,如610所示。在一个或多个示例中,响应于接收到用于执行工作流125的通知或响应于接收到工作流125本身来执行选择。在一个或多个示例中,工作流125是从多个工作流中选择的。工作流由供应商提供给工作流执行者105,或者工作流执行者105可以由他/她自己写入。
在一个或多个示例中,工作流125包括用于各种类型的数据(国内、供应商更新、其他用户信息)的一个或多个数据源130。数据源130可由创建工作流125的供应商和/或工作流执行者105在工作流125中识别。可替换地或另外地,数据源130可以由执行工作流125的工作流执行者105在工作流125中识别。可替换地或另外,工作流125还可以指示工作流访问系统120执行查找动作,以搜索要用于发现关于工作流125的更新和/或附加信息的数据源130。
方法还包括由工作流执行者105检查是否更新工作流125,如615所示。如果工作流执行者105发起更新,则方法包括从一个或多个数据源中拉取针对工作流125的信息,如620所示。该信息包括针对工作流125的更新信息和附加信息,其可以促进工作流执行者105确定是否继续执行工作流125。从数据源拉取更新信息包括本文描述的一个或多个操作(见图5)。
方法还包括验证可从一个或多个数据源130获得的更新信息,如622所示。该验证包括确定从中取得更新信息的数据源是否是受信的数据源,如624所示。例如,如果工作流执行者105将数据源标记为可信,则该数据源被认为是受信的数据源。可替换地或者另外地,数据源的标识(例如IP地址、服务器名称、与数据源相关联的证书、或者数据源的任何其它标识信息)例如经由供应商数据源130被发送到工作流供应商。在一个或多个示例中,工作流访问系统120将数据源标识信息连同工作流标识符一起发送给工作流供应商。工作流供应商关于正被执行的工作流125来验证数据源是否是受信任的数据源。在一个或多个示例中,验证可以包括确定数据源标识是否是由工作流供应商维护的受信任数据源列表的一部分,例如,作为工作流125的授权供应商或供应商的一部分。例如,受信任的数据源可以维护工作流供应商创建并仅提供给受信任数据源的认证证书。认证证书可以使用当前可用或以后开发的任何认证协议。应当注意,使用认证证书来确定数据源的有效性仅是一个示例,并且在一个或多个示例中,附加的或不同形式的验证可用于认证数据源。
一旦数据源已由工作流执行者105或由工作流供应商107认证,则验证还包括确定已更新的信息是否是工作流供应商107为工作流125推荐的,如626所示。在一个或多个示例中,工作流供应商107例如使用与由数据源130维护的数据相关联的推荐标志,将更新的信息标记为针对工作流125的推荐的信息。如果更新的信息尚未被工作流供应商107分析,或者如果更新的信息没有被工作流供应商107推荐,则推荐标志指示未推荐状态。
方法还包括由工作流执行者105接收和分析验证结果,并且如果工作流执行者105允许该更新,则使用来自数据源的更新信息来更新工作流125,如625所示。例如,如果验证结果指示提供更新的信息的数据源不是受信任的源,则工作流执行者105可以防止将更新的信息与工作流125结合,并且继续现有工作流125而不进行更新。或者,即使数据源不是受信任源,工作流执行者105也可允许该结合。此外,如果验证结果指示更新的信息不包含关于工作流125的推荐更新或推荐信息,则工作流执行者105可以防止与工作流125结合。或者,尽管更新的信息不是推荐的更新/数据,工作流执行者105也可继续工作流125的结合和修改。
该方法还包括通过从工作流125中选择工作流步骤来开始执行工作流125,如630处所示。无论是否有前述的工作流更新,工作流步骤执行开始。
在执行工作流步骤之前,该方法还包括确定是否要更新工作流步骤,如635所示。例如,自从较早的初步更新(615)以来,工作流步骤可能已经在任何数据源130中进行了更新。可替换地或另外,与工作流步骤的执行相关的数据可以在数据源130上可用。例如,附加数据可以包括添加在供应商数据源、国内信息数据源、社交媒体数据源或任何其它数据源130中的信息。附加数据指示工作流执行者105可读取和/或分析以确定是否继续执行工作流步骤的信息。
如635所示,查询工作流执行者105是否拉取了针对工作流步骤的该更新信息。在一个或多个示例中,仅当工作流步骤被标记以由工作流执行者105检查是否在执行之前发起更新时,执行该检查。如果不存在该标记,则不查询工作流执行者105用于拉取更新的信息。如果工作流执行者105发起对工作流步骤的更新,则该方法包括从一个或多个数据源130中拉取工作流步骤的更新信息,如640所示。拉取针对工作流步骤的更新信息包括如本文所述的一个或多个操作(例如,参见515)。
此外,为了增强的安全性,该方法包括验证可从一个或多个数据源130获得的更新信息,如本文所述,并且如622处所示。此外,基于验证结果,该方法包括如果执行者允许,则使用取得的信息更新工作流步骤,如645所示。例如,如果验证结果指示提供更新的信息的数据源不是受信任的源,则工作流执行者105可以防止将更新的信息与工作流步骤结合,并且继续现有工作流步骤而不进行更新。可替代地,即使数据源不是受信任的源,工作流执行者105也可以允许结合。此外,如果验证结果指示更新的信息不包含推荐的更新或推荐的关于工作流步骤的信息,则工作流执行者105可以防止与工作流步骤结合。可替代地,即使更新的信息不是推荐的更新/数据,工作流执行者105也可以继续工作流步骤的结合和修改。在一个或多个示例中,工作流执行者105仅在两个条件均满足时才执行工作流步骤,更新的信息来自可信的数据源并且是由工作流供应商107推荐的。
如果工作流执行者105确定继续执行,则方法包括执行工作流步骤,并由此影响工作流目标系统110中的改变,如650所示。该改变可以包括如本文所述的硬件配置改变和/或软件配置改变。可替代地,工作流执行者105可以基于从一个或多个数据源130接收的更新信息来确定结束工作流执行,如670所示。
在一个或多个示例中,无论是否执行了工作流步骤,工作流执行者105都可将更新的信息推送到数据源130,如655所示。例如,如果工作流执行者105确定不继续执行工作流步骤,则工作流执行者105可以在数据源130中进行该指示。工作流执行者105可以如本文所述决定要推送什么信息。
如果工作流执行者105确定将关于工作流步骤的信息推送到数据源,则工作流访问系统120将该信息累积到数据源,如本文所述,并且如660所示。将累积的信息推送到数据源130包括验证要推送到的一个或多个数据源130,如665所示。验证数据要被推送到的数据源可如本文所述地执行,并如622所示。在一个或多个示例中,数据被推送到的数据源可以不同于数据被从其拉出的数据源。例如,数据可以从供应商数据源拉取,而由于组织敏感数据的存在使数据仅推送到国内信息数据源。
工作流访问系统120将数据连同工作流步骤唯一标识符一起推送到数据源130,以便容易地搜索和识别与工作流步骤相关联的数据。在一个或多个示例中,利用工作流标识符进一步标记被推送的数据。
在完成工作流步骤执行后,方法包括确定是否完成工作流执行或者是否还有其它工作流步骤要执行,如670所示。如果剩余额外的工作流步骤,则该方法针对下一工作流步骤进行迭代操作,直到完成整个工作流执行。如果整个工作流执行完成,则该方法包括由工作流执行者105检查是否要将与整个工作流的执行相关联的数据推送到数据源130,如675所示。如果工作流执行者105决定不推送任何信息,则该方法完成。
如果数据要被推送到数据源130,则工作流访问系统120积累要被推送到一个或多个数据源130的数据,如本文所述,并且如680所示。将所累积的信息推送到数据源130包括验证要推送到的一个或多个数据源130,如685所示。验证数据要被推送到的数据源可如本文所述地执行,以及如622所示。在一个或多个示例中,数据被推送到的数据源可以不同于数据被从其拉出的数据源。例如,数据可以从供应商数据源拉取,而由于组织敏感数据的存在使数据仅被推送到国内信息数据源。工作流访问系统120将数据连同工作流唯一标识符一起推送到数据源130,以便容易地搜索和识别与工作流125相关联的数据。
因此,数据源130现在存储当第二工作流执行者使用唯一标识符请求时可以取得的针对工作流125和工作流步骤的更新信息。因此,第二工作流执行者可以在执行工作流125时使用从可信的数据源取得的、由工作流执行者105提供的信息来做出明智的决定。所存储的信息的细节基于工作流执行者105选择推送什么以及已经找到什么(例如:从社交媒体源等)而变化。因此,本文描述的技术方案促进工作流执行者105在执行工作流时具有最新版本的工作流步骤,更新版本和关联信息是从可信的数据源取得的,并且是如工作流供应商所推荐的。
此外,动态修改工作流125和与工作流125相关联的信息的技术挑战是识别与更新工作流125的原因相关的供应商更新信息,并且使得工作流执行者105能够做出是否运行工作流125的明智决策,以及进一步使得工作流访问系统120能够自动取得和存储关于工作流125的认知推理(reasoning)信息。例如,工作流执行者105可以考虑从工作流125更新和运行工作流步骤。在一个或多个示例中,工作流执行者105必须确定是否应当取得更新的信息和/或是否要在他/她的环境中执行工作流步骤。例如,工作流步骤的更新和/或执行可能不利地影响工作流目标系统110上的整个工作流125,或者根本没有影响。这甚至可能是更重要的问题,尤其是对于在比一些其它行业对数据更敏感的诸如银行、政府、卫生保健行业等环境中运行企业软件的工作流执行者而言。
本文描述的技术方案通过提供机器辅助的推理来解决该技术挑战,作为对工作流执行系统100的进一步增强。在一个或多个示例中,机器辅助的工作流125为工作流执行者105提供附加认知推理增强以确定是否执行(或跳过执行)工作流125和/或任何工作流步骤。推理/验证促进工作流执行者105指示工作流步骤对于整个工作流125在其环境中的成功是否是必须的,并且进一步向工作流执行者105提供为什么如此的一个或多个原因。此外,在根据推理信息更新后,工作流125可以与工作流供应商107共享,使得同一工作流125的其它工作流执行者可以确定是否运行该工作流步骤。因此,检查认知推理信息的工作流执行者具有关于为什么在其环境中运行工作流步骤的原因的最新更新信息。
工作流访问系统120为了提供关于是否更新工作流步骤和/或执行工作流步骤的推理,而识别与更新以及进而在工作流目标系统110上执行工作流步骤的原因相关的供应商更新信息。另外,工作流访问系统120在工作流执行者105执行工作流步骤时记录该推理相关数据,该记录的数据被提供给执行工作流步骤的下一工作流执行者,以帮助下一工作流执行者做出是否实际执行工作流步骤的明智决定。因此,工作流执行者105在决定是修改还是执行工作流步骤之前,除了接收更新本身之外,还接收可用的最新认知推理信息,以便做出关于是否更新和/或执行工作流目标系统110上的下一步骤的知情的决定。此外,工作流执行者105还可以通过在完成/跳过工作流步骤的执行之后将他/她自己的推理相关信息推送到数据源130来修饰推理信息。
图7描绘了根据一个或多个实施例的用于使用提供认知推理的认知学习来执行工作流的示例方法的流程图。该方法可以由本文描述的工作流执行系统100或任何其它工作流执行来实现。该方法包括选择工作流125以便由工作流执行者105经由工作流访问系统120执行,如710所示。在一个或多个示例中,该选择响应于接收到用于执行工作流125的通知或响应于接收到工作流125本身来执行。在一个或多个示例中,工作流125是从多个工作流选出的。工作流由供应商提供给工作流执行者105,或者工作流执行者105可以由他/她自己写入。
方法还包括由工作流执行者105检查是否要更新工作流125,如715所示。如果工作流执行者105发起更新,则方法包括从一个或多个数据源拉取工作流125的信息,如720所示。该信息包括工作流125的更新信息和附加信息,其可以促进工作流执行者105确定是否继续工作流125的执行。从数据源拉取更新信息包括本文描述的一个或多个操作(见图5)。更新可以包括验证数据源(参见图6)。如本文所述,并且如725处所示,使用从数据源130拉取出的更新信息来更新工作流125。
该方法还包括通过从工作流125中选择工作流步骤来开始执行工作流125,如730所示。无论是否具有前述的工作流更新,工作流步骤执行开始。在执行工作流步骤之前,方法还包括确定是否要更新工作流步骤,如735所示。例如,自从先前的初步更新(715)以来,可能已经在任何数据源130中对工作流步骤进行了更新。可替换地或另外,与工作流步骤的执行相关的数据可以在数据源130上可用。例如,附加数据可以包括添加在供应商数据源、国内信息数据源、社交媒体数据源或任何其它数据源130中的信息。附加数据指示工作流执行者105可读取和/或分析以确定是否继续执行工作流步骤的信息。
如果工作流执行者105发起对工作流步骤的更新,则该方法包括从一个或多个数据源130拉取并更新工作流步骤,如740所示。拉取针对工作流步骤的更新信息并更新工作流步骤包括如本文所述的一个或多个操作(例如,见图5)。在一个或多个示例中,可以执行数据源验证,如本文所述。既然工作流执行者105知道工作流步骤已经被更新,则向工作流执行者提供描述为什么他/她应当在工作流目标系统110中运行该特定工作流步骤的推理信息,如750所示。
提供推理信息包括从一个或多个数据源130中识别来自与工作流步骤相关联的更新信息的认知推理信息,如752所示。在一个或多个示例中,推理信息可以从与从其取得工作流步骤的更新的数据源不同的数据源中识别。在一个或多个示例中,基于包括指示数据是推理相关数据的标识标签的数据源130,以及进一步地,数据与工作流步骤的唯一标识符相关联,来识别推理信息。例如,数据可以包括标签,诸如"执行推理",以促进工作流访问系统120有效地确定与推理相关的数据。此外,推理信息可以通过在句法和语义上解析来自数据源130的数据来识别。例如,工作流访问系统120可以使用诸如人工神经网络等的机器学习算法来确定来自数据源130的提供推理相关信息的更新信息的片段。在一个或多个示例中,工作流访问系统120可以使用诸如来自的IBM的API或任何其它此类服务,以根据数据源130上可用的更新信息来确定用于工作流步骤的推理相关信息。IBM和IBM Watson IBM是国际商业机器公司在全世界的许多管辖区注册的商标。
此外,提供推理信息包括由工作流访问系统120生成用户界面(UI)元素,并显示来自数据源130的推理相关信息的一个或多个片段,如754所示。在一个或多个示例中,在被呈现给工作流执行者105的工作流步骤的一侧生成UI元素。可替换地或另外地,UI元素以任何其它方式生成,诸如作为弹出窗口、覆盖窗口等。在一个或多个示例中,UI元素包括工作流供应商107是否推荐执行该工作流的指示。此外,在一个或多个示例中,对提供给工作流执行者105的推理信息进行过滤,以便只有由其它工作流执行者使用与工作流执行者105基本相同的工作流目标系统环境(例如,版本、操作系统等)提供的推理信息。
推理信息还可以包括关于工作流执行者105为什么想要跳过执行工作流步骤的原因。例如,推理信息可以包括指示其它工作流执行者在执行工作流步骤后所面对的技术问题的信息。
此外,推理信息可以包括基于时间信息的原因。例如,工作流访问系统120确定执行工作流步骤的平均时间是X分钟,使得工作流目标系统110在该时间期间不可使用。当前执行工作流步骤可能导致工作流目标系统110将在多个用户使用工作流目标系统110时的高业务时间期间不可使用。工作流访问系统120基于工作流目标系统110的历史执行数据确定工作流目标系统110的高业务时间。因此,工作流访问系统120向工作流执行者105提供推理信息,以在稍后的时间以与高业务时间具有最小重叠的所推荐的时间来执行工作流步骤。
向工作流执行者105提供推理信息还包括经由UI元素呈现信息,如756所示。基于推理信息,工作流执行者105可以执行或不执行该工作流步骤,如745所示。工作流执行者可以执行工作流步骤,从而实现工作流目标系统110中的改变,如748所示。该改变可以包括如本文所述的硬件配置改变和/或软件配置改变。可替换地,工作流执行者105可以基于推理信息确定跳过工作流步骤,如745所示。
在一个或多个示例中,无论是否执行工作流步骤,工作流执行者105都可以将更新的信息推送到数据源130,如755所示。例如,如果工作流执行者105确定不继续执行工作流步骤,则工作流执行者105可以在数据源130中进行该指示。工作流执行者105可以决定将要推送什么信息,如本文所述。
如果工作流执行者105确定将关于工作流步骤的信息推送到数据源,则工作流访问系统120累积要推送到数据源130的信息,如本文所述,并如760所示。所累积的信息还包括来自工作流执行者105的他/她为什么跳过/进行该执行的推理,例如,涉及工作流步骤执行所需要的一个或多个资源的不可用性/可用性,诸如存储器消耗量、停机时间量、带宽要求或任何其它资源或其组合。可替代地或另外,推理信息可以包括工作流的执行的难度/容易度,诸如工作流的描述是容易的/复杂的、比预定的步骤数量更短/更长、工作流步骤的评级低于/高于预定阈值等。
在一个或多个示例中,工作流访问系统120使用预定推理标签来标记由工作流执行者105提供的推理信息。此外,工作流访问系统120将信息连同工作流步骤唯一标识符一起推送到一个或多个数据源130,如765处所示。在一个或多个示例中,将累积的信息推送到数据源130包括验证要推送到的一个或多个数据源130。在一个或多个示例中,利用工作流标识符进一步标记被推送的数据。
在完成工作流步骤执行后,方法包括确定工作流执行是否完成或者是否还有其它工作流步骤要执行,如770所示。如果还有额外的工作流步骤,则方法针对下一工作流步骤进行迭代操作,直到整个工作流执行完成。如果整个工作流执行完成,则方法包括由工作流执行者105检查是否要将与整个工作流的执行相关联的数据推送到数据源130,如775所示。如果工作流执行者105决定不推送任何信息,则方法完成。
如果数据要被推送到数据源130,则工作流访问系统120累积要被推送到一个或多个数据源130的数据,如本文所述,并且如780所示。所累积的信息可以包括用于整个工作流125的推理信息。工作流访问系统120还将所累积的信息推送到数据源130,如785所示。工作流访问系统120将数据连同工作流唯一标识符一起推送到数据源130,以便容易地搜索和识别与工作流125相关联的数据。
因此,数据源130现在存储当由第二工作流执行者使用唯一标识符请求时可以取得的针对工作流125和工作流步骤的更新的推理信息。第二工作流执行者因此可以在执行工作流125时使用从数据源130取得的、由工作流执行者105提供的信息来做出明智的决定。因此,本文描述的技术方案促进工作流执行者105在执行工作流时具有最新版本的工作流步骤,更新版本和关联信息从可信的数据源取得,并且还有促进工作流执行者105决定是否执行工作流步骤的推理信息。
此外,执行诸如工作流125的机器辅助的工作流的技术挑战在于,考虑更新并进而运行工作流步骤的工作流执行者105不知道他/她是否具有用于完成工作流步骤的执行的信息和/或参数设置。此外,工作流执行者105不知道执行工作流步骤是否将不利地影响工作流目标系统110上的整个工作流,或者如果工作流结果将完全没有效果的话,则使执行工作流的时间和工作量是无效的,特别是如果工作流步骤和/或工作流涉及工作流目标系统110的显著的停机时间的情况。这对于工作流执行者来说是重要的问题,尤其是在诸如银行、政府、保健等环境(在该环境中避免系统停机时间是重要的)中运行企业软件的工作流执行者。
例如,工作流执行者105希望在执行步骤之前具有最新且最多的信息,并且这里描述的工作流执行系统100促进工作流执行者105具有直到工作流执行者105发起工作流步骤的执行之前在数据源130中累积的最新附加信息。然而,使用该最新信息可能增加其可能不应用于工作流执行者105的机会,或者可能对工作流执行者105是不必要的或有害的。
这里描述的技术方案通过增强工作流执行系统100以提供后步骤浏览能力或预览功能来解决该技术挑战,工作流执行者105可使用该后步骤浏览能力或预览功能来确定更新的信息是否以任何方式影响其工作流目标系统110以及如何以任何方式影响其工作流目标系统110。此外,工作流预览以及执行工作流步骤之后的实际结果可以与工作流供应商107以及同一工作流125的其他用户共享,以帮助其他用户决定是否运行工作流步骤。查看这种认知预览信息的用户因此具有关于是否要在其环境中运行工作流步骤的最新更新的信息,并且可以为其他人贡献和改进步骤预览。
在一个或多个示例中,提供对工作流目标系统110的执行的工作流步骤预览的供应商更新信息由工作流访问系统120识别和记录。将该预览信息提供给执行工作流的工作流执行者105,从而提供更新的信息以帮助工作流执行者105做出是否要在工作流目标系统110上实际执行工作流步骤的明智的决定。在一个或多个示例中,工作流访问系统120监测被推送到一个或多个数据源130的更新的信息以标识预览信息。
预览信息可以包括诸如执行工作流步骤所需的资源的信息,例如时间量、通信带宽、存储器量、存储磁盘空间量、人数、一个或多个特定文件、一个或多个特定工具(螺丝刀等)、一个或多个特定硬件组件等。此外,预览信息可以包括诸如在执行工作流步骤之前或期间要进行的参数设置的信息,例如注册表设置、帐户许可设置等。预览信息可以是电子文本或图像的形式,例如,从工作流步骤执行的一个或多个任务的屏幕截图。在一个或多个示例中,预览信息包括描绘正被执行的工作流步骤的每个操作的一组屏幕截图(或图像)。工作流访问系统120在工作流步骤被执行时采集屏幕截图,并且在工作流步骤执行完成之后将采集的屏幕截图推送到数据源130。所采集的屏幕截图连同工作流步骤和工作流125的唯一标识符一起被标记为预览信息以供高效访问。
可替代地或另外,工作流访问系统120生成工作流步骤执行的虚拟仿真。在一个或多个示例中,工作流访问系统120使用来自从数据源取得的更新信息的一个或多个参数来执行工作流目标系统120的虚拟机副本。工作流执行者105可以预览虚拟机中的工作流步骤的结果,并且基于预览来决定是否要执行工作流目标系统110中的工作流步骤。技术方案因此便于使用更新的信息来预览来自工作流125的一个或多个工作流步骤的执行,因此便于工作流执行者105确定是否继续进行工作流步骤的实际执行。
图8描绘了根据一个或多个实施例的用于使用具有工作流步骤预览的认知学习来执行工作流的示例方法的流程图。该方法可以由本文描述的工作流执行系统100或任何其它工作流执行来实现。该方法包括选择由工作流执行者105经由工作流访问系统120执行的工作流125,如810所示。在一个或多个示例中,该选择响应于接收到用于执行工作流125的通知或响应于接收到工作流125本身来执行。在一个或多个示例中,工作流125是从多个工作流中选出的。工作流由供应商提供给工作流执行者105,或者工作流执行者105可以由他/她自己写入。
方法还包括由工作流执行者105检查是否要更新工作流125,如815所示。如果工作流执行者105发起更新,则方法包括从一个或多个数据源中拉取工作流125的信息,如820所示。该信息包括针对工作流125的更新信息和附加信息,其可以促进工作流执行者105确定是否继续工作流125的执行。从数据源拉取更新信息包括本文描述的一个或多个操作(见图5)。更新可以包括验证数据源(参见图6)。如这里所述并且如825所示,使用从数据源130拉取出的更新信息来更新工作流125。
该方法还包括通过从工作流125中选择工作流步骤来开始执行工作流125,如830处所示。如论是否具有前述的工作流更新,工作流步骤执行开始。在执行工作流步骤之前,方法还包括确定是否要更新工作流步骤,如835处所示。例如,自从先前的初步更新(815)以来,工作流步骤可能已经在任何数据源130中进行了更新。可替换地或另外,与工作流步骤的执行相关的数据可以在数据源130上可用。例如,附加数据可以包括添加在供应商数据源、国内信息数据源、社交媒体数据源或任何其它数据源130中的信息。附加数据指示工作流执行者105可读取和/或分析以确定是否继续进行工作流步骤的执行的信息。
如果工作流执行者105发起对工作流步骤的更新,则方法包括从一个或多个数据源130拉取并更新工作流步骤,如840所示。拉取针对工作流步骤的更新信息并更新工作流步骤包括如本文所述的一个或多个操作(例如,见图5)。在一个或多个示例中,可以执行数据源验证,如本文所述。既然工作流执行者105知道工作流步骤已经被更新,则如850所示,向工作流执行者提供用于在工作流目标系统110中执行该特定的更新的工作流步骤的预览信息。
提供预览信息包括从一个或多个数据源130中识别来自与工作流步骤相关联的更新信息的预览信息,如852所示。在一个或多个示例中,预览信息可以从与从其取得工作流步骤的更新的数据源不同的数据源中识别。在一个或多个示例中,预览信息基于包括指示数据是预览相关数据的标识标签并且该数据与工作流步骤的唯一标识符相关联的数据源130来识别。例如,数据可以包括标签,诸如"执行预览",以便于工作流访问系统120有效地确定与执行工作流步骤的预览相关的数据。此外,预览信息可以通过在句法和语义上解析来自数据源130的数据来识别。例如,工作流访问系统120可以使用诸如人工神经网络等的机器学习算法来确定来自提供预览相关信息的数据源130的更新的信息的片段。在一个或多个示例中,工作流访问系统120可以使用诸如IBM或任何其它此类服务的API,以用于针对工作流步骤从数据源130可用的更新信息确定预览相关信息。
此外,提供推理信息包括由工作流访问系统120生成工作流目标系统110的模拟,并且使用来自数据源的识别的预览信息的数据显示工作流步骤的执行的预览,如854所示。在一个或多个示例中,模拟可以包括利用工作流目标系统11的副本执行虚拟机。替代地或附加地,模拟可以包括一系列屏幕截图,该系列截图包括从预览信息接收的一个或多个屏幕截图。替代地或另外,模拟可以包括通过基于预览信息修改预定屏幕截图而生成的一个或多个图像。例如,工作流访问系统120可以包括工作流目标系统110的模板屏幕截图,其包括例如“该工作流步骤所需的存储空间:XXXX”,其中用预览信息的结果值来替换XXXX。在一个或多个示例中,模拟可以是基于文本的而不是基于图像的,其中模板是基于文本的,或者是两者的组合。
在一个或多个示例中,如856所示,将模拟呈现给工作流执行者105。该呈现可以包括用户界面元素,其便于工作流执行者105向前(和向后)移动工作流步骤的一个或多个子任务以预览工作流步骤的一个或多个要求以及根据更新的信息执行的工作流步骤的中间结果。可替换地或另外,预览信息的呈现可包括呈现一系列图像或文本。
基于预览信息,工作流执行者105可以执行或不执行工作流步骤,如845所示。工作流执行者可以执行工作流步骤,从而实现工作流目标系统110中的改变,如848所示。该改变可以包括如本文所述的硬件配置改变和/或软件配置改变。可替换地,工作流执行者105可以基于预览信息确定跳过工作流步骤,如845所示。
在一个或多个示例中,无论工作流步骤是否执行,工作流执行者105可以将更新的信息推送到数据源130,如855所示。例如,如果工作流执行者105确定不继续执行工作流步骤,则工作流执行者105可以在数据源130中进行指示。工作流执行者105可以决定要推送什么信息,如本文所述。
如果工作流执行者105确定将关于工作流步骤的信息推送到数据源,则工作流访问系统120累积要推送到数据源的信息,如这里所述,并且如860所示。所累积的信息还包括当执行工作流步骤时来自工作流执行者105的他/她的屏幕截图和参数值。在一个或多个示例中,工作流访问系统120在工作流执行者105执行工作流步骤时监测并采集预览信息,并且在工作流执行者105指示推送预览信息时,将采集的预览信息上载到一个或多个数据源130。例如,工作流访问系统120在工作流步骤被执行时采集屏幕截图,并且在工作流步骤执行完成之后将采集的屏幕截图推送到数据源130。所采集的屏幕截图连同工作流步骤和工作流125的唯一标识符一起被标记为预览信息以供高效访问。在一个或多个示例中,工作流访问系统120在将预览信息上载到工作流执行者的组织之外的数据源130之前擦除敏感数据的预览信息。
在一个或多个示例中,工作流访问系统120使用预定预览标签来标记由工作流执行者105提供的预览信息。此外,工作流访问系统120将预览信息与工作流步骤唯一标识符一起推送到一个或多个数据源130,如865所示。在一个或多个示例中,将累积的信息推送到数据源130包括验证要推送到的一个或多个数据源130。在一个或多个示例中,利用工作流标识符进一步标记被推送的数据。
在工作流步骤执行完成后,方法包括确定工作流执行是否完成或者是否还有其它工作流步骤要执行,如870所示。如果还有额外的工作流步骤,则该方法针对下一工作流步骤进行迭代操作,直到整个工作流执行完成。如果整个工作流执行完成,则方法包括由工作流执行者105检查是否要将与整个工作流的执行相关联的数据推送到数据源130,如875所示。如果工作流执行者105决定不推送任何信息,则方法完成。
如果数据要被推送到数据源130,则工作流访问系统120累积要被推送到一个或多个数据源130的数据,如本文所述,并且如880所示。所累积的信息可以包括整个工作流125的预览信息。例如,预览信息可以包括用于工作流步骤中的每一个的预览信息的子集或用于工作流步骤中的每一个的所有预览信息的集合。工作流访问系统120还将所累积的信息推送到数据源130,如885所示。工作流访问系统120将数据连同工作流唯一标识符一起推送到数据源130,以便容易地搜索和识别与工作流125相关联的数据。
因此,数据源130现在存储当由第二工作流执行者使用唯一标识符请求时可以取得的用于工作流125和工作流步骤的更新的预览信息。第二工作流执行者因此可以在执行工作流125时使用从数据源130取得的、由工作流执行者105提供的预览信息来做出明智的决定。因此,本文描述的技术方案促进工作流执行者105在执行工作流时具有最新版本的工作流步骤,以及还有促进工作流执行者105决定是否要执行工作流步骤的预览信息,其中更新版本和关联信息从可信数据源取得。
机器辅助的工作流执行的另一个技术挑战是,工作流执行者105在执行工作流步骤之前不完全确定所更新的信息和/或更新的工作流步骤将在他/她的工作流目标系统环境中成功执行。当从非供应商源取得更新和/或其它信息时,这是重要的问题。此外,尤其是当在诸如银行、政府和医疗保健以及其它此类行业的环境(其中由该工作流执行所引起的停机时间可能是威胁生命的或相当昂贵)中以作为企业系统的工作流目标系统执行工作流时,这可能是实质性的问题。
例如,如果期望在执行工作流步骤之前具有关于工作流步骤的最新信息的工作流执行者105使用在市场中持续累积的信息来更新工作流步骤,则更新的工作流步骤可能对工作流执行者105的环境不起作用的机会增加,尤其是对于从非供应商源(但可信的数据源)接收的更新。因此,存在以下技术挑战:将来自执行工作流步骤的其他用户的步骤测试结果或历史信息提供给运行工作流步骤的工作流执行者105,以向工作流执行者105确保工作流步骤的执行对工作流目标系统110是无害的。此外,存在以下技术挑战:在工作流125已经被工作流执行者105执行(成功或不成功)后,将用来自工作流执行者105的执行信息来修饰工作流125。修饰可包括要与工作流供应商和/或工作流125的其他用户共享的提前帮助其他用户运行工作流步骤的步骤结果信息。共享信息可以包括关于作为在更新之后执行工作流步骤的结果的有害问题或错误(例如,限制性安全更新)的任何信息。
系统100通过促进工作流执行者105从其它执行者接收来自工作流步骤的执行的步骤结果信息来解决技术挑战。因此,基于最新信息的结果信息有助于增加在目标工作流系统环境中为工作流执行者105运行工作流步骤的成功概率。系统100还便于用户为其他用户贡献并改进相同的工作流步骤结果信息。
在一个或多个示例中,与在工作流目标系统110上的工作流步骤结果和工作流步骤的执行相关的供应商更新信息被记录并被推荐给工作流执行者105。该推荐包括提供便于工作流执行者做出工作流步骤是否可以在工作流执行者105使用的环境中成功运行的明智决定的信息。
工作流访问系统120从一个或多个数据源130中找到与工作流步骤相关的更新信息,因为工作流访问系统120被提供有数据源的访问信息,或者通过执行对新数据源130的查找,诸如使用搜索引擎。
数据源130存储并提供工作流访问系统110。例如,工作流访问系统120从一个或多个数据源130取得已为工作流125和/或工作流步骤存储的最新认知工作流步骤结果信息。例如,步骤结果信息包括工作流步骤有效的保证等级、环境中成功执行步骤的次数等。工作流访问系统120在工作流125的执行期间的某些时间点请求对工作流125和/或特定工作流步骤的更新。在一个或多个示例中,工作流125和/或工作流步骤指示在执行之前要寻求更新。作为响应,工作流访问系统120使用唯一标识符发起与适当数据源130的通信。
因此,除了工作流更新自身之外,工作流执行者105在所有可能的认知步骤测试结果信息可用的情况下感到舒适,以基于步骤的过去测试结果的认知结果信息来做出关于是否在工作流目标系统110上运行工作流步骤的明智决定。此外,在工作流步骤完成后,在一个或多个示例中,工作流访问系统120基于工作流执行者105的执行,利用用户的同意将新的工作流步骤结果信息推送到一个或多个数据源130。在一个或多个示例中,基于结果数据的类型将结果的适当部分推送到对应的数据源。例如,工作流执行者105自己的组织内的数据源130被推送到"国内信息"。
图9示出根据本发明的一个或多个实施例的使用具有工作流步骤结果信息的认知学习来执行工作流的示例方法的流程图。该方法可以由本文描述的工作流执行系统100或任何其它工作流执行来实现。该方法包括选择用于由工作流执行者105经由工作流访问系统120执行的工作流125,如910所示。在一个或多个示例中,该选择响应于接收到用于执行工作流125的通知或响应于接收到工作流125本身来执行。在一个或多个示例中,工作流125选自多个工作流。工作流由供应商提供给工作流执行者105,或者工作流执行者105可以由他/她自己写入。
方法还包括由工作流执行者105检查是否要更新工作流125,如915所示。如果工作流执行者105发起更新,则方法包括从一个或多个数据源中拉取针对工作流125的信息,如920所示。该信息包括可以促进工作流执行者105确定是否继续工作流125的执行的针对工作流125的更新信息和附加信息。从数据源拉取更新信息包括本文描述的一个或多个操作(见图5)。更新可以包括验证数据源(参见图6)。如本文所述,并如925所示,使用从数据源130拉取出的更新信息来更新工作流125。
方法还包括通过从工作流125中选择工作流步骤来开始执行工作流125,如930所示。无论是否具有前述的工作流更新,工作流步骤执行开始。在执行工作流步骤之前,该方法还包括确定工作流步骤是否要更新,如935所示。例如,自从先前的初步更新(915)以来,工作流步骤可能已经在任何数据源130中进行了更新。可替换地或另外,与工作流步骤的执行相关的数据可以在数据源130上可用。例如,附加数据可以包括添加在供应商数据源、国内信息数据源、社交媒体数据源或任何其它数据源130中的信息。附加数据指示工作流执行者105可读取和/或分析以确定是否要继续进行工作流步骤的执行的信息。
如果工作流执行者105发起对工作流步骤的更新,则方法包括从一个或多个数据源130拉取并更新工作流步骤,如940所示。拉取针对工作流步骤的更新信息并更新工作流步骤包括如本文所述的一个或多个操作(例如,见图5)。在一个或多个示例中,可以执行数据源验证,如本文所述。既然工作流执行者105知道工作流步骤已经被更新,则向工作流执行者提供在工作流目标系统110中执行该特定的更新的工作流步骤的步骤结果信息,如950所示。
提供结果信息包括从一个或多个数据源130识别来自与工作流步骤相关联的更新信息的结果信息,如952处所示。在一个或多个示例中,结果信息可以从与从其取得工作流步骤的更新的数据源不同的数据源中识别。在一个或多个示例中,该结果信息基于包括指示数据是结果相关数据的标识标签并且数据还与工作流步骤的唯一标识符相关联的数据源130来识别。例如,数据可以包括标签,诸如"执行结果",以便于工作流访问系统120有效地确定与执行工作流步骤的结果相关的数据。此外,可以通过在句法和语义上解析来自数据源130的数据来识别结果信息。例如,工作流访问系统120可以使用机器学习算法(诸如人工神经网络等)来确定来自数据源130的提供结果相关信息的更新信息的片段。在一个或多个示例中,工作流访问系统120可以使用诸如IBM或任何其它此类服务的API,以便根据数据源130可用的更新信息来确定针对工作流步骤的与结果相关的信息。
此外,工作流访问系统基于来自数据源的可用结果相关信息生成针对工作流的结果信息。例如,结果信息可以包括工作流步骤已被其他用户执行的次数、工作流步骤已被跳过的次数、由工作流步骤引起的错误已被报告的次数、在发起之后工作流步骤尚未完成执行的次数、以及关于工作流步骤的执行的其它信息。可替代地或另外,结果信息可以包括由其他用户提供的与工作流步骤的执行有关的评级,诸如执行的容易度、执行所需的时间、执行所需的资源、针对工作流步骤的总体评级等。
此外,提供结果信息包括由工作流访问系统120生成用户界面(UI)元素,用于显示基于来自数据源130的结果相关信息生成的结果信息,如954所示。在一个或多个示例中,在被呈现给工作流执行者105的工作流步骤的一侧生成UI元素。可替换地或另外,UI元素以任何其它方式生成,诸如作为弹出窗口、覆盖窗口等。在一个或多个示例中,除了由工作流访问系统120生成的结果信息之外,UI元素还包括工作流供应商107是否推荐执行该工作流的指示。此外,在一个或多个示例中,对提供给工作流执行者105的结果信息进行过滤,以便仅有由其他工作流执行者使用与工作流执行者105基本上相同的工作流目标系统环境(例如版本、操作系统等)而提供的结果信息。
向工作流执行者105提供结果信息还包括经由UI元素呈现信息,如956处所示。基于结果信息,工作流执行者105可以执行或不执行工作流步骤,如945所示。工作流执行者可以执行工作流步骤,从而实现工作流目标系统110中的改变,如948所示。该改变可以包括如本文所述的硬件配置改变和/或软件配置改变。可替换地,工作流执行者105可基于结果信息确定跳过工作流步骤,如945所示。
在一个或多个示例中,无论是否执行工作流步骤,工作流执行者105都可以将更新的信息推送到数据源130,如955处所示。例如,如果工作流执行者105确定不继续执行工作流步骤,则工作流执行者105可以在数据源130中如此指示。工作流执行者105可以决定要推送什么信息,如本文所述。
如果工作流执行者105确定将关于工作流步骤的信息推送到数据源,则工作流访问系统120累积要推送到数据源130的信息,如本文所述,并且如960所示。所累积的信息还包括来自工作流执行者105的他/她的例如基于工作流步骤的执行难度/容易度的工作流步骤执行的评级,诸如工作流的描述是容易/复杂的、比预定的步骤数量更短/更长、工作流步骤的评级低于/高于预定阈值等。此外,所推送的结果信息可以包括客观数据,诸如工作流步骤是被执行还是被跳过、执行的时间量、用于执行的存储器、用于执行的磁盘空间等。
在一个或多个示例中,工作流访问系统120使用预定结果标签来标记由工作流执行者105提供的结果信息。此外,工作流访问系统120将信息连同工作流步骤唯一标识符一起推送到一个或多个数据源130,如965处所示。在一个或多个示例中,将累积的信息推送到数据源130包括验证要推送到的一个或多个数据源130。在一个或多个示例中,利用工作流标识符进一步标记被推送的数据。
在工作流步骤执行完成后,该方法包括确定工作流执行是否完成或者是否还有其它工作流步骤要执行,如970所示。如果还有额外的工作流步骤,则该方法针对下一工作流步骤进行迭代操作,直到整个工作流执行完成。如果整个工作流执行完成,则方法包括由工作流执行者105检查是否要将与整个工作流的执行相关联的数据推送到数据源130,如975所示。如果工作流执行者105决定不推送任何信息,则该方法完成。
如果数据要被推送到数据源130,则工作流访问系统120累积要被推送到一个或多个数据源130的数据,如本文所述,并且如980所示。所累积的信息可以包括整个工作流125的结果信息,诸如整个工作流的评级/信息。工作流访问系统120还将所累积的信息推送到数据源130,如985所示。工作流访问系统120将数据连同工作流唯一标识符一起推送到数据源130,以便容易地搜索和识别与工作流125相关联的数据。
因此,数据源130现在存储当由第二工作流执行者使用唯一标识符请求时可以取得的工作流125和工作流步骤的更新结果信息。第二工作流执行者因此可以在执行工作流125时使用从数据源130取得的、由工作流执行者105提供的信息来做出明智的决定。因此,本文描述的技术方案便于工作流执行者105在执行工作流时具有最新版本的工作流步骤,该最新版本和关联信息是从可信数据源取得的,并且进一步具有促进工作流执行者105基于来自其他用户的结果和评级来决定是否要执行工作流步骤的结果信息。
这里描述的技术方案便于利用最新的更新和信息执行机器辅助的工作流,并且还利用来自工作流执行者的组织内部或外部的其它用户、来自工作流的供应商/创建者、来自工作流执行者他/她自己的先前执行的相关信息、来自因特网(社交媒体、博客、论坛、文章等)和其它类型的数据源来辅助工作流执行者。在一个或多个示例中,工作流执行者和/或供应商可以识别要标识的数据源。在一个或多个示例中,在访问来自数据源的信息之前,所访问的数据源被认证为受信源。此外,这里描述的技术方案还便于工作流执行者进一步用在工作流执行期间生成的信息来修饰数据源。因此,本文描述的技术方案提供了对诸如用于执行机器辅助的工作流的系统的计算机技术的改进,其中动态地更新工作流和工作流步骤,并且提供来自一个或多个数据源的工作流步骤的最新更新信息,并且还便于在完成工作流步骤的执行时将附加的更新信息推送到数据源。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路配置数据或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务供应商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
第二动作可以被称为"响应于"第一动作,而与第二动作是直接还是间接地由第一动作引起无关。第二动作可以实质上发生在比第一动作更晚的时间,并且仍然响应于第一动作。类似地,即使在第一动作和第二动作之间发生中间动作,并且即使中间动作中的一个或多个直接导致将要执行的第二动作,第二动作也可以被称为响应于第一动作。例如,如果第一动作设置了标志,则第二动作可以响应于第一动作,并且每当设置了标志时,第三动作稍后发起第二动作。
为了明确使用并由此向公众提供通知,术语"A、B、…和N中的至少一个"或"A、B、…、N或其组合中的至少一个"或"A、B、…和/或N"应以最广义解释(以取代上文或下文中的任何其它隐含限定或除非进行明确地相反声明外),以指选自包括A、B、…和N的组合中的一个或多个元素。换句话说,该术语是指元素A、B、…或N中的一个或多个的任何组合,包括单独的任何一个元素或一个元素与一个或多个其它元素的组合,其也可以包括未列出的其它元素的组合。
还将理解,本文中例示的执行指令的任何模块、单元、组件、服务器、计算机、终端或设备可以包括或以其它方式访问计算机可读介质,诸如存储介质、计算机存储介质或数据存储设备(可移动和/或不可移动),诸如例如磁盘、光盘或磁带。计算机存储介质可包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。该计算机存储介质可以是设备的一部分或者可访问或可连接到设备。本文描述的任何应用或模块可以使用计算机可读/可执行指令来实现,这些指令可以由该计算机可读介质存储或以其它方式保存。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (14)
1.一种计算机实现的方法,用于执行交互式工作流,所述方法包括:
选择用于交互执行的工作流,所述工作流包括一系列工作流步骤;
从数据源拉取针对所述工作流的初步更新并动态地修改所述工作流;
从所述工作流中选择工作流步骤用于执行;
从所述数据源拉取针对所述工作流步骤的更新信息,并使用所述更新信息动态地修改所述工作流步骤;
从所述数据源取得第一结果信息,所述第一结果信息指示由其他用户执行更新的工作流步骤的结果;
响应于所述第一结果信息指示进行了执行,使用所述更新的工作流步骤执行所述工作流步骤,所述执行包括改变目标系统;
累积包括与所述工作流步骤的执行相关联的属性的执行信息,以及基于所述工作流步骤的所述执行的第二结果信息;以及
在完成所述工作流步骤后将所述执行信息推送到所述数据源。
2.根据权利要求1所述的计算机实现的方法,其中,所述第一结果信息包括由所述其他用户执行所述更新的工作流步骤的成功评级。
3.根据前述权利要求中的任一项所述的计算机实现的方法,其中,所述第一结果信息包括所述更新的工作流步骤已被所述其他用户执行的次数以及由所述其他用户针对所述工作流步骤报告的错误数量。
4.根据前述权利要求中的任一项所述的计算机实现的方法,其中,所述第一结果信息是基于所述工作流步骤的唯一标识符来识别的。
5.根据权利要求4所述的计算机实现的方法,其中,在将所述第二结果信息推送到所述数据源之前,所述第二结果信息与所述工作流步骤的所述唯一标识符相关联。
6.根据前述权利要求中的任一项所述的计算机实现的方法,其中,所述数据源是第一数据源,并且所述第一结果信息是从第二数据源取得的。
7.一种用于执行交互式工作流的系统,所述系统包括:
存储器;以及
处理器,其被配置用于机器辅助的工作流执行,包括:
选择用于交互执行的工作流,所述工作流包括一系列工作流步骤;
从数据源拉取针对所述工作流的初步更新并动态地修改所述工作流;
从所述工作流中选择工作流步骤用于执行;
从所述数据源拉取针对所述工作流步骤的更新信息,并使用所述更新信息动态地修改所述工作流步骤;
从所述数据源取得第一结果信息,所述第一结果信息指示由其他用户执行更新的工作流步骤的结果;
响应于所述第一结果信息指示进行了执行,使用所述更新的工作流步骤执行所述工作流步骤,所述执行包括改变目标系统;
累积包括与所述工作流步骤的执行相关联的属性的执行信息,以及基于所述工作流步骤的所述执行的第二结果信息;以及
在完成所述工作流步骤后将所述执行信息推送到所述数据源。
8.根据权利要求7所述的系统,其中,所述第一结果信息包括由所述其他用户执行所述更新的工作流步骤的成功评级。
9.根据权利要求7或8中的任一项所述的系统,其中,所述第一结果信息包括所述更新的工作流步骤已被所述其他用户执行的次数以及由所述其他用户针对所述工作流步骤报告的错误数量。
10.根据权利要求7至9中的任一项所述的系统,其中,所述第一结果信息是基于所述工作流步骤的唯一标识符来识别的。
11.根据权利要求10所述的系统,其中,在将所述第二结果信息推送到所述数据源之前,所述第二结果信息与所述工作流步骤的所述唯一标识符相关联。
12.根据权利要求7至11中的任一项所述的系统,其中,所述数据源是第一数据源,并且所述第一结果信息是从第二数据源取得的。
13.一种计算机程序产品,用于执行交互式工作流,所述计算机程序产品包括:
计算机可读存储介质,其能够由处理电路读取并且存储用于由所述处理电路执行以用于执行根据权利要求1至6中的任一项所述的方法的指令。
14.一种计算机程序,其存储在计算机可读介质上并且能够加载到数字计算机的内部存储器中,包括软件代码部分,当所述程序在计算机上运行时,用于执行根据权利要求1至6中的任一项所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/795,381 | 2017-10-27 | ||
US15/795,381 US10474977B2 (en) | 2017-10-27 | 2017-10-27 | Cognitive learning workflow execution |
PCT/IB2018/058234 WO2019082066A1 (en) | 2017-10-27 | 2018-10-23 | EXECUTING A FLOW OF COGNITIVE LEARNING WORK |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111226197A true CN111226197A (zh) | 2020-06-02 |
CN111226197B CN111226197B (zh) | 2024-05-28 |
Family
ID=66243868
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880066941.1A Active CN111226197B (zh) | 2017-10-27 | 2018-10-23 | 认知学习工作流执行 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10474977B2 (zh) |
JP (1) | JP7413255B2 (zh) |
CN (1) | CN111226197B (zh) |
DE (1) | DE112018005011T5 (zh) |
GB (1) | GB2581304A (zh) |
WO (1) | WO2019082066A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022100439A1 (en) * | 2020-11-12 | 2022-05-19 | International Business Machines Corporation | Workflow patching |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10552779B2 (en) * | 2017-10-27 | 2020-02-04 | International Business Machines Corporation | Cognitive learning workflow execution |
US10719365B2 (en) | 2017-10-27 | 2020-07-21 | International Business Machines Corporation | Cognitive learning workflow execution |
US10474977B2 (en) * | 2017-10-27 | 2019-11-12 | International Business Machines Corporation | Cognitive learning workflow execution |
US10719795B2 (en) | 2017-10-27 | 2020-07-21 | International Business Machines Corporation | Cognitive learning workflow execution |
US10713084B2 (en) | 2017-10-27 | 2020-07-14 | International Business Machines Corporation | Cognitive learning workflow execution |
US11023528B1 (en) | 2019-12-20 | 2021-06-01 | Capital One Services, Llc | Transaction exchange platform having configurable microservices |
US10789600B1 (en) | 2019-12-20 | 2020-09-29 | Capital One Services, Llc | Transaction exchange platform with snapshot microservice |
US11080120B2 (en) | 2019-12-20 | 2021-08-03 | Capital One Services, Llc | Transaction exchange platform with watchdog microservice |
US10891615B1 (en) | 2019-12-20 | 2021-01-12 | Capital One Services, Llc | Transaction exchange platform having streaming transaction data and microservices |
US11037168B1 (en) | 2019-12-20 | 2021-06-15 | Capital One Services, Llc | Transaction exchange platform with watchdog microservice |
WO2022159094A1 (en) * | 2021-01-22 | 2022-07-28 | The Bank Of New York Mellon | Methods and systems for improving hardware resiliency during serial processing tasks in distributed computer networks |
DE102021200995A1 (de) * | 2021-02-03 | 2022-08-04 | Siemens Aktiengesellschaft | Ermittlung einer Bewertung eines Datensatzes |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1139382A (ja) * | 1997-07-18 | 1999-02-12 | Nippon Steel Corp | 特許監視システム、特許監視方法及びその記録媒体 |
US5974392A (en) * | 1995-02-14 | 1999-10-26 | Kabushiki Kaisha Toshiba | Work flow system for task allocation and reallocation |
US20030195763A1 (en) * | 2002-04-11 | 2003-10-16 | International Business Machines Corporation | Method and system for managing a distributed workflow |
US20040015841A1 (en) * | 2001-04-24 | 2004-01-22 | Lepejian Yervant D. | Software development tool employing workflows for developing user interactive programs |
JP2005092544A (ja) * | 2003-09-18 | 2005-04-07 | Nippon Telegr & Teleph Corp <Ntt> | ワークフロー世代管理処理方法,ワークフロー処理システムおよびワークフロー制御プログラム |
CN102542410A (zh) * | 2010-12-21 | 2012-07-04 | 微软公司 | 与背景和基于任务的计算环境的交互 |
CN103208046A (zh) * | 2012-12-31 | 2013-07-17 | 广州奥凯信息咨询有限公司 | 基于交互式动态流程图的工作流引擎架构方法和系统 |
Family Cites Families (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040216084A1 (en) | 2003-01-17 | 2004-10-28 | Brown Albert C. | System and method of managing web content |
US20050256818A1 (en) | 2004-04-30 | 2005-11-17 | Xerox Corporation | Workflow auto generation from user constraints and hierarchical dependence graphs for workflows |
US9501473B1 (en) * | 2004-12-21 | 2016-11-22 | Veritas Technologies Llc | Workflow process with temporary storage resource reservation |
US20070276714A1 (en) | 2006-05-15 | 2007-11-29 | Sap Ag | Business process map management |
US20080244565A1 (en) * | 2007-03-29 | 2008-10-02 | Microsoft Corporation | Dynamic software installation and configuration |
US20090018882A1 (en) | 2007-07-10 | 2009-01-15 | Information In Place, Inc. | Method and system for managing enterprise workflow and information |
US8381181B2 (en) * | 2007-08-31 | 2013-02-19 | International Business Machines Corporation | Updating a workflow when a user reaches an impasse in the workflow |
US8407712B2 (en) * | 2007-08-31 | 2013-03-26 | International Business Machines Corporation | Updating workflow nodes in a workflow |
US8396838B2 (en) | 2007-10-17 | 2013-03-12 | Commvault Systems, Inc. | Legal compliance, electronic discovery and electronic document handling of online and offline copies of data |
US8763006B2 (en) | 2007-12-28 | 2014-06-24 | International Business Machines Corporation | Dynamic generation of processes in computing environments |
US8151208B2 (en) * | 2008-02-07 | 2012-04-03 | Microsoft Corporation | Workflow tracking information preview |
US8595044B2 (en) | 2008-05-29 | 2013-11-26 | International Business Machines Corporation | Determining competence levels of teams working within a software |
CN101625738A (zh) | 2008-07-11 | 2010-01-13 | 国际商业机器公司 | 生成上下文感知的通用工作流应用的方法和装置 |
JP5217978B2 (ja) | 2008-12-02 | 2013-06-19 | 株式会社リコー | 製本システム、綴じ機能選択表示方法、コンピュータプログラム、及び記録媒体 |
US20100293538A1 (en) * | 2009-05-15 | 2010-11-18 | Microsoft Corporation | Dynamic program updating in a continuation based runtime |
WO2010131778A1 (ja) * | 2009-05-15 | 2010-11-18 | 日本電気株式会社 | ワークフロー監視制御システム、監視制御方法および監視制御プログラム |
US20110161284A1 (en) * | 2009-12-28 | 2011-06-30 | Verizon Patent And Licensing, Inc. | Workflow systems and methods for facilitating resolution of data integration conflicts |
JP5652114B2 (ja) | 2010-10-19 | 2015-01-14 | 株式会社リコー | ワークフロー実行装置、プレビュー作成方法及びプログラム |
US9256418B2 (en) | 2010-10-28 | 2016-02-09 | Intuit Inc. | Dynamic application identifier for use in an update workflow |
US8627323B2 (en) * | 2010-12-10 | 2014-01-07 | International Business Machines Corporation | Utilizing user-defined workflow policies to automate changes made to composite workflows |
US9116746B2 (en) | 2010-12-17 | 2015-08-25 | Verizon Patent And Licensing Inc. | Workflows and presets for workflows |
US8639555B1 (en) | 2011-10-12 | 2014-01-28 | Amazon Technologies, Inc. | Workflow discovery through user action monitoring |
US9483307B2 (en) * | 2013-09-04 | 2016-11-01 | Swiftpage Act! Llc | Asynchronous, interactive task workflows |
US20150081326A1 (en) | 2013-09-19 | 2015-03-19 | Siemens Medical Solutions Usa, Inc. | Healthcare Process Management Using Context |
US10362113B2 (en) | 2015-07-02 | 2019-07-23 | Prasenjit Bhadra | Cognitive intelligence platform for distributed M2M/ IoT systems |
US9910756B2 (en) * | 2015-09-03 | 2018-03-06 | International Business Machines Corporation | Response-time baselining and performance testing capability within a software product |
US20170124462A1 (en) | 2015-10-28 | 2017-05-04 | International Business Machines Corporation | Cognitive intention detection system, method, and recording medium for initiating automated workflow in multimodal messaging |
US10025654B2 (en) * | 2016-04-01 | 2018-07-17 | T-Mobile Usa, Inc. | Diagnostic and workflow engine with system integration |
US20180307384A1 (en) * | 2017-04-24 | 2018-10-25 | Cisco Technology, Inc. | Workflow policy interface |
US11017341B2 (en) * | 2017-07-12 | 2021-05-25 | Nintex UK Ltd. | Workflow as a service |
US10719795B2 (en) * | 2017-10-27 | 2020-07-21 | International Business Machines Corporation | Cognitive learning workflow execution |
US10719365B2 (en) * | 2017-10-27 | 2020-07-21 | International Business Machines Corporation | Cognitive learning workflow execution |
US10552779B2 (en) * | 2017-10-27 | 2020-02-04 | International Business Machines Corporation | Cognitive learning workflow execution |
US10713084B2 (en) * | 2017-10-27 | 2020-07-14 | International Business Machines Corporation | Cognitive learning workflow execution |
US10474977B2 (en) * | 2017-10-27 | 2019-11-12 | International Business Machines Corporation | Cognitive learning workflow execution |
-
2017
- 2017-10-27 US US15/795,381 patent/US10474977B2/en active Active
-
2018
- 2018-10-23 GB GB2007573.5A patent/GB2581304A/en not_active Withdrawn
- 2018-10-23 DE DE112018005011.4T patent/DE112018005011T5/de active Pending
- 2018-10-23 WO PCT/IB2018/058234 patent/WO2019082066A1/en active Application Filing
- 2018-10-23 CN CN201880066941.1A patent/CN111226197B/zh active Active
- 2018-10-23 JP JP2020521602A patent/JP7413255B2/ja active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5974392A (en) * | 1995-02-14 | 1999-10-26 | Kabushiki Kaisha Toshiba | Work flow system for task allocation and reallocation |
JPH1139382A (ja) * | 1997-07-18 | 1999-02-12 | Nippon Steel Corp | 特許監視システム、特許監視方法及びその記録媒体 |
US20040015841A1 (en) * | 2001-04-24 | 2004-01-22 | Lepejian Yervant D. | Software development tool employing workflows for developing user interactive programs |
US20030195763A1 (en) * | 2002-04-11 | 2003-10-16 | International Business Machines Corporation | Method and system for managing a distributed workflow |
JP2005092544A (ja) * | 2003-09-18 | 2005-04-07 | Nippon Telegr & Teleph Corp <Ntt> | ワークフロー世代管理処理方法,ワークフロー処理システムおよびワークフロー制御プログラム |
CN102542410A (zh) * | 2010-12-21 | 2012-07-04 | 微软公司 | 与背景和基于任务的计算环境的交互 |
CN103208046A (zh) * | 2012-12-31 | 2013-07-17 | 广州奥凯信息咨询有限公司 | 基于交互式动态流程图的工作流引擎架构方法和系统 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022100439A1 (en) * | 2020-11-12 | 2022-05-19 | International Business Machines Corporation | Workflow patching |
GB2616544A (en) * | 2020-11-12 | 2023-09-13 | Ibm | Workflow patching |
US11886867B2 (en) | 2020-11-12 | 2024-01-30 | International Business Machines Corporation | Workflow patching |
GB2616544B (en) * | 2020-11-12 | 2024-01-31 | Ibm | Workflow patching |
Also Published As
Publication number | Publication date |
---|---|
GB2581304A (en) | 2020-08-12 |
US20190129762A1 (en) | 2019-05-02 |
WO2019082066A1 (en) | 2019-05-02 |
DE112018005011T5 (de) | 2020-07-16 |
GB202007573D0 (en) | 2020-07-08 |
US10474977B2 (en) | 2019-11-12 |
JP7413255B2 (ja) | 2024-01-15 |
JP2021500658A (ja) | 2021-01-07 |
CN111226197B (zh) | 2024-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111226197B (zh) | 认知学习工作流执行 | |
US10984360B2 (en) | Cognitive learning workflow execution | |
US10719365B2 (en) | Cognitive learning workflow execution | |
US10719795B2 (en) | Cognitive learning workflow execution | |
US11372997B2 (en) | Automatic audit logging of events in software applications performing regulatory workloads | |
US10713084B2 (en) | Cognitive learning workflow execution | |
US11150893B2 (en) | Collaborative software development tool for resolving potential code-change conflicts in real time | |
US11200043B2 (en) | Analyzing software change impact based on machine learning | |
US20190073216A1 (en) | Customized static source code analysis | |
CN111868727A (zh) | 数据匿名化 | |
US20180198814A1 (en) | Identifying security risks in code using security metric comparison | |
US11170076B2 (en) | Access to an electronic asset using content augmentation | |
US11151308B2 (en) | Electronic document processing system | |
US11681758B2 (en) | Bot program for monitoring | |
US20200218636A1 (en) | Utilization of publicly available source code | |
US20220206786A1 (en) | Code library selection management | |
CN116074376A (zh) | 内容管理系统 | |
US20160277269A1 (en) | Dynamic community support | |
US11138273B2 (en) | Onboarding services | |
US10635463B2 (en) | Adapting the tone of the user interface of a cloud-hosted application based on user behavior patterns | |
US20190163523A1 (en) | Performing an action on a composite of software instances | |
US20170329665A1 (en) | Community content identification | |
US11811626B1 (en) | Ticket knowledge graph enhancement |
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 |