PDM系统持久状态管理分析课件.ppt

上传人:小飞机 文档编号:4031721 上传时间:2023-04-01 格式:PPT 页数:46 大小:384KB
返回 下载 相关 举报
PDM系统持久状态管理分析课件.ppt_第1页
第1页 / 共46页
PDM系统持久状态管理分析课件.ppt_第2页
第2页 / 共46页
PDM系统持久状态管理分析课件.ppt_第3页
第3页 / 共46页
PDM系统持久状态管理分析课件.ppt_第4页
第4页 / 共46页
PDM系统持久状态管理分析课件.ppt_第5页
第5页 / 共46页
点击查看更多>>
资源描述

《PDM系统持久状态管理分析课件.ppt》由会员分享,可在线阅读,更多相关《PDM系统持久状态管理分析课件.ppt(46页珍藏版)》请在三一办公上搜索。

1、PDM系统持久状态管理分析,飞行器并行工程软件研发中心国防科技大学航天学院,2023/4/1,内容提要,一、PDM系统的持久状态管理二、持久化框架的分析与设计三、CORBA的持久状态服务,2023/4/1,内容提要,一、PDM系统的持久状态管理1、持久化与持久状态管理2、PDM系统中需持久化的对象3、持久状态管理的任务与功能范围,2023/4/1,内容提要,二、持久化框架的分析与设计1、框架的概念2、持久化框架概述3、持久化框架概要设计,2023/4/1,内容提要,三、CORBA的持久状态服务1、概述2、对象到存储机构的映射3、数据定义4、数据访问,2023/4/1,PDM系统的持久状态管理,

2、持久化与持久状态管理持久化指的是将信息保存在持久性的存储介质中,如通过文件、数据库方式保存在磁盘内。持久状态管理就是管理对象的持久化,即管理对象状态的持久化。,2023/4/1,PDM系统的持久状态管理,PDM系统中需持久化的对象PDM系统的服务需要被持久化,以便永久保存系统及系统所管理的产品的相关信息。需持久化的信息不但存在于被PDM系统电子仓库管理的文件内,还存在于系统运行时产生的许多对象中,因此这些对象需要被持久化。需被持久化的对象主要有:非结构化的产品数据保存在文件中,通过电子仓库管理。结构化的产品数据如的产品结构定义、其相关的产品数据,以及产品的配置情况等等,这些信息存在于一系列相关

3、联的对象中,需要持久化。,2023/4/1,PDM系统的持久状态管理,组织产品信息的相关对象为了管理产品信息,PDM系统所定义的某些对象,如各种版本、迭代对象等。这些对象可能不直接包含产品数据,但它们建立了产品数据间的结构等关系,这些用于组织产品数据的对象也应为持久的,以便这些关系能够重建。与产品及其开发过程管理相关的对象如人员、组织、权限对象,各种资格、有效性、语境对象等等。这些对象一经建立,通常需要保存下来供以后使用。PDM系统运行控制中的相关对象如用于监控系统运行状态的对象、日志对象等等。2结构化的产品数据,2023/4/1,PDM系统的持久状态管理,以上PDM系统中需持久化的信息除了保

4、存在文件中的非结构化产品数据之外,都以对象形式存在,需将它们的信息保存到数据库中。,2023/4/1,PDM系统的持久状态管理,持久状态管理的任务与功能范围PDM系统的持久状态管理模块实际上是指系统的持久化框架,它为对象持久化提供服务,并且它本身是系统实现持久化的核心和基础,提供了一组完成对象持久化功能所需类的泛化超类的集合。PDM系统的持久状态管理主要有以下两方面的任务:提供PDM系统对象持久化的统一模式 持久状态管理为整个PDM系统对象的持久化提供一种解决方案或者模式,使得所有需持久化的对象都能按这种一致的模式来实现其状态的持久化。统一管理PDM系统对象状态的持久化 持久状态管理模块完成统

5、一管理PDM系统各持久对象持久化的功能,或者说持久状态管理模块为PDM系统的各持久,2023/4/1,PDM系统的持久状态管理,对象提供持久状态管理服务。这些服务包括透明的数据库连接访问、数据更新、数据创建等,以及自动创建存储PDM系统持久对象的数据库模式。所有按对象持久化统一模式设计的对象,均可以通过持久状态管理服务实现对象状态的持久化。,2023/4/1,持久化框架的分析与设计,框架的概念工具箱预定义的类库,一组相关的、可复用的类的集合,提供了通用的功能。强调的是“代码复用”,是面向对象环境下的“子程序库”。工具箱不强制应用采用某个特定设计,只是为应用提供功能上的帮助。框架框架是构成一类特

6、定软件可复用设计的一组相互协作的类。框架规定了应用的体系结构,定义了整体结构、类和对象的划分、各部分的主要责任、类和对象如何协作、以及控制流程。框架记录了其应用领域的公共设计决策,使应用设计者或实现者集中精力于应用本身的特定细节。框架更强调“设计复用”,尽管框架也常包含“代码复用”。,2023/4/1,持久化框架的分析与设计,框架与工具箱的根本区别“设计复用”导致了应用和它所基于的软件框架之间的反向控制,即遵循好莱坞法则,“不要调用我们,让我们来调用你”(多态性和动态绑定)。使用工具箱时,应用设计者应设计实现应用软件的主体并调用想要复用的代码。而使用框架时,应用设计者应该复用应用的主体(框架)

7、,写主体调用的代码(应用本身的特定细节)。通常为了利用、自定义或扩展框架服务,需要框架的使用者去定义已存在的框架类的子类。对框架设计的要求必须是适应该领域所有应用的通用体系结构,必须尽可能的灵活、可扩充。其主要贡献就在于它所定义的体系结构,对它的任何实质性修改都会大大降低它所带来的好处。,2023/4/1,持久化框架的分析与设计,设计模式 面向对象软件的设计经验的记录,描述了面向对象软件设计中不断重复遇到的问题及其解决方案的核心,其目的是提高软件的可复用性。设计模式是比框架更小的体系结构元素 设计模式比框架更抽象 框架比设计模式更加特例化,2023/4/1,持久化框架的分析与设计,持久化框架概

8、述持久化对象应用程序的对象实例通常都需要存放在持久化的存储机构(如关系数据库、面向对象的数据库或平面文件)中,每次使用时载入本地内存。需要存储在持久化存储机构中的对象称为持久化对象。持久化对象服务为应用程序提供在持久化存储机构中存放和取回对象的服务。各类存储机构对持久化框架的需求对象数据库:数据表示一致,都是面向对象的,不需要额外的持久化服务,2023/4/1,持久化框架的分析与设计,关系数据库:面向记录与面向对象的数据表示不一致,需要特殊的对象关系服务 其它:如平面文件,同样存在面向对象与非面向对象的数据表示上的不匹配问题,也需要特定的持久化服务 持久化框架为持久化对象提供的服务 在持久化存

9、储机构中存储和取回对象 具有可扩展性,支持多种存储机构,如关系数据库、平面文件等 对已存在的代码尽量少做修改,避免给对象增加额外的持久化职责(超类的弊端)在后台透明地存在 易于使用,2023/4/1,持久化框架的分析与设计,持久化框架的关键思想 映射:类与其永久存储器(如关系数据库中的一个表)之间,对象属性与记录中的字段之间要建立映射关系 对象身份:记录与对象实例间建立联系,记录和对象要有唯一的对象标识符 具体化和非具体化(Materialization and Dematerialization):具体化是把持久化存储器的非对象化的数据表示(如记录)转换为对象的动作,而非具体化则相反数据库代

10、理(Broker):纯虚的数据库代理类负责具体化和非具体化工作 缓存(Cache):数据库代理缓存具体化了的对象 懒惰随选具体化(Lazy on-demand Materialization):并非一次性完成所有对象的具体化,而是随时根据需求来完成,2023/4/1,持久化框架的分析与设计,智能引用:懒惰随选具体化通过使用称为虚拟代理的智能引用机制实现 复杂对象:如何表示和具体化具有复杂结构的对象,比如与其它对象之间存在大量连接的对象 对象的事务状态:根据对象的状态与当前事务的关系来进行相应处理,如知道某对象已被更新(弄脏),就可以决定是否需要对它进行保存事务操作:提交(Commit)和回滚(

11、Rollback),2023/4/1,持久化框架的分析与设计,持久化框架概要设计映射用关系表来表示对象(对关系数据库)。为每个持久化对象类定义一个表,简单数据类型的对象属性被映射为数据库关系表的列。(下图),2023/4/1,持久化框架的分析与设计,问题:关系模型要求属性值是原子的,而对象可以引用其它复杂对象作为自己的属性,这种非原子的属性简单的关系表不能处理,将留在后面给出解决方案。对象身份将对象记录一一对应。对每个对象及其记录分配一个对象标识符OID,以区分不同的记录和对象。(注意复制的对象与原对象不同)OID对某特定类型的对象来说必须是唯一的,最好是选择全局唯一的标识符,如16位长的UU

12、ID,或微软的全球唯一标识符GUID。每个关系数据库表都以OID作为主键,每个持久对象都直接或间接地拥有一个OID。(下图),2023/4/1,持久化框架的分析与设计,实际应用中OID不一定放在持久化对象中,可以放在代理对象中(Proxy)。,2023/4/1,持久化框架的分析与设计,数据库代理 如果持久化对象类负责自身的具体化和非具体化:持久化对象类与持久化存储机构之间存在信息耦合(违背低耦合原则)在一个毫无关系的新的范围内增加对象的职责(违背高内聚的原则)数据库代理模式设计一个类来负责具体化、非具体化、对象缓存等工作,通过加入中介者的方式支持高内聚和低耦合。对每个不同的持久化对象类都定义一

13、个相应的代理类,而且对不同的存储机构有不同种类的代理。(下图),2023/4/1,持久化框架的分析与设计,2023/4/1,持久化框架的分析与设计,框架设计的核心模板方法模式 关键是好莱坞准则和反向控制,即父类调用子类的方法。在父类中定义一个模板方法,在其中定义算法的基本框架。模板方法调用其它方法,其中一些是可在子类中被覆盖的操作(纯虚)。子类通过覆盖父类的可变方法,在方法中增加了子类自己独特的行为特征。实现是基于面向对象程序设计的多态性和动态绑定机制。(下图),2023/4/1,持久化框架的分析与设计,2023/4/1,持久化框架的分析与设计,特点:在抽象超类中使用模板方法,定义了框架的可变

14、和不可变的部分。在缓存中查找和具体化对象的模式不变,但具体化的细节根据存储机构类型和对象数据结构的不同是可变的可以在框架中定义和添加子类,定义对不同细节的处理子类中对“基本操作”的定义完成了被继承了的模板方法好处:可扩展,能适应各种情况对不同情况实现统一处理,屏蔽了具体细节很强的可重用性,2023/4/1,持久化框架的分析与设计,缓存管理 为提高性能,应当缓存已被具体化的对象。由数据库代理负责维持缓存中的对象信息。根据对象在当前事务语境中所处的状态将它们保存在不同的缓存中,代理负责维护6个缓存:新干净缓存:新对象,尚未被更新旧干净缓存:从数据库具体化而来的旧的对象,尚未被更新新脏缓存:新的对象

15、,已被更新旧脏缓存:从数据库具体化而来的旧的对象,已被更新新删除缓存:新的对象,将要被删除旧删除缓存:从数据库具体化而来的旧的对象,将要被删除(前图),2023/4/1,持久化框架的分析与设计,智能引用代理前述方案中,客户必须知道对象OID及特定的Broker,才能具体化服务对象,而这些对客户应该是透明的。可以通过对象的智能引用代理(Proxy)实现对象具体化过程对客户的透明化。智能引用代理是一个轻量级的对象,来代表可被具体化的对象,它实现了与实际对象一样的接口,使用桥模式将接口定义与实现分离,从客户端看来它彷佛就是实际的对象 智能引用代理可以将对象的具体化过程推迟到对象真正需要时再进行,称为

16、懒惰随选具体化。智能引用代理负责懒惰随选具体化过程,它需要知道实际的主体对象及其数据库代理。把所有对象的智能引用代理的这种职责抽象出来,建立一个泛化的抽象虚拟代理超类,由它来保存对象OID、管理实际对象及其数据库代理。(下图),2023/4/1,持久化框架的分析与设计,2023/4/1,持久化框架的分析与设计,2023/4/1,持久化框架的分析与设计,虚拟代理和数据库代理虚拟代理和数据库代理协作来完成对象的具体化过程,这一过程基于由代理所维护的OID使用工厂方法模式,虚拟代理可以获得对象数据库代理的唯一实例对所有对象的请求都通过代理Proxy,而不直接引用对象(下图),2023/4/1,持久化

17、框架的分析与设计,2023/4/1,持久化框架的分析与设计,复杂对象的具体化考虑不但包含简单属性还与其它对象有关联的对象。在关系数据库中对象间的关联可用关系表来表示。有一对一、一对多、多对多关联,都可以建立关联表,记录关系中每个对象的OID。复杂对象具体化时要考虑具体化的关系层次,这要根据系统特点和性能需求综合考虑。最简单的是100请求式具体化。各层对象的具体化都是通过其对象代理Proxy实现的。,2023/4/1,持久化框架的分析与设计,事务操作提交commit(执行)回滚rollback(恢复原状)对象的事务状态:新干净、旧干净、新脏、旧脏、新删除、旧删除,分别放在对应的缓存中。对象属性被

18、更改,它就会变脏,事务状态即更改。对象事务状态改变时它将被移动到新事务状态对应的缓存中。根据对象的事务状态不同,事务操作具体执行情况不同。,2023/4/1,CORBA的持久状态服务,概述CORBA的持久状态服务(Persistent State Service,简称PSS)为使用各种类型的数据存储方式如文件、数据库等提供了统一的API,使得CORBA对象能够方便地持久化。其中状态即是指持久化对象的属性。CORBA对象通过外部接口为客户提供服务,通过内部接口来访问数据存储。PSS服务就是针对这一内部接口的,相当于三层C/S模式中的应用逻辑层到数据层的接口。客户仅访问服务对象的外部接口,无法知道

19、服务对象是否使用了PSS服务。(下图),2023/4/1,CORBA的持久状态服务,2023/4/1,CORBA的持久状态服务,对象到存储机构的映射实现对象的持久化,首先必须将对象系统的数据模式映射到存储机构的数据模式,如面向对象数据库、关系数据库、文件系统等。PSS服务中,将持久信息作为storage objects存储在storage homes中,而storage homes又保存在datastore中。Datastore是一个管理数据的实体,如数据库、一系列文件、关系数据库的一个模式等。为了管理storage object,程序中必须有一个对象来代表它,称为一个storage obje

20、ct instance。storage object instance与datastore中的storage object进行绑定,从而可以直接与这一storage object的状态关联。与storage object建立连接后的storage object instance称为storage object incarnation(化身)。,2023/4/1,CORBA的持久状态服务,同样,程序中存在对应于storage home的storage home instance对象。storage home instance对象由catalogs提供。以关系数据库来看,datastore就相当于

21、数据库,storage home相当于数据库中的表,而storage object对应于数据库表中的记录。而storage object与对象系统中的持久化对象相对应。这样就实现了对象数据到存储机构的映射。(下图),2023/4/1,CORBA的持久状态服务,2023/4/1,CORBA的持久状态服务,数据定义 CORBA的PSS服务使用持久状态定义语言PSDL来定义datastore模式及相应的storage object instances的应用编程接口。也可直接使用编程语言定义,称为Transparent Persistence。PSDL是IDL的一个超集,遵从IDL的语法,主要增加了一

22、些关键字和四个新的结构:abstract storagetype、abstract storagehome、storagetype和storagehome。abstract storagetype和abstract storagehomeabstract storagetype用来定义storage object,abstract storagehome用来定义storage home。abstract storagetype可以具有状态成员和操作,而abstract storagehome只能有操作,没有状态成员,但可以定义该storage home的关键字。,2023/4/1,CORBA的

23、持久状态服务,Storage object的定位、创建等都可通过定义在存储(或将要存储)该storage object的storage home上的操作来完成。storagetype和storagehomeStoragetype和storagehome分别定义了storage object和storage home的实现,它们分别实现(Implement)了abstract storagetype和abstract storagehome。(个人理解这里的实现是将通用的数据存储模式进一步特化到某种特定的数据存储描述,如文件或关系数据库、Oracle或SQL Server)。abstract s

24、toragehome与abstract storagetype、storagehome与storagetype是相互对应的,每种storage home只能用来存储特定storagetype的storage object。,2023/4/1,CORBA的持久状态服务,abstract storagetype和abstract storagehome允许多重继承和钻石形继承,通过继承形成storagetype和storagehome的家族(family);而作为abstract storagetype和abstract storagehome的实现的storagetype和storagehome

25、则只允许单继承。这些继承关系要求满足类型的一致性,如两个storagehome的继承要求它们对应的storagetype也有一致的继承关系。使用PSDL语言,可以定义对象的状态持久化映象storage object及其存储位置storage home,PSS服务自动将PSDL语言定义的以对象系统方式描述的持久状态信息结构转化到数据存储模式(可以是关系数据库的表结构)。,2023/4/1,CORBA的持久状态服务,数据访问为了访问storage object,程序需要建立与datastore的逻辑连接,称为会话(session)。会话的管理有两种方式:显式和隐式,分别对应于两种catalog:s

26、ession和session pool。显式方式由用户自己建立和管理会话,隐式会话管理则使用session pool来为用户自动管理会话。每个CORBA的PSS服务实现提供了一个局部连接对象(local connector object),用户可用它来创建session和session pool,从而可实现对storage object的访问。,2023/4/1,CORBA的持久状态服务,2023/4/1,CORBA的持久状态服务,PSS服务实现了对象系统到数据存储机构的自动映射,同时屏蔽了对数据的访问。因此CORBA的PSS服务不但为我们提供了一种进行持久状态管理的系统化机制,而且可能有效减少开发的工作量,提高可靠性。(PSS可看作持久化框架)CORBA持久状态服务的详细说明请参考Persistent State Service Specification。,2023/4/1,结束语,谢谢!请多提宝贵意见!,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号