CN102035877A - 管理由一组移动设备共享的列表中的项的系统和方法 - Google Patents
管理由一组移动设备共享的列表中的项的系统和方法 Download PDFInfo
- Publication number
- CN102035877A CN102035877A CN201010512822XA CN201010512822A CN102035877A CN 102035877 A CN102035877 A CN 102035877A CN 201010512822X A CN201010512822X A CN 201010512822XA CN 201010512822 A CN201010512822 A CN 201010512822A CN 102035877 A CN102035877 A CN 102035877A
- Authority
- CN
- China
- Prior art keywords
- group
- message
- mobile device
- tabulation
- shared 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.)
- Pending
Links
Images
Landscapes
- Mobile Radio Communication Systems (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供了一种在由多个移动设备组成的组中共享数据的方法和系统,而不需要数据库或服务器集中地存储共享数据。取而代之地,每个组成员单独存储共享数据,同时控制对共享数据进行更新的方式。共享数据可以用于管理组工程中的任务。为了管理更新,对共享数据进行原子化,使得共享数据中的各个数据库被分离或描述为一个以上的记录,每个记录具有与其相关联的值。为了在每个设备处维持共享数据的共同拷贝,使用中间消息交换服务来向所有组成员发送任何更新,所述中间消息交换服务能够在必要时向多于一个接收方传送发送消息。按照这种方式,将更新组播至所述组。为了管理共享数据的内容,每个更新包括对相应记录的当前拷贝的一个以上的改变。
Description
技术领域
以下内容涉及用于管理由一组移动设备共享的工程(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)是示意了使用组共享应用来维持的列表应用的示例GUI。
图14是示意了新列表项创建的示例屏幕截图。
图15是示意了列表排序菜单界面的示例屏幕截图。
图16(a)至16(d)是示意了使用用于管理组工程中的任务的组共享应用来维持的列表应用的示例GUI。
图17是示意了新组创建的示例屏幕截图。
图18是示意了显示组条码以使得新成员能够通过扫描条码来加入组的界面的示例屏幕截图。
图19是示意了用于向不是组成员的联系人发送聊天、图片或列表的菜单界面的示例屏幕截图。
图20是示意了用于改变组选项的界面的示例屏幕截图。
图21是示意了用于使新的组成员能够被邀请至组的界面的示例屏幕截图。
图22是示意了用于添加新的组成员的界面的示例屏幕截图。
图23是示意了用于添加新的组成员的另一界面的示例屏幕截图。
图24是示意了用于显示组细节(包括使组条码能够被显示在移动设备上)的示例屏幕截图。
图25是示意了能够使组联系人被添加为即时消息联系人的提示的示例屏幕截图。
图26是示意了各种组活动的扩展列表的示例屏幕截图。
图27是示意了用于发表图片的界面的示例屏幕截图。
图28是示意了用于实现对图片的讨论的界面的示例屏幕截图。
图29是示意了用于记录语音注释的界面的示例屏幕截图。
图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(也见图3)。组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是示出了经由无线路由器26将用户数据项(如消息A或C)从公司企业级计算机系统(主机系统250)重定向至用户的移动设备100的示例系统图。无线路由器26提供无线连接功能,其操作抽象地代表了无线网络200的大部分复杂性,还实现了支持向移动设备100推送数据所需的特征。尽管未示出,但是多个移动设备可以访问来自主机系统250的数据。在本示例中,图3中的消息A表示从例如主机系统250内的台式计算机262(见图11)向公司网络260(例如LAN)中任意数目的服务器计算机(一般包括数据库服务器、日程服务器、电子邮件服务器或语音邮件服务器)发送的内部消息。
图3中的消息C表示来自未与主机系统250直接连接的发送方(如 用户的移动设备100、某个其他用户的移动设备(未示出)或者与公共或专用网络224(例如因特网)连接的任何用户)的外部消息。消息C可以是电子邮件、语音邮件、日程信息、数据库更新、网页更新或者甚至可以表示从用户的移动设备100至主机系统250的命令消息。主机系统250可以包括与公司企业级计算机网络系统相关联的硬件和软件、一个以上的无线移动代理、TCP/IP连接、数据存储的集合(例如用于电子邮件的数据存储可以是现有的邮件服务器,如Microsoft 服务器或Lotus 服务器),以及典型的通信链路,所有这些组件在公司防火墙之内或之后,以下将进一步解释。
根据正在使用的每个无线网络200的要求,移动设备100可以适于经由无线链路在无线网络200内进行通信。作为图3所示的无线路由器26的操作的示意示例,考虑数据项A,数据项A被重新封装在外封包B(封装的数据项A现在称为“数据项(A)”),并从主机系统250中的应用服务提供器(ASP)发送至移动设备100。在ASP内是计算机程序,与无线移动代理类似,在从数据存储向移动设备100发送所请求的数据项的ASP环境中的任何计算机上运行。以移动设备为目的地的数据项(A)被路由通过网络224,并通过用于保护无线路由器26的无线路由器26的防火墙27(也见图12)。
尽管以上将主机系统250描述为在公司企业级网络环境中使用,但是这只是一种向手持无线设备提供基于推送的消息的主机服务的一个实施例,该手持无线设备能够在数据到达主机系统时,在移动设备处向用户实时通知并优选地呈现数据。
通过提供无线路由器26(有时称为“中继”),对于主机系统250和无线网络200来说有多个重要优点。一般地,主机系统250运行主机服务,主机服务被认为是在一个以上的计算机系统上运行的任何计算机程序。主机服务被认为在主机系统250上运行,一个主机系统250可以支持任何数目的主机服务。主机服务可以知晓、也可以不知晓信息被信道传输至移动设备100的事实。例如,电子邮件或消息程序138(见图4)可以正在接收和处理电子邮件,同时相关联的程序(例如电子邮件无线移动代理)在监控用户的邮箱,并将所述电子邮件转发 或推送至无线设备100。主机服务也可以被修改为准备并经由无线路由器26与移动设备100交换信息,如客户关系管理软件。在第三示例中,可以存在对多种主机服务的公共访问。例如,移动代理可以提供对多个数据库的无线接入协议(WAP)连接。
如上所述,移动设备100可以是如图4和5中示例的手持双向无线计算设备、具有无线能力的掌上计算机、具有数据消息收发能力的移动电话、具有移动电话能力的PDA、具有无线能力的膝上计算机、具有关联OEM无线电调制解调器的售卖机、具有无线能力的心脏监控系统,或者备选地,可以是能够经由网络连接来发送和接收消息的其他类型的移动数据通信设备。尽管将系统示例为在双向通信模式中操作,但是系统的特定方案可以在“一个半”或应答寻呼环境中使用,甚或与单向寻呼系统一起使用。在这种受限的数据消息收发环境中,无线路由器26仍可以抽象(abstract)移动设备100和无线网络200,向标准的基于web的服务器系统提供推送服务,并允许主机系统250中的主机服务到达多个国家中的移动设备100。
这里示出的主机系统250具有许多方法来建立至无线路由器26的通信链路。对于数据通信领域的技术人员而言,主机系统250可以使用如TCP/IP、X.25、帧中继、ISDN、ATM之类的连接协议或者许多其他协议来建立点对点连接。在该连接上,有多种隧道传输方法可用于封装和发送数据,其中一些包括:HTTP/HTML、HTTP/XML、HTTP/专有、FTP、SMTP或一些其他专有数据交换协议。可以采用无线路由器26来执行推送的这一类型的主机系统250可以包括:现场服务应用、电子邮件服务、股票报价服务、银行服务、股票交易服务、现场销售应用、广告消息和许多其他服务。无线路由器26使得无线网络200的抽象表示成为可能,无线路由器26实现该路由和推送功能。由主机交换的、用户选择的数据项的类型可以包括:电子邮件消息、日程事件、会议通知、地址条目、日记条目、个人提醒、警报、警告、股票报价、新闻公告、银行账户交易、现场服务更新、股票交易、心脏监控信息、售卖机存货水平、仪表读数数据、GPS数据等,但是可以备选地包括发送至主机系统250或者主机系统250通过使用智能代理来 获取的任何其他类型的消息,如在主机系统250启动对数据库或网站或公告牌的搜索之后接收的数据。
无线路由器26提供了多种服务以使得创建基于推送的主机服务成为可能。这些网络可以包括:(1)码分多址(CDMA)网络、(2)组专用移动或全由移动通信系统(GSM)和通用分组无线服务(GPRS)、(3)现有的即将到来的第三代(3G)和第四代(4G)网络,如EDGE、UMTS和HSDPA、LTE、Wi-Max等。以数据为中心的网络的一些较早示例包括但不限于:(1)Mobitex无线网络(“Mobitex”)和(2)DataTAC无线网络(“DataTAC”)。
为了有效地向主机系统250提供推送服务,无线路由器26可以实现一组已定义的功能。可以认识到,针对无线路由器26可以选择许多不同的硬件配置,然而,在这些不同配置中将可能存在许多相同或相似的特征集合。
为了帮助读者理解移动设备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 126插入SIM/RUIM/USIM接口128以与网络通信。在没有组件126的情况下,移动设备100不能完全操作用于与无线网络200通信。一旦将SIM/RUIM/USIM 126插入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。组应用54使用组共享模块298来管理移动设备用户的组和针对其的应用程序。可以在组应用和小应用程序数据库63中存储用于组应用54和相关联应用程序的图形用户界面(GUI)的数据。可以认识到,如上所述,用户可以属于多个组,以及任何数目的子组,以与特定一个以上的其他组成员共享私有信息。组应用54还包括或能够访问其当前的、共享数据11’的本地版本。在以下示例中,后缀(’)用于指示:由于不在覆盖范围内和其他情形,与由更大的组10要维持的共享数据11的概念集合相比,共享数据11’的指定本地版本可能不必然完全是最新的。共享数据11’可以包括与一个以上的组相关的数据,因此,可以存在共享数据11’的多个集合,并且共享数据11’的多个集合可以包括在一个以上的分离的数据库中。
组工程和任务管理应用58使用户能够创建新项目,或者参与由组10中的另一用户创建的工程。如上所述,每个工程包括一个以上的任务,这些任务可以分配给组10中的不同用户,如以下将更详细解释的,通过组工程和任务管理应用58来控制这些任务的管理。
现在转到图6,适于移动设备A、B、C和D(以下称为移动设备100a、100b、100c和100d)的用户通过这些设备已经在使用的消息交换服务来交换组消息8(在本示例中通过无线路由器26)的配置。在 图6中可以看到,本示例中的无线路由器26作为对等消息收发服务器80的主机,对等消息收发服务器80利用PIN至PIN协议82和消息高速缓存316,所有这些都被认为是对等消息收发组件的组件。在图6所示的实施例中,个人识别号码(PIN)用于寻址组消息8。这种基于PIN的消息收发系统是使用基于服务器的通信基础设施(如提供电子邮件、SMS、语音、因特网和其他通信的通信基础设施)来实现的。尤其适于作为对等消息收发服务器80的主机的是在如图3中所示的系统中使用的无线路由器26。在图6中,无线路由器26还便于如移动设备100a、100b、100c和100d之间的即时消息收发之类的通信。可以认识到,参与图6所示示例的用户的数目仅用于示意目的。组数据11的共享由每个移动设备100a~100d上存储的组应用54提供,组应用54可以通过从显示屏(未示出)上选择合适的图标来启动。无线路由器26根据PIN至PIN协议82来在移动设备100a~100d之间路由组消息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,则可以根据作者(以后示例,也见图24和25)来在所 有组成员之间划分向新成员发送记录92的职责。
一般地,在基于PIN的消息收发协议82中,组消息8的发送方知道预期接收方的PIN,并且可以采用各种机制来确定针对其他成员的PIN消息,例如通过主机系统250、经由电子邮件交换等。根据图6所示的配置,移动设备100a可以通过对等消息收发服务器80,分别或集合地与移动设备100b-100d中的任一个直接通信。当根据图6所示的实施例来进行PIN至PIN交换时,移动设备100a-100d可以在基于客户端的交换中与无线路由器26直接通信,其中,与其他对等程序类似,不需要中间服务器。一个移动设备100发送的组消息8由无线路由器26接收,无线路由器26从与组消息8相关联的信息(例如数据日志)中,或者从组消息8自身中,获得预期接收方的PIN号码。在根据PIN至PIN协议82获得接收方的PIN之后,无线路由器26接着将组消息8路由至具有这种PIN的所有相关联预期接收方。典型地,无线路由器26还向原始发送方提供传送确认(可以显示也可以不显示给用户),并且移动设备100可以使用与在覆盖范围内和不在覆盖范围内情形相关的消息的交换来更新移动设备100的存在信息。目的地设备也可以提供这种传送信息。无线路由器26应当能够可靠地路由组消息8,并且保持组消息8直至其成功传送。备选地,如果在特定超时时间段之后不能进行传送,则无线路由器26可以提供指示传送失败的响应。如果特定等待时间段过去,则无线路由器26可以选择使组消息8期满。在这种情况下,移动设备100可以接着选择是否重发组消息8。
可以认识到,以下讨论的原理同样适用于PIN至PIN消息收发和由第三方作为主机的其他基于因特网服务的即时消息收发系统。
图7中示出了组共享模块298的一个示例配置。组共享模块298包括或能够访问移动设备本地存储的共享数据11’的拷贝,并包括或能够访问移动设备的组应用和小应用程序数据库63。如上所述,组应用和小应用程序数据库63包括与记录92在组应用54提供的对应应用程序中使用的方式相关的任何信息、设置或其他数据。可以认识到,仅为示意目的将小应用程序数据库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包括:图形用户界面(GUI)模块310,使用组应用和小应用程序数据63,并通过将共享数据11’提供给通过组应用54可用的各种小应用程序(applet),来显示这些小应用程序。GUI模块310使用户能够选择小应用程序中期望的一个,然后,该小应用程序指示处理器102启动并显示针对该小应用程序的GUI(部分通过与显示器110通信来进行)。可以使用上述各种输入设备(例如轨迹球14a、14b、键盘12、触摸屏28等)来观看、编辑、更新组应用小程序,以及与组应用小程序并从而与共享数据11’交互,以下可以使用参考标号304来共同地表示输入设备。
因此,组应用54可以使用组共享模块298来启动和显示小应用程序GUI,以处理和处置输入和输出消息8、8a,并处理输入和输出的在覆盖范围内和不在覆盖范围内消息(以下将解释)。图8至10中示出了用于处理组消息8和私有消息8a的交换的多个示例场景。
图8示意了针对图1(a)所示的整个组10的单一更新。在以下 示例中,每个成员A、B、C、D与相应移动设备100a、100b、100c和100d相关联。在图中所示的场景中,移动设备100a处理本地产生的更新,例如通过使用新消息产生器306来产生公共组消息8,从而向组日程添加约会。组消息8标识组成员,或者在本示例中,标识针对组中的每个其他成员(本示例中为成员B、C和D)的PIN号码,并经由在本示例中由对等服务器80提供的消息交换服务来向其他移动设备100b、100c和100d发送组消息8。然后,对等服务器80能够向每个成员B、C和D发送消息8的拷贝(如同其通常针对其他PIN至PIN类型的消息所做的那样),即向组10提供组播。此时,在移动设备100a处对共享数据11’进行的更新在每个其他成员处重复,因为每个移动设备100b、100c和100d包括具有消息比较器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(即移动设备100d)不在覆盖范围内,如图9(a)中虚线所示。在这种情况下,可以向移动设备100b和移动设备100c发送组消息1,但是由于移动设备100d不在覆盖范围内,因此对等服务器80在消息高速缓存316中为成员D存储或“保持”组消息1的拷贝。如图10中所示,在移动设备100d返回覆盖范围内时,对等服务器80此时能够向移动设备100d转发所存储的消息8。换言之,可以利用对等服务器80的存在(在本示例中,针对移动设备100之间经由无线网络200的通信已经存在)来“存储-转发”组消息8,以使组10能够容许如图9所示的不在覆盖范围内的形。
在一些实施例中,对等服务器80和移动设备100被配置为在成功传送组消息8时需要Ack消息312。在图9(b)所示的示例中,对等服务器80对成员B和成员C产生并发送的Ack消息312进行中继,其中,缺少来自成员D的Ack消息将向移动设备100a提供移动设备100d不在覆盖范围内的指示。在这种情况下,如图9(c)所示,可以产生并向移动设备100b、移动设备100c和移动设备100d发回不在覆盖范围内消息314,其中,如果移动设备100d仍然不在覆盖范围内(如图9(c)所示),则对等服务器80为移动设备100d保持不在覆盖范围内消息314,直到其返回覆盖范围内。移动设备100可以使用不在覆盖范围内信息来跟踪存在,例如,更新UI以在消息收发会话中示出该成员D不在覆盖范围内因而不能接收消息。
现在转到图10(a),此时,对等服务器80已经确定移动设备100d返回覆盖范围内并因此能够向移动设备100d转发在消息高速缓存316中保持的组消息1和不在覆盖范围内消息314,移动设备100d确定其他一些用户已经在某个时间点确定其不在覆盖范围内。然后,移动设备100d可以产生并发送寻址至组10中的其他成员的在覆盖范围内消息315,该消息可以被中继至相应移动设备100,如图10(b)所示。按照这种方式,移动设备100d能够通知组10它们其已返回覆盖范围内,例如用于更新存在标识符等。然后,移动设备100d将考虑新消息来处理和更新共享数据11’和GUI。图10(c)示意了移动设备100d产生并作为组消息2发送的另一更新,由于移动设备100d返回覆盖范围内,现在这是可能的。当不在覆盖范围内的情形出现时,出现冲突的几率可能升高,因为组消息8被发送但在移动设备100不在覆盖范围内时未传送至移动设备100的可能性较大。如果出现冲突,则移动设备100可以利用冲突解决方案(以下将描述),以使用根据特定准则确定的、更新中的优选更新来改写对应记录92。
图11(a)至11(f)示意了冲突解决的示例。首先转到图11(a),在本场景中,在T1,当移动设备100d不在覆盖范围内时,成员D产生或修改记录Y 382,这可以包括产生新记录Y或修改新记录Y。然而,由于移动设备100d不在覆盖范围内,此时该改变不能分发至组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保持,因为在这种情况下,移动设备100d被确定为不在覆盖范围内。在图11(b)中,成员A、B和C具有驻留于其相应移动设备100上的修改X 380(例如,在共享数据11’中),而成员D具有修改Y 382。
现在转到图11(c),在T3,当移动设备100d返回覆盖范围内时,可以接收在消息高速缓存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)所示,在T5,通过丢弃修改Y 382,并在图11(f)中所示的T6保持修改X 380来解决冲突。可以使用多种合适的冲突解决方案,为了该示意的目的,保持最新的记录时间戳74而丢弃其他时间戳。由于移动设备100d实际上早于首先分发的修改X进行了修改Y,因此成员D进行的改变被成员A进行的改变所取代。可以认识到,选择最新的时间戳仅是示例,如以下所示,可以存在其他示例。
可以注意到,为了清楚,图11所示的时间序列假定组10中的所有移动设备100具有实质上相同或合理同步的时钟。在一些实施例中,这可能难以维持,然而在许多情况下,数据更新器模块300可以容许时钟的微小差异。然而,由于时间偏离,共享数据11’中的一些可能变得不同步,因此可以进行测量来缓解这一问题。例如,新消息产生器306可以被编程为查看最近接收的组消息8的记录时间戳74,并确保其更新将具有更晚的时间戳74,将时间增量添加至最近接收的组消息8中指示的时间,尤其是在该消息8具有比移动设备100的当前时钟更晚的时间戳74的情况下。按照这种方式,即使成员之一具有明显的 时间偏离,一旦他或她发送更新,发出的组消息8将相对于该时间戳74同步,最终将选出共享数据11’。备选地,可以使用更复杂的方案,如依靠全局时钟或消息的周期性交换来超控(override)任何用户修改的时间设置。解决时间偏离也可以禁止组8的成员有意将其时钟超前设置,以确保其更新始终被选择。当然,如果使用其他与时间不相关的冲突解决方案(如用户偏好的等级体系),则可以忽略这些考虑中的一些。
如上所述,组应用54可以包括一个以上的小应用程序,每个小应用程序具有与其相关联的、如上所示更新的一个以上的数据库90。现在转到图12,示出了示例组应用GUI 320。通过突出显示并在显示器上选择合适的图标,可以在移动设备显示器12上启动并显示组应用GUI 320。组应用GUI 320包括沿屏幕顶部的组名称322和通知区324,以标识当前在组应用GUI 320中示出的组10。如上所述,每个成员可以属于多于一个组,因此组应用GUI 320可以显示针对各个组10的信息。还示出了多个可用的全局小应用程序326,使得成员能够选择和利用期望小应用程序326,其示例在图13和14中示出并在以下描述。组应用GUI 320还包括状态栏328,以指示成员名称和成员状态338。在本示例中,用户A在家中。组应用GUI 320还包括由组名称322指示的组10中的每个成员的成员列表330。在本示例中,给出了用户B、C和D具有对应成员状态340的列表330。该示例中的每个列表包括成员小应用程序图标332,指示对该用户和其他成员公共的各种小应用程序326。小应用程序图标332可以包括公共或全局小应用程序指示符336以及私有小应用程序指示符334,如私有列表或对话。在本示例中,用户A具有与用户B进行的私有小应用程序,例如,上述礼物列表。
通过突出显示并选择全局小应用程序326之一或私有小应用程序(例如,通过私有小应用程序指示符334),可以启动所希望的小应用程序的GUI,并如图13至14所示而显示。
图13(a)示意了列表GUI 342,该列表GUI 342具有小应用程序名称344、类别输入框346、项目输入框348以及当前项目列表350。 当前项目列表350包括一个以上的类别352,每个类别包括零个或多个项目(即,类别是等待填充的)。在图13(a)中,示出了对列表进行更新的两个示例,即添加新的类别或更新(即,选择)当前列出的项目354。这些示例示出了对共享数据11的修改。在该示例中,如果项目354是购物列表项目,并且用户A如图所示对项目1进行了复选,则可以例如通过内部添加或修改标签或标识,或者通过对记录92中的值的任意其它修改,改变针对该项目的记录92,以使真实情况:“Apples-need”反映当前情况:“Apples-purchased”。然后可以在组消息8中发送该新的记录92,以使得其它组成员能够将指示“Apples-need”的先前记录92替换为“Apples-purchased”,以指示不再需要该项目354。为了更新列表GUI 342中的这种改变,组应用和小应用程序数据63可以提供用于提供复选标记或修改文本的规则或指令,以在项目列表350中指示已经购买了项目1。
图13(b)至13(e)示意了图13(a)中示出的列表GUI 342的另一实施例。在图13(b)中,包括讨论列表选项388,其使得用户能够参与聊天或发表与列表344有关的消息。在该示例中,类别352“Food”包括多个项目354,并且每个项目354具有用户分配353,用户分配353被包括用于指示谁将要获得或完成该项目354。图13(c)示意了标签为“Cheese”的项目354的完成,并且列表344被更新以示出“Cheese”已经由Ryan Smith选择。
图13(d)示意了组应用小程序列表GUI 390,其包括小应用程序列表392,小应用程序列表392包括可扩展组更新条目394。组更新394在扩展时可以显示列表396,即针对该组的一个以上的更新。在图13(d)中作为示例示意了与图13(c)所示的“Cheese”项目354的完成相关联的特定更新398。这样,用户可以通过查看列表342本身或者通过以与查阅新输入消息类似的方式查阅更新,获知列表更新。
图13(e)示意了向用户告知组更新的另一方式,即通过在消息列表395中包括组更新消息397。图13(f)示意了显示包括组更新在内的活动更新的另一方式。在图13(f)中,示出了Recent Updates GUI600,其显示了活动更新列表602。例如在显示画面改变或者在将成员 添加到组时,活动更新列表602显示特定联系人活动和组活动。活动更新列表602可以被配置为包括预定最大数目的最近期更新,例如25个最近期更新。可以通过在组GUI或即时消息收发联系人列表中选择图标或其它链接,访问Recent Updates GUI 600。图13(f)还示出了更新菜单604,可以启动更新菜单604以清除、折叠或管理分组(分类)的更新,或者执行与更新中提到的联系人相关联的功能(例如,如图所示的“Call Voice Mail”)。
图13(g)示意了用于修改与Recent Updates GUI 600相关联的设置的Options GUI 606。在该示例中,可通过菜单来访问Options GUI606,该菜单可通过组共享应用程序54或即时消息收发应用程序(未示出)而调用。Options GUI 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中键入类别名称。为了将列表项目的职责分配给组成员,在键入成员的名称时,可以执行组列表(或其它来源)中的查找,并且用户可以从过滤的列表(未示出)中选择该成员。为了设置列表项目的优先级,可以改变Priority字段620。为了指定与新的项目相关联的完成日期,可以通过选择日期选项(未示出)并选择特定日期,来改变Due字段622。为了将优先等级设置为针对具有完成日期的列表项目,在指定时间自动改变为高,可以提供“使成为高优先级”字段。
当在移动设备100上选择了列表时,列表GUI 626呈现为如图15 所示。通过调用主菜单628(例如,通过选择菜单按键),可以选择SortBy选项629来调用副菜单。副菜单使得可以选择标准来对列表进行分类。图15所示的示例包括名称、优先级、类别、完成日期、状态和分配成员。
当组10的成员删除列表项目(或者“完成了”该项目)时,该项目在列表中呈现为被划掉的。例如,如果需要重复该项目或者实际上并未完成该项目,另一成员可以通过从菜单(未示出)选择重新创建选项,恢复该项目。
如上所述,也可以扩展管理组10中的列表的原则,以更具体地管理工程内的任务。现在转向图16(a)至16(d),其示出了用于管理组工程的屏幕截屏。在图16(a)中,示出了工程GUI 342’,其显示了小应用程序名称344’,使得可以添加新的子工程346’,并且允许添加新的任务348’,与图13所示的类别346和项目348的添加类似。GUI 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。
GUI 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内共享注释,在该示例中,GUI 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所示的GUI之外,可以在设备100上提供各种GUI。可以使用组10来创建或加入特定用户想要保持连接的其他用户的集合,例如家庭、朋友或同事。可以使用组10来与组10的成员共享图像、列表和约会。可以发起与其他成员的聊天,并且可以对共享的项目进行注释。组可以指定预定最大数目的成员,并且可以包括尚不是给定用户的联系人列表64的一 部分的成员,尤其是在联系人列表64与即时消息收发或其他消息收发媒介相关联时。可以通过在现有应用程序的屏幕中包括组10的指示或列表,将组10集成到现有接口或应用程序中。还可以将组10包括在联系人列表接口和应用程序中。还可以创建组的快捷图标并放置在主屏幕上,以便能够快速地访问特定组或与组相关联的特定功能。
现在转向图17,在该示例中,使用Create New Group GUI 632创建了组10。在创建新的组10时,创建该组的用户自动地成为该组的管理员。通过选择适当的输入机制并调用菜单,选择创建新组的选项,以便调用Create New Group GUI 632。通过在Group Name字段634中键入,识别该组的名称,并且通过在Description字段636中键入,提供潜在成员在接收到加入组10的邀请时看到的说明。可以通过改变组图标选项638来选择该组的图标。为了避免其他成员邀请其他用户加入该组10,将Allow non-admin members to invite others选项640改变为“No”。否则,其他成员可以邀请其他用户。可以将Show on Home Screen选项642设置为“Yes”或“No”。如果Show onHome Screen选项642被设置为“Yes”,则在主屏幕上放置表示组10的图标,从该图标可以直接地访问与组10相关的功能。如果Show onHome Screen选项642被设置为“No”,则不在主屏幕上放置表示组10的图标。
对于包括摄像机/照相机或其他成像设备(未示出)的移动设备100,用户可以通过扫描在另一用户设备的屏幕上显示的条码644来加入组。在图18中示出了Scan Barcode GUI 646,在该示例中,ScanBarcode GUI 646向用户告知移动设备100可以扫描二维条码644来加入组10并提供了示例的条码644。选择Don’t show this messageagain复选框648以在将来的使用中跳过GUI 646的显示。调用Scan aGroup Barcode选项(未示出)以启动Scan Barcode GUI 646。通过选择Continue按钮650,使用摄像机/照相机或移动设备100的成像设备来拍摄图像。通过定向移动设备100以使得在另一移动设备上显示的条码644的所有四个角均出现在移动设备100的显示设备上,移动设备100捕获条码644。移动设备100然后自动地扫描条码644,并 在扫描成功时通过可听到的“哔哔声”来提供确认。
如上所述,可以将聊天、图像或列表发送给不是组10的一部分的用户。通过选择特定的组聊天、图像或列表,如图19所示地调用菜单652,在该示例中,由于选择了图像,显示Send Picture To选项654,其使得用户能够将所选的图像发送给希望的用户。可以认识到,如果选择了聊天,则菜单652包括“Send Chat To”选项(未示出)。调用Send Picture To选项654将引起另一接口(未示出)的显示,在该接口中可以选择该图像的一个以上的接收方。一旦选择了接收方,则根据一个以上的消息传输,例如电子邮件、即时消息或对等传输,将所选图像发送到所选接收方。
可以通过调用Group Details GUI 656来指定和/或修改特定组100的各选项和细节,在图20中作为示例示出了Group Details GUI656。例如,可以通过与组共享应用程序54、即时消息收发应用程序和、主屏幕等相关联的菜单(未示出)来调用Group Details GUI 656。从图20可见,为了清楚起见,将类似的数字赋予与在创建组10(参见图17)时提供的选项相同的选项。可以通过选择Group Icon选项638来更新与组相关联的图标。为了在是否与其他成员共享用户的状态之间切换,可以将Share My Status Message选项658改变为“Yes”或“No”。可以通过选择Display Group Barcode按钮660来显示组的条码644。如上面结合图18所示,这使得其他用户能够扫描组的条码644来加入组。为了在添加、删除成员或者成员离开组时被告知,可以将Group字段(未示出)中的Notify Me of Changes设置为“Yes”。为了打开组10的聊天历史,可以修改Save Message History字段664。为了存储组图像,可以修改Save Pictures选项668以选择设备、媒体卡或任何其他可用存储器。为了停止接收到消息应用程序中组活动的通知(例如,如图13(e)所示),可以选择与Message ListIntegration字段相邻的Settings按钮670,然后选择一选项。如果用户是组10的管理员,则可以通过在Description字段636中键入新的说明,来改变组说明。为了改变成员成为组10的管理员所需的密码,可以将Administrator Password选项662设置为“Change”或“Set”。 为了在图像被标记为最喜爱时通知其他成员,可以将Notify groupwhen I tag a picture as favourite选项666设置为“Yes”。
可以以多种方式邀请新的成员加入组,包括通过例如在即时消息收发应用程序中用于邀请新的联系人的已有邀请机制。这种机制需要新的成员在他们被添加作为组10的成员之前接受邀请。在该示例中,如果将Allow non-admin members to invite others选项640设置为“No”,则仅有管理员可以邀请新的成员。为了这么做,如图21所示,调用组联系人列表GUI 672。组联系人列表GUI 672包括Invite a newmember选项674。当选择Invite a new member选项674时,如图22所示,显示Add Member GUI 676。在该示例中,可以通过选择使得能够输入用户的电子邮件地址、PIN或名称的第一选项678,通过选择用于扫描另一用户的条码644的第二选项680,或者通过选择用于从即时消息收发应用程序中选择联系人的第三选项682,来添加新的成员。
为了通过扫描新的成员的条码644来添加新的成员,选择AddMember GUI 676中的第二选项680,并且显示Scan Barcode GUI 646(如果未选择复选框648)。通过使条码644的四个角保持在摄像机/照相机或成像设备的视角内,直到确认了成功扫描为止,来扫描条码644。
通过选择第一选项678,如图23所示,更新了Add Member GUI676’,使得能够将PIN、电子邮件地址或名称键入To字段684。如果适当,则用户可以选择This address is a distribution list复选框686。在其他实施例(未示出)中,可以使新的成员必须正确回答的安全问题与邀请相关联。一旦将一个以上的地址输入了To字段684,则激活Send按钮,以向To字段684中包括的每个地址发送邀请。
图24示出了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 GUI 694使得标题696能够与图像相关联,并且示出了图像的预览图像698。可以选择语音注释图标700以添加语音注释(下面将详细讨论)。可以讨论与组10相关联的图像。图28示出了Picture GUI 702,其提供了图像的预查看698以及谁发表了图像以及在何时发表等细节。还显示标题696。可以通过在Comment字段704中键入并选择Add Comment按钮706,向讨论添加评论。在与共享的图像相关联的组10的成员之间共享评论。
针对发表到组的图像,可以添加或更换语音注释。可以例如通过 菜单或者通过语音注释图标700,调用图29所示的Voice Note GUI708。可以提供添加或更换语音注释的选项,以使得用户能够创建新的语音注释或者在已有的语音注释上进行记录。选择Record按钮712以开始记录,在状态栏710中示出了记录的进程。在完成记录时,可以附上语音注释(未示出)。
组日历用于创建该组的约会,并与组的所有成员共享这种约会。成员可以在组10内添加、修改或删除约会。组中创建的约会也可以出现在移动设备100的已有日历应用程序中,以使得用户能够从相同的界面同时查看个人和组日历项目。图30示出了New Appointment GUI714,其包括使得用户能够产生新的组约会的Send Using选项716。剩下的选项718与本领域公知的常规日历约会选项相对应。在日历中同时示出个人和组日历项目的情况下,可以使用不同的视觉色调(例如颜色或图案)来容易地区分日历项目的类型。
图31和32示出了组日历GUI 720,其可以通过选择组GUI 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。为了设置管理员密码, 在组GUI 690中调用选项菜单730。通过突出显示菜单730中的Administration选项,显示副菜单732,使得用户能够选择SetAdminstrator Password选项或者Delete Group选项。通过选择SetAdminstrator Password选项,提示用户输入密码并接受输入以设置密码。如果用户已经设置了管理员密码,则如图34所示,显示不同的副菜单734,其包括改变密码的选项。通过选择副菜单734中的ChangeAdmin Passwod选项,然后提示用户键入新的密码,并接受新的密码以做出改变。
管理员还可以分配或删除管理员权限。如图35所示,可以调用组联系人列表GUI 672中的选项菜单736。通过如图所示突出显示Adminstrator选项,显示子菜单738,其提供多个选项,包括删除管理员权限或给组中的所选联系人授予管理员权限。如果用户不是管理员但是希望成为管理员,则管理员可以给用户提供管理员密码。在如图36所示的组联系人列表GUI 672中,非管理员可以调用选项菜单736并选择Administration选项以显示子菜单740。子菜单740包括Make me an Administrator选项,在选择该选项时,提示用户输入管理员密码。
组共享应用程序54可以保持与诸如即时消息收发之类的其它应用程序共享的联系人列表。典型地对联系人列表进行备份,并可以恢复,以存储和/或恢复联系人本身、简档以及组成员关系。设置可以用于例如在发生联系人列表改变时创建备份文件,或使得能够在设备自身或媒体卡或其它辅助存储器上进行手动备份。这种设置包括对用户所属的组的列表进行备份的能力,使得在恢复联系人列表以重建组成员关系时用户能够自动地接收对组的邀请,而不需要每个管理员手动地邀请用户。可以通过无线网络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。如上所述,如果使用恢复功能,则通过重新邀请成员加入组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中所示的那样。如果在454无法找到记录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至454相同,因此不需要重申其细节。在使用等级体系解决冲突时,在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所示的移动设备100d不在覆盖范围内的相同情况下,发送到成员B、C、D的消息8将以某种适当方式将接收确认传送回移动设备100a,使得移动设备100a可以知道要保持组消息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相关联的组成员,并且可以在540向成员发送返回覆盖范围内消息315,并且在542更新覆盖范围数据386。可以针对在520接收到的每个新组消息重复该过程,或者定期重复该过程,或者以这两种方式,以便给移动设备100提供最新的覆盖范围信息,例如使得移动设备100能够更新GUI,则不需要在设备处产生附加消息。这样,通过将任务从移动设备100转移到对等服务器80,以对等服务器80处增加的智能和开销作为代价,优化了消息传送。
如上所述,通过将记录作者字段73与每个消息8相关联,在新 的成员加入组8时,可以通过使每个成员贡献包括他们所创建的记录92在内的消息8,可以给新的成员供应最新的共享数据11的集合。图49和50示出了另一实施例,用于示意这种供应方案。首先,转到图49(a),在该示例中,具有移动设备100e的新成员E通过发送组加入请求550来请求加入组10,组加入请求550被中继到每个成员。在该示例中,假设新成员E首先通过从组成员接收邀请或者以其它方式来确定组成员关系,但是可以认识到,可以采用其它方式。如图49(b)所示,每个组成员可以以成员接受消息552对请求550做出答复,然后,驻留在新成员的移动设备100e上的组应用程序54使用成员接受消息552确认已被接受加入组10。如图49(c)所示,在接受成员E之后,每个现有成员发送共享数据11中他们做出的部分,以使得新成员能够构建他们的共享数据11的最新版本。
现在转向图50,示出了用于允许成员E加入组的供应过程。在560,新的移动设备100e接收或者以其它方式获得例如由一个现有成员或者中间媒介(例如读书俱乐部组织者)提供的组邀请。在562,新的移动设备100e使用现有或新安装的组应用程序54来产生组加入请求550,并且在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连接。这里描述的应用程序或模块可以使用可以存储或者以其它方式由这种计算机可读介质保存的计算机可读/可执行指令来实现。
相应地,提供了一种移动设备、一种包括用于操作移动设备的指 令的计算机可读介质、以及一种用于操作移动设备的方法,其中,该方法包括:产生移动设备上的联系人列表的备份文件,该联系人列表包括至少一个组;使用备份文件恢复联系人列表;以及发送或接收邀请以重新加入特定组。
还提供了一种移动设备、一种包括用于操作移动设备的指令的计算机可读介质、以及一种用于操作移动设备的方法,其中,该方法包括:在移动设备上捕获条码图像;读取条码,以获得与组相关联的标识符;以及如果读取成功,则使移动设备与所述组相关联。
还提供了一种移动设备、一种包括用于操作移动设备的指令的计算机可读介质、以及一种用于操作移动设备的方法,其中,该方法包括:在移动设备上存储条码;以及使用移动设备上的显示器来显示条码,使得整个条码在显示器上可见;其中,条码包括与组相关联的标识符,并且所述显示使得另一移动设备能够扫描条码以加入组。
还提供了一种移动设备、一种包括用于操作移动设备的指令的计算机可读介质、以及一种用于操作移动设备的方法,其中,该方法包括:确定移动设备所属的组的成员是否在与另一消息收发媒介相关联的联系人列表中;以及如果组的成员不在联系人列表中,向该成员发送邀请,以添加该成员作为所述另一消息收发媒介的联系人。
还提供了一种移动设备、一种包括用于操作移动设备的指令的计算机可读介质、以及一种用于操作移动设备的方法,其中,该方法包括:在移动设备上存储一个以上的个人日程约会;在移动设备上存储一个以上的组日程约会,组日程约会由组的多个成员共享;以及在公共图形用户界面中显示个人日程约会和组日程约会。
还提供了一种移动设备、一种包括用于操作移动设备的指令的计算机可读介质、以及一种用于操作移动设备的方法,其中,该方法包括:创建组;分配作为该组的管理员的移动设备;以及实现通过移动设备对所述组的成员关系的控制。
尽管上面参考特定具体实施例进行了描述,但是如在所附权利要求书中概述的各种修改对于本领域技术人员而言是显而易见的。
Claims (15)
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所述的计算机可读介质。
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US24948709P | 2009-10-07 | 2009-10-07 | |
US61/249,487 | 2009-10-07 | ||
US12/756,807 US8254890B2 (en) | 2009-04-08 | 2010-04-08 | System and method for managing items in a list shared by a group of mobile devices |
EP10159435.6 | 2010-04-08 | ||
US12/756,807 | 2010-04-08 | ||
EP10159435A EP2239886B1 (en) | 2009-04-08 | 2010-04-08 | System and method for managing items in a list shared by a group of mobile devices |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102035877A true CN102035877A (zh) | 2011-04-27 |
Family
ID=43888194
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010512822XA Pending CN102035877A (zh) | 2009-10-07 | 2010-10-08 | 管理由一组移动设备共享的列表中的项的系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102035877A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102710763A (zh) * | 2012-05-29 | 2012-10-03 | 新华网股份有限公司 | 一种分布式缓存池化、分片及故障转移的方法及系统 |
CN103200696A (zh) * | 2013-03-28 | 2013-07-10 | 东莞宇龙通信科技有限公司 | 数据共享的方法及装置 |
CN103649964A (zh) * | 2011-06-30 | 2014-03-19 | 甲骨文国际公司 | 安全寄存执行体系架构 |
CN105409322A (zh) * | 2013-07-30 | 2016-03-16 | 高通股份有限公司 | 用于覆盖外裝置的lte直接中继器的功率高效发现 |
CN109725957A (zh) * | 2017-10-27 | 2019-05-07 | 钉钉控股(开曼)有限公司 | 团体配置方法及装置、内容共享系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002089026A2 (en) * | 2001-04-28 | 2002-11-07 | Hewlett-Packard Company | Diary system |
US20030208541A1 (en) * | 2001-11-10 | 2003-11-06 | Jeff Musa | Handheld wireless conferencing technology |
US6785868B1 (en) * | 2000-05-31 | 2004-08-31 | Palm Source, Inc. | Method and apparatus for managing calendar information from a shared database and managing calendar information from multiple users |
-
2010
- 2010-10-08 CN CN201010512822XA patent/CN102035877A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6785868B1 (en) * | 2000-05-31 | 2004-08-31 | Palm Source, Inc. | Method and apparatus for managing calendar information from a shared database and managing calendar information from multiple users |
WO2002089026A2 (en) * | 2001-04-28 | 2002-11-07 | Hewlett-Packard Company | Diary system |
US20030208541A1 (en) * | 2001-11-10 | 2003-11-06 | Jeff Musa | Handheld wireless conferencing technology |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103649964A (zh) * | 2011-06-30 | 2014-03-19 | 甲骨文国际公司 | 安全寄存执行体系架构 |
CN103649964B (zh) * | 2011-06-30 | 2016-10-19 | 甲骨文国际公司 | 安全寄存执行体系架构 |
CN102710763A (zh) * | 2012-05-29 | 2012-10-03 | 新华网股份有限公司 | 一种分布式缓存池化、分片及故障转移的方法及系统 |
CN102710763B (zh) * | 2012-05-29 | 2015-11-25 | 新华网股份有限公司 | 一种分布式缓存池化、分片及故障转移的方法及系统 |
CN103200696A (zh) * | 2013-03-28 | 2013-07-10 | 东莞宇龙通信科技有限公司 | 数据共享的方法及装置 |
CN103200696B (zh) * | 2013-03-28 | 2017-02-08 | 东莞宇龙通信科技有限公司 | 数据共享的方法及装置 |
CN105409322A (zh) * | 2013-07-30 | 2016-03-16 | 高通股份有限公司 | 用于覆盖外裝置的lte直接中继器的功率高效发现 |
CN105409322B (zh) * | 2013-07-30 | 2018-11-27 | 高通股份有限公司 | 用于覆盖外裝置的lte直接中继器的功率高效发现 |
CN109725957A (zh) * | 2017-10-27 | 2019-05-07 | 钉钉控股(开曼)有限公司 | 团体配置方法及装置、内容共享系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8538360B2 (en) | System and method for managing items in a list shared by a group of mobile devices | |
CN101588262B (zh) | 移动无线设备的远程管理 | |
CN101516073B (zh) | 针对无线通信系统中的无线设备的策略管理 | |
US8359206B2 (en) | Web based interactive meeting facility | |
US9117220B2 (en) | Web-based interactive meeting facility with revenue generation through sponsorship | |
US20080305832A1 (en) | Sharing profile mode | |
CN111684480B (zh) | 电子事件管理系统 | |
US9917702B2 (en) | System and method for managing items in a list shared by a group of mobile devices | |
US20210209552A1 (en) | Electronic business card management method and apparatus | |
US20180060017A1 (en) | Computerized Contact Management Systems and Methods | |
KR102320486B1 (ko) | 추천 알림을 제공하는 방법 및 장치 | |
CN102035877A (zh) | 管理由一组移动设备共享的列表中的项的系统和方法 | |
EP2239886B1 (en) | System and method for managing items in a list shared by a group of mobile devices | |
CN104662490A (zh) | 基于社交、时间和空间参数对数据对象的集成型显示和管理 | |
US12063577B2 (en) | System and method for managing items in a list shared by a group of mobile devices | |
KR20160091861A (ko) | 메신져서버, 상기 메신져서버와 상호 데이터 통신하는 단말기 및 그 제어방법 | |
KR20150053886A (ko) | 인스턴트 메시징 어플리케이션에서 메시지 통번역을 제공하는 시스템 및 방법 | |
KR102439877B1 (ko) | 일정 서비스를 제공하는 인스턴트 메신저 서버의 동작 방법 및 장치 | |
KR20140034389A (ko) | 모임 관리 시스템 및 방법 | |
WO2009152227A2 (en) | Web-based interactive meeting facility | |
KR20150111507A (ko) | 메신져서버, 상기 메신져서버와 상호 데이터 통신하는 단말기 및 그 제어방법 | |
KR101731395B1 (ko) | 메신져서버, 상기 메신져서버와 상호 데이터 통신하는 단말기 및 그 제어방법 | |
KR102653486B1 (ko) | 일정 관리 방법 및 시스템 | |
KR20240037930A (ko) | 일정 서비스를 제공하는 인스턴트 메신저 서버의 동작 방법 및 장치 | |
KR20160091308A (ko) | 메신져서버, 상기 메신져서버와 상호 데이터 통신하는 단말기 및 그 제어방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20110427 |