管理由一组移动设备共享的列表中的项的系统和方法

文档序号:6334119阅读:578来源:国知局
专利名称:管理由一组移动设备共享的列表中的项的系统和方法
管理由一组移动设备共享的列表中的项的系统和方法技术领域
以下内容涉及用于管理由一组移动设备共享的工程(project)中的任务的系统 和方法。
背景技术
在多个实体之间共享数据典型地通过在可集中访问的服务器上的数据库中提供 共享数据的集合来实现。位于中心服务器上的文档或版本管理系统可以管理任何改变、更 新、编辑等。
在服务器上实现数据库或共享数据可能具有以下缺点。例如,提供专用服务器和 数据库服务典型地需要附加硬件、管理、基础设施和对应的开销。还存在关于谁能够访问数 据以及这种数据容易受黑客或其他攻击者影响的私密性问题。此外,在服务器上维护数据 的主拷贝需要对版本控制进行严格监控,并且典型地需要某种机制来向能够访问数据的人 员更新所输入的任何编辑。根据能够访问数据的用户组的大小、以及所存储的数据量,这种 任务将增加另外的管理开销。当允许对中心数据库进行无线访问时,低带宽和高延迟也可 能对系统有所限制,而影响数据的一致性和对数据的访问。发明内容
本发明可以提供一种移动设备、一种计算机可读介质以及一种用于对移动设备进 行操作的方法,其中,所述方法可以包括获得共享数据项的列表;获得公共消息,所述公 共消息具有对所述列表中的项的值的期望改变;以及确定对所述值的所述期望改变是否已 经完成,如果未完成,则以所述期望改变来更新所述列表。
本发明还可以提供一种移动设备、一种计算机可读介质以及一种用于对移动设备 进行操作的方法,其中,所述方法可以包括获得共享数据项的列表;产生公共消息,所述 公共消息具有对所述列表中的项的值的期望改变;以及向一个以上的其他移动设备发送所 述公共消息。
本发明还可以提供一种移动设备、一种计算机可读介质以及一种用于对移动设备 进行操作的方法,其中,所述方法可以包括产生共享数据项的列表;与一个以上的移动设 备共享所述列表;以及向所述一个以上的移动设备中的至少一个发送公共消息,以更新所 述列表。


现在将参照附图,仅以示例方式来描述实施例,附图中
图1 (a)是示意了共享公共数据集合的一组移动设备的示意图。
图1 (b)是示意了使用图1 (a)中所示的组来进行组列表管理的示意图。
图2是示意了用于图1中所示的共享数据的数据库存储等级体系的示意图。
图3是示意了从主机系统将数据项推送至移动设备的环境的系统图。
图4是移动设备的示例实施例的方框图。
图5是示意了图4中所示的其他软件应用和组件中的示例软件应用和组件的方框 图。
图6是示意了在一组移动设备之间进行对等(P2P)消息收发的示例配置的系统 图。
图7是图5中所示的组共享应用的示例方框图。
图8是示意了根据在一组移动设备之一处进行的更新、向该组移动设备传送组消 息的流程图。
图9(a)至9(c)是一系列流程图,示意了对组消息的传送的肯定应答,并示意了针 对“不在覆盖范围内”场景来保持消息。
图10(a)至10(c)是一系列流程图,示意了在“返回覆盖范围内”场景中转发所保 持的消息,以及返回覆盖范围内的移动设备所进行的新组消息的后续传送。
图11(a)至11(f)是一系列流程图,示意了针对共享数据中的相同记录的更新的 示例冲突解决场景。
图12是用于图5中所示的组共享应用的示例图形用户界面(GUI)。
图13(a)至13(g)是示意了使用组共享应用来维持的列表应用的示例⑶I。
图14是示意了新列表项创建的示例屏幕截图。
图15是示意了列表排序菜单界面的示例屏幕截图。
图16(a)至16(d)是示意了使用用于管理组工程中的任务的组共享应用来维持的 列表应用的示例GUI。
图17是示意了新组创建的示例屏幕截图。
图18是示意了显示组条码以使得新成员能够通过扫描条码来加入组的界面的示 例屏幕截图。
图19是示意了用于向不是组成员的联系人发送聊天、图片或列表的菜单界面的 示例屏幕截图。
图20是示意了用于改变组选项的界面的示例屏幕截图。
图21是示意了用于使新的组成员能够被邀请至组的界面的示例屏幕截图。
图22是示意了用于添加新的组成员的界面的示例屏幕截图。
图23是示意了用于添加新的组成员的另一界面的示例屏幕截图。
图M是示意了用于显示组细节(包括使组条码能够被显示在移动设备上)的示 例屏幕截图。
图25是示意了能够使组联系人被添加为即时消息联系人的提示的示例屏幕截 图。
图沈是示意了各种组活动的扩展列表的示例屏幕截图。
图27是示意了用于发表图片的界面的示例屏幕截图。
图观是示意了用于实现对图片的讨论的界面的示例屏幕截图。
图四是示意了用于记录语音注释的界面的示例屏幕截图。
图30是示意了用于创建新的组约会的界面的示例屏幕截图。
图31是示意了用于显示组日程的界面的示例屏幕截图。
图32是示意了用于启动包括组日程选项在内的另一界面的菜单界面的示例屏幕 截图。
图33是示意了用于设置管理员口令的菜单界面的示例屏幕截图。
图34是示意了用于改变管理员口令的菜单界面的示例屏幕截图。
图35是示意了用于取消管理员特权的菜单界面的示例屏幕截图。
图36是示意了用于使用户成为管理员的菜单界面的示例屏幕截图。
图37是示意了用于备份联系人列表的界面的示例屏幕截图。
图38是示意了用于恢复联系人列表的界面的示例屏幕截图。
图39是示意了用于使用备份文件来恢复联系人列表的界面的示例屏幕截图。
图40是示意了基于移动设备组中的一个移动设备所进行的改变来更新共享数据 的示例计算机可执行指令的流程图。
图41是示意了用于确定记录更新之间是否存在冲突、并解决任何这种冲突的一 个实施例的示例计算机可执行指令的流程图。
图42是示意了示例组成员等级体系的方框图。
图43是示意了根据图42的等级体系的示例家庭组的方框图。
图44是示意了用于确定记录更新之间是否存在冲突、并解决任何这种冲突的另 一实施例的示例计算机可执行指令的流程图。
图45是示意了用于根据图42中所示的示例组成员等级体系来解决记录更新之间 的冲突的示例计算机可执行指令的流程图。
图46 (a)和46 (b)是示意了在移动设备处高速缓存未传送的组消息的示例备选实 施例的示意图。
图47是示意了被配置为跟踪设备覆盖范围并发送在覆盖范围内和不在覆盖范围 内消息的对等服务器的示例备选实施例的方框图。
图48是示意了通过监控肯定应答消息和发送在覆盖范围内和不在覆盖范围内消 息来使图47中的对等服务器跟踪设备覆盖范围的示例计算机可执行指令的流程图。
图49(a)至49 (c)是示意了用于向组添加新成员的示例预配置过程的示意图。
图50是示意了用于向组添加新成员的示例计算机可执行指令的流程图。
具体实施方式
应当认识到,为了示意简洁清楚,在适当的情况下,在附图之间将重复使用参考标 号来指示对应或类似的元件。此外,阐述了许多具体细节,以提供对所述实施例的透彻理 解。然而,本领域技术人员应当认识到,没有这些具体细节也可以实现这里描述的实施例。 在其他实例中,未具体描述公知方法、过程和组件,以免使所述实施例含混不清。此外,以下 描述不应被理解为对所述实施例范围的限制。
本发明提供了一种方法和系统,用于管理包括多个项在内的列表,例如用于管理 工程中的任务。为了共享工程和管理与该工程相关联的任务,可以使用一种底层系统和方 法,用于在包括多个移动设备在内的组中共享数据,而不需要数据库或服务器来集中存储 共享数据。取而代之地,每个组成员单独存储共享数据,同时控制对共享数据进行更新的方 式。为了管理这种更新,对共享数据进行原子化,使得共享数据中的各个数据库被分离或描述为一个以上的记录,每个记录具有与其相关联的值。
记录的值可以表示用户可定义/可定制的字段,或者可以是备选项的有限集合之 一,例如是/否、一天中的时刻等。为了在每个设备处维持共享数据的共同拷贝,使用中间 消息交换服务来向所有组成员发送任何更新,该中间消息交换服务能够在必要时向多于一 个接收方传送发送消息。按照这种方式,经由公共消息将更新组播至所述组。为了管理共 享数据的内容,每个更新包括对相应记录的当前拷贝的一个以上的改变。
于是,在接收端,可以对每个记录进行评估,并(根据特定准则)将其整体替换,以 简化对类似记录的更新之间的冲突解决,并禁止改变传播至整个共享数据。换言之,可以使 用原子化的改变,使得针对每次添加、改变或更新,仅影响与单一记录相关联的数据、信息、 选择或其他值。通过这种方式来管理共享数据,对共享数据的共享还对不在覆盖范围内情 形更加宽容。当设备不在覆盖范围内时,包含更新的消息将被保持,直到设备回到覆盖范围 内,或者可以周期性地重新发送消息,或者两者兼有。
图1 (a)示意了 4个成员A、B、C、D的示例组10,4个成员之间具有共享数据集合 11。成员A、B、C、D可以是能够发送、接收、检查、存储或者处理或处置数据的任何数据通信 设备,在以下示意示例中,包括移动通信设备100(也见图幻。组10可以具有任何大小,但 是对于以下示例,是与其他任何人具有相同关系的成员或用户的小静态集合,例如家庭、运 动队、协作者、小商户、俱乐部或组织等。如上所述,共享数据11存在,但不需要由中心实体 控制的主拷贝,而是通过经由能够进行组播消息交换的消息交换服务来交换包括更新的组 播消息,以在每个成员处维持共享数据11的拷贝。
尽管未示出,但是在组10的成员的子集之内和之间,也可以形成私有子组,以共 享私有共享数据的集合。这允许特定成员共享一些指定数据和信息,但不允许其他成员访 问这种数据。例如,如果组10是家庭,父母可以形成子组,以共享针对其子女的礼物意见或 者其他信息,如教育策略或敏感性质的主题。这避免了需要仅仅为了共享一些选择信息而 形成完全独立的组10。可以认识到,共享数据11和任何私有共享数据可以是分离的数据库 或公共数据库的分离的部分。还可以认识到,图1(a)示出了一个组10,但是成员也可以属 于多个组,其中每个组具有与该组10互斥的不同共享数据集合11 (未示出)。
图1(b)示意了图1(a)所示的组10的具体实现,用于共享组列表11’,并管理该 组列表11’内的项。如本示例所示,组列表11’可以表示包括多个任务的工程(project)。 通过利用这里讨论的原理,可以在组工程内管理组任务,通过交换组任务消息8来维持组 工程11’,组10的每个成员可以看到工程状态的最新视图。类似地,可以分配任务,消息可 以与组工程11’相关联,通过这里所讨论的数据分发,组成员可以看见上述任务和消息。这 可以尤其有利于公司工程团队来建立组,并使用这里采用的机制来管理一个以上的工程。
图2示意了一个实施例中的共享数据11的结构。本实施例中的共享数据11包 括一个以上的数据库90。每个数据库90可以具有与其相关联的一个以上的记录92,记录 92使得每个数据库90能够包括各种组件。每个记录92具有与其相关联的值94,表示数据 库90中与该特定记录名称相关联的部分。例如,日程程序或小应用程序可以在共享数据11 中表示为数据库90,该数据库90具有针对每个月中每一天的每一个小时时段的记录92。 每个记录92可以包含相应日的约会,该约会由值94(例如字母数字串)表示。因此,从图 2可以看出,可以对共享数据11给出分层结构,以提供精细至记录级的颗粒度,使得在添加新记录92或修改现有记录92时,可以在相应数据库90中简单地添加或改写记录92,而不 会干扰共享数据11的其他组件。可以认识到,多于一个数据库90可以与特定应用或小应 用程序相关联。例如,图片共享应用可以具有图片数据库90和用于与图片相关联的对话或 注释的另一数据库90。
可以认识到,图2所示的层的颗粒度和数目仅用于示意目的,也可以使用其他结 构。例如,可以使用另一更高层级来分离每个数据库内的对象(未示出)。回到日程示例, 日程(数据库90)可以包括针对日程中的每一天的对象,具有针对每个小时的记录92,值 94包含针对该小时可以写入的任何内容。备选地,如上所述,日程应用可以代之以具有多 个数据库90,每个数据库表示月、星期、日等。如图2所示的分层结构使得能够通过在特定 层,典型地在包括含有与组10相关的信息的实际值在内的层,通过简单的替换来更新共享 数据11 (例如,通过在最低层替换记录92及其值94)。如果一个成员创建新数据库90,可 以通过组消息8的分发来在每个其他成员处创建该新数据库90。类似地,对于现有数据库 90,如果在一个成员处创建新记录92,则可以通过分发组消息8来在每个其他成员处将该 新记录92添加至共享数据11。在任一种情况下,使用图2所示的结构,可以在新的或现有 的数据库90中添加和替换新记录92及其相关联值94。可以注意到,图2所示的消息8仅 用于示意目的,并且除值94之外,将典型地还包括其他信息,例如用于标识发送方和接收 方的信息、用于标识数据库90和记录92的信息等,这将在以下更详细描述。
如上所述,共享数据11由组10的每个成员维持,而不是由如服务器或中心数据库 之类的中心实体来管理和维持。为了对在任一成员处进行的任何改变进行通信,经由消息 交换服务,从进行改变的成员向每个其他成员发送消息8。因此,这种消息交换服务提供针 对组10的组播消息服务。存在许多合适的配置用于提供消息交换,但是为了示意,针对通 常通过图3中以示例方式示出的无线网络200来进行通信的移动设备100的组10来提供 以下示例。
合适的通信设备的示例包括寻呼机、蜂窝电话、蜂窝智能电话、无线组织器、个人 数字助理、计算机、膝上电脑、手持无线通信设备、具有无线能力的笔记本计算机等。为了清 楚起见,以下将这种设备统称为“移动设备”。
在一个典型实施例中,移动设备可以是具有高级数据通信能力的双向通信设备, 包括通过收发机站的网络与其他移动设备或计算机系统通信的能力。移动设备也可以具有 允许语音通信的能力。根据移动设备提供的功能,可以将其称为数据消息收发设备、双向寻 呼机、具有数据消息收发能力的蜂窝电话、无线因特网设备或者数据通信设备(具有或不 具有电话功能)。
移动设备可以是在被配置为将所有形式的推送信息从主机系统连续路由至移动 设备的系统中使用的移动设备。现在描述这种系统的一个示例。
现在参照附图,图3是示出了经由无线路由器沈将用户数据项(如消息A或C)从 公司企业级计算机系统(主机系统250)重定向至用户的移动设备100的示例系统图。无 线路由器沈提供无线连接功能,其操作抽象地代表了无线网络200的大部分复杂性,还实 现了支持向移动设备100推送数据所需的特征。尽管未示出,但是多个移动设备可以访问 来自主机系统250的数据。在本示例中,图3中的消息A表示从例如主机系统250内的台 式计算机沈2 (见图11)向公司网络沈0 (例如LAN)中任意数目的服务器计算机(一般包括数据库服务器、日程服务器、电子邮件服务器或语音邮件服务器)发送的内部消息。
图3中的消息C表示来自未与主机系统250直接连接的发送方(如用户的移动 设备100、某个其他用户的移动设备(未示出)或者与公共或专用网络224(例如因特网) 连接的任何用户)的外部消息。消息C可以是电子邮件、语音邮件、日程信息、数据库更新、 网页更新或者甚至可以表示从用户的移动设备100至主机系统250的命令消息。主机系统 250可以包括与公司企业级计算机网络系统相关联的硬件和软件、一个以上的无线移动代 理、TCP/IP连接、数据存储的集合(例如用于电子邮件的数据存储可以是现有的邮件服务 器,如Microsoft Exchange 服务器或Lotus Notes 服务器),以及典型的通信链路,所 有这些组件在公司防火墙之内或之后,以下将进一步解释。
根据正在使用的每个无线网络200的要求,移动设备100可以适于经由无线链路 在无线网络200内进行通信。作为图3所示的无线路由器沈的操作的示意示例,考虑数据 项A,数据项A被重新封装在外封包B (封装的数据项A现在称为“数据项(A) ”),并从主机 系统250中的应用服务提供器(ASP)发送至移动设备100。在ASP内是计算机程序,与无线 移动代理类似,在从数据存储向移动设备100发送所请求的数据项的ASP环境中的任何计 算机上运行。以移动设备为目的地的数据项(A)被路由通过网络224,并通过用于保护无线 路由器沈的无线路由器沈的防火墙27 (也见图12)。
尽管以上将主机系统250描述为在公司企业级网络环境中使用,但是这只是一种 向手持无线设备提供基于推送的消息的主机服务的一个实施例,该手持无线设备能够在数 据到达主机系统时,在移动设备处向用户实时通知并优选地呈现数据。
通过提供无线路由器26 (有时称为“中继”),对于主机系统250和无线网络200 来说有多个重要优点。一般地,主机系统250运行主机服务,主机服务被认为是在一个以上 的计算机系统上运行的任何计算机程序。主机服务被认为在主机系统250上运行,一个主 机系统250可以支持任何数目的主机服务。主机服务可以知晓、也可以不知晓信息被信道 传输至移动设备100的事实。例如,电子邮件或消息程序138(见图4)可以正在接收和处 理电子邮件,同时相关联的程序(例如电子邮件无线移动代理)在监控用户的邮箱,并将所 述电子邮件转发或推送至无线设备100。主机服务也可以被修改为准备并经由无线路由 器沈与移动设备100交换信息,如客户关系管理软件。在第三示例中,可以存在对多种主 机服务的公共访问。例如,移动代理可以提供对多个数据库的无线接入协议(WAP)连接。
如上所述,移动设备100可以是如图4和5中示例的手持双向无线计算设备、具有 无线能力的掌上计算机、具有数据消息收发能力的移动电话、具有移动电话能力的PDA、具 有无线能力的膝上计算机、具有关联OEM无线电调制解调器的售卖机、具有无线能力的心 脏监控系统,或者备选地,可以是能够经由网络连接来发送和接收消息的其他类型的移动 数据通信设备。尽管将系统示例为在双向通信模式中操作,但是系统的特定方案可以在“一 个半”或应答寻呼环境中使用,甚或与单向寻呼系统一起使用。在这种受限的数据消息收发 环境中,无线路由器26仍可以抽象(abstract)移动设备100和无线网络200,向标准的基 于web的服务器系统提供推送服务,并允许主机系统250中的主机服务到达多个国家中的 移动设备100。
这里示出的主机系统250具有许多方法来建立至无线路由器沈的通信链路。对 于数据通信领域的技术人员而言,主机系统250可以使用如TCP/IP、X. 25、帧中继、ISDN、ATM之类的连接协议或者许多其他协议来建立点对点连接。在该连接上,有多种隧道传输 方法可用于封装和发送数据,其中一些包括HTTP/HTML、HTTP/XML、HTTP/专有、FTP、SMTP 或一些其他专有数据交换协议。可以采用无线路由器沈来执行推送的这一类型的主机系 统250可以包括现场服务应用、电子邮件服务、股票报价服务、银行服务、股票交易服务、 现场销售应用、广告消息和许多其他服务。无线路由器沈使得无线网络200的抽象表示成 为可能,无线路由器26实现该路由和推送功能。由主机交换的、用户选择的数据项的类型 可以包括电子邮件消息、日程事件、会议通知、地址条目、日记条目、个人提醒、警报、警告、 股票报价、新闻公告、银行账户交易、现场服务更新、股票交易、心脏监控信息、售卖机存货 水平、仪表读数数据、GPS数据等,但是可以备选地包括发送至主机系统250或者主机系统 250通过使用智能代理来获取的任何其他类型的消息,如在主机系统250启动对数据库或 网站或公告牌的搜索之后接收的数据。
无线路由器沈提供了多种服务以使得创建基于推送的主机服务成为可能。这些 网络可以包括(1)码分多址(CDMA)网络、( 组专用移动或全由移动通信系统(GSM)和通 用分组无线服务(GPRS)、(3)现有的即将到来的第三代(3G)和第四代GG)网络,如EDGE、 UMTS和HSDPA、LTE、Wi-Max等。以数据为中心的网络的一些较早示例包括但不限于(1) Mobitex 无线网络(“Mobitex”)和 O)DataTAC 无线网络(“DataTAC,,)。
为了有效地向主机系统250提供推送服务,无线路由器沈可以实现一组已定义的 功能。可以认识到,针对无线路由器沈可以选择许多不同的硬件配置,然而,在这些不同配 置中将可能存在许多相同或相似的特征集合。
为了帮助读者理解移动设备100的结构及其如何与无线网络200进行通信,现在 参照图4和5。
首先,参照图4,其中示出了移动设备100的示例实施例的方框图。移动设备100 包括多个组件,如控制移动设备100的总体操作的主处理器102。通信功能(包括数据和 语音通信)通过通信子系统104来执行。通信子系统104从无线网络200接收消息,并向 无线网络200发送消息。在移动设备100的该示例实施例中,通信子系统104根据在全球 范围使用的全球移动通信系统(GSM)和通用分组无线服务(GPRS)标准来配置。同样适用 的其他通信配置是3G和4G网络,如EDGE、UMTS和HSDPA、LTE、Wi-Max等。新的标准正在 制定中,但是相信它们将与这里描述的网络行为具有相似性,本领域技术人员还将理解,这 里描述的实施例预期使用将来开发的任何其他合适的标准。连接通信子系统104与无线网 络200的无线链路表示根据针对GSM/GPRS通信而指定的定义协议来操作的一个以上的不 同的射频(RF)信道。
主处理器102还与其他子系统交互,如随机存取存储器(RAM) 106、闪存存储器 108、显示器110、辅助输入/输出(I/O)子系统112、数据端口 114、键盘116、扬声器118、 麦克风120、GPS接收机121、近距离通信子系统122和其他设备子系统124。
移动设备100的一些子系统执行与通信相关的功能,而其他子系统可以提供“驻 留”或设备上的功能。例如,显示器110和键盘116可以用于通信相关的功能(如输入文本 消息以通过网络200发送)和设备驻留功能(如计算器或任务列表)。
当完成所需网络注册或激活过程时,移动设备100可以通过无线网络200来发送 和接收通信信号。网络接入与移动设备100的订户或用户相关联。为了识别订户,移动设备100可能需要订户模块组件或“智能卡” 126,如订户识别模块(SIM)或可移除用户识别 模块(RUIM)和通用订户识别模块(USIM)。在所示的示例中,将SIM/RUIM/USIM 1 插入 SIM/RUIM/USIM接口 128以与网络通信。在没有组件126的情况下,移动设备100不能完全 操作用于与无线网络200通信。一旦将SIM/RUIM/USIM 1 插入SIM/RUIM/USIM接口 128, SIM/RUIM/USIM 126将耦合至主处理器102。
移动设备100是电池供电的设备,包括用于接纳一个以上的可充电电池130的电 池接口 132。在至少一些实施例中,电池130可以是具有嵌入式微处理器的智能电池。电 池接口 132耦合至调节器(未示出),该调节器辅助电池130向移动设备100提供电源V+。 尽管当前技术利用电池,但是未来的技术(如微燃料电池)也可以向移动设备100提供电源。
移动设备100还包括操作系统134和软件组件136 146,以下将更详细对其进行 描述。主处理器102执行的操作系统134和软件组件136 146典型地存储在如闪存存储 器108之类的永久存储器中,闪存存储器108备选地可以是只读存储器(ROM)或类似的存 储元件(未示出)。本领域技术人员可以认识到,操作系统134的部分和软件组件136 146(如指定设备应用)或其部分可以临时加载入如RAM 106的易失性存储器。如本领域技 术人员公知的,还可以包括其他软件组件。
控制基本操作的软件应用136的子集,包括数据和语音通信应用在内,在制造期 间安装在移动设备100上。软件应用可以包括消息应用138、设备状态模块140、个人信息 管理器(PIM) 142、连接模块144和IT策略模块146。消息应用138可以是任何合适的软 件程序,允许移动设备100的用户发送和接收电子消息,其中,消息典型地存储在移动设备 100的闪存存储器108中。设备状态模块140提供持久性,即设备状态模块140确保将重要 设备数据存储在永久存储器(如闪存存储器108)中,使得当移动设备100关闭或掉电时, 数据不丢失。PIM 142包括用于组织和管理用户感兴趣的数据项的功能,数据项例如但不 限于电子邮件、文本消息、即时消息、联系人、日程事件和语音邮件,并且可以与无线网络 200交互。连接模块144实现移动设备100与移动设备100被授权与其接口连接的无线基 础设施和任何主机系统250 (如企业系统)进行通信所需的通信协议。IT策略模块146接 收对IT策略进行编码的IT策略数据,并且可以负责组织和保护如“设置最大口令尝试次 数” IT策略之类的规则。
其他类型的软件应用或组件139也可以安装在移动设备100上。这些软件应用 139可以是预先安装的应用(即,不同于消息应用138)或者可以在移动设备100制造之后 添加的第三方应用。第三方应用的示例包括游戏、计算器、实用程序等。
附加应用139可以通过无线网络200、辅助I/O子系统112、数据端口 114、近距离 通信子系统122或者任何其他合适的设备子系统124中的任一个加载至移动设备100上。
数据端口 114可以是实现移动设备100与另一计算设备之间的数据通信的任何合 适的端口。数据端口 114可以是串行或并行端口。在一些实例中,数据端口 114可以是USB 端口,USB端口包括用于数据传送的数据线和可以提供充电电流以对移动设备100的电池 130充电的电源线。
对于语音通信,接收信号输出至扬声器118,发送信号由麦克风120产生。尽管语 音或音频信号输出主要通过扬声器118来实现,显示器110也可以用于提供附加信息,如主叫方的身份、语音呼叫的持续时间或与语音呼叫相关的其他信息。
为了编写数据项(例如电子邮件消息),用户或订户可以使用作为触摸屏显示器 (未示出)的一部分的触摸敏感覆层,此外可以使用辅助I/O子系统122。辅助I/O子系 统112可以包括如下设备鼠标、轨迹球、红外指纹检测器或者具有动态按钮按压能力的滚 轮。已编写项可以通过通信子系统104在无线网络200上传输。
图5示出了可以存储在移动设备100上并与移动设备100 —起使用的其他软件应 用和组件139的示例。图5中所示仅为示例,这种示例不被认为是穷尽的。在本示例中,示 出了组应用54、因特网浏览器56、组工程和任务管理(mgmt) 58、地址簿60和简档应用62以 示意移动设备100可以提供的各种特征。图5中还示出了消息应用138,为了清楚,以下将 消息应用138称为电子邮件应用138。可以认识到,各种应用可以独立操作,或者可以利用 其他应用的特征。例如,针对从联系人列表64获得的联系人细节,电话应用62和电子邮件 应用138可以使用地址簿60。组应用M使用组共享模块298来管理移动设备用户的组和 针对其的应用程序。可以在组应用和小应用程序数据库63中存储用于组应用讨和相关联 应用程序的图形用户界面(GUI)的数据。可以认识到,如上所述,用户可以属于多个组,以 及任何数目的子组,以与特定一个以上的其他组成员共享私有信息。组应用M还包括或能 够访问其当前的、共享数据11’的本地版本。在以下示例中,后缀(’)用于指示由于不在 覆盖范围内和其他情形,与由更大的组10要维持的共享数据11的概念集合相比,共享数据 11’的指定本地版本可能不必然完全是最新的。共享数据11’可以包括与一个以上的组相 关的数据,因此,可以存在共享数据11’的多个集合,并且共享数据11’的多个集合可以包 括在一个以上的分离的数据库中。
组工程和任务管理应用58使用户能够创建新项目,或者参与由组10中的另一用 户创建的工程。如上所述,每个工程包括一个以上的任务,这些任务可以分配给组10中的 不同用户,如以下将更详细解释的,通过组工程和任务管理应用58来控制这些任务的管理。
现在转到图6,适于移动设备A、B、C和D (以下称为移动设备100a、IOObUOOc和 IOOd)的用户通过这些设备已经在使用的消息交换服务来交换组消息8(在本示例中通过 无线路由器26)的配置。在图6中可以看到,本示例中的无线路由器沈作为对等消息收发 服务器80的主机,对等消息收发服务器80利用PIN至PIN协议82和消息高速缓存316,所 有这些都被认为是对等消息收发组件的组件。在图6所示的实施例中,个人识别号码(PIN) 用于寻址组消息8。这种基于PIN的消息收发系统是使用基于服务器的通信基础设施(如 提供电子邮件、SMS、语音、因特网和其他通信的通信基础设施)来实现的。尤其适于作为 对等消息收发服务器80的主机的是在如图3中所示的系统中使用的无线路由器26。在图 6中,无线路由器沈还便于如移动设备100a、100b、IOOc和IOOd之间的即时消息收发之类 的通信。可以认识到,参与图6所示示例的用户的数目仅用于示意目的。组数据11的共享 由每个移动设备IOOa IOOd上存储的组应用M提供,组应用M可以通过从显示屏(未 示出)上选择合适的图标来启动。无线路由器沈根据PIN至PIN协议82来在移动设备 IOOa IOOd之间路由组消息8。
在图6中,由标号8统一表示基于PIN至PIN的组消息,并示意了图1中所示的组 消息8的完整结构的示例。可以认识到,类似的结果可以用于私有消息8a。在基于PIN的消息收发协议82中,每个消息8具有与其相关联的、与发送消息8的移动设备100(源)相 对应的PIN,并包括标识每个预期接收方(目的地)的目的地PIN。图6中还示出了用于组 消息8的示例结构的其他细节。每个组消息8 一般包括主体75,包含将要更新的记录92 的值94 (净荷);以及首部69,包含用于发送和处理每个组消息8的各种字段。在本示例中, 首部69包括源(src)和目的地(dest)字段70,包括发送方的PIN和接收方的PIN;数据 库名称字段71,指定记录92要插入其中的数据库90 ;记录名称字段72,指定将要创建或更 新的记录92的名称;记录作者字段73,标识正在进行的改变或添加的作者或“所有者”;记 录时间戳字段74,指示所发送的记录92被添加、更新、改变、修改等的时间(以及日期(如 果需要))。可以注意到,记录作者字段73可以用于确定谁对共享数据11做出了何种改变 和添加,使得如果新成员加入组10,则可以根据作者(以后示例,也见图对和25)来在所 有组成员之间划分向新成员发送记录92的职责。
一般地,在基于PIN的消息收发协议82中,组消息8的发送方知道预期接收方的 PIN,并且可以采用各种机制来确定针对其他成员的PIN消息,例如通过主机系统250、经由 电子邮件交换等。根据图6所示的配置,移动设备IOOa可以通过对等消息收发服务器80, 分别或集合地与移动设备IOOb-IOOd中的任一个直接通信。当根据图6所示的实施例来进 行PIN至PIN交换时,移动设备IOOa-IOOd可以在基于客户端的交换中与无线路由器沈直 接通信,其中,与其他对等程序类似,不需要中间服务器。一个移动设备100发送的组消息 8由无线路由器沈接收,无线路由器沈从与组消息8相关联的信息(例如数据日志)中, 或者从组消息8自身中,获得预期接收方的PIN号码。在根据PIN至PIN协议82获得接收 方的PIN之后,无线路由器沈接着将组消息8路由至具有这种PIN的所有相关联预期接收 方。典型地,无线路由器沈还向原始发送方提供传送确认(可以显示也可以不显示给用 户),并且移动设备100可以使用与在覆盖范围内和不在覆盖范围内情形相关的消息的交 换来更新移动设备100的存在信息。目的地设备也可以提供这种传送信息。无线路由器沈 应当能够可靠地路由组消息8,并且保持组消息8直至其成功传送。备选地,如果在特定超 时时间段之后不能进行传送,则无线路由器26可以提供指示传送失败的响应。如果特定等 待时间段过去,则无线路由器26可以选择使组消息8期满。在这种情况下,移动设备100 可以接着选择是否重发组消息8。
可以认识到,以下讨论的原理同样适用于PIN至PIN消息收发和由第三方作为主 机的其他基于因特网服务的即时消息收发系统。
图7中示出了组共享模块298的一个示例配置。组共享模块298包括或能够访问 移动设备本地存储的共享数据11’的拷贝,并包括或能够访问移动设备的组应用和小应用 程序数据库63。如上所述,组应用和小应用程序数据库63包括与记录92在组应用M提 供的对应应用程序中使用的方式相关的任何信息、设置或其他数据。可以认识到,仅为示意 目的将小应用程序数据库63示为单独的数据库,小应用程序数据库63可以取而代之地维 持在共享数据11’之内或其他位置。组共享模块298包括数据更新器模块300,用于接收 或获得新的组消息8和新的私有消息8a (如果适用),检查新的消息8、8a是否与其他新近 更新冲突,并通过在合适时使用新记录92’来替换当前存储的记录92,从而更新共享数据 11’。在本示例中,数据更新器模块300还使得其所驻留的移动设备100能够在本地进行更 新时产生其自身的组消息8和私有组消息8a (如果适用)。数据更新器模块300可以使用通信接口 302来发送、接收或获得或提供消息8、8a,在本示例中,通信接口 302被配置为访 问和利用通信子系统104。
数据更新器模块300包括新消息产生器306,新消息产生器306是用于产生新消 息8、8a的子例程、子模块或特征;数据更新器模块300还包括消息比较器308,消息比较 器308是用于处理输入消息8、8a并解决本地产生的更新与新近接收的、由组中的其他成员 产生的更新之间的冲突的子例程、子模块或特征。本示例中的数据更新器模块300在后台 运行,以维持共享数据11’的最新拷贝,并在记录92的更新之间出现冲突时解决冲突。消 息产生器306还可以用于产生在覆盖范围内和不在覆盖范围内消息,并处理来自其他成员 的肯定应答,以确定传送成功。组共享模块298包括图形用户界面(⑶I)模块310,使用 组应用和小应用程序数据63,并通过将共享数据11,提供给通过组应用M可用的各种小应 用程序(applet),来显示这些小应用程序。GUI模块310使用户能够选择小应用程序中期 望的一个,然后,该小应用程序指示处理器102启动并显示针对该小应用程序的GUI (部分 通过与显示器110通信来进行)。可以使用上述各种输入设备(例如轨迹球14a、14b、键盘 12、触摸屏观等)来观看、编辑、更新组应用小程序,以及与组应用小程序并从而与共享数 据11’交互,以下可以使用参考标号304来共同地表示输入设备。
因此,组应用M可以使用组共享模块298来启动和显示小应用程序⑶I,以处理和 处置输入和输出消息8、8a,并处理输入和输出的在覆盖范围内和不在覆盖范围内消息(以 下将解释)。图8至10中示出了用于处理组消息8和私有消息8a的交换的多个示例场景。
图8示意了针对图1(a)所示的整个组10的单一更新。在以下示例中,每个成员 A、B、C、D与相应移动设备100a、100b、IOOc和IOOd相关联。在图中所示的场景中,移动设 备IOOa处理本地产生的更新,例如通过使用新消息产生器306来产生公共组消息8,从而 向组日程添加约会。组消息8标识组成员,或者在本示例中,标识针对组中的每个其他成员 (本示例中为成员B、C和D)的PIN号码,并经由在本示例中由对等服务器80提供的消息 交换服务来向其他移动设备100b、IOOc和IOOd发送组消息8。然后,对等服务器80能够向 每个成员B、C和D发送消息8的拷贝(如同其通常针对其他PIN至PIN类型的消息所做的 那样),即向组10提供组播。此时,在移动设备IOOa处对共享数据11’进行的更新在每个 其他成员处重复,因为每个移动设备100b、IOOc和IOOd包括具有消息比较器308的数据更 新器模块300,以处理新输入消息8并通过向其写入新记录92’来更新它们的共享数据11’ 的本地拷贝。
图9(a)至9(c)示意了另一场景,该场景处理成员之一的不在覆盖范围内情形,还 示意了使用肯定应答(Ack)消息312来向组10的其他成员广播不在覆盖范围内更新消息 314,而不需要对等服务器80必须跟踪或负责这种信息。在图9(a)所示的场景中,组成员A 再次产生对共享数据11a’的更新,并向组10发送组消息1 (即通过将消息8寻址至成员B、 C和D)。对等服务器80针对预期接收方,确定移动设备100中的哪些在覆盖范围内。在本 示例中,对等服务器80确定成员B和C在覆盖范围内,而组成员D (即移动设备IOOd)不在 覆盖范围内,如图9(a)中虚线所示。在这种情况下,可以向移动设备IOOb和移动设备IOOc 发送组消息1,但是由于移动设备IOOd不在覆盖范围内,因此对等服务器80在消息高速缓 存316中为成员D存储或“保持”组消息1的拷贝。如图10中所示,在移动设备IOOd返回 覆盖范围内时,对等服务器80此时能够向移动设备IOOd转发所存储的消息8。换言之,可以利用对等服务器80的存在(在本示例中,针对移动设备100之间经由无线网络200的通 信已经存在)来“存储-转发”组消息8,以使组10能够容许如图9所示的不在覆盖范围内 的形。
在一些实施例中,对等服务器80和移动设备100被配置为在成功传送组消息8时 需要Ack消息312。在图9(b)所示的示例中,对等服务器80对成员B和成员C产生并发送 的Ack消息312进行中继,其中,缺少来自成员D的Ack消息将向移动设备IOOa提供移动 设备IOOd不在覆盖范围内的指示。在这种情况下,如图9(c)所示,可以产生并向移动设备 100b、移动设备IOOc和移动设备IOOd发回不在覆盖范围内消息314,其中,如果移动设备 IOOd仍然不在覆盖范围内(如图9(c)所示),则对等服务器80为移动设备IOOd保持不在 覆盖范围内消息314,直到其返回覆盖范围内。移动设备100可以使用不在覆盖范围内信息 来跟踪存在,例如,更新UI以在消息收发会话中示出该成员D不在覆盖范围内因而不能接 收消息。
现在转到图10(a),此时,对等服务器80已经确定移动设备IOOd返回覆盖范围内 并因此能够向移动设备IOOd转发在消息高速缓存316中保持的组消息1和不在覆盖范围 内消息314,移动设备IOOd确定其他一些用户已经在某个时间点确定其不在覆盖范围内。 然后,移动设备IOOd可以产生并发送寻址至组10中的其他成员的在覆盖范围内消息315, 该消息可以被中继至相应移动设备100,如图10(b)所示。按照这种方式,移动设备IOOd能 够通知组10它们其已返回覆盖范围内,例如用于更新存在标识符等。然后,移动设备IOOd 将考虑新消息来处理和更新共享数据11’和GUI。图10(c)示意了移动设备IOOd产生并作 为组消息2发送的另一更新,由于移动设备IOOd返回覆盖范围内,现在这是可能的。当不 在覆盖范围内的情形出现时,出现冲突的几率可能升高,因为组消息8被发送但在移动设 备100不在覆盖范围内时未传送至移动设备100的可能性较大。如果出现冲突,则移动设 备100可以利用冲突解决方案(以下将描述),以使用根据特定准则确定的、更新中的优选 更新来改写对应记录92。
图11(a)至11(f)示意了冲突解决的示例。首先转到图11 (a),在本场景中,在T1, 当移动设备IOOd不在覆盖范围内时,成员D产生或修改记录Y 382,这可以包括产生新记录 Y或修改新记录Y。然而,由于移动设备IOOd不在覆盖范围内,此时该改变不能分发至组10 的其余成员。在图11(b)中,在T2,成员A对其共享数据11’的本地拷贝进行修改X 380, 这可以包括产生新记录X或修改新记录X,并且可能与修改Y 382冲突。例如,其中修改X 是成员A设置的5月4日上午9:00的约会,修改Y包括相同时间的不同约会。然后,将包 括修改X 380在内的组消息8发送至对等服务器80,将组消息8中继至成员B和成员C,并 为成员D保持,因为在这种情况下,移动设备IOOd被确定为不在覆盖范围内。在图11(b) 中,成员A、B和C具有驻留于其相应移动设备100上的修改X 380(例如,在共享数据11’ 中),而成员D具有修改Y 382。
现在转到图11 (c),在T3,当移动设备IOOd返回覆盖范围内时,可以接收在消息高 速缓存316中保持的、具有修改X 380的组消息8,并向成员A、B和C发送具有修改Y 382 的组消息8。如图11(d)所示,在T4,每个设备都具有冲突的修改X 380和修改Y 382。可 以看到,在这种情况下,成员D当前正在保持修改Y 382,并利用修改X 380来解决修改Y 382,而对于成员A、B和C来说,情况相反。在本示例中,如图11(e)所示,在1~5,通过丢弃修改Y 382,并在图11(f)中所示的T6保持修改X 380来解决冲突。可以使用多种合适的冲 突解决方案,为了该示意的目的,保持最新的记录时间戳74而丢弃其他时间戳。由于移动 设备IOOd实际上早于首先分发的修改X进行了修改Y,因此成员D进行的改变被成员A进 行的改变所取代。可以认识到,选择最新的时间戳仅是示例,如以下所示,可以存在其他示 例。
可以注意到,为了清楚,图11所示的时间序列假定组10中的所有移动设备100具 有实质上相同或合理同步的时钟。在一些实施例中,这可能难以维持,然而在许多情况下, 数据更新器模块300可以容许时钟的微小差异。然而,由于时间偏离,共享数据11’中的一 些可能变得不同步,因此可以进行测量来缓解这一问题。例如,新消息产生器306可以被 编程为查看最近接收的组消息8的记录时间戳74,并确保其更新将具有更晚的时间戳74, 将时间增量添加至最近接收的组消息8中指示的时间,尤其是在该消息8具有比移动设备 100的当前时钟更晚的时间戳74的情况下。按照这种方式,即使成员之一具有明显的时 间偏离,一旦他或她发送更新,发出的组消息8将相对于该时间戳74同步,最终将选出共 享数据11’。备选地,可以使用更复杂的方案,如依靠全局时钟或消息的周期性交换来超控 (override)任何用户修改的时间设置。解决时间偏离也可以禁止组8的成员有意将其时 钟超前设置,以确保其更新始终被选择。当然,如果使用其他与时间不相关的冲突解决方案 (如用户偏好的等级体系),则可以忽略这些考虑中的一些。
如上所述,组应用M可以包括一个以上的小应用程序,每个小应用程序具有与其 相关联的、如上所示更新的一个以上的数据库90。现在转到图12,示出了示例组应用GUI 320。通过突出显示并在显示器上选择合适的图标,可以在移动设备显示器12上启动并显 示组应用⑶I 320。组应用⑶I 320包括沿屏幕顶部的组名称322和通知区324,以标识当 前在组应用⑶I 320中示出的组10。如上所述,每个成员可以属于多于一个组,因此组应用 ⑶I 320可以显示针对各个组10的信息。还示出了多个可用的全局小应用程序326,使得 成员能够选择和利用期望小应用程序326,其示例在图13和14中示出并在以下描述。组应 用⑶I 320还包括状态栏328,以指示成员名称和成员状态338。在本示例中,用户A在家 中。组应用⑶I 320还包括由组名称322指示的组10中的每个成员的成员列表330。在本 示例中,给出了用户B、C和D具有对应成员状态340的列表330。该示例中的每个列表包 括成员小应用程序图标332,指示对该用户和其他成员公共的各种小应用程序326。小应用 程序图标332可以包括公共或全局小应用程序指示符336以及私有小应用程序指示符334, 如私有列表或对话。在本示例中,用户A具有与用户B进行的私有小应用程序,例如,上述 礼物列表。
通过突出显示并选择全局小应用程序3 之一或私有小应用程序(例如,通过私 有小应用程序指示符334),可以启动所希望的小应用程序的⑶I,并如图13至14所示而显示。
图13(a)示意了列表GUI 342,该列表⑶I 342具有小应用程序名称344、类别输 入框346、项目输入框348以及当前项目列表350。当前项目列表350包括一个以上的类 别352,每个类别包括零个或多个项目(即,类别是等待填充的)。在图13(a)中,示出了对 列表进行更新的两个示例,即添加新的类别或更新(即,选择)当前列出的项目354。这些 示例示出了对共享数据11的修改。在该示例中,如果项目邪4是购物列表项目,并且用户A如图所示对项目1进行了复选,则可以例如通过内部添加或修改标签或标识,或者通过对 记录92中的值的任意其它修改,改变针对该项目的记录92,以使真实情况“AppleS-need” 反映当前情况“Apples-purchased”。然后可以在组消息8中发送该新的记录92,以使得 其它组成员能够将指示“Apples-need”的先前记录92替换为“Apples-purchased”,以指示 不再需要该项目354。为了更新列表⑶I 342中的这种改变,组应用和小应用程序数据63 可以提供用于提供复选标记或修改文本的规则或指令,以在项目列表350中指示已经购买 了项目1。
图13(b)至13(e)示意了图13(a)中示出的列表⑶I 342的另一实施例。在图 13 (b)中,包括讨论列表选项388,其使得用户能够参与聊天或发表与列表344有关的消息。 在该示例中,类别352“R)od”包括多个项目354,并且每个项目邪4具有用户分配353,用户 分配353被包括用于指示谁将要获得或完成该项目354。图13(c)示意了标签为“Cheese” 的项目3M的完成,并且列表344被更新以示出“Cheese”已经由Ryan Smith选择。
图13(d)示意了组应用小程序列表⑶I 390,其包括小应用程序列表392,小应用 程序列表392包括可扩展组更新条目394。组更新394在扩展时可以显示列表396,即针对 该组的一个以上的更新。在图13(d)中作为示例示意了与图13(c)所示的“Cheese”项目 354的完成相关联的特定更新398。这样,用户可以通过查看列表342本身或者通过以与查 阅新输入消息类似的方式查阅更新,获知列表更新。
图13(e)示意了向用户告知组更新的另一方式,即通过在消息列表395中包括组 更新消息397。图13(f)示意了显示包括组更新在内的活动更新的另一方式。在图13(f) 中,示出了 Recent Updates⑶1600,其显示了活动更新列表602。例如在显示画面改变或 者在将成员添加到组时,活动更新列表602显示特定联系人活动和组活动。活动更新列表 602可以被配置为包括预定最大数目的最近期更新,例如25个最近期更新。可以通过在组 ⑶I或即时消息收发联系人列表中选择图标或其它链接,访问Recent Updates⑶I 600。 图13(f)还示出了更新菜单604,可以启动更新菜单604以清除、折叠或管理分组(分类) 的更新,或者执行与更新中提到的联系人相关联的功能(例如,如图所示的“Call Voice Mail”)。
图13(g)示意了用于修改与Recent Updates⑶I 600相关联的设置的Options ⑶I 606。在该示例中,可通过菜单来访问Options⑶1606,该菜单可通过组共享应用程序 M或即时消息收发应用程序(未示出)而调用。Options⑶I 606的Recent Updates部 分608使得用户能够通过使用下拉选项610来改变在活动更新列表602中出现的多个更 新。也可以提供各种其它选项,例如停止对来自相同联系人或组10的活动更新进行分组的 能力。
如上所述,可以创建列表以与组10中的所有成员共享。可以给列表分配完成日 期,可以改变针对列表项目的优先等级,并且可以给列表项目分配所有者。可以将列表项目 改变或标记为已完成。成员可以对列表项目进行注释并向组10之外的用户发送列表。图14 示意了 Create New Item GUI 612,可以通过从列表接口内选择Create NewItem按钮(未 示出)来启动Create New Item GUI 612。如图14所示,可以通过在Name输入框614中 键入而给新的项目分配名称。为了添加该列表项目的类别以显示在下面,可以在Category 输入框616中键入类别名称。为了将列表项目的职责分配给组成员,在键入成员的名称时,可以执行组列表(或其它来源)中的查找,并且用户可以从过滤的列表(未示出)中选择 该成员。为了设置列表项目的优先级,可以改变I^riority字段620。为了指定与新的项目 相关联的完成日期,可以通过选择日期选项(未示出)并选择特定日期,来改变Due字段 622。为了将优先等级设置为针对具有完成日期的列表项目,在指定时间自动改变为高,可 以提供“使成为高优先级”字段。
当在移动设备100上选择了列表时,列表⑶I 6 呈现为如图15所示。通过调 用主菜单628(例如,通过选择菜单按键),可以选择SortBy选项6 来调用副菜单。副菜 单使得可以选择标准来对列表进行分类。图15所示的示例包括名称、优先级、类别、完成日 期、状态和分配成员。
当组10的成员删除列表项目(或者“完成了”该项目)时,该项目在列表中呈现 为被划掉的。例如,如果需要重复该项目或者实际上并未完成该项目,另一成员可以通过从 菜单(未示出)选择重新创建选项,恢复该项目。
如上所述,也可以扩展管理组10中的列表的原则,以更具体地管理工程内的任 务。现在转向图16(a)至16(d),其示出了用于管理组工程的屏幕截屏。在图16(a)中,示 出了工程⑶I 342,,其显示了小应用程序名称344,,使得可以添加新的子工程346,,并且 允许添加新的任务;348,,与图13所示的类别346和项目348的添加类似。⑶I 342,包括 当前任务列表350’,当前任务列表350’被组织为一个以上的类别352’,每个类别包括零个 或多个任务354’(即,其中,子工程352’是等待填充的)。在图16(a)所示的示例中,可以 以扩展或紧缩形式示出子工程352’,以便于在子工程352’中导航。任务1. 1包括任务名称 355、用于示出是否已经将任务354’分配给组成员的分配“A”指示符356、用于示出是否已 经完成任务354’的完成“C”指示符357、被分配者名称358以及完成日期359。可以认识 到,与任务354’相关的数据可以根据工程类型、用户偏好而改变,或者根据不同的应用程序 而改变,因此图16(a)中示出的数据仅用于示意。
通过如图16 (a)所示来提供数据,当例如通过选择“编辑”按钮361并向条目施加 改变(未示出)来分配任务时,共享数据11被更新以反映改变,使得其他组成员知道新的 分配以及与之相关联的任何其他数据。例如,如果如图所示,任务1. 1被分配给用户A,则可 以改变针对任务354’的记录92,然后可以在组消息8中发送新的记录以使得其他组成员能 够用示出了新的被分配者358信息并通过对指示符355进行复选而指示任务354’已经被 分配的记录92来替换先前的记录92。
⑶I 342’还可以包括注释部分360,在该示例中,注释部分360示出了折叠的注释 列表(即,除非展开,否则不示出注释)。通过选择与注释部分360相关联的“ + ”,可以如图 16(b)所示,在注释部分内显示各注释370。每条注释370可以示意相关联的信息,例如发 表者368是谁,以及注释属于哪个工程(或者子工程)372。这使得用户可以获得所有子工 程352’和任务354’的完整注释列表,而不必导航到特定的任务354’。此外,或者可选地, 可以如图16(c)所示的,例如通过使用选择条367(如图所示)来突出显示相关联的任务 354’,在弹出气球369或其他消息容器中展示注释370和发表者368。这使得用户可以在当 前列表350’中导航时利用相关联的子工程352’和任务354’直接地查看注释370。
为了添加注释并且在组10内共享注释,在该示例中,⑶I 342’还包括“添加新注 释”部分362,“添加新注释”部分362包括用于输入注释370的注释输入框364和用于实施注释370的发表的“发表”按钮366。如果注释简单地大体与工程相关联,则可以选择“发 表”按钮366并直接在注释部分360内发表注释370。此外,或者可选地,如图16(d)所示, 通过显示弹出窗口 380,可以预查看注释370并进行注释370的进一步分类。在该示例中, 弹出窗口 380预查看注释370,并使得能够通过检测对编辑选项82的选择来编辑注释370。 弹出窗口 380还包括子工程选择选项374,使得用户能够将注释370分配给特定的一个以上 的子工程354’。如果进行了如图16(d)所示的选择,则可以使用诸如下拉菜单376之类的 选择机制来选择这种一个以上的子工程354’。然后可以选择“确认发表”按钮378以实施 注释370的发表,例如,发表在注释部分360中、发表在弹出气球369中等。
为了使用图1至图11所述的系统,除了图12至16所示的⑶I之外,可以在设备 100上提供各种GUI。可以使用组10来创建或加入特定用户想要保持连接的其他用户的集 合,例如家庭、朋友或同事。可以使用组10来与组10的成员共享图像、列表和约会。可以发 起与其他成员的聊天,并且可以对共享的项目进行注释。组可以指定预定最大数目的成员, 并且可以包括尚不是给定用户的联系人列表64的一部分的成员,尤其是在联系人列表64 与即时消息收发或其他消息收发媒介相关联时。可以通过在现有应用程序的屏幕中包括组 10的指示或列表,将组10集成到现有接口或应用程序中。还可以将组10包括在联系人列 表接口和应用程序中。还可以创建组的快捷图标并放置在主屏幕上,以便能够快速地访问 特定组或与组相关联的特定功能。
现在转向图17,在该示例中,使用Create New Group⑶I 632创建了组10。在 创建新的组10时,创建该组的用户自动地成为该组的管理员。通过选择适当的输入机制 并调用菜单,选择创建新组的选项,以便调用Create New Group⑶I 632。通过在Group Name字段634中键入,识别该组的名称,并且通过在Description字段636中键入,提供潜 在成员在接收到加入组10的邀请时看到的说明。可以通过改变组图标选项638来选择该 组的图标。为了避免其他成员邀请其他用户加入该组10,将Allow non-admin members to invite others选项640改变为“No”。否则,其他成员可以邀请其他用户。可以将Siow on Home Screen 选项 642 设置为 “Yes” 或“No”。如果 Show onHome Screen 选项 642 被设置 为“Yes”,则在主屏幕上放置表示组10的图标,从该图标可以直接地访问与组10相关的功 能。如果Show onHome Screen选项642被设置为“No”,则不在主屏幕上放置表示组10的 图标。
对于包括摄像机/照相机或其他成像设备(未示出)的移动设备100,用户可以通 过扫描在另一用户设备的屏幕上显示的条码644来加入组。在图18中示出了 kan Barcode ⑶I 646,在该示例中,kanBarcode⑶I 646向用户告知移动设备100可以扫描二维条码 644来加入组10并提供了示例的条码644。选择Don,t show this messageagain复选框 648以在将来的使用中跳过⑶I 646的显示。调用kan aGroup Barcode选项(未示出) 以启动kan Barcode⑶I 646。通过选择Continue按钮650,使用摄像机/照相机或移动 设备100的成像设备来拍摄图像。通过定向移动设备100以使得在另一移动设备上显示的 条码644的所有四个角均出现在移动设备100的显示设备上,移动设备100捕获条码644。 移动设备100然后自动地扫描条码644,并在扫描成功时通过可听到的“哔哔声”来提供确 认。
如上所述,可以将聊天、图像或列表发送给不是组10的一部分的用户。通过选择特定的组聊天、图像或列表,如图19所示地调用菜单652,在该示例中,由于选择了图像,显 示%11(1 Picture To选项654,其使得用户能够将所选的图像发送给希望的用户。可以认识 到,如果选择了聊天,则菜单652包括“Send Chat IV,选项(未示出)。调用knd Picture To选项肪4将引起另一接口(未示出)的显示,在该接口中可以选择该图像的一个以上的 接收方。一旦选择了接收方,则根据一个以上的消息传输,例如电子邮件、即时消息或对等 传输,将所选图像发送到所选接收方。
可以通过调用Group Details⑶I 656来指定和/或修改特定组100的各选项和 细节,在图20中作为示例示出了 Group Details⑶1656。例如,可以通过与组共享应用程 序M、即时消息收发应用程序和、主屏幕等相关联的菜单(未示出)来调用Group Details GUI 656。从图20可见,为了清楚起见,将类似的数字赋予与在创建组10(参见图17)时提 供的选项相同的选项。可以通过选择Group Icon选项638来更新与组相关联的图标。为 了在是否与其他成员共享用户的状态之间切换,可以将Siare My Status Message选项658 改变为les”或“No”。可以通过选择Display Group Barcode按钮660来显示组的条码 644。如上面结合图18所示,这使得其他用户能够扫描组的条码644来加入组。为了在添 加、删除成员或者成员离开组时被告知,可以将Group字段(未示出)中的Notify Me of Changes设置为“hs”。为了打开组10的聊天历史,可以修改Message History字段 664。为了存储组图像,可以修改&ive Pictures选项668以选择设备、媒体卡或任何其他 可用存储器。为了停止接收到消息应用程序中组活动的通知(例如,如图13(e)所示),可 以选择与Message ListIntegration字段相邻的kttings按钮670,然后选择一选项。如 果用户是组10的管理员,则可以通过在Description字段636中键入新的说明,来改变组 说明。为了改变成员成为组10的管理员所需的密码,可以将Administrator I3assword选 项662设置为“Change”或“Set”。为了在图像被标记为最喜爱时通知其他成员,可以将 Notify groupwhen I tag a picture as favourite 选项 666 设置为 “Yes,,。
可以以多种方式邀请新的成员加入组,包括通过例如在即时消息收发应用程序中 用于邀请新的联系人的已有邀请机制。这种机制需要新的成员在他们被添加作为组10的 成员之前接受邀请。在该示例中,如果将Allow non-admin members to invite others选 项640设置为“No”,则仅有管理员可以邀请新的成员。为了这么做,如图21所示,调用组 联系人列表⑶I 672。组联系人列表⑶I 672包括hvite a newmember选项674。当选择 Invite a new member选项674时,如图22所示,显示Add Member GUI 676。在该示例中, 可以通过选择使得能够输入用户的电子邮件地址、PIN或名称的第一选项678,通过选择用 于扫描另一用户的条码644的第二选项680,或者通过选择用于从即时消息收发应用程序 中选择联系人的第三选项682,来添加新的成员。
为了通过扫描新的成员的条码644来添加新的成员,选择AddMember⑶I 676中 的第二选项680,并且显示kan Barcode⑶I 646 (如果未选择复选框648)。通过使条码 644的四个角保持在摄像机/照相机或成像设备的视角内,直到确认了成功扫描为止,来扫 描条码644。
通过选择第一选项678,如图23所示,更新了 Add Member⑶1676,,使得能够将 PIN、电子邮件地址或名称键入I10字段684。如果适当,则用户可以选择This address is a distribution list复选框686。在其他实施例(未示出)中,可以使新的成员必须正确回答的安全问题与邀请相关联。一旦将一个以上的地址输入了 To字段684,则激Sknd按 钮,以向To字段684中包括的每个地址发送邀请。
图 M示出了 Group Details GUI 656 的一部分。通过选择DisplayGroup Barcode 按钮660,其他用户可以扫描用户的移动设备100上的条码644来加入组10。
如上所述,组成员也许不是已有的即时消息收发(或其他消息媒介)联系人。可 以邀请组成员以成为即时消息收发联系人,然后需要按照与常规的即时消息收发联系人相 同的方式接受邀请。在成员被邀请成为即时消息收发联系人之后,可以使用即时消息收发 交换服务(例如,图6所示的基于PIN的系统)来发起私有聊天。可以从组成员列表(未 示出)中选择尚不是即时消息收发联系人的成员,并且通过菜单(未示出),如图25所示, 显不 Invite to Messager 提不 688。
管理员或被赋予管理权限的人员可以通过从成员列表选择特定成员并调用菜单, 来从组中删除成员。针对任何成员,一旦该成员离开了组,则该组不再出现在该用户的联系 人列表屏幕中,并且不再接收该组的活动更新。组中的所有成员可以看到组聊天。在图26 所示的Friends组GUI 690中,通过突出显示"Group Activities”之下的Chat类别692, 如果存在组聊天,则可以立即输入消息。如果要创建新的组聊天,则调用菜单(未示出),并 且选择“New Chat”选项并且标识该聊天的主题。例如,可以通过与用于创建新的聊天相同 的菜单,来删除组聊天。
可以与组10的所有成员共享图像。用户可以共享存储在移动设备100上的图像, 或者,如果在移动设备100中包括摄像机/照相机,则可以拍摄新的图像并共享。图像可以 被标记为“最喜爱的”,可以添加注释,并且可以创建并添加语音注释。每个组10可以对与 组10相关联的图像的数目设置限制(例如,为了管理存储容量),并且可以在预定的天数之 后自动地删除图像。被标记为最喜爱的图像可以持续超过预定的时段,并且可以本地存储 图像或者将图像存储到移动设备100可访问的存储卡中。
为了共享图像,可以调用提供向组10发送或发表图像的选项的菜单。图27所示 的Post Picture⑶I 694使得标题696能够与图像相关联,并且示出了图像的预览图像 698。可以选择语音注释图标700以添加语音注释(下面将详细讨论)。可以讨论与组10 相关联的图像。图观示出了 Picture⑶I 702,其提供了图像的预查看698以及谁发表了 图像以及在何时发表等细节。还显示标题696。可以通过在Comment字段704中键入并选 择Add Comment按钮706,向讨论添加评论。在与共享的图像相关联的组10的成员之间共 享评论。
针对发表到组的图像,可以添加或更换语音注释。可以例如通过菜单或者通过语 音注释图标700,调用图四所示的Voice Note⑶1708。可以提供添加或更换语音注释的 选项,以使得用户能够创建新的语音注释或者在已有的语音注释上进行记录。选择Record 按钮712以开始记录,在状态栏710中示出了记录的进程。在完成记录时,可以附上语音注 释(未示出)。
组日历用于创建该组的约会,并与组的所有成员共享这种约会。成员可以在组 10内添加、修改或删除约会。组中创建的约会也可以出现在移动设备100的已有日历应 用程序中,以使得用户能够从相同的界面同时查看个人和组日历项目。图30示出了 New Appointment⑶1714,其包括使得用户能够产生新的组约会的knd Using选项716。剩下的选项718与本领域公知的常规日历约会选项相对应。在日历中同时示出个人和组日历项 目的情况下,可以使用不同的视觉色调(例如颜色或图案)来容易地区分日历项目的类型。
图31和32示出了组日历⑶I 720,其可以通过选择组⑶I 690中的日历图标来 访问。组日历 GUI 720 包括 New Shared Appointment 选项 722、View Group' s Calendar 选项 724 以及 View All Calendars 选项 726。通过选择 View All Calenders 选项 726,该 用户是其成员的所有组的约会出现在相同的日历(未示出)中。可以使用菜单键或针对 access Group Calendar选项的其他适当输入,如图32所示地调用日历菜单728。通过选 择View Group’ s Calendar选项724(同样在图32中示出),可以访问约会以便能够对约 会进行查看、删除、修改等。
在其他实施例中,提供使得组成员能够共享其他个人信息管理(PIM)信息的功 能。可以以上述结合图30、31和32讨论的日历信息相同的方式共享的其他PIM信息的示 例包括例如联系人、地址簿、任务和备忘录。
如上所述,在这些示例中,在创建组10时,创建者缺省地成为组10的管理员。作 为管理员,用户可以删除组10的所有成员的图像和约会。组10的管理员还可以控制组10 的成员关系、设置或改变管理员的密码、任命其它管理员以及删除组10。为了设置管理员密 码,在组⑶I 690中调用选项菜单730。通过突出显示菜单730中的Administration选项, 显示副菜单732,使得用户能够选择ktAdminstrator Password选项或者Delete Group选 项。通过选择ktAdminstrator I^assword选项,提示用户输入密码并接受输入以设置密码。 如果用户已经设置了管理员密码,则如图34所示,显示不同的副菜单734,其包括改变密码 的选项。通过选择副菜单734中的ChangeAdmin Passwod选项,然后提示用户键入新的密 码,并接受新的密码以做出改变。
管理员还可以分配或删除管理员权限。如图35所示,可以调用组联系人列表⑶I 672中的选项菜单736。通过如图所示突出显示Adminstrator选项,显示子菜单738,其提 供多个选项,包括删除管理员权限或给组中的所选联系人授予管理员权限。如果用户不是 管理员但是希望成为管理员,则管理员可以给用户提供管理员密码。在如图36所示的组联 系人列表⑶I 672中,非管理员可以调用选项菜单736并选择Administration选项以显示 子菜单740。子菜单740包括Make me an Administrator选项,在选择该选项时,提示用户 输入管理员密码。
组共享应用程序M可以保持与诸如即时消息收发之类的其它应用程序共享的联 系人列表。典型地对联系人列表进行备份,并可以恢复,以存储和/或恢复联系人本身、简 档以及组成员关系。设置可以用于例如在发生联系人列表改变时创建备份文件,或使得能 够在设备自身或媒体卡或其它辅助存储器上进行手动备份。这种设置包括对用户所属的组 的列表进行备份的能力,使得在恢复联系人列表以重建组成员关系时用户能够自动地接收 对组的邀请,而不需要每个管理员手动地邀请用户。可以通过无线网络20向服务器或其它 实体注册联系人列表信息,以便自动地备份并恢复联系人列表。因此,如果删除了移动设备 100上的所有数据,则可以通过访问服务器来恢复联系人、简档和组成员关系。图37示意了 Back Up Contact List GUI 742,其包括 Back Up files remotely 选项 744 以及 Back up files locally 选项 746。图 38 示意了 Restore Contact List GUI 748,其包括 Resotre using email 选项 750 以及 Resore using a backup file from device 选项 752。如上所21述,如果使用恢复功能,则通过重新邀请成员加入组10来重建组成员关系。
当选择 Resore using a backup file from device 选项 752 时,如图 39 所示,显 示选择提示754。在该示例中,在字段756中示出了文件位置,并且在字段760中示出了特 定备份文件。用户可以通过选择文件夹字段758,导航以找到其它备份文件。
如果使用备份文件进行了备份的联系人列表并不包括组成员关系,则可以认识 到,来自组10的、具有必需许可的成员将需要重新邀请用户,以便重新建立特定的组成员 关系。可以认识到,移动设备100可以被配置为在恢复联系人列表时发送或接收重新邀请。 例如,如果移动设备100被指定为管理员,则作为组成员的管理员的丢失将影响整个组。在 这种情况下,如果由于管理员的丢失而删除整个组,则管理员可以被配置为向之前的组成 员发送邀请以重新建立组。可选地,可以从服务器对邀请进行控制。例如,如果管理员的丢 失不会删除组,则在恢复联系人列表时,管理员可以从服务器或组中的另一成员接收邀请。 类似地,如果组被删除并随后进行恢复,则可以通过服务器或指定成员(例如管理员)发送 的邀请来重建组。如果一个成员保存了包括特定组及其成员关系在内的联系人列表的备 份,则可以共享该备份文件以便重建组(例如,如果当前丢失了特定成员)。还可以认识到, 不是管理员的其它成员可以通过服务器、其它成员(例如管理员)或某个其它服务接收重 新邀请。
图40示意了示例的由第一设备(即,设备1)、对等(P2P)服务器80以及第二设 备(即,设备2、执行的计算机可执行指令集,以示意对共享数据11中的记录92的更新、对 肯定应答消息312的处理、以及对不在覆盖范围内情况的检测。在400处,设备1请求对共 享数据11中的记录92进行改变,例如通过添加至列表进行改变。在402处,数据更新模块 300通过添加新的记录92或利用包含新的值94’在内的新的记录92来替换现有记录92, 将新的值94’添加至共享数据11’。在404,新消息产生器306确定更新与私有数据库90 相关联还是与全组或“公共”数据库90相关联。如果私有,则在406,新消息产生器306确 定允许组10中的哪些成员成为接收方。如果不是私有,则在408,确定所有组成员都是接收 方。然后,新消息产生器306在410产生组消息8并在412发送组消息8,由对等服务器80 接收该组消息8。
在414,对等服务器80确定组10的连接性。在416,在适当情况下,将消息8发送 到连接的成员,如果需要,在417,针对不在覆盖范围内的设备保持消息8。在该示例中,在 418,设备2通过通信接口 302接收新的组消息8,并且在426,消息比较器308检查共享的 数据11’,查找与消息8中指示的记录名称72相对应的现有记录92,并且在428,确定是否 存在冲突。如果在共享数据11’中存在现有记录92,即存在冲突,则在430,使用适当的冲 突解决分案来解决冲突。如果无法找到现有记录92,即不存在冲突,则不需要冲突解决分 案。在432,根据冲突解决的结果,可以添加新的记录、或者保持或改写现有记录。
在数据更新模块300正在处理输入的组消息8的同时,在420,向设备1发回接收 肯定应答(ACK)消息312,该消息312在422由对等服务器80中继并且在424由设备1接 收。在设备1最初发送组消息8(在412)时,典型地,启动超时(timeout),其中,在预定时 间量之后,如424,设备1确定已经返回了多少(如果有的话)ACK消息312。在434,超时期 满,设备1则可以确定组10中是否有设备不在覆盖范围内,并且在需要的情况下,在436,经 由对等服务器80发送不在覆盖范围内更新。这使得其它设备能够知道不在覆盖范围内的任何设备的不在覆盖范围内状态,从而使得例如能够将组应用程序GUI320更新为“灰色”, 或者以其它方式指示该成员是不可获得的。
现在转向图41,更加详细地示出了用于执行图40中的步骤418至432的一个示 例。在440,接收新的组消息8,并且根据首部69,在442确定数据库名称71。如果在444 无法在共享数据11’中找到数据库90,则可以在446创建新的数据库90(例如新的谈话、 新的列表等),并且在448,将在组消息8中传送的新的记录92添加到新的数据库,并且在 450完成更新。如果可以在共享数据11’中找到数据库90,则消息比较器308确定记录名 称72,如在消息8的首部69中所示的那样。如果在妨4无法找到记录92,则在448将新的 记录添加到现有数据库90,并且在450完成该过程。如果存在与记录名称72匹配的记录 92,则在456,消息比较器308将两个记录92中的记录时间戳74进行比较。如果在458认 定时间戳74是相等的,则可以在462使用辅助标准来打破平局。辅助标准的示例包括PIN 号(例如,选择较低的PIN号)、记录作者73的字母顺序、冲突等级体系等。如果在458认 定时间戳74是不同的,则在460保存在后的记录,并且在450完成该过程。
可以认识到,时间戳74的比较仅仅是冲突解决技术的一个示例,可以等同地运用 其它技术。例如,如图42所示,可以使用包括多个层的冲突等级体系。在该示例中,一个成 员被指定为最高或“主管”层的主管成员466。然后可以将一个以上的成员指定为副职成 员468,副职成员468处于较低的副职层。然后将一个以上的其它成员(典型地为剩余的成 员)指定为处于从属层的从属成员470,在该示例中从属层处于最低层。可以认识到,可以 使用更多或更少的层。例如,对于仅有三个成员的情况,指定一个主管成员466和两个副职 成员468或两个从属成员470。可选地,这三个成员可以分布在所有三个层上。图43示意 了用于解决家庭组10的家庭冲突的家庭组等级体系的示例。在该情况下,家庭中的一个配 偶,即配偶1,被指定为主管成员466,另一个配偶,即配偶2,被指定为副职成员468,两个孩 子,即孩子1和孩子2,被指定为处于最低层的从属成员470。通过指定主管成员466,无论 何时(即使发生冲突),均保持主管成员466做出的任何更新。这使得可以在需要时运用组 否决权。
图44示意了使用如图42所示的冲突等级体系的冲突解决技术。可以认识到,步 骤474至488与图41中的步骤440至妨4相同,因此不需要重申其细节。在使用等级体系 解决冲突时,在490,查阅冲突等级体系以确定是否有成员接替其它成员以及以什么顺序接 替。然后在492根据等级体系来解决冲突,并且在484完成该过程。可以注意到,冲突等级 体系可以根据例如数值、字母、相对重要性的任意准则或规则或者任意其它方式确定的任 意等级体系,以使一个记录92与其它记录区分。
图45示意了根据图44所示的等级体系来执行步骤490和492的示例。在500, 消息比较器308例如通过查阅PIN号或记录作者73字段,确定哪个用户或成员与冲突的记 录92相关联。如果在502确定主管成员466,则在504选择主管成员更新,并在506解决 冲突。然而,如果在502并未确定主管成员466,则消息比较器308在508确定冲突是否涉 及副职成员468。如果不涉及副职成员468,则指示冲突仅涉及从属成员470,在510可选 择具有最新时间戳的更新。可以认识到,在510可以使用任意其它辅助准则,并且基于时间 戳74的选择仅示出作为示例。如果涉及副职成员468,则在512,确定是否两个记录92都 是副职成员468做出的。如果不是,则仅涉及一个副职成员468,并在516选择该更新。然而,如果在冲突中涉及不只一个副职成员468,则在514选择具有最新时间戳74的记录(或 者其它辅助准则)作为新的记录94’,并且在506解决冲突。
图46 (a)和46 (b)示出了另一实施例,其中,在移动设备100上而不是在对等服务 器80或类似设备上保持消息高速缓存器316’。该实施例可以在通过无线网络200来使用 不同类型的消息交换服务的情况下实施,即其中示出了不同于对等交换或PIN至PIN的交 换。如图46(b)所示,在图9或图11所示的移动设备IOOd不在覆盖范围内的相同情况下, 发送到成员B、C、D的消息8将以某种适当方式将接收确认传送回移动设备100a,使得移动 设备IOOa可以知道要保持组消息3并且在稍后重试。这样,移动设备100负责传送重试并 缓存尚未被接收的消息8。可以认识到,这里描述的原则可以等同地运用于图46所示的实 施例,不同仅在于不需要依赖于对等服务器80来中继消息。还可以认识到,在这种实施例 中,移动设备100需要能够通过本地存储程序或在可用消息交换服务上运行的程序来发送 组播消息。
图47示出了另一实施例,其中,对ACK消息312的跟踪以及对在覆盖范围内情况 和不在覆盖范围内情况的确定从移动设备100转移到对等服务器80。在该示例中,对等服 务器80包括用于产生不在覆盖范围内消息314和返回覆盖范围内消息315的覆盖范围消 息产生器390 ;以及用于跟踪与对等服务器80所中继的每个消息8相关联的组10的成员 的组消息跟踪器392。除了消息高速缓存器316之外,对等服务器80还包括或者可以访问 用于记录哪些成员在覆盖范围内和哪些成员不在覆盖范围内的覆盖范围数据386以及用 于跟踪哪些消息与哪些成员相关联的组数据388。
图48示意了可以由从移动设备100转移上述任务的对等服务器80执行的示例的 计算机可执行指令集。在520,接收组消息8,在522,将组消息8发送到所有可获得的成员, 并且在524,为所有不可获得的成员保持组消息8。在526,组消息跟踪器392例如通过在 消息日志中记录消息的标识符以及在Dest PIN字段70中列出的每个成员,来记录组数据。 在528,对等服务器80基于哪些成员当前在覆盖范围内和哪些成员不在覆盖范围内来记录 覆盖范围数据,并在530,典型地在经过了一段时间之后,覆盖范围消息产生器390确定已 经接收到哪些(如果有的话)ACK消息312。通过将ACK消息312与同消息8相关联的成员 进行比较,覆盖范围消息产生器390可以在532确定哪些组成员已经确认接收以及哪些尚 未确认。使用该信息,覆盖范围消息产生器390可以在534向组成员发送不在覆盖范围内 消息314,并且为不在覆盖范围内的成员保持消息。典型地,在经过了一段时间之后,覆盖 范围消息产生器390可以在536例如通过接收新的消息8或者通过某些其它可用信息,确 定哪些(如果有的话)移动设备100已经返回覆盖范围内。组消息跟踪器392然后在538 用于确定与原始消息8相关联的组成员,并且可以在MO向成员发送返回覆盖范围内消息 315,并且在542更新覆盖范围数据386。可以针对在520接收到的每个新组消息重复该过 程,或者定期重复该过程,或者以这两种方式,以便给移动设备100提供最新的覆盖范围信 息,例如使得移动设备100能够更新GUI,则不需要在设备处产生附加消息。这样,通过将任 务从移动设备100转移到对等服务器80,以对等服务器80处增加的智能和开销作为代价, 优化了消息传送。
如上所述,通过将记录作者字段73与每个消息8相关联,在新的成员加入组8 时,可以通过使每个成员贡献包括他们所创建的记录92在内的消息8,可以给新的成员供应最新的共享数据11的集合。图49和50示出了另一实施例,用于示意这种供应方案。首 先,转到图49(a),在该示例中,具有移动设备IOOe的新成员E通过发送组加入请求550来 请求加入组10,组加入请求550被中继到每个成员。在该示例中,假设新成员E首先通过 从组成员接收邀请或者以其它方式来确定组成员关系,但是可以认识到,可以采用其它方 式。如图49(b)所示,每个组成员可以以成员接受消息552对请求550做出答复,然后,驻 留在新成员的移动设备IOOe上的组应用程序M使用成员接受消息552确认已被接受加入 组10。如图49(c)所示,在接受成员E之后,每个现有成员发送共享数据11中他们做出的 部分,以使得新成员能够构建他们的共享数据11的最新版本。
现在转向图50,示出了用于允许成员E加入组的供应过程。在560,新的移动设备 IOOe接收或者以其它方式获得例如由一个现有成员或者中间媒介(例如读书俱乐部组织 者)提供的组邀请。在562,新的移动设备IOOe使用现有或新安装的组应用程序M来产生 组加入请求阳0,并且在564,向每个组成员发送组加入请求550。可以认识到,在组10中存 在等级体系的情况下,新的成员仅能够向管理成员关系的主管成员466发送消息。在该示 例中,每个现有成员在566接收到组加入请求550,并且在568,通过某个辅助过程(例如通 过提示用户),允许或拒绝加入成员关系。在该示例中,然后,新的成员在570等待接收成员 接受消息552以确定被接受,并且在572,假设被接受,现有成员开始发送共享数据中属于 他们的部分,这些部分在574被接收。然后,在576,新的成员已被供应,该过程完成。
因此,提供了一种在多个移动设备的组之间共享数据的方法和系统,而不需要数 据库或服务器集中地存储共享数据。取而代之,共享数据由每个组成员独立地存储共享数 据,同时控制更新共享数据的方式。为了管理更新,将共享数据原子化(atomized),以分离 共享数据中的独立数据库,或者以其它方式描述为一个以上的记录,每个记录具有与之相 关联的值。
为了在每个设备处保存共享数据的共同拷贝,使用能够向不只一个接收方(如果 需要的话)传送发送消息的中间消息交换服务来向所有组成员发送任何更新。这样,将更 新组播到组。为了管理共享数据的内容,每个更新包括对相应记录的当前拷贝的一个以上 的改变。
在接收端,可以评估每个更新,并整体(根据特定准则)替换,以简化对类似记录 的更新之间的冲突的解决,并禁止改变传播至整个共享数据。换言之,可以使用原子化的变 化,使得针对每次添加、改变或者更新,仅影响与单个记录相关联的数据、信息、选择或者其 它值。通过这样来管理共享数据,对共享数据的更新对不在覆盖范围内的情形的容忍度更 大。当设备不在覆盖范围内时,可以保持包含更新的消息,直到设备返回覆盖范围内为止, 或者可以定期地重新发送消息,或者以这两种方式进行。
可以认识到,图中所示并且在上面描述的特定选项、输出、应用程序、屏幕截屏和 图标仅用于示意,可以根据所描述的原则,而采用多种其它变化。
还可以认识到,这里示出的执行指令的任何模块或组件可以包括计算机可读介质 或者可以访问计算机可读介质,例如存储介质、计算机存储介质或例如磁盘、光盘或磁带之 类的数据存储设备(可拆卸和/或不可拆卸的)。计算机存储介质可以包括易失性的和非 易失性的、可拆卸的和非可拆卸的介质,这些介质以任何方法或技术实现,以用于存储诸如 计算机可读指令、数据结构、程序模块或其它数据之类的信息。计算机存储介质的示例包括RAM、ROM、EEPROM、闪存或其它存储介质、CD-ROM、数字通用盘(DVD)或其它光存储器、盒式 磁带、磁带、磁盘存储器或其它磁性存储设备或者可以用于存储所需信息并且可由应用程 序、模块或二者访问的任意其它介质。任何这种计算机存储介质可以是移动设备100(或设 备12、14、16、18)的一部分,或者可由移动设备100访问或者与移动设备100连接。这里描 述的应用程序或模块可以使用可以存储或者以其它方式由这种计算机可读介质保存的计 算机可读/可执行指令来实现。
相应地,提供了一种移动设备、一种包括用于操作移动设备的指令的计算机可读 介质、以及一种用于操作移动设备的方法,其中,该方法包括产生移动设备上的联系人列 表的备份文件,该联系人列表包括至少一个组;使用备份文件恢复联系人列表;以及发送 或接收邀请以重新加入特定组。
还提供了一种移动设备、一种包括用于操作移动设备的指令的计算机可读介质、 以及一种用于操作移动设备的方法,其中,该方法包括在移动设备上捕获条码图像;读取 条码,以获得与组相关联的标识符;以及如果读取成功,则使移动设备与所述组相关联。
还提供了一种移动设备、一种包括用于操作移动设备的指令的计算机可读介质、 以及一种用于操作移动设备的方法,其中,该方法包括在移动设备上存储条码;以及使用 移动设备上的显示器来显示条码,使得整个条码在显示器上可见;其中,条码包括与组相关 联的标识符,并且所述显示使得另一移动设备能够扫描条码以加入组。
还提供了一种移动设备、一种包括用于操作移动设备的指令的计算机可读介质、 以及一种用于操作移动设备的方法,其中,该方法包括确定移动设备所属的组的成员是否 在与另一消息收发媒介相关联的联系人列表中;以及如果组的成员不在联系人列表中,向 该成员发送邀请,以添加该成员作为所述另一消息收发媒介的联系人。
还提供了一种移动设备、一种包括用于操作移动设备的指令的计算机可读介质、 以及一种用于操作移动设备的方法,其中,该方法包括在移动设备上存储一个以上的个人 日程约会;在移动设备上存储一个以上的组日程约会,组日程约会由组的多个成员共享; 以及在公共图形用户界面中显示个人日程约会和组日程约会。
还提供了一种移动设备、一种包括用于操作移动设备的指令的计算机可读介质、 以及一种用于操作移动设备的方法,其中,该方法包括创建组;分配作为该组的管理员的 移动设备;以及实现通过移动设备对所述组的成员关系的控制。
尽管上面参考特定具体实施例进行了描述,但是如在所附权利要求书中概述的各 种修改对于本领域技术人员而言是显而易见的。
权利要求
1.一种对移动设备进行操作的方法,包括 -获得共享数据项的列表;-获得公共消息,所述公共消息具有对所述列表中的项的值的期望改变;以及 -确定对所述值的所述期望改变是否已经完成,如果未完成,则以所述期望改变来更新 所述列表。
2.根据权利要求1所述的方法,其中,获得列表包括从一个以上的其他移动设备接收 列表。
3.根据权利要求1或2所述的方法,其中,所述公共消息是通过消息交换服务获得的。
4.根据前面任一项权利要求所述的方法,其中,更新包括以更新后的记录来替换所 述项的记录的当前存储的版本。
5.根据前面任一项权利要求所述的方法,还包括向一个以上的设备发送更新后的列表。
6.根据前面任一项权利要求所述的方法,其中,所述项表示组工程中的任务,以及所述 任务包括与其相关的、指示任务的状态信息的多个值。
7.根据前面任一项权利要求所述的方法,还包括使得能够发表与共享数据项中所选 的一个以上相关的注释。
8.一种对移动设备进行操作的方法,包括 -获得共享数据项的列表;-产生公共消息,所述公共消息具有对所述列表中的项的值的期望改变;以及 -向一个以上其他移动设备发送所述公共消息。
9.根据权利要求8所述的方法,其中,所述公共消息是通过消息交换服务获得的。
10.一种对移动设备进行操作的方法,包括 -产生共享数据项的列表;-与一个以上移动设备共享所述列表;以及-向所述一个以上移动设备中的至少一个发送公共消息,以更新所述列表。
11.根据权利要求10所述的方法,其中,所述更新包括要添加至所述列表的数据项,或 者包括对所述列表中的数据项的修改。
12.根据权利要求10或11所述的方法,其中,所述共享包括经由消息交换服务来发送 所述列表。
13.根据权利要求10至12中任一项所述的方法,其中,所述列表仅在所述组的子集中
14.一种计算机可读介质,包括用于执行根据权利要求1至13中任一项所述的方法的 计算机可执行指令。
15.一种移动设备,包括处理器和根据权利要求14所述的计算机可读介质。
全文摘要
本发明提供了一种在由多个移动设备组成的组中共享数据的方法和系统,而不需要数据库或服务器集中地存储共享数据。取而代之地,每个组成员单独存储共享数据,同时控制对共享数据进行更新的方式。共享数据可以用于管理组工程中的任务。为了管理更新,对共享数据进行原子化,使得共享数据中的各个数据库被分离或描述为一个以上的记录,每个记录具有与其相关联的值。为了在每个设备处维持共享数据的共同拷贝,使用中间消息交换服务来向所有组成员发送任何更新,所述中间消息交换服务能够在必要时向多于一个接收方传送发送消息。按照这种方式,将更新组播至所述组。为了管理共享数据的内容,每个更新包括对相应记录的当前拷贝的一个以上的改变。
文档编号G06F17/30GK102035877SQ20101051282
公开日2011年4月27日 申请日期2010年10月8日 优先权日2009年10月7日
发明者赫伯特·安东尼·利特尔, 迈克尔·史蒂芬·布朗, 迈克尔·新·凯·黄 申请人:捷讯研究有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1