CN101095110B - 用于分布式信息呈现和交互的系统 - Google Patents

用于分布式信息呈现和交互的系统 Download PDF

Info

Publication number
CN101095110B
CN101095110B CN2005800458860A CN200580045886A CN101095110B CN 101095110 B CN101095110 B CN 101095110B CN 2005800458860 A CN2005800458860 A CN 2005800458860A CN 200580045886 A CN200580045886 A CN 200580045886A CN 101095110 B CN101095110 B CN 101095110B
Authority
CN
China
Prior art keywords
application processor
output
application
state
message
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.)
Expired - Fee Related
Application number
CN2005800458860A
Other languages
English (en)
Other versions
CN101095110A (zh
Inventor
K·L·登普斯基
B·L·哈维
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.)
Accenture Global Services Ltd
Accenture International LLC
Original Assignee
Accenture Global Services GmbH
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 Accenture Global Services GmbH filed Critical Accenture Global Services GmbH
Publication of CN101095110A publication Critical patent/CN101095110A/zh
Application granted granted Critical
Publication of CN101095110B publication Critical patent/CN101095110B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/544Remote
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/545Gui
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/546Xcast

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • User Interface Of Digital Computer (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

一种用于分布式信息处理和交互的系统,包括配置成产生系统输出的各个输出部分的多个输出设备,多个应用处理器,以及与多个应用处理器进行数据通信的状态服务器。各个输出部分中的每个是由上下文信息定义的。每个应用处理器被配置成处理各个应用程序中的一个或多个,并对上下文信息做出响应。每个应用处理器与相关联的各个输出设备连接,用于控制输出设备产生各个输出部分。状态服务器向多个应用处理器提供上下文信息。该架构可被扩展成更普遍的系统,在这样的系统中,输出设备产生包括设备激励以及视频显示的各种输出,并接收各种输入。

Description

用于分布式信息呈现和交互的系统
版权公告
本专利文件的一部分公开包含受版权保护的材料。当本专利文件或专利公开出现在专利商标局的专利文件或记录中时,版权所有人不反对任何人对它的传真复制,否则不论何种情况都将保留所有版权。
技术领域
本发明一般涉及数据处理系统。更特别地,本发明涉及用于分布式信息呈现和交互的系统。
背景技术
分布式数据采集和处理系统允许对大量数据(包括实时数据)进行收集、存储和操纵。实时数据是这样的数据,该数据以与它被接收的速度相同的速度得到更新和处理。实时数据可以来源于各种源。其实例包括被监控的系统或环境中的传感器网络,和用于库存或资产的射频识别标签(RFID)跟踪系统。这些和其它相关技术已经使组织能够访问关于组织的运作的所有方面的大量实时信息。这些方面包括:例如,消费者行为、竞争者行为、员工生产率、供应链活动、制造、工作场所活动等等。
对于大规模的组织,该信息对于进行决策或者发展洞察力而言会是极其有价值的。总的来说,该信息可以揭示出不是立即就明显的模式或趋势。当随着时间的流逝来处理该信息时,该信息可以揭示出可用于未来预测的发展。采集和管理大量数据可以提供系统状态或操作的新的视观。
然而,庞大的数据量和互连密度使得难以容易地使该信息在标准工作站上可视化。常规的工作站基于个人电脑式技术,并且通常包括处理设备和用户接口,其中的用户接口包括:例如,显示屏、鼠标或其它输入设备。虽然多媒体能力可以增强信息的呈现,但是常规设备的尺寸小并且特性有限,这使得常规设备难以对信息进行有意义的呈现。
此外,数据处理和决策处理的复杂度使得必需在多个专家之间共享视观并进行协作。即使带有大屏幕和多媒体能力,也只有很少的人能够同时看到和与常规工作站进行交互。如果需要操纵鼠标或键盘,则只有一个人能够控制工作站,同时只有有限数量的其它参与者能够观看到该处理。
对这两个问题的一种解决方案是使专家们能够访问沉浸式环境,利用该沉浸式环境,他们能够观看、共享并物理地与信息进行交互。在一个实例中,这种环境由大型高分辨率显示器、个人数字助理(PDA)和三维(3-D)显示器,以及可选的交互通道(interaction modality)(诸如,触摸激活式屏幕、3-D鼠标、数据手套等)组成。
由于技术和形状因素(form factor)这二者的限制,这种环境需要能够将一个逻辑应用分布到组成沉浸式环境的多个计算机和显示系统上的系统。这种系统必须处理视觉显示和用户交互这二者的分布。
迄今为止还没有出现提供必要能力的足以满足需要的系统。当前还没有用于构建跨越多台并且可能是不同种类的计算机、可能具有不同形状因素的多台显示器、以及多个交互通道的应用的标准架构、语言或协议。这种应用必须由管理多台计算机、多台显示器和多个交互通道之间的交互的应用开发者从头开始创建。一些市场上能够买到的系统典型地是使用允许信息和图形数据显示在屏幕上的昂贵的视频处理器来构建的,但是不一定被构建为一个内聚的应用。其实例可从Jupiter.com得到并且被定价为数十万美元。
因此,需要有能够解决这些识别出的问题的改进的系统和方法。
发明内容
仅通过介绍的方式,目前公开的实施例提供了用于分布式信息处理和交互的系统和方法。在一个通常的实施例中,应用处理器对一个或多个软件应用做出响应以产生输出,使得各个输出一起形成系统输出。单独的处理器输出可以是显示设备上的显示,诸如对电子锁进行开锁的激励器的操作,或者是对数据库中的信息进行的改变。处理器输出可以像来自处理器的输出数据的改变一样简单。由处理器产生的每个改变或输出是各个处理器的本地状态的改变以及整个系统状态的改变。在状态改变消息中,将应用处理器的状态的每个改变报告给状态服务器。
状态服务器运行以使各个处理器的本地状态同步。状态服务器将从一个应用处理器接收到的状态改变消息反映给系统中的所有其它应用处理器。同样,任何系统输入也被报告给状态服务器,状态服务器再次将状态改变反映给所有应用处理器。用这种方式,应用处理器被保持在同步状态。通过将改变报告给状态服务器并将改变反映给所有其它处理器,应该被反映到其它处理器的输出中的一个处理器中的输出改变,被自动地并且无缝地这样得到处理。
在一个特定实施例中,每个应用处理器驱动产生拼贴(tiled)输出显示的一个或多个图像块的显示设备。每个处理器使用来自状态服务器的状态改变消息来更新整个显示器的状态信息,即使处理器仅负责对显示器的指定部分进行显示。显示器的分配的、指定的部分是处理器的上下文。输入设备检测用户与显示器的交互,类似于鼠标运动和鼠标点击,但是在一个实施例中,这种交互是显示器前面的手的运动。检测到的用户交互被报告给状态服务器,并且关于用户交互的信息从状态服务器被反映给产生图像的应用处理器。基于来自状态服务器的信息对图像进行更新。
附图说明
图1是示出用于分布式信息呈现和交互的系统的架构的框图;
图2是示出图1的系统中的处理流程的流程图;并且
图3是图1的系统的一个软件实施例的架构流程图。
具体实施方式
本实施例提供了软件架构和统一的抽象层,该抽象层允许应用开发者创建数据密集型和协同型的应用,而不必明确关注应用可能会如何分布到沉浸式环境内的多个显示器和计算机上。该架构是通过由以下五个机制组成的高级原语(primitive)实现的:(a)将应用或者应用的集合划分到多个机器和多个形状因素上,(b)提供用于配准输出部分(诸如不同计算机和/或诸如投影仪的不同输出设备上的显示段)的机制,(c)提供用于从可以由多个机器控制的多个输入设备收集用户交互的装置,使得应用具有用户交互的同步化的视观,(d)提供通信/同步机制,以使多个数据密集型和协同型的应用能够在单个计算环境内执行和协作,以及(e)提供使应用的多个用户能够在沉浸式环境内彼此进行交互的用户接口构造。
根据这些实施例的软件架构提供了统一的抽象层,用于构建用于沉浸式环境的数据密集型和协同型的应用。该统一的抽象层使应用开发者免于管理环境的低级别的细节,从而显著地增加他们的生产率和应用质量。该创新还使得应用开发者能够开发用于沉浸式环境的数据密集型和协同型的应用。
该架构被构建成支持分布式、沉浸式、多用户环境(典型的桌面操作构造所不支持的环境)中的应用。因此,该架构被构建成使开发者不受环境的复杂度的影响,并使他们可以通过统一的抽象层来编写终端用户应用。该层假定任何应用都可能驻留在多于一个的物理计算机上。因此,其提供了对于将应用分段和使分段同步的透明支持。开发者创建应用,就好像该应用是单个计算机上的单个处理。该架构还假定若干应用可能在单独的环境或者多个位置内协作。因此,其提供了保持整个环境所需的甚至是跨越多个平台和通道的消息接发和同步机制。开发者仅需要确保每个不同的应用理解不同的状态。此外,该架构假定可以有若干种输入机制,并且输入机制中的一个或多个可能允许来自一个或多个用户的多个同时输入。该架构为终端应用提供了对所有输入的共同的同步化的视观。开发者仅需要(基于应用规则)将那些输入映射到状态改变,这些状态改变继而被该架构同步化。最后,该架构假定一些终端显示器可能由多个拼贴式投影仪组成。在这种情况下,该架构供应为精确配准和融合多个块的边缘所需的软件功能。这必须由用户在运行的时候完成,但是该复杂度对于应用开发者而言是隐藏的。每个组件的细节列出如下:
连网消息接发组件:该架构自动地将所有应用连接到控制同步和消息接发的集中式服务器。连网的复杂度对于开发者而言是隐藏的,并且该架构将消息直接传递给应用。结果,本地交互(诸如,来自附带的键盘)和连网交互(诸如,来自连网的控制设备)之间没有区别。此外,开发者以与Windows“消息映射”非常相似的方式处理消息,但是该架构处理将消息映射的结果分发给所有计算机的任务。消息可以来源于应用或者专用用户接口设备(诸如触摸屏或数据手套)。
连网时间同步:该架构还确保所有应用和/或应用碎片具有共同的、同步的时间。这对于动画和状态管理是至关紧要的。除了共同的时间数据外,该架构还提供“内插器”类别,其可被用于管理状态、动画和任何其它基于时间的数据。内插器对象可以被分配开始和结束时间、开始和结束值、以及确定这些值如何随时间改变的内插函数。一旦被创建,内插器就向动画和其它对时间敏感的特征供应时间同步的值。
应用分片(fragmentation):应用开发者可以编写单个应用,该单个应用将对象放置在单个非常大的虚拟画布上并制作其动画。主计算机中的每个均具有小数据文件,该小数据文件指定它们所控制的该虚拟画布的区域。这通常是由计算机的能力和屏幕的物理放置确定的。当应用在多个机器上运行时,该架构使用数据文件来绘制画布的适当部分。先前的两个特征确保所有碎片都是同步的并且将它们自身呈现为一个逻辑应用。
应用协调:在一些环境(特别是具有不同硬件平台的那些环境)中,若干单独的应用(与一个分片的应用相反)可能需要进行交互,以提供单个工作环境。这也被该架构支持。该架构使用连网消息接发组件来将环境状态改变发消息传送给所有登记的应用。每个应用可以根据其自己的标准做出响应。
屏幕配准:该架构支持使用拼贴式的投影图像来呈现显示输出。使用拼贴式投影的一个固有问题是,相邻的投影仪必须进行仔细的配准和边缘融合,以创建单个连续的显示空间。该架构使用上述的数据文件中的信息来确定图像是否必须被配准,以及必须如何进行配准。如果有必要进行分片,则该架构加载带有用户供应的配准数据的文件,并对应用输出执行必要的图像变形。该特征可以被扩展到投影仪之间的彩色校正。终端显示设备的细节对于应用开发者而言是被屏蔽的。
高级原语:该架构用一组公共高级原语使开发者免于受到底层图形技术的复杂度的影响。这些原语表示公共对象,诸如2D对象、3D对象、线、网眼(webcam)、图片、视频、声音、文本、图形,以及二进制数据对象。
场景封装:最后,应用开发者通过创建将所有对象、数据和逻辑封装到给定“场景”内的“控制器”对象的实例,来利用上述特征。该架构将每次显示一个控制器的输出,使控制器与“应用”或者“事件(episode)”几乎同步。然而,控制器还可以是嵌套的,并被另外用于将对象放置到单独的批处理(batch)中。这有助于应用开发者将开发工作分配到若干人上。由于不同的批处理可以在必要的时候以不同的频率得到更新,所以这还有助于提高整个图形性能。
现在参考附图,图1显示出用于分布式信息处理和交互的系统100。系统100包括状态服务器102、多个应用处理器或输出设备104,以及带有多个输入设备108的输入/输出(I/O)控制器106。系统100是跨越多个不同种类的计算机设备、多个输出设备和多个通道的架构的一个实施例。系统100对从输入设备108接收到的输入做出响应,以对输出设备104产生影响。所产生的影响可以对于一个或多个输出设备而言是相同的,或者所产生的影响可以取决于影响和特定输出设备而不同。如下面将会进一步详细描述的那样,对任何一个输出设备产生的影响将取决于输出设备和影响的性质。
通常,状态服务器102保持系统100的一个或多个状态,并确保输出设备104被同步化。状态服务器102通过发送消息与输出设备104通信,优选地是采用预定的消息协议。状态服务器102将其接收到的关于系统100的所有消息反映回给系统中所有适当的设备,特别是,反映回给所有输出设备104。状态服务器102从输入设备108接收输入信号并将消息发送给适当的输出设备104以便以下文中更详细讨论的方式使输出设备的状态同步化。输入设备108可以包括任何种类的传感器或数据采集设备。输出设备104可以包括任何种类的音频或视频或其它输出设备或系统,包括诸如平板PC的个人计算机(PC)、个人数字助理(PDA)或膝上型电脑或者其它专门的设备或处理器。输出设备104最通常地包括用于引起交互或环境中的结果的任何类型的激励器。
将在示例性系统的上下文中讨论图1的实施例,其中在示例性系统中,系统100在显示表面110上控制显示图像。显示图像由多个显示设备112组成。在示例性系统中,显示设备112是各个应用处理器116中的一个或多个的控制下的视频投影仪114,其中各个应用处理器116中的一个或多个被配置成将显示投影到形成显示表面112的玻璃幕墙120的面板118上。可以使用任何适合数量的投影仪114和玻璃面板118来形成显示图像。在图1的实例中,投影仪的2×4阵列一起在玻璃面板118的类似阵列上形成显示图像。在其它实施例中,可以使用其它数量的投影仪和其它数量的玻璃面板。在另外的其它实施例中,可以用其它类型的视频显示设备来作为替代,诸如平板显示器、等离子体显示器或者阴极射线管。本文中描述的原理不应该由任何特定技术限制,而是可以应用于最宽广种类的设备。
在图1的示例性实施例中,输入设备108包括一个或多个摄像机122、数据手套124、指向设备126和红外传感器128。如附图中所指示的那样,与这些类似的其它输入设备或者其它类型的输入设备可以被添加到系统100中。摄像机122是拍摄视频图像的设备。图像可以是任何适合格式(包括诸如jpeg(是指由联合照相专家组提出的标准数据格式)或者gif(图形交换格式)或者其它格式的数字格式)的单个图像,或者视频图像可以是电影图像,诸如根据诸如由运动图像专家组(MPEG或者其变体之一)提出的标准或者其它标准而被编码的数据文件。数据手套124是用于虚拟现实和其它数据处理设备的采取手套的形式的输入设备,该手套测量穿戴者的手指的动作并将它们传送给数据处理设备或计算机。高级的数据手套还测量手腕和肘的动作,或者也可以测量其它身体部分的动作。数据手套还可以包含控制按钮,或者充当输出设备,例如在计算机的控制下振动。用户通常看到数据手套的虚拟图像并可以指向或者抓住并且推动对象。指向设备126可以是任何数据输入和操纵设备,诸如计算机鼠标或手写板。红外传感器可以是对来自设备的热、能量或无线电辐射做出响应以产生图像的任何传感设备。
I/O控制器106充当系统100和输入设备108之间的数据采集接口。因此,I/O控制器106被配置成从各个输入设备108接收信号,并继而提供任何必要的信号。例如,为了接收来自摄像机122的jpeg格式的文件,I/O控制器106通过向摄像机122提供适当的网络握手信号,而从摄像机122接收jpeg格式的文件并存储该文件。在另一实例中,该格式可以是来自另一摄像机120或者来自数据手套124的流式数据。I/O控制器106向输入设备提供必要的握手信号,并存储接收到的数据用于观看,或者立即将数据提供给状态服务器102。I/O控制器106从输入设备108接收以各个输入设备中的每个所提供的格式表示的数据,并将数据格式化成状态服务器102和输出设备104所需的格式。
在系统100控制显示器表面110上的显示图像的示例性实施例中,输入设备108包括用于检测显示器表面附近的用户的手或者其它身体部分,并充当指向设备以操纵图像的一部分的传感设备。例如,在一个实施例中,输入设备108包括位于显示器表面110附近的用于检测用户的手的位置和动作的一组摄像机,并与I/O处理器106结合来向状态服务器102提供信号,指示用户的手的位置和运动。信号被传递给各个应用处理器116,并被用于产生适当的显示或者显示中的改变。例如,如果手的运动应该被解释为左点击、右点击或者显示器表面110上的显示的其它鼠标激励,则各个应用处理器116中的每个将会通过处理手的运动,并且在适当的情况下,将手的运动反映到各个应用处理器所控制的显示器部分中,来适当地做出响应。
如上面提到的那样,在该实施例中,输出设备104包括一个或多个显示设备,其中一个或多个显示设备被配置成显示系统的输出显示的各个显示部分。为了完成这个任务,显示器表面120的玻璃面板118和与它们相关联的投影仪114被拼贴,使得它们一起形成合成图像。每个投影仪产生的每个图像是唯一的,并且是在与显示设备相关联的应用处理器116的控制下产生的。
通常,应用处理器116是为特定应用软件定制以执行系统100中的特定功能的通用数据处理系统。应用处理器116通过数据链路被连接到状态服务器102。这些可以是有线线路或无线数据链路,或者是任何适合的数据通信设备。应用处理器116可以包括特定硬件组件或者与特定硬件组件相关联,其中的特定硬件组件用于产生特定的输出激励。用于通用输出设备的一个示例性的激励是打开远程位置的电控锁。在这种应用中,应用处理器116与伺服电机或者其它设备协作,以通过机械方法打开该锁。于是通常每个应用处理器被配置成处理应用程序,并对上下文信息做出响应。各个应用处理器中的每个与相关联的各个输出设备104进行数据通信,以控制输出设备104提供系统输出的输出部分。系统输出是所有输出设备104的输出部分的集合体。
在图1的特定示例性实施例中,应用处理器116被定制为用于处理系统100的输出显示的各个显示部分。因此,应用处理器从状态处理器102接收消息形式的数据和指令,并将控制信号提供给一个或多个相关联的投影仪114。图1显示出应用处理器的示例性的软件架构130。软件架构130包括核心组件132和应用层134。核心组件132是软件架构130的被所有为应用处理器116准备软件应用的开发者共享的各方面。其实例包括输入/输出驱动器、存储和检索例程,以及其它操作系统组件。应用层134包括函数、例程和其它组件,它们由每个软件开发者为应用处理器116定制,以为应用处理器创建独特的应用行为。
应用层134包括消息处理程序136和一个或多个对象138。消息处理程序136与状态服务器102通信。特别地,消息处理程序136从状态服务器102接收定义系统100中的改变的消息140以供各个应用服务器处理。此外,消息处理程序向状态服务器发送定义各个应用服务器处产生的系统中的改变,并且应该被反映给其它应用服务器116的消息142。优选地,根据预先定义的数据传输协议将消息格式化,包括:例如,带有源地址和目的地地址的信头,和包括定义系统中的状态改变的数据的净荷。然而,可以用任何适合的数据传输格式来作为替代。
对象138由应用层134的开发者例示。对象是可以被选择和操纵的离散项目,诸如屏幕上的图形。在面向对象的编程中,对象包括数据和对该数据进行操作所必要的步骤。在应用层134的控制下,应用处理器116的操作可以使对象被生成和工作。在所示出的实例中,对象138包括它们自己的消息处理程序,以与应用层的其它部分和状态服务器102通信。由对象138传递的消息可以接收影响单独的对象的对系统状态的更新,或者可以包含关于由对象检测到的或产生的改变的信息,该信息应该由状态服务器102反映给其它应用处理器116。
根据本发明,图1例示的架构支持多个处理器(诸如应用处理器116)和处理器116上活动的多个应用(诸如,应用层134)之间的共享状态。状态服务器102的工作确保应用处理器116的状态是同步化的。换言之,状态服务器102工作以确保所有状态改变都尽可能同时地被反映给所有处理器116。
本上下文中的同步是指,最通常地,每个应用处理器的状态达到这样的相同程度:这些状态包括相同的信息。对于运行同一应用程序的本地副本的应用处理器,当应用的每个副本具有相同的数据时,它们的状态相同。在各个应用中可能有偏差。例如,在本文描述的具体实例中,两个或多个应用处理器产生显示器上的图像的一些部分。每个处理器被分配以显示整个图像的指定部分,本文中称为其上下文。然而,每个处理器保持产生整个图像而不只是产生其上下文所必要的数据。基于对应用的处理并且基于从状态服务器接收到的同步信息,来对不是上下文的一部分的数据进行更新,以便使应用的本地副本同步化或者包含与具有其它上下文的其它副本相同的数据。
在本应用中,同步不仅是时间上的同步。所有同步包含公共框架。同步涉及应用处理器的本地状态。
在第一实例中,时间同步包括向指定当前时间的所有应用发送消息的服务器,例如因为服务器访问可以被认为是时间传感器的系统时钟。响应于该消息,一些应用处理器上的一些应用可能会简单地更新动画。其它应用可能会执行一些逻辑,以将新的时间映射到更高级别的状态改变(例如,映射到这样的指示:是火车到达的时间了),并使用该架构将该新状态反映给其它应用。其它处理器上的其它应用可能不具有任何与时间有关的方面,并且因此不对消息做出响应。不同的应用适当地对报告的状态改变做出响应。
在第二实例中,火车具有形成位置传感器的全球定位系统(GPS)接收器,和本文所描述的类型的应用处理器。火车及其应用处理器发送报告GPS位置数据作为火车的新状态的消息。该消息在状态服务器处被接收,并且被反映给若干其它铁路院(rail yard)应用。例如,在铁路院命令中心,消息中的该信息影响火车位置的显示的改变。在带有数据处理设备的计算机机房中,用数据库条目来处理消息。在铁路院中,另一处理器上的另一应用打开门。
在第三实例中,触摸屏传感器检测触摸的位置,并将该位置报告给状态服务器。服务器将关于状态改变的信息发送给系统中的所有应用。一个应用将该状态改变映射到更高级别的状态,“按钮已被按下”。另一应用将触摸映射到不同的更高级别的状态,“在命令中心中有人为活动”。再一次,每个应用接收相同的状态更新消息并适当地做出响应。
在这些实例中的每个实例中,时间是以在概念上与任何其它状态改变相同的方式被处理的。触摸、运动以及对系统的任何其它传感器输入(诸如,在读卡器中刷标识卡,或者使用指纹读取器),被报告给状态服务器并且全部以适合于系统中的每个应用处理器的相同的方式被处理。状态改变不是必须以相同方式来处理。一个应用可能会简单地更新显示器。另一个应用可能会促动机械手(robot)。
再次参考图1,在最通常的应用中,状态改变受各种传感器和/或程序逻辑的影响,并且状态的改变不限于用户交互。关于状态的改变的任何信息被传递给状态服务器102,该状态服务器102将该信息反射(mirror)或者重新传送给系统100中的其它设备,包括应用处理器116。应用处理器116或者任何其它输出设备104从状态服务器接收更新后的状态信息,并适当地做出响应。该响应可能是更新存储在输出设备104上的数据。该响应可能是改变显示的图像或者程序状态。该响应可能是提供一些适合的激励。在最通常的情况下,每个输出设备的响应被定制成适合于其操作或功能的性质和更新后的状态信息。
在图1所示的输出设备104包括应用控制器116控制下的投影仪114的特定应用中,状态改变受输入设备108或应用处理器116上运行的程序逻辑的影响。响应于由I/O处理器106检测到的输入信号,状态服务器102更新其状态信息,并将该信息反射或者重新传送给系统100中的其它设备,包括应用处理器116。也就是说,每个应用处理器116被配置成,响应于处理应用程序,将更新消息派送给状态服务器102,以产生形成应用处理器所产生的各个显示部分的图像中的改变。状态服务器102将消息反映给其它应用处理器116。应用处理器116从状态服务器102接收更新后的状态信息,并适当地做出响应。在图1的该特定应用中,每个应用处理器116的响应是改变与其相关联的显示屏幕118上所产生的显示。
在该特定实施例中,位于显示器表面120附近的摄像机120作为输入检测器工作,其中的输入检测器被安置用来检测发生在由各显示面板118形成的显示设备之一附近的用户激活。响应于检测到的用户激活,输入检测器或摄像机产生用户激活信号。例如,该信号可能是以x和y坐标定义用户的手在显示面板118的表面上所处的位置的数字数据。I/O处理器106与由摄像机120形成的输入检测器和状态服务器102进行数据通信,以传递关于用户激活信号的信息。例如,I/O处理器可以简单地提供x和y坐标数据,或者数据可以用其它信息来增强或者格式化。
此外,在本文描述的特定实施例中,每个应用处理器116都运行基本上相同的程序,或者同样的应用程序。每个应用处理器116保持其自己的关于系统100的状态的副本(其响应于从状态服务器102接收到的状态消息而被更新)。基于其系统状态的本地副本,每个应用处理器116在分离的显示设备112上的预先定义的显示部分中显示应用程序的输出显示。应用的处理由作为同步器工作的状态服务器102同步化。在该系统中,各个应用处理器116中的每个控制各个显示设备112,以用于在各个显示设备112上显示输出显示的各个显示部分。
当检测到用户交互(诸如,靠近显示面板的手)时,在与各个显示设备相关联的各个应用处理器上,更新各个显示部分上的显示。作为同步器的状态服务器将关于用户交互的信息传递给各个应用处理器中的每个,其中每个应用处理器都具有所有系统数据。然而,应用处理器中的每个仅负责显示其各自的显示部分。因此,应用处理器仅在用户交互影响显示部分的情况下才更新其显示部分。例如,如果用户移动手部靠近2×4面板显示器(其中的每个面板由其各自的处理器来控制)中的最左边的面板,则手部动作所表示的用户交互被状态服务器报告给所有处理器。然而,只有控制最左边的面板的处理器才改变该面板上产生的显示,以反映用户交互。所有其它显示保持不变,尽管所有其它处理器具有同样的数据匹配。每个处理器保持其自己的上下文,并仅在上下文已经改变从而需要更新的情况下才更新其显示。上下文信息定义整个显示的什么样的显示部分是由处理器产生的。同样,如果用户交互需要改变多于一个显示面板(例如,因为在该显示器上打开了新的应用窗口)中的显示,则系统的状态将会反映出受到影响的每个应用处理器的各个上下文中的每个的改变。由于应用处理器的上下文内的改变,处理器的显示得到了更新。
图2是示出图1的系统中的处理流程的流程图。特别地,图2示出了图1的系统的特定实施例,在该系统中,使用一组独立的并且同步的应用处理器来显示和呈现信息。实现图1的系统的其它方法可以作为替代,并且对该实施例的变形可以容易地推出。
在图2中,该处理被实现为计算机代码,在该实例中,是被命名为RWExecutable.cpp的C++代码部分202。在流程块204,代码部分202首先创建被称为CRWApplication的对象的实例。在流程块206,代码部分202然后调用新创建的对象。如图2中的线指示的那样,控制然后转移到代码部分210,该代码部分210是CRWApplication的例示。在代码部分210的处理之后,在流程块208,CRWApplication的实例被代码部分202销毁。
代码部分210是C++对象CRWApplication的例示。该对象处理为图1的系统中的应用建立图形环境的任务。该对象还初始化和保持应用中所定义的所有CRWController的列表,这将在下文中进一步详细描述。倘若应用需要通过多投影仪系统来进行显示,则内容包括CRWScreenAlignmentObject。
代码部分或者应用210实现图2所示的流程图。在流程块212,应用210读取包含机器专用设置的任何文件。这种设置的实例包括,定义该机器负责处理特定显示部分或各个显示部分的哪个片段。更宽泛地,机器专用设置定义什么样的输出设备将由机器控制。输出设备可以是显示设备、激励器或者任何其它适当的设备。
在流程块214,应用210建立用于任何所需的图形、视频、网络或音频能力的DirectX环境。DirectX是用于访问若干低级别功能(诸如,网络、图形、输入、音频以及视频)的库。所示实施例的系统最广泛地使用图形库,但是网络库被用于通信。
在流程块216,应用210创建和初始化一个或多个CRWController对象。控制器对象是对象的列表以及发送和从这些对象接收消息的逻辑。在流程块218,应用210创建被称为CRWScreenAligner的对象。这是允许使用多投影仪拼贴式系统的对象,其中在多投影仪拼贴式系统中,应用的显示被无缝地铺在许多被投影的区域上。通过扭曲实际被发送到投影仪的显示输出,该对象校正投影仪的失真,使投影区域之间的接缝最小化。校正的确切特性可通过该对象完全由用户配置。在流程块220,应用210初始化网络对象。该对象允许应用处理器通过网络与包括状态服务器的其它设备通信。
在流程块222,应用210检查退出消息或者指示应用应该被终止的其它数据。如果没有接收到这种消息,则在流程块224,任何待决消息从应用处理器被传送到状态服务器。在流程块226,被称为Render的对象被调用,以在显示器上渲染图像。控制停留在包括流程块222、224、226的循环中,直至接收到退出消息。响应于退出消息,控制前进到流程块228,在该流程块中,应用210向状态服务器发送终止消息,以停止与状态服务器的通信。在流程块230,应用通过销毁已经由应用创建的CRWController对象的所有实例来进行清理。在流程块232,所有DirectX资源都被释放,并且该应用终止。
图3示出了图1的系统的一个软件实施例的架构流程图。图3示出了由于图2的流程图中发生的动作而引起的操作。响应于图2的流程块216,在流程块304,代码部分302被调用以初始化专用于控制器对象的任何数据结构。同样,响应于流程块216,在流程块308、310,代码部分306被调用,以创建和初始化为应用所需的所有对象。
流程块308例示出了被称为CRWBaseController的接口312。CRWBaseController是定义控制器对象的基本属性的接口。控制器包含从CRWBaseObject得到的对象的列表,以及发送和从这些对象接收消息的逻辑。CRWBaseObject是定义通用对象(诸如,文本块(CRWSimpleTextObj ect)、图片(CRWTextured2DObj ect)、或者网眼供给(webcam feed)(CRWWebCamObject))的属性的接口。控制器创建并维护对象。对象具有初始化的能力,以便在每帧上绘制它们自己的内容,并且它们还能够对来自控制器的消息做出响应,以将应用写入系统中。开发者必须编写从CRWBaseController接口继承并实现CRWBaseController接口的类。开发者将对象填入控制器,并且通过指定对象的逻辑,他们定义应用的内容和行为。具体地,在流程块314,CRWBaseController接口允许应用处理器了解子区域或者整个输出显示的各个显示部分或者应用的几何结构的范围,并建立范围数据以存储该信息。这些范围在本文中也被称为该应用处理器的上下文。此外,在流程块316,CRWBaseController接口创建在其上绘制控制器内容的图形纹理。
流程块310创建并初始化该应用的所有对象。响应于流程块310,初始化对象318。在流程块320,调用对象CRWBaseObject 322。如上面所提到的,CRWBaseObject定义通用对象(例如,对象被“渲染”的一般想法)的功能。图片、视频等(CRWVideoObject和本文中描述的其它对象)从基本对象(例如,定义该特定类型的对象如何被渲染)继承并扩展基本对象。这样,CRWBaseObject定义所有对象都理解(初始化、渲染等)的命令的基本集合,并且每个对象类型定义对象如何对那些命令做出响应。这允许控制器向对象发送命令,而不需要理解它们确切是什么。控制器根据CRWBaseObject工作,但是每个专用对象用专用的行为做出响应。
在流程块322,创建并初始化对象。然而,在流程块324,如果应用开发者已经指示,该对象将永远不会被显示在副本所负责的子区域或者各个显示部分中,则抑制对象的创建。
再次参考流程块318,在流程块320的CRWBaseObject的初始化之后,在流程块326,初始化当前对象专用的任何资源。第一实例是CRWTextured2DObject,其是二维空间中的矩形,由两个角点定义。该矩形可以具有简单的颜色,或者其可容纳图像(“纹理”)。可用选项包括设置对象的颜色值、对其进行旋转、调整大小、设置其位置、改变其透明度。其它类似实例包括以下实例:
CRWLineObject,其是二维空间中的直线,由两个端点定义。除了适用于CRWTextured2DObject的所有属性和设置外,还可以对该直线的厚度和类型进行设置;
CRWMagLine,其是二维空间中的多边形,由四个角点定义。这使得可以实现比CRWTextured2DObject更灵活的几何结构,并主要被用于在视觉上将缩放的区域连接到未缩放的区域;
CRWWebCamObject,其是二维空间中的矩形,由两个角点定义。该对象显示从服务器或网眼取回的连续的图像供给。
CRWVideoTexture,其是处理从文件取得视频和向纹理写入视频的任务,以及处理对该文件进行的相关联的操作(诸如,解压缩)的对象。
CRWVideoObject,其类似于CRWTextured2DObject,但是容纳视频剪辑(见CRWVideoTexture)而不是静止的图像。
CRWCompoundObject,其是包含和管理对象的集合并将该集合绘制到2D纹理的对象,其中的2D纹理然后可以被绘制到屏幕上。用这种方式复合,该集合中的对象可以全部共享与整体坐标系统分离的坐标系统。改变复合对象的位置、缩放比例、旋转、颜色等会引起所有子对象的成比例的改变。
CRWSimpleTextObject,其是一块文本。设置包括边界矩形的大小和形状、字体高度和宽度、颜色和透明度,以及一些格式选项(例如,左对齐和右对齐)。
CRWSpriteScatter,其是空间中的点的集合,如同地图上的图钉。该集合的规模可以由用户设置成任意值。集合中的每个点可以具有一定大小,并且可任选地容纳图像。所有点具有相同的图像;在该上下文中,图像被称为“子画面”。各点的位置可以从位图图像中读取出来,这使得开发者可以在视觉上安置它们。
CRWVideoSpriteScatter,其类似于CRWSpriteScatter,但是每个点可以容纳视频图像,而不是静止的图像。
CRWStencilController。模板被用于定义绘制和不绘制对象的位置。CRWStencilController是定义模板和从属于该模板的各种对象的对象。该对象包含两个列表:将被用作模板的对象,和绘制的对象。
CRW3DObject,其与CRWTextured2DObject相似,但是其顶点出现在三维空间中,并且可以有许多的顶点。对象知道如何从文件加载顶点列表,并进行三维光照和三维变换。
RW3DRenderObject,其是包含和管理场景中的三维对象的集合并且将该场景绘制到二维纹理上的对象,其中该二维纹理然后可以被绘制到屏幕上。
RW3DBillBoardObject,其是在三维世界中创建二维对象并动态地更新其方向以使其始终面向观看者的对象。
CRWSoundPlayer,其是被绑定到磁盘上的音频文件的对象。方法包括播放、暂停、停止等。
CRWDataBundle,其是用于以行列格式容纳数据的对象。数据可以被用户功能性地插入,或者可以从适当格式化的文本文件中加载。数据内容也可以被写入格式化的文本文件。多个CRWDataBundle可以被用于提供一组数据,用于由CRWChat接口(诸如,CRWPieChart)的实施者进行显示。
CRWChart,其是定义所有图表对象共同具有的属性和方法(包括它们的数据基础)的抽象类(或者接口)。
CRWPieChart,其是饼形图对象,实现CRWChart接口。用CRWDataBundle来定义数据内容。
CRWLineChart,其是线图对象,实现CRWChart接口。用CRWDataBundle来定义数据内容。
CRWBarChart,其是条形图对象,实现CRWChart接口。用CRWDataBundle来定义数据内容。
CRWScatterPlotChart,其是散点图对象,实现CRWChart接口。用CRWDataBundle来定义数据内容。
CRWToggle,其是当被放置于触摸屏消息发送系统的上下文中时充当按钮的对象。该对象侦听与其边界相对应的坐标范围内的触摸消息;当被触发时,它发出某个预置的消息,该消息被传递给服务器并被转播给网络上的所有机器,从而提醒每个机器注意状态改变。对象知道其自己的状态,并且也控制其可以被触发的频繁程度。
CRWWhiteboardObject,其是容纳二维表面上设置的线或点的集合的对象。这些线或点代表白板上的“标记”。该对象的用户可以将标记添加到白板中或者从白板中除去标记。
CRWValueInterpolatorObject,其是起到类似于停表的作用的对象。用起始时间、持续时间和停止值将其初始化。在该段持续时间内,其采取起始值并将起始值变成停止值(即,其“插入”该值)。各对象和各控制器使用该对象来帮助它们流畅地进行动画显示。
CRWBezierInterpolatorObject    ,其类似于CRWValueInterpolatorObject,但是使用专用的Bezier函数来进行插值。
在图2的流程块226中,对所有CRWController调用例程Render()。在这种情况下,控制前进至图3的流程块330处的开发者的代码。在流程块330,应用控制器在流程块332更新为正确绘制该帧所需的控制器数据,并在流程块334例示CRWBaseController对象以渲染该帧。CRWBaseController例示336循环访问控制器中的所有对象,并在流程块338对每个对象调用Render()方法。这会使所有对象都被绘制出来。
在图2的流程块224中,在状态服务器和控制器之间传送消息。在这种情况下,控制前进至开发者的代码340。代码340处理DistributeCommandMessage或者DistributeKeyMessage。在流程块342,调用用于该消息类型的CRWBaseController 344。在流程块346,该对象循环访问控制器中的所有对象,并调用适当的对象348以处理用于每个对象的消息。这样,在流程块350,对象348在流程块352调用相对应的CRWBaseObject方法,并在流程块354处理与一些高级对象相关联的特定响应。
在开发者的代码340对流程块342进行处理之后,在流程块360,处理所有系统消息以创建系统的行为的细节。
根据前文,可以看出目前公开的实施例提供了用于分布式信息处理和交互的系统和方法。在一个一般实施例中,应用处理器对一个或多个软件应用做出响应以产生输出,各个输出一起形成系统输出。应用处理器的状态中的每个改变在状态改变消息中被报告给状态服务器,状态服务器将该消息反映给系统中的所有其它应用处理器。同样,任何系统输入都被报告给状态服务器,状态服务器再次将状态改变反映给所有应用处理器。用这种方式,应用处理器被保持在同步状态。应该被反映到其它处理器的输出中的一个处理器中的输出改变,被自动地并且无缝地这样得到处理。
在特定实施例中,每个应用处理器驱动产生拼贴(tiled)输出显示的一个图像块的显示设备。每个处理器使用来自状态服务器的状态改变消息来更新整个显示器的状态信息,即使处理器仅负责对显示器的指定部分进行显示。显示器的分配的、指定的部分是处理器的上下文。输入设备检测用户与显示器的交互,类似于鼠标运动和鼠标点击,但是在一个实施例中,这种交互是显示器前面的手的运动。检测到的用户交互被报告给状态服务器,并且关于用户交互的信息从状态服务器被反映给产生图像的应用处理器。基于来自状态服务器的信息对图像进行更新。
因此,前面的详细说明应该被认为是示例性的而不是限制性的,并且应当理解,应该由包括所有等效物的以下权利要求来限定本发明的精神和范围。

Claims (21)

1.一种用于分布式信息处理和交互的系统,所述系统包括:
多个输出设备,其被配置成产生系统输出的各个输出部分,各个输出部分中的每个由上下文信息定义,其中各个输出部分中的每个包括输出类型,并且具有相同输出类型的各个输出部分中的每个包括用于相同输出类型的系统输出的不同输出部分;
多个应用处理器,每个应用处理器被配置成处理各个应用程序中的一个或多个,其中应用处理器的任何一个,与应用处理器的任何其他同时地,产生用于相同输出类型的系统输出的不同输出部分的任何一个或多个,每个应用处理器对上下文信息做出响应并与相关联的各个输出设备连接,用来控制所述相关联的各个输出设备产生所述各个输出部分,每个应用处理器响应于处理所述各个应用程序,将更新消息派送给状态服务器,所述更新消息包括更新状态信息,其中一个应用处理器响应基于非时间的上下文信息或派送一个基于非时间的更新消息;和
状态服务器,其与所述多个应用处理器进行数据通信,以向所述多个应用处理器提供所述上下文信息,所述上下文信息包括所述更新状态信息。
2.如权利要求1所述的系统,其中,所述多个输出设备包括一个或多个显示设备,所述一个或多个显示设备被设置成显示所述系统输出的各个显示部分。
3.如权利要求2所述的系统,其中,所述多个应用处理器中的每个均与所述一个或多个显示设备中的一个相关联,以控制所述相关联的显示设备形成所述系统输出的各个显示部分的图像。
4.如权利要求1所述的系统,进一步包括:
输入检测器,其被安置以检测一个或多个用户激活并响应于所述一个或多个用户激活产生用户激活信号;和
输入处理器,其与所述输入检测器和所述状态服务器进行数据通信,以传递关于所述用户激活信号的信息,用于由所述状态服务器进行处理。
5.如权利要求1所述的系统,其中,所述状态服务器被配置成使所述多个应用处理器中的每个应用处理器上的系统信息同步化,以便处理同样的应用程序的应用处理器具有相同的程序状态。
6.如权利要求5所述的系统,其中,所述状态服务器被配置成向所述多个应用处理器发送同步化的消息,以更新所述多个应用处理器中的每个应用处理器上的所述系统信息。
7.如权利要求5所述的系统,其中,所述状态服务器保持所述系统信息的时间同步。
8.一种数据处理方法,包括:
在分离的应用处理器上处理同样的应用程序;
在同步器中同步化所述应用程序的处理,所述同步器保持共同状态,并响应于所述共同状态的改变而向所述应用处理器提供更新消息,和
在所述分离的应用处理器中的每个应用处理器上,产生所述应用程序的各个输出部分,其中应用处理器的任何一个,与应用处理器的任何其他同时地,产生用于相同输出类型的系统输出的不同输出部分的任何一个或多个,所述各个输出部分总体形成系统输出,其中各个输出部分中的每个包括输出类型,并且具有相同输出类型的各个输出部分中的每个包括所述应用程序的不同输出部分;所述应用处理器响应于从所述同步器接收到的更新消息而更新本地状态,所述应用处理器响应于所述应用处理器上的任何本地状态改变而向所述同步器提供状态改变消息,并且基于状态改变消息改变共同状态。
9.如权利要求8所述的数据处理方法,其中,所述同步化步骤包括,将在所述同步器上接收到的所述状态改变消息中包含的信息反映给所述应用处理器,以便所有应用处理器具有所述共同状态。
10.如权利要求9所述的数据处理方法,其中,所述同步化步骤包括,在所述同步器与所述应用处理器之间保持共同时间状态。
11.如权利要求9所述的数据处理方法,其中,所述同步化步骤包括,在所述同步器与所述应用处理器之间保持输入数据和应用输出数据的共同数据状态。
12.如权利要求8所述的数据处理方法,其中,所述产生各个输出的步骤包括,在各个应用处理器中的每个上,控制各个显示设备,以在所述各个显示设备上显示输出显示的各个显示部分。
13.如权利要求8所述的数据处理方法,进一步包括:
在所述各个应用处理器上,
检测用户与所述各个应用处理器上的各个应用程序的交互;
响应于用户交互,更新所述应用程序的所述各个输出,和
将关于所述用户交互的信息传递给所述同步器;以及
将关于所述用户交互的同步信息从所述同步器传递给与其它各个显示部分相关联的其它各个应用处理器。
14.如权利要求13所述的数据处理方法,进一步包括:
在各个应用处理器中的每个上,控制相关联的各个显示设备,以在所述各个显示设备上显示输出显示的各个显示部分;
在所述应用处理器上,响应于所述用户交互,确定所述用户交互是否应该改变所述相关联的各个显示部分上的各个显示;和
如果应该改变,则更新所述各个显示部分上的显示。
15.如权利要求14所述的数据处理方法,其中,所述检测用户交互的步骤包括,检测多个同时发生的用户与所述各个显示部分的交互。
16.如权利要求14所述的数据处理方法,其中,所述检测用户交互的步骤包括以下步骤中的至少一个:
检测所述各个显示部分的显示屏幕前面的手动运动,
检测用户对所述各个显示部分的所述显示屏幕的触摸屏的触摸,
检测触摸屏中先前存在用户触摸的地方的用户触摸的消失。
17.如权利要求14所述的数据处理方法,进一步包括:
基于所述同步信息,响应于所述用户交互,更新所述其它各个显示部分中的一个或多个显示部分上的显示。
18.如权利要求14所述的数据处理方法,进一步包括:
在各个应用处理器中的另一个上接收所述同步信息;和
如果所述用户交互应该改变与所述其它各个应用处理器相关联的显示部分,则更新所述显示部分。
19.一种数据处理方法,包括:
在分离的应用处理器上处理同样的应用程序;
在分离的显示设备上的预先定义的显示部分中显示所述应用程序的输出显示,所述预先定义的显示部分是由分配给每个应用程序的各个上下文定义的,所述应用程序的输出显示包括输出类型,具有相同输出类型的每个预先定义的显示部分包括所述应用程序的输出显示的不同部分,其中应用处理器的任何一个,与应用处理器的任何其他同时地,产生用于相同输出类型的系统输出的不同输出部分的任何一个或多个,所述各个上下文是每个应用程序的本地状态的一部分;和
通过与其它应用处理器共享从每个分离的应用处理器接收到的状态改变信息,在同步器中同步化所述应用程序的处理和所述预先定义的显示部分的显示,以便所述分离的应用处理器中的每个应用处理器保持相同的系统状态。
20.一种用于分布式信息处理和交互的系统,所述系统包括:
多个输出设备和应用处理器,
所述多个输出设备被配置成共同产生系统输出,
所述应用处理器中的每个均处理各个本地应用程序中的一个或多个,并且响应于处理各个本地应用程序中的一个或多个,产生状态改变,
各个应用处理器中的每个和输出设备仅组合产生系统输出的指定部分,所述系统输出的每个指定部分包括输出类型,其中具有相同输出类型的每个指定部分包括所述系统输出的指定部分的不同部分,其中应用处理器的任何一个,与应用处理器的任何其他同时地,产生用于相同输出类型的系统输出的不同输出部分的任何一个或多个,所述指定部分是由所述应用处理器所知的上下文信息定义的,所述各个应用处理器发送包括关于所述状态改变的信息的消息;以及
同步服务器,其与所述应用处理器进行数据通信,
所述同步服务器从各个应用处理器接收消息,所述消息定义由于所述应用程序的各个本地副本中的改变而引起的所述各个应用处理器的本地状态中的状态改变,并且
所述同步服务器将所述接收到的消息反映给其它各个应用处理器,使得所述各个本地应用程序可以被更新以反映所述状态改变,并且更新所述系统输出的各个指定部分。
21.一种用于分布式信息处理和交互的系统,所述系统包括:
多个显示设备和应用处理器,
所述多个显示设备被配置成共同显示系统输出显示,
所述应用处理器中的每个均处理共同应用程序的各个本地副本,并且响应于处理共同应用程序的各个本地副本,产生作为系统输出显示的用于显示的信息,所述系统输出显示包括形成在所述多个显示设备上的图像,
各个应用处理器中的每个和显示设备仅组合显示系统输出显示的指定部分,所述指定部分是由所述应用处理器所知的上下文信息定义的,所述系统输出的每个指定部分包括输出类型,其中具有相同输出类型的每个指定部分包括所述系统输出的指定部分的不同部分,其中应用处理器的任何一个,与应用处理器的任何其他同时地,产生用于相同输出类型的系统输出的不同输出部分的任何一个或多个;以及
同步服务器,其与所述应用处理器进行数据通信,
所述同步服务器从各个应用处理器接收消息,所述消息定义由于所述应用程序的各个本地副本的改变而引起的所述系统输出显示的改变,并且
所述同步服务器将所述消息反映给其它各个应用处理器,使得所述共同应用程序的所述各个本地副本可以被更新以反映所述改变,并且更新所述系统输出显示的各个指定部分。
CN2005800458860A 2004-11-05 2005-10-24 用于分布式信息呈现和交互的系统 Expired - Fee Related CN101095110B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/981,994 2004-11-05
US10/981,994 US7711681B2 (en) 2004-11-05 2004-11-05 System for distributed information presentation and interaction
PCT/EP2005/011556 WO2006048189A1 (en) 2004-11-05 2005-10-24 A system for distributed information presentation and interaction

Publications (2)

Publication Number Publication Date
CN101095110A CN101095110A (zh) 2007-12-26
CN101095110B true CN101095110B (zh) 2010-10-13

Family

ID=35734040

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2005800458860A Expired - Fee Related CN101095110B (zh) 2004-11-05 2005-10-24 用于分布式信息呈现和交互的系统

Country Status (6)

Country Link
US (3) US7711681B2 (zh)
EP (1) EP1812851A1 (zh)
JP (1) JP4933438B2 (zh)
CN (1) CN101095110B (zh)
CA (1) CA2585277C (zh)
WO (1) WO2006048189A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9479568B2 (en) 2011-12-28 2016-10-25 Nokia Technologies Oy Application switcher

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7711681B2 (en) * 2004-11-05 2010-05-04 Accenture Global Services Gmbh System for distributed information presentation and interaction
US7876866B1 (en) * 2005-01-27 2011-01-25 Pmc-Sierra Us, Inc. Data subset selection algorithm for reducing data-pattern autocorrelations
US8209620B2 (en) 2006-01-31 2012-06-26 Accenture Global Services Limited System for storage and navigation of application states and interactions
US20070124370A1 (en) * 2005-11-29 2007-05-31 Microsoft Corporation Interactive table based platform to facilitate collaborative activities
JP5186792B2 (ja) * 2006-05-17 2013-04-24 コニカミノルタビジネステクノロジーズ株式会社 表示システム
US7769806B2 (en) 2007-10-24 2010-08-03 Social Communications Company Automated real-time data stream switching in a shared virtual area communication environment
US8397168B2 (en) 2008-04-05 2013-03-12 Social Communications Company Interfacing with a spatial virtual communication environment
US8296728B1 (en) * 2008-08-26 2012-10-23 Adobe Systems Incorporated Mobile device interaction using a shared user interface
US8832681B1 (en) 2008-08-29 2014-09-09 Adobe Systems Incorporated Bundled mobile/desktop application package
US8477103B2 (en) 2008-10-26 2013-07-02 Microsoft Corporation Multi-touch object inertia simulation
US8466879B2 (en) 2008-10-26 2013-06-18 Microsoft Corporation Multi-touch manipulation of application objects
CN101808126B (zh) * 2010-03-12 2012-11-14 清华大学 一种用于实时视频处理的分布式计算系统和方法
CN102722106A (zh) * 2011-03-29 2012-10-10 上海晟昊信息科技有限公司 一种沉浸式虚拟现实仿真交互展示方法及其展示系统
US20130104182A1 (en) * 2011-04-12 2013-04-25 Jupiter Systems Method and Apparatus for Fast Data Delivery on a Digital Pixel Cable
US9560314B2 (en) * 2011-06-14 2017-01-31 Microsoft Technology Licensing, Llc Interactive and shared surfaces
US8971572B1 (en) 2011-08-12 2015-03-03 The Research Foundation For The State University Of New York Hand pointing estimation for human computer interaction
JP6034401B2 (ja) 2011-12-28 2016-11-30 ノキア テクノロジーズ オーユー アプリケーションのオープン・インスタンスの提供
US8996729B2 (en) 2012-04-12 2015-03-31 Nokia Corporation Method and apparatus for synchronizing tasks performed by multiple devices
KR102011360B1 (ko) * 2012-09-10 2019-10-21 삼성전자주식회사 디바이스에서 어플리케이션을 실행하는 방법 및 그 장치
US9639318B2 (en) * 2012-09-26 2017-05-02 Tencent Technology (Shenzhen) Company Limited Systems and methods for sharing image data
US11327626B1 (en) 2013-01-25 2022-05-10 Steelcase Inc. Emissive surfaces and workspaces method and apparatus
US9261262B1 (en) 2013-01-25 2016-02-16 Steelcase Inc. Emissive shapes and control systems
US9759420B1 (en) 2013-01-25 2017-09-12 Steelcase Inc. Curved display and curved display support
US9141682B1 (en) * 2013-03-25 2015-09-22 Amazon Technologies, Inc. Resolving conflicts within saved state data
US9244994B1 (en) 2013-06-19 2016-01-26 Amazon Technologies, Inc. Idempotency of application state data
US9244993B1 (en) 2013-06-19 2016-01-26 Amazon Technologies, Inc. Management of application state data
US9424239B2 (en) * 2013-09-06 2016-08-23 Microsoft Technology Licensing, Llc Managing shared state information produced by applications
US10356364B2 (en) 2013-09-10 2019-07-16 Minerva Project, Inc. Registering and displaying visual attention metadata in a web video conferencing and seminar system
US9961119B2 (en) * 2014-04-22 2018-05-01 Minerva Project, Inc. System and method for managing virtual conferencing breakout groups
TWI536363B (zh) * 2015-03-31 2016-06-01 建碁股份有限公司 拼接式顯示系統及其方法
US10264213B1 (en) 2016-12-15 2019-04-16 Steelcase Inc. Content amplification system and method
US10631424B2 (en) 2017-06-30 2020-04-21 Cisco Technology, Inc. Method and apparatus for maintaining cooling of modular electronic system during module removal
JP7102740B2 (ja) * 2018-01-12 2022-07-20 コニカミノルタ株式会社 情報処理装置、情報処理装置の制御方法、およびプログラム
CN111309657B (zh) * 2019-10-10 2021-07-30 深圳市鸿合创新信息技术有限责任公司 电子设备及其控制方法、智能教室系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5454075A (en) * 1992-09-01 1995-09-26 Kabushiki Kaisha Toshiba Device and method for multiple display system having storage means for enlarged images
US5491743A (en) * 1994-05-24 1996-02-13 International Business Machines Corporation Virtual conference system and terminal apparatus therefor
CN1267864A (zh) * 1999-03-19 2000-09-27 国际商业机器公司 提供出版/预订服务的消息代理和在出版/预订环境中处理消息的方法
US6215498B1 (en) * 1998-09-10 2001-04-10 Lionhearth Technologies, Inc. Virtual command post
US6388680B1 (en) * 1998-06-29 2002-05-14 Sony Corporation Multi-user extension mechanisms for client-server system
US6760749B1 (en) * 2000-05-10 2004-07-06 Polycom, Inc. Interactive conference content distribution device and methods of use thereof

Family Cites Families (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS613106Y2 (zh) 1980-04-10 1986-01-31
AU616213B2 (en) * 1987-11-09 1991-10-24 Tandem Computers Incorporated Method and apparatus for synchronizing a plurality of processors
JPH05181815A (ja) * 1991-12-26 1993-07-23 Sony Corp 制御システム
US6594688B2 (en) 1993-10-01 2003-07-15 Collaboration Properties, Inc. Dedicated echo canceler for a workstation
JPH07104730A (ja) * 1993-10-06 1995-04-21 Canon Inc 動画表示方法並びに装置
US5408470A (en) * 1993-10-14 1995-04-18 Intel Corporation Deferred synchronization of distributed objects
JPH07199881A (ja) * 1993-12-28 1995-08-04 Hitachi Ltd ディスプレイ制御システム
US6983227B1 (en) 1995-01-17 2006-01-03 Intertech Ventures, Ltd. Virtual models of complex systems
US5712995A (en) * 1995-09-20 1998-01-27 Galileo Frames, Inc. Non-overlapping tiling apparatus and method for multiple window displays
US7082398B1 (en) * 1996-01-16 2006-07-25 The Nasdaq Stock Market, Inc. Media wall for displaying financial information
US6343313B1 (en) * 1996-03-26 2002-01-29 Pixion, Inc. Computer conferencing system with real-time multipoint, multi-speed, multi-stream scalability
US6141769A (en) * 1996-05-16 2000-10-31 Resilience Corporation Triple modular redundant computer system and associated method
US6199116B1 (en) * 1996-05-24 2001-03-06 Microsoft Corporation Method and system for managing data while sharing application programs
US6680714B2 (en) * 1996-06-14 2004-01-20 Charles E. Wilmore Interactive multi-user display arrangement for displaying goods and services
JPH1040065A (ja) * 1996-07-24 1998-02-13 Mitsubishi Electric Corp 大画面表示装置
US5987557A (en) * 1997-06-19 1999-11-16 Sun Microsystems, Inc. Method and apparatus for implementing hardware protection domains in a system with no memory management unit (MMU)
US5956046A (en) * 1997-12-17 1999-09-21 Sun Microsystems, Inc. Scene synchronization of multiple computer displays
EP1717683A3 (en) 1998-01-26 2010-03-17 Apple Inc. Method and apparatus for integrating manual input
WO1999066716A1 (en) * 1998-06-18 1999-12-23 Sony Electronics Inc. A method of and apparatus for partitioning, scaling and displaying video and/or graphics across several display devices
EP1043671A3 (en) 1999-03-19 2003-07-16 International Business Machines Corporation Message broker providing a publish/subscribe service and method of processing messages in a publish/subscribe environment
US7542068B2 (en) * 2000-01-13 2009-06-02 Polycom, Inc. Method and system for controlling multimedia video communication
JP2001273435A (ja) * 2000-03-24 2001-10-05 Minolta Co Ltd コンテンツ配信システム
US7692625B2 (en) 2000-07-05 2010-04-06 Smart Technologies Ulc Camera-based touch system
US6803906B1 (en) 2000-07-05 2004-10-12 Smart Technologies, Inc. Passive touch system and method of detecting user input
JP2002055808A (ja) * 2000-08-11 2002-02-20 Ricoh Co Ltd マルチディスプレイシステム
WO2002021413A2 (en) * 2000-09-05 2002-03-14 Zaplet, Inc. Methods and apparatus providing electronic messages that are linked and aggregated
US6978281B1 (en) 2000-11-21 2005-12-20 Microsoft Corporation Versioned project data
US7003726B2 (en) * 2001-02-21 2006-02-21 Nanonation Incorporated Computer network having context sensitive and interactive multimedia applications and controls, forming dynamic user interfaces on local computer terminals
US20030078960A1 (en) 2001-04-30 2003-04-24 Murren Brian T. Architecture and process for creating software applications for multiple domains
TW578043B (en) * 2001-06-18 2004-03-01 Oqo Inc Modular computing system
WO2003009269A2 (en) * 2001-07-18 2003-01-30 Daniel Dunn Multiple flat panel display system
US6803912B1 (en) * 2001-08-02 2004-10-12 Mark Resources, Llc Real time three-dimensional multiple display imaging system
US7254775B2 (en) 2001-10-03 2007-08-07 3M Innovative Properties Company Touch panel system and method for distinguishing multiple touch inputs
US7006055B2 (en) * 2001-11-29 2006-02-28 Hewlett-Packard Development Company, L.P. Wireless multi-user multi-projector presentation system
US7103844B2 (en) * 2002-06-26 2006-09-05 International Business Machines Corporation Portal/portlet application data synchronization
US7023427B2 (en) 2002-06-28 2006-04-04 Microsoft Corporation Method and system for detecting multiple touches on a touch-sensitive screen
CN1675611A (zh) * 2002-08-07 2005-09-28 皇家飞利浦电子股份有限公司 响应式输入装置
SE0202565D0 (sv) * 2002-08-28 2002-08-28 Pricer Ab Electronic pricing system, device and method
US8458028B2 (en) * 2002-10-16 2013-06-04 Barbaro Technologies System and method for integrating business-related content into an electronic game
US7050078B2 (en) 2002-12-19 2006-05-23 Accenture Global Services Gmbh Arbitrary object tracking augmented reality applications
US6947032B2 (en) 2003-03-11 2005-09-20 Smart Technologies Inc. Touch system and method for determining pointer contacts on a touch surface
US7430721B2 (en) * 2003-04-08 2008-09-30 Tidebreak, Inc. Pointright: a system to redirect mouse and keyboard control among multiple machines
US7176848B1 (en) * 2003-04-14 2007-02-13 Ati Technologies, Inc. Method of synchronizing images on multiple display devices with different refresh rates
US20040216163A1 (en) * 2003-04-25 2004-10-28 Shawn Whitcomb System and method for digital content management and distribution of content streams within a theatre environment
US7627334B2 (en) * 2003-07-21 2009-12-01 Contextual Information, Inc. Systems and methods for context relevant information management and display
US8046701B2 (en) * 2003-08-07 2011-10-25 Fuji Xerox Co., Ltd. Peer to peer gesture based modular presentation system
JP2004118849A (ja) * 2003-09-25 2004-04-15 Digital Passage:Kk 通信回線を用いた双方向コミュニケーション方法、双方向コミュニケーションシステム及び記録媒体
US7286120B2 (en) * 2003-11-12 2007-10-23 Hewlett-Packard Development Company, L.P. Large area display and method of manufacturing same
JP2005181637A (ja) * 2003-12-18 2005-07-07 Toyota Motor Corp 同期表示システム、クライアント、サーバ、プログラム及び同期表示方法
EP1548573A1 (en) * 2003-12-23 2005-06-29 Barco N.V. Hierarchical control system for a tiled large-screen emissive display
US7711681B2 (en) 2004-11-05 2010-05-04 Accenture Global Services Gmbh System for distributed information presentation and interaction
US8209620B2 (en) * 2006-01-31 2012-06-26 Accenture Global Services Limited System for storage and navigation of application states and interactions

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5454075A (en) * 1992-09-01 1995-09-26 Kabushiki Kaisha Toshiba Device and method for multiple display system having storage means for enlarged images
US5491743A (en) * 1994-05-24 1996-02-13 International Business Machines Corporation Virtual conference system and terminal apparatus therefor
US6388680B1 (en) * 1998-06-29 2002-05-14 Sony Corporation Multi-user extension mechanisms for client-server system
US6215498B1 (en) * 1998-09-10 2001-04-10 Lionhearth Technologies, Inc. Virtual command post
CN1267864A (zh) * 1999-03-19 2000-09-27 国际商业机器公司 提供出版/预订服务的消息代理和在出版/预订环境中处理消息的方法
US6760749B1 (en) * 2000-05-10 2004-07-06 Polycom, Inc. Interactive conference content distribution device and methods of use thereof

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9479568B2 (en) 2011-12-28 2016-10-25 Nokia Technologies Oy Application switcher

Also Published As

Publication number Publication date
WO2006048189A1 (en) 2006-05-11
CN101095110A (zh) 2007-12-26
US7711681B2 (en) 2010-05-04
US9424106B2 (en) 2016-08-23
CA2585277A1 (en) 2006-05-11
US20060101054A1 (en) 2006-05-11
US8392459B2 (en) 2013-03-05
US20120066697A1 (en) 2012-03-15
JP4933438B2 (ja) 2012-05-16
EP1812851A1 (en) 2007-08-01
CA2585277C (en) 2016-02-09
US20100185947A1 (en) 2010-07-22
JP2008519340A (ja) 2008-06-05

Similar Documents

Publication Publication Date Title
CN101095110B (zh) 用于分布式信息呈现和交互的系统
CN101322091B (zh) 多目标检测和应用项目状态导航系统
US9575640B2 (en) System for storage and navigation of application states and interactions
JP2008519340A5 (zh)
Ahlers et al. Distributed augmented reality for collaborative design applications
US6718215B2 (en) System and an associated method for operating and monitoring an automation system by means of virtual installation models
US11132827B2 (en) Artificial reality system architecture for concurrent application execution and collaborative 3D scene rendering
US9785689B2 (en) Interactive visualization of multiple data sources across multiple computers
CN101263485A (zh) 用于图形设备接口的远程重定向层
WO2015140813A1 (en) Interactive display system with screen cut-to-shape of displayed object for realistic visualization and user interaction
EP1955132B1 (en) Multiple target detection and application state navigation system
US20180232193A1 (en) Object-Based Presentation System
US5617548A (en) Method of interacting with computer graphics
EP2930621A1 (en) Network-based Render Services and Local Rendering for Collaborative Environments
CN117590928A (zh) 一种三维空间中的多窗口处理方法、设备及系统
Klinker et al. Optically based direct manipulation for augmented reality
JPH07271998A (ja) 立体表示方法および装置
Shen Interactive Techniques for 3-D Shaded Graphics
freiling Reiling Toward General Purpose 3D User Interfaces: Extending Windowing Systems to Three Dimensions
JPH03251964A (ja) 対話装置

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
ASS Succession or assignment of patent right

Owner name: ACCENTURE INTERNATIONAL CO., LTD.

Free format text: FORMER OWNER: ACCENTURE GLOBAL SERVICES GMBH

Effective date: 20101203

Owner name: ACCENTURE GLOBAL SERVICES GMBH

Free format text: FORMER OWNER: ACCENTURE INTERNATIONAL CO., LTD.

Effective date: 20101203

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: SCHAFFHAUSEN, SWITZERLAND TO: LUXEMBOURG

Free format text: CORRECT: ADDRESS; FROM: LUXEMBOURG TO: DUBLIN, IRELAND

TR01 Transfer of patent right

Effective date of registration: 20101203

Address after: Dublin, Ireland

Patentee after: ACCENTURE GLOBAL SERVICES Ltd.

Address before: Luxemburg Luxemburg

Patentee before: Accenture international LLC

Effective date of registration: 20101203

Address after: Luxemburg Luxemburg

Patentee after: Accenture international LLC

Address before: Schaffhausen

Patentee before: Accenture Global Services GmbH

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

Granted publication date: 20101013

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