结构化存储.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
结构化存储.doc

1、结构化存储 ?????? COM的结构化存储(structured storage)机制,也称为永久存储(persistent storage)机制。结构化存储可以说是软件存储技术的一个重要进展,COM针对组件软件的需要,在文件系统的基础上,提出了结构化存储的概念。利用结构化存储,组件程序之间可很好地协同工作,一个组件程序可以与另一个组件程序共享同一个文件,就如同一个应用程序与另一个应用程序共享同一个磁盘文件系统一样。 ?????? COM定义了结构化存储的规范,包括一组接口和实现这些接口成员函数的一些规则;同时COM也提供了结构化存储的实现,即复合文档技术。复合文档技术是 OLE的基础。OLE最初的目标是在文档中嵌入或链接对象,当然现在OLE的发展已经超出了这个范围,但复合文档仍然是OLE的基础存储技术。 ? 2、结构化存储的引入 ?????? 组件化程序设计方法把应用系统设计成多个组件程序,如何在这些组件程序之间以共享方式访问同一个文件是组件化程序设计必须要解决的问题。而多个组件通过文件句柄访问共享文件难以实现,结构化存储技术“借用”文件系统的概念,在文件内部构造了一个类似于文件系统的树状层次结构,解决了这一问题。 ?????? 结构化存储的层次结构的节点可以是两种对象:存储对象和流对象,每个存储对象或者流对象都是一个可独立进行读写操作的对象,组件程序只对它拥有的节点对象进行操作。从应用系统整体上看,这些组件程序在共享访问同一个文件。 ? 3、文件系统 ?????? 操作系统的诞生把应用程序与底层存储设备隔离开来,操作系统为应用程序的运行提供了基本的抽象环境,它可以处理所有与存储设备有关的基本操作。同时,操作系统引入了文件系统的概念,允许多个应用程序共享同一个存储设备。而且,操作系统为应用程序提供了一种抽象的流式存储结构,应用程序仍然独立地访问它自己的存储空间,不同应用程序相互之间不受干扰。 ? 4、文件系统与结构化存储的框图 5、存储对象和流对象 ?????? 对于一个完整的存储操作来说,它被分为两个层次:应用程序调用API函数;操作系统提供API函数的实现。COM库提供了结构化存储的实现,它提供了一组接口和API函数供组件程序调用来完成实际的存储操作。因此,结构化存储定义的存储对象和流对象由COM库实现,应用程序或者组件程序并不需要实现这两个对象,就好比应用程序不需要实现文件句柄或者目录对象一样。 ?????? 流对象非常类似于单独的磁盘文件,它也是进行数据读写操作的基本对象,利用流对象可以保存各种类型的数据,它有自身的访问权限和一个独立的有哪些信誉好的足球投注网站指针。流对象也用一个字符串作为其名称,就好像文件名一样。流对象是一个由COM实现的组件对象,它实现了基本的COM接口IStream,应用程序通过 IStream接口访问流对象,进行各种数据访问操作。 ?????? 存储对象类似于目录对象,它也有一个字符串名称,但它本身并没有存储数据信息,它作为其子存储对象和子流对象的容器,只记录了这些子对象的信息。存储对象暴露IStorage接口,客户程序通过IStorage接口对存储对象进行操作。 ?????? 应用程序或者组件程序可以通过结构化存储机制共享同一个复合文件,存储对象和流对象也可以在这些程序之间被共享访问,即使这些程序运行在不同的进程中。 ? 6、结构化存储特性――访问模式 ?????? 存储对象和流对象支持两种基本的访问模式:直接访问和事务访问模式。在直接访问模式下,程序对存储对象或者流对象的修改操作马上生效;而在事务模式下,程序对存储对象或者流对象所作的修改被缓存起来,只有当提交(Commit)时才真正有效,如果调用Revert成员函数,则可以恢复到上次提交或刚打开时的状态。 ? 7、结构化存储特性――事务机制 ?????? 在结构化存储的树状层次结构中,事务特性可以适用于所有层次上的对象,因此,事务特性可以嵌套使用。 ?????? 事务机制需要消耗较多系统资源。 ? 8、结构化存储特性――命名规则 ?????? 在结构化存储的树状层次结构中,每个存储对象和流对象都有一个字符串名字。 ?????? 根存储对象的名字实际上就是复合文档的文件名,所以根存储对象的命名规则受文件系统影响,它遵守文件系统的命名约定。与创建和打开根存储对象有关的函数中,直接使用文件名即可。所有非根存储对象和流对象都由它们的父对象管理,由于它们存在于文件内部,因此它们的命名规则遵守COM给出的约定。 ? 9、结构化存储特性――增量访问 ?????? 增量访问的意义在于减少了保存和打开文件时的操作时间和降低了应用程序对系统资源的要求。 ?????? 对于大的复合文件的编辑操作,内存往往是个瓶颈,结构化存储本身也需要消耗一些系统内存资源,但它实现的增量访问

文档评论(0)

ziyouzizai + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档