CN1107240A - 灵活的网络系统 - Google Patents
灵活的网络系统 Download PDFInfo
- Publication number
- CN1107240A CN1107240A CN 94115402 CN94115402A CN1107240A CN 1107240 A CN1107240 A CN 1107240A CN 94115402 CN94115402 CN 94115402 CN 94115402 A CN94115402 A CN 94115402A CN 1107240 A CN1107240 A CN 1107240A
- Authority
- CN
- China
- Prior art keywords
- data
- target
- information
- business card
- user
- 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
- User Interface Of Digital Computer (AREA)
Abstract
一种表示一个目标属性的方法和装置,该目标表
示在面向目标的操作系统中的个人或实体,而该面向
目标的操作系统在一个与其他计算机网络连接的计
算机上运行,信息是由出现在该名片上的特定个人,
地方或事件的具体信息以名片表示的。在名片上的
信息及名片本身的信息用来调用多种动作,名片上的
信息可复制,拼接或由系统控制操作。
Description
本发明涉及在一个面向目标的操作系统中人或实体的表示,本发明尤其涉及通过一个选中的通信路径对表示的人或实体进行的方向。
在工作站软件的开发过程中,越来越重要的是提供灵活的软件环境但需与用户界面保持一致性,由赫兰芝等人(Hernandez et al.)的美国专利4,686,522公开了一种致力于这类操作环境的早期成果,该专利讨论了一种复合的图形和文字处理系统,其中,用户可以在光标所在之处调用一个动态选项单并从其中的各项功能中调用任一功能。这种与用户进行自然交互对话的模式改进了用户界面并使其应用更为直观。
面向目标的应用也应该反映与用户界面一致的交互行为而与哪种应用在当前有效无关。先有技术对比文件的申请人没有意识到要提供新颖的软件和硬件系统特性。该类特性通过将面向目标的特性构造到操作系统中而使所有面向目标的应用以一致的方式运行。
很少有人可以在无人相助的情况下完成一个特定的项目。相反,通常是有一个小组负责一个项目。特别是,一个大任务通常被分成小任务,然后再分发给个人。因此,尽管可以把工作按不同方式分配,通常需要大家之间进行合作。
为完成不同的工作,人们必须分享信息和设想。现在,个人计算机可以通过本地网络提供文件共享,打印共享,电子邮件以及有关信息共享及通信的其他方法。
虽然本地通讯有很多优点,但亦存在问题,首先,在网络的计算机之间不存在通用的命名服务。换言之,在现有网络中没有命名和表示个人的通用结构来标识网络用户和非网络用户。结果,网络在不同的地方被填充用于检索涉及用户的信息。例如,象目录或文件之类的一组应用程序可被维护以便与某一特定应用程序的一组特定用户相关联。但是,在该组用于刷新的文件和目录之间存在不兼容性。因此,信息中的变化很可能只在部分而非全部应用程序中反映出来,其原因在于它们是相互独立的。这一处理使维护更为复杂并使应用程序的使用不能保持一致。
第二个问题则在于应用程序只在两个网络用户之间提供网络通信。但是,个人会定期地与网络外的许多人交互。这样,不能由计算机直接达到的个人就不会在计算机应用程序中表示出来。进而,在一个应用程序中表示的网络用户只可通过网络通道进行通信。
名片是现实社会的目标,每个人通常可以并从他人处得到名片。研究表明任何时候人们会保留大约150张名片。进而,研究也展示出人们希望以某种方式管理名片。
名片通常指示出与名片所涉及的人进行通信的方法。这种方法包括电话,计算机网络,电子邮件,传真,通讯商业邮寄地址以及家庭邮寄地址。但是,与名片相反,现有的计算机应用程序无法为用户提供可选择的通信方法。
总而言之,现有的计算机应用程序不能为用户提供使个人通过不同介质与他人通信的手段。这就是进行通信的个人是共同的网络用户的原因。现有的计算机程序还不能对个人提供共用的信息结构。如此,用户认识到现有技术所提供的系统很受限制并且不足以准确进行常规通信。
本发明的一个主要目的是提供一种新颖的面向目标应用的界面。面向目标的操作系统的图形用户界面的用户经常移动鼠标器,选中目标(object)是包含相关的数据集以及在该数据上操作的方法的软件包,然后将目标拖着移动或复制,然后在鼠标器上连按两下打开该目标。这类操作称为直接操纵,或交互作用。相应于用户按鼠标器,移动鼠标器及松开鼠标器按键的事件的顺序叫做输入语法。某些用来指示特定动作的事件的顺序叫做语义操作。本发明公开了用于将输入语法翻译成支持,选择,观察,位移,自动卷动,以及拖曳/投入(复制)的目标的语义操作。
本发明对鼠标器按键是否按下进行检测并采用以下逻辑:
(a)若当用户按下鼠标器按键时,选择键被按下,系统设置可变的finteractionType(f交互作用型)到恒定K Drag(K拖曳)以进入拖曳模式。该系统然后利用选定的目标作为操作对象开始拖曳操作;或
b)若选择键未按下,则该系统将可变f交互作用型设置为恒定K选择(kSelect)从而进入选择模式。然后,选择操作开始。
若用户按下鼠标器按键并一直按着它,则启动下列逻辑。若系统处于选择模式,则其确定是否用户已将鼠标器移动超过-阈值(叫做移动阈值)。这一确定是由比较起始鼠标器位置(它由获取起始位置方法(GetlnitialLocation返回)和当前当鼠标器位置(由获取当前位置方法(GetCunentLocation)返回)的方式而予完成。若该鼠标器移动超越移动阈值,系统则结束选择模式而进入移动模式。这一转换是通过将可变f交互作用型设置为恒定K移动(KMove)而实现的。然后系统通过调用其选择结束(SelectEnd)的方法告知目标结束选择操作。然后系统通过调用其移动开始(MoveBegin)方法启动移动操作。
如果鼠标器没有移动,系统将检测鼠标器已按下多长时间。这一检测可通知比较由获得起始时间(GetlnitialTime)方法返回的起始鼠标器按下时间和获得当前时间(GetCunrrent-Time)方法返回的当前时间的方法而实现。若鼠标器的按键按下的时间超过一阈值(称之为观察阈值),则系统结束选择模式而进入观察模式。这一转换可通过将可变f交互型设置为恒定K观察(KPeek)的方式而予以实现。通过调用选择结束方法,可要求目标结束选择操作并通过调用观察开始(PeekBegin)方法开始观察操作。否则,若鼠标器未移动或按下按键的时间在观察阈值之内,该系统通过调用该目标的选择重复(SelectRepeat)方法而继续选择操作。若该系统检测到用户处于移动模式,则该系统首先确定是否用户已在窗口之中,窗口的边缘,或在窗口之外移动鼠标器。通过比较由获得当前位置方法返回的当前鼠标器位置和由获得目标存储装置边界(GetContainerBounds)方法返回的目标存储装置(objectcontainer)的边界可进行以上确定。
若鼠标器仍在窗口边界之内,系统通过调用目标的移动重复方法继续移动操作。若鼠标器位于窗口边界上,这指示了自动卷动操作。系统要求目标的存储装置(object's container)沿鼠标器位置指出的方向卷动。这一行为是通过调用存储装置的自动卷动(container's autoscroll)方法(container)并将当前鼠标器的位置作为一个参数传送的方式而予以完成,一旦完成,系统将通过调用目标的移动重复方法继续位移操作。
若鼠标器已移动超过窗口,系统将结束位移模式而进入拖曳模式。这可由设定可变f交互型成恒定K拖曳而实现。通过调用位移结束方法可要求目标开始拖曳操作。若系统在拖曳模式,则其通过调用目标的拖曳重复(DragRepeat)方法,继续该拖曳操作。若系统处于观察模式,系统首先确定是否用户已将鼠标器移动超过一确定阈值(称之为位移阈值),这可通过比较获得起始位置方法返回的起始鼠标器位置和获得当前位置方法返回的当前鼠标器位置的方式而予以完成。
若鼠标器移动通过该位移阈值,则可通过将可变f变互型设置为恒定K位移的方式而结束观察模式并进入位移模式。通过调用观察结束方式来要求目标结束观察操作。通过调用位移开始方法要求目标开始位移操作。否则,若鼠标器未曾移动,则调用目标的观察重复方法而使系统继续其观察操作。
若系统检测到用户已释放鼠标器按键且其处于选择模式,则该系统结束选择模式,这一行为可由把可变f变互型设置为恒定K无(KNone)的方法而予完成。通过调用其选择结束方法,系统询问目标结束其选择操作。若系统处于位移模式,系统可将可变f交互型设置为恒定K无以结束位移模式。然后,系统通过调用其位移结束方法而询问目标结束其位移操作,系统还将把可变f交互型设置为恒定K无而结束拖曳模式。通过调用其拖曳结束方法可要求目标结束其拖曳操作。若系统处于观察模式,系统可把可变f交互型设置为恒定K无的方式而结束观察模式。通过调用观察结束方法可使目标结束观察操作。
本发明提供了一种通过把各种通信信息格式化和变换而与个人通信的系统,该系统克服了现有技术的前述缺陷。
本发明提供了一种面向目标的操作系统,该系统用于在桌面环境(desktop environment)中存储关于个人和实体的全局通信信息,该信息与一个目标一起存起来以供用户交互。本发明还可对目标进行直接处理以便执行诸如寻址邮件消息及建立电话连接之类的任务。进而,本发明提供了一组名片的格式,其中每张名片都含有一种通信方法。所形成的名片可复制而且复制的名片与原始名片同步并可由其更新。
上述属性可包含在本发明中以便集成在各种网络环境中。本发明的重点因此提供了实现各种通信方式的环境。从而,这样的应用程序有助于用户更为有效地利用工作站与他人进行通信。
附图的简要描述
图1A是根据本发明的一个个人计算机的框图;
图1B是根据本发明的显示;
图2展示了根据本发明用于生成一个应用程序的工具;
图3是根据本发明的命令处理的流程图;
图4是根据本发明的检测窗控制;
图5是根据本发明的检测窗控制激励;
图6是根据本发明的检测窗刷新;图7是根据本发明检测窗控制处理的摘要;
图8是根据本发明的控制板示意图;
图9是根据本发明的对话窗示意图;
图10是根据本发明的对话窗颜色控制器的示意图;
图11是根据本发明的射频按键的示意图;
图12是根据本发明的选择单状态处理的详细流程
图13是根据本发明的显示的图片;
图14是根据本发明的原子执行(atomicexecution其意为单个机器指令执行的计算)的详细逻辑;
图15展示了根据本发明与智能标号处理有关的详细逻辑;
图16展示了根据本发明的智能窗口标号处理的详细逻辑;
图17展示了根据本发明如何生成目标以及如何在与一个可移动和选择的目标的典型交互作用期间进行目标之间的通信;
图18是一个根据本发明用于通知源目标的目标生成通知流程图;
图19展示了一个根据本发明的流程图,它表示了与选择适当用户界面元件有关的详细逻辑;
图20是根据本发明的流程图,用于展示与卷动有关的详细逻辑;以及
图21A、21B和21C展示根据本发明的窗口卷动。
图22是根据本发明的计算机系统框图;
图23展示了根据本发明在初始开启状态中的一个名片;
图24示出了根据本发明的名片的表视图;
图25示出了根据本发明具有一个选定的办公标记的名片的标记视图;
图26示出了根据本发明具有选定电话标记的名片的标记视图;
图27示出了根据本发明的名片的电子邮件标记;
图28示出了根据本发明的名片的联系标记;
图29示出了本发明混合特性的继承层级;
图30示出了根据本发明的名片信息的数据流向图;
图31示出了根据本发明在混合特性的分类和子分类之间的使用关系;
图32示出了根据本发明在用于检索的选定信息存在于进行检索的工作站中的时候名片信息的检索方法;以及
图33示出了根据本发明在用于检索的选定信息不在进行检索的工作站中的时候的名片信息检索方法。
本发明最佳实施例的详述
本发明最好用在与个人计算机的操作系统有关联的计算机中。这些个人计算机包括IBM,PS/2或Apple Macintosh这类计算机。计算机系统示意性的硬件系统示于图22,这是一个根据本发明的工作站的硬件构成。该工作站有一个中央处理器2210(例如常规的微处理器),以及通过系统总线2212相连的若干其他部件。图22所示的工作站还包括一个RAM2214,一个ROM2216,一个用于把软盘之类的外围设备连到总线12的I/O适配器2218,一个用于连接键盘2224的用户接口适配器2222,一个鼠标器2226,一个扬声器2228,一个麦克风2232,以及/或到总线2212的其他接口设备(例如能模式屏幕)。工作站亦可有一通信适配器2234,用于把工作站连数据处理网络2230工作站4还可有一把总线12连到显示设备2238的显示适配器2236。
名片的组成
图1展示了具有代表性的硬件环境,它是一个根据本发明典型的工作站的硬件配置。它包括一个中央处理器1O(例如常规的微处理器)以及多个通过系统总线12连接的其他单元。图1A所示的工作站包括RAM(随机存储器)14;ROM(只读存储器)16;用于连接诸如磁盘单元20之类的外设到总线的I/O转接器18;用于连接键盘24,鼠标器26,扬声器28,麦克风32,以及/或其他用户接口(例如触模式屏幕设备)到总线的用户接口转接器22,一个用于将工作站连到数据处理网络的通信转接器34;以及用于将总线连至显示装置38的显示转接器36。该工作站中装有IBM OS/2或Apple System/7这一类的操作系统。
本发明是一种新的面向目标系统软件,它包括系统软件和设计用于改变终端用户的开发程序,以及系统销售商的个人计算机的开发系统。该系统是一完整,独立和新颖的操作系统及开发环境。该开发环境来自于高性能个人计算的基础结构。本发明为一完全面向目标的系统,它包括丰富的结构(framework,是指一组能提供一个解决一组相关问题的事先制成的结构的内部相关的分类),分类库(class library,其意为实现区域功能性的至少一个分类集合,程序员通过建立其目标和涉及其方法使用一个分类库,以及一个新生成的目标程序环境,用于从根本上改进第三者应用软件(Third party application software)开发的经济情况,本发明是一个完全可移植的操作系统。
通常的操作系统提供了一组可由软件开发程序生成其软件的业务。他们的程序很松散的综合到整个操作系统环境中。例如,DOS应用程序占用了整个机器。这意味着就用户而言,该应用程序即为操作系统。在Macintosh以及Window操作系统中,应用程序看起来觉得很类似,而且他们通常在应用之间支持的截取拼接(cutting and pasting),这通常使用户可在一个单纯的环境中易于使用多个应用程序。但是,由于其为一总体未分解成一组服务及软件结构,因此仍然难于进行软件开发。
在本发明中,写一个“应用程序”意味着生成一组综合到操作系统环境中的目标。软件开发者可依赖用于一组完善的服务及一个软件结构的操作系统开发软件。本发明的软件结构提供了极有效的抽象(abstractions)以使软件开发者致力于解决他们的问题而非在建立基础结构上。进而,软件开发者的主要抽象与用户必须明白以运行其软件的主要概念非常接近。这样一种结构导致了易于开发复杂的应用程序。
本部分叙述了利用本发明软件的四个步骤,进行应用程序开发的用户通常关心以下问题:
我正在成型什么?
对于文字处理软件而言,我正在输入文本,对于扩展页应用程序(spreadsheet)页言,是在单元中的数值和公式。
如何表示数据?
对于文字处理软件而言,是在屏幕上适当的行和页停顿处以可见即可得的方式显示字符;而在扩展页应用程序中,是以表格或图形进行显示;而且在结构式图形程序中(例如MacDraw),它被显示为一组图形目标。
可选择什么?
在文字处理应用中,通常是字符的选择范围,在结构式图形程序中,是一组图形目标。
可在该选择上运行的命令是什么?
文字处理软件中的命令可能是要改变一组字符的字体以使其显而易见。而在结构式图形程序中的命令则可能是旋转一个图形目标。图1B示出了根据本发明的显示。在41处展示的命令用于将一个图片排到显示的前端。图形信息的表示展示在40处。最后,一个特定图形对象,一个圆圈将选择,示于42处。
开发者必须回答用户的同样这四个问题,本发明提供了解答这四个问题的软件结构以及服务。第一个必须回答的问题是:我正在成型什么?在文字处理程序中,数据包括完成一个文件的字符,在扩展页应用程序中的数据包括在多个单元中的数据及公式。在日历程序中,数据包括与一给定日期相关的日期和时间。本发明提供了帮助成型数据的方法。有些分类(class),是指在面向目标的编程中,定义一个特定类型目标的方法及变量的样板用于成型特定的数据类型。这些数据类型包括文本,结构式图形,声音及视频。除这些特定类别外,本发明还提供了大量其他抽象。这些抽象用于支持问题模型,包括收集分类,并行控制,恢复软件结构,以及C++语言。对于一特定数据类型的数据模型进行封装(encapsulate),在面向目标的编程中,其意为保护目标的属性和性能不能由其他目标直接存取)的分类为存取及修改该数据封装程序(data encapsulator)中的数据提供了专用协议,该发类还提供了一种方法用于置换类属协议并嵌入其他数据封装程序,从而在该数据改变为所有登记的目标生成通知,该发类进而提供一个类属协议用于生成数据的表示(Presentation)。
下一必须回答的问题是:如何表示数据?在一个结构式图形程序中,通常将一组图形目标表示在屏幕的显示区域。在扩展页应用程序,通常是一个有许多单元的表格或图形;而在一个显示程序中,则为一组幻灯片(Slides)或一个略图(outline)。本发明为数据封装程序的数据提供了一个“视图”。该视图由一个“视图系统”和图形系统调用所生成。但是,数据显示还包括播放声音或视频剪取。
其次:是选择什么?在文字处理程序中,是选择字符的范围;在结构式图形程序中,是一组图形目标而在展开页应用程序中则是单元的范围。本发明为系统支持的所有主要数据类型提供了选择分类,表示由用户所做的选择的抽象基本分类(abstrace baseclass)提供了与选择数据说明无关的地址空间。对于文本,则是字符的数字范围而非字符的一对指示字。这一区别很重要,因为当与其他用户合作(实时)时,选择可在其他机器中互换。该基本分类置换(override,在面向目标的编程中,其意为在一导出分类中用有同样名字的一个成员功能取代由一个基本分类衍生的成员功能,从而改变或添加特性)一个类属协议,而该类属协议用于生成一个相应于该选择的持续选择。持续选择是一个锚定目标(anchor object)的子分类(sub Class)而且比它们的对应的短暂选择有更重的加权,因为持续选择必须存在于编辑改变中。例如,当文本在持续文本选择之前或之后加入时,该持续文本选择必须调整其本身,锚目标也用于实现较佳联接(hypermedia linking),数据流联接以及注释。
基本分类还提供一个置换类属协议以供吸收、嵌入及输出数据封装程序中的数据。基本分类与用于生成他们的用户接口技术无关。选择通常由用户通过直接操纵而生成(即导出文本或单元的范围)。但其亦可由命令序列(script)或命令的结果生成。这个与用户界面的正交性非常重要。基本分类还提供专用协议以存取数据封装程序。在封装程序分类的一个特定子分类和一个模式选择分类的子分类之间有非常牢固的关系。
最后:什么命令可在该选择上运行?在文字处理程序中,一个命令可以改变选定范围的字符的字体。在一个结构式图形程序中,一个命令可以旋转一个图形目标。本发明提供了大量用于所有内部数据类型的内部命令目标以及类属命令和许多用户界面命令,类属命令用于截取、复制、拼接、开始较佳联接,完成联接,导航联接,在联接上存入数据,在联接上取出数据。表示用户的命令的抽象基本分类用于捕捉用户行为的语义,确定是否该命令可被执行,取消或再执行。命令目标负责在命令执行后封装所有用于取消命令的信息。在命令执行前,命令目标是用户行为的简洁表达。该基本分类与用于生成它们的用户界面技术无关。通常,是由用户通过直接操纵(即移动一个图形目标)或从选择单中生成命令,但也可由命令序列生成命令。这一与用户界面的正交性非常重要。
结构的好处
本发明中插入抽象的好处远大于提供一个概念模块,插入结构提供了许多完善的特性。这些特性构造在基本操作系统中,这意味着通过调用相当小的方法该结构就可实现主要的用户特性。其结果便是对于结构的编码投资被用于若干特性。
多数据类型
一旦一种新数据被完成,该新数据类型成为系统的一部分。用于处理数据封装程序的现有软件可以无需修改而用来处理该新数据类型。这与Macintosh计算机系统一类的现有计算机系统不同。例如,一个暂时缓冲图符(Scrapbook desk accessory)可以存储任何种数据,但它只可显示具有文本或快速绘图(quickdraw)图象分量的数据。与这对比,本发明的暂时缓冲图符可显示任何种类的数据。因为它以目标的格式处理数据。任何生成的新数据类型与系统提供的数据类型看起来完全一样,此外,由于一个目标提供编辑数据标准协议。所以在该暂时缓冲图符中的数据是可编辑的。
该暂时缓冲图符例子突出了数据封装程序的优点。如果软件被开发从而可以处理数据封装程序,则应用程序可设计为只是处理新数据类型。一个新应用程序可在无需修改的情况下显示和编辑这种新数据。
多级取消
本发明设计用于支持多级取消。但是,实现这一特性并不需要在开发软件上作更多的努力。该系统只是记住生成的所有命令目标即可。一旦相应的命令目标存在,用户可以取消对数据的特定改变。由于本系统可以保存命令并决定取消或再执行命令,用户因此不用实施一个取消过程。
文件保存的可靠性以及改编
数据封装程序协议的一部分涉及将数据提交到数据流中并在另一地方和/或时间再生成数据。本系统采用协议实现文件保存。根据系统预置,用户的数据目标在保存时被汇流成文件。当文件被打开时,数据目标便被再生成。本系统采用数据管理结构(data management framework)以确保写到磁盘中的数据是一致的。通常,用户都倾向于保存一个文件以便一旦系统出现故障时,其数据将在磁盘上保留起来。本发明无需这种备份,因为系统保留了所有的命令目标,所以可以从文件的最后一个磁盘版本开始并重现最后该点的命令目标以重新构制文件的状态。就可靠性而言,系统可以自动地将命令目标记录到磁盘上,所以如果系统损坏,用户不会丢失比最后一个命令更多的信息。
本发明还支持文件改编。用户可以从一个文件的当前状态生成一个草稿。草稿是在最后那一特定点处的文件的不可变“快照(生成一个草稿的一个原因在于要将其传至其他用户征求意见)。本系统会自动处理涉及生成一个新草稿的细节。
合作
如上所述,通过在过去某一时刻开始其状态并应用自该时刻完成的命令目标的顺序便可重新构成一个文件。这一特征可使用户在出现故障时恢复其工作,并可用于支持实时合作。命令目标根据与地址空间无关的选择运行。因此,一个选择目标可通过网络送到合作者之处并由远地机器执行。由合作者执行的命令可送给他人并在其机器上运行。若合作者从数据的相同复制开始,则他们的复制将在他们进行改变时保持“同步”。一个选择是由命令目标生成的,从而所有合和都有相同的当前选择。
系统还采用“根据模型的跟踪(model based tracking)”的特性对每个合作者的机器进行鼠标器跟踪。生成的跟踪程序(tracker,是指可以跟随用户鼠标器移动的目标)目的用于处理鼠标器接口按键的情况。该跟踪程序目标在用户移动鼠标器时生成并执行一系列增量命令。这些命令被送到合作者并由每个合作者执行。其结果便是每个合作者在跟踪反馈发生时可看到该跟踪反馈。系统还建立了一个合作策略。该合作策略决定改变数据时是否用户被限制进行变换或可随意进行改变。本发明在无需应用开发程序的情况下处理合作的问题。
生成命令序列(Scripting)
设计一个管理命令目标序列的系统也实现了系统范围的命令序列组成方法,命令目标序列等同于一个局部作用的命令序列。这一命令序列生成特性只是保持跟踪用于任何文件的命令目标。该生成命令序列的方法也采用了命令序列中的选择目标。这一特性通过改变命令序列应用的选择而提供一个定制的命令序列。由于命令目标包括一个用于指出是否这些命令目标可以用于一特定选择的协议,所以系统确定用户命令序列的改变是有效的。
较佳联接
持续选择(也称为锚)可由联接目标所连接。一个联接目标包括形成两个锚的端点的参照基准。对这一系统,联接是双向的;两端有同样的能力,联接的一个些高级应用是把方向放在该联接上。一个单独的联接目标支持两个标准特性:导航和数据流。用户可以从联结的一端导航至另一端。通常,这将涉及打开包括目的地锚的文件并加重该持续选择。准确的行为则由目的地终端处的锚目标所确定。例如,一个对直观显示的联接可以演示该直观显示。一个对数据库询问的联接可执行该询问。
联接也使数据流更为容易。在联接一端的选择数据可以传送到另一端以替代那里的选择。在大部分情况下,即使用户在一端复制一个选择,使用联接导航到另一端并拼接该数据,其结果是一样的。系统处理涉及到将一个联接的一端导航到另一端的细节问题(即:对目的文件定位,打开该文件,卷动目的锚以供观看等)。与之类似,系统还处理越过该联接的数据传送。这是由存取和修改传送的数据的选择协议完成的。
注释
本发明支持系统范围的注释方法。该方法可使作者分发其文件草稿以供审阅。审阅者可加批注,然后将文件退回作者,作者可检查这些批注并对其文件进行修改(作者本人亦可在文件中生成批注)。审阅者无需与作者采用同样的软件。审阅者可以使用一个标准的注释应用程序。该程序从作者的草稿中读出数据,并生成数据的注释表示(生成这一表示是标准数据封装程序协议的一部分)。
审阅者可在文件中生成选择,并联接批注到该选择。在批注和选择之间的联接使系统将批注设置于“靠近”与之关联的选择之处。该联接也使注释结构更为明确,从而系统可以执行标准命令以操纵注释。批注的内容可以不仅是文本或图形,它可以是系统完成的任意数据类型。批注的内容也可用数据封装程序完成,且打开一个批注将导致在数据上生成的可编辑的表示。
数据结构
数据结构与回答“我正在成型什么数据?”的问题有关。本发明提供了有助于成型数据的方法。有很多成型特殊数据类型的分类,它们包括:文本,结构式图形,声音和视频。除了这些特殊分类,本发明提供了许多其他有助于成型问题的抽象:收集分离,并行控制和恢复结构,以及C++语言本身。在本发明中,为某一特定数据类型封装数据模型的分类是该封装程序分类的子分类。
封装程序分类
开发者通过生成一个封装程序分类的衍生分类的方式而为数据结构的一个特定类型生成一个存储装置。对系统中的每种数据类型而言(即图形目标,文本,扩展页应用程序单元),不同的衍生分类必须作为一种类型数据的存储装置而存在。封装程序的每一分类提供了一种用于存取和修改存于其中的数据的类型专用协义。该协义通常由显示该数据的表示以及修改该数据的命令所用。除了类型专用协议之外,封装程序分类还提供类属协议,它支持把数据封装程序作为“黑盒子”嵌入其他外来类型。协议必须在衍生分类中实现以便支持生成表示、编辑程序以及用于封装数据的选择。存储装置只须明白该类属协议以便支持任意外来数据类型的嵌入。
选择数据的结构
数据类型设计者有C++目标模型以及丰富的标准分类以供其在设计一特定类型数据的结构时进行选择。本发明提供的分类应该总是在设计唯一的分类用以表示数据之前就加以考虑。这样会将可能由生成新分类所产生的重复减至最少限度,因为新分类为已存在于系统中的分类提供了类似或相同的功能。这些最基本的是C++目标模型。一个设计人员可以生成一个分类或多个分类,该分类与用户的智力模型极为匹配,所设计的分类是用于表示与用户有关的分类。
本发明的基本分类提供了许多标准方式以表达数据。收集分类提供了多种方式将存储器的相关目标收集到一起,这些目标的范围包括简单的字典集。基于磁盘的集(提供持续不间断的目标集)也可使用。一种要求二维和三维图形模型的数据类型(例如图形编辑程序)也受到支持。许多二维和三维模型目标是和变换、矩阵分类以及三维摄象一起提供的。与之类似,本发明提供了可以支持全部国际文本、美术印刷以及可扩展文件机制的完善的文本数据类型。本发明还提供了对基于时间的介质(例如声音和视频)的支持。完善的时间控制机制可用于在各种基于时间的介质之间提供同步。
封装程序分类为位于其中的数据提供了一个协议,用以生成多种表示分类。这些表示包括草图或短文(thumbnail,在此是指一帧中心实际内容的小而精确的表示),只供浏览表示,可选择表示以及可编辑表示。还有一个用于处理表示的尺寸并将数据与选中的尺寸相适应的协议。该封装程序分类的子分类负责置换和实现该协议以便支持数据嵌入其他封装程序中。一般受到支持的表示包括:
草图或短文-这种表示是要给用户“窥视”一下,看看在封装程序中包括了什么。这类表示的尺寸通常很小,而且可以按比例缩小和/或剪取数据以使其与表示的尺寸相适应。
只供浏览-这类表示使用户可在正常尺寸下观看数据,但用户不能选择和修改任何数据。
可选择-这类表示把选择数据的能力加到只供浏览表示提供的能力之中。它用于注释以使注释与数据中的选择相联系但不允许修改数据本身。可选择表示通常作为只供浏览表示的一个子分类而予以实现。
可编辑-这一表示将修改数据的能力赋予选择表示提供的权能。这一表示允许用户生成新数据并编辑现有数据。通常,该表示提供其自有的视窗以供编辑之用。有可能将来加入该表示的支持以允许在适当地位处的编辑。该表示通常作为可选择表示的子分类而予实现。
改变通知
当一个封装程序分类中的数据改变时,必须为用户(即,数据的视图)提供改变通知,封装程序根据一个用于标准通知支持的内部分类使该封装程序通知客户数据结构的改变。一个客户可以连接到通知特定改变的封装器或通知任何改变的封装程序。当改变发生时,封装程序要求模块将有关改变的通知传播到所有有关的客户。
数据表示
这一部分涉及系统如何向用户表示数据。一旦数据已经显示给系统,用户接口的作用就是以一适当及有意义的方式把数据向用户表示,用户接口在用户及模型数据之间建立对话。该对话允许用户观察或理解数据并给用户机会修改或操纵数据。本部分注重在数据表示。
用户界面
开发者生成一个分类以简化数据表示与数据封装程序的交互。通过从表示中分离数据模型,本发明简化了同样数据的多种表示。一些应用程序,例如Apple Macintosh Finder,总是支持同样数据的多种表示的限定格式。有时,同时显示同样数据的不同视图是非常有用的。这些不同视图可以是同一分类的实例(instance,是指一个属于一特定分类的目标)一就象在一个3维CAD程序(它显示同样数据的四个不同视图)一样。对于每种表示,用户都需要先写一个视图,该视图可以显示模型及一组跟踪程序。该跟踪程序可以选择和修改该模型的命令。
静态表示
最简单的表示类型是数据的名字,该名字是指出数据内容或类型的一个文本串。其例包括“第四章”,“1990年联邦收入税收”,“计划”。另一简单表示类型,一个图符,则是数据的小图形表示。它通常指示数据类型,其例为一本书,一个报告,一个财务模型,一个声音或视频记录,一个绘图。但是,它们也可以显示状态(例如正在打印的打印机)或指示内容(例如一个绘图的缩小的视图)。最终,草图或短文是模型数据的一个小视图。该视图可以只显示部分数据以适应可用空间。这类例子包括缩小的绘图,一本书的目录表,缩小的信,或一个长文的缩小的第一页。只供浏览表示使用户可以正常尺寸观看数据但不能修改或选择任意数据。
可选择表示
可选择表示允许用户观看,考察以及从数据中抽取信息。这些表示提供前后关系:数据是什么,数据在哪儿,数据是何时的数据。它有助于以一个结构式的方式表示数据(例如表,栅格,略图或空间的形式)。它也有助于显示在数据元素之间关系,数据与其存储装置或同类之间的关系,以及任何其他从属关系。
可选择表示也显示元数据Metadate,其例之一为当前选择。该选择指示了用户当前正在操纵的数据元素。另一类型的元数据是在数据元素之间的较佳联接。该视图可以指示正在数据上合作的其他用户。
可选择表示通常对于数据类型是非常具体的。它们由视窗,视图以及其他可制定来反映数据类型的接口目标所组成,一些例子如下:
声音记录-控制面板可使音响表示简便易行,视图可将声音显示为乐谱或一系列的波形,视图可包括一个简单的数量或时间指示。
财务模型-该模型可展示为一组公式和其他参数,可以时间的特例从模型中显示数值,或由具体的输入数值作为展开图表的数值进行显示,或以各种图形形式显示数值。
书-该模型可视为目录表,索引,插图表,它亦可视为一系列的页、章节或一个连续的文本流程。
视频记录-该模型可被视为一系列单独的帧或一个连续的表示,视图可包括跟踪标记、帧号以及时间指示。
包括其他目标的装置储存装置可以其名字的字母顺序显示目标,或以其类型或其他属性,例如一组图符或一组草图,来显示目标。所谓储存装置(container)是指存有某一分类的目标,该目标具有其他分类的目标或对于其他分类的目标的指针的数据成员。储存装置的内容由其他应用程序进行编辑。
可编辑表示
可编辑表示与交互示相类似,其不同之处在于可编辑表示可简化数据修改。这一行为是由鼠标器或其他指示字对数据进行直接操纵而予完成的。可编辑表示也可通过选项屏项和其他控制对数据进行操纵。
数据存取
表示与数据封装程序进行交互以确定要表示的数据和其他信息。表示含询问需要的数据模型。该表示可以表示数据封装程序中的部分或全部数据,或可从数据封装程序的数据中导出的数据。
改变通知
由于可能有许多单个模型的表示是一次有效的,可从包括合作者的许多源中改变数据。相对于模型数据而言,每个表示被保持为最新。以上保持可以通过记录通知一个模型的全部或部分改变是何时发生的而予实现。当与表示入口的数据发生变化时,表示接收通知并因此而更新其视图。可由以下所列的任意方式生成改变通知。首先,可从实际改变模型数据的数据封装程序的方法中生成改变通知。第二,可从导致改变的命令中生成改变通知。如前所述,这两个方式各有益处。从数据封装程序中生成通知可确保只要有数据改变,客户即可收到通知。而从命令中生成通知则允许“更高级别”的通知,并可减少复杂改变导致的通知忙乱。
通知结构综述
通知结构(Notification framework)提供了在目标间传播变化信息的手段。该结构允许目标表达与其关联的通知,并接收与目标相关的目标变化通知。为提供通知给用户的分类提供了一个标准接口。通知程序分类(Notifier Classes)为该装置提供了通知源目标以管理客户名单并分发通知给这些客户。通知程序目标(Notifier objects)无需有关接收通知目标的分类的专门知识。连接目标将通知从通知程序分发给具体的通知接受程序目标(receiver object),这些连接目标使如何将通知传送到不同分类的接收程序规范化。最后,通知目标传送关于改变的描述性信息以及描述来自一个通知源目标的特定通知的入口。
通知传播流程图
图18是用于通知源目标的目标生成通知流程图。其始于1800处并立即去往功能框1810,在该处,通知接收程序目标生成一个与其自身的连接。然后,在功能框1820处,通知接收程序目标将适当的关联口加入来自一个或多个通知源目标的一个或多个通知。这些进入是由通知源目标定义的。
客户目标要求把连接目标连接到连接入口指定的通知的通知源,如功能框1830所示。然后,在功能框1840处,对于每个连接的入口,由该入口中的通知程序将连接登记为通知已进入。其次,在功能框1845处,系统进入等待状态直至检测到改变。当系统改变发生时,控制立即进入1850,在该处,通知源目标通过一个描述该改变的通知在其通知程序上改变并调用通知。
对于由通知程序登记为通知已进入的每个连接,在功能框1860处,要求该连接分发通知。依次地,在功能框1870处,连接将通知分发给通知接收程序的适当方法。最后,在功能框1880处,通知接收程序采取适当的通知行功,并在判别框1885处进行测试以确定是否另一连接由通知程序登记为通知进入。若是,则控制进入1850。否则,控制进入功能框1845等待下一变化。
数据说明
数据说明涉及数据处理的选择。若一个用户必须操纵在一结构中包含的数据,则数据必须可以说明那一数据的子集。用户通常将这一说明称为“选择”,而且,系统提供一个基本分类。所有的选择分类均来自该基本分类。本发明还提供系统支持的所有基本数据类型的选择分类。
模型选择
包含一个结构中的数据子集说明的目标是一个模型选择分类。在文本结构中,一个可能的选择说明是一对字符偏移。在一个结构式图形模型中,每一形状必须被赋予一唯一的标识,且选择说明是一组唯一的标识。说明不是直接指向选择数据,它们可以用于横贯数据的多个复印件。
存取已指明的数据
一个选择会理解存取和修改数据的表示协议,并且知道如何在局部地址空间中发现数据。命令目标通过数据选择存取一个表示的数据,并因此无需要求将说明转换成局部模型中的实际数据的知识。选择目标的工作正是要提供从地址空间独立说明中存取实际数据的能力。在文本封装程序中,这一处理可以要求询问用于存在一定范围内的实际字符的封装程序。在例如图形编辑程序之类的基本模型中,该选择通常将保持该实际目标的连接。封装程序必须提供导找方法以将连接转换成实际目标。
标准编辑协议
模型选择分类提供了在选择之间交换数据的协议。通过实施类型交涉、吸收、嵌入(指将数据模型插入另一数据模型而非合并其数据)及输出数据的协议,导出的分类对大部分标准编辑命令提供支持。这意味着由系统提供的编辑命令(截取,复制,拼接,推出数据等)将具备表示数据类型的功能且将无需对每一应用而重复实施。模型选择分类还为联接及锚交换提供了直接支持。但该模型选择分类根据若干键方法导出的分类实现支持结构的数据的交换:
复制数据(CopyData)必须由导出的分类实现以输出说明数据的考贝,该实现生成并返回一个包含有该说明数据考贝的要求类型的新数据封装程序。
采用数据(Adoptdata)必须由导出的分类实施以支持吸收或嵌入数据到与说明有关的表示。若该数据要被吸收它必须是可以直接接合到接收程序的结构之中的类型。吸收的数据被加入由说明定义的表示之中。通常,许多数据类型是用新吸收的数据取代当前说明的数据。任何被取代的数据在数据封装程序中返回以支持取消(Undo)。若该数据要嵌入,则封装程序作为黑盒子接合而且作为子表示而被加入。
清除数据(Cleardata)必须由导出的分类实现以便从有关的结构中去除说明的数据。包含去除数据的结构的原始类型的封装程序必须返回。
用户界面
生成说明的用户界面通常是数据表示的响应性。根据数据类型和表示格式,有许多技术适用。用于生成选择的最好的用户界面是直接操纵。在一个简单的图形模型中,可以在目标上直接按一下鼠标器选择目标,或用鼠标跟踪器将一个选择框拖曳穿过若干目标的方式选择目标,在文本中,可由一个发现命令而生成选择,另一通用方式则是通过选项屏命令(例如“find”)来生成选择。在命令发出之后,文件卷动至适当位置且搜索的文本被选中。
最后,选择可来自命令序列(或程序生成)且其结果与用户直接生成的选择一样。“命名(Naming)”文稿选择涉及生成描述该选择的语言。例如,在文本中,选择可能是“第二页第四段的第二个字”。本发明的结构提供了对生成文稿的支持。
数据修改
数据修改涉及这一问题:“根据这种选择可操作的命令是什么?”,若一用户要对一个结构中的数据进行修改,系统必须要能对要实行的修改的类型进行准确说明。例如,在文字处理程序中,用户可能想要改变选定的部分字符的字体。或在一个结构式图形程序中,用户可能希望旋转一个图形目标。所有修改数据封装程序中的数据的行为都由“命令目标”而予以表示。
模型命令目标
表示用户的命令的抽象基本分类是模型命令目标。模型命令目标的子分类捕捉用户行为的语义,例如:执行,取消,再执行,这些子分类与用于生成他们的用户界面技术无关。与MacApp不同,只要用户行为的语义已知,系统便将设备事件译为命令目标。
处理执行(handleDo),
处理取消(handleUndo),
以及处理再执行(HandleRedo)
生成一个新的命令分类涉及替换一些方法。要置换的三个最重要的方法是:处理执行(HandleDo),处理取消(HandleVndo)以及处理再执行(HandleRedo)。处理执行方法是根据命令类型及应用命令的选择改变数据封装程序。例如,若命令涉及文字处理程序中的一部分字符的字体改变(Stylechange),处理执行方法就会在数据封装程序中调用一个方法(或一组方法)来说明该部分字符的范围以及要改变的字体。处理执行方法更困难的可靠性是保存所有必要的信息以便在稍后“取消”该命令。在字体改变例子中,保存取消命令涉及记录该部分文字的先前字体。大部分命令的取消信息很易于保存。但是,发现和改变之类的命令可能涉及记录大量信息以便在稍后时间取消该命令。最后,执行处理方法还用于公布描述数据封装程序改变的改变通知。
处理取消方法用于将一个文件恢复到命令被执行之前的状态。这一必须应用的步骤与上述处理执行方法的步骤相似。处理再执行用于在执行命令和取消命令完成之后重复执行命令。用户通常在一个文件的两个状态间用取消/再执行组合来回变换以比较一个命令的结果。通常,处理再执行方法与处理执行类似,不同之处在于再执行方法中,最后一次引出的信息在命令完成时可以再用(该信息不用再计算,因为它肯定是一样的)。
用户界面
命令目标捕捉用户行为的语义。事实上,一个命令表达一个通常由用户(由多种用户界面技术)生成但亦可由其他方式生成(及应用)的“工作请求”。重要的概念在于命令目标表达了用于修改数据封装程序中包含数据的唯一手段。如果要实现无限取消(infinite undo)和少量保存(save-less)模式的好处以及本发明的其他特性的话。
用于发布命令的最佳用户界面涉及某种直接操纵。用于将设备事件译成命令并“驱使”用户反馈处理的目标称之为跟踪程序。本发明提供丰富的“跟踪命令”集以操纵内部数据类型。例如,在最佳实施例中,旋转,按比例放大缩小,以及移动二维目标(如线条,曲线,多边形等)的跟踪命令。
一个常用的发布命令的用户界面是通过控制或选项屏系统。选项屏被生成且一组相关命令被加入该选项屏当用户在选项屏中选择了一个项目时,适当的命令被“移植(Cloned)”且命令的执行方法被调用。程序员根本不涉及设备事件。进而,由于命令知道可以应用哪种类型的选择,当其不合适用时选项屏的项自动变暗。
最后,可由命令序列发布命令(或程序生成)且其结果与用户直接发布的命令一样。这一最佳实施例结构为生成命令序列提供了支持。但,现在还没有适用于生成这些命令序列的用户界面。
内部命令(Built-in Commands)
本发明提供了大量内部命令目标用于所有内部数据类型,以及剪切,复印,拼接,启动超介质联接,完成联接,导航联接,在联接上推进数据,在联接上出线数据,以及许多用户界面命令。使用该结构的一个优点是这些内部命令目标可被用于任何数据密封程序。
更多的特征
这一文件的前面部着重于本发明的基本特性,有许多本发明的附加方法可实现更好的特性。具体而言,这些方法包括:基于模型的跟踪,文件,锚,以及合作。
基于模型的跟踪
跟踪是直接操纵用户接口的心脏。跟踪允许用户选择文本的范围,重新为目标定尺寸以及示意目标。本发明通过实际修改模型而将跟踪扩展到可以穿越多个视图及机器。跟踪程序对模型发布命令,从而将改变通知送给所有进入的视图。
基于模型的跟踪是文件跟踪的最佳方案,但其有以下缺点:(1)模型的视图必须是最佳的以对改变事件提供快速应答,以及(2)模型必须能表达中间跟踪状态。
持续选择或“锚”与选择描非常类似,它们都是一个结构中的数据的说明。其不同之处则在于锚必须保留编辑改变。因为根据定义,锚持续通过改变到数据。在文件中前述的图形选择实现是持续的。但是文本选择的实现则非如此。若用户在选择之前插入或消除文本,则字符偏移必须被调整。有一些方法实现文本锚。首先,文本结构维护标记的选择。这些坐标记以与维护字体的相似方式连到文本。锚包括一个与一个标记有关的唯一标识。当文本改变时,将更新适当的标记但保持锚不变。另一方式是维护文本的编辑历史。锚可以包括一对字符位置及一计时印记。每次编辑文本时,更新的记录将改变历史(即,从位置X在时刻T时去除5个字符)。当用锚时,系统将根据编辑改变改正其字符位置。编辑改变是最后一次使用时发生的。在方便时,历史可被压缩且锚可永久更新。
系统通过连接方法还提供大量“自由”特性。所有超介质命令(主联接(Greatlink),推入数据、取出数据、以及跟踪)都在其实施中用了锚。系统范围注释方法是用锚实现的。数据库封装程序提供了保持锚和联接跟踪的服务。但是,用户要制作通过表示可为用户所见的锚。本发明也必须在用户选择了一个锚时发布适当的命令,在锚和联接的用户界面确定之后,文件结构提供附加支持以简化处理。
文件生成
文件生成是将数据保存在永久存储器中和从永久存储器中恢复这些数据的处理。用户要进行文件生成所必须做的所有事是要实现用于数据封装程序的方法。本发明的系统预置文件生成是基于“图像”的。当用户打开文件时,其全部内容被读入存储器中。当用户关闭一个文件时,其全部内容被写回磁盘。选择这一方式是因为其简单,灵活,且易于理解,为了以不同格式存储数据,也许为了与以前所有的标准文件格式相兼容,有两种可能的途径。首先,一个封装程序分类可以将一个参考流到实际数据,然后用该参考找到实际数据,或可以定义一个新子分类以生成并返回一个文件子分类。
第一个途径的优点在于数据封装程序可在其他文件中封装。第二个途径的优点是在于提供的完全自由度正好与完整文件的现存文件格式相匹配。
合作
同时网络合作(Same-timenetworkcollaboration)是指两个以上的用户同时编辑同一文件。系统也建立了合作策略,即当改变数据时是否强制用户轮换或可随意进行改变。开发者不必担心合作机制或合作策略。
支持合作者选择风格
为有助于减少含混并加强模型选择,文件结构提供了包含有关合作者的姓名开头字母以及最佳信息的合作者分类。
支持多级选择
为支持多级选择,用户必须修改表示视图,因为每个合作者有一选择。当主动合作者的选择改变了标准的时候,会发出改变通知。当被动合作者的选择改变时,发出一个不同的通知事件。一个视图可以登记这两个事件,由于响应两者所采取的行动通常是一样的,所以登记两个事件的同样方法可以降低成本。
根据本发明的用户界面
本发明的这一部分主要着重于建立在前述操作系统结构基础上的用户界面的新颖方面。本用户界面的第一方面是允许用户管理与各种目标或数据的交互。
控制
用户用以交互以操纵其他目标或数据的目标称为控制。控制用一个命令来确定目标或数据的现状。在与用户适当交互之后,控制更新命令的参数并执行该命令。控制的例子包括选项屏,按键,检测窗以及射频按键。
控制用命令来确定目标或数据的现状。在与用户的适当交互之后,控制更新命令的参数并执行该命令。例如,一个检测逻辑设定一个命令参数为有效或无效并使其被执行以改变一个数据值。
许多控制显示其操纵的数据的当前值。例如,一个检测窗只是在布尔数据值为真时才显示一个检测。随着数据改变,控制的外部特征由所述的通知系统不断更新。这一处理类似于用于允许/禁止选项屏项目的处理。
当控制生成时,必须对命令加以说明。控制复制该命令并将该复制件存在f命令(fCommand)区段。若命令提供任何数据值,则必须也说明该命令的Get和Set方法的指示字,控制将这些方法指示字存在f得到方法(fGetMethod)区段以及f设定方法(fSetMethod0区段。然后,用于指示其数据值的通知的控制连接可以是过时的。每个命令为此而提供一个叫做连接数据(ConnectData)的方法。
每个控制包括一个连接目标。该目标称为f数据连接(fDataConnection),用于指出接收通知的目标及方法。该连接目标作为一个变元送给命令。命令目标调用该连接目标的连接方法以便加入每个通知程序以及进入,这些通知程序及进入可能影响到数据值。当完成时,控制调用连接目标的连接方法以建立连接,如图3所示。控制从其命令中更新其数据值。这一更新可由调用命令的Get方法(fCommand→(*fGetMethod)())而予实现。如图5所示,控制将这一数据存于一适当区段(即,检测框存在称为fChecked的布尔区段)。然后,控制更新其外部特性。这一外部特性更新可通过调用视图系统的无效方法(指出屏幕的哪一部位需要更新)而实现。
最后,送出数据改变及通知。在某点处,命令被执行从而改变由控制反映的数据值。这一命令可由直接操纵的方式被控制或选项屏项目执行。控制接收图4所示的通知并进入等待下一用户选择的状态。
控制面板
一个控制集合被称为控制面板。控制面板中的控制通常是在实际数据上操作(这是系统预置而非要求)。它们是立即行为且相互无关。控制面板管理着重于其必要的控制之间的输入进度。控制面板可能在系统中与所有用户界面无享。
对话窗
另一控制是对话窗(dialog box)。对话窗中的控制通常是在原型数据上操作(这是系统预置而非要求)。它们的行为通常被收集成组然后当用户按一下应用(Apply)键时一起被执行。对话窗管理着重于必要的控制之间的输入进度。
工作中的控制
在此将以三个行动表示一个行为以展示动作中的控制。图2示出了这几个控制。一个行动的例子将以与展示控制(在此为检测窗),命令,选择以及数据封装类似的方式而被使用。
检测窗200其作用是显示存在数据封装程序中的布尔值并简化其改变。该值由存在的或缺少的检测所展示。
命令210 其作用是从数据封装程序获得数据并根据检测窗的方向改变该数据。
选择220 其作用是在命令和数据间进行交互。
数据230 用作为动作的目标。
相互了解
如图3中所示,每个人之间应该相互有较好的了解。命令310通知检测窗300数据可以送至哪个通知。依次,检测窗300连到数据320以供通知。
只有管理者告知检测窗300与命令310进行交互的最佳方式。具体而言,管理者告知了命令获得数值的方法以及设定数值的方法。该检测窗将在稍后利用该点。
反映数据
有些事与数据有关-如图4所示的通知传送。检测窗400知道表示的进入。图4中,来自数据的通知表示要突出把一个X放在检测窗中反映出来的信息。
图5中展示了检测窗从数据中接收通知关加以处理以便正确地显示检测窗510。这一过程采用了命令520获取数值方法。在告知检测窗510的正确数值之前,命令520通过选择到数据以确认其确实知道该正确值。检测窗510在必要时更新其本身。
改变数据
用户现在进入现场并给检测窗600一个提示,如图6所示。检测窗600采用命令610设置数据方法通过选择而为620的数据设值。其整个过程可在图7中展示。
工作中控制面板
控制面板其实就是一个包括一组控制的窗口,如图8所示。这些控制包括一个在当前选择上操作的命令。若命令有效,则该控制启动工作。在与用户的适当交互之后,控制执行命令,导致数据改变。
声音控制面板
作为声音控制面板的一个例子,可考虑图8所示的声音控制器。该控制面板包括四个用于控制声音播放的按键800、802、804和806,每个按键的操作与上述的“工作中的控制”部分一样。
播放(Play)800 这一控制包括一个T播放(TPlay)命令。该命令只在某些条件下才有效,因此使控制只在这些条件下才启动工作。首先,必须在适当的数据封装器中选择声音。其次,该声音必须未播放过。最后,当前的声音位置必须在结束之前的某一位置处。当按下该键时,播放键执行该T播放命令,使选择的声音由扩音器播出。
步进(step)802 该控制也包括一个T播放命令。读者会问这是什么,由于这一控制是组成的,我们可以假设该T播放命令采用了一个指示播放持续时间的参数,为步进按键之目的,它只是设为一个单纯的示例。步进键只有在上述播放键的同样条件下才启动工作。当按下该键时,步进键执行T播放命令,使选择的声音由扩音器播出。
停止(stop)804 该控制包括一个T停止(TStop)命令。停止键只是在选择的声音正在播放时才启动工作。当按下该键时,停止键执行T停止命令,使选择的声音停止播放并将当前的声音位置设定在起始处。
暂停(Pause)806 该控制包括一个T停止命令。然而,与T停止键不同,这一T停止命令被设定不将声音返回起始。接插放或停止键将继续来播放部分声音的播放。
工人中的对话窗
对话窗与控制面板相似,它仅仅是一个包含一组控制的窗口。但是,控制不再在选择数据上操作,而是在另一命令的参数上操作。只有到应用键按下时,实际数据才被修改。
色彩编辑器
作为一个对话窗的举例,可参见图9所示的色彩编辑器。它包括三个游标,一个为红色900,一个为兰色910,而另一个为绿色920。调整游标至理想值之后,用户可以按应用键930以改变选择的颜色。
红色900,绿色920,兰色910 对用户而言,这些游标并无不同。其区别也只是在于它们的标号。就象所有控制一样,每个游标包括一个在用户交互后执行的命令。与许多命令不同,尤其与那些立即影响选择数据的控制面板中的命令不同,由游标包含的命令显示并修改另一命令的参数值。在本例中,则为应用按键中包含的命令的红、兰、绿参数之一。
应用930 该键包括T选择色彩(TSelectColor)命令,该命令在执行时会改变选择的颜色。这三个参数分别用于颜色的红、兰、绿分量。这些参数响应于用户的交互作用而由游标设置并显示。当应用键按下时,执行该命令并设置新颜色。完成色彩编辑内部工作的例子示于图10。红1000,绿1010,以及兰1020游标包括一个T浮动控制命令(TFloatControlCommand)。这些命令包括一个控制显示的浮点值。当用户改变游标时,它会更新浮点值并执行命令。
对于T浮动控制命令的选择在应用键1040中规定了T设置色彩(TSetColor)命令。该命令的参数之一是在执行每个T浮动控制命令时设置好的。最好在当用户按应用键1040时,T设置色彩命令被执行并改变选定的颜色1050。
分类
以下部分描述控制及对话区的分类以及其主要方法。
控制
控制是用户对一个或多个命令的界面。控制显示关于命令的信息,例如其名字以及是否在当前的前后关系中有效。在适当的用户交互之后,控制执行命令。合适时,控制获取该命令修改数据之值并对用户显示该值。可以设置一个命令参数以指示执行该命令之前该数据的新值。
在控制上生成选择的方法。查找命令是一个纯虚拟功能,以便给予子分类有关它们可以包含和存储多少命令的灵活性。
在表示打开和关闭时被调用的方法。当表示打开时,控制连接可能影响其状态的通知。当表示关闭时,这些连接断开。
在表示激活或释放时被调用的方法。当表示激活时,一些控制连接只是在表示运行时有效的通知。停止运行表示将切断这些连接。
控制用于连接和切断通知程序(它影响是否控制启动工作)的方法。连接启动通知程序(ConnectEnabledNotifiers)在控制打开时连接到由命令说明的通知程序。切断启动通知程序(DisconnectEnabledNotifiers)在控制关闭时断开连接。
接收指定事件发生以影响数据值的控制表示的通知的方法。该方法由系统预置值规定不作任何事情。
通知的方法。生成进入生成由控制实例专用的进入。通知是超负荷的以便发送一个通知关吸收该进入。
控制进入
在控制的许多子分类中共享一个通知程序。为了表达在一特定控制情况下的进入,该进入必须专门加以说明。一个控制进入即为一个包含对一特定控制有指示字的进入。这个分类是一个通常作为没有子分类而使用的内部分类。
控制通知
控制的许多子分类都共享一个通知程序。为了区别发送通知的控制,必须对通知加以说明。一个控制通知包含有指向送出该通知的控制的指示字。这一分类通常在没有子分类的情况下使用。
控制表示程序
一个控制表示程序(Presenter)封装一个控制以使其可以包含在一个表示数据封装程序中。它实现所有表示程序目标所实现的标准功能,该分类通常用于没有子分类的情况。
在表示打开和关闭时被调用的方法。这些方法由系统预置值规定因此无需任何行为。一个子分类必须为其封装的目标实现这些方法。控制而言,这些方法被直接送往控制。当表示打开时,控制连接可能影响其状态的通知。当关闭时,连接被断开。
T控制选择
一个控制选择(TGontrolSelection)说明一个控制以及在其中的任意一个命令,该控制封装在表示程序中并存在一个表示之内。
在控制中存取命令的方法。如果没有命令指出,这些方法可返回一个无效的值。
T单一控制
一个单一控制(TUniControl)是控制的抽象基本分类。该控制在适当的用户交互之后表示一个命令并执行该命令。这类控制例子是按键以及检测窗。
说明控制表示及执行命令的方法。当命令改变时将通知送到登记的连接。
控制用来连接和切断与通知程序连接的方法。其中,通知程序影响到控制是否启动工作。连接启动通知程序在控制打开时连到命令指定的通知程序。切断启动通知程序在控制关闭时断开这些连接。
接收指示某些事件发生从而影响控制是否应启动工作的通知的方法。更新启动检测是否命令有效并调用适当的启动和禁止。
用来控制连接和切断影响控制的数据值的表示的方法。连接数据通知程序(ConnectDataNotifiers)在控制打开时连到命令指出的连接程序。切断连接数据通知程序(DisconnectDataNotifiers)在控制关闭时断开这些连接。不显示数据值的控制(即按键)可以替换数据通知程序而不做任何事情。
T按键
一个T按键(TButton)是一个单一控制。它在按下时执行命令。这一分类通常用于没有子分类的情况。
当表示激活和释放时被调用的方法。当表示激活时,一些控制连接只有激活时有效的通知。当释放时,这些连接断开。当表示激活时,按键登记为键等效通知。在表示释放时该连接断开。
控制用户连接和切断影响控制的数据值表示的通知程序连接的方法。连接数据通知程序在控制打开时连接到命令指定的通知程序。切断数据通知程序在控制关闭时断开这些连接。不显示数据值的控制(即按键)可以置换连接数据通知程序而不做任何事情。
检测窗
检测窗是对设置布尔值的命令的用户界面。在适当的用户交互之后,控制窗调用一个命令方法改变数值并执行该命令。这一分类通常用于没有子分类的情况;只是设置命令。
游标
游标(Slider)是一单一控制,它在适当的用户交互之后显示一个浮点值并值其改变。游标的实例展现在图9和图10之中。
T多级控制
多级控制(TMultiControl)是控制的抽象基本分类。其中的控制在适当的用户交互之后表示若干命令并使其被执行。这类控制的实例是射频按键及选项屏。
T射频按键
T射频按键(TRadioButton)是多级控制,该控制在适当的用户交互之后显示至少两个布尔值并值其被执行。射频按键迫使只有一个按键被选中,如图11所示。若纸被选中,则1100处的圆变黑。若塑料选中,则1110处的圆被选中,不可能两者同时选中。
T命令
一个命令将一个请求封装到一个目标或一组目标中以执行一个特定的行动。命令通常响应一个终端用户的行为(例如按下键,选择一个选项屏项目)或由直接操纵而被执行。命令可以提供关于其本身的各种信息(如名字,图形,键等效,是否他们有效)。这些信息可为控制使用以确定其外部特性。子分类必须实行一个方法以确定当前的选择,有效的用户界面元素,或其他参数以决定是否命令有效。子分类必须置换获得有效进入表以返回通知进入。这些通知进入可影响是否命令有效。
图12是一流程图,用于展示根据本发明的详细逻辑。逻辑起始于1200处,并进入功能框1210。在该处,一个命令目标被加入选择项屏。由该功能框完成的步骤包括:1)从一命令生成选项屏项目,其中的选项屏项目是包含一个命令的另一目标数据结构,2)加一个选项屏项目到选项屏的项目表中,以及3)标记该选项屏的外部特性在数据结构f有效(fValid)中是无效的。然后,当选项屏稍后被拉下时,其外部特性将根据系统状态重新计算。
每个选项屏是一个视图。视图包括尺寸和位置信息。每个选项屏包含一列选项屏项目。每个选项屏项目包括一个命令和多个反映其当前外部特性的变量。这包括是否选项屏被启动(布尔f启动(fEnabled),其名字(T文本标记f名字(TTextLabelfName)),它的图形(T图形标记f图形(TGraphicLabelfGraphic),以及是否其外部特性当前有效(布尔f有效)。通过询问选项屏项目是何时生成的这一命令可确定每一变量。
其次,询问被送到通知进入的命令目标,如功能框1220所示。每个命令有四个方法连接不同类型的通知。这四种通知分别为:ⅰ)影响其名字的通知,ⅱ)影响其图形的通知,ⅲ)影响命令是否有效的通知,以及ⅳ)影响任何数据的通知。在本例中,只有命令生成的选项屏项目连接有效通知。这一连接是将连接目标送至连接有效(ConnectionActive)完成的。然后命令把连接目标连至通知程序。该通知程序影响命令是否有效。然后控制被送至功能框1230以询问启动状态的命令何时必须绘制选项屏项目。为了绘制(draw,是指在三维图形中,从一个给定角度将一个模型转换成基于荧光屏的视图的处理)选项屏项目,选项屏项目为其命令调用方法“是有效(IsActive)”。命令检查想要的系统状态并返回在当前的前后关系中是否有效,如功能框1240所示。(即,有些命令只是在某一特定类型的窗口前端才有效,或当一特定类型目标被选中时才有效)。然后,一个选项屏项目更新其内部特性(在每一选项屏项目中的一个布尔值)以及外部特性(如功能框1250和1260所示)以便与命令返回的值相匹配。
如输入框1270所示,只要用户行为导致任何命令,用户可使该命令被执行。执行命令可由一个选项屏项目,控制,或通过一个目标的直接操纵而实现。该行为使一个文件状态被修改,如功能框1280所示。而且功能框1290示出了一个文件传送通知的情况。当一个文件传送通知时,要执行下列步骤:1)与文件传送的通知相连的任何选项屏项目(或其他控制)接收一个通知消息。该消息包括改变的名字以及指向发送该通知的目标的指示字,2)选项屏项目然后更新其状态,且将控制传送至功能框1230以供进一步处理。
图13是根据本发明的显示的示图。选项屏项目是编辑(Edit)1300而且还有一些与之相关的子选项屏项目。取消(Undo)1310是一个有效选项屏项目因此可供选择以实现有关功能,再执行(Redo)1320处于无效,因此以灰暗颜色表示且不能为当时所选择。1360处显示的检测窗是调试控制面板1350的一部分。
表示属性单元与持续
数据表示从属性单元(template)中生成,该数据表示以跨越会话期形式存储于一个用户接口目标中。存有系统中所有数据的储存装置就是一个模型。一个模型包括数据处理并简化该数据处理。通过截取,考贝,及粘贴操作可简化数据交换。数据参照则由选择,锚,及联接进行。数据模型可以嵌入其它任何数据模型。用户通过表示(例如图符、略图或文本、帧、窗口、对话、控制面板)与模型交互对话。这些表示由一个相关的用户界面提供。数据模型代表全部表示的生成及对另一目标的访问方法,即所谓用户界面。
用户界面是一个模型。该模型具有一组用于特定模型的表示(例如图符,略图,帧,窗口)。当需要时,这些表示即根据不同表示要求被选择出来,例如根据用户的姓名、地址、及其它范围。如有所要求的表示未找到,则可从档案库中拷贝出一个新的表示,并将其加入到用户界面中。当某种持久表示信息(例如窗口尺寸,位置,卷动位置)不再需要时,可将其消除。
一项表示包括一组可表示的目标。这些目标中含有用于观察并管理数据的用户界面元(例如选择单、窗口、工具等)。这些表示为那些目标所表达的数据提供参照。当某一表示被激活时,这些表示便建立并激活可表示目标程序。同样,当这个表示被释放时,那些目标即被移去或释放。这些表示是根据其用途来标识(例如图符,略图,帧,窗口等)并保留已定范围(如用户标识)以便随后的选择。
一项表示包括一组可表示的目标(例如用户接口元素)。该组在屏幕上显示,或在该表示被打开或激活时可用。
从表示属性单元生成的表示存储于档案库中。它们由用户界面元素目标组成,而这些目标又由更小的目标(如图形或文本串)组成。
档案库是一个具有属性单元目标组的模型,它包括用户界面元素(如窗口、选择单、控制、工具等)以及表示(图符、略图、帧、窗口)。
对话窗及控制板
以不同方式使用命令目标,可控制一组控制的两个独立行为。第一种行为是使数据立即生效,或用户必须在设定值生效前按“OK”键。第二种行为是设定值相互独立,或多个设定值代表一原子操作(其意为一单个机器指令执行的计算)。
控制包括命令。当用户操纵控制时,控制将参数置入命令,并导致该命令执行。命令根据选择指定的模型数据进行操作。
立即生效
致使数据立即生效的控制包括一条命令,该命令具有指定实际模型数据的选择。当用户操纵控制时,该命令导致数据发生变化。一旦数据改变了,它即发出变化通知,使根据该数据状态进行的观察及控制能精确地反应出当前状态。
延迟
这种控制必须根据协议数据操作,而不是去改变实际数据。除非用户执行一个操作,例如按“OK”键,否则实际模型数据不会改变。这一控制可以两种方式进行。
具有一条命令的控制,该命令所包括的选择指定该控制本身。当用户操纵该控制时,该命令致使控制值改变,但没有其它模数据。当用户按“OK”键,“OK”键里的命令将实际模型数据改变,以匹配用户操纵的每一控制中的数值。
具有一条命令的控制,该命令所包括一选择指定OK键里的命令参数。当用户操纵该控制时,该命令致使OK键的命令改变。当用户按“OK”键时,OK键的命令改变其实际模型数据,以匹配其本身自有的值。
独立
动作相互独立的控制要求表示在控制板或对话会话期完成后可以被各个取消的行业。这是一个由控制执行的常规命令过程。
原子操作
其它控制组可以一起工作,并可以原子操作形式取消和再执行。这是在对话窗或控制启动时在取消栈内设置一个标志而予完成的。完成后,或将控制板取消,或由用户按OK键(如上面ⅡB所述),由于在取消栈上设置标志所执行的全部命令将被收集成为一个单元的命令组。该组可作为一个单独的命令组被取消或再执行。
取消
具有CANCEL(取消)键的控制板(一般伴随ⅡB中所述的OK键)与上面ⅢB所述的技术相同。当对话窗或控制板被启动时,取消栈上的标志便被设置。如果用户按CANCEL键,全部在设置之后进入取消栈的命令都被取消。无论控制是否致使数据立即生效,该技术都起作用。
对话窗里的原子命令执行
用户用来互相对话以处理其它目标及数据的目标即所谓控制。例如选项屏,按键,检验窗,及射频按键。每一控制包括一条命令,用以实现终端用户操作。命令根据选择目标程序所指定的数据操作。当用户操作控制时,该控制将参数置于命令中并令其执行,以此来变换数据值。
操作相互独立的控制要求操作的再执行,这些操作在控制板或对话会话期完成后可以逐个取消。这是一个由控制执行的常规命令过程。其它控制组合可以一起操作,并可以用原子操作的形式取消和再执行。
图14中的流程图陈述了原子执行的详细逻辑。从终端1400开始的处理立即将控制转移到激活对话窗的功能框1410。对话窗被激活时,在取消栈上设置了一个标志。该取消栈是一个用户已执行的全部命令表。当按下取消时,该栈顶上的命令即被取消。如果不立即要求再执行,该命令则被去除。而后,在功能框1410,检测用户操纵控制。如功能框1430所示,控制的处理改变命令的数据值,并执行该控制。例如,检测框在0和1之间触发命令的“f”检测域。最后,该命令被记录在取消栈上,以便随后在功能框1440中可以被取消。
随后,用户处理对话框中的每一控制,如判别框1450所检测的,控制随后转移到功能框1430。可是,如果用户在判别框1460按“OK”键,该控制则转移到功能框1420。最后,当对话框中的每一控制都满足用户的要求后,用户按OK键。在功能框1440的取消栈被置标志后所执行的全部命令被集中到一个单命令组中,并如功能框1470所示被置回到取消栈上。命令组是一条将多条命令集合在一起的命令。当进行取消或再执行时,该命令组按顺序取消或再执行每一条命令。而后,该命令组被回置到取消栈。在这里,它可被作为一个单原子操作来取消或再执行。
对话窗里的延迟命令执行
用户用来相互对话以处理其它目标及数据的目标即所谓控制。例如选项屏,按键、检测窗和射频按键,都可称为控制。每一控制包括一条实现终端用户动作的命令。命令根据选择目标所指定的数据进行操作。当用户操纵控制时,它在命令中置入参数,并导致它执行该命令,以变换其数值。延迟数值变换直至用户进行另一动作是本发明的另一方面。例如,对话窗里的控制可能不想改变任何数值,直至用户按OK键。
当一个控制生成时,必须指定一条命令。该控制拷贝这条命令,并将其存储在“f”命令区域中。如果该命令提供了任何数值,指向该命令的相应取得(Get)和设置(Set)方法的指示字也必须被指定。该控制将这些方法指示字分别存入f取得方法域和f设置方法域。命令所修改的数据由选择目标指定。通常情况下,这个选择目标指定实际模型数据。取而代之,选择目标指定OK键里命令中的数值。
当用户操纵控制时,该控制的命令被执行,且OK键的命令中的数值被改变。当用户操纵对话窗中的每个控制时,该控制的命令被执行,且OK键的命令中的数值被改变。因此,当用户按OK键时,OK键中的命令更新实际模型数据,以匹配其自身中由该控制的命令处理的数值。该处理被重复,直至控制处理完成。
标号
标号是具有图形式文本串的图形目标。它们被用来标识窗口、选项屏,按键,及其它控制。标号可根据其内容的情形改变其外部表征。标号是在一个中灰色的背景上,并只有在不须指定特殊情形才出现。当它们在待用撤除或被选择时改变它们的外部特性。
释放
当视窗不是在最前面时,视窗标题被置为待用状态。同样,当控制不是在最前面视窗或其它最前面储存装置中时,控制标号被置于待用状态。待用时,图形标号混合55%的白色,以使其暗淡。对于文本标号,待用着色是通过处理HSV色彩(在彩色显示技术中,由颜色,亮度以及颜色的深浅所定义的色彩)模型的亮度分量而得到自然着色。待用时,其亮度(Saturation,在彩色显示技术中,未经白色淡化的颜色程度)被乘以0.45。
禁止
当控制未加至特定的前后关系中时,其控制标号便被暗淡化。待用时,图形标号混合46%的白色,以使其暗淡。对于文本标号,禁止的着色是通过处理HSV色彩模型的亮度分量从自然着色而得到。禁止时,其亮度被乘以0.54。
选择
当处理控制时,控制标号被加重。图形及文本被加重时是在白色背景上以自然状态绘制的。
智能控制标号
控制利用一条命令决定目标或数据的当前状态。在与用户对话之后,控制更新命令参数,并使之执行。例如,检测窗设定或消除一条命令的参数,然后执行该命令以改变数据值。控制显示一个标号以表示出其功能。该标号是一个具有图形或文本字串的图形目标。当控制状态改变时,该标号自动调整其外部特性,而并不要求编号外加代码。这些状态包括激活/释放,启动/禁止,和选择/未选。
图15展示了智能处理的详细逻辑,从终端1500开始,控制立即被转移到智能标号初始化框1510。当控制生成时,其标号被其相关的命令所提供的文本字串或图形初始化。为此,每条命令提供所谓取得图形(GetGraphic)和取得名称(GetName)的方法。控制调用“设置激活”(SetActive)来通知其标号它当前是在激活态还是释放状态。同样,控制调用启动设置(SetEnabled)来通知其标号是否启动,并调用“选择设置”(SetSelected)以通知其标号当前是否被用户选择。
智能标号处理的下一步是绘制标号的功能框1520。当控制激活时,它调用其标号的“绘制”(Draw),致使标号出现在屏幕上。如果释放,该标号则比正常的暗淡。这是由处理HSV色彩模型的亮度分量而完成的。待用时的亮度被乘以0.45。如果是撤除,其标号比正常的暗淡,这是由处理HSV色彩模型的亮度分量而完成的。标号禁止时的亮度被乘以0.45。如果被选择,该标号将置于一加重的背景之上。一般情况下,标号被绘制于一中灰背景之上。被加重时,标号则绘制于一白色背景之上。否则标号按一般色度绘制。
下一步处理是功能框1530所示的标号的激活/释放。当控制被激活或释放时,它以调用设置激活的方式通知其标号。随后,该控制调用具有变元的“无效”,以表示出其标号的外部特性需更新,该变元则指出屏幕上的哪一部位的再绘制,然后,控制被转移到功能框1520做进一步处理。
智能视窗标号
视窗中显示的标题是为了说明其目的。例如,视窗中用于编辑文本的标题一般是该本文本的名字。标号目标则用来追踪标题。该标号是一个具有图形或文本字串的图形目标。当视窗改变状态时,该标号自动调整其外部特性而不需编写外加编码。视窗可以是活动的或静止的。图16中的流程图是智能窗标号处理,并对其详细逻辑加以说明。
图16中的处理从终端1600开始,其控制立即被转移到功能框1600以将标题初始化。视窗生成时,由开发者指定视窗的标题。该标题存储在被称为“f”标题的“T标号”目标中。控制调用设置激活来通知标题当前是激活还是释放。随后,在功能框1620,当绘制窗口时,它调用其“f”标题(fTitle)目标的“绘制法”,致使标题出现在屏幕上。如果是释放,所绘制的标题淡于正常亮度。这是由处理HSV色彩模型的亮度分量而完成的。待用时的亮度被乘以0.45。否则,标题以正常亮度绘制。
下一步处理是功能框1630所示的标题被激活或释放。当一个视窗被激活或被释时,它调用激活设置来通知其f标题目标。随后,该视窗调用具有变元的无效来表示其外部特性需更新,而该变元则指示出屏幕需再绘制的部位。此后,控制便被转移到功能框1620将标题再绘制,以反映出其新状态。
装饰
用户界面元素的许多直观方式在许多元素中是通用的。例如阴影、边缘和标号。各个直观特性参照其装饰。装饰可与其它图形结合,以形成特定用户界面元素的直观外部特性,例如视窗和控制。本发明支持许多不同类型的装饰。
背景
在其它目标背后所绘制的装饰被称为背景。一种背景被绘制得与图表是齐平的。它可以有框也可没有。另一种背景在绘制时被加重并加上阴影,使其突出于周围表面。最后一种背景在绘制时加重并加阴影,而其隐现于其周围表面之后。
使用这些背景的一个例子是按键。表示按键的文本或图形通常绘制在突出的背景上。当用户按它时,该文本或图形便被再绘制于隐入的背景之上的。如果该按键是待用的,例如当另一个窗口激活的时候,该按键的文本或图形则被绘于暗淡的齐平背景上。
边缘
围绕另一个目标或区域的装饰即所谓边缘。例如框和阴影。框是一种边缘,该边缘围绕另一图形,正象实际生活中的镜框里装着一幅画一样。如背景一样,框可以被绘于隐入,齐平,或突出于其周围表面。阴影是一种特殊类型的边缘,该种边缘将阴影加在一目标的周围,使目标看起来象是在周表上浮动。
装饰色彩
用户界面元素的许多直观方式在很多元素中是通用的。例如,阴影,边缘,和标号。每一直观特性参照一个装饰。装饰可以与其它图形结合,以形成特定用户界面元素的直观外部特性,例如窗口和控制。有些装饰利用加重或阴影来显现或隐入周围表面。装饰可从这些加重和阴影绘制中自动取得。
填充描绘
填充描绘表现出装饰的主要颜色。所有其它描绘都从填充描绘中取得。填充描绘由一个装饰存入被称为“f”填充描绘“(fFillPaint)”的“T颜色”(TColor)域中。当装饰生成时,通常由一个开发者指定填充描绘。可是,如果没有指定颜色,则中灰色便被选中。
框描绘
框描绘用于绘制装饰周围的线条,以提供可见衬度。框描绘由装饰存入被称为“f框描绘”(fFramePaint)的“T颜色”(Tcolor)域中。当装饰生成时,开发者便指定该框描绘。可是,如果没有指定框描绘,它将从填充描绘中自动计算出来。这是靠处理HSV色彩模型的亮度及值分量来完成的。该亮度被乘以4,其最大值是1。而值分量除以4。
加重描绘
加重描绘用于在光可投射到目标周围画线,该目标是实际的三维目标。加重描绘由装饰存入被称为“f加重描述”(fHighLight)的“T颜色”域中。当装饰生成时,由开发者指定加重描绘。可是,如果没有指定加重描绘,它将从填充描绘中自动计算出。这是靠处理HSV色彩模型的亮度及值分量来完成。亮度实乘以0.8,值分量则乘以1.25,其最大值为1。
阴影描绘
阴影描绘可以用来在目标着色的部位画线,该目标则是实际的三维目标。阴影描绘是由装饰存入被称为“f阴影描绘”(fShadowPaint)的“T颜色”域中的。当装饰生成时,由开发者指定阴影描绘。可是,如果没有指定阴影描绘,它将从填充描绘中自动计算出来。这是由处理HSV色彩模型的亮度及值分量来完成的。亮度分量被乘以2,其最大值为1。而值分量则除以2。
将输入语法与语义分开
图形化的用户界面处理是移动鼠标器,在目标上按一下以选择该目标,拖曳该目标以移动或拷贝它们,并在该目标上连按两下,以打开它们。这些操作称为直接处理或交互处理。对应于用户按下、移动、和释放鼠标的一系列顺序事件被称为一条输入语法。某些用于指示出特定活动的事件顺序被称为语义操作。
将理解输入语法的代号与执行语义操作的代码区分开是本发明的要点。目标中所使用的这一处理被分别称为交互和难控制的(Intractable)。图17展示了这些目标是如何生成的,以及这些目标如何在与一个可被移动并选择的目标交互作用期间互相通讯。
处理从终端1700开始,控制立即被转移到功能框1710,以确定鼠标器上的键是否被按了一下。一个事件被送至目标,该目标对应于屏幕的某个部位,在这个位置上鼠标按键按了一下。该目标即所谓视图。随后,交互程序在功能框1720生成以分析输入语法。这是由调用视图的“生成交互程序”(GreatInteractor)来完成。当交互程序生成时,指向目标的指示字作为参数被转移,而这些目标是执行可能的用户活动的。
为讨论的目的,假设用户在一个可被选择并移动的目标上按下鼠标器键。在这种情况下,执行选择的目标和执行移动的目标作为参数传给交互程序。初始视图可执行所述选择和移动,或可由一或二个分别的目标来执行。这一个或多个目标总体来说被称为“难控制的”。
交互程序从功能框1730启动。该处理将交互程序返回给视图,并开始交互程序的处理。这是靠调用交互程序的启动并传送作为参数的初始鼠标事件来完成的。“启动”将初始鼠标事件存入“f初始事件”(InitialEvent)域中。由于到目前为止只处理了一个鼠标事件,所以唯一可能的活动只有选择。交互程序将可变“f交互类型”(fInteractionType)设置到常数“K选择”(KSelect),以进入选择模式。它调用其“选择开始”(SelectBegin)来请求“可交互的”开始选择操作。
随后,如功能框1740所示,交互程序等待一会儿再转移。当时间到了时,一个新的鼠标事件被传送给指示出当前鼠标状态的交互程序。此后,如果系统检测出判别框1750的鼠标器仍然被按下,控制便被转移到功能框1740。否则,控制转移到终止1760。如果鼠标器仍被按下,交互程序则要确定它是否仍在改正状态,并请求“可交互的”执行改正操作。如果“f交互类型”是“K选择”,则表示交互程序正在作选择。如果“f交互类型”是“K移动”(KMoving),则表示交互程序正在移动。
如果是选择,交互程序则比较鼠标器当前位置和初始位置。调用“取得当前位置”可取得鼠标器的当前位置。调用“取得初始位置”可得到的鼠标器的初始位置。如果两者相同或相差一个很小的量,则用户仍在选择该目标。然后,交互程序调用其“选择重复”来请求“可交互的”继续其选择操作。可是,如果两点之间的差超过了一个预定值,则表示用户已开始移动该目标。在这种情况下,交互程序调用“选择结束(SelectEnd)请求“可交互的”结束选择操作。随后,它调用“移动开始”请求“可交互的”开始移动操作。在每种情况下,当前鼠标器位置都作为变元转移。如果是移动,交互程序使调用其“移动重复”(MoveRepeat)请求“可交互的”继续其移动操作。它将当前鼠标器位置作为变元转移。
当用户释放鼠标器键时,它发出当前操作结束的信号。如果是选择,交互程序调用“选择结束”请求“可交互的”终止选择操作。如果移动,交互程序通过调用“移动结束”来请求“可交互的”终止移动操作。
局部表示
局部化是更新一个应用以符合一个特定地点的要求的处理。它可能涉及语言翻译,图形替代,以及界面元素重新定向。例如,标号中使用的文本,标题,以及消息取决于选择的语言。其方向和定位可能影响一个选项屏,选择屏栏(menubar),标题,卷动条,或工具条(toolbar)的定位及布局。与之类似,图符和其他图形符号的选择可以是文化相关的。不幸的是,存储器中的许多用户用界面元素的局部版本很昂贵。因此,用户界面元素的局部版本保存在磁盘中直到存储器需要。进而,跟踪所有用户界面元素以及确定哪个版本要使用是极易出错且价格昂贵的处理。取而代之,当需要一个用户界面元素时,系统将根据当前语言及其他文化参数(cultural parameters)自动选择一个适当的用户界面元素并将其读入存储器。
一旦局部化,用户界面元素便存在磁盘字典中。磁盘字典是一个目标,它在给定一个键时在从磁盘中读出后返回一个值。一个叫做档案库的目标管理该磁盘字典。档案库用于将组成一个特定表示的多个用户界面元素归到一起。选择适当的用户界面元素的操作示于图19中。
处理始于1900并当用户请求表示时立即转入功能框1910。一个打开表示命令(ToOpenPresentationCommand)送到数据模型,指示用户想要观察或编辑该数据。表示是一组用户界面元素,它用允许用户观察或编辑一些数据。表示通过对话存在用户界面目标(UserInterfaceObject),从而为用户提供连续性。用户界面元素存于磁盘中直至存储器需要。它们可以作为用户要求的数据表示的一部分,或用于翻译或其他局部处理。每个用户界面元素包含一个标识,它唯一地关联该元素。但是,同样的用户界面元素的所有局部版本共享一个标识。
为了区别局部版本,特定的语言(书写方向)和其他文化参数和每个局部用户界面元素一起存起来,这些参数总称为地点(locale)。所有用户界面元素在存在一个文件中。该文件被组织为一个有至少一个键/值对的字典。键是一个合成标识和地点的目标。值则是用户界面元素本身。
一个新表示必须在功能框1920处生成。若不存在一个适当的表示,则必须从一个属性单元(template,其意为在C++中定义为有未积压类型的一个参数的一个分类)由用户界面档案库生成一个新的表示。一个表示类型作为一个参数传到这一方法。这一类型包括要被显示的数据的类型,是否要在其自己的窗口或另一表示的一部分等信息。最后,在功能框1931处,档案库建立该表示,从而根据地点选择用户界面元素。若档案库可建立指定类型的表示,则收集组成该表示的每个用户界面元素并返回该收集至用户界面目标。
对每个档案库可以生成的表示而言,都有一个用户界面标识表。用户界面元素存在磁盘字典目标维护的磁盘之中。给定一个键,该磁盘字典将返回相应的用户界面元素。用户界面元素标识组成该键的主要分量。该键的第二分量是需要的地点。一个地点是说明自然语言和用户的其他文化属性的目标。该地点由档案库从一个优先权服务器(Preference Server)中自动获得,该服务器包括与用户有关的所有单独的优先权。
由优先权服务器得到的地点与标识合并成为一个叫做T用户界面元素键(TUserInterfaceElementKey)的目标。该键作为参数传到磁盘字典的获得值(GetValue)方法。若发现用户界元素有一与之相配的标识和地点,则其被返回且作为表示的一部分,否则,从该键中去除该地点参数,或必须指定另一地点直到发现一个适当的用户界面元素。
交互结构系统
面向目标的操作系统的图形用户界面的用户通常移动鼠标器将光标移至目标处并按一下鼠标器按键以选择该目标,拖曳该目标以移动或复制,然后按两下鼠标器按键打开该目标。这些操作为直接操纵或交互作用。对应于用户按鼠标器按键,移动鼠标器以及释放鼠标器按键的事件序列叫做输入语法。某些事件序列用于指示特定的行为,则称之为语义操作。本发明公开了将输入语法译为目标的语义操作的方法及装置。其中,目标支持选择,观察,位移,自动卷动以及拖曳/投入(复制)。
本发明以鼠标器按键是否按下进行检测并采用以下逻辑:
(a)若当用户按下鼠标器按键时选择(Option)键被按下,系统设置可变的fInteractionType(f交互作用型)到恒定KDrag(K拖曳)以进入拖曳模式。该系统然后利用选定的目标作为操作对象开始拖曳操作;或
(b)若选择键未按下,则该系统将可变f交互作用型设置为恒定K选择(KSelect)从而进入选择模式。然后,选择操作开始。
若用户按下鼠标器按键并一直按着它,则涉及下列逻辑。若系统处于选择模式,则其确定是否用户已将鼠标器移动超越一阈值(叫做移动阈值)。这一确定是由比较超始鼠标器位置(它由获取起始位置方法(GetInitialLocation)返回)和当前当鼠标器位置(由获取当前位置方法(GetCurrentLocation)返回)的方式而予完成。若该鼠标器移动超越移动阈值,系统则结束选择模式而进入移动模式。这一转换是通过将可变f交互作用型设置为恒定K移动(KMove)而实现的。然后系统通过调用其选择结束(SelectEnd)的方法告知目标结束选择操作。然后系统通过调用其移动开始(MoveBegion)方法启动移动操作。
如果鼠标器没有移动,系统将检测鼠标器已按下多长时间。这一检测可通过比较由获得起始时间(GetIntialTime)方法返回的起始鼠标器按下时间和获得当前时间(GetCurrentTime)方法返回的当前时间的方法而实现。若鼠标器按键被按下的时间超过一阈值(称之为观察阈值),则系统结束选择模式而进入观察模式。这一转换可通过将可变f交互型设置为恒定K观察(KPeek)的方式而予实现。通过调用选择结束方法,可要求目标结束选择操作并通过调用观察开始(PeekBegin)方法开始观察操作。否则,若鼠标器未移动或按下按键的时间在观察阈值之内,该系统通过调用该目标的选择重复(SelectRepeat)方法而继续选择操作。若该系统检测到用户处于移动模式,则该系统首先确定是否用户在视窗之中,视窗的边缘,或在视窗之外移动鼠标器。通过比较由获得当前位置方法返回的当前鼠标器位置和由获得目标储存装置边界(GetContainerBounds)方法返回的目标储存装置(objectcontainer)的边界可进行以上确定。
若鼠标器仍在视窗边界之内,系统通过调用目标的移动重复方法继续移动操作。若鼠标器位于视窗边界上,这指示了自动卷动操作。系统要求目标的存储程序沿鼠标器位置指出的方向卷动。这一行为可通过调用目标存储的自动卷动方法并将当前鼠标器的位置作为一个参数传送的方式而予完成,一旦完成,系统将通过调用目标的移动重复方法继续位移操作。
若鼠标器已移动超过视窗,系统将结束位移模式而进入拖曳模式。这可由设定可变f交互型成恒定K拖曳而实现。通过调用位移结束方法可要求目标开始拖曳操作。若系统在拖曳模式,则其通过调用目标的拖曳重复(DragRepeat)方法,继续该拖曳操作。若系统处于观察模式,系统首先确定是否用户已将鼠标器移动超过一确定阈值(称之为位移阈值),这可通过比较获得起始位置方法返回的起始鼠标器位置和获得当前位置方法返回的当前鼠标器位置的方式而予完成。
若鼠标器移动通过该位移阈值,则可通过将可变f变互型设置为恒定K位移的方式而结束观察模式并进入位移模式。通过调用观察结束方式来要求目标结束观察操作。通过调用位移开始方法要求目标开始位移操作。否则,若鼠标器未曾移动,则调用目标的观察重复方法而使系统继续其观察操作。
若系统检测到用户已释放鼠标器按键且其处于选择模式,则该系统结束选择模式,这一行为可由把可变f变互型设置为恒定K无(KNone)的方法而予完成。通过调用其选择结束方法,系统询问目标结束其选择操作。若系统处于位移模式,系统可将可变f交互型设置为恒定K无以结束模式。然后,系统通过调用其位移结束方法而询问目标结束其位移操作,系统还将把可变f交互型设置为恒定K无而结束拖曳模式。通过调用其拖曳结束方法可要求目标结束其拖曳操作。若系统处于观察模式,系统可把可变f交互型设置为恒定K无的方式而结束观察模式。通过调用观察结束方法可使目标结束观察操作。
因此,本发明的主要目的是提供一种新型的软硬件系统,该系统可以随用户移动卷动条而动态地更新视窗的内容。该系统检测是否用户在卷动条上按了一下。当用户在卷动条上按了一下时,系统开始初始卷动命令以改变展现在视窗中的部分数据。一个命令是一个实现终端用户动作(例如卷动)的目标,一个卷动命令有一个参数,即视图应该卷动的位置,系统将该位置设置为当前卷动位置。只要调用命令的设置卷动位置(SetScrollPosition)并将卷动设置为相对于一个值的位置,即可实现上述卷动位置的设置。而其中所述的值是由卷动条的方法(GetScrollPosition)所返回的。
当用户在卷动条内移动鼠标器时,系统继续执行卷动命令以动态地改变展示在该窗口中的数据部分。系统将命令的卷动位置设置为新卷动位置。通过调用命令的设置卷动位置以及将其值设定为卷动条的方法返回的值即可实现上述卷动位置设定。调用其反复执行(DoRepeat)方法重复执行该命令从而使视窗的视图卷动至该新位置处。只要用户一直按着鼠标器按键时,这一处理便一直继续下去。
当用户释放鼠标器按键时,系统结束执行卷动命令。通过调用命令的设置卷动位置以及将其值设置为卷动条的方法返回的值,系统将卷动条的卷动位置设置为最后卷动位置。
图20为一流程图,它展示了根据本发明与卷动有关的详细逻辑。处理开始于框2000处并立即去往框2010。在该处,当前卷动位置根据当前的光标位置而初始化。然后,在判别框2020处,进行测试以确定是否卷动条被选择。卷动条的例子可参见图21A的标号2110。若卷动条已选中,则控制去往判别框2030以确定是否卷动条已被移动。若是,则设定卷动位置为卷动条的新位置,重新将显示格式化以反映立即的卷动操作并为用户进行显示。若卷动条未移动,在框2050处进行另一测试以确定是否卷动条被释放。若没有被释放,则控制返回判别框2030,若卷动条已为释放,则控制去往功能框2060以进入卷动操作并将系统返回到非卷动操作状态,从而处理在2070处完成。
图21A、21B和21C展示了根据本发明的窗口卷动,图21A中,卷动条2110位于窗口2112的顶部,图21B示出卷动条移至窗口的中部且窗口的内容因此而更新。图21C示出卷动条2140移至窗口底部且窗口2142的最底部分的内容。
计算机系统
示意性的硬件系统示于图22,这是一个根据本发明的工作站的合适的硬件构成。该工作站有一个中央处理器2210(例如常规的微处理器),以及通过系统总线2212相连的若干其他部件。图22所示的工作站还包括一个RAM2214,一个ROM2216,一个用于把软盘之类的外围设备连到总线2212的I/O适配器2218,一个用于连接键盘2224的用户接口适配器2222,一个鼠标器2226,一个扬声器2228,一个麦克风2232,以及/或到总线2212的其他接口设备(例如能模式屏幕,未示出)。工作站亦可有一通信适配器2234,用于把工作站连到数据处理网络2230。工作站还可有一把总线2212连到显示设备2238的显示适配器2236。
名片的组成
一个名片是一个包含有一组与多种环境相关的信息的文件。名片可以包含大量与个人相关的信息。以下是可包含在名片中的信息种类:姓名;工作职位;组别,部门以及小组标识;经理姓名;雇主标识;工作电话号码;家庭电话号码(声音及数据);家庭传真号码;工作地址;家庭住址;工作站服务器名;工作站区;工作站投入箱卷名;最佳打印机;第二最佳打印机;协议地址(例如TCP/IP,AppleTalk,OSI,以及XNS);邮件地址(例如Internet地址,X.400地址,AppleLinkTM地址,QicickMail地址,BITNET和UUCP);名片技有者关于该名片表示的个人的可编辑注释;以及由名片表示的个人所写的不可改变的注释或意见。
当初始开启一个名片时,便显示选定的信息。在初始态的名片是图符,图形以及文本的组合,它们表达与名片拥有相关的信息。亦可通过依次展示的方式显示其他信息。两种依项屏示方式分别是(ⅰ)一组标记,(ⅱ)一个表视图。
参见图23,它示出了初始开启态的名片。名片2300的初始开启态2302包括文本2304,图形2306以及图符2308和2210。文本2304指示:名片的拥有者科文劳瑞尔(Kevin-Larue);名片拥有者的职位(成品部经理Product Manager-Super Card);名片拥有者的地址(9770卡罗中路,Suite J,圣选戈,加利佛尼亚92126 9770 Carral Center Road-Saite J-San Diego,CA 92126);名片拥有者的电话号码(“(619)695-6956”);名片拥有者的传真号码(“(619)695-7902”);以及各种电子通信数据(“Applelink D0027 MCI Mail:SBS”)。图形2306指示名片拥有者所属的单位(“SiliconBeachSoftaare”)。图符2308和2310当按两下鼠标器时会提供有关名片拥有者的进一步信息。
这种特定的布局以及展示的项目是根据用户的要求并在用户控制之下完成的。从主视图中选择项目准备下一个要展示的视图。这种灵活性为根据用户的要求进行视窗的依次显示提供了控制。用户可以用2301处的控制有选择地显示主视图或下一视图。
参见图24,其为一个名片2200的表视图。名片2200的图2300附在初始开启态的底部。通过图符2410的灵活便可选择初始开启态,表视图2400包括项目栏2402种类栏2404和内容栏2406。每个项分别由2412和2414有关的通信内容方法进行叙述。表视图2400可以通过卷动箭头组2416而在各个方向卷动。显示栏标题2402可扩展而且用排序区的任意栏可实现动态排序。
参见图25到图28,它们展示了名片2300的一组标记。通过图符2410选择可获得连在初始开启态2302底部的标记。
参见图25,它示出了名片2300的办公标记。办公标记2500示出了与标题2510指出的名片拥有者的办公地址有关的信息。因此,显示了地址2502和2506以及办公电话号码2504和2508。办公标记还显示图符2512,2514,2516,2518,2520,2522和2524,它们分别表示住址信息,邮寄地址信息,电话信息,电子邮件信息,打印机信息,联系以及各种注释。通过按一下鼠标器对这些图符进行选择即可导致显示与选中图符相对应的标记。转换2311用于提供名片中的表和标记的信息视图之间的转换。
参见图26,示出了名片2302的电话标记。选择图符2516便可显示电话标记2600。电话标记包括标题2610所示的名片拥有者的各种电话号码信息。这类信息包括项目2602,2604,2606,2608,它们分别表示传真,住所,调制解调器以及办公电话号码。项目2602,2604,2606和2608的电话号码分别由2612,2614,2616和2618所示。
参见图27,示出了名片2300的电子邮件标记。选择图符2518便可显示电子邮件2700。电子邮件2700包括标题2710所示名片拥有者的各种电话号码信息。这类信息包括2703,2704,2706和2708,它们分别为AppleLink,联网Internet,MCI邮件MCIMail以及共享文件夹Shared Folder.项目2702,2704,2706和2708的地址表分别由2712,2714,2716和2718所示出。应该注意到项目2708的地址表也示于图符2310中。这是由于项目2708表示了一个包含多个电子邮件接收者的共用文件坐。
参见图28,示出名片2300的联系标记。选择图符传递2522便可显示联系标记2800。联系标记2800包括标题2810指示的名片拥有者的各种联系信息,它们包括项目2802,2804,2806和2808,这些项目分别指出了四个联系人的名字,其名字由2812,2814,2816和2818指出。
名片可是个人的,亦可公布。公布的名片是放在中央店或可广为他人所获取之处的那些名片。公布的名片也响应通过预定协议浏览应用程序。反之,个人名片则是不为他人所知。这些个人名片只在本地工作站内。在特定信息具有隐私性质或由于该信息与网络中的他人无关的时候,可制成个人名片。例如,通常由电话联系或不在网络上的朋友或联系人可在一个个人名片中。
名片所关联的网络用户从插入到名片中的个人目标中选择一些信息。类似地,有关非网络用户的信息被慎重选择以加入名片之中。某些信息可以是个人的,而且用户不想把电话号码之类的信息分发出去。例如,某个人可能想要生成包含这类信息,以及其他不想公开的信息(这些信息只分发给朋友或很信任的同事)的名片。但是,这个人也想要能够有一个没有这类信息分发给他人的名片。
除了在公布的名片和个人名片之间的区别之外,还可依据其中包括的信息识别名片。尤其是,一个名片可存储这些信息:(ⅰ)单独个人(ⅱ)一组人,它依次与单独个人的名片相关联;以及(ⅲ)不表示一个真实个人而只是一个角色的个人。例如,与个人有关的名片可能指的是一个研究所。这样一个名片包括至少一个联络方式,它包含了如何与该人联系的进一步信息,而且甚至可以在通信时间动态地选择这一联络方式。
名片信息存储及检索
名片被构成以提供网络和非网络通信。尤其是,本发明提供了用于建立网络连接的地址信息。它可包括简单协议地址,例如一个TCP/IP数字地址或一个复杂的栈定义。非网络通讯,例如电话拨号,也受本发明支持。进而,名片存储与各种联接有关的信息。这类信息包括不同的协议系列,电子邮件地址,以及电话和传真信息。进而,名片还包含支持多个协议地址类别的信息,这些类别包括BabelFish栈定义,它进而包括AppleTalk和TCP/IP。
个人目标是包括与一特定个人相关的全局通信信息的目标。个人目标通常位于与个人目标关联的网络用户所用的工作站中。与一特定用户关联的名片目标可在该用户重新对不同工作站定位以维护一致环境时被保持。但是,个人目标不被认为是公开信息源。这与作为公开信息源的公布的名片不同。
个人目标用于作为一个用户的大量环境信息的存储器。这类环境包括工作空间布置信息和用户指定的选择。但是,可将名片视为一个个人目标中包含的信息子集。因此,每个名片都包括与通信方法有关的信息。仅只作为资料表示,有可能而且通常有用的是有多个用于单独个人的名片,而每个个人又由给定的个人目标表示。
通常,是根据个人目标中的信息生成一个原始名片。原始名片一般不会在没有个人目标的情况下生成。不管生成方式如何,原始名片亦称为母名片。由母名片叙述的个人称为母名片拥有者。
一旦母名片形成之后,可考贝母名片以形成多个重复的或复制的名片。在重复的和复制名片中的信息与母名片中的信息对应。但是,复制的名片可根据考贝该母名片的用户的喜好进行修改。反之,重复的名片则是主名的未改变的复制。
一个公布主机(publishing host)是一个工作站,母名片便在其中生成。该公布主机亦可是相应的个人目标所在之处,因为在母名片中包括的信息通常来自一个个人目标。单独的工作站通常也将有一个母名片和复制名片的混合。具有重复或复制名片的工作站称为接收名片持有者及复制主机。
对MHasProperties一类的混合类别进行定义以提供一个有效的手段集中个人目标,命名服务目标以及名片目标之间通用的功能性。在没有混合类别时,对每个后备目标需要不同的存贮模块。
参见图29,示出了本发明的混合特性的继承等级。混合特性2900有四个分类。即由标号2902,2904,2906和2908分别标示的个人,TBCT通信实体,TCommEntity,以及MLocal,类别TPerson2902指存在个人目标类别。类别TBC2904定义名片的抽象界面。类别TCommContity2906定义了包含一组源命名和地址的目录的网络命名服务。类别MLocal2908定义了在一特定工作站中发现的名片数据。
类别TBC2904和TConomEntity2906还分解成子类别。类别TBC。2904进而分解成类别T母名片TMaster BC,T复制的名片TReplicated BC和TFSBC,它们分别由2910,2912和2914表示。类别TCommEntity2906还分解成具有命名和地址的区别目录。这由类别2916指出。
参见图30,示出了名片信息的数据流程图。信息初始在类别T代用品TSurrogate3002中,它从类别TPerson2904中导出其信息。类别TSurrogate3002直接把所有信息送到类别TMaster BC 2910.依次,类别TMaster BC 2910把从类别TSurrogate3002获得的信息送到由类别TReplicated BC2912标出的复制名片的类别。
参见图31,示出了混合特性2900的类别和子类别之间的使用关系。通信信息开始时存在TFile 3102中,TFile3102具有TSurrogate 3002和TSBC2914的使用关系。TMaster-BC2910用tsARROGATE3002接收存在个人目标中的信息,个人目标又相关地连到TPerson2902。由于名片通常是在个人目标中包括的公开信息的子集,因此在个人中的改变应该反映在母名片中。并从而反映TMaster BC 810和TSurrogate 3002之间的应用关系上。TMaster BC 2910用TCommEngity2906在网络命名空间中公开其信息。公布的信息然后从TMasterBC2910或TCommEntity2906考贝到TReplicated BC2912。当一个母名片或考贝的名片们于一个软盘中时,TFSBC2914也可用在使用关系之中。
许多属性存在一个名片中,一个名片可被认为有多个不同的后备目标。每个后备目标有用于该名片某些属性的确定值。通常,名片是个人目标的视图,这一关系意味着存在个人目标中的信息也包含在名片中。因此,个人目标被看作是定义源。其他名片只可从命名服务实体中生成。在这种情况下,命名服务目标被看作是后备目标。复制名片有母名片作为其主后备目标。三个前述主后备目标(个人目标,母名片目标以及命名服务实体)因此共享特性支持的共同界面。
参见图32,示出了在选择检索的信息存在于检索要进行的工作站时对名片进行检索的方法。当一个应用程序要检索一个名片时,如3202所示,初始请求相应的名片目标3204,依次,名片目标3204将对应于选定名片目标的数据分配到本地工作站3200中。本地工作站3200。本地工作站3200把位于一个给定名片中的所有数据接3212的方向传送。然后从本地工作站3200中检索相应数据并传到名片目标3204。此后,相应数据被送到起始请求该信息的应用程序3202。
在命名服务中存有足够信息以便浏览名片目标并与该名片描述的目标建立网络连接。这一设计允许通过使用公布主机而从命名的服务实体中例示完整的名片。此外,亦可从命名服务实体实中生成部分的名片。部分的名片可用在不被完全示例的事务处理程序中。从公布的主机只获得必要的信息。
参见图33,示出在选择检索的信息不存在于检索要进行的工作站时对名片进行检索的方法。如箭头3302所示,应用程序3300初始选择名片目标3304。3304然后把对应于名片目标3304的地址分配在网络命名服务数据库3329中。此后,网络命名服务数据库3320把分配的地址反送回名片目标3304。相应地址的分配和传送分别由箭头3306和3308指示。名片目标3304然后把对应于选择的名片目标的数据分配到分布主机3310。这一任务可由检索到的地址完成。公布主机3310有与给定的名片目标有关的所有数据。该给定的名片目标数据如框3312所示。相应的数据然后从公布主机3310传送到名片目标3304,并然后传到应用程序3300。这一传送过程分别由简明头3314秘3316所示。
这一设计提供了许多优点。首先,可允许在浏览功能性而无过度广播行为的同时对名片进行更为简易的修改。其次,由于信息被高度分布,所以可避免访问失败。如此,若命名服务是不可访问的,则名片仍然包含非网络连接的适当信息。第三,通过在目录和公布主机之间分割信息,可在一个单独的工作站中生成系统预置连接的足够信息。因此,由于用于系统预置连接的信息成至最少并不会经常改变,所以网络更新大幅降低。
前述设计要求是名片的公布主机为基于部分命名服务的复制品或当地复制品的持有者提供信息。例如,一个特定用户可在一个网络命名服务窥视窗中观看名片并将其考贝到该特定用户的台式计算机中。但是,该命名服务网络只有部分信息且一个完全的名片必须被生成以便存在用户的机器中。通过接触公布主机并获取所有其他信息,便可生成一个完全例示的名片。该公布主机有一个回答询问的名片服务运行。它可以返回一个名片所有的全组属性或个人属性。命名服务实体有足够信息来联系用户的名片服务。该服务可依次提供其余信息。
本发明在不同网络中提供了完整的功能性。虽然某些不兼容的工作站将不能利用名片功能性的全部优点,这些工作站依然可作为兼容工作站的操作目标。即,在第一网络上操作的用可保留一个名片,该名片有在第二网络上操作的用户的邮寄地址信息。虽然第二网络与第一网络不兼容,但保留的名片可在邮寄应用中作为第二用户网络的用户被使用。
名片的用户应用变得很简单。新用户可以生成,修改,更新,删除,和考贝名片,并在合作过程中使用名片。名片的复制性质的有关知识是一个新用户看不到的。新用户也看不到有关名片的分布性质的知识。
当系统预置条件时,例如当命名服务支持名片不可获得时,名片维护有限的实用程序。既使命名服务支持名片得不到,复制的名片也可如常使用。如此,当一个网络不可访问时,名片仍可作为选项屏观看,而且不通过网络的连接机制仍可操作,这些连接包括电话连接和传真服务。
理想情况是对于个人来说要保持追踪从某个人或某个联系的人接收的资料。用户亦可想要能用一个用户名片或个人图符在一个资料上盖章。
复制名片的维护
一组机制用来维护名片目标的复制版本。这类机制相互实施以便提供完整的特性集。在该集中的每个机制对另一机制不是排他的,虽然快速实施可能只要求一个部分子集。这组机制包括:(ⅰ)手动用户初始化更新;(ⅱ)基于故障的同步;以及(ⅲ)周期的背景同步。
第一个机制,手动用户初启更新,用于在用户已经修改了名片并寻求把某种属性的值复位到初始态的时候。在这样的情况下,一组属性可为选择而且然后可与母名片的属性同步。
第二个机制。基于故障的同步,用在试图使用名片的时候,该名片又被确定为包含不准确的连接信息。在这种情况下,要努力用最近从公布主机得到的信息更新名片。这使得复制可在需要时被更新,而且具有相对那些实际使用的复制而言同步消耗网络带宽的优点。
第三个机制,周期性背景同步,是一种将复制的名片和母名片周期地同步的处理。这一处理频繁发生并且不消耗大量系统资源或网络带宽。如何发生的模式可由出栈模式同步说明。
出栈模式同步指示了一种从主机取出数据的处理。从主机取信息对其他步骤是最好的,其原因如下,首先,基于出栈的复制允许灵活地确定数据可接受的失效级。其次,出栈模式复制不适于本发明中的应用程序。推进模式复制通过要求广播更新,一组复制主机的知识,或具有一个流行算法发布的更新的随机的主机联系的方式而发布更新的信息。但是,考贝名片的方法禁止任何要求复制主机知识的设计。进而,流行算法提供了有关在本发明中无效数据的多种推测。
本发明的设计并未为工作站上所有复制名法提供同时同步。反之,只有在一个或一些本地复制名片所在的工作站基本空闲时,该名片或这些名法才会同时同步。因此,各个名片以同样级或更低级同步。当工作站有不只一个复制名片具有相同的公开主机时,所有复制名片同时同步。这使得复制名片共享相同连接并因此去除了附加操作。也即,对立数据的更新很可能并不经常发生,而且因此大部分努力是在确定什么是新的而什么是旧的。在这种情况下,同步处理花费大量时间来建立连接,而且因此把这类询问汇集在一起是很有益处的。
虽然流行算法并不用于名片的同步处理中,算法的某些方面仍可用来优化同步性能以及减少负载。首先,此要当一个工作站接触另一工作站以进行复制名片的周期同步,由工作站处理的复制名片的表以及它们的各个版本就被送到主公开主机。
若主公开主机有比工作站更新的复制,这些复制将被公开主机复制中的信息更新。此外,公开主机可以用工作站中的较新版本更新其复制。因此,在两个工作识之间的总同步被进行,从而致使当前信息被维护。
虽然本发明已由上述最佳实施例予以说明,但本技术领域的人只可在本发明范围之内对以上实施例进行修改和改型,本发明的范围受权利要求保护。
Claims (26)
1、一种用于存储关于目标的信息的装置,其特征在于包括:
(a)一个计算机;
(b)一个位于该计算机中的面向目标的操作系统;
(c)用于在面向目标的操作系统中生成一个目标的面向目标的处理装置,该目标是一名片的图形表示;
(d)用于编辑面向目标的操作系统中的目标的面向目标的处理装置;
(e)用于存储与该目标关联的信息的存储装置;以及
(f)用于检索所存储的有关目标的信息的面向目标的处理装置。
2、权利要求1所述装置,其中,所生成的目标是一名片,该名片由含与一用户相关联的信息的一个个人目标中导出的信息所示例。
3、权利要求2所述装置,其中,所述信息包括与一用户关联的系统优先及配置。
4、权利要求2所述装置,包括用于使计算机与网络相连接以便在该计算机和其他设备之间简化通信的网络处理装置。
5、权利要求4所述装置,还包括用于建立网络连接的面向目标的处理装置,其中的信息包括建立网络连接的地址信息。
6、权利要求4所述装置,还包括用于建立网络连接的面向目标的处理装置,其中的信息包括建立电子邮件连接的地址信息。
7、权利要求4所述装置,还包括用于建立网络连接的面向目标的处理装置,其中的信息包括建立传真连接的地址信息。
8、权利要求4所述装置,还包括用于建立网络连接的面向目标的处理装置,其中的信息包括建立多协议地址类型的地址信息。
9、权利要求4所述装置,还包括用于图形描述名片类别的显示装置。
10、权利要求2所述装置,不包括:
(a)用于表示请求信息的显示装置;
(b)用于选择请求信息的面向目标的处理装置;以及
(c)用于传送请求信息到另一用户的面向目标的处理装置。
11、权利要求2所述装置,还包括用于拖曳一个名片的考贝并将其投入另一位置以调用一个动作的面向目标的处理装置。
12、权利要求3所述装置,还包括用于拖曳一个名片的考贝到显示器上的另一区域的面向目标的处理装置。
13、权利要求3所述装置,还包括用于产生多个名片的面向目标的处理装置,该多个名片被组成多个名片集,而多个名片集以由多个附属在一个特定名片集中的一个名片上的多个标记所划分。
14、权利要求13所述的装置,还包括在多个标记上显示一个图象的面向目标的处理装置,所述图象表示了与多个标记关联的信息。
15、用于在面向目标的操作系统中管理电子名片的方法,其中所述面向目标的操作系统位于由计算机的处理器控制的存储器中,所述方法包括以下步骤:
(a)在面向目标的操作系统中由来自一个个人目标的信息把一个目标示例为一个名片的图形表示;
(b)对面向目标的操作系统进行编辑;
(c)存储与该目标有关的信息;以及
(d)检索所存储的与该目标有关的信息。
16、权利要求15所述的方法,其中的信息包括与用户有关的系统优先及配置。
17、权利要求15所述的方法,还包括把该计算机与一网络连接以简化计算机和其他设备之间的通信的步骤。
18、权利要求17所述的方法,还包括建立网络连接的步骤,其中的信息包括建立网络连接的地址信息。
19、权利要求17所述的方法,还包括建立网络连接的步骤,其中的信息包括建立电子邮件连接的地址信息。
20、权利要求17所述的方法,还包括建立网络连接的步骤,其中的信息包括建立传真连接的地址信息。
21、权利要求17所述的方法,还包括建立网络连接的步骤,其中的信息包括建立多协议地址类型的地址信息。
22、权利要求17所述的方法,还包括图形描述信息的类别的步骤。
23、权利要求17所述的方法,还包括以下步骤:
(a)在一显示器上表示请求信息;以及
(b)通过把请求信息传送到另一用户来响应请求信息选择。
24、权利要求17所述的方法,还包括拖曳一个名片的考贝并将其投入另一位置以调用一个动作的步骤。
25、权利要求15所述的方法,还包括生成多个名片的步骤,所述多个名片被分成多个名片集,所述多个名片集由多个连到一个特定名片集中的一个名片卡的标记所划分。
26、权利要求15所述的方法,还包括在多个标记上显示一个图象的步骤,所述图象表示与多个标记相关联的信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 94115402 CN1107240A (zh) | 1994-08-02 | 1994-08-02 | 灵活的网络系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 94115402 CN1107240A (zh) | 1994-08-02 | 1994-08-02 | 灵活的网络系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1107240A true CN1107240A (zh) | 1995-08-23 |
Family
ID=5037472
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 94115402 Pending CN1107240A (zh) | 1994-08-02 | 1994-08-02 | 灵活的网络系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1107240A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1121659C (zh) * | 1997-09-19 | 2003-09-17 | 艾利森公司 | 更新通信设施数据的方法和设备 |
CN100353340C (zh) * | 2003-07-04 | 2007-12-05 | 中国科学院计算技术研究所 | 可定制的网络存储系统 |
CN101005519B (zh) * | 2001-04-18 | 2011-08-24 | 雅虎公司 | 个人网络名片的全球网络和隐私控制及其方法 |
-
1994
- 1994-08-02 CN CN 94115402 patent/CN1107240A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1121659C (zh) * | 1997-09-19 | 2003-09-17 | 艾利森公司 | 更新通信设施数据的方法和设备 |
CN101005519B (zh) * | 2001-04-18 | 2011-08-24 | 雅虎公司 | 个人网络名片的全球网络和隐私控制及其方法 |
CN100353340C (zh) * | 2003-07-04 | 2007-12-05 | 中国科学院计算技术研究所 | 可定制的网络存储系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1091536A (zh) | 面向目标的结构系统 | |
CN1171163C (zh) | 信息处理方法和装置 | |
CN1182467C (zh) | 可扩充的分布企业应用集成系统 | |
CN1110745C (zh) | 具有面向目标的打印接口的操作系统 | |
CN1285997C (zh) | 链接内容浏览支持装置及其方法 | |
CN1834908A (zh) | 用于将开发模式应用于基于组件的应用程序的系统和方法 | |
CN1745364A (zh) | 用于扩展应用程序首选项类的系统和方法 | |
CN1609792A (zh) | 计算机程序的编程接口 | |
CN1321275A (zh) | 与源代码控制系统交互的方法和设备 | |
CN1527222A (zh) | 任务计算 | |
CN1328668A (zh) | 用于指定网络上的位置的系统和处理 | |
CN1609794A (zh) | 用于计算机平台的编程接口 | |
CN1113396A (zh) | 储存器目标系统 | |
CN1609793A (zh) | 用于计算机平台的编程接口 | |
CN1703700A (zh) | 为了经同步的内容显示使网络接入点的关联小型端口协作的方法和装置 | |
CN1609795A (zh) | 用于计算机平台的编程接口 | |
CN1669018A (zh) | 手持终端框架系统 | |
CN1828517A (zh) | 文档处理装置和文档处理方法 | |
CN1578949A (zh) | 数据对象导向的储存系统 | |
CN1833240A (zh) | 维护包内部件之间的关系的方法和装置 | |
CN1302401A (zh) | 可视数据集成系统和方法 | |
CN1961304A (zh) | 交错文档的部件的方法和装置 | |
CN1692358A (zh) | 使用商业规则或用户角色而在环球网门户中选择小门户的方法和装置 | |
CN1795453A (zh) | 实时墨迹作图 | |
CN1703701A (zh) | 用于管理门户服务器中的门户构件集合的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C06 | Publication | ||
PB01 | Publication | ||
C01 | Deemed withdrawal of patent application (patent law 1993) | ||
WD01 | Invention patent application deemed withdrawn after publication |