包含有在二个目标之间进行数据传送的快照设施的目标管理设施的制作方法

文档序号:6405515阅读:162来源:国知局
专利名称:包含有在二个目标之间进行数据传送的快照设施的目标管理设施的制作方法
技术领域
本发明涉及到在计算机系统里的数据的传送。
来源不同的计算机应用(application)的数据文件之间,通常很难实现兼容。典型的情况是每一个计算机应用都独立于其它的计算机应用进行操作。一个计算机应用的数据可以有效地并入另一个应用的数据的情况是很少的。
有时,开发所谓的集成软件,因此,在某些应用之间,有一些数据兼容性问题。然而,如果计算机应用的数据不是集成软件包的一部分,则这些集成软件包不具有数据兼容性。
根据本发明的优选的实施方案,提出一种具有一个文件管理系统和多个目标(object)的一台计算机。该文件管理系统协调在目标之间的数据传送。通常一个目标被认为是一个实体,它包含一个或多个文件中的数据,并且包含有计算机可以执行的可执行代码,用以处理在文件中的数据。
在本发明的优选的实施方案中,文件管理系统包括多个应用程序、多个数据文件、多个类别数据结构和多个目标数据结构。每一个类别数据结构包括对多个应用程序里的一个应用程序的引用。每一个目标数据结构包括对多个类别数据结构中的一个类别数据结构的引用,和对多个数据文件中的至少一个数据文件的引用。
目标数据结构的使用,在计算机用户与数据文件之间增加了一层。这就允许计算机引用一个目标数据结构,并通过使用用户不可访问的标记(tag)访问有关的文件。用户引用一个以屏幕上的目标的物理地址为基础的目标。用户也可以给目标数据结构命名,这完全与该标记的值没有联系,例如,允许用户给同一目录中的二个目标以相同的名字。
另外,文件管理系统包括多个链接数据结构(Linkdatastructure),每一链接数据结构包括对多个目标数据结构中的第一个目标数据结构的引用,它用作链接的父目标,并且包括对多个目标数据结构中的第二个目标数据的引用,它用作链接的子目标。对每一个链接数据结构来说,子目标和父目标不必相同。
如下所述,可在子目标和父目标之间建立带有可视说明(view)的链接。一个用户对子目标指定一个要被显示的数据。该用户对父目标指明要显示的数据的一个地址。用户使文件管理系统把子目标和父目标链接起来,因此,链接数据结构包括标识链接数据结构的引用名(referencename)、对子目标的引用、对父目标的引用以及标识将被传送的数据的数据标识符(dataidentifier)。
按照由父目标发出请求,子目标和由父目标指定的地址中显示数据。该请求是通过父目标把引用名、数据将要被显示的地址以及对数据传送的请求发送到文件管理系统而实现的。父目标不标识子目标或数据标识符。对父目标来说,不一定要知道这些东西。
当文件管理系统收到来自父目标的请求时,它把一个数据传送的请求发送给子目标。这一请求包括数据将要被显示在那里的地址以及数据标识符。它不包括引用名或者父目标的标识。然后,子目标在指定的地址处显示该数据。
另外,当链接建立时,子目标可以建立一个快照(snapshop)目标。快照取代在指定的地址处显示数据的责任。当文件管理系统接收到来自父目标的请求时,它就把数据传送的请求发送到快照,而不是发送到子目标。然后,快照在指定的地址处显示数据。
本发明的一个优点是它允许用户利用第一个应用来访问来自第二个应用的数据。例如,一个单独的展开页(spredsheet)能够被链接到几个不同的文件夹,作为以字处理文档(document)中的表格使用,并且作为柱状图表的数据源使用。例如,从这些链接地址的任何一个开始,用户能够很容易地显示展开页,进行较完全的检查或对它进行修改。
使用快照的优点是通常情况下,当父目标从子目标那里请求数据时,与子目标相关的应用必须是活动的。对复杂的应用来说,这可能需要大的开销。如果使用快照,那末,与子目标相关的应用不必是活动的,而且,使用少量的开销就可以显示请求的数据。


图1是本发明的优选实施方案的一台计算机的方框图。
图2和2A是根据本发明的优选实施方案,说明目标、应用和数据文件之间关系的方框图。
图3表示本发明的优选实施方案的多个链接的目标。
图4表示本发明的优选的实施方案的一系列作为文件夹的目标,它们作为包含数据的目标的父亲。
图5说明本发明的优选的实施方案的由链接不同的目标引起的屏幕显示。
图6表示,为了建立图5所示的屏幕显示而链接的目标。
图7表示本发明的优选的实施方案,可以如何把三个目标链接在一起。
图8和图9说明本发明的优选的实施方案,可以如何拷贝目标。
图10和11说明,本发明的优选的实施方案的公共目标的拷贝。
图12到图71表示根据本发明的优选的实施方案,在用户操纵目标中出现在会话屏幕上的信息。还给出一些方框图,表示根据本发明的优选实施方案,出现于用户面前的目标是如何链接的。
图72是本发明的优选实施方案的目标管理设施(OMF)(ObjectManagementFacility)方框图。
图73表示HPOMF.CAT的组织的方框图,它是包含在OMF中的并在图72中示出的一个系统文件。
图74表示本发明的优选实施方案的一个全局父亲(globalparent)和多个全局目标(globalobject)之间的关系。
图75是一个方框图,它表示在图72中表示的OMF里面的系统文件,怎样访问图1所示的存储器中的数据文件和应用。
图76是在图75所示内存储器的组织的方框图。
图77和图78表示本发明的优选的实施方案的目标和链接。
图79是包含在OMF中的图72所示的一个系统文件HPOMF.XRF的组织的方框图。
图80表示本发明的优选实施方案的可视说明记录(viewspecificaationrecord)。
图81表示本发明的优选实施方案的快照的使用。
图82表示本发明的优选的实施方案中,没有快照时的可见说明的数据路径。
图83表示本发明的优选实施方案中,具有快照时的可见说明的数据路径。
图1表示一台计算机18,它具有监视器14,键盘19和鼠标20。计算机主存储器17的一个部分被箭头9表示应在计算机18里面。在计算机的主存储器17里有目标管理设施(OMF)100、应用101、应用102、应用103、应用104、应用105和应用106。
应用101到106中的每一个都存储着使用目标的数据。例如,在图2中,应用101被表示成已存贮有使用了目标202、目标203、目标204和目标205的数据。同样地,应用106被表示成具有在目标207、目标208、目标209和目标210中存储的数据。OMF100存储有指示了哪些目标和哪些应用相配合的信息。与一个应用相关的目标被认为是相同类型或相同类别的目标。例如,目标202、203、204和205是相同类别的,因为它们中的每一个与应用101相关。同样地,目标207、208、209和210是相同类别的,因为它们中的每一个与应用106相关。所有相同类别的目标使用相同的应用。当一个应用正由计算机18运行时,OMF100通知该应用为了取得数据,该应用应该访问哪一个目标。然后,那个目标被认为是活动的。当与目标相关联的应用不被计算机18运行时,或者当与目标相关联的应用正在运行但是不运行那个目标的数据时,那末,那个目标是不活动的。
利用消息,活动的目标可以相互通讯。例如,如果计算机18正在运行应用101的二个实例其一是用目标202的数据,而另一个实例是用目标203的数据,目标202和目标203都是活动的。因此,目标202可以把消息211发送到目标203。同样,如果计算机18正在以目标202的数据运行应用101,并且正在以目标207的数据运行应用106,那末,目标202和目标207都是活动的。因此,目标202可以发送消息212到目标207。
消息,例如消息211和212,可以被格式化,并被所有类型的目标发送和接收。这就允许在所有的活动目标之间自由通讯。这也允许新的目标类型被定义并且加到系统中去,而不需要为了使用新的类型而修改已有的目标类型。
每一个目标都与一组数据文件相关联。例如,目标210被表示成已经与数据文件221、数据文件222和数据文件223相关联。在数据文件221、222和223中的数据具有能够被应用106解释的格式。
每一个目标都与一个特性表相关联。每一个特性有一个名字和一个可通过指定名字进行访问的值。另外,每类目标都与一个特性表相关联,该特性表中的特性是该类别中所有目标的共同特性。例如,在图2A中,表示了目标205和应用101。目标205与特性231、特性232和特性233相关联。应用101与特性131、特性132和特性133相关联。
特性表能够包含任何数量的特性。每一个特性值可以从0到32762个字节长。特性被用于存储有关目标和类别的说明性信息,例如名字、注解等等。
目标可以引用其它的目标。这些引用被叫做链接(link)。链接是有方向的一个目标被叫做父亲,另一个目标被叫做儿子。每一个链接具有一个引用名,它是一个由父目标分配的数,用来标识它的每一个儿子。一个目标的所有的儿子,它的儿子的儿子,如此等等,都被称做为那个目标的子孙。同样地,目标的父亲,它的父亲的父亲,如此等等,都被称作为那个目标的祖先。在本发明的优选实施方案中,可以由用户操纵的一个目标能够具有零个或多个儿子以及一个或多个父亲。一个目标不允许成为它自己的子孙。
在图3中,有目标301、目标302、目标303、目标304、目标305、目标306、目标307、目标308和目标309。目标301-309具有带有引用名字的链接,这些引用名字都是数字,它们被表示在每一个链接旁的圆括号中。目标301具有一个到目标302的链接310,其引用名为“1”。目标301具有一个到目标303的链接311,其引用名字为“2”。目标302有一个到目标304的链接312,其引用名字为“7”。目标302有一个到目标305的链接313,其引用名字为“8”。目标303具有一个到目标306的链接314,其引用名为“1”。目标303还有一个到目标307的链接315,其引用名为“4”。目标304具有一个到目标308的链接316,其引用名字为“1”。目标305具有一个到目标308的链接317,其引用名为“7”。目标306具有一个到目标309的链接318,其引用名为“8”。目标307具有一个到目标306的链接319,其引用名为“9”。目标307还有一个到目标309的链接320,其引用名为“13”。目标308具有一个到目标309的链接321,其引用名为“1”。目标308还有一个到目标303的链接322,其引用名为“3”。
目标301是302和303的父亲。目标303是目标301和目标308的儿子。目标302-309中的每一个都是301的子孙。目标303的子孙是目标306、307、和309。目标309有祖先目标301-308。目标303有祖先301、302、304、305和308。如此等等。
活动目标能够动态地制造和删除与其它目标的链接。当与一个目标的链接被删除时,OMF100检查该目标是否有任何其它的父亲。如果没有,那末,OMF100通过删除该目标的数据文件并回收与该目标相关的其它存储空间,使该目标无效。
目标链接可以被用于各种目的。例如,文件夹可以呈目标的形式。用作为文件夹的目标的儿子可以是包含有与各种应用一起使用的数据的目标,或者该目标可以是其它的文件夹。图4表示作为文件夹使用的目标的例子。目标401(也称为文件夹401)、目标402(也可称为文件夹402)、目标403(也可称为文件夹403)和目标404(也可称为文件夹404)都被用作文件夹。文件夹401包括用于包含数据的目标405、用于包含数据的目标406、用于包含数据的目标407、和文件夹402。文件夹402包括用于包含数据的目标408、文件夹403和文件夹404。文件夹403包括用于包含数据的目标409和用于包含数据的目标410。文件夹404包括用于包含数据的目标411、用于包含数据的目标412和用于包含数据的目标413。
链接的更高级的用途是构成复合目标。例如在图5中,文挡510包括数行正文511、数行正文512、图形513、图形514和展开页515。如在图6中所示,正文和格式化的数据被存储在目标611、图形513的图形数据被存储在目标612、图形514的图形数据被存储在目标613,以及展开页数据515被存储在目标614。用于建立复合目标的链接始终有一些与该链接相关的数据传输种类,因此,也被叫做数据链接。图6中表示数据链接615、数据链接616和数据链接617。在文档510中,来自目标612、目标613和目标614的数据仅仅被显示,因此,数据链接614、数据链接615和数据链接616是可见数据链接。在可见数据链接中,父亲将发送请求到它的儿子,在父亲的窗口中显示数据。
在图7中,包含有第一展开页数据的目标701,通过数据链接704被链接到目标702,目标702包含有第二个展开页的数据,目标701通过数据链接705也被链接到目标703,目标703包含有第三个展开页的数据。第一个展开页使用第二个展开页和第三个展开页的数据。因为第一个展开页不仅仅显示第二个和第三个展开页的数据,所以,数据链接704和数据链接705被叫做传递数据的数据链接(data-passingdatalink)。
当目标被拷贝或被邮寄时,OMF100就做“簿记”工作。当一个目标被拷贝时,OMF100就制造与该目标相关联的数据文件的拷贝。如果被拷贝的目标有儿子,那末OMF100还制造该目标的子孙的拷贝,并且建立新目标之间的链接,把与原来结构相同的结构给予新的复合目标。
例如,图8表示图3中的目标308,以及目标308的子孙。当OMF制造目标308的拷贝时,OMF就拷贝目标308的每一个子孙,并且,这些链接如图8中所示。图9表示目标308的拷贝。目标308a是目标308的拷贝。目标303a是目标303的拷贝。目标306a是目标306的拷贝。目标307a是目标307的拷贝。目标309a是目标308的拷贝。链接321a是链接321的拷贝。链接322a是链接322的拷贝。链接314a是链接314的拷贝。链接315a是链接315的拷贝。链接318a是链接318的拷贝。链接319a是链接319的拷贝。链接320a是链接320的拷贝。
在该优选的实施方案中,当父亲被拷贝时,默认导致父亲的儿子被拷贝。然而,当儿子被指明为“公共的”时,它就不被拷贝。相反地,父亲的拷贝包括对儿子的一个链接。例如,在图10中,父目标161将被拷贝。通过链接163,父目标161被链接到子目标162。子目标162是公共的目标。如图11所示,父目标161的拷贝,导致新的目标161a通过新的链接163a被链接到目标162。目标161a是目标161的拷贝。链接163a是链接163的拷贝。
在图12到图71中,说明目标怎样在监视器14上显示给用户。在图12中表示的是“NewWaveOffice”的台式计算机,它包括标有下列名称的图象“FileDrawer”(文件抽屉)、“WasteBasket”(废物筐)、“Diagnostic”(诊断)、“Printers”(打印机)、“Star”(五角星)、和“MyFolder”(我的文件夹)。用户(没有被指明)已使用键盘19或鼠标20来操纵光标781,以选择“MyFolder”。
图13说明显示在监视器14上的目标是怎样链接的。NewWareOffice(被表示为目标700)是链接711链接的“FileDrawer”(被称做为目标701)、链接712链接的“WasteBasket”(被称作为目标702)、链接713链接的“Diagnostic”(被称做目标703)、链接714链接的“Printers”(被称做目标704)、链接715链接的,“MyFolder”(被称做目标705)和链接716链接的“Star”(被称作目标706)的父亲。
在图14中,用户使用光标781已经在下拉菜单782中选择了“CreateaNew…”。作为这一选择的结果,对话框779出现了,如图15所示。使用光标781,用户已经使图象“Layout”增辉,并且使用键盘19已经键入了名字“PasteUp”,作为将要被建立的新的目标的名字。光标781现在指示到一个标有“OK”的区域。一旦这一区域被选择,标明为“PasteUp”的新的目标就被建立,如在图16中所示的那样。
在图17中,“PasteUp”称作为目标707,它通过链接717被链接为NewWareOffice的儿子。
基本的记录夹(Clipbood)操作是Cut(剪下)、Copy(拷贝)和Paste(粘接)。用户必须选择好要被移动和拷贝的数据。然后,使用Cut命令或Copy命令。Cut把选择的数据移动到指定的记录夹(同时把它从它的原来位置删除掉)。Copy在指定记录夹处形成所选择的数据的拷贝。然后,用户必须选择他将要把该数据拷贝到或移动到的地址,并且给出Paste(粘接)命令。这一条命令把记录夹的这些内容拷贝到选择的地址处。
在图18中,用户已经选择了“PasteUp”。这是通过使用逆影象显示“PasteUp”的图象来表示这一选择的。使用光标781,用户从下拉菜单783中选择“Copy”。在图18A中,Clipboard目标720被表示成通过链接721链接的目标708的父亲。目标708是目标707(“PasteUp”)的拷贝。
如在图19中所示,用户下一次从下拉菜单783选择“Paste”。结果(如图20所示)增加了目标708(由光标781指示出),它是原来的“PasteUp”目标707的拷贝。
在图21中,新的目标被表示成目标708,它通过链接718被链接为NewWaveOffice的儿子。
在图22中,使用光标781,通过对“MyFlder”图象的二次“卡塔”声,已经打开了“MyFolder”。结果,新的窗口755表示“MyFolder”。
在图23中,使用光标781,“PasteUp”(目标708)被表示成正在移到窗口785。在图24中,该过程结束,并且“PasetUp”(目标708)现在是在窗口“Myfolder”中。在图25中,“PasteUp”,称作为目标708,它现在是通过链接728链接的“MyFolder”的儿子。
通过使用Share(共享)命令,用户可以建立多个链接。这条命令是记录夹隐喻(clipboardmetaphor)的扩充,这在今天的软件包中,在系统内移动和拷贝数据方面是通用的。该记录夹是系统用来容纳在传送中的数据的专用缓冲区。
在一种情况下,Share命令的操作类似于前述的Cut或Copy命令。即使用Share、Cut或者Copy,用户首先选择一些数据,然后给出Share命令,这就导致这些数据被存放在记录夹中。然而,在Share命令的情况下,放在记录夹中的不是实际的数据,也不是实际数据的拷贝,而是一个对所选择的数据的链接。当这一链接被粘接上时,在原数据和该粘接地址之间就取得了永久连接。通过使用OMF100,这一链接由被涉及的各应用所使用,使得对原来数据的访问容易(在它的全部应用中),并在原数据被修改时,它也自动修改。
在图26中,NewWaveOffice窗口已经被激活。“PasteUp”(目标707)已经被选择,被表示为逆影象的“PasteUp”(目标707),以便看起来明显。使用光标781,选择菜单783中的“Share”。在图26A中,Clipboard目标720被表示为是通过链接722链接的“PasteUp”目标707的父亲。
在图27中,窗口785已经被激活。从菜单787,选择“Paste”。其结果(如图28中所示)是图象707a出现在窗口785中,它表示“PasteUp”(目标707)被窗口785以及NewWaveOffice窗口所共享。在图28A中,作为该粘接的结果,“PasteUp”现被表示为既是由链接722链接的Clipboard720的儿子,又是由链接727链接的“MyFolder”705的儿子。在图29中,所示的是用户可见目标的相互之间的连接,“PasteUp”(目标707)被表示为是通过链接727链接的“MyFolder”705的儿子。因为“PasteUp”(目标707)是共享的,所以没有被拷贝,“PasteUp”(目标707)仍然是通过链接717链接的NewWaveOffice的儿子。
数据链接的一个关键特征是自动的数据传输。当一个子目标打开,并且用户改变它“被共享”的一部分时,它就调用OMF100。OMF100就检查是否有任何的该目标的父亲“照管”这个特殊的改变。如果它们照管而且如果它们也是打开的,那末,OMF100就发送给父亲一条消息,通知它们新的数据是可用的。然后,父亲能够把消息发送给儿子,以产生或显示该数据。这一特征允许用户建立带有复杂的数据相关性质的复合目标,然后,对任何一个分部进行的改变将被自动地反映在其它部分中。例如,改变在展开页中的一个数就能够导致重新画图,并且被修改成以文档为依据的图形。而且,因为一个目标能够有许多父亲。所以,单个的目标能够被用作任何数量的其它目标的“锅炉挡板(boilerPlate)”。在锅炉挡板中的改变都将被反应到所有与它链接的目标中去。自动数据传输将在后面讨论。
在图30中,“MyFolder”的窗口785已经关闭。在图31中,光标781被用于从下拉菜单782中选择“CreateaNew…”。作为这一选择的结果,对话框779出现,如图32所示,使用光标781,对图象HPText增辉,使用键盘19键入名字“SampleText”,它作为将要建立的新目标的名字。现在光标781指向标有“OK”的区域。一旦这一区域被选择,名字为“SampleText”的新目标就被建立,如在图33所示。
在图34中,“SampleText”(目标709)被表示成是通过链接719链接的NewWaveOffice的儿子。在图34中,因为“Myfolder”已经关闭,所以“PasteUp”(目标708)、链接728和链接727没有示出。然而,这些东西仍然存在,但是对用户来说,当时是看不见的。
在图35中,光标781放在图象“SampleText”上,并且“卡嗒、卡嗒”二次按动在鼠标20上的按钮,导致“SampleText”打开。在图36中,示出为“Sampletext”打开一个窗口789。
在图37中,“PasteUp”(目标707)的窗口791已经打开,这是通过在“PasteUp”图象上二次按动鼠标按钮实现的。在图38中,使用光标781,用鼠标20控制,“SampleText”的正文的一部分790已经被选择。以逆图像表达“NweWaveOfficeenvironment”的那一部分就是790部分。
在图39中,使用光标781,在下拉菜单792中选择“Share”选择项。在图40中,使用光标781,选择在窗口791中的一个区域793。在图41中,使用光标781,从下拉菜单794中选择“Paste”选择项。在图42中,“SampleText”被链接到“PasteUp”(目标707),并且可显示的正文790被显示在“PasteUp”窗口791中。在图43中,“Sampletext”(目标709)被表示成是通过链接729链接的“PasteUp”(目标707)的儿子。在图42中,可显示的正文790被显示成灰色,这是因为“Star”窗口789是打开的。在图44中,“Star”窗口被关闭,所以可显示的正文790被清楚地显示出来。
在图45中,用光标781选择窗口791的一个区域795。图46表示用光标781移动图象“Star”进入窗口791的区域795。
在图47中,来自“Star”(目标706)的数据现在被显示在窗口791的区域795中。如在图48中所看到的“Star”(目标706)现在是通过链接726链接的“PasteUp”(目标707)的儿子。
在图49中,用户已经把光标781放在窗口791的区域795上,并且二次按动鼠标20的按钮。其结果是在窗口796中打开和显示“Star”(目标706)。图50表示使用光标781来选择菜单窗口797中的“Ellipse”,它使得在“Star”(目标706)里的数据从五角星(Star)改变成椭圆(ellipse)。如在图51中所示,其结果是既改变了在窗口796中显示的数据,也改变了在窗口791的区域795中显示的数据。
在图52中,用光标781定义窗口791中的一个区域797。在图53中,光标781被用于在下拉菜单798中选择“CreateaNew…”选择项。这一选择的结果是对话框799出现在图54中。对话框799包含可用的两种类别目标的图象,它们能够在窗口791的区域797中显示数据。使用光标781,对图象“HPShape”增辉。使用键19,名字“NewShape”被打入,它作为要建立的新目标的名字。光标781现在指向标有“OK”的区域。一旦这个区域被选择,以“NewShape”命名的新目标就被建立。“NewShape”的数据显示于窗口791的区域797中,如图55所示。在图56中,“NewShape”(目标750)表示成是通过链接760链接的“PasteUp”(目标707)的儿子。
在图57中,把光标781置于窗口791的区域797上,并且把鼠标20的按钮按动二次,打开了“NewShape”的窗口800。在图58中,用光标781从下拉菜单801中选择“Triangle”选择项。其结果,一个三角形现在既显示在窗口800中,也显示在窗口791的区域797中,如图59所示。
在图60中,窗口800已经被关闭。在图61中,把光标781放在窗口796的区域797上,并且按动鼠标20的按钮,就选择了“NewShape”。在图62中,用光标781从下拉菜单794中选择“Share”选择项。在图63中,用光标781选择窗口791的区域802。在图64中,用光标781从下拉菜单794选择“Paste”选择项。其结果是具有被显示在窗口791的区域797和区域802的“NewShape”数据的“NewShape”的共享,如图65所示。在图66中,表示“NewShape”(目标750)有一个附加的链接770,它来自它的父亲“PasteUp”(目标707)。
在图67中,用光标781选择区域797。然后,光标781用于从下拉菜单794选择“Cut”选择项。其结果是区域797已经从窗口791移走,如图68所示。在图69中,光标781用于从下拉菜单781中选择“Paste”选择项。其结果是光标781指向到“NewShape”的图象,如图70所示。在图71中,“NewShape”(目标750)表示成是通过链接780的NewWaveOffice(目标700)的儿子。
在图72中,OMF100被表示成包含七个系统文件系统文件601、系统文件602、系统文件603、系统文件604、系统文件605、系统文件606和系统文件607。OMF接口599用作OMF与在计算机18上运行的其他程序的接口。系统文件601-607用作提供各种不同信息的数据库。它们提供有关目标特性的信息,例如每一目标的类别、每一目标的名字。系统文件601-607提供有关目标的类别信息,例如,与每类目标相关的应用,表示特定类别目标的图象,以及消息能够被特定类别目标处理的消息表(如图2所示)。系统文件601-607还包含在父和子目标之间有关链接的信息,其中包括父亲和来自每个目标的父亲的每一个链接的引用名字的列表;儿子和对每一个目标的儿子的每一个链接的引用名字的列表;以及用来管理在数据链接间进行数据交换的附加信息。另外,系统文件601-607包含通用的信息,例如,在操作系统中,对于已安装的每一个类别,安装了什么文件,以及当OMF100被重新启动时,哪些目标已经请求自动重新启动。
在本发明的优选实施方案中,系统文件601被称做为HPOMF.CAT,系统文件602被称做为HPOMF.CLS,系统文件603被称做HPOMF.XRF,系统文件604被称作为HPOMF.PRP,系统文件605被称做HPOMF.INS,系统文件606被称做为HPOMF.SDF,系统文件607被称做为HPOMFICO.NWE。现在,我们对每一系统文件进行描述系统文件601,即HPOMF.CAT,也叫做SYSCAT.HPOMF.CAT是系统中全部现存目标的一个目录。在图73中,HPOMF.CAT被表示成是面向记录的。HPOMF.CAT有多个文件记录。在图73里,只表示了文件记录0到文件记录8,尽管HPOMF.CAT可以包含比在图73所示更多的文件记录。文件记录0是一个头部,它包括各种特征(Signature),用于管理空文件记录的列表。特征是一些已知的值,如果存在,它指示该文件是没有毛病的。文件记录1到文件记录8和附加的文件记录(没有表示出来),或者定义现存目标,或者是空的。在本优选的实施方案中,当需要更多的文件记录时,HPOMF.CAT能够动态地增长,但是,不能够收缩。
文件记录1定义了一个被叫做全局父亲的特定目标。全局父亲具有不同于任何其它目标的形式,可以认为是一个“伪”目标。图74表示的该全局父亲是通过链接260链接的全局目标250的父亲、通过链接261链接的全局目标251的父亲、通过链接262链接的全局目标252的父亲、通过链接263链接的全局目标253的父亲。通过链接264链接的全局目标254的父亲和通过链接265链接的全局目标255的父亲,如在图所示。全局目标250-255也在HPOMF.CAT内。250-255中的每一个全局目标可以是HPOMF.CAT内的一个或多个目标的父亲。在HPOMFCAT内的不是全局目标的每个目标都是全局目标的子孙。虽然图74只示出六个全局目标,但是,操作在系统中的全局目标的数量是系统配置的问题。利用全局父亲链接全局目标的链接的引用名字,系统中的任何一个目标能够引用该全局目标。
如在图73中所看到的,HPOMF.CAT中的文件记录是连续编号的。这些编号称做标记(tag),它们标识每一个目标。
在本发明的该优选实施方案中,每一个记录是128个字节长。文件记录0中的各个字段列于下面的表1中表11FirstFreeEntry包含在HPOMF.CAT中的第一个空记录的记录号;
如果没有空记录,则为“0”。
Fileid包含空结束串(nullterminatedstring)“HPOMFCAT”。它用作特征(Signature)。
Version包含文件格式版本号,它也用作特征。
1MaxRecordNumber包含来自“HPOMF.CAT”里面的从未分配的最高记录号(这个最高记录可以或不可以是空的)。
下面,表2包含了HPOMF.CAT中的文件记录的字段,并且只用于与文件记录0不同的文件记录表21FirstFreeEntry如果这一记录定义一个目标,那末就是“-1”,否则,这一记录是空的,并且这一字段是下一个空记录的记录号,或者,如果没有另外的空记录,则为“0”。如果该记录是空的,那末记录中的其它字段就没有意义。
TypeInClass指定这一目标的类别。它是指明目标属于那一类别的HPOMF.CLS中的记录号(请参考前面有关类别的讨论)。
SysCatFlags如果在这个字节中,由数20(十六进制)屏蔽的位被设置,那末,此字段指定该目标是否是全局的。
在优选的实施方案中,所有其它位的位置必须包含“0”并且不被使用。
Properties指明特性(Property)的数目、特性名字的长度以及在目标的特性的HPOMF.PRP中的地址。请参考下面对HPOMF.PRR的描述,它是对这一字段的结构进行的进一步定义。
fastprops某些目标特性,例如名字,因为要经常地访问它,所以,它们就被直接存储这个字段中,而不是间接地储存在特性文件中。存储在这一字段中的特性被叫做“快速特性”。
系统文件602,即HPOMF.CLS,也被叫做SYSCLASS。这个系统文件是在系统中所有安装好的类别的列表。它是面向记录的。编号为0的第一个记录是头部,它包含各种特征(见前),并且被用于管理空记录的列表。所有其它的记录,或者定义安装的类别,或者是空的。在优选的实施方案中,HPOMF.CLS能够动态地增长,但不能收缩。
在HPOMF.CLS中的每一个文件记录是32字节长。HPOMF.CLS文件记录0(头部)包含下面的表3所列出的字段表31FirstFreeEnntry包含HPOMF.CLS中的第一个空记录的记录号,如果没有空记录,则为“0”。
FileId包含空结束串“HPOMF.CLS”。
Version包含文件格式的版本号。
1MaxRecordNumber包含来自HPOMF.CLS里的从未分配的最高记录号(这一最高记录可以是也可以不是空的)。
下面的表4包含了HPOMF.CLS中的文件记录的字段,并且只用于与文件记录0不同的文件记录表41FirstFreeEntry如果这一记录定义一个已安装的类别,那末是“-1”,否则,这一记录是空的,并且这个字段是下一个空记录的记录号。或者为“0”,如果没有更多的空记录的话。若该记录是空的,则该记录中的其它字段就没有意义。
ModuleFileName指定与这个类别的目标相关的应用的名字为空结束串。
Properties指定特性个数、特性名字的长度以及在目标的特性的HPOMF.PRP中的地址。请参考下面对HPOMF.
PRP的描述,它是对这一字段的结构的进一步定义。
在图75中,示出了HPOMF.CAT和HPOMF.CLS之间的关系。在HPOMF.CAT里面的每一目标项(objectentry)中,作为目标标记的记录号,称作与该目标相关的大容量存储器170中的数据文件的标识符650。字段“TypeInClass”称作在HPOMF.CLS中的类别项(Classentry)的标识符651,它标识每一目标的类别。在HPOMF.CLS中的每一类别项中,字段“ModuleFileName”用作与该类别相关的大容量(海量)存储器170中的应用文件的标识符652。
在图76中,示出大容量存储器170的部分组织。根目录660包含指向HPNWDATA目录661和HPNWPROG目录668的指针。HPNWPROG目录668是用箭头669表示的应用文件的存储器地址。HPNWDATA包含着用目录662、663、664、665和666表示的多个HPOMFddd目录。在HPOMFddd目录中存储着与目标相关的数据文件。HPOMFddd中的“ddd”代表三个数字(带有引导零)的十六进制数。每一个HPOMFddd目录具有不同的“ddd”十六进制数。“ddd”编号指示出哪个HPOMFddd目录为特定目标存贮数据文件。特定目标的数据文件被存贮在HPOMFddd目录中,该目录具有“ddd”编号,“ddd”编号等于被一个整数(即54)除的目标的标记。在每一个HPOMFddd目录里,按标记数存储文件,即数据文件名具有格式xxxxxxxx.lll,这里,“xxxxxxxx”是有引导零的八个数字的十六进制数的标记,而“lll”是由应用所选择的引用。
系统文件603,即HPOMF.XRF也被称作为SYSXREF。这一文件是存在于系统中的所有链接的列表。它是面向记录的,但是没有头部记录。每一个记录文件或者是空的,或者定义一个现存的链接,或者被用作为来自前面记录的溢出记录,用以指明附加的可视说明信息。包含可视说明信息的记录被叫做可视说明(viewspecifications)文件记录。可视说明文件记录只能够用规定了一个现存数据链接的前一记录来标识;可视说明文件记录不能够用可视说明文件记录的内容来标识。HPOMF.XRF的大小一次增加16K字节。HPOMF.XRF的新分配的部分用零填满。HPOMF.XRF中空的或者定义了一个链接的文件记录具有如下表5所列出的字段;
表5ParentTag包含这一链接的父目标的标记(HPOMF.CAT记录号)。
如果这个字段是0,则这个记录没定义链接,是空的。
ChildTag 包含这一链接的子目标的标记。如果在这一记录中的ParentTag是0,并且这个字段也是0,那末,在HPOMF.XRF中,在这一记录以后,就没有记录定义链接。
RefName包含父亲已经分配给链接的引用名。如果ParentTag或ChildTag是零,那末这个字段没有意义。否则,如果这一值的最前面的三位是110,则在该文件中的下一记录就是可视说明。
含有可视说明文件记录的HPOMF.XRF中的文件记录具有下列表5A中列出的字段表5ADataId包含该儿子已经赋给的值,用以标识它本身的部分,它通过该链接是可视的。
Snapshop包含可视说明快照目标的标记(HPOMF.CAT的记录号),或者,如果是零,那末可视说明没有快照。
关于快照的进一步讨论,请见下文。
Misc由下面所述的几个位字段(bitfield)所组成VS_NEWDATASET如果儿子已经告诉OMF新的数据是可用的,但是没有通知其父亲,则置1。十六进制数80000000是指示哪些位被用于这些位字段的屏蔽。
VS_NEWDATAANNOUNCED如果儿子已经告诉OMF新的数据已通知父亲,但是,因为父亲是不活动的,因而没有通知到,那末就置1。十六进制数40000000是指示哪些位被用于这一位字段的屏蔽。
VS_SNAPSHOTOLD如果儿子已经告诉OMF,可视说明的快照已经过时,那末就置1。十六进制数20000000是指示哪些位被用于这一位字段的屏蔽。
VS_WANTMESSAGES如果儿子已经告诉OMF,它要在快照过时的时候处理可视说明消息,那末就置1。十六进制数10000000是指示哪些位被用于这一位字段的屏蔽。
VS_TEXTDISKLOC在HPOMF.PRF中文件位置,可视说明的32个字符的正文数据ID被放在那里。如果儿子设有定义正文数据ID,那末,它就含有零。文件位置的低位的五位总是零,所以就不存储在Misc字段中。十六进制数OFFFFFEO是指示哪些位被用于这一位字段的屏蔽。
VS_INITIALIZED如果可视说明已经被初始化,那末就置1。如果是干净的,那末,在可视说明中的所有信息都是零。十六进制数00000010是指示哪些位被用于这一位字段的屏蔽。
VS_RESERVED为将来扩充而保留。十六进制数00000008是指示哪些位被用于这一位字段的屏蔽。
VS_VIEWCLASS指明儿子分配给该可视说明的可视类别。可视类别定义什么样的可视方法对父亲是可用的。十六进制数00000007是指示哪些位被用于这一位字段的屏蔽。
例如,在图77中,目标671是文件夹,其标记为“6”。目标671是链接674所链接的目标672的父亲,也是链接675所链接的目标673的父亲。目标672的标记是“12”。链接674的引用名为“1”。目标673的标记为“19”。链接675的引用名为“7”。引用名由父目标选择,并且,对特定的父目标来说,必需是独一的;然而,其它的父亲可以有与此相同的引用名,假如每一个引用名对每一个父亲来说是独一的话。
图79表示HPOMF.XRF603的方框图。HPOMF.XRF包含有父亲和儿子之间每一链接的项。在HPOMF.XRF603中,栏目731包含每一个链接的父亲的标记。栏目732包含每一个链接的儿子的标记。栏目733包含每一个链接的引用名。栏目733的头三位处,如图79所示,是子栏目734,它指明或者有可视说明文件记录存在(“110”),或者没有可视说明文件记录跟随(“000”),或者该链接是一个从全局父亲到全局目标的链接(“110”)。
如图所示,项735是一个描述在图77中所示的链接674的项。即在项735里的栏目731中有父亲标记“6”,在栏目732中有儿子标记“12”,而在栏目733中有引用名“1”。因为目标671是文件夹,所以没有可视说明,因此,在子栏目734里面的三位应该是“000”。
同样,项736是描述图77中所示的链接675的项。即在项736里的栏目731中有父亲标记“6”,栏目732中有儿子标记“19”,在栏目733中有引用名“7”。因为目标671是文件夹,所以没有可视说明,因此,在子栏目734里面的三位将是“000”。
在图78中,目标676是文档,标记为“17”。目标676是链接679链接的目标677的父亲,也是链接680链接的目标678的父亲。目标677的标记为“8”。链接679的引用名为“1”。目标678的标记为“21”。链接680的引用名为“3”。
在图79中,项737描述图78中所示的链接679。即在项737里的栏目731中有父亲标记“17”,栏目732中有儿子标记“8”,栏目733中有引用名“1”。目标676是文档,假定有一个与链接679相关的可视说明,那末,在子栏目734里的三位包含“110”,而且,项738是可视说明记录。
同样,项739描述图78中所示的链接680。即在项739里的栏目731中有父亲标记“17”,栏目732中有儿子标记“21”,而在栏目733中有引用名“3”。假定有一个与链接680相关的可视说明,那末子栏目734里的三位包含“110”,并且,项740是可视说明记录。
在图80中,可视说明记录740被表示成包括包含可视说明的数据标识的字段741,指示是否有在可视说明中使用的快照的字段742,以及包含关于该可视说明的其它信息的字段743。该链接的子目标使用该数据标识编号,用以确定什么数据通过该链接发送。
图37-43表示具有可视说明的一个链接的建立过程。如前面已经讨论过的,在图37中,“PasteUp”(目标707)的窗口791已经被打开,这是通过在“PasteUp”的图象位置时的二次“卡嗒”打开的。在图38中,使用光标781,通过鼠标20控制,已经选择“SampleTest”的正文部分790逆图象的“NewWaveOfficeevironment”部分就是部分790。
在图39中,用光标781在下拉菜单792中选择“Share”选择项。一旦“Share”被选择,子目标709(“SampleText”)建立一个数据标识编号,它标识正文部分790到子目标709。子目标709也使得OMF100把一个链接放到记录夹720上的子目标709-子目标709通过附录B列出的命令与OMF100通讯,附带说到这里-。子目标709还通知OMF100什么数据标识编号是与在子目标709和文件夹720之间的新的链接相结合的。如果有一个与该链接相关的快照,那末,儿子709也将通知OMF100是否有一个与该链接相关的快照。快照在下面要较全面地讨论。结果,OMF100将为文件夹720和子目标709之间的链接在HPOMF.XRF603中制造一个项。该链接的可视说明记录将包括由儿子709给予OMF100的数据标识编号。
在图40中,用光标781,选择了窗口791中的区域793。在图41中,使用光标781从下拉菜单选择“Paste”选择项。这时,父目标707(“PasteUp”)向OMF100请求取得一个链接,使得父亲的有关信息是在文件夹720上。拷贝文件夹720和儿子709之间的可见说明记录,这是为了在父亲707和儿子709之间的链接729。在图43中,“SampleText”(目标709)被表示成是链接709所链接的“PasteUp”(目标707)的儿子。
在图42中,可显示的正文790显示在“PasteUp”窗口791中。在这一过程中,父目标707调用OMF100,请求把一条消息发送到由链接729的引用名所标识的目标。这一消息请求子目标709把来自这一链接的数据显示到由父目标707所指明的地址。OMF100从父亲707那里取得消息,加上来自链接729的可见说明记录的数据标识编号,并且把该消息传送到儿子709。儿子709把该数据显示在指定地址处,在这里即是区域793。从父亲707发送到OMF100和发送到儿子709的消息的名字是“D±SPLAY_VIEW”,有关的进一步的说明在附录B中,附带说这一句。
在附录B中还描述了另一条消息“PRINT_SLAVE”,当需要在打印机上打印数据,而不在终端屏幕上显示数据时,可以使用它。
另外,父亲707可以把“GET_SIZE”消息发送到子目标709。在“GET_SIZE”消息中,父目标707为链接729标识一个引用名,并指出显示的坐标。OMF100从父亲707那里取得GET_SIZE消息,加上数据标识编号(它来自链接729的可见说明记录),并且把该消息传送到儿子709。儿子709把它将用于显示数据的指定区域部分的大小回送给父亲707。当儿子709不能够换算该数据以适合由父亲707指定的区域时,这就允许父亲707修改为显示来自儿子709的数据而保留的区域。
当父目标正在显示来自子目标的数据时,以及子目标改变该显示数据时,子目标就通告OMF100,在数据目标中已经有过修改。例如,如前面所描述的,在图47中,来自“star”(目标706)的数据现在显示于窗口791的区域795。并且,如图48中所示,“star”(目标706)是链接726所链接的“PasteUp”(目标707)的儿子。因为数据正在从子目标706传送到父目标707,所以链接726是一个包括可视说明的数据链接。
在图49中,示出了改变了目标706数据的方法。用户把光标781放在窗口791的区域795,并二次按动鼠标20的按钮。结果是在窗口796中打开和显示“star”(目标706)。用光标781,在菜单窗口797中选择“Ellipse”选择项,导致在“star”(目标706)里的数据,由五角星变成椭圆。如图51所示,其结果是既改变了在窗口796中显示的数据,又改变了在窗口791的区域795中显示的数据。
子目标706通过调用OMF100,说明与链接726相关的数据标识编号相结合的数据被改变,来完成这一修改。OMF100检查所有的使用该数据标识编号的链接。如果任何链接的父目标不活动,OMF100就把HPOMF.XRF中的那个链接的VS_NEWDATANNOUNCED位设置1。当该父目标被激活时,父目标就能够请求新的数据。
如果父目标是活动的,那末,OMF100交发送一条消息到父目标,说明新的数据是可用的。OMF100将对该父目标区分存在附加数据的链路的引用名。父目标把一条消息发送给子目标,如果它要新的显示数据的话。在现在的情况下,父目标707是活动的,并且已经请求新的数据显示窗口791的区域795中。关于可视说明的进一步的描述,在附录B、C和D中可以找到。
本发明的优点是父目标707能够通过OMF100与子目标706通讯,父目标707或者子目标706不用知道该标识或任何其它的互相之间的详细情况。父目标仅使用了链接的引用名来区别链接。子目标只使用链接的数据标识编号来标识链接。OMF100做所有的翻译和标识工作哪些链接以及哪些目标被涉及到了。
系统文件604,即HPOMF.PRP,也被叫做SYSPROP。HPOMF.PRP包含所有的目标和类别特性,除了被包含在HPOMF.CAT中的快速目标特性以外。在系统文件601(HPOMF.CAT)和系统文件602(HPOMF.CLS)中的每一个记录都有特性字段,如前面所述。每一个特性字段包含有下面表6中说明的字段表6DirDiskLoc包含在特性表目录的HPOMF.PRP里面的位置(字节偏差)。
nProps包含在特性表中的特性的个数。这是在下面描述的目录项数组中的项数。PoolSize包含在特性表中的所有的特性的名字的组合长度,包括每一个名字的空结束字节。这是在下面描述的目录名字池(directorynamepool)的大小。
对每一个目标和每一种类别,在HPOMF.PRP文件中的DirDiskLoc位置处,是那个目标或那种类别的特性目录。该目录有二个主要的部分项数组,以及后面跟随的各字池(namepool)。特性表中的每一个特性,项数组都具有一项。每一项都有在下面表7中表示的字段表7ValueLen规定相关特性的以字节计算的长度,这可以是零。
ValueDiskLoe包含相关特性值在HPOMF.PRP中的位置。如果ValueLen是零,那末这也是零,并且在任何地方都没有存储值。
CacheOffset这一字段只用在运行的时候,所以在该文件中是没有意义的。
直接跟在项数组后面的是名字池。HPOMF.PRP的这个部分,包含特性表中的特性的空结束(nullterminated)的名字,并且与项数组的顺序相同。特性可包括这样一些内容,如标题、用户注解、建立的日期和时间、建立该目标的用户,等等。关于特性的更详细的信息,请参见附录D。
HPOMF.PRP按需要动态地增长。在HPOMF.PRP的开始处,有128个字节的位图(bitmap),它控制HPOMF.PRP的头1024页的分配。每一页是32个字节长,这些页直接跟在位图的后面。位图是一种字的阵列、首先使用的每个字的最有效位。因此,位图的第一个字的位15到0分别控制该文件的页0到15的分配。
当头1024页中的存储器不够用时,第二个位图被加到文件的页1023后面。这个位图控制在第二个位图后面的页1024到2047的分配。当需要时,按相同的办法增加附加位图和页。
每一目录和特性值作为文件中的一个单独的块进行存储,即作为连续运行的页,这些页全都被分配在相同的位图中。这就导致这样的限制目录或者值都不能超过32K字节(1024×32)长。
系统文件605,即HPOMF.INS又被称做为SYSINSTL。HPOMF.INS包含有当每一类别被安装时拷贝到系统中的文件列表。这一信息被使用,以便当该类别被解除安装时能够删除这些文件。
HPOMF.INS的最开始处是用作为有效性/版本的标识符的二个字的值。在本优选的实施方案中,这二个字的值必须是0101ABCD(十六进制),且是有效的。在表8中所示,这个数被存储,原因是由优选的实施方案所使用的特定的处理机的存储规程,即由英特尔公司(IntelCorporation)制造的80286微处理机的存储规程。
在这二个字后面的是一系列的可变长度的记录。每个安装的类别都有一个记录。每个记录的第一个字是以字节计算的该记录的剩余部分的长度。其后跟随安装的类别的空结束类别名。然后,跟随的是拷贝到IMF目录的文件的文件名字。每一名字用空字节结束,并且由一个表示该文件名长度的字节先导,包括长度字节和空结束符。如果文件名由专用字符“*”开始,那末就假定该文件将被放在HPNWPROG目录中。如果该文件名由专用字符“+”开始,那末,就假定该文件将被放在HPNWDATA目录中。
例如,假定安装二种类别类别“AB”和类别“CDE”。类别“AB”导致安装二个文件“Z”被放到HPNWPROG目录668,而“YY”放到HPNWDATA目录。类别“CDE”导致安装一个文件“XXX”放到HPNWPROG668。下面给出的表8表示这个例子的HPOMF.INS的内容。
表8偏差内容解释0CDAB0101文件头/版本检查4oc00AB记录的长度(+进制数12)6414200“AB”+Null904(长度字节+“*Z”+Null)的长度。
A2A5A00“*Z”+NullD05(长度字节+“+YY”+Null)的长度。
E2B595900“+YY”+Null。
120A00CDE记录的长度(十进制数10)。
1443444500“CDE”+Null。
1806(长度字节+“*XXX”+Null)的长度。
192A585800“*XXX”+Null系统文件666,即HPOMF.SDF又叫做“关闭文件(shutdounfile)。HPOMF.SDF仅存在于系统已经彻底地关闭的时候,当系统启动时,它被删除,当系统关闭时创建立。在启动时,如果这个文件丢失了,那末OFM假定最后一次会话的结束是不正常,所以它就经过它的垮台恢复过程(erashrecoveryprocedure),尽可能地使得系统文件有效和修复系统文件。系统文件可能是有毛病然而是可以断定的垮台时的状态。不要用户干涉就能够纠正这些错误。某些其它类型的文件相容性错误可能被检测到,但是,实际上不可能来自“原来的”系统垮台。通常,这些错误是不可能纠正的,而且OMF将不允许系统发生这种情况。
如果HPOMF.SDF出现,它包含目标的列表。当系统在正常关闭时,这时活动的每一个目标能够请求OMF在系统被重新启动时再启动它们。该目标的列表是已经请求的目标标记的列表,当系统被重新启动时,它们被重新启动。
HPOMF.SDF中的第一个字是标志字。如果这个字为非零,OMF将执行它的垮台恢复代码,即使HPOMF.SDF存在也如此。如果一些严重的错误发生在正在结束的会话中,那末当产生该文件时,正常关闭也将设置这一标志。
在第一个字的后面,该文件的剩余部分是一个三字节记录的序列。每个记录的头二个字节包含将要被恢复的目标的标记。第一个字节是最无意义的。在本优选的实施方案中,第三个字节没有被使用,所以是零。
例如,如果系统在最后一次会话时正常关机,并且有二个目标(它们分别具有标记2和7),已经请求启动,HPOMF.SDF的内容将被设置成如下所示的表9
表9偏差内容注解00000表示不需要垮台恢复。
20200要重新启动的第一个目标的标记。
400没有被使用,保留。
50700要重新启动的第二个目标的标记。
700没有被使用,保留。
系统文件7,即HPOMFICO.NWE是一个微软件窗口的动态库的可执行文件,它包含一个虚拟的入口点,并且没有数据。微软件窗口是由软件公司(MicrosoftCorporation)销售的一种程序,其商业地址在16011NE36thWay,Redmond,WA98073-9717。HPOMFICO.NWE作为“资源”也包含每一个安装的类别的图象。OMF在运行期间直接修改HPOMFICO.NWE,并且装入它和把它卸掉,以便从它那里获得图象资源。HPOMFICO.NWE的格式,由微软件公司提供的微软件窗口的文档中定义。
带有可视说明(请参考前面的关于可视说明的讨论)的正常工作,导致调用儿子应用。当涉及大量的应用时,就能引起许多不必要的消耗。使用快照就消除了这种消耗。
快照是一个目标,它使用来自叫做动态访问库(或者叫DAL)的一个分开的库的可执行代码,而不是使用完全的应用可执行代码。只有与快照相关的数据文件才包含将从子目标发送到父目标的数据。压缩数据文件的代码,虽然称做为动态库,但仍然被存储在目录HPOMFPROG(目录668)中。
例如,图81表示父目标501由链接504链接到子目标502。与链接504相关的是快照503。一旦子目标指向在链接504的可视说明记录中的快照503,快照503能够从子目标502提供数据到父目标501,不必调用与子目标502相关的应用。
如图82所示,当没有快照时,为把可视数据522发送到父目标501,为了父目标501在显示窗口521中显示可视数据522子目标502必须是活动的。然而,在图83中,快照503被表示成提供可视数据522到父目标501,而子目标不一定是活动的。快照的更详细的实现过程由附录B、附录C、附录D中给出。
附录A是在OMF100中主要的数据结构的列表。
附录B是本发明的优选实施例方案中的OMF接口599识别的功能的描述。
附录C(HPNewWave环境程序设计举例)给出怎样实现本发明的优选实施方案的例子,包括OMF100怎样让数据能在监视器14上的显示窗口看到的详细说明。
附录D(程序中指南的第2章)给出本发明的优选实施方案的进一步的综述,关于本发明的优选实施方案的操作的更进一步的详细说明。
权利要求
1.一种具有文件管理系统的计算机,该文件系统能够根据第二个目标的请求,协调来自第一个目标的数据的传送,该文件系统包括链接引用文件,该链接引用文件具有一个项,该项包含有项的引用名,对第一个目标的引用,对第二个目标的引用,以及标识来自第一个目标的数据的标识符。
2.一种如权利要求1所述的计算机,其特征在于,计算机包括显示屏幕,并且,其中第二个目标指示第一个目标在显示屏幕的特定区域中显示数据。
3.一种如权利要求1所述的计算机,其特征在于,项还包括对快照目标的引用,快照目标的功能是根据第二个目标的请求,接收来自第一个目标的数据并传送该数据。
4.一种具有文件管理系统的计算机,该文件管理系统能够根据来自其它目标的请求,协调来自目标的数据的传送,该文件系统包括链接引用文件,该链接引用文件具有多个项,每个项包含项的引用名,对产生被传送数据的第一个目标的引用。对请求数据传送的和二个目标的引用,该数据来自第一个目标,以及;标识将要被传送的来自第一个目标的数据的引用。
5.在一种具有文件管理系统和多个目标的计算机中,根据多个目标中的第二个目标的请求,协调来自多个目标中的第一个目标的数据的显示方法,这种方法包括下列各步骤(a)在链接引用文件中建立一个包括标识链接项的引用名的链接项、对第一个目标的引用、对第二个目标的引用以及标识被传送数据的数据标识符。(b)把一个显示数据的第一个显示请求从第二个目标发送到文件管理系统,此第一个显示请求包括引用名和显示该数据的地址;以及,(c)把一个显示数据的第二个显示请求从文件管理系统发送到此第二个显示请求包括显示该数据的地址和数据标识符。
6.一种如权利要求5所述的方法,其特征在于,步骤(a)包括下列分步(a1)由用户指定要传送到第一个目标的数据;(a2)由第一目标把数据标识符与由用户指定的数据结合起来;(a3)从第二目标向文件管理系统发送引用名。
7.一种如权利要求5所述的方法,其特征在于,第一个显示请求不标识第一个目标或者数据标识符。
8.一种如权利要求5所述的方法,其特征在于,第二个显示请求不包括第二个目标的标识或者引用名。
9.一种如权利要求5所述方法还包括下面的步骤(d)通过文件管理系统,从第二个目标发送消息到第一个目标,该消息包含被显示数据地址的坐标;以及(e)通过文件管理系统,从第一个目标回送一个值到第二个目标,该值表示由坐标描述的区域的部分,它将被第一个目标用于显示数据。
10.在一种具有文件管理系统和多个目标的计算机中,根据多个目标中的第二个目标的请求,协调来自多个目标中的第一个目标的数据的显示方法。这种方法包括下列步骤(a)在链接引用文件中建立一个包含有标识该链接项的引用名的链接项,一个对第一个目标的引用,一个对第二个目标的引用,一个标识被传送数据的数据标识符,以及对被传送数据进行访问的快照目标。(b)从第二个目标向文件管理系统发送一个显示数据的第一个显示请求,第一个显示请求包含引用名和数据将要被显示的地址,以及,(c)从文件管理系统向目标发送一个显示数据的第二个显示请求,第二个显示请求包含数据将被显示的地址和数据标识符。
11.一种如权利要求10所述的方法,其特征在于,步骤(a)包含下列分步骤(a1)由用户指定要传送到第一个目标的数据;(a2)由第一目标把数据标识符与由用户指定的数据结合起来;(a3)由第一个目标向文件管理系统指定快照目标的标识。
12.一种如权利要求10所述的方法还包括下面的步骤(d)使用快照显示数据。
13.在一种具有文件管理系统和多个目标的计算机中,根据多个目标中的第二个目标的请求,协调来自多个目标中的第一个目标的数据显示的方法,这种方法包括下列步骤(a)从第二个目标向文件管理系统发送一个显示数据的第一个显示请求,第一个显示请求包括数据要被显示的地址,但是,不包括第一个目标的标识或要被显示的数据的专用标识符;(b)从文件管理系统向第一个目标发送一个显示数据的第二个显示请求,第二个显示请求包括数据要被显示的地址和要被显示的数据的标识符,但不包括第二个目标的标识;以及(c)由第一个目标显示该数据。
全文摘要
一种有文件管理系统和有多个目标存在的计算机。文件管理系统协调在目标间的数据传送。在子目标和父目标间可创建链接。链接数据结构包括引用名、对子目标的引用和数据标识符。当父目标请求时,子目标在父目标指明的地址显示数据。当设置链接时,子目标可以设置快照目标。快照取代在指明的地址处显示数据的责任。当文件管理系统接收来自父目标的请求时,它为数据传送发送一请求到快照,而不是到子目标,然后快照在指定地址显示数据。
文档编号G06F9/44GK1041839SQ8910266
公开日1990年5月2日 申请日期1989年4月25日 优先权日1988年4月25日
发明者约翰·安德鲁·戴萨特, 彼得·斯图尔特·肖曼, 威廉·M·克劳 申请人:惠普公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1