WO2008110108A1 - Procédé et dispositif pour réaliser une persistance d'objet distribué et unité de compilation - Google Patents
Procédé et dispositif pour réaliser une persistance d'objet distribué et unité de compilation Download PDFInfo
- Publication number
- WO2008110108A1 WO2008110108A1 PCT/CN2008/070453 CN2008070453W WO2008110108A1 WO 2008110108 A1 WO2008110108 A1 WO 2008110108A1 CN 2008070453 W CN2008070453 W CN 2008070453W WO 2008110108 A1 WO2008110108 A1 WO 2008110108A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- distributed object
- persistence
- persistent
- distributed
- code
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
- G06F9/4493—Object persistence
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Devices For Executing Special Programs (AREA)
Description
实现分布式对象持久化的方法、 装置及编译单元
本申请要求于 2007 年 3 月 12 日提交中国专利局、 申请号为 200710079448.7、 发明名称为"实现分布式对象持久化的方法、 装置及编译单 元"的中国专利申请的优先权, 其全部内容通过引用结合在本申请中。
技术领域
本发明涉及分布式系统技术领域, 特别涉及实现分布式对象持久化的方 法、 装置及编译单元。
背景技术
随着计算机应用的迅速普及和现代信息技术的飞速发展,应用网络化要求 系统高效地支持资源共享、 信息共享、 负载共享、 应用集成和协调工作, 进而 提高其可用性、 可靠性、 可维护性和可扩展性。
分布式系统屏蔽分布式对上层应用的影响,使客户端像使用本地服务一样 使用远端(跨进程或跨机器)的服务。 支持存储于不同地址空间的程序级对象 之间彼此进行通信, 实现远程对象之间的无缝远程调用。 分布式系统具有以下 优点:
1 )可靠性和坚固性: 资源冗余和自治控制使系统具备动态重构能力, 甚 至经受局部破坏也能继续工作。 系统的模块性有利于维修和使用。
2 )增量扩展性: 以廉价的模块作为系统扩展或资源更新的增量, 不必像 集中系统那样必须替换整个系统。
3 )灵活性: 系统的配置容易改变, 以适应不同应用对象的各种需要。
4 )快速响应能力: 计算机资源更加靠近用户, 特别是使分散的小用户能 获得计算机的快速响应和直接服务,从而把大型机的计算能力与微型机的使用 方便二者结合起来。
5 )资源共享: 在对用户透明的基础上实现软件 、 硬件资源的共享, 使单 个用户的可用资源成倍增加。
6 )增强计算能力: 按任务分布的并行处理能力受系统规模的限制较少; 而按功能分布的专用处理部件同样能增强系统的有效处理能力。
7 )经济性: 有利于发挥微型计算机的性能价格比优势。
8 )适应各种应用环境: 分布计算机系统每一个节点上的资源配置能与当
地用户的需求很好匹配, 因而特别适用于经济管理、 事务管理、 过程控制等这 样一些具有分散用户又要求相互协调的应用场合。
由于上述优势的存在, 分布式系统不可阻挡的成为现在和以后的应用主 力。 当分布式对象在内存中创建后, 他们不可能永远存在, 因此必须对对象进 5 行持久化。 狭义的理解, "持久化"仅仅是把对象永久保存到数据库中; 广义的 理解, "持久化"包括保存到数据库、 文件系统、 磁带或者其他机器等等。 分布 式对象的持久化有着广泛的用途,如在通讯系统中可以实现呼叫的自动钝化和 激活; 可以支持呼叫备份, 实现高可靠性机制等等。 现有的将分布式对象进行 持久化主要有以下实现几种方式:
) 1. 通过对象 /关系模型映射(O/R Mapping )工具实现分布式对象持久化:
Hibernate是一个 java开放源代码的对象 /关系模型映射, O/R Mapping提供了 多种典型工具, Hibernate只是其中的一种。 O/R Mapping工具实现了 java下 的对象模型到数据库模型的自动映射。可以将分布式对象持久化到关系型数据 库中, 或从关系型数据库中恢复对象。
5 但是, 由于 O/R Mapping工具都是基于 java语言实现, 因而无法在 C++ 和其他语言下使用。
2. 通过手工编程调用方式实现分布式对象持久化: 通过手工编程的方式 调用分布式对象的序列化和反序列化函数,将分布式对象持久化到关系型数据 库中, 或从关系型数据库中恢复对象。
) 釆用上述方法时,由于对分布式对象序列化和反序列化函数的调用点必须 写死在程序代码中, 因而, 当分布式对象发生变化时, 需要重新编写序列化和 反序列化代码函数; 如果序列化和反序列化调用点发生变化,还需要修改用户 的程序代码。
发明内容
5 本发明实施例提供一种实现分布式对象持久化的方法、 装置及编译单元, 以实现不依赖于语言特性的、 通用的分布式对象持久化方式。
本发明实施例包括:
一种实现分布式对象持久化的方法, 包括:
对分布式对象编译时 ,根据为需要持久化的分布式对象设置的持久化标识
生成用于持久化操作的操作代码;
在分布式系统启动时根据配置文件中设置的标识所述分布式对象开始持 久化操作的时间点, 调用与所述分布式对象对应的用于持久化操作的操作代 码, 对所述分布式对象进行持久化操作。
5 一种实现分布式对象持久化的装置, 包括:
配置单元,用于应用接口定义的语言为需要持久化的分布式对象设置持久 化标识; 在配置文件中设置标识某分布式对象开始持久化操作的时间点; 编译单元, 用于根据所述持久化标识生成用于持久化操作的操作代码; 持久化单元, 用于根据所述开始持久化操作的时间点,调用与所述分布式 ) 对象对应的用于持久化操作的操作代码, 对所述分布式对象进行持久化操作。
一种编译单元, 包括:
操作代码生成单元, 用于对分布式对象编译时,根据为需要持久化的分布 式对象设置的持久化标识, 生成用于持久化操作的操作代码。
本发明实施例对分布式对象编译时,根据持久化标识自动生成用于持久化 5 操作的操作代码;在分布式系统启动时读取的配置文件中设置标识某分布式对 象开始持久化操作的时间点;根据该时间点调用与所述分布式对象对应的用于 持久化操作的操作代码, 对所述分布式对象进行持久化操作。
应用本发明,使得分布式对象的持久化操作不依赖于某种语音特征, 因而 提供了一种通用的分布式对象持久化方式。由于分布式对象持久化的操作是分 ) 布式系统实现的, 因而减轻了程序员的开发和维护的工作量。
附图说明
图 1是根据本发明一实施例的实现分布式对象持久化的流程示意图; 图 2是根据本发明一实施例的实现分布式对象持久化的装置结构示意图。 具体实施方式
5 下面结合附图对本发明再做详细说明。
所谓分布式对象的持久化实际就是分布式对象属性的持久化, 例如,如果 某个分布式对象包含三个属性, 其中的两个需要持久化, 则通常可以称为该分 布式对象需要持久化, 或者,也可以称为该分布式对象的某个或某些属性需要 持久化。
参见图 1 , 其是根据本发明一实施例的实现分布式对象持久化的流程示意 图。 本实施例中, 假设一个分布式对象的三个属性中有两个属性需要持久化。
步骤 101 , 为需要持久化的分布式对象设置持久化标识, 具体为: 在接口 定义语言(IDL, Interface Definition Language ) 中增加一个持久化标识, 用于 标识分布式对象的某个属性需要持久化。 持久化标识针对分布式对象的属性, 每个需要持久化的分布式对象属性对应一个持久化标识。由于持久化标识是应 用接口定义的语言设置的, 这样可以使得具体实现不依赖于语言特性。
例如:
持久化标识 attribute long amount;
double price; 上述例子表示名称为 Commondityltem的分布式对象带有三个属性,其中前 两个需要持久化。
步骤 102 , 应用 IDL编译器对分布式对象编译时, 根据持久化标识自动生 成用于持久化操作的操作代码;该用于持久化操作的操作代码可以是序列化函 数。 当然, 在生成用于持久化操作的操作代码如序列化函数的同时, 还可以自 动生成与用于持久化操作的操作代码对应的、用于恢复分布式对象属性操作的 操作代码, 该用于恢复分布式对象属性操作的操作代码可以是反序列化函数。 序列化函数用于对分布式对象进行持久化操作,将持久化的操作结果保存在緩 冲器(buffer )或硬盘内; 反序列化函数用于根据 buffer或硬盘内的数据恢复出 分布式对象中已被持久化的属性。
上述两个步骤可被看作是持久化操作的预处理, 与步骤 103之间没有紧密 的时间联系, 但生成的代码供 103步骤使用, 代码自动生成后减少了人工写代 码的工作量。
步骤 103 , 在配置文件中设置开始持久化操作的时间点, 分布式系统启动 时读取该配置文件,根据所述开始持久化操作的时间点, 调用与分布式对象对 应的、 用于持久化操作的操作代码, 对所述分布式对象进行持久化操作。
分布式系统在持久化分布式对象时,可以将序列化后的结果保存在内存或 5 硬盘中, 或者, 还可以同步到备份节点中实现高可靠性机制。
在上述配置文件中,还可以包括: 标识恢复某分布式对象属性操作的时间 点。 这样在分布式对象持久化操作结果被保存后, 还可以包括: 根据恢复某分 布式对象属性操作的时间点,调用用于恢复持久化操作的操作代码, 恢复出分 布式对象的持久化属性。
) 上述开始持久化操作的时间点或恢复分布式对象属性操作的时间点,可以 在分布式对象被远程调用之前或之后, 还可以在远程调用之前和之后同时存 在。
在上述实施例中,以 IDL语言为例,描述了实现分布式对象持久化的流程, 本发明实施例并不限于使用 IDL语言为需要持久化的分布式对象设置持久化 5 标识, 还可以使用其他语言设置所述久化标识, 比如, 使用网络服务描述语言 (WSDL , Web Services Description Language)等。
本发明实施例还公开了一种实现分布式对象持久化的装置, 参见图 2, 包 括:
配置单元 210, 用于应用接口定义的语言为需要持久化的分布式对象设置 ) 持久化标识; 在配置文件中设置标识某分布式对象开始持久化操作的时间点; 编译单元 220,用于根据所述持久化标识生成用于持久化操作的操作代码; 持久化单元 230, 用于根据所述开始持久化操作的时间点, 调用与所述分 布式对象对应的、用于持久化操作的操作代码,对所述分布式对象进行持久化 操作。
5 本发明实施例所述装置还可以包括: 持久化恢复单元(图中未示),此时, 上述配置单元还用于标识恢复某分布式对象属性操作的时间点;编译单元还用 于自动生成与所述用于持久化操作的操作代码对应的、用于恢复分布式对象属 性操作的操作代码;持久化恢复单元用于在所述分布式对象持久化操作结果被
保存后,根据所述恢复某分布式对象属性操作的时间点, 调用所述用于恢复持 久化操作的操作代码, 恢复出分布式对象的持久化属性。
同样地, 开始持久化操作的时间点或恢复分布式对象属性操作的时间点, 可以在分布式对象被远程调用之前或之后,还可以在远程调用之前和之后同时 存在。
本发明实施例还公开了一种编译单元, 包括:
操作代码生成单元, 用于对所述分布式对象编译时,根据持久化标识自动 生成用于持久化操作的操作代码。
上述操作代码生成单元还用于自动生成与所述用于持久化操作的操作代 码对应的、 用于恢复分布式对象属性操作的操作代码。
可见, 本发明实施例使得分布式对象的持久化操作不依赖于某种语音特 征, 因而提供了一种通用的分布式对象持久化方式。 由于分布式对象持久化的 操作是分布式系统实现的, 因而减轻了程序员的开发和维护的工作量。
以上所述仅为本发明的较佳实施例而已, 并非用于限定本发明的保护范 围。 凡在本发明的精神和原则之内所作的任何修改、 等同替换、 改进等, 均包 含在本发明的保护范围内。
Claims
1、 一种实现分布式对象持久化的方法, 其特征在于, 包括:
对分布式对象编译时,根据为需要持久化的分布式对象设置的持久化标识 生成用于持久化操作的操作代码;
5 在分布式系统启动时根据配置文件中设置的标识所述分布式对象开始持 久化操作的时间点, 调用与所述分布式对象对应的用于持久化操作的操作代 码, 对所述分布式对象进行持久化操作。
2、 根据权利要求 1所述的方法, 其特征在于, 所述方法还包括: 使用应用接口定义的语言或者网络服务描述语言设置所述持久化标识。
) 3、 根据权利要求 1所述的方法, 其特征在于, 每个需要持久化的分布式 对象属性对应一个持久化标识。
4、 根据权利要求 1所述的方法, 其特征在于, 所述方法还包括: 将所述分布式对象持久化操作结果保存在内存或硬盘中,或同步到备份节 点中。
5 5、 根据权利要求 4所述的方法, 其特征在于, 所述方法还包括:
生成与所述用于持久化操作的操作代码对应的用于恢复分布式对象属性 操作的操作代码;
在所述分布式对象持久化操作结果被保存后, 根据所述配置文件中设置 的、标识所述分布式对象开始恢复操作的时间点, 调用所述用于恢复持久化操 ) 作的操作代码, 恢复出分布式对象的持久化属性。
6、 根据权利要求 5所述的方法, 其特征在于,
所述用于持久化操作的函数包括序列化函数;
所述用于恢复持久化操作的操作代码包括反序列化函数。
7、 根据权利要求 5所述的方法, 其特征在于, 所述开始持久化操作的时 5 间点或恢复分布式对象属性操作的时间点,在所述分布式对象被远程调用之前 或之后, 或在所述远程调用之前和之后同时存在。
8、 一种实现分布式对象持久化的装置, 其特征在于, 包括:
配置单元,用于应用接口定义的语言为需要持久化的分布式对象设置持久 化标识; 在配置文件中设置标识某分布式对象开始持久化操作的时间点;
编译单元, 用于根据所述持久化标识生成用于持久化操作的操作代码; 持久化单元, 用于根据所述开始持久化操作的时间点,调用与所述分布式 对象对应的用于持久化操作的操作代码, 对所述分布式对象进行持久化操作。
9、 根据权利要求 8所述的装置, 其特征在于,
5 所述配置单元, 还用于标识恢复某分布式对象属性操作的时间点;
所述编译单元,还用于生成与所述用于持久化操作的操作代码对应的用于 恢复分布式对象属性操作的操作代码;
该装置还包括:
持久化恢复单元, 用于在所述分布式对象持久化操作结果被保存后,根据 ) 所述恢复某分布式对象属性操作的时间点,调用所述用于恢复持久化操作的操 作代码, 恢复出分布式对象的持久化属性。
10、 一种编译单元, 其特征在于, 包括:
操作代码生成单元, 用于对分布式对象编译时,根据为需要持久化的分布 式对象设置的持久化标识, 生成用于持久化操作的操作代码。
5 11、 根据权利要求 10所述的编译单元, 其特征在于,
所述操作代码生成单元,还用于生成与所述用于持久化操作的操作代码对 应的用于恢复分布式对象属性操作的操作代码。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007100794487A CN100456238C (zh) | 2007-03-12 | 2007-03-12 | 实现分布式对象持久化的方法、装置及编译单元 |
CN200710079448.7 | 2007-03-12 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2008110108A1 true WO2008110108A1 (fr) | 2008-09-18 |
Family
ID=38709566
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2008/070453 WO2008110108A1 (fr) | 2007-03-12 | 2008-03-10 | Procédé et dispositif pour réaliser une persistance d'objet distribué et unité de compilation |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN100456238C (zh) |
WO (1) | WO2008110108A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100456238C (zh) * | 2007-03-12 | 2009-01-28 | 华为技术有限公司 | 实现分布式对象持久化的方法、装置及编译单元 |
CN103309733A (zh) * | 2013-06-07 | 2013-09-18 | 深圳中兴网信科技有限公司 | 任务调度信息持久化装置和任务调度信息持久化方法 |
CN103678609B (zh) * | 2013-12-16 | 2017-05-17 | 中国科学院计算机网络信息中心 | 一种基于分布式关系‑对象映射处理的大数据查询的方法 |
CN108399068B (zh) * | 2018-03-02 | 2021-07-02 | 上海赞控网络科技有限公司 | 函数程序持久化的方法、电子设备及存储介质 |
CN110647480B (zh) * | 2018-06-26 | 2023-10-13 | 华为技术有限公司 | 数据处理方法、远程直接访存网卡和设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1290889A (zh) * | 1999-09-30 | 2001-04-11 | 精工爱普生株式会社 | 程序对象的串行化和解串行的版本适应 |
CN1534456A (zh) * | 2003-03-26 | 2004-10-06 | 类型桥 | |
CN101021791A (zh) * | 2007-03-12 | 2007-08-22 | 华为技术有限公司 | 实现分布式对象持久化的方法、装置及编译单元 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6638315B2 (en) * | 1998-09-21 | 2003-10-28 | Wall Data Incorporated | Method for preserving the state of a java applet during the lifetime of its container |
US7096419B2 (en) * | 2001-02-16 | 2006-08-22 | Sas Institute Inc. | System and method for object state persistence |
US20040010498A1 (en) * | 2002-07-10 | 2004-01-15 | Lin Tser Yeng | Object persistence to relational database within run-time environment supporting attributes and reflection |
US20050149952A1 (en) * | 2003-04-11 | 2005-07-07 | Microsoft Corporation | Persisting state across navigations in a navigation-based application and responding to navigation-related events throughout an application |
US7502811B2 (en) * | 2004-07-08 | 2009-03-10 | International Business Machines Corporation | Defer container-managed persistence operations on transactional objects |
US7493313B2 (en) * | 2004-09-17 | 2009-02-17 | Microsoft Corporation | Durable storage of .NET data types and instances |
-
2007
- 2007-03-12 CN CNB2007100794487A patent/CN100456238C/zh not_active Expired - Fee Related
-
2008
- 2008-03-10 WO PCT/CN2008/070453 patent/WO2008110108A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1290889A (zh) * | 1999-09-30 | 2001-04-11 | 精工爱普生株式会社 | 程序对象的串行化和解串行的版本适应 |
CN1534456A (zh) * | 2003-03-26 | 2004-10-06 | 类型桥 | |
CN101021791A (zh) * | 2007-03-12 | 2007-08-22 | 华为技术有限公司 | 实现分布式对象持久化的方法、装置及编译单元 |
Also Published As
Publication number | Publication date |
---|---|
CN101021791A (zh) | 2007-08-22 |
CN100456238C (zh) | 2009-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8533717B2 (en) | Fast platform independent inter-process communication | |
Karmani et al. | Actor frameworks for the JVM platform: a comparative analysis | |
JP2915842B2 (ja) | 第1クラス分散オブジェクトを使用して分散オブジェクト・サーバを制御、管理するシステム、及び方法 | |
US20100050173A1 (en) | Provisioning Virtual Resources Using Name Resolution | |
JP5969610B2 (ja) | ポータブルコンピューティングデバイスにおける分散リソース管理 | |
US20060129546A1 (en) | Fast channel architecture | |
JP2016508349A (ja) | クラスタ境界にわたるサービス移行 | |
US20100161976A1 (en) | System and method for handling cross-platform system call with shared page cache in hybrid system | |
US8266189B2 (en) | Adapting between coupled and decoupled provider interfaces | |
CN112416654B (zh) | 一种数据库日志重演方法、装置、设备及存储介质 | |
WO2008110108A1 (fr) | Procédé et dispositif pour réaliser une persistance d'objet distribué et unité de compilation | |
CN110716720A (zh) | 一种实现应用热部署的方法和装置 | |
US7331047B2 (en) | Deterministic system and method for implementing software distributed between a desktop and a remote device | |
US7506023B2 (en) | Apparatus, system and method of relating time set on one computer system to time set on another computer system | |
Stoller et al. | Transformations for model checking distributed Java programs | |
JP2004362570A (ja) | シャドウ・ページング | |
US8676842B2 (en) | Creating multiple Mbeans from a factory Mbean | |
US7681199B2 (en) | Time measurement using a context switch count, an offset, and a scale factor, received from the operating system | |
CN111385334B (zh) | 一种数据配送方法、装置、设备及存储介质 | |
US11334445B2 (en) | Using non-volatile memory to improve the availability of an in-memory database | |
US7073033B2 (en) | Memory model for a run-time environment | |
Göckelmann et al. | Plurix, a distributed operating system extending the single system image concept | |
CN113032468A (zh) | 数据写入方法、装置和计算机可读存储介质 | |
WO2024065188A1 (zh) | 信息模型更新方法、装置、计算设备、存储介质 | |
Hussain et al. | Fault Tolerance using" Parallel Shadow Image Servers (PSIS)" in Grid Based Computing Environment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 08715189 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 08715189 Country of ref document: EP Kind code of ref document: A1 |