CN102804167A - 在计算生态***中创建复合程序模块 - Google Patents

在计算生态***中创建复合程序模块 Download PDF

Info

Publication number
CN102804167A
CN102804167A CN2010800246228A CN201080024622A CN102804167A CN 102804167 A CN102804167 A CN 102804167A CN 2010800246228 A CN2010800246228 A CN 2010800246228A CN 201080024622 A CN201080024622 A CN 201080024622A CN 102804167 A CN102804167 A CN 102804167A
Authority
CN
China
Prior art keywords
module
user
ecosystem
program
program module
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
CN2010800246228A
Other languages
English (en)
Other versions
CN102804167B (zh
Inventor
M·I·迈尔斯
J·M·格莱瑟
S·K·富勒顿
A·贝尔
K·T·托夫特
N·D·沙菲尔
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.)
Intuit Inc
Original Assignee
Intuit 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 Intuit Inc filed Critical Intuit Inc
Publication of CN102804167A publication Critical patent/CN102804167A/zh
Application granted granted Critical
Publication of CN102804167B publication Critical patent/CN102804167B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)
  • Stored Programmes (AREA)

Abstract

提供了用于在计算生态***内创建复合程序模块的方法。所述生态***包括公司、部门或其他组织的物理的和/或虚拟的计算资源。当用户发现对其有用的一组模块时,所述生态***或者其工作区允许其创建包括该组模块的复合模块。然后他能够通过仅激活所述复合模块来访问它们的组合功能,在这种情况下所有模块全都自动打开,而无需分别地激活每一个。进一步而言,所述生态***可以基于其使用一个或多个其他模块的活动模式向用户建议补充程序模块。复合程序模块可以创建为包括建议的补充模块,或者仅包括由所述用户独立发现的模块。

Description

在计算生态***中创建复合程序模块
背景技术
从单片、现成应用程序的转移持续有增无减。当前应用开发中的重点是基于“云计算”,其中用户的计算设备甚至不需要为了运行应用程序而存储或维护应用程序的副本。取而代之,或许跨互联网、内联网或某个其他网络从远程位置加载应用。经由应用操纵的数据也可以在远离计算设备的位置维护。
云计算可以使用户摆脱受限于仅使用那些安装在其计算设备上的应用,但是云计算并不是针对所有计算机用户的万能灵药。例如,用户必须知道他希望访问什么应用,而且其设备可能需要为了访问这些应用而特别配置。他不能很容易地发现对手边给定任务有用的新应用,尤其在提供了大量应用而几乎没有多少与何时或者如何使用它们有关的指导的情况下。
具体而言,当在给定应用中执行给定任务时,云计算环境不支持不同应用或新应用组成的联机(in-line)发现。因此,常常留给偶发事件来发现先前未知的或未使用的程序很好地配合另一应用而工作。
即使用户根据共享数据或者产生比每个程序单独操作所产生的结果更好或更优秀的结果而发现一个程序很好地与另一程序一起工作,他不能将它们分组或关联为包,以便将来再次容易调用它们的组合功能、或者除了通过向其他用户描述如何复制他的发现外,容易与另一用户分享他的发现。
发明内容
在本发明的一些实施方式中,提供了一种用于在计算生态***内创建复合程序模块或应用模块的方法。
所述生态***包括公司、部门或其他组织的物理的和/或虚拟的计算资源。当用户发现对其有用的一组模块时,所述生态***或者其工作区允许其创建包括该组模块的复合模块。
通过创建复合程序模块,他随后能够通过仅激活所述复合模块来访问它们的组合功能,在这种情况下,所有的模块全都自动被打开,而无需分别地激活每一个。
所述复合模块可以按照“即兴”方式来创建,不用提前知晓这些模块一起操作或者它们产生有益的结果。具体而言,他不需要提前知晓两个或多个具体的程序模块一起很好地运行,但是当这种情况出现时,他能够利用其发现。
在本发明的一些实施方式中,所述生态***可以基于使用用户当前正在操作的一个或多个模块所观察的活动模式来向用户建议相配程序模块。复合程序模块可以被创建为包括所建议的补充模块,或者仅包括由所述用户独立发现的模块。
附图说明
图1是根据本发明的一些实施方式的、促进程序模块的联机发现以及复合程序模块的轻松创建的计算生态***的框图。
图2是根据本发明的一些实施方式的、用于在计算生态***内执行程序模块的用户工作区的屏幕快照。
图3是根据本发明的一些实施方式的图2的工作区的屏幕快照,该快照演示了由生态***监视和识别的工作流程模式。
图4是根据本发明的一些实施方式的图3的工作区的另一个屏幕快照,其中生态***提醒用户补充程序模块的可用性。
图5是根据本发明的一些实施方式的图4的工作区的另一个屏幕快照,该快照描绘了对除了其他程序模块之外所建议的补充程序模块的执行。
图6是根据本发明的一些实施方式的图5的工作区的另一个屏幕快照,该快照描绘了对包括补充程序模块和其他程序模块的复合程序模块的创建。
图7是根据本发明的一些实施方式的、描绘了对用于复合程序模块的工具栏图标进行创建的屏幕快照。
图8是根据本发明的一些实施方式的、演示了从先前存在的两个或更多组件创建复合生态***组件的方法的流程图。
图9是根据本发明的一些实施方式的、用于在配置成主控多程序模块的执行的计算生态***中创建复合程序模块的设备的框图。
图10是根据本发明的一些实施方式的、配置成主控多程序模块的执行的计算生态***的框图。
具体实施方式
为了使得本领域技术人员能够做出和使用本发明而提出以下说明,并且在一个具体应用及其需求的上下文中提供该描述。本领域技术人员将容易清楚对于公开的实施方式的各种修改,而且本文定义的一般原理可以应用于其他实施方式和应用而不背离本发明的范围。因此,本发明不旨在限于所示出的实施方式,而是将给予与本文公开的原理和特征相一致的最宽范围。
在本发明的一些实施方式中,提出了用于在计算生态***内发现和/或创建专设的复合程序模块的方法。该计算生态***模块包括用于完成多种任务的应用、工具和/或其他组件。
例如,一个小型商务生态***可以被配置为提供对于诸如记账、调度、联系人、地图绘制、文字处理等之类的小型商务有用的程序模块。复合程序模块是包括两个或更多其他模块的生态***模块。
在一些实现方式中,生态***可以包括基于云的计算环境,在该环境中,用户操作被配置为执行位于远端的应用的各个计算设备。因此,给定用户可以从作为生态***一部分的任何计算设备来访问生态***的任何模块或组件,而不会改变即时设备的配置。生态***还可以或者可以替代地包括具有本地安装的一个或多个程序模块的多个计算设备。
与本文描述的发明的实施方式一起操作的计算生态***可以包括任何数量和类型的、被配置为对任何数量和类型的程序模块进行操作的计算设备。该生态***的一个特征是用户使用几乎任何生态***模块从几乎耦合到生态***的任何计算设备访问和操纵数据的能力。
通过生态***的从活动模式推断用户的意图或期望并且帮助该用户发现可以辅助他或她的一个或多个生态***模块的能力,专设的程序模块的创建得到促进。例如,如果观察到用户打开了联系人列表,并且将一个对象从联系人列表中拖拽到日历中,则生态***可以识别诸如旅行计划、一系列电话呼叫的调度等之类的已知工作模式。
当用户活动模式与一个已知工作流程匹配,生态***可以建议该用户利用他或她可能还未知晓的补充生态***模块。这种模块可以包括优化旅行计划器(例如,用于计划目的地之间的高效路线)、记账工具(例如,用以收集与针对用户将要呼叫的联系人的应支付账目或应接收账目有关的信息)等。
在本发明的一些实施方式中,将用户活动模式与补充程序模块的已知模式或配置简档匹配的过程还可以考虑与用户有关的其他信息。例如,一些补充模块可以基于或者可以不基于生态***或使用该生态***的组织内的用户角色、他的工作职责、他对生态***的熟悉程度等来建议。
当用户接受或者激活所建议的程序模块,生态***允许用户将操作组件(例如,联系人列表、日历、旅行优化器)合并为新的复合组件。用户然后可以如所期望的重新使用复合模块来重新创建同一个旅行或同一个系列的电话呼叫、或者计划一个新旅行或一个新系列的呼叫。该用户还能够直接地(例如,通过向特定接收者发送复合模块或对该模块的引用)或间接地(例如,通过使得复合模块经由目录或名录而对于生态***的其他用户可用)与其他用户共享该复合模块。
本发明的实施方式的另一个示例性使用涉及调度工作。例如,在一个汽车修理店中,几辆车可能在等待工作。不同的修理工作可能需要不同的零件,而且不同的机械师可能具有不同的技能。因此,本发明的实施方式可以将日历或调度模块与反映机械师对不同任务的才能的机械师模块以及指示何时各种零件将被交付到修理店的交货模块合并。
在本发明的另一个示例性实施方式中,可以为了便于客户管理而开发复合模块。例如,这种复合模块可以将客户投诉的记录或历史与显示客户交易/计费/***状态的***或记账模块相结合。可以依赖主生态***、该生态***内的各种程序模块等来开发多种其他有益的复合程序模块。
图1是根据本发明的一些实施方式的、支持复合程序模块的发现和/或创建的生态***或其他计算环境的框图。
在这些实施方式中,计算设备110由用户来操作,以执行中央计算机120上存储的应用、工具和/或其他生态***模块122。计算设备110可以包括多种类型的设备,例如桌上型计算机、服务器、膝上型或其他便携计算设备、或便携式数字助理等。
中央计算机120可以包括配置成服务程序模块的计算机服务器,而且中央计算机120还可以作为web服务器、数据服务器和/或其他专用或通用计算机***。在不同的实现方式中,中央计算机可以是逻辑上和/或物理上分散的或放置在一起。
生态***模块122可以包括用于文字处理、操纵电子表格、访问数据库、管理电子邮件、调度、地图绘制、维护一组联系人等的程序。中央计算机122还存储当模块122在计算设备上执行时,计算设备110(和/或中央计算机120)可以操纵的数据(例如数据库124)。多个不同的模块可以操作或操纵单一的一组数据,例如用户的联系人列表、文字处理文档等。
图1的生态***(例如中央计算机120)可以由具体的组织来维护。然而,其他组织和个人可以设计或贡献用于在生态***内使用的模型。
当用户在生态***内工作时,用户接口设备(例如,监视器,CRT)向该用户呈现一个工作区,通过该工作区他或她可以访问多种生态***模块、访问或操纵他的或她的数据(和/或其他用户的数据)、维护他的或她的生态***配置简档等。该生态***实现了在一些或者甚至所有模块上针对该用户的单一身份的使用,而且管理组件和数据的安全,从而促进模块之间的数据共享、生态***组件的互操作性以及其他生产力增益。
图2是根据本发明的一些实施方式的、在提升程序模块的联机发现以及复合模块的创建的计算生态***内的用户工作区的快照。
在图2中,用户工作区200可以被设计为类似于一个基于物理的或电子计算机的桌面,原因在于它用作用户可以在其中操纵一个或多个生态***程序模块的工作区域。在图1中,两个生态***模块210a,210b当前是打开的或活动的,意味着它们正在被执行。
库或工具栏220提供对由生态***所提供的程序模块的子集的快速访问。例如,无论何时用户第一次下载或使用模块,或者修改其配置简档以便包含该模块,可以将用于那个模块的图标放置于库220中。可以通过点击(例如双击)库中的图标、通过将该图标拖拽到工作区、或者通过采取某个其他动作来打开相应的模块或应用。
当在工作区200中打开或激活一个模块时,将活动的图标或表示230放置在工作区周围或内部。用户能够操纵这些模块图标,以便关于相应的一个或多个模块采取动作。例如,通过选择这些模块图标中的一个或多个(例如,通过点击它们、通过在它们周围画一个框),他可以通过选择一个菜单选项、将选择的模块图标拖拽到工作区之外或者拖回到库220中等方式来同时关闭所有所选择的模块。
图3是根据本发明的一些实施方式的、当用户正在操纵模块以及生态***识别活动模式时的工作区200的快照。具体而言,该用户当前正处于将一个或多个联系人从联系人模块210a拖拽到日历模块210b的过程中。
在本发明的示例性实施方式中,生态***监视该用户的活动,并且在观察识别出的行为模式的某个阈值次数后(例如,1、2、3),生态***向该用户提醒补充其活动的一个或多个模块的可用性。
这些模块可以被视为是补充的,因为它们被配置为执行有时连同观察的行为而被执行的一个或多个任务或者能够连同观察到的行为而被执行的一个或多个任务。一些补充模块可以是独立的(例如,产生它们自己的输出或执行它们的任务而不与另一个模块交互),而其他补充模块可以与一个或多个其他程序模块协同操作。
在图3中,提醒包括通知构件240,该通知构件240可以显示于用户工作区或视频接口设备的任何位置上(例如在工作区的一角)。该提醒可以仅是视觉性质的(并且可以闪烁、变化大小或颜色、或者展示旨在引起用户注意的其他行为),或者也可以包含可听的成分。
如果用户没有针对该提醒采取动作(例如,点击它、鼠标停于其上),则提醒可以在一段时间(例如1.5秒)之后逐渐消失。如图4中所示,如果她选择了提醒,则提供关于补充模块的进一步的信息。
图4是根据本发明的一些实施方式的、如可以在用户研究所建议的补充程序模块时出现的那样的工作区200的一部分的放大快照。
在图4中,用户已经选择(例如,点击)了图3中的通知构件240,并且向用户呈现了提供关于所建议的一个或多个模块的对话窗口或其他接口。附图示出了旅行优化器模块,但是本文描述的本发明的实施方式并不限于对任何具体类型程序模块的发现。
对话窗口250可以呈现多种信息,例如所建议的补充模块的姓名和/或说明、评价(例如反映其他生态***用户对该模块的意见)、其普及程度的指示(例如多少用户在其工作区库220中有该模块)等。
在一些实施方式中,可以向用户提供观看视频或影片片段的机会,该视频或影片片段显示补充模块如何工作以及该模块能够为她做些什么。
该窗口可以提供用于打开正在工作区200中的补充模块、为了日后而保存该模块(例如通过将图标放入用户的库220中)、在稍后的时间向用户提醒该模块等多种控件252。如果用户对使用所建议的模块不感兴趣,她可以关闭对话窗口或忽略它。
图5是根据本发明的一些实施方式的、如可以在用户接受所建议的补充程序模块并且在她的工作区中打开该模块时出现的那样的工作区200的另一个快照。
在图5中,补充模块210c响应于用户在提醒对话窗口中的动作而已经在工作区200中被打开。在一些实现方式中,可以修改其他打开的模块的布置、尺寸或位置,以便允许所选择的补充模块被显示出来。
在示例性实现方式中,所选择的旅行优化器模块自动计划并且在地图上标示出已经被添加到日历/调度模块的联系人的地址之间的最优路线。如果当旅行优化器模块打开时将另外的联系人拖拽到日历模块,则也将这些联系人在地图上标示出来。
按照以允许用户(或其他人)在指定的时间(例如,如联系人被拖拽到的日历时段所指示的)联系上每个所选择的联系人的方式来计划旅行。因此,旅行优化器可以包括或者调用能够在地址之间绘制地图的程序模块,或者如果需要的话可以调用一个外部服务(例如,提供地图绘制或方向的第三方web网站、提供交通更新的服务)。
图5的旅行优化器210c已经被配置为与联系人模块(模块210a)和日历模块(模块210b)协同操作。在其他实施方式中,该旅行优化器还可以与其他程序模块交互(并且甚至如果一个或多个模块还未打开则激活这些模块),例如与记账程序交互以便获得用于用户旅行期间所拜访的一个或多个联系人的未付款票据。
当用户选择接受或者打开所建议的补充程序模块,用于那个模块的图标可以保存或可以不保存到工具栏220。例如,生态***可以等待来自用户的、她希望保存快捷方式(即图标)并且不希望(例如因为她不喜欢该模块或者未发现它有用)丢弃该模块的确认。
在图5中,工作区200已经被增大为带有触发新的程序模块的创建的创建控件260。具体而言,通过激活或调用控件260,用户指示生态***(或她的工作区)产生包括在她的工作区之内当前打开的所有(或指定的)程序模块的复合程序模块。
当用户激活控件260时,可以自动进行新的复合模块的创建(例如以便包括所有打开的模块),或者可以呈现对话窗口或其他接口以便提示用户选择哪些模块将包括在复合模块中。
图6是根据本发明的一些实施方式的、显示复合程序模块的创建的工作区200的一部分的放大快照。为了完整并且清楚地示出新模块,视图省略了工作区200的一些部分的边缘。
具体而言,新复合模块212的表示被放置在工作区之上(并且因此可以覆盖或挡住包括新模块的一些或全部模块的多个部分)。组成模块210的多个部分在复合模块212之下是可见的。
继复合模块212的创建之后,并且如图6中所示,用户可以使用在与模块的创建相关联的对话窗口中提供的控件来取消该新模块的创建或者接受该新模块。用户还能够为该模块输入名称(例如在窗口的顶部附近的文本框中)。
应该注意尽管在图6所反映的本发明的一些实施方式中,创建复合程序模块212以便包括新近建议的并且“发现的”程序模块,但在本发明的其他实施方式中,用户能够根据任意一组多程序模块创建复合程序模块(即,不必首先不得不接受所建议的补充模块)。
响应于用户对复合程序模块212的创建,将新的模块图标添加到用户的工具栏220(未在图5中显示)。当用户将来激活新的图标时,在不同的实现方式中复合模块可以有差别地激活。
例如,激活复合模块可以导致所有组成模块(即模块210a、210b、210c)使用与在创建复合模块212时这些模块所具有的相同的空间布置来打开。
然而,在一些实现方式中,组成模块可以以与在创建复合模块时它们所具有的或者当时正在操作的相同数据、或者与在复合模块上次关闭时它们所正在使用的相同数据来打开。例如,联系人模块210a可以保留其所有联系人,而日历或者调度模块210b可以打开到与在创建模块212时日历或调度模块所展示的相同日期/时间并且具有相同的约会(即被拖拽的联系人)。类似地,旅行优化器模块210c可以以与在创建模块212时旅行优化器模块已经在地图上所标示的相同的数据点(地址)来打开。
在其他实现方式中,一些组成模块可以不以任何初始数据来打开。例如,联系人模块210a将可能总是以其会聚的数据(即用户保存的所有联系人)来打开。然而,日历模块210b和/或旅游优化器模块210c可以不以任何约会或地址(即空白的)、不以任何先前通过从模块210a中拖拽联系人而制定的约会或旅行目的地来打开,或者以某个其他方式来打开。
在有一些实施方式中,可以针对应该如何打开复合模块而询问用户——以先前的数据、以用户标识的一组数据、使用数据的空白组、或者以某个其他方式来打开。
然而,当被激活时复合模块运转起来,可能要注意用户能够快速访问该模块的功能(例如通过激活单个图标的方式)。在不能创建复合模块的计算环境中,在每次她想要计划优化的旅行时,都将必须单独地调用每个组成程序模块。
在本发明的一些实施方式中,针对复合模块修改多个模块图标230的布局(在图5中显示)。例如,代替显示用于复合模块内每个模块的分离的模块图标,可以由包括表示各个组成模块的一组嵌套模块图标的图标来表示该复合模块。因此,由于具有表示独立的模块的模块图标,复合模块的所有元件可以被一起关闭(或最小化或者以其他方式操纵)。
图7是根据本发明的一些实施方式的、显示用于启动复合程序模块的工具栏图标的工作区200的一部分的快照。为了完整并清楚地示出模块的图标,视图省略了工作区200的一些部分。
如图7中所示,将新的图标712添加到工具栏220,以便允许用户快速打开复合模块212(例如,通过左键点击、通过双击、通过将其拖拽到工作区)。鼠标停在图标上或者右键点击图标可以向用户呈现其他选项。
具体而言,图7反映了该用户与其他用户共享新的复合模块的能力。示例性地,她能够将其转发给特定用户,或者将其寄存在由生态***所主控的程序模块目录中。她还能够对其进行编辑(例如,以便改变其名称、改变组成模块的布局)。所有这些选项中的一些可以经由工具栏220中的新的模块的图标而对她保持可用。
在一些实施方式中,用户能够对复合程序模块进行编辑以便包括一个或多个附加模块。因此,她可以发现另一个生态***模块能够与该复合模块协作,或者可以尝试与该复合模块使用多种模块。
当与另一个用户共享复合程序模块、并且那个用户打开该复合模块时,该复合模块可以以来自另一个用户的缺省数据(即以那个用户的联系人列表和调度)来打开,而不以一组初始约会或旅行目的地。
然而,原始用户(即创建该复合模块的用户)能够指定该复合模块应该以一组由原始用户指定的数据来为另一个用户打开。
图8是根据本发明的一些实施方式的、演示了用于在计算生态***的用户工作区内产生复合程序模块的方法的流程图。
在操作802中,生态***存储工作流程活动的模式或配置简档,这些模式或配置简档指示或表示在生态***内对于用户可用的具体的补充程序模块。更具体而言,这些模式描述了这样的行为,当被用户复制时,该行为可以指示用户正在执行或者希望执行能够由相应的程序模块完成的任务。
例如,诸如将联系人从联系人列表拖拽到日历或调度模块之类的重复的用户行为可以与关联于计划旅行或者调度一系列电话呼叫的模式相匹配。或者,将各个文件从一个文件夹或名录拖拽到另一个文件夹或名录可以与指示用于制作档案或备份的程序模块的工作流程模式相匹配。
可以保存用于任何数目的模块的任何数目的活动模式,而且不止一个模式可以与给定模块对应,这依赖于模块的功能。新的模式和配置简档可以随着时间添加到生态***的资源库,例如当新的程序模块被发布时。
在操作804中,用户激活了她的工作区内的一个或多个程序模块。这种激活可能需要点击与模块有关的图标、将该图标拖拽到用户工作区或工作区内的桌面等等。
在操作806中,由于用户操纵程序模块,生态***监视她的活动以便将其与存储的工作流程活动的模式或配置简档相比较。该监视可以实时地执行,或者可以稍微延迟以便不会干扰用户的实际活动。
在操作808中,生态***确定当前的活动模式(例如,一系列操作、按键、鼠标移动)是否与存储的模式相匹配。如果是这样,则方法前进到操作810;否则,方法返回到操作806以便继续监视。
在操作810中,向用户提醒补充程序模块的可用性,该程序模块提供用户可能希望利用的功能。可以建议任何数量的补充模块,而且可以可闻和/或可视地提醒用户(例如通过在她的工作区中的通知图标)。
在本发明的一些实施方式中,用户能够采取某个动作,以便接收关于所建议的补充程序模块的进一步信息。例如,通过鼠标停在与通知相关的或者与特定补充模块相关联的图标上、或者点击该图标,用户可以被给予选项,以便观看模块的描述从而获悉它的功能、观看显示该模块如何工作的视频、请求模块再也不要被建议等。
在操作812中,生态***确定用户是否已经接受用于当前使用的补充模块。如果是这样,方法前进到操作814;否则,方法在一段时间之后(从而给予该用户足够的时间来接受建议)返回到操作806。
在操作814中,所选择的补充程序模块在用户的工作区中被打开。它可以如由新用户第一次打开那样的打开(即没有初始化),或者可以打开到一个状态,该状态反映了如果自从被监视的连续活动开始用户一直在操作该模块,那么它将如何表现。具体而言,可以以在对用户活动的监视期间用户已经操纵的数据来填充该模块,可以将该模块打开到与用户已经使用其他程序模块所完成的事情相兼容的任务等。
在操作816中,用户如期望地那样操作补充程序模块和先前打开的模块。示例性地,她可以访问用于该补充模块的指导资源或其他帮助资源,以便查看其如何工作或者其如何与其他模块一起工作。
在操作818中,向用户提供创建包含补充模块以及先前打开的一些或全部模块(即与该补充模块协作的模块)的复合程序模块的机会。只要用户接受并且开始使用补充程序模块就做出这个提供,或者在用户使用了该模块一段时间之后再做出提供。
在操作820中,生态***确定用户是否已经接受或者激活与复合模块的创建相关联的控件。如果是这样,方法前进到操作822;否则,方法可以结束,可以在稍后的时间再次提供选项,或者可以返回到监视用户的活动以便确定是否另一个补充程序模块可能是有用的。
在操作822中,生态***产生用于复合程序模块的新图标,并且将其与用于其他程序模块的图标一起存储(例如,在工具栏中、在名录中)。
如果以及当用户激活复合程序模块的图标,补充的以及在先的程序模块可以使用与在用户执行用于制作该复合模块的控件时这些模块所具有的相同的空间布置来打开。因此,每个模块可以打开到相同的状态,并且具有相同的数据,如其在那时***作的一样。这允许用户恢复到她之前离开工作的位置、回顾她使用这些模块完成的事情等。
在本发明的其他实施方式中,程序模块可以打开到初始或中间状态。在这些实施方式中,代替于返回到先前的使用,用户可以开始利用模块的新的杂务或任务。
在操作824中,用户能够与其他生态***用户共享复合程序模块。他能够通过使用电子邮件向一个用户发送到该复合模块的链接、通过将该复合模块添加到生态***程序模块的目录、或者通过采取某个其他动作来这样做。
图9是根据本发明的一些实施方式的、用于在划定界限的计算环境内服务程序模块、发现模块以及构建新的模块的设备的框图。
图9的生态***设备900包括用于与客户端和/或与第三方(例如外部web网站和/或服务)进行通信的通信机构902。通信机构902可以处理设备900和客户端(例如由用户操作的计算设备)之间的大多数或所有的通信,并且可以配置为利用几乎任何的通信协议和格式,包括但不限于HTTP(超文本传输协议)、FTP(文件传输协议)、TCP(传输控制协议)、IP(互联网协议)、SNMP(简单网络管理协议)等。
与机构912相匹配的工作流程模式适于监视用户行为并且将用户活动模式与指示已知程序模块的活动模式相比较。如先前所描述的,发现匹配允许生态***设备900向用户标识可能是有用的并且他或她可能未知晓的一个或多个程序模块。
补充模块建议机构914适于向用户建议补充程序模块,该建议基于如由机构912所发现的用户工作活动与反映该模块的活动模式之间的匹配而进行的。机构914可以经由通知构件或工具来提醒用户,并且可以向用户呈现有关于所建议的模块的信息(例如,说明、用户评价),以便帮助他决定是否使用该模块。
复合模块创建机构916适于促进根据正被用户操作的两个或多个已有模块创建新的复合程序模块。如先前所描述的,当用户正在操纵两个或多个程序模块时,尤其操纵协同工作以便完成任务或执行功能(二者都不能被单独执行)的模块,她可以发起对包括协作的模块的复合模块的创建。
当机构916被激活时,它将产生用于用户工作区的工具栏的新的模块图标,以便允许她将来很容易地打开所有组成程序模块。机构916还可以帮助用户与其他用户共享该新的复合模块。
模块提供机构918适于将程序模块提供给客户端(例如,经由通信机构902)。模块可以包括单独的或独立的程序模块和/或包括多协作程序模块的复合程序模块。要注意给定的程序模块可以作为独立模块而是有用的,也可以作为复合模块的一个组件而是有用的。
在本发明的其他实施方式中,生态***设备900的任何或所有机构的功能可以组合或进一步细分。
图10是根据本发明的一些实施方式的自动化行为指导***的框图。
图10的生态***1000包括处理器1002、内存1004、和存储器1006,存储器1006包括一个或多个光学和/或磁性存储器组件。生态***1000可以(永久性地或暂时性地)耦合到键盘1012、指向设备1014和显示器1016。在一些实施方式中,生态***1000可以包括集中式的或基于云的服务器。客户端可以经由web浏览器、移动设备、桌上型计算机或工作站等、使用有线和/或无线连接而连接到***。
自动化指导***的存储器1006存储可以被加载到内存1004中以便由处理器1002执行的逻辑。这种逻辑包括程序模块提供逻辑1022、模块发现逻辑1024和复合模块产生逻辑1026。
程序模块提供逻辑1022包括用于将程序模块从生态***1000提供到任何数量的客户端的处理器可执行指令。这些模块包括独立和/或复合模块。
模块发现逻辑1024包括用于帮助用户发现新的并且有用的程序模块的处理器可执行指令。因此,逻辑1024可以配置为将用户工作流程活动的模式与已知程序模块的功能相比较、提醒用户可以补充她当前的任务的模块的存在、以及提供关于该模块如何操作的信息。
复合模块产生逻辑1026包括用于构建复合程序模块以包括两个或多个其他模块的处理器可执行指令。其他模块中的一个或多个模块可以本身是复合程序模块。逻辑1026还将在用于启动复合模块的用户工作区中产生新的图标。
可能要注意不同的用户可以独立地创建相同或相似的复合模块。然而,逻辑1026还可以辅助用户与其他用户共享那个用户所创建的复合模块。
餐品推荐逻辑828包括用于推荐餐品的处理器可执行指令。该餐品推荐逻辑可以如先前所述的或者如在以下部分中所详述的来操作。
本发明的本实施方式所执行的环境可以并入通用计算机或者诸如手持式计算机之类的专用计算机。为了清楚的目的,可以省略此类设备的细节(例如,处理器、内存、数据存储器、显示器)。
在该具体实施方式中所描述的数据结构和代码典型地存储在计算机可读存储器介质上,该存储器介质可以是能够存储用于被计算机***使用的代码和/或数据的任何设备或介质。该计算机可读存储器介质包括但不限于易失性存储器、非易失性存储器、诸如磁盘驱动器、磁带、CD(光盘)、DVD(数字多功能光盘或数字视频光盘)或者现在已知的或者以后开发的能够存储计算机可读介质的其他介质之类的磁性和光学存储设备。
在该具体实施方式中描述的方法和过程可以体现为可以存储在如上所述的计算机可读存储器介质中的代码和/或数据。当计算机***读取并且执行存储在计算机可读存储器介质上的代码和/或数据时,计算机***执行体现为存储在计算机可读存储器介质内的数据结构和代码的方法和过程。
此外,下面描述的方法和过程可以包括在硬件模块中。例如,硬件模块可以包括、但不限于专用集成电路(ASIC)芯片、现场可编程门阵列(FPGA)、以及现在已知或者以后开发的其他可编程逻辑器件。当硬件模块被激活时,硬件模块执行包括在硬件模块内的方法和过程。
仅为了示例和说明的目的而提出了本发明的实施方式的前述说明。它们不旨在是穷举性的或者将本发明限于所公开的形式。因此,对于本领域从业者来说将清楚许多修改和变化。本发明的范围由所附的权利要求书而非前面的公开来限定。

Claims (18)

1.一种用于在主控多程序模块的计算生态***内组装复合程序模块的方法,所述方法包括:
响应于第一用户激活对应于所述生态***内的第一用户工作区内的所述多程序模块中的多个程序模块的图标,执行所述多个程序模块;
使用所述多个程序模块观察所述第一用户的活动模式;
向所述第一用户提醒与所述多个程序模块不同的一个或多个建议的程序模块,其中每个建议的程序模块被设计为执行与所观察的活动模式相兼容的操作;以及
在所述第一用户接受第一建议的程序模块之后:
显示用于创建复合程序模块以便包括所述第一建议的程序模块和所述多个程序模块的控件;以及
如果所述第一用户激活所述控件,则创建所述复合程序模块。
2.根据权利要求1所述的方法,其中:
创建所述复合程序模块包括在所述第一用户工作区中显示与所述复合程序模块对应的复合图标;以及
激活所述复合图标自动地触发所述第一建议的程序模块和所述多个程序模块的执行。
3.根据权利要求2所述的方法,其中所述激活所述复合图标使得所述第一建议的程序模块和所述多个程序模块在所述第一用户工作区中以与所述第一用户激活所述控件时所展示的相同的空间布置来执行。
4.根据权利要求1所述的方法,进一步包括,如果所述第一用户激活所述控件:
则使得所述第一用户能够与所述生态***内的一个或多个其他用户共享所述复合程序模块。
5.根据权利要求1所述的方法,进一步包括:
将所观察的活动模式和与所述多程序模块的子集关联的存储的活动模式相比较,所述多程序模块包括所述一个或多个建议的程序模块。
6.根据权利要求1所述的方法,其中所述提醒包括发布可听的提醒。
7.根据权利要求1所述的方法,其中所述提醒包括在所述第一用户工作区内发布可视的提醒。
8.根据权利要求1所述的方法,进一步包括,在所述提醒之后:
接收请求关于所述第一建议的程序模块的附加信息的用户输入;以及
响应于所述用户输入,显示所述第一建议的程序模块的描述。
9.根据权利要求1所述的方法,进一步包括,在所述提醒之后:
接收请求关于所述第一建议的程序模块的附加信息的用户输入;以及
响应于所述用户输入,显示由其他用户对所述第一建议的程序模块的评价。
10.根据权利要求1所述的方法,进一步包括,在所述提醒之后:
接收请求关于所述第一建议的程序模块的附加信息的用户输入;以及
响应于所述用户输入,向所述第一用户提供描述所述第一建议的程序模块的操作的视频。
11.一种用于在主控用于在用户工作区内执行的程序模块的计算生态***内组装复合程序模块的方法,所述方法包括:
在所述生态***内的第一用户工作区内,接收第一用户对与所述生态***程序模块的一个或多个生态***程序模块所对应的图标的激活;
主控所述一个或多个生态***程序模块的执行;
使用所述一个或多个生态***程序模块观察所述第一用户的活动模式;
向所述第一用户通告与所观察的活动模式相兼容的一个或多个补充程序模块的可用性;
执行由所述第一用户从所述一个或多个补充程序模块选择的第一补充程序模块;
在所述第一用户工作区中显示可驱动的控件;以及
响应于所述第一用户对所述控件的驱动:
在所述第一用户工作区内创建与复合程序模块对应的新图标,所述复合程序模块包括所述一个或多个生态***程序模块和所述第一补充程序模块;以及
使得所述第一用户能够与其他用户共享所述复合程序模块;
其中所述新图标的激活自动地触发以与在所述控件的所述驱动时所展示的相同的空间布置执行所述一个或多个生态***程序模块和所述第一补充程序模块。
12.根据权利要求11所述的方法,进一步包括,在所述主控执行之前:
存储工作流程活动模式,所述工作流程活动模式指示所述生态***程序模块内的补充程序模块的子集的功能。
13.根据权利要求12所述的方法,其中所述通告包括:
检测所观察的活动模式和一个或多个所存储的工作流程活动模式之间的匹配。
14.根据权利要求11所述的方法,其中在所述自动地触发的执行之后,所述一个或多个生态***程序模块和所述第一补充程序模块以与在所述控件的驱动期间其所执行的相同的数据来开始执行。
15.根据权利要求11所述的方法,其中在所述自动地触发的执行之后,所述一个或多个生态***程序模块和所述第一补充程序模块以与在所述控件的驱动期间其所执行的一组数据不同的一组数据来开始执行。
16.根据权利要求11所述的方法,其中图标的激活包括点击所述图标。
17.根据权利要求11所述的方法,其中图标的激活包括将所述图标拖拽到工作区。
18.一种存储指令的计算机可读介质,当所述指令被计算机执行时,使得所述计算机执行在计算生态***内组装复合程序模块的方法,所述计算生态***主控用于在用户工作区内执行的程序模块,所述方法包括:
在所述生态***内的第一用户工作区内,接收第一用户对与所述生态***程序模块的一个或多个生态***程序模块所对应的图标的激活;
主控所述一个或多个生态***程序模块的执行;
使用所述一个或多个生态***程序模块观察所述第一用户的活动模式;
向所述第一用户通告与所观察的活动模式相兼容的一个或多个补充程序模块的可用性;
执行由所述第一用户从所述一个或多个补充程序模块选择的第一补充程序模块;
在所述第一用户工作区中显示可驱动的控件;以及
响应于所述第一用户对所述控件的驱动:
在所述第一用户工作区内创建与复合程序模块对应的新图标,所述复合程序模块包括所述一个或多个生态***程序模块和所述第一补充程序模块;以及
使得所述第一用户能够与其他用户共享所述复合程序模块;
其中所述新图标的激活自动地触发以与在所述控件的所述驱动时所展示的相同的空间布置执行所述一个或多个生态***程序模块和所述第一补充程序模块。
CN201080024622.8A 2009-06-25 2010-06-24 在计算生态***中创建复合程序模块 Active CN102804167B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/492,049 2009-06-25
US12/492,049 US8448136B2 (en) 2009-06-25 2009-06-25 Creating a composite program module in a computing ecosystem
PCT/US2010/039743 WO2010151615A2 (en) 2009-06-25 2010-06-24 Creating a composite program module in a computing ecosystem

Publications (2)

Publication Number Publication Date
CN102804167A true CN102804167A (zh) 2012-11-28
CN102804167B CN102804167B (zh) 2015-09-02

Family

ID=43381904

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080024622.8A Active CN102804167B (zh) 2009-06-25 2010-06-24 在计算生态***中创建复合程序模块

Country Status (5)

Country Link
US (1) US8448136B2 (zh)
CN (1) CN102804167B (zh)
DE (1) DE112010002721T5 (zh)
GB (1) GB2483380A (zh)
WO (1) WO2010151615A2 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9459764B1 (en) * 2008-11-11 2016-10-04 Amdocs Software Systems Limited System, method, and computer program for selecting at least one predefined workflow based on an interaction with a user
US20110029904A1 (en) * 2009-07-30 2011-02-03 Adam Miles Smith Behavior and Appearance of Touch-Optimized User Interface Elements for Controlling Computer Function
US9141345B2 (en) * 2010-01-27 2015-09-22 Microsoft Technology Licensing, Llc Simplified user controls for authoring workflows
US9338116B2 (en) * 2013-06-28 2016-05-10 Blackberry Limited Device and method for displaying and interacting with display objects
US20170024086A1 (en) * 2015-06-23 2017-01-26 Jamdeo Canada Ltd. System and methods for detection and handling of focus elements
US10444975B2 (en) * 2017-07-18 2019-10-15 Google Llc Graphical icon manipulation
US11941412B1 (en) * 2017-12-20 2024-03-26 Intuit Inc. Computer software program modularization and personalization
US11636006B2 (en) 2021-03-03 2023-04-25 Chewy, Inc. System and method for modular construction of executable programs having self-contained program elements

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030051077A1 (en) * 2001-09-10 2003-03-13 Lynda Fengler System and method for providing instruction to a peripheral device user
US20040003389A1 (en) * 2002-06-05 2004-01-01 Microsoft Corporation Mechanism for downloading software components from a remote source for use by a local software application
US20070198969A1 (en) * 2006-02-21 2007-08-23 International Business Machines Corporation Heuristic assembly of a component based application
US20080244527A1 (en) * 2007-03-29 2008-10-02 International Business Machines Corporation Tooling for implementing business processes using web services
WO2009000264A2 (en) * 2007-06-24 2008-12-31 Soren Lanng An automatic trading system with computer aided decision-methods of when to buy and sell on stock exchanges
CN101414239A (zh) * 2007-10-16 2009-04-22 株式会社日立制作所 数据处理装置的信息提供方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3403365B2 (ja) * 1999-12-13 2003-05-06 松下電器産業株式会社 クロック抽出回路
JP3885657B2 (ja) * 2002-05-10 2007-02-21 Kddi株式会社 Ofdm信号の周波数誤差を補正する受信装置
WO2003098451A1 (en) * 2002-05-16 2003-11-27 Agency For Science, Technology And Research Apparatus for discovering computing services architecture an developing patterns of computing services and method therefor
JP2006099308A (ja) * 2004-09-29 2006-04-13 Hitachi Ltd コンポーネントベース・アプリケーション構築方法
US20060150188A1 (en) * 2004-12-21 2006-07-06 Manuel Roman Method and apparatus for supporting soft real-time behavior
US7779383B2 (en) * 2005-12-01 2010-08-17 Sap Ag Composition model and composition validation algorithm for ubiquitous computing applications
US7836439B2 (en) * 2006-02-03 2010-11-16 Research In Motion Limited System and method for extending a component-based application platform with custom services
KR100826376B1 (ko) * 2006-11-24 2008-05-02 삼성전기주식회사 Cdma 수신기의 매핑을 이용한 상관 방법 및 신호 처리방법
US7596583B2 (en) * 2007-03-29 2009-09-29 International Business Machines Corporation Dynamic learning in redesigning a composition of web services
US9513881B2 (en) * 2007-06-27 2016-12-06 International Business Machines Corporation System for the discovery and provisioning of artifacts and composites
US20090259987A1 (en) * 2008-04-11 2009-10-15 International Business Machines Corporation Method, system and computer program product for recommending components based on common usage patterns
US8245223B2 (en) * 2008-12-23 2012-08-14 Microsoft Corporation Networked deployment of multi-application customizations
US8244564B2 (en) * 2009-03-31 2012-08-14 Richrelevance, Inc. Multi-strategy generation of product recommendations

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030051077A1 (en) * 2001-09-10 2003-03-13 Lynda Fengler System and method for providing instruction to a peripheral device user
US20040003389A1 (en) * 2002-06-05 2004-01-01 Microsoft Corporation Mechanism for downloading software components from a remote source for use by a local software application
US20070198969A1 (en) * 2006-02-21 2007-08-23 International Business Machines Corporation Heuristic assembly of a component based application
US20080244527A1 (en) * 2007-03-29 2008-10-02 International Business Machines Corporation Tooling for implementing business processes using web services
WO2009000264A2 (en) * 2007-06-24 2008-12-31 Soren Lanng An automatic trading system with computer aided decision-methods of when to buy and sell on stock exchanges
CN101414239A (zh) * 2007-10-16 2009-04-22 株式会社日立制作所 数据处理装置的信息提供方法

Also Published As

Publication number Publication date
WO2010151615A3 (en) 2011-04-21
GB2483380A (en) 2012-03-07
WO2010151615A2 (en) 2010-12-29
US8448136B2 (en) 2013-05-21
DE112010002721T5 (de) 2012-08-09
CN102804167B (zh) 2015-09-02
GB201118123D0 (en) 2011-11-30
US20100332581A1 (en) 2010-12-30

Similar Documents

Publication Publication Date Title
CN102804167B (zh) 在计算生态***中创建复合程序模块
Von Rosing et al. Business Process Model and Notation-BPMN.
US12045905B2 (en) Systems and methods for transportation coordination in healthcare and other settings
US10373084B2 (en) Integrated resource tracking system
Barrett et al. Reconfiguring boundary relations: Robotic innovations in pharmacy work
US7516103B1 (en) Method and apparatus for facilitating electronic acquisition and maintenance of goods and services via the internet
Button et al. The production of order and the order of production
US9015207B2 (en) Mobile sales tracking system
CN110073384A (zh) 用于用户生活事件的个性化自适应任务框架
US20160156509A1 (en) Method and Apparatus for Implementing an Active Information Model
US20100131916A1 (en) Software for modeling business tasks
US20070250784A1 (en) Methods and apparatus to combine data from multiple computer systems for display in a computerized organizer
Geum et al. The customisation framework for roadmapping product-service integration
US20080244594A1 (en) Visual scripting of web services for task automation
US20060015479A1 (en) Contextual navigation and action stacking
Munroe et al. Crossing the agent technology chasm: Lessons, experiences and challenges in commercial applications of agents
Nagadi et al. A hybrid simulation-based assessment framework of smart manufacturing systems
JP2005502928A (ja) トップダウン型のビジネスプロセスの定義付けおよび実行のための方法およびシステム
US20200160360A1 (en) Systems and Methods for Interactive Web-Based Processing of Real Estate Transactions
US20130339980A1 (en) Composite application enabling workflow between unmodified constituent applications
US7836457B2 (en) Hybrid contextual floor plans for object instances
CN105393086A (zh) 捕捉和管理项目的用户体验
Youssef et al. EOS: enterprise operating systems
Dalal et al. Understanding Human Intervention in the Platform Economy: A case study of an indie food delivery service
Murphy et al. Adoption of Robots for Disasters: Lessons from the Response to COVID-19

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant