一种Linux系统下的XFS实现系统及方法与流程

文档序号:12469492阅读:606来源:国知局
一种Linux系统下的XFS实现系统及方法与流程

本发明涉及金融技术领域,特别涉及一种Linux系统下的XFS实现系统及方法。



背景技术:

目前,绝大部分金融终端设备,如ATM机等,均遵循基于Windows操作系统的CEN/XFS(Comité Européen de Normalisation/eXtensions for Financial Services)规范,CEN/XFS规范为欧洲标准化委员会制定的金融服务扩展规范,与Windows系统密切相关,具有较强的操作系统绑定特性,无法直接迁移至其他系统,而Windows系统对银行业务而言安全性较低。

随着Linux系统逐渐应用于越来越多的领域,现已出现了以Linux系统为基础的XFS实现方法,但此类方法中采用C++回调类方式或Linux底层的进程间通信方式进行通信,前者易使系统之间造成不必要的耦合,如C++类的耦合,产生严重的可移植性与可扩展性问题,而后者则由于操作层次过低,会导致开发繁琐,容易出错的问题。



技术实现要素:

为此,本发明提供一种Linux系统下的XFS实现方案,以力图解决或者至少缓解上面存在的问题。

根据本发明的一个方面,提供一种Linux系统下的XFS实现系统,适于驻留在金融终端设备中,包括:AP层,适于向dbus守护进程注册当前AP进程的dbus总线,通过API接口调用LFS管理器连接SP层,接收dbus守护进程发送的dbus消息,从dbus消息中获取与当前AP进程相关的SP对应的设备信息,并释放共享内存;LFS管理器,提供API接口,适于根据AP层的调用指令,通过SPI接口在SP层中定位与当前AP进程相关的SP;SP层,提供SPI接口,适于访问设备驱动层以获取与当前AP进程相关的SP对应的设备信息,将该设备信息存入共享内存,根据共享内存中的设备信息指针生成dbus消息,传递给dbus守护进程;设备驱动层,适于向SP层提供与当前AP进程相关的SP对应的设备信息。

可选地,在根据本发明的Linux系统下的XFS实现系统中,AP层进一步适于:向dbus守护进程获取一个会话dbus;通过会话dbus注册当前AP进程的dbus总线;设置当前AP进程的dbus总线的名称。

可选地,在根据本发明的Linux系统下的XFS实现系统中,dbus守护进程适于:根据当前AP进程的dbus总线的名称创建对应的总线编号;保存总线编号与dbus总线的名称的映射关系,并创建相应的unix套接字。

可选地,在根据本发明的Linux系统下的XFS实现系统中,AP层进一步适于:通过API接口启动LFS管理器;调用LFS管理器动态载入并连接SP层。

可选地,在根据本发明的Linux系统下的XFS实现系统中,LFS管理器进一步适于:根据AP层的调用指令获取与当前AP进程相关的SP的SP编号和当前AP进程的dbus对象名;根据SP编号,通过调用SPI接口在SP层定位与当前AP进程相关的SP,并向SP传递当前AP进程的dbus对象名。

可选地,在根据本发明的Linux系统下的XFS实现系统中,SP层进一步适于:向dbus守护进程获取一个会话dbus;通过会话dbus创建一个dbus消息,设置与dbus消息对应的dbus总线名、dbus对象名、dbus接口名和dbus方法名,其中dbus总线名为当前AP进程的dbus总线的名称,dbus对象名为当前AP进程的dbus对象名;根据dbus消息对应的dbus总线名连接dbus守护进程,向dbus消息中加入共享内存中的设备指针信息并将其传递给dbus守护进程。

可选地,在根据本发明的Linux系统下的XFS实现系统中,dbus守护进程还适于:接收SP层传递的dbus消息,根据dbus消息对应的dbus总线名定位当前AP进程,将dbus消息发送至AP层。

可选地,在根据本发明的Linux系统下的XFS实现系统中,dbus守护进程进一步适于:根据dbus消息对应的dbus总线名查找其对应的总线编号及相应的unix套接字;将dbus消息发送至unix套接字中以发送至AP层。

可选地,在根据本发明的Linux系统下的XFS实现系统中,AP层进一步适于:接收unix套接字并对其解码以获取相应的dbus消息;从dbus消息中获取共享内存中的设备信息指针;通过设备信息指针从共享内存里获取当前AP进程相关的SP对应的设备信息。

根据本发明的又一个方面,提供一种Linux系统下的XFS实现方法,适于在金融终端设备中执行,金融终端设备中驻留有Linux系统下的XFS实现系统,系统包括AP层、LFS管理器、SP层和设备驱动层,方法包括:AP层向dbus守护进程注册当前AP进程的dbus总线,通过API接口调用LFS管理器连接SP层;LFS管理器根据AP层的调用指令,通过SPI接口在SP层中定位与当前AP进程相关的SP;SP层访问设备驱动层以获取与SP对应的设备信息,将该设备信息存入共享内存;SP层根据共享内存中的设备信息指针生成dbus消息,传递给dbus守护进程;AP层接收dbus守护进程发送的dbus消息,从dbus消息中获取SP对应的设备信息,并释放共享内存。

可选地,在根据本发明的Linux系统下的XFS实现方法中,AP层向dbus守护进程注册当前AP进程的dbus总线包括:AP层向dbus守护进程获取一个会话dbus;通过会话dbus注册当前AP进程的dbus总线;设置当前AP进程的dbus总线的名称。

可选地,在根据本发明的Linux系统下的XFS实现方法中,还包括:dbus守护进程根据当前AP进程的dbus总线的名称创建对应的总线编号;保存总线编号与dbus总线的名称的映射关系,并创建相应的unix套接字。

可选地,在根据本发明的Linux系统下的XFS实现方法中,AP层通过API接口调用LFS管理器连接SP层包括:AP层通过API接口启动LFS管理器;AP层调用LFS管理器动态载入并连接SP层。

可选地,在根据本发明的Linux系统下的XFS实现方法中,LFS管理器根据AP层的调用指令,通过SPI接口在SP层中定位与当前AP进程相关的SP包括:LFS管理器根据AP层的调用指令获取与当前AP进程相关的SP的SP编号和当前AP进程的dbus对象名;根据SP编号,通过调用SPI接口在SP层定位与当前AP进程相关的SP,并向其传递当前AP进程的dbus对象名。

可选地,在根据本发明的Linux系统下的XFS实现方法中,SP层根据共享内存中的设备信息指针生成dbus消息,传递给dbus守护进程包括:SP层向dbus守护进程获取一个会话dbus;通过会话dbus创建一个dbus消息,设置与dbus消息对应的dbus总线名、dbus对象名、dbus接口名和dbus方法名,其中dbus总线名为当前AP进程的dbus总线的名称,dbus对象名为当前AP进程的dbus对象名;根据dbus消息对应的dbus总线名连接dbus守护进程,向dbus消息中加入共享内存中的设备指针信息并将其传递给dbus守护进程。

可选地,在根据本发明的Linux系统下的XFS实现方法中,还包括:dbus守护进程接收SP层传递的dbus消息,根据dbus消息对应的dbus总线名定位当前AP进程,将dbus消息发送至AP层。

可选地,在根据本发明的Linux系统下的XFS实现方法中,根据dbus消息对应的dbus总线名定位当前AP进程,将dbus消息发送至AP层包括:根据dbus消息对应的dbus总线名查找其对应的总线编号及相应的unix套接字;将dbus消息发送至unix套接字中以发送至AP层。

可选地,在根据本发明的Linux系统下的XFS实现方法中,AP层接收dbus守护进程发送的dbus消息,从dbus消息中获取SP对应的设备信息包括:AP层接收unix套接字并对其解码以获取相应的dbus消息;从dbus消息中获取共享内存中的设备信息指针;通过设备信息指针从共享内存里获取SP对应的设备信息。

根据本发明的Linux系统下的XFS实现的技术方案,AP层、LFS管理器、SP层之间的通信是基于dbus总线完成的。AP层首先注册当前AP进程的dbus总线并调用LFS管理器连接SP层,SP层从驱动设备层获取与当前AP进程对应的SP的设备信息后,由此生成dbus消息传递至dbus守护进程,AP层接收dbus守护进程转发的dbus消息并从中获取该设备信息。上述技术方案中,通过dbus通信实现AP层、LFS管理器和SP层之间的消息传递,dbus消息本身可以提供丰富的类型信息,保证消息类型的正确性,并提供大容量的数据传输。此外,dbus通信机制还具有多种实现方式,同时具有较好的可扩展性和可管理性。

附图说明

为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。

图1示出了根据本发明的一个实施例的Linux系统下的XFS实现系统100的示意图;以及

图2示出了根据本发明一个实施例的Linux系统下的XFS实现方法200的流程图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

图1示出了根据本发明的一个实施例的Linux系统下的XFS实现系统100的示意图。如图1所示,该系统包括AP层110、LFS管理器120、SP层130和设备驱动层,其中AP层即为应用程序层,AP为Application Program的英文缩写,LFS管理器即为Linux系统下的金融服务管理器,LFS为Linux Financial Services的英文缩写,SP层即为服务提供层,SP为Service Provider的英文缩写。LFS管理器120向AP层提供API(Application Programming Interface)接口,SP层130向LFS管理器120提供SPI(Service Provider Interface)接口。

AP层110适于向dbus守护进程注册当前AP进程的dbus总线,通过API接口调用LFS管理器连接SP层,接收dbus守护进程发送的dbus消息,从dbus消息中获取与当前AP进程相关的SP对应的设备信息,并释放共享内存。AP层110进一步适于向dbus守护进程获取一个会话dbus,通过会话dbus注册当前AP进程的dbus总线,设置当前AP进程的dbus总线的名称。AP层110进一步适于通过API接口启动LFS管理器,调用LFS管理器动态载入并连接SP层。AP层110进一步适于接收unix套接字并对其解码以获取相应的dbus消息,从dbus消息中获取共享内存中的设备信息指针,通过设备信息指针从共享内存里获取当前AP进程相关的SP对应的设备信息。在本实施例中,AP层110通过调用dbus_bus_get函数向dbus守护进程获取一个会话dbus,通过该会话dbus注册当前AP进程的dbus总线,并调用dbus_bus_request_name函数来设置当前AP进程的dbus总线的名称。AP层110通过API接口启动LFS管理器120,将当前AP进程注册到LFS管理器120中以建立AP层110与LFS管理器120的连接。当AP层110与LFS管理器120之间的连接建立完成后,AP层110将调用LFS管理器120动态载入SP层130,该请求使用逻辑名,LFS管理器120会将逻辑名映射到SP层130以建立AP层110和SP层130之间的连接。AP层110为获取与当前AP进程对应SP的相关设备信息,向LFS管理器120发出调用指令,从而向LFS管理器120传入当前AP进程对应的SP的SP编号和当前AP进程的dbus对象名。AP层110在获知有dbus消息传来后,从dbus_connection_read_write_dispatch函数返回,并通过dbus_connection_pop_message函数从接收到的unix套接字中解码获取相应的dbus消息,调用bus_message_get_args函数获取对应的各参数进行处理,从而得到共享内存中的设备信息指针,最终从根据该指针从共享内存里获取当前AP进程对应的SP的设备信息,并释放共享内存。

LFS管理器120提供API接口,适于根据AP层的调用指令,通过SPI接口在SP层中定位与当前AP进程相关的SP。LFS管理器120进一步适于根据AP层的调用指令获取与当前AP进程相关的SP的SP编号和当前AP进程的dbus对象名;根据SP编号,通过调用SPI接口在SP层定位与当前AP进程相关的SP,并向SP传递当前AP进程的dbus对象名。在本实施例中,LFS管理器120根据AP层的调用指令获取到与当前AP进程相关的SP的SP编号和当前AP进程的dbus对象名,根据该SP编号定位到对应的SP,再通过SPI接口获取该SP对应的设备信息,向SP层传入当前AP进程的dbus对象名。

SP层130提供SPI接口,适于访问设备驱动层以获取与当前AP进程相关的SP对应的设备信息,将该设备信息存入共享内存,根据共享内存中的设备信息指针生成dbus消息,传递给dbus守护进程。SP层130进一步适于向dbus守护进程获取一个会话dbus;通过会话dbus创建一个dbus消息,设置与dbus消息对应的dbus总线名、dbus对象名、dbus接口名和dbus方法名,其中dbus总线名为当前AP进程的dbus总线的名称,dbus对象名为当前AP进程的dbus对象名;根据dbus消息对应的dbus总线名连接dbus守护进程,向dbus消息中加入共享内存中的设备指针信息并将其传递给dbus守护进程。在本实施例中,SP层130通过设备驱动接口访问设备驱动层140,从设备驱动层140获取当前AP进程对应的SP的设备信息,并将该设备信息存入预先向SP层分配的共享内存中。SP层130通过调用dbus_bus_get_private函数向dbus守护进程获取一个会话dbus,然后调用dbus_message_new_method_call函数创建一个dbus消息,并设置与该dbus消息对应的dbus总线名、dbus对象名、dbus接口名和dbus方法名。最后,SP层130根据该dbus消息对应的dbus总线名连接dbus守护进程,调用dbus_message_iter_append_basic函数向dbus消息中加入共享内存中的设备指针信息,并通过dbus_connection_send函数将此dbus消息传递给dbus守护进程。

设备驱动层140适于向SP层提供与当前AP进程相关的SP对应的设备信息。

其中,dbus守护进程适于根据当前AP进程的dbus总线的名称创建对应的总线编号,保存总线编号与dbus总线的名称的映射关系,并创建相应的unix套接字。dbus守护进程还适于接收SP层传递的dbus消息,根据dbus消息对应的dbus总线名定位当前AP进程,将dbus消息发送至AP层。dbus守护进程进一步适于根据dbus消息对应的dbus总线名查找其对应的总线编号及相应的unix套接字,将dbus消息发送至unix套接字中以发送至AP层。在本实施例中,dbus守护进程预先存储了总线编号与dbus总线的名称的映射关系及相应的unix套接字,在dbus守护进程接收到SP层130传递的dbus消息后,通过上述映射关系即可查找到该dbus总线的名称对应的总线编号和相应的unix套接字,将接收到的dbus消息发送至该unix套接字中再发送至AP层110。

关于Linux系统下的XFS实现的具体步骤以及实施例,在以下基于图2的描述中将详细公开,此处不予以赘述。

图2示出了根据本发明一个实施例的Linux系统下的XFS实现方法200的流程图。Linux系统下的XFS实现方法200适于在金融终端设备中执行,该金融终端设备中驻留有Linux系统下的XFS实现系统(例如图1所示的系统100)。

如图2所示,方法200始于步骤S210。在步骤S210中,AP层向dbus守护进程注册当前AP进程的dbus总线,通过API接口调用LFS管理器连接SP层。首先,AP层向dbus守护进程获取一个会话dbus,通过该会话dbus注册当前AP进程的dbus总线,并设置当前AP进程的dbus总线的名称。随后,dbus守护进程根据当前AP进程的dbus总线的名称创建对应的总线编号,保存总线编号与该dbus总线的名称的映射关系,并创建相应的unix套接字。AP层通过API接口启动LFS管理器,调用LFS管理器动态载入并连接SP层。在本实施例中,AP层110通过调用dbus_bus_get函数向dbus守护进程获取一个会话dbus,通过该会话dbus注册当前AP进程的dbus总线,并调用dbus_bus_request_name函数来设置当前AP进程的dbus总线的名称,dbus总线的名称格式为org.lfs.manager.p<pid>,其中<pid>为当前AP进程的进程号。此时,AP层110还会预先调用dbus_connection_read_write_dispatch函数来等待dbus消息。当AP层110完成向dbus守护进程注册当前AP进程的dbus总线后,dbus守护进程根据当前AP进程的dbus总线的名称创建对应的总线编号,该总线编号是唯一的,保存该总线编号与dbus总线的名称的映射关系,创建相应的unix套接字。关键代码如下所示:

当然,在不同的金融终端设备之间,dbus守护进程需创建对应的TCP套接字,通过申明dbus守护进程的IP与端口号来进行下一步的通信,具体过程与上述类似,此处不再赘述。

AP层110通过API接口启动LFS管理器120,指定当前AP进程可以使用的LFS管理器120的API接口的版本范围,并将该AP进程注册到LFS管理器120中以建立AP层110与LFS管理器120的连接。当AP层110与LFS管理器120之间的连接建立完成后,AP层110将调用LFS管理器120动态载入SP层130,该请求使用逻辑名,LFS管理器120会将逻辑名映射到SP层130以建立AP层110和SP层130之间的连接。AP层110为获取与当前AP进程对应SP的相关设备信息,向LFS管理器120发出调用指令,从而向LFS管理器120传入当前AP进程对应的SP的SP编号和当前AP进程的dbus对象名。

随后,进入步骤S220,LFS管理器根据AP层的调用指令,通过SPI接口在SP层中定位与当前AP进程相关的SP。LFS管理器先根据AP层的调用指令获取与当前AP进程相关的SP的SP编号和当前AP进程的dbus对象名,再根据该SP编号,通过调用SPI接口在SP层定位与当前AP进程相关的SP,并向其传递当前AP进程的dbus对象名。在本实施例中,LFS管理器120根据AP层的调用指令获取到与当前AP进程相关的SP的SP编号和当前AP进程的dbus对象名,根据该SP编号定位到对应的SP,再通过SPI接口获取该SP对应的设备信息,向SP层传入当前AP进程的dbus对象名。

在步骤S230中,SP层访问设备驱动层以获取与上述SP对应的设备信息,将该设备信息存入共享内存。在本实施例中,SP层130通过设备驱动接口访问设备驱动层140,从设备驱动层140获取当前AP进程对应的SP的设备信息,并将该设备信息存入预先向SP层分配的共享内存中。

在步骤S240中,SP层根据共享内存中的设备信息指针生成dbus消息,传递给dbus守护进程。首先,SP层向dbus守护进程获取一个会话dbus,再通过该会话dbus创建一个dbus消息,设置与dbus消息对应的dbus总线名、dbus对象名、dbus接口名和dbus方法名,其中dbus总线名为当前AP进程的dbus总线的名称,dbus对象名为当前AP进程的dbus对象名,最后根据dbus消息对应的dbus总线名连接dbus守护进程,向dbus消息中加入共享内存中的设备指针信息并将其传递给dbus守护进程。在本实施例中,SP层130通过调用dbus_bus_get_private函数向dbus守护进程获取一个会话dbus,然后调用dbus_message_new_method_call函数创建一个dbus消息,并设置与该dbus消息对应的dbus总线名、dbus对象名、dbus接口名和dbus方法名。其中,dbus总线名的格式在步骤S210中已进行说明,固定为org.lfs.manager.p<pid>,<pid>为当前AP进程的进程号,该dbus总线名为当前AP进程的dbus总线的名称,而dbus接口名固定为org.lfs.windows_compatible_intf,dbus方法名固定为event_callback。由此可知,在一个dbus消息中,dbus总线名、dbus接口名与dbus方法名均是固定的,AP层仅需要向SP层传递当前AP进程对应的dbus对象名即可,这样处理也是为了与Windows系统下的XFS实现中的窗口句柄兼容。同时,dbus消息的数据格式也是预先定义好的。在dbus消息中,每个数据段之前都有数据格式的定义,例如121(y)表示字节,117(u)表示32位无符号整数,115(s)表示字符串,圆括号表示结构体,例如(uu)表示有两个32位无符号整数的结构体等,dbus消息在通信过程中符合上述数据格式标准来保证消息类型的正确性。最后,SP层130根据该dbus消息对应的dbus总线名连接dbus守护进程,调用dbus_message_iter_append_basic函数向dbus消息中加入共享内存中的设备指针信息,并通过dbus_connection_send函数将此dbus消息传递给dbus守护进程。

此时,dbus守护进程接收SP层传递的dbus消息,根据dbus消息对应的dbus总线名定位当前AP进程,将dbus消息发送至AP层。具体来说,dbus守护进程根据接收到的dbus消息对应的dbus总线名查找其对应的总线编号及相应的unix套接字,再将dbus消息发送至该unix套接字中以发送至AP层。在本实施例中,dbus守护进程预先存储了总线编号与dbus总线的名称的映射关系及相应的unix套接字,则在dbus守护进程接收到SP层130传递的dbus消息后,通过上述映射关系即可查找到该dbus总线的名称对应的总线编号和相应的unix套接字,将接收到的dbus消息发送至该unix套接字中再发送至AP层110。关键代码如下所示:

最后,在步骤S250中,AP层接收dbus守护进程发送的dbus消息,从dbus消息中获取当前AP进程对应的SP的设备信息,并释放共享内存。AP层接收unix套接字并对其解码以获取相应的dbus消息,从dbus消息中获取共享内存中的设备信息指针,通过设备信息指针从共享内存里获取该SP对应的设备信息。在本实施例中,AP层110在步骤S210中向dbus守护进程注册当前AP进程的dbus总线后,会调用dbus_connection_read_write_dispatch函数来等待dbus消息,而此时AP层110在获知有dbus消息传来后,从dbus_connection_read_write_dispatch函数返回,并通过dbus_connection_pop_message函数从接收到的unix套接字中解码获取相应的dbus消息,调用bus_message_get_args函数获取对应的各参数进行处理,从而得到共享内存中的设备信息指针,最终从根据该指针从共享内存里获取当前AP进程对应的SP的设备信息,并释放共享内存。在上述过程完成后,AP层110重新进入dbus_connection_read_write_dispatch函数的循环,等待新的dbus消息传来。

在Linux系统下的XFS实现方法200中,为进一步提高AP层和SP层之间dbus通信的可靠性,可通过命令行的dbus监控工具,如dbus-monitor,监控指定dbus总线上发生通信,还可以利用图形化的dbus监控工具,如d-feet,以图形化的方式对所有dbus对象进行监控,检查所有dbus总线、dbus对象、dbus接口、dbus方法与方法的参数。此外,考虑方法200适用于在金融终端设备中执行,而金融系统通常对安全性要求较高,因此还可通过polkit来控制dbus消息与总线的权限,限定只有特定的进程可以向特定的dbus总线发消息或者接收消息,以保证系统的整体安全。而且,金融终端设备的系统中常常对操作权限也有所限制。以ATM(Automatic Teller Machine)系统为例,其AP层中的各AP需要以普通用户的身份运行,以避免不必要的高权限造成整体系统的不安全。但是按照ATM的需求,其AP应该具备关机、重启、修改网络配置等功能,在传统意义上,这些功能具有高权限,应该只有root用户可以使用。为避免权限与AP的不合理匹配,对dbus接口设定相应的权限,使得ATM中的AP可以通过访问这些接口使用相应的功能,如在deepin系统这种Linux系统中设置有com.deepin.daemon.Network此类dbus接口。

现有的以Linux系统为基础的XFS实现方法中,采用C++回调类方式或Linux底层的进程间通信方式进行通信,有可能带来严重的可移植性与可扩展性问题,或由于操作层次过低导致开发繁琐,容易出错。根据本发明实施例的Linux系统下的XFS实现的技术方案,AP层、LFS管理器、SP层之间的通信是基于dbus总线完成的。AP层首先注册当前AP进程的dbus总线并调用LFS管理器连接SP层,SP层从驱动设备层获取与当前AP进程对应的SP的设备信息后,由此生成dbus消息传递至dbus守护进程,AP层接收dbus守护进程转发的dbus消息并从中获取该设备信息。上述技术方案中,通过dbus通信实现AP层、LFS管理器和SP层之间的消息传递,dbus消息本身可以提供丰富的类型信息,保证消息类型的正确性,并提供大容量的数据传输。此外,dbus通信机制还具有多种实现方式,同时具有较好的可扩展性和可管理性。

B11.如B10所述的方法,所述AP层向dbus守护进程注册当前AP进程的dbus总线包括:

AP层向dbus守护进程获取一个会话dbus;

通过所述会话dbus注册当前AP进程的dbus总线;

设置当前AP进程的dbus总线的名称。

B12.如B11所述的方法,还包括:

dbus守护进程根据当前AP进程的dbus总线的名称创建对应的总线编号;

保存所述总线编号与所述dbus总线的名称的映射关系,并创建相应的unix套接字。

B13.如B12所述的方法,所述AP层通过API接口调用LFS管理器连接SP层包括:

AP层通过API接口启动LFS管理器;

AP层调用LFS管理器动态载入并连接SP层。

B14.如B10所述的方法,所述LFS管理器根据AP层的调用指令,通过SPI接口在SP层中定位与当前AP进程相关的SP包括:

LFS管理器根据AP层的调用指令获取与当前AP进程相关的SP的SP编号和当前AP进程的dbus对象名;

根据所述SP编号,通过调用SPI接口在SP层定位与当前AP进程相关的SP,并向其传递当前AP进程的dbus对象名。

B15.如B14所述的方法,所述SP层根据共享内存中的设备信息指针生成dbus消息,传递给dbus守护进程包括:

SP层向dbus守护进程获取一个会话dbus;

通过所述会话dbus创建一个dbus消息,设置与所述dbus消息对应的dbus总线名、dbus对象名、dbus接口名和dbus方法名,其中所述dbus总线名为当前AP进程的dbus总线的名称,所述dbus对象名为当前AP进程的dbus对象名;

根据所述dbus消息对应的dbus总线名连接dbus守护进程,向所述dbus消息中加入共享内存中的设备指针信息并将其传递给dbus守护进程。

B16.如B15所述的方法,还包括:

dbus守护进程接收SP层传递的dbus消息,根据所述dbus消息对应的dbus总线名定位当前AP进程,将所述dbus消息发送至AP层。

B17.如B16所述的方法,所述根据所述dbus消息对应的dbus总线名定位当前AP进程,将所述dbus消息发送至AP层包括:

根据所述dbus消息对应的dbus总线名查找其对应的总线编号及相应的unix套接字;

将所述dbus消息发送至所述unix套接字中以发送至AP层。

B18.如B17所述的方法,所述AP层接收dbus守护进程发送的dbus消息,从dbus消息中获取所述SP对应的设备信息包括:

AP层接收unix套接字并对其解码以获取相应的dbus消息;

从dbus消息中获取共享内存中的设备信息指针;

通过所述设备信息指针从共享内存里获取所述SP对应的设备信息。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。

如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。

尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1