构件化软件系统基于设备接口实现二进制兼容运行的方法技术方案

技术编号:2842137 阅读:272 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及一种构件化软件系统基于设备接口实现二进制兼容运行的方法,包括根据系统中的设备创建对应的具有标准接口且包含设备属性信息的的设备驱动构件、应用程序在运行过程中获取相应设备驱动构件的接口指针进行功能调用、系统根据应用程序的需要动态替换设备驱动构件、应用程序重复上述的功能调用。采用该种构件化软件系统基于设备接口实现二进制兼容运行的方法,有利于系统的维护,充分利用了面向对象方法的优势,符合软件工程思想,而且设备驱动采用抽象的接口,因而在运行过程中可以利用动态绑定技术进行动态替换,从而便于功能的扩展,并增加了系统的适应性,为计算机跨平台兼容运行技术的进一步发展奠定了坚实的基础。

【技术实现步骤摘要】

本专利技术涉及计算机软件
,特别涉及计算机构件化软件系统领域,具体是指一种。
技术介绍
现今的许多程序跨平台实际上是通过源代码在不同平台上面重新编译实现的,针对不同平台提供了不同的版本而已。按这种方法编写跨平台的程序,每增加一个平台就需要重新调整编译代码,工作量较大,且用户需要在多个平台上用它,就必须保留每个平台不同的拷贝,因为不同平台,它的二进制代码是不一样的。 现在的JAVA技术和微软的.NET技术都能一定程度让程序跨平台运行。不同操作系统装上自己的JAVA虚拟机,配以合适的类库,理论上都能跑完全相同的一个JAVA程序。.NET也是类似的原理。不过,JAVA和.NET有一个特点就是它们采用的是中间代码,不是直接能够在机器上面执行的二进制指令。中间代码让程序跨平台容易,不过也带来了效率的损失。因为虚拟机需要把中间代码翻译成机器指令,这个过程是比较耗费时间的。 如果程序是由能够直接被CPU执行的机器指令所组成的,则可以避开JAVA那种指令翻译过程,效率肯定是最高的。二进制兼容的目标,就是保证程序采用机器指令的前提下,做到程序的跨平台运行。显然,简单的二进制兼容不能做到跨CPU运行,毕竟不同CPU的指令集是不一样的。但是只要是采用了同一种CPU,指令集是一样的,加以各种辅助手段来保证,就可以做到程序的跨操作系统平台特性。 二进制兼容运行的基本含义就是不需要对应用程序进行任何修改,就可以直接让它运行在不同的操作系统平台上面。由于二进制兼容技术的众多优点,因此它被许多软件厂商所吸纳加以利用。传统的二进制兼容技术,是针对应用程序来进行的,它通过实现一套跨平台的基于C函数形式的API,其原理如下应用程序要实现自己的功能,需要调用操作系统提供的各类系统API,包括系统内核提供的最基本的功能,以及调用操纵各种设备以及系统组件的函数,等等。比如打开文件,向声卡传递音频数据,创建一个信号量,都是诸如此类的操作。这些API都是以C函数的形式提供的。只要在不同平台上面,能完全提供应用程序所需要的API,且保证这些API的名字、参数、返回值、功能特性一致,就可以让应用程序跑在不同平台上面。因为应用程序与操作系统的交互就是靠这些API,既然它们都实现了,且功能一致,就相当于屏蔽了操作系统对该程序的差异性,应用程序运行的结果也就是一致的,这样做到了程序的跨平台运行。 基于C函数形形式的API,调用起来比较方便,不过,也带来了不少弊端,比如扩展起来不容易,没有利用现代的面向对象的方法,不利于软件工厂化的发展。且很多API都是在较高层次提供的,只要不操作具体的硬件,那些纯软件的系统模块,比如C运行时库函数(CRUN-TIME Libraries,简称CRT库),图形系统等等,也是可以直接做到跨平台的,不用给每个平台维护一套独立的二进制代码。传统的二进制兼容认为这些底层模块也是属于平台差异性的一部分,所以只针对纯应用程序部分兼容。
技术实现思路
本专利技术的目的是克服了上述现有技术中的缺点,提供一种能够在系统底层实现二进制兼容、充分发挥面向对象方法的优势、符合软件工程思想、便于功能扩展、系统的适应性较强的。 为了实现上述的目的,本专利技术的如下该,其主要特点是,所述的方法包括以下步骤(1)系统进行初始化操作;(2)根据系统中的设备,创建对应的具有标准接口且包含设备属性信息的的设备驱动构件;(3)系统中的应用程序在运行过程中获取相应设备驱动构件的接口指针进行功能调用;(4)系统根据应用程序的需要,进行动态替换设备驱动构件的处理,该应用程序重复上述步骤(3)的功能调用。 该的创建具有标准接口且包含设备属性信息的的设备驱动构件包括以下步骤(1)创建通用设备驱动构件接口,并增加对设备的读操作、写操作和通用的控制功能的虚函数接口方法;(2)根据系统中的具体设备,从所述的通用设备驱动构件接口中派生出符合该具体设备特性的虚函数接口方法;(3)根据系统中的同类设备创建相应的基本设备驱动构件集,并将该基本设备驱动构件集内的设备驱动构件接口标准化;(4)在实现相应的设备驱动构件过程中将包含该构件的类信息的元数据信息封装到该设备驱动构件中。 该的获取设备驱动构件的接口指针进行功能调用包括以下步骤(1)系统根据设备驱动构件接口中的虚函数接口方法创建虚函数表;(2)应用程序获取该设备驱动构件的接口指针,并根据该接口指针所指向的虚函数表中的函数指针来进行相应的方法调用。 该的动态替换设备驱动构件的处理为修改虚函数表中指向被替换设备构件的函数指针,使该函数指针指向新的设备驱动构件中的函数。 采用了该专利技术的,由于通过创建设备抽象接口的方法在系统底层实现二进制兼容,从而对于不同的平台,只需要实现最基本的硬件设备驱动程序即可,有利于系统的维护;同时,抽象接口的实现是利用C++等面向对象的语言来进行设备驱动构件的编写,因此可以充分利用面向对象方法的优势,符合软件工程思想;不仅如此,该方法的设备驱动采用抽象的接口,因而在运行过程中可以利用动态绑定技术进行动态替换,从而便于功能的扩展,并增加了系统的适应性,为计算机跨平台兼容运行技术的进一步发展奠定了坚实的基础。 具体实施方式 为了能够更清楚地理解本专利技术的
技术实现思路
,特举以下实施例详细说明。 该,包括以下步骤(1)系统进行初始化操作;(2)根据系统中的设备,创建对应的具有标准接口且包含设备属性信息的的设备驱动构件,包括以下步骤(a)创建通用设备驱动构件接口,并增加对设备的读操作、写操作和通用的控制功能的虚函数接口方法; (b)根据系统中的具体设备,从所述的通用设备驱动构件接口中派生出符合该具体设备特性的虚函数接口方法;(c)根据系统中的同类设备创建相应的基本设备驱动构件集,并将该基本设备驱动构件集内的设备驱动构件接口标准化;(d)在实现相应的设备驱动构件过程中将包含该构件的类信息的元数据信息封装到该设备驱动构件中;(3)系统中的应用程序在运行过程中获取相应设备驱动构件的接口指针进行功能调用,包括以下步骤(a)系统根据设备驱动构件接口中的虚函数接口方法创建虚函数表;(b)应用程序获取该设备驱动构件的接口指针,并根据该接口指针所指向的虚函数表中的函数指针来进行相应的方法调用;(4)系统根据应用程序的需要,进行动态替换设备驱动构件的处理,该应用程序重复上述步骤(3)的功能调用;该动态替换设备驱动构件的处理为修改虚函数表中指向被替换设备构件的函数指针,使该函数指针指向新的设备驱动构件中的函数。 实际上,只要不是操作系统内核最底层的部分,以及跟硬件相关的设备驱动,对于基于纯软件的模块,不管是上层应用程序,还是底层的系统程序(包括CRT函数库,图形系统,数据库系统等等),都可以做到二进制兼容。 CAR(Component Assembly Runtime)技术是一种软件构件技术,它规定了一种构件之间调用的标准,是一种很优秀的构件技术,使用简单,功能强大。因此本专利技术的具体实施方式中结合了CAR构件的特征,利用软件构件技术进行实现,不过本专利技术的方法本身并不依赖于具体的构件技术类别,对于其他构件技术,比如微软的COM,以及OMG组织的CORBA等,都是适用的。 在实际使用当中,如果要做到二进制兼容本文档来自技高网
...

【技术保护点】
一种构件化软件系统基于设备接口实现二进制兼容运行的方法,其特征在于,所述的方法包括以下步骤:(1)系统进行初始化操作;(2)根据系统中的设备,创建对应的具有标准接口且包含设备属性信息的的设备驱动构件;(3)系统中的应 用程序在运行过程中获取相应设备驱动构件的接口指针进行功能调用;(4)系统根据应用程序的需要,进行动态替换设备驱动构件的处理,该应用程序重复上述步骤(3)的功能调用。

【技术特征摘要】
1.一种构件化软件系统基于设备接口实现二进制兼容运行的方法,其特征在于,所述的方法包括以下步骤;(1)系统进行初始化操作;(2)根据系统中的设备,创建对应的具有标准接口且包含设备属性信息的的设备驱动构件;(3)系统中的应用程序在运行过程中获取相应设备驱动构件的接口指针进行功能调用;(4)系统根据应用程序的需要,进行动态替换设备驱动构件的处理,该应用程序重复上述步骤(3)的功能调用。2.根据权利要求1所述的构件化软件系统基于设备接口实现二进制兼容运行的方法,其特征在于,所述的创建具有标准接口且包含设备属性信息的的设备驱动构件包括以下步骤(1)创建通用设备驱动构件接口,并增加对设备的读操作、写操作和通用的控制功能的虚函数接口方法;(2)根据系统中的具体设备,从所述的通用设备驱动构件接口中派生出符合该具体设备特性的虚函数接口方法;...

【专利技术属性】
技术研发人员:连珠林冷波
申请(专利权)人:上海科泰世纪科技有限公司
类型:发明
国别省市:31[中国|上海]

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

1