具有文件夹分享功能的虚拟媒体及方法

文档序号:7744764阅读:123来源:国知局

专利名称::具有文件夹分享功能的虚拟媒体及方法
技术领域
:本案关于一种虚拟媒体系统,例如网络型多计算机切换(IKVM,KVM-Over-ΙΡ)系统中的虚拟媒体,尤其是关于一种具有文件夹分享(folder-mount)功能的虚拟媒体系统。
背景技术
:多计算机切换器(KVMswitch,键盘、影像、鼠标)是一种允许一或多台使用者控制台选择性地与一或多台连接至多计算机切换器的计算机进行沟通的装置,如同使用者控制台直接连接至计算机一般。在一般的多计算机切换器配置中,一或多台控制台(每一台包括键盘及/或鼠标及一显示装置)透过缆线连接至多计算机切换器,而且多台计算机透过缆线连接至多计算机切换器。具有网络功能的多计算机切换器(亦指以网络为基础或以网络通讯协议为基础的KVM、IKVM或KVM-Over-ΙΡ)使用一网络协议(例如TCP/IP)作为其通讯协议,且可在网络(例如网际网络、内部网络、广域网络(WAN)、局域网络(LAN)、以太网络、无线网络等)上由任何计算机进行存取。远程操作者可在网络上的任何位置经由浏览器登入至网络型多计算机切换器,且可与连接至网络型多计算机切换器的任何一台计算机交换键盘、影像及鼠标信号。网络型多计算机切换器具有一控制器(称为网络型多计算机控制器),其连接至一控制器/电路/芯片(NIC),用以处理包括由网络上的远程控制台所接收的键盘及鼠标信号的封包,并经由NIC传输包含影像信号及其它信号的封包至网络。在一包括经由网络(例如网际网络)连接的两台计算机的系统中,虚拟媒体是一种分享文件的技术,以使实体上连接至第一台计算机的储存装置可由第二台计算机存取,如同该储存装置位于第二台计算机中。虚拟媒体技术已被用在多计算机切换系统中,其中用户端计算机经由网络存取网络型多计算机切换系统以控制连接至网络型多计算机切换器的服务器计算机。利用虚拟媒体技术,实体上连接至用户端计算机的储存装置可提供给服务器计算机作为虚拟媒体。例如,美国专利号7,260,624描述一系统,其中本地端计算机102经由网络118与远程计算机120连接,该系统具有在本地端计算机与网络间连接的互动装置110。该专利说明书第5栏第27至41行描述「除了接收使用者输入,互动装置110也通过提供通用串行总线(USB)连接至本地端计算机102的USB端口109,提供与远程计算机120的额外互动。其间的USB连接使互动装置110可仿真为本地端计算机102的USB装置,例如一额外的储存装置,例如包括本地端计算机102在开机时需使用的装置。例如,远程计算机120可提供包含被本地端计算机102使用的开机程序的软式磁盘驱动器、CD-ROM或硬式磁盘驱动器。当连接在互动装置110及远程计算机120之间的网络118被建立时,本地端计算机102可由远程计算机120的媒体来源透过USB端口109所提供的开机程序进行开机。」另一个例子,在发明名称为「虚拟媒体系统、方法及装置」的美国专利申请案公开号2007/0174526中,其描述提供USB装置作为被目标计算机存取的多计算机系统「多计算机切换器经由网络以目标服务器连接用户端计算机,该用户端计算机具有至少一个与其连接的装置。一种第二机制连接至目标的USB端口并使用USB协议与目标进行通讯。用户端机制经由网络与第二机制进行沟通。虚拟媒体机制使目标服务器存取连接至用户端计算机的USB装置。」(见其摘要)此方法使一连接至用户端计算机的实体储存装置(例如软盘机、光驱、可移除磁盘等),在目标计算机上被映像成为一虚拟盘机(参阅本公开案图6(C)及说明书第至段)。为符合一致性,在本发明说明书中,被储存装置实体连接的计算机称为用户端计算机或用户端,而被储存装置映像为虚拟媒体的计算机称为服务器计算机或服务器。传统的虚拟媒体方法只能使整个实体储存装置(或者若储存媒体被分割为可能地逻辑磁盘)在服务器被映像为虚拟盘机。此方法在此称为为磁盘分享(disk-mount),其具有许多缺点,例如较差的可靠度及较差的安全性。例如,服务器计算机可存取整个储存装置(或磁盘)的内容,因此用户端计算机无法保护储存装置内容的机密性及安全性。再者,当在磁盘分享系统中执行回写(write-back)功能时,若写入作业时发生错误(例如由于网络传输的错误),便会有储存媒体损毁的风险。
发明内容因此,由于相关技术的限制及缺点,本发明系针对在网络型多计算机切换系统实质地消除一或多个问题的虚拟媒体方法及装置。本发明的一个目标是提供支持文件夹分享功能的虚拟媒体方法及装置。本发明的其余特征及优点将在随后的描述且部分由描述中显现,或者可由本发明的范例获悉。本发明的目标及其它优点将可由其实施例及申请专利范围及附图特别指出的结构了解及获得。为了达到这些及其它优点,并依据本发明的目的,如同具体化地及广泛地描述,本发明提供一种在具有虚拟媒体功能的一系统中执行的方法,该方法包含以一服务器控制模块对一服务器计算机仿真出符合一标准协议的一储存装置,包括接收来自该服务器计算机的一第一指令,并依据该第一指令传送一第二指令至一虚拟媒体存取控制模块,更包括依据来自该虚拟媒体存取控制模块的一第二回复讯息传送一第一回复讯息至该服务器计算机;以该虚拟媒体存取控制模块依据该服务器控制模块所传来的该第二指令经由一网络传送一第三指令至一用户端计算机的一虚拟媒体管理软件模块,并且依据经由该网络由该虚拟媒体存取控制模块传来的一第三回复讯息,传送该第二回复讯息至该服务器计算机;以及以该虚拟媒体管理软件模块因应于来自该虚拟媒体存取控制模块所接收的该第三指令经由该网络传送该第三回复讯息至该虚拟媒体存取控制模块,其中该第一回复讯息使得该服务器计算机可存取连接至该用户端计算机的该储存装置中的多个文件夹中特定的一个,如同一本地装置般,但不允许该服务器计算机存取该储存装置的其它内容。该网络可为网际网络。来自该服务器计算机而由该服务器控制模块所接收的第一指令可为一读取指令或一写入指令。另一方面,本发明提供一种方法,在一用户端计算机与一服务器计算机相互连接所组成的一系统中,该用户端计算机具有以一文件系统来储存多个个文件与文件夹的一储存装置,该方法用以将该多个文件夹当中的一个分享给该服务器计算机供其存取作为一虚拟盘机,该方法包含(a)选择要被该服务器计算机存取的一文件夹,该所选择的文件夹包含多个子文件夹及数据文件;(b)针对该所选择的文件夹中的每一数据文件,依据该数据文件的大小,指派一或多个虚拟磁盘簇索引顺序至该数据文件;(C)针对该所选择的文件夹在该用户端计算机产生一虚拟媒体文件系统,该虚拟媒体文件系统包括虚拟媒体索引信息,用以描述指派至该所选择的文件夹的每一数据文件的该虚拟磁盘簇索引顺序,但并不包括该数据文件的任何数据内容;(d)产生一初始状态数据结构,用以储存该所选择的文件夹中每一数据文件的一初始状态,该每一数据文件的该初始状态包含在该储存装置的该文件系统中的文件名称及路径,以及步骤(b)中所指派的该虚拟磁盘簇索引;以及(e)根据一虚拟媒体读取指令,执行一虚拟媒体读取功能,指定一虚拟扇区编号以读取一笔数据,其中该虚拟扇区编号是关于由一预设转换程序所得到的一虚拟磁盘簇索引,步骤(e)更包含(el)若该指定的虚拟扇区编号位于该虚拟媒体文件系统的一扇区,则由该虚拟媒体文件系统的该扇区读取该笔数据;以及(e2)若该指定的虚拟扇区编号并非位于该虚拟媒体文件系统的一扇区,则以该初始状态数据结构及该预设转换程序判断该数据文件所在的扇区,得到该数据文件的一名称及路径及该虚拟扇区在该数据文件中的一扇区偏移量,且以该名称及路径及该扇区偏移量由该储存装置读取该笔数据。而在另一方面,本发明提供一种包括计算机可用媒体的计算机程序产品,计算机可用媒体具有嵌入其中、用以控制一用户端计算机的计算机可读程序代码,设定该计算机可读程序代码以使该用户端计算机执行上述程序将其中一个文件夹分享给服务器供其存取作为虚拟盘机。而在另一方面,本发明提供一种执行虚拟媒体功能的系统,包括位于一用户端计算机的一虚拟媒体管理软件模块;经由一网络连接至该用户端计算机的一虚拟媒体存取控制模块;以及连接至该虚拟媒体存取控制模块的一服务器控制模块,该服务器控制模块仿真成符合一服务器计算机的一标准协议的一储存装置,其中该虚拟媒体管理软件模块使该服务器可宛如一本地装置般地对储存在一储存装置中的多个文件夹中特定的一个进行存取,该储存装置耦合至该用户端计算机,但并不允许该服务器对该储存装置的其它内容进行存取。而在另一方面,本发明提供一种方法,在包含经由远程管理装置及网络彼此连接的具有第一操作系统的第一计算机及具有第二操作系统的第二计算机的系统中,此第一计算机可经由第一操作系统以第一文件系统存取具有多个文件夹的储存装置,该方法用以将其中一个文件夹分享给第二计算机供其存取作为被远程控制装置仿真的USB碟机,该方法包含(a)由该储存装置中选择要被第二计算机存取的文件;(b)通过第二计算机利用对应于该第一文件系统的第二文件系统管理该所选择的文件夹,其中该所选择的文件夹被视为第二操作系统的USB装置;以及(c)根据应该所选择的文件夹的读取指令,第一操作系统由该所选择的文件夹读取数据,经由该远程管理软件及该网络将该数据传输至该第二计算机。该方法更包含(d)根据一由第二计算机发所出对该所选择的文件夹回写指令,在该储存装置由该第二计算机移除后,该第一操作系统由该第二计算机将一数据写入至该所选择的文件夹。该数据可用来激活该第二计算机或在第二计算机上更新一软件。可被了解的是前述的一般说明及之后的详细说明两者皆为示范性及详述的,且意指为提供请求保护的发明的进一步解释。图1根据本案实施例说明具有虚拟媒体功能的网络型多计算机切换系统。图2a以图标说明在常见的文件系统中的示范性FAT表。图2b以图标说明在示范性常见文件系统中的磁盘簇及其内容。图2c以图标说明在常见文件系统中包含不同区域的文件系统。图3a以图标说明根据本发明实施例中包含不同区域的虚拟媒体文件系统。图3b以图标说明根据本发明实施例的示范性虚拟媒体FAT表。图3c以图标说明根据本发明实施例的示范性文件一磁盘簇索引表。图3d以图标说明根据本发明实施例的示范性脏扇区索引表。图4以图标说明根据本发明实施例的用于虚拟媒体文件夹分享的分享程序。图5以图标说明根据本发明实施例的用于文件夹分享的虚拟媒体的虚拟媒体存取程序。图6以图标说明根据本发明实施例的用于文件夹分享的虚拟媒体的读取扇区功能。图7以图标说明根据本发明实施例的用于文件夹分享的虚拟媒体的写扇区功能。图8以图标描述根据本发明实施例的用于文件夹分享的虚拟媒体的回写功能。图9以图标说明在虚拟媒体存取期间在图1系统的不同组件间传输的指令及数据。主要组件符号说明图110用户端计算机11KVM管理软件12虚拟媒体管理软件13操作系统14储存装置15使用者界面装置20网络型多计算机切换器图4S401S404、405409步骤图5S501S509步骤图6S601S610步骤图7S701S704步骤图8S8OlS8I3步骤具体实施例方式在此依据规定揭露本发明详细说明的实施例。然而,根据本发明的技术、系统及操30计算机端模块31USB装置控制器40服务器计算机41操作系统42虚拟媒体100网络作结构可在多种形式及方式中实施,其中某些与这些揭露的实施例具有相当大的差异。因此,此处所揭露的特定结构性及功能性详述仅为代表,因此其被视为提供符合揭露目的的最佳实施例并提供本发明请求保护范围的基础。以下所示为本发明最佳实施例(及某些其它实施例)的详细描述。图1以图标说明一具有虚拟媒体功能的网络型多计算机切换系统,一用户端计算机10经由一网络100连接至一网络型多计算机切换器20。一般来说,此网络100为网际网络,但是其亦可为一局域网络(LAN)、广域网络(WAN)或是其它任何适当种类的网络架构。用户端计算机10与此网络型多计算机切换器20之间在网络100上的沟通系经由适当的通讯协议,例如TCP/IP。多台服务器计算机40(图中仅显示一台)经由个别的计算机端模块30(图中仅显示一台)连接至此网络型多计算机切换器20。在一实施例中,每个计算机端模块30以Cat5缆线连接至此网络型多计算机切换器20。每一计算机端模块30具有带有连接器的短缆线,用以直接插入服务器计算机40的相关连接端口,例如影像信号的显示器端口、键盘及/或鼠标信号的键盘及/或鼠标端口及数据传输的通用串行总线(USB)端口。此计算机端模块30以内部通讯协议与此网络型多计算机切换器20进行沟通。计算机端模块30与服务器计算机40之间的数据传输以适当的通讯协议(例如USB协议)完成。或者是(在图1中并未显示),该些计算机端模块30可能不存在,而是将其功能整合至网络型多计算机切换器20中。在这种组态中,服务器计算机40系以较短的缆线直接连接至此网络型多计算机切换器20。用户端计算机10连接至一组使用者界面装置15,其包含(例如)一屏幕、一键盘及一鼠标。使用者界面装置15与服务器计算机40之间的键盘/鼠标信号及影像信号经由此网络型多计算机切换器20及计算机端模块30进行传输,此传输已为本领域技术的人所熟知,因此不再予以详述。安装于用户端计算机10上的网络型多计算机切换器管理软件11,以及网络型多计算机切换器20上适当的硬件/固件共同处理及传送前述键盘/鼠标信号及影像信号。有一储存装置14连接至此用户端计算机10,例如一硬盘机、⑶/DVD光驱、快闪储存装置、软盘机等。实际上此储存装置14可为此用户端计算机10的一部分(例如其为一内建的硬盘机),或是连接至用户端计算机的某一插槽(例如其为一USB快闪储存装置),或是以较短的缆线连接至此用户端计算机(例如其为一外接的硬盘机)。此储存装置14可以任何适当的通讯接口连接至此用户端计算机10,例如SCSI、IDE或USB等。此储存装置14可被分割成数个逻辑硬盘(具有各自的磁盘代号)。此储存装置亦可为一网络分享文件夹(network-sharedfolder),其将详述于后。依据本发明的一实施例,如图1所示,用户端计算机10可将其储存装置14中的某一文件夹(folder)的内容分享给服务器计算机40,以作为其一虚拟储存装置(如图1所示的虚拟媒体42)。换句话说,虽然仅有储存装置14上的文件夹内容会被分享给服务器计算机40供其存取(读取及/或写入),但是对于此服务器计算机/40而言,此文件夹是以整个储存装置(虚拟媒体42)的型态出现于服务器计算机40。在此储存装置14中,服务器计算机40并无法经由虚拟媒体存取此文件夹以外的其它内容。为便于描述,本专利将此项功能称为“文件夹分享”(folder-mount),以凸显其是一与传统的整个碟机分享(drive-mount)不同的技术。被分享给服务器计算机40存取的文件夹可能更包含数个子文件夹,且此文件夹本身可能是储存装置14中其它文件夹的子文件夹。本发明的“文件夹分享”功能主要是由用户端计算机10上所执行的一虚拟媒体管理软件模块12所实现。此虚拟媒体管理软件模块12可为用户端计算机10上一多计算机管理软件11的一软件模块,或者是其可为一独立的软件程序。此“文件夹分享”方法将参照图2a至图9进行说明。依据一传统的文件配置表(FileAllocationTable;FAT)文件管理系统,每个储存媒体的碟机被分割成数个扇区(sector),通常其中每个扇区的长度为512个字节。一预设数量的扇区(例如2、4、8、16等)形成一个磁盘簇(cluster)。文件被储存在一或多个磁盘簇端视其文件大小而定,且其中这些磁盘簇并不一定为连续。一文件配置表(FAT,亦称为FAT表)是用以记录文件存在那些磁盘簇(及其顺序)中。一FAT表可被视为一具有两字段的表,其中第一栏包含磁盘簇索引(碟机的第一至最后一个磁盘簇),第二栏(FAT入口)为每个磁盘簇索引标示出下个文件碎片(fragment)所在的磁盘簇。例如,在图2a所示的FAT表中,磁盘簇#2的FAT入口为4,意指在磁盘簇#2后,磁盘簇#4储存文件的下一碎片。因此,此示范性的FAT表标示一个文件依此顺序被储存于磁盘簇#2、#4、#6及#7(「E0C」标示磁盘簇#7为此文件最后的磁盘簇),而另一文件依该顺序被储存于磁盘簇#3及#5。图2b图标对应于图2a范例的磁盘簇及其内容。请注意上述说明的“文件”通常是指一目录入口(directoryentry),其可为一数据文件或是一子目录。本发明所用“文件”一词系指数据文件或是一子目录,由前后文可以清楚了解其涵意。每一目录入口的起始磁盘簇(cluster)储存于根目录(rootdirectory)(针对在根文件夹中的文件及子目录)或是一子目录(针对在子文件夹的文件及子目录)中。此外,根目录或是子目录储存每个文件的内容(properties),例如文件名称、大小、创设时间、最后修改时间、属性(attribute)等等。在FAT文件系统中,一目录(或是文件容器(filecontainer))为一常规文件,其具有一特别的属性指出其为目录。请注意某些文件系统并不具有根目录区,且根目录储存于文件及目录数据区(thefileanddirectorydataregion)0图2c以图标说明一碟机的内容,其包含一保留区、一储存FAT表的FAT区、一根目录区以及一文件及目录数据区。此文件及目录数据区包含储存数个文件的数据(包含目录,其被储存为文件)的磁盘簇。此文件系统的管理由计算机的操作系统所执行。本发明在此假设读者已经熟悉传统的FAT文件系统。为实现“文件夹分享”,用户端计算机10(虚拟媒体管理软件12)会为虚拟媒体产生一虚拟媒体文件系统(VMfilesystem),其类似于一文件系统的仿真架构。如图3a所示,此虚拟媒体文件系统包含虚拟媒体保留区、虚拟媒体FAT区、虚拟媒体根目录区以及一虚拟媒体文件及目录数据区。这些区域中的数据符合FAT文件系统标准。虚拟媒体保留区所储存的信息与一般碟机保留区所储存的信息种类相同。虚拟媒体根目录区储存一根目录,其包含代表被分享文件夹(在此的后称为来源文件夹)的文件或子目录的起始虚拟磁盘簇索引。虚拟媒体文件及目录数据区包含储存来源文件夹的所有子目录的磁盘簇,其并不包含不是子目录的一般文件中任何储存实际数据内容的磁盘簇。因此,虚拟媒体文件系统并不会在此储存装置上占据很大的空间,且可快速地产生。请注意与传统文件系统类似的是,本发明的虚拟媒体根目录区并不一定需要,并且根目录可储存于虚拟媒体文件及目录数据区之中。此虚拟媒体FAT区储存一虚拟媒体FAT表,其格式符合一般的FAT表格式,但是仅包含来源文件夹中的文件及子目录。更特别的是,此虚拟媒体FAT表为一具有二字段的表格,其中第一栏包含虚拟磁盘簇索引(此虚拟盘机中由第一至最后一个虚拟磁盘簇),而第二栏(FAT入口)表示对于每一虚拟磁盘簇索引而言,其虚拟磁盘簇储存下一个文件碎片。虚拟盘机的磁盘簇在此称为虚拟磁盘簇,因为其并非实际存在于此储存装置上。图3b显示一示范性的虚拟媒体FAT表。请注意最后一个虚拟磁盘簇索引为M,其由虚拟盘机的大小所决定。换句话说,分派给来源文件夹中文件的虚拟磁盘簇索引都会落在虚拟盘机的大小之中。虚拟盘机的大小小于(通常会远小于)图2a的N值。虚拟盘机的大小可为操作者在分享过程中所定义的任意数值。所定义的虚拟盘机的大小等于或小于实体碟机的大小,其通常会远小于实体碟机。例如,实体碟机的大小可能为60GB,而此虚拟盘机的大小可能为1GB。并且,必须定义此虚拟盘机的大小,使得虚拟盘机上的剩余空间小于实体碟机上的实际剩余空间。虚拟媒体FAT表由用户端计算机10在分享文件夹时产生。此用户端计算机10不能仅仅是复制实体碟机的FAT表,因为在虚拟媒体FAT表中所有的文件必须储存在虚拟磁盘簇1至M,但是在实体碟机这方面,来源文件夹中的文件却可被储存于磁盘簇索引大于M的磁盘簇中。当产生虚拟媒体FAT表时,用户端计算机10会收集来源文件夹中所有的文件,分派虚拟磁盘簇给这些文件(分派给每一个文件的虚拟磁盘簇数目视其大小而定,例如使用多少个实际磁盘簇来储存),并且将虚拟磁盘簇索引记录在虚拟媒体FAT表中。较佳的虚拟磁盘簇分派方式是使得这些文件占据连续的虚拟磁盘簇(如图3b所示),但是这些文件亦可被分派到不连续的虚拟磁盘簇。每个文件的起始虚拟磁盘簇索引是以类似于一般(传统)文件系统的方式被储存在根目录或是子目录中。对于服务器计算机40而言,虚拟媒体保留区、虚拟媒体FAT区及虚拟媒体根目录区像是一实体碟机的对应部分,且服务器计算机40利用这些数据来管理及存取此实体碟机。当存取虚拟盘机时,服务器计算机40可更改所有虚拟盘机的扇区,其将详述于后。除了虚拟媒体文件系统外,在文件夹分享过程中用户端计算机亦产生一“文件-磁盘簇索引表”(file-clusterindextable)。此“文件-磁盘簇索引表”为来源文件夹中的每个文件与子目录储存其在实体碟机的实体文件系统中的名称及路径、文件属性以及被分派的虚拟磁盘簇。换句话说,“文件-磁盘簇索引表”表示了实体文件系统与虚拟文件系统之间的对应关系。图3c描述一示范性的“文件-磁盘簇索引表”。如果在分享过程中文件被分派到连续的虚拟磁盘簇,则可以一起始虚拟磁盘簇索引及一结束虚拟磁盘簇索引来表示分派给文件的虚拟磁盘簇,如图3c所示。如果在分享过程中文件被分派到不连续的虚拟磁盘簇,则可以虚拟磁盘簇的次串行表来表示这些虚拟磁盘簇。“文件-磁盘簇索引表”在分享时产生,且当服务器计算机存取虚拟盘机时不会被修改,因此其保留了虚拟媒体文件系统在分享时的状态,且被使用于虚拟媒体存取与卸载(im-moimting)之时,其将详述于后。当存取虚拟媒体时,用户端计算机10会使用一暂存数据区来储存将被服务器计算机写入虚拟盘机的数据。在存取虚拟媒体时,储存在实体文件系统中的实际磁盘簇/扇区的文件数据并不会被更改。相反地,在存取虚拟媒体时,实体文件系统中被服务器计算机要求修改的扇区会被视为“脏扇区”(dirtysector),且这些扇区中的数据会被暂时储存于暂存数据区的暂存扇区中。用户端计算机10会维护一脏扇区索引表,其储存脏扇区以及在暂存数据区中对应的暂存扇区的一清单。如图3d所示,脏扇区索引表可被视为一具有两字段的表,其中第一栏储存虚拟盘机中脏扇区的扇区编号(亦即其虚拟扇区编号),第二栏储存暂存数据区中对应的暂存扇区的扇区位置。当服务器计算机40写入至虚拟盘机时,脏扇区索引表在虚拟媒体存取时逐渐建立。例如(参阅图3d),当服务器计算机写入虚拟盘机的扇区6时,用户端计算机10将数据写入于暂存数据区的扇区1(位置1)而不修改实际文件系统的实际扇区,将脏扇区编号记录在脏扇区索引表的第一栏的虚拟盘机6中,并将暂存数据区(1)中的对应位置记录在脏扇区索引表的第二栏。当虚拟媒体允许写入功能时,脏扇区索引表有其必要。若不允许写入功能,则并不需要脏扇区索引表,且用户端计算机不会储存任何数据于暂存扇区中。较佳的情况是暂存数据区位于实体碟机的实体区域中。或者是,若暂存数据区的数据量够小,则此暂存数据区可位于用户端计算机10的随机存取存储器中。请注意在一FAT系统中,读取与写入指令通常是指读取或是写入一扇区而非一磁盘簇。在一储存装置(一实体碟机)中,磁盘簇索引及扇区编号是以一标准程序相互产生关连性,其视每一磁盘簇的扇区编号而定。在本发明的一较佳实施例中,所修改的数据是以扇区为单位,而非以磁盘簇为单位进行管理。因此,扇区(非磁盘簇)被视为脏扇区或非脏扇区。当然亦可能以磁盘簇为单位来管理所修改的数据,但是在空间的利用上会比较没有效率。图4至图8是以图标说明文件夹分享与虚拟媒体存取过程。图4至图8的步骤是由用户端计算机10的虚拟媒体管理软件12所执行。图4显示此分享过程。在步骤S401中,用户端计算机10的使用者开始一虚拟媒体文件夹分享过程,此步骤可经由适当的使用者界面工具完成,此使用者界面工具让使用者可选择储存装置14(来源文件夹)的一文件夹分享给服务器计算机作为虚拟媒体并发出一分享指令。此用户端计算机10由实体文件系统405收集关于来源文件夹的信息及其内容(步骤S402),并且分析所收集的数据以产生虚拟媒体FAT表、虚拟根目录、虚拟子目录及文件-磁盘簇索引表(步骤S403)。步骤S402所收集的信息包含产生虚拟媒体FAT表所需要的所有信息,例如实体文件系统中的文件名及路径(以产生文件-磁盘簇索引表)、磁盘簇数目的文件大小(以分派虚拟磁盘簇给文件并产生虚拟媒体FAT表)、子目录(以产生虚拟文件系统的目录数据)等。虚拟媒体FAT表、虚拟根目录,虚拟子目录及文件-磁盘簇索引表被储存于储存装置14的区域406中。之后,在用户端计算机由实体文件系统405读取数据期间,用户端计算机执行虚拟媒体存取功能(步骤S404),得到在步骤S403中所产生、来自虚拟媒体FAT表的信息、目录、文件-磁盘簇索引表等。将数据读取及写入至暂存数据区407中的暂存扇区,并在脏扇区索引表408中读取及写入数据。在执行虚拟媒体存取功能时,用户端计算机接收来自服务器计算机40的虚拟媒体I/O指令409(经由计算机端模块30以及网络型多计算机切换器20),并且对I/O指令做出响应。此虚拟媒体存取功能将更详细地说明于图5至图8。图5说明虚拟媒体存取功能的整体过程。首先,用户端计算机10会与网络型多计算机切换器20及计算机端模块30合作对服务器计算机40宣告该虚拟媒体(步骤S501),例如,若此虚拟媒体系以USB大量储存装置的方式呈现,则此计算机端模块30会仿真成一USB大量储存装置。此步骤可类似于传统虚拟媒体方法的对应步骤,故在此不予以详述。在此步骤之后,此虚拟媒体会看起来像是此服务器计算机的一储存碟机。因此,此服务器计算机可对此储存装置进行读取、写入或是执行其它功能,就仿佛其是一台一般的碟机。以下将搭配图9详细说明不同组件之间的通讯指令形式。当服务器计算机接收到某一指令时(步骤S502),此指令可为来自服务器计算机40的I/O指令或是来自用户端计算机10的使用者的某一指令。如果此指令为来自服务器计算机的一读取扇区指令(步骤S503的“是”),则此用户端计算机会执行一读取扇区功能(步骤S504,将搭配图6详述于后)。如果此指令为来自服务器计算机的一写入扇区指令(步骤S505的“是”),则此用户端计算机会执行一写入扇区功能(步骤S506,将搭配图7详述于后)。步骤S502中所接收的指令可为一虚拟媒体存取停止指令。此停止指令可接收自用户端计算机10本身。例如,用户端计算机10的使用者可发出此虚拟媒体停止指令。此停止指令也可接收自服务器计算机40。例如,此服务器计算机可以操作系统操作“移除”此虚拟媒体。当此停止指令被接收时(步骤S507的“是”),此用户端计算机10会与服务器计算机40沟通以中断此虚拟媒体,亦即将其自服务器计算机40上“移除”(步骤S508)。此步骤可类似于传统虚拟媒体方法的对应步骤,故在此不予以详述。自服务器计算机40移除虚拟媒体之后,用户端计算机10会执行一回写(write-back)功能以将储存于暂存数据区中的数据写入实体文件系统,及/或由此实体文件系统删除文件(步骤S509,将搭配图8详述于后)。图6说明读取扇区功能(图5的步骤S504)。请注意来自服务器计算机的读取扇区指令中的扇区编号为虚拟盘机中的虚拟扇区编号。首先,用户端计算机会先通过查询脏扇区索引表来确认此虚拟扇区是否在脏扇区索引表中(步骤S601)。如果其之前已经被服务器计算机修改过并且在暂存数据区中被储存为一暂存扇区,一虚拟扇区会在脏扇区索引表中(将搭配图7详述于后)。如果此虚拟扇区位于脏扇区索引表中(步骤S601的“是”),则用户端计算机会通过脏扇区索引表,在对应于脏扇区的暂存数据区中获得暂存扇区的位置(参阅图3d),并且在此位置由暂存数据区中读取此暂存扇区(步骤S602)。如果此虚拟扇区并非位于脏扇区索引表中(步骤S601的“否”),则用户端计算机会将虚拟扇区编号转换为一虚拟磁盘簇索引(步骤S603)。此转换步骤会使用一供虚拟媒体使用的转换程序,其本质上类似于一般碟机所用的转换程序。此转换亦决定此扇区在虚拟磁盘簇中的位置(亦即偏移量)。之后,此用户端计算机会判断转换后的虚拟磁盘簇是否位于虚拟盘机的虚拟媒体保留区或是虚拟媒体FAT区之中(步骤S604)。若是(步骤S604的“是”),则此用户端计算机会读取虚拟媒体保留区中或是虚拟媒体FAT区的扇区(步骤S605)。若否(步骤S604的“否”),则此用户端计算机会判断此虚拟磁盘簇是否位于虚拟盘机的虚拟媒体目录区中(步骤S606)。此处的目录区包含虚拟媒体根目录区及虚拟媒体文件及目录数据区的子目录(参阅图3a)。如果此虚拟磁盘簇位于虚拟媒体目录区中(步骤S606的“是”),则此用户端计算机会读取虚拟媒体目录区中的扇区(步骤S607)。若否(步骤S606的“否”),则此用户端计算机会判断此虚拟磁盘簇是否属于实体文件系统的源文件(步骤S608)。步骤S608利用文件-磁盘簇索引表执行(参阅图3c)。此时,虚拟扇区已经被判断并非位于脏扇区索引表之中(亦即其非脏扇区),所以此扇区的数据并非储存于暂存数据区中,且必须由实体文件系统的來源文件得到。因此,在步骤S608中,用户端计算机会利用虚拟磁盘簇索引(由步骤S603得到)及查询文件-磁盘簇索引表来判断此虚拟磁盘簇要被分派给哪一个文件。通过查询文件_磁盘簇索引表,用户端计算机可判断文件在实体文件系统中的文件名及路径,以及分派至此文件的虚拟磁盘簇串行中此虚拟磁盘簇的位置(其为文件的第i个磁盘簇)。如前所述,此文件-磁盘簇索引表可储存每个文件的起始及结束虚拟磁盘簇索引,或是其可储存所有分派给每个文件的虚拟磁盘簇的次串行表。用户端计算机亦可判断此磁盘簇在文件中的位置。此外,基于请求扇区在虚拟磁盘簇中的偏移量(此扇区为虚拟磁盘簇的第j个扇区,参阅步骤S603),用户端计算机判断在文件中的扇区偏移量(此扇区为文件的第k个扇区)。利用文件名及路径以及文件中的扇区偏移量,用户端计算机可发出一读取指令至用户端计算机的操作系统以读取特定文件的特定扇区(步骤S609)。操作系统会以传统方式因应于此读取指令来读取被请求的扇区数据并将其传给虚拟媒体管理软件12。在步骤S602、S605、S607及S609之后,用户端计算机10会经由网络将这些步骤读取的数据传给服务器计算机40(步骤S610)。图7说明写入扇区功能(参阅图5的步骤S506)。请注意在服务器计算机所发出的写入扇区功能中的扇区编号为虚拟盘机中的虚拟扇区编号。首先,用户端计算机会先通过查询脏扇区索引表来确认此虚拟扇区是否在脏扇区索引表中(步骤S701)。如果此虚拟扇区位于脏扇区索引表之中(步骤S701的“是”),则用户端计算机会通过脏扇区索引表(参见图3d)在对应于脏扇区的暂存数据区获得暂存扇区的位置(步骤S702)。如果此虚拟扇区并非位于脏扇区索引表之中(步骤S701的“否”),则用户端计算机会将此虚拟扇区编号加到脏扇区索引表之中,并且在暂存数据区中将其分派至一未使用的扇区位置(步骤S703)。在步骤S702及S703之后,用户端计算机会移动写入指针(pointer)至暂存数据区的该位置,并且在该位置将来自服务器计算机的数据写入至暂存扇区(步骤S704)。必须注意的是,当来源文件夹仍处于分享状态时(仍分享在服务器计算机上作为虚拟盘机),服务器计算机40的操作系统会如同管理一实体碟机般地管理此虚拟盘机。例如,如果此服务器计算机在虚拟盘机上产生一新的文件,服务器计算机的操作系统将会分派虚拟磁盘簇数给这个新的文件,并且经由一写入指令修改虚拟FAT表。因此,如前所述,在用户端,此虚拟媒体管理软件12仅需要管理来自服务器计算机的写入指令。虚拟媒体写入功能的结果是,服务器计算机40会在来源文件夹下产生一新的子文件夹、在来源文件夹中产生一新的数据文件、修改既存的数据文件、修改数据文件及文件夹或子文件夹的属性等等。并且,虚拟媒体FAT表及子目录入口亦会被修改。所有的改变会被储存在暂存数据区中而不改变实体文件系统的扇区/磁盘簇或是在分享状态时产生的虚拟文件系统。如图4所示,由“虚拟FAT、目录、文件-磁盘簇索引表”406指向“虚拟媒体存取功能”S404的单向箭号表示406中的数据在虚拟媒体存取时并未被修改。图8说明回写功能(图5的步骤S509)。首先,用户端计算机得到所有虚拟媒体根目录的目录入口(步骤S801)。在根目录区中,每个目录入口(其可为一文件或一目录)都具有一预设的数据长度,例如32字节,且包含某些信息,例如名称、属性以及此文件或目录的起始磁盘簇索引。请注意,一具有长文件名的文件可使用数个目录入口来储存上述信息。对于每个入口,用户端计算机得到入口的上述信息(名称、属性及起始磁盘簇数),并且分析虚拟媒体FAT表以得到入口的所有的虚拟磁盘簇索引(步骤S802)。必须注意的是,当执行虚拟媒体存取时,服务器计算机可能会改变虚拟媒体根目录区、虚拟媒体FAT区以及虚拟媒体文件及目录区中的目录。改变的数据会储存在暂存数据区的暂存扇区,且脏扇区会被记录在脏扇区索引表中。因此,在步骤S801与步骤S802中,用户端计算机会由暂存扇区中查询脏扇区索引表、读取目录及读取虚拟媒体FAT表。然后,用户端计算机会以一连串的步骤分析目录入口。特别的是,用户端计算机会判断其是否为服务器计算机在虚拟媒体存取时所产生的新的文件夹(步骤S803)。为了判断目录入口是否为新的文件夹,用户端计算机会将此目录入口与文件-磁盘簇索引表储存的入口作一比较,此文件-磁盘簇索引表在分享时产生且在虚拟媒体存取时不会被改变。如果此目录入口为一新的文件夹(步骤S803的“是”),用户端计算机会在实体文件系统中的适当位置(即子文件夹)产生一新的文件夹(步骤S804)。文件夹的产生可由用户端计算机的操作系统以传统方式来执行。用户端计算机更通过读取要被分析的目录入口的内容得到此文件夹所包含的所有目录入口(步骤S805),将这些目录入口加到要被分析的一目录入口清单,然后回到步骤S802对下一个目录入口进行分析。在步骤S803中,如果此入口并非一新的文件夹(步骤S803的“否”),则用户端计算机会再利用文件-磁盘簇索引表判断其是否为一旧的文件夹(亦即其在虚拟媒体分享时既已存在)(步骤S806)。若是(步骤S806的“是”),则用户端计算机会得到此文件夹中所有的目录入口(步骤S805),将这些目录入口加到要被分析的一目录入口清单,然后回到步骤S802对下一个目录入口进行分析。通过步骤S801至步骤S806,最终来源文件夹所有的目录入口都会被检视过。因此,步骤S801及步骤S805的功能是在收集来源文件夹的数据文件及子目录以便进行分析。在步骤S806中,如果此入口并非一旧的文件夹(步骤S806的“否”),则用户端计算机会判断其是否为服务器计算机在虚拟媒体存取时所产生的新文件(步骤S807)。文件-磁盘簇索引表会被再次利用来作此判断。若是(步骤S807的“是”),则用户端计算机会将此文件复制到实体文件系统中的适当位置(步骤S808)。此步骤包含为此文件在实体文件系统中产生一目录入口,并将此文件的数据扇区写入到实体文件系统中。当执行复制功能时,用户端计算机会由暂存数据区中读取文件的扇区,通过虚拟媒体FAT表及脏扇区索引表来判断这些扇区在虚拟媒体文件系统及暂存数据区的哪里。在步骤S807中,如果此入口并非一新的文件(步骤S807的“否”),则用户端计算机会判断其是否为一旧的文件(亦即其在虚拟媒体分享时既已存在)(步骤S809),此时文件-磁盘簇索引表会被再次利用来作此判断。若其为一旧的文件(步骤S809的“是”),则用户端计算机会判断是否此文件的属性或是其它内容已经被改变(步骤S810)。在此步骤中,用户端计算机会将储存在文件-磁盘簇索引表中的属性与储存在虚拟媒体目录区的文件的新属性作比较,并且查询文件-磁盘簇索引表及脏扇区索引表来判断其内容是否已经被改变。如果分派给文件的虚拟媒体磁盘簇(如同储存在FAT表中)包含出现在脏扇区索引表中的脏扇区,则此文件的内容已经被变更。在前述的步骤S803、步骤S806、步骤S807及步骤S809中,文件-磁盘簇索引表被用来判断此入口是否为一新的文件夹、旧的文件夹、新的文件或旧的文件等等。或者,一独立的目录树状结构可用来执行这些步骤。此目录树仅包含每个文件及子文件夹在来源文件夹的路径及名称,并且以树状结构来储存这些信息。此目录树在虚拟盘机产生(例如在文件-磁盘簇索引表被产生的同时)时被建立,并且在虚拟媒体存取时不会被修改。与做为表格形式的文件-磁盘簇索引表相比,目录树的树状结构可改善步骤S803、步骤S806、步骤S807及步骤S809的表现,特别是当大量的入口存在于来源文件夹时。并且,此文件-磁盘簇索引表或是文件_磁盘簇索引表及目录树可意指为在文件夹分享时储存来源文件夹的文件及子目录的初始状态(名称及路径,虚拟媒体磁盘簇的初始分配,属性)的初始状态数据结构。一般来说,当文件的内容被改变时,整个文件会被改变且需要被复制回实体文件系统。如果仅有文件属性被改变,但是文件内容并未被改变,则仅有文件属性需要被复制回实体文件系统。如果文件已经被改变(步骤S810的“是”),则用户端计算机会将所有的改变复制回实体文件系统。实际上被复制的部分端视所改变的部分而定,未被改变的数据区并不会被复制。在复制步骤S808与S811之后,或是当旧文件无改变之后(步骤S810的“否”),或是当目录入口并非旧文件(步骤S809的“否”),流程会回到步骤S802以分析下一个目录入口,直到虚拟媒体文件系统的目录区所有的目录入口都已经被分析过(步骤S812的“是”)。在所有的目录入口都已经被分析过之后,用户端计算机会判断是否任一文件及文件夹在虚拟媒体存取时都已经被服务器计算机删除(步骤S813)。如前所述,在虚拟媒体存取时,实体文件系统中的文件及文件夹都不会被修改及删除,但是这些文件及文件夹的目录入口在虚拟盘机的虚拟媒体文件系统中已经被删除。所有在分享时既已存在的文件及文件夹会被记录在文件_磁盘簇索引表之中。因此,通过分析虚拟媒体文件系统,用户端计算机可以判断文件-磁盘簇索引表中哪个文件及文件夹不再存在于虚拟媒体文件系统中。然后此用户端计算机会删除实体碟机的来源文件夹中的这些文件及文件夹(步骤S813),如此便完成回写功能。由前述说明可以得知,仅在虚拟媒体被卸载之后(即中断联机)才将写入至虚拟媒体的数据回写至储存装置的实体文件系统中。使用本发明的文件夹分享技术,储存装置14中的任何文件夹均可被分享为服务器计算机40上的一虚拟盘机;多个文件夹可被分享为多个虚拟盘机。此外,用户端计算机10的一网络分享文件夹,亦即经由局域网络或是无线网络连接至用户端计算机10、位于另一台计算机的文件夹,亦可被分享为服务器计算机40上的一虚拟盘机。经由局域网络或是无线网络连接的计算机间的文件分享的技术已经为人所熟知,故在此不予详述。为将用户端计算机10的一网络分享文件夹分享到服务器计算机40上,执行与图4至图8所述的相同步骤。如前所述,当虚拟媒体存取时,用户端计算机产生虚拟媒体文件系统并自实体文件系统中读取数据时,虚拟媒体管理软件12会利用用户端计算机的操作系统自储存装置40的实体文件系统中读取数据及写入数据。换句话说,虚拟媒体管理软件12会经由用户端计算机的操作系统与实体文件系统产生互动。因为操作系统可以处理网络分享文件夹的读取与写入,所以不论分享到服务器计算机40的来源文件夹是否为一网络分享文件夹或是连接于用户端计算机10上的一实体储存装置,虚拟媒体管理软件12的操作都相同。在本专利中,除了连接至用户端计算机10的实体储存装置外,储存装置14一词可广泛地包含网络分享文件夹。前述所揭露的文件夹分享方法不论储存装置14的文件系统为何都适用。例如,储存装置14的文件系统可为NTFS、FAT16及FAT32等等。因为虚拟媒体管理软件12可通过用户端计算机的操作系统与储存装置14的实体文件系统互动,即使虚拟媒体管理软件12与储存装置14的实体文件系统无关,其仍可正确地要求操作系统读取某些特定信息。虚拟媒体管理软件12所产生的虚拟媒体文件系统可为计算机端模块30所提供的任何适当的文件系统,此计算机端模块30可与虚拟媒体文件系统互动。例如,此虚拟媒体文件系统并不限定于一虚拟FAT文件系统。在本专利所揭露的虚拟FAT文件系统中,目录储存每个目录入口(文件或是子目录)的起始虚拟磁盘簇索引,且虚拟FAT表储存着文件中下一个磁盘簇的磁盘簇索引,所以目录及虚拟媒体FAT表可共同描述分派给来源文件夹中每个文件的虚拟磁盘簇的顺序。亦可使用其它种类的虚拟文件系统,只要此虚拟媒体文件系统包含描述分派给来源文件夹中每个文件的虚拟磁盘簇的顺序的虚拟媒体索引信息。与实体文件系统不同的是,虚拟媒体文件系统并不包含储存实际数据文件的磁盘簇。图9说明当虚拟媒体存取时其指令(必要时可包含数据)在网络型多计算机切换系统(请参阅图1)的不同部分传递。在此范例中虚拟盘机已经被分享到服务器计算机上,用户端计算机10的使用者可经由网络型多计算机切换器20控制服务器计算机40,并且控制服务器计算机40存取此虚拟盘机。除了虚拟媒体是以文件夹(非以碟机方式分享)的方式分享外,这些步骤通常类似于传统在网络型多计算机虚拟媒体系统的虚拟媒体存取步马聚ο在图9所示的范例中,使用者经由网络型多计算机切换器20及计算机端模块30送出一键盘或鼠标指令至服务器计算机40的操作系统(目标操作系统),以浏览此虚拟盘机的一目录。如前所述,此用户端计算机10与网络型多计算机切换器20之间以网络通讯协议(例如TCP/IP)进行沟通。服务器计算机40的操作系统会送出一磁盘I/O指令(必要时可包含数据)给计算机端模块(本例中为一USB单体)30以控制此碟机。通常大部分的操作系统以SCSI指令集来执行USB碟机的输入/输出(I/O)功能,所以此处的磁盘I/O指令可为SCSI指令。如前所述,计算机端模块30仿真成服务器计算机40的一USB大量储存装置,且计算机端模块30与服务器计算机40之间的指令(包含数据)传输是以USB协议来完成。计算机端模块30送出一SCSI指令(包含任何适当的数据)给网络型多计算机切换器20。如果来自服务器计算机40的磁盘I/O指令为SCSI指令,则计算机端模块30可将其转发给网络型多计算机切换器20。如前所述,计算机端模块30与网络型多计算机切换器20之间以内部通讯协议进行沟通,在此范例中为SCSI标准。网络型多计算机切换器20送出一虚拟磁盘指令(包含任何适当的数据)给用户端计算机10。网络型多计算机切换器20与用户端计算机10之间的虚拟磁盘指令可为由制造商所定义的适当格式。用户端计算机10的KVM管理软件11将此指令转给虚拟媒体管理软件12,由其执行适当的步骤(例如图5至图7所示的过程,特别是图6所示的读取扇区功能)。KVM管理软件11及虚拟媒体管理软件12共同响应图9的“用户端应用程序”。用户端应用程序送出一指令响应(包含由虚拟盘机及/或实体碟机所读出的数据)给网络型多计算机切换器20。此网络型多计算机切换器20送出一SCSI指令响应(包含数据)给计算机端模块30,且计算机端模块30送出一磁盘I/O指令响应(包含SCSI指令响应),包括任何数据,给服务器计算机40的操作系统。然后,服务器计算机40通过计算机端模块30及网络型多计算机切换器20以影像数据的格式传送显示于服务器计算机桌面的浏览结果给用户端计算机10。KVM管理软件11将此影像数据显示在用户端计算机10的使用者界面装置15的屏幕上。类似地(未显示),当用户端计算机10的使用者希望能够控制服务器计算机40来开启虚拟盘机的文件时,用户端计算机10会经由此网络型多计算机切换器20送出一开启文件指令至服务器计算机40。此时,由网络型多计算机切换器20送至用户端应用程序的指令将会是虚拟盘机读取扇区指令,且用户端应用程序会将由适当扇区中所读出的数据传回给网络型多计算机切换器20。类似地(未显示),当用户端计算机10的使用者希望能够控制服务器计算机40将一文件储存于虚拟盘机中时,用户端计算机10会经由此网络型多计算机切换器20送出一储存文件指令至服务器计算机40。此时,由网络型多计算机切换器20送至用户端应用程序的指令将会是虚拟盘机写入扇区指令,且网络型多计算机切换系统会将传送扇区数据至用户端应用程序。虽然前述实施例中计算机端模块30仿真成服务器计算机40的一USB大量储存装置(USBmassstoragedevice),但是此计算机端模块30亦可仿真成符合其它标准协议的储存装置。在图1所示的网络型多计算机切换系统中,服务器计算机40、计算机端模块30、网络型多计算机切换器20、用户端计算机10的KVM管理软件11可类似于传统网络型多计算机切换系统的碟机分享虚拟媒体功能的对应部分。根据本发明实施例的虚拟媒体文件夹分享功能由用户端计算机10的虚拟媒体管理软件12所完成。并且,虽然在图1的网络型多计算机切换系统中,网络型多计算机切换器20经由一计算机端模块30连接至服务器计算机40,但是计算机端模块30的虚拟媒体存取功能及前述的网络型多计算机切换器20可改由具有适当硬件及固件/软件的任意模块来执行这些虚拟媒体功能。此种模块,称为虚拟媒体控制模块,可为实体上与服务器计算机40分开的模块,且连接于服务器计算机40与网络100之间,或是其可为服务器计算机40的一部分。由用户端计算机10的观点来看,虚拟媒体控制模块系为网络100上的一装置,其送出虚拟盘机指令(如前述)至用户端计算机10,且由用户端计算机10接收指令响应。由服务器计算机40的操作系统的观点来看,此虚拟媒体存取控制模块像是一个虚拟盘机并且可以由服务器计算机40接收磁盘I/O指令,并对磁盘I/O指令提供响应。本发明的文件夹分享方法的优点包括增加的弹性、兼容性、安全性、可靠度及保密性。其允许用户端计算机的使用者弹性地允许服务器计算机存取整体实体储存装置上部分但非全部的内容,因此,可保护在实体碟机上数据的机密及安全性。其显著地降低或消除在写入操作期间实体储存媒体当机的风险。当实体储存媒体及虚拟盘机使用不同文件系统时(例如,当虚拟盘机使用FAT16时,实体储存装置使用NTFS),其可支持虚拟媒体功能。虽然本发明所述的虚拟媒体方法是在网络型多计算机切换系统中,但更一般的说,其可应用于任何一服务器计算机利用网络协议(例如TCP/IP)经由网络由用户端计算机远程访问的系统。一旦登入至服务器计算机,远程用户端计算机可与服务器计算机交换键盘、影像、鼠标信号以及控制服务器计算机。本发明所述的文件夹分享虚拟媒体方法可被应用于这样的服务器计算机一用户端计算机系统中。应注意的是「服务器计算机」及「用户端计算机」的命名仅为方便使用,但不需要两台计算机具有任何特殊性能。本发明的文件夹分享虚拟媒体方法及装置可明显地由本领域的技术人员进行不同修饰及变化而不脱离该发明的精神与范围,因此,其亦指本发明涵盖包含在其附加的权利要求及其均等物的修饰及变化。权利要求一种在具有虚拟媒体功能的一系统中执行的方法,该方法至少包含以一服务器控制模块对一服务器计算机仿真出符合一标准协议的一储存装置,包括接收来自该服务器计算机的一第一指令,并依据该第一指令传送一第二指令至一虚拟媒体存取控制模块,更包含依据来自该虚拟媒体存取控制模块的一第二回复讯息传送一第一回复讯息至该服务器计算机;以该虚拟媒体存取控制模块依据该服务器控制模块所传来的该第二指令,经由一网络传送一第三指令至一用户端计算机的一虚拟媒体管理软件模块,并且依据经由该网络由该虚拟媒体存取控制模块传来的一第三回复讯息,传送该第二回复讯息至该服务器计算机;以及以该虚拟媒体管理软件模块因应于由该虚拟媒体存取控制模块所接收的该第三指令,经由该网络传送该第三回复讯息至该虚拟媒体存取控制模块,其中该第一回复讯息使得该服务器计算机可存取连接至该用户端计算机的该储存装置中的多个文件夹中特定的一个,如同一本地装置般,但不允许该服务器计算机存取该储存装置中的其它内容。2.如权利要求1所述的方法,其特征在于该储存装置至少包括由一第三计算机所分享的一网络分享文件夹;或由该服务器计算机的该服务器控制模块所接收的该第一指令是一读取指令或一写入指令。3.一种方法,在一用户端计算机与一服务器计算机相互连接所组成的一系统中,该用户端计算机具有一使用文件系统储存多个文件与文件夹的一储存装置,该方法用以将该多个文件夹其中之一分享给要被存取的该服务器计算机作为一虚拟盘机,该方法至少包含(a)选择要被该服务器计算机存取的一文件夹,该所选择的文件夹包含多个子文件夹及数据文件;(b)针对该所选择的文件夹中的每一数据文件,依据该数据文件的大小,分派一或多个虚拟磁盘簇索引顺序至该数据文件;(c)针对该所选择的文件夹在该用户端计算机产生一虚拟媒体文件系统,该虚拟媒体文件系统包括虚拟媒体索引信息,用以描述分派至该所选择的文件夹的每一数据文件的该虚拟磁盘簇索引顺序,但并不包括该数据文件的任何数据内容;(d)产生一初始状态数据结构,用以储存该所选择的文件夹中每一数据文件的一初始状态,该每一数据文件的该初始状态包含在该储存装置的该文件系统中的文件名称及路径,以及步骤(b)中分派的该虚拟磁盘簇索引;以及(e)根据一虚拟媒体读取指令,执行一虚拟媒体读取功能,指定一虚拟扇区编号以读取一笔数据,其中该虚拟扇区编号是关于由一预设转换程序而得到的一虚拟磁盘簇索引,该步骤(e)更至少包含(el)若该指定的虚拟扇区编号是位于该虚拟媒体文件系统的一扇区,则由该虚拟媒体文件系统的该扇区读取该笔数据;以及(e2)若该指定的虚拟扇区编号并非位于该虚拟媒体文件系统的一扇区,则以该初始状态数据结构及该预设转换程序判断该数据文件所在的扇区,得到该数据文件的一名称及路径及该虚拟扇区在该数据文件中的一扇区偏移量,且以该名称及路径及该扇区偏移量由该储存装置读取该笔数据。4.如权利要求3所述的方法,其特征在于,更至少包含(f)在步骤(e)之前,产生并维持一脏扇区索引表,该脏扇区索引表储存多个脏扇区的一虚拟扇区编号清单以及在一暂存数据区中对应的暂存扇区编号,每一该脏扇区可为在虚拟媒体存取时被一或多个虚拟媒体写入指令所指定的扇区;其中,若该指定的虚拟扇区编号并非位于该脏扇区索引表中,则执行步骤(el)及步骤(e2),且其中步骤(e)更至少包含(e3)如果该被指定的虚拟扇区编号位于该脏扇区索引表中,则由该脏扇区索引表得到该对应的暂存扇区编号,并且由该暂存扇区中读取该笔数据;(g)根据指定一虚拟扇区编号进行写入一笔数据的一虚拟媒体写入扇区指令,执行一虚拟媒体写入功能,至少包含(gl)若该被指定的虚拟扇区编号位于该脏扇区索引表中,则由该脏扇区索引表得到该对应的暂存扇区编号,并将该笔数据写入至该暂存扇区;以及(g2)若该被指定的虚拟扇区编号并非位于该脏扇区索引表中,则增加该虚拟扇区编号至该脏扇区索引表中,分派该脏扇区索引表中一未使用的暂存扇区给该虚拟扇区编号,并将该笔数据写入至该分配的暂存扇区。5.如权利要求4所述的方法,更至少包括(h)根据一虚拟媒体停止指令,执行一虚拟媒体回写功能,至少包含(hi)收集该来源文件夹的所有数据文件及子目录以进行分析;(h2)以该初始状态数据结构检查每一目录入口以判断其是否为一新文件夹、一旧文件夹、一新文件或一旧文件;(h3)若其为一新文件夹,在该储存装置的该文件系统中产生一新文件夹;(h4)若其为一新数据文件,在该储存装置的该文件系统中产生一新文件,以该虚拟媒体索引信息及该脏扇区索引表判断储存该文件的数据的该暂存扇区编号,并将来自该暂存扇区的数据复制到该储存装置的该文件系统;(h5)若其为一旧数据文件,以该初始状态数据结构判断该文件是否有任何更改,若该文件被更改,以该虚拟索引信息及该脏扇区索引表判断储存该数据文件的数据的该暂存扇区编号,并由该暂存扇区复制数据至该储存装置的该文件系统;以及(h6)通过分析该初始状态数据结构及该虚拟媒体索引信息,判断该来源文件夹的任何数据文件或子文件夹是否被要求删除,并删除被要求要被删除的该数据文件或子文件夹。6.如权利要求3所述的方法,其特征在于,该虚拟媒体文件系统是符合一文件配置表文件系统标准的一虚拟媒体文件配置表文件系统,其包括一虚拟媒体保留区、储存一虚拟媒体文件配置表的一虚拟媒体文件配置表区、储存一虚拟媒体根目录的一虚拟媒体目录区及储存子目录而不储存任何数据文件的数据内容的一虚拟媒体文件及目录数据区,其中该虚拟媒体文件配置表、该虚拟媒体根目录及该根目录形成该虚拟媒体索引信肩、ο7.如权利要求3所述的方法,其特征在于,该初始状态数据结构包含一文件_磁盘簇索引表,其对每一数据文件储存在该储存装置中的该文件系统的该文件名及路径、内容及在步骤(b)中指派给它的该虚拟磁盘簇索引,其中该初始状态数据结构包含一目录树状结构,其以一树状结构在该来源文件夹中储存每一数据文件的该路径及文件。8.一种执行虚拟媒体功能的系统,至少包含一虚拟媒体管理软件模块,位于一用户端计算机;一虚拟媒体存取控制模块,经由一网络连接至该用户端计算机;以及一服务器控制模块,连接至该虚拟媒体存取控制模块,该服务器控制模块仿真符合一服务器计算机的一标准协议的一储存装置,其中该虚拟媒体管理软件模块使该服务器宛如一本地装置,可对储存在一储存装置中的多个文件夹中特定的一个进行存取,该储存装置耦合至该用户端计算机,但并不允许该服务器对该储存装置中的其它内容进行存取。9.如权利要求8所述的系统,其特征在于,其中该储存装置以一文件系统储存多个文件及文件夹;其中该虚拟媒体存取控制模块从该服务器接收磁盘输入/输出(I/O)指令,基于该磁盘I/O指令产生虚拟媒体指令,经由该网络将该虚拟媒体指令传输至该用户端计算机,由该用户端计算机接收虚拟媒体指令响应,基于该虚拟媒体指令反应产生磁盘I/O回复讯息,并将该磁盘I/O回复讯息传输至该服务器;其中该虚拟媒体管理软件模块被配置以执行一虚拟媒体方法,用以在该储存装置上将该多个文件夹的其中一个分享给该服务器供其存取作为一虚拟盘机,该方法至少包含(a)由该服务器选择要被存取的该一文件夹,该所选择的文件夹包含多个子目录及数据文件;(b)针对该所选择的文件夹中的每一数据文件,基于该数据文件的大小指配一或多个虚拟磁盘簇索引顺序给该数据文件;(c)在该用户端计算机的该所选择的文件夹上产生一虚拟媒体文件系统,该虚拟媒体文件系统包含虚拟媒体索引数据,其描述分配给该所选择的文件夹的每一数据文件的虚拟磁盘簇索引顺序,而不包括该数据文件的任何数据内容;(d)产生储存在该来源文件夹中的每一数据文件的一初始状态的一初始状态数据结构,每一数据文件的该初始状态包含在该储存装置的该文件系统中的名称及路径,内容及在步骤(b)中分配给它的虚拟磁盘簇索引;以及(e)根据来自该虚拟媒体存取控制模块的一虚拟媒体读取扇区指令,该虚拟媒体存取控制模块指定用以读取一笔数据的一虚拟扇区编号,执行一虚拟媒体读取功能,其中该虚拟扇区编号是有关于由一预设转换程序所得到的一虚拟磁盘簇索引,至少包含(el)若该被指定的虚拟扇区编号是在该虚拟媒体文件系统中的一扇区,则由该虚拟媒体文件系统的该扇区读取该笔数据,并且将该笔数据传输至该虚拟媒体存取控制模块;以及(e2)若该被指定的虚拟扇区编号并非在该虚拟媒体文件系统中的一扇区,则以该初始状态数据结构及该预设转换程序判断该数据文件所在的扇区,得到该数据文件的一名称及路径及该虚拟扇区的一扇区偏移量,以该名称及路径及该扇区偏移量发出一指令至该操作系统以从该储存装置读取该笔数据,由该操作系统接收该笔数据,并将该笔数据传输至该虚拟媒体存取控制模块。10.如权利要求9所述的系统,其特征在于,该虚拟媒体方法更至少包含(f)在步骤(e)之前,产生及维持一脏扇区索引表,其储存脏扇区的虚拟扇区编号清单及在一暂存数据区中对应的暂存扇区编号,每一脏扇区为在虚拟媒体存取时被一或多个虚拟媒体写入指令所指定的一扇区;其中,若被指定的虚拟扇区编号不在该脏扇区索引表中,则执行步骤(el)及(e2),且步骤(e)更至少包括(e3)若被指定的虚拟扇区编号是在该脏扇区索引表中,则由该脏扇区索引表得到该对应的暂存扇区编号,并由该暂存扇区读取该笔数据,并将该笔数据传输至该虚拟媒体存取控制模块;(g)根据指定一虚拟扇区编号写入一笔数据的一虚拟媒体写入扇区指令,执行一虚拟媒体写入功能,至少包含(gl)若被指定的虚拟扇区编号位于该脏扇区索引表中,则由该脏扇区索引表得到该对应的暂存扇区编号,并将该笔数据写入该暂存扇区;以及(g2)若该指定的虚拟扇区编号并非位于该脏扇区索引表中,则增加该虚拟扇区编号至该脏扇区索引表中,分派该脏扇区索引表中一未使用的暂存扇区给该虚拟扇区编号,并将该笔数据写入至该分配的暂存扇区。全文摘要本发明公开了一种具有文件夹分享功能的虚拟媒体及方法,用以分享用户端计算机的储存装置中所储存的文件夹,供服务器计算机存取作为其虚拟盘机。用户端计算机分派虚拟磁盘簇索引给文件夹的每一个文件,且新增一文件-磁盘簇索引表以储存被分派的虚拟磁盘簇索引。用户端计算机也产生符合FAT文件系统标准的虚拟媒体文件系统,其具有子目录但是并不储存数据文件。虚拟媒体FAT表使用虚拟磁盘簇索引而非实体磁盘簇索引。由服务器计算机写入的数据被储存于暂存数据区而未修改储存装置的实体文件系统。请求要被写入的虚拟扇区是“脏的”,且脏扇区编号及对应的暂存扇区编号被储存于脏扇区索引表中以供一回写步骤中使用。文档编号H04L29/06GK101958918SQ20101013501公开日2011年1月26日申请日期2010年2月26日优先权日2009年7月15日发明者刘一力,姚欣申请人:宏正自动科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1