程序对象的串行化和解串行的方法和设备技术

技术编号:2885106 阅读:221 留言:0更新日期:2012-04-11 18:40
为产生串行信息来代表程序对象(串行化)和在串行信息中重建程序对象(解串行)的已知技术在对程序对象的类结构和定义的改变上常有局限性。类结构的许多改变引起的不可兼容性阻碍程序对象的一个版本在代表程序对象的不同版本的串行信息中被复原。在此公开的技术通过允许串行化和解串行的过程按照程序对象的版本而有适应性从而克服了这一困难。(*该技术在2020年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术一般涉及计算机程序,特别涉及在处理面向对象的程序设计中处理程序对象的技术。在由面向对象的程序设计实现的应用程序中,应用程序的部件可由名为程序对象的程序设计结构体现。一个程序对象基本上可代表任何真实的或虚构的,有形的或无形的物体。比如,在一个工资管理系统中,一个对象可能被用于代表某一雇员或在一指定雇用期间雇员的工资。在一个飞机降落控制系统中,一个程序对象可能被用来代表单个飞机或一个特别的跑道。在同一个系统中,一个代表整个机场的程序对象可以代表控制塔同时也可包括或嵌入代表这个机场所有跑道的程序对象。程序对象通常不能在超出创造它们的程序的执行周期后继续存在。代表对象的信息通常存在于易失性存储器如RAM的某些结构中还有存取和使用这些信息的属性通常只在创造这个程序对象的程序执行时存在。已知的技巧允许一个执行着的程序去生成在一个可被记录和发送的形式中代表程序对象的信息,这就使一个程序在另一时间或地点读这个信息和再造这个程序对象成为可能。Java编程语言中程序对象的合适技巧在由加利福尼亚Palo Alto的Sun Microsystems公司出版的“对象串行化说明”中公开。这个说明可在因特网中由URLhttp//java.sun.com/products/jdk/1.1/docs/guide/serialization/spec/确认的“jdk-specification目录”中取得,在此作为参考。在此jdk-specification目录下,这个标准的内容目录由“serialTOC.doc.html”确认和还有一个系统结构的讨论由“serial-arch.doc.html”确认。其他信息可从Web Publishing Inc.出版的Jave World中获取。这些文章可从因特网上的分目录“javaworld directory”URL http//javaworld.com/javaworld/中取得。在javaworld的基本目录中两个相关文章的分目录和名字是jw-01-1998/jw-01-beans_p.html和jw-02-1998/jw-02-beans_p.html,在此作为参考。术语“对象串行化”是指产生代表程序对象的信息的串行流的过程,术语“对象解串行”指的是解读信息串行流和再造程序对象的过程。对象的串行化和解串行可用来优化一个或多个应用程序所必须的处理过程。例如,应用程序的处理过程可被分成段,要完成那些段的必要的处理过程可通过两个或多个计算机系统来实现。一个计算机系统可执行一个应用程序的初始段,在这个段结束时,串行化一个或多个程序对象以捕获串行信息流中的处理状态。第二个计算机系统能通过再造代表串行信息流的程序对象继续应用程序的处理过程,由此还原在初始段结束时存在于第一个计算机系统中的处理状态,然后通过执行一个后继段继续这个处理过程。换言之,串行化的信息提供给多个计算机系统以解串行地执行相同段的处理过程。令人失望的是,已知技术中用来串行化和解串行的程序对象把重要的限制强加于执行应用程序的程序改变上。应用程序纠正错误或添加新特性的改变可能需要程序对象中一个或多个定义了的结构的同步改变。程序对象定义的每一个改变都被当成是引入这个程序对象的一个新的“版本”。更确切的说,这种改变引入了一个定义程序对象结构的“类”的新版本。一个程序对象是定义其类结构的一个情况。一个改变是可以向前兼容,即当使用一个类的后期版本的程序能成功的从使用这个类早期版本的程序中产生的串行信息中解串行那个类。一个改变是可以后向兼容的,即当使用一个类的早期版本的程序能成功的从使用这个类后期版本的程序中产生的串行信息中解串行那个类。兼容的改变是向前兼容和向后兼容两者。不兼容的改变缺少向前、后向兼容其一或两者。如果一个必要的改变是不兼容的,那个改变是不能被引进到任何计算机系统的,除非参与分布式网络的所有计算机已被改为使用相同的类版本。关于Java编程语言中影响程序对象的兼容和不兼容改变的其他信息,可从上文提到的jdk-specification目录中的“version.doc.html”文中,和上文提到的javaworld directory中的文章jw-03-1998/jw-03-beans_p.html中取得,两者在此作为参考。因为类的改变一般而言是不兼容的,许多程序对象串行化的已知技巧自动生成当程序对象被串行化时使用的类版本的标识。这类技巧的实例在我们以上提到的网页中都有论及。此网页的分目录和名字是jw-03-1998/jw-03-beans_p.html,在此作为参考。这允许了一个程序相对于与用来定义对象新实例的类的现行版本而检测被串行化的程序对象的版本。如果版本不同,则生成一个错误或某种形式的程序例外以警告应用程序有潜在的不可兼容性。如果一个被认为是可兼容的改变,已知技巧允许类设计师通过强迫串行化过程来覆盖自动版本标识功能以生成为早期类版本生成的新类版本相同的版本标识。这个技术使使用不同的但兼容的类版本来共享代表类的被串行化的程序对象的串行化的信息成为可能。遗憾的是,已知技巧中没有能允许使用不同的和不兼容的版本的程序共享被串行化了的信息。本专利技术的目的是通过允许程序共享作为类不可兼容版本的实例的程序对象串行化的标识,为程序对象提供串行化和解串行。根据本专利技术的一个方面,一种方法通过获取程序对象的版本标识以串行化作为对象类的实例的程序对象,并生成被确定为对象类和版本标识的函数的传递程序对象表示的串行化信息。根据本专利技术的另一方面,一种方法解串行传递作为对象类的实例的程序对象的表示的已串行化信息,它是通过从串行化信息中获得对象类和程序对象的版本标识并为对象的一个或单个属性从串行化信息建立值,其中一个或多个属性的值作为对象类和版本标识的函数而建立。本专利技术的这些方面可用能够应用这些方法的装置实现。它们也可通过一个由例如可执行程序指令的计算机系统的设备由从可读的媒介输送的程序的指令来实现。根据本专利技术的另一方面,一个由装置可读的媒介传送串行化信息,该信息表示一个或多个程序对象,程序对象是对象类的实例,程序对象包含由串行化信息表示的多个程序对象的标识,对象类名称的标识,和对于每个有串行化信息表示的程序对象,各个程序对象的版本标识和各个程序对象的一个或多个属性的各个值。根据本专利技术的进一步的方面,一个由装置可读的媒介传送一个或多个为装置所执行的程序指令以实现串行化或解串行一个作为程序类的实例的程序对象的方法。一个或多个程序指令包括一个含有取得各自的程序对象的版本标识的方法的对象类的定义,和一个含有用来识别将被串行化或解串行的各自的程序对象的一个或多个属性的方法的对象-描述符类的定义。本专利技术的不同功能和它的优选实施方案要通过参考下面的附图讨论才能充分理解。下面的讨论内容和图示只能用做示例而不能理解为是代表本专利技术的范围。附图说明图1是一个可用来执行本专利技术不同方面的计算机系统的框图。图2是一个由例如类似网络的通信设施互连的多个计算机系统的框图。图3所示的是按照程序对象版本表示程序对象来生成串行信息的基本过程。图4所示的是图3所示的基本过程的特殊实现。图5所示的是按照程序对象的版本从串行信息中创建一个程序对象的过程。图6所示的是图5本文档来自技高网...

【技术保护点】
一种串行化作为对象类实例的程序对象的方法,其中该方法包括: 获取程序对象的版本标识,和 产生传递被确认为对象类和版本标识的函数的程序对象的表示的串行化信息。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:H海斯特曼李家欣
申请(专利权)人:精工爱普生株式会社
类型:发明
国别省市:JP[日本]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利