具体实施方式
针对现有技术存在的上述技术问题,本发明实施例提供一种设备管理方法及其系统和管理服务器,以提高设备管理的有效性和效率。设备管理方法包括:服务器接收客户端发送的设备操作请求,该设备操作请求中携带有待操作设备的设备类型信息;服务器从设置的设备类型与设备文件的对应关系中,确定出与所述待操作设备的设备类型信息对应的设备文件;服务器采用与所述待操作设备对应的设备文件,对所述待操作设备进行相应的设备操作。本发明技术方案中,在服务器中设置有设备类型与设备文件的对应关系,在接收到设备操作请求时,采用与待操作设备的设备类型对应的设备文件对该待操作设备进行相应的设备操作,一方面,当增加新的设备或更新设备时,只需要修改设备文件的配置即可,不需要频繁的修改应用软件的源代码,从而简化了设备接入或更新的流程,提高了设备扩展和更新的灵活性和效率,继而提高了设备管理的有效性,并且不频繁的修改应用软件的源代码还可以提高软件运行的稳定性与安全性;另一方面,采用C/S(即客户端/服务器)模式实现设备管理,当服务器和客户端的任一方出现故障时,不会影响到另一方,从而提高了系统的安全性和可靠性。
下面结合说明书附图对本发明技术方案进行详细的描述。
参见图1,为本发明实施例中设备管理的方法流程图,该方法包括:
步骤101、服务器接收客户端发送的设备操作请求,该设备操作请求中携带有待操作设备的设备类型信息。
步骤102、服务器从设置的设备类型与设备文件的对应关系中,确定出与所述待操作设备的设备类型信息对应的设备文件。
步骤103、服务器采用与所述待操作设备对应的设备文件,对所述待操作设备进行相应的设备操作。
较佳地,上述步骤102中还可以包括步骤:当所述服务器从设置的设备类型与设备文件的对应关系中,不能确定出与所述待操作设备的设备类型信息对应的设备文件时,所述客户端生成与所述待操作设备的设备类型对应的设备文件并输出。
较佳地,上述步骤102该可以包括步骤:所述服务器根据所述客户端输出的与所述待操作设备的设备类型对应的设备文件,更新所述设置的设备类型与设备文件的对应关系。
较佳地,上述步骤101还可以包括:服务器接收所述客户端发送的设备接入请求,该设备接入请求中携带有待接入设备的设备类型信息;上述步骤102还可以包括以下步骤:所述客户端在所述服务器从设置的设备类型与设备文件的对应关系中不能确定出与所述待接入设备的设备类型信息对应的设备文件时,建立与该待接入设备的设备类型对应的设备文件并输出。
较佳地,上述步骤102还包括步骤:服务器根据所述客户端输出的与所述待接入设备的设备类型对应的设备文件,更新所述设置的设备类型与设备文件的对应关系。
较佳地,上述步骤101中还可以包括:服务器接收客户端发送的设备更新请求,该设备更新请求中携带有待更新设备的设备类型信息和更新设备的设备类型信息;上述步骤102具体包括:服务器从设置的设备类型与设备文件的对应关系中,确定出与所述待更新设备的设备类型信息对应的设备文件;所述步骤103还可包括:采用所述设备文件将所述更新设备替换所述待更新设备。
较佳地,上述步骤102还包括步骤:在所述服务器从所述设置的设备类型与设备文件的对应关系中,不能确定出与所述更新设备的设备类型信息对应的设备文件时,所述客户端生成与所述待接入设备的设备类型对应的设备文件并输出;所述服务器根据所述客户端输出的与所述更新设备的设备类型对应的设备文件,更新所述设置的设备类型与设备文件的对应关系。
较佳地,所述客户端和所述服务器端既可以集成在同一物理设备,也可以分别集成在独立的物理设备上。
较佳地,所述客户端和所述服务器之间通过通信协议进行通信。如可通过RPC协议(Remote Procedure Call Protocol,远程过程调用协议)进行通信。
参见图2,为本发明实施例中设备管理系统的结构示意图,该设备管理系统包括客户端21和服务器22,且服务器22还连接有多个设备,如连接有设备1、设备2、...、设备n,其中:
客户端21,用于发送设备操作请求,该设备操作请求中携带有待操作设备的设备类型信息;
服务器22,用于所述客户端21发送的设备操作请求,并从设置的设备类型与设备文件的对应关系中,确定出与所述待操作设备的设备类型信息对应的设备文件;以及,采用与所述待操作设备对应的设备文件,对所述待操作设备进行相应的设备操作。
较佳地,客户端21进一步用于,在服务器22从设置的设备类型与设备文件的对应关系中,不能确定出与所述待操作设备的设备类型信息对应的设备文件时,生成与所述待操作设备的设备类型对应的设备文件并输出。
较佳地,服务器22进一步用于,接收客户端21生成的与所述待操作设备的设备类型对应的设备文件,并根据所述接收单元接收到的与所述待操作设备的设备类型对应的设备文件,更新所述设置的设备类型与设备文件的对应关系。
较佳地,客户端21进一步用于,发送设备接入请求,该设备接入请求中携带有待接入设备的设备类型信息;以及,用于在服务器22从设置的设备类型与设备文件对应的关系中,不能确定出与所述带接入设备的设备类型信息对应的设备文件时,生成与所述待接入设备的设备类型对应的设备文件并输出。
较佳地,服务器22进一步用于,根据客户端21输出的与所述待接入设备的设备类型对应的设备文件,更新所述设置的设备类型与设备文件的对应关系。
较佳地,客户端21发送设备更新请求,该设备更新请求中携带有待更新设备的设备类型信息和更新设备的设备类型信息;
服务器22进一步用于,从设置的设备类型与设备文件的对应关系中,确定出与所述待更新设备的设备类型信息对应的设备文件,并采用该设备文件将所述更新设备替换所述待更新设备。
较佳地,客户端21进一步用于,在服务器22从所述设置的设备类型与设备文件的对应关系中,不能确定出与所述更新设备的设备类型信息对应的设备文件时,生成与所述待接入设备的设备类型对应的设备文件并输出;
服务器22进一步用于,根据客户端21输出的与所述更新设备的设备类型对应的设备文件,更新所述设置的设备类型与设备文件的对应关系。
参见图3,为本发明实施例中管理服务器的结构示意图,该管理服务器包括:
接收单元31,用于接收客户端发送的设备操作请求,该设备操作请求中携带有待操作设备的设备类型信息;
确定单元32,用于从设置的设备类型与设备文件的对应关系中,确定出与所述待操作设备的设备类型信息对应的设备文件;
处理单元33,用于采用确定单元32确定的与所述待操作设备对应的设备文件,对所述待操作设备进行相应的设备操作。
上述设备管理服务器还包括更新单元34;
接收单元31进一步用于,在从所述设备类型与设备文件的对应关系中不能确定出与所述待操作设备的设备类型对应的设备文件时,接收客户端发送的与所述待操作设备的设备类型对应的设备文件;
更新设备34,用于根据接收单元31接收到的与所述待操作设备的设备类型对应的设备文件,更新所述设置的设备类型与设备文件的对应关系。
较佳地,接收单元31进一步用于,在从所述设备类型与设备文件的对应关系中不能确定出与待接入设备的设备类型对应的设备文件时,接收客户端发送的与所述待接入设备的设备类型对应的设备文件;
所述更新设备34进一步用于,根据接收单元31接收到的与所述待接入设备的设备类型对应的设备文件,更新所述设置的设备类型与设备文件的对应关系。
较佳地,接收单元31进一步用于,在从所述设备类型与设备文件的对应关系中不能确定出与更新设备的设备类型对应的设备文件时,接收客户端发送的与更新设备的设备类型对应的设备文件,该更新设备用于替换待更新设备;
所述更新设备34进一步用于,根据接收单元31接收到的与更新设备的设备类型对应的设备文件,更新所述设置的设备类型与设备文件的对应关系。
上述图2中的服务器的结构与图3中的设备管理服务器的结构相同,在此不再赘述。
本发明实施例中,由于每个设备文件都包括一个设备类型号属性(即Dcvicc Style),该设备类型号属性为用于识别设备文件的唯一标志,因此,本发明实施例中的设备类型信息可以是设备类型号。
本发明技术方案既适用于物理设备也适用于虚拟设备,为更好的区别物理设备与虚拟设备,本发明实施例中,将物理设备对应的设备文件的设备类型号设置为自然数,如各物理设备对应的设备文件对应的设备类型号从自然数1开始逐一增加;将虚拟设备对应的设备文件的设备类型号设置为二进制数,如各虚拟设备对应的设备文件对应的设备类型号从10001开始逐一增加。
参见图4,为本发明实施例中设备管理服务器管理设备的方法流程图,该方法包括:
步骤401、接收单元31接收客户端通过RCP协议发送的设备操作请求,该设备操作请求中携带有待操作设备的设备类型信息。
步骤402、确定单元32判断是否已对设备文件进行初始化,若是则执行步骤404,否则执行步骤403。
步骤403、初始化设备文件。
步骤404、根据所述设备操作请求中携带的设备类型信息,从设备类型与设备文件的对应关系中确定出与所述待操作设备的设备类型信息对应的设备文件。
步骤405、处理单元33调用确定单元32确定的设备文件对所述待操作设备进行相应的操作。
步骤406、处理单元33将对所述待操作设备进行操作的结果反馈给客户端。
本发明实施例中,客户端针对每类设备,设置与该类设备对应的多个接口函数,不同的接口函数实现不同的功能;当需要对该类设备进行相应的操作时,相应的设备文件可通过调用上述接口函数中的一个或多个接口函数来实现对该类设备进行相应的操作。一类设备对应的接口函数可实现的功能如下:获取设备类型号,获取设备信息,检查设备是否可写,读文件、写文件或删除文件,获取文件列表等。
实现不同功能的接口函数可通过以下代码实现:
(1)/*获取所有可用设备*/
BOOL GetAllActiveDevice(HANDLE&hDevicePaths,
DWORD&dwLen);
(2)/*获取设备的信息*/
BOOL GetDeviceInfo(LPCTSTR lpDevicePath,
HANDLE&hInfo,
DWORD&dwInfoLen);
(3)/*检查设备是否可写*/
BOOL DeviccCanWrite(LPCTSTR lpDevicePath);
(4)/*保存文件到设备*/
BOOL SaveFilcToDevicc(LPCTSTR lpDeviccPath,
LPCTSTR lpFilcNamc,
LPCTSTR lpSourceFileName);
(5)/*保存文件到设备*/
BOOL SavcFilcToDevice(LPCTSTR lpDevicePath,
LPCTSTR lpFileName,
BYTE*pFileContent,
DWORD dwContentLen);
(6)/*检查文件是否存在*/
BOOL FileIsExist(LPCTSTR lpDevicePath,
LPCTSTR lpFileName);
(7)/*获得文件从设备*/
BOOL GetFileFromDevice(LPCTSTR lpDevicePath,
LPCTSTR lpFileName,
LPCTSTR lpDestFileName);
(8)/*获得文件从设备*/
BOOL GetFileFromDevice(LPCTSTR lpDevicePath,
LPCTSTR lpFileName,
HANDLE&hContent,
DWORD&dwContentLen);
(9)/*获得设备名称*/
BOOL GetDeviceCaption(char sz[_MAX_PATH]);
(10)/*获得设备所有文件列表*/
BOOL EnumFilesInDevice(LPCTSTR lpDevicePath,
LPCTSTR lpSubDir,
LPCTSTR lpFilter,
HANDLE&hFiles,
DWORD&dwFileCount);
(11)/*删除文件*/
BOOL DeleFileFromDevice(LPCTSTR lpDevicePath,
LPCTSTR lpFileName);
(12)/*删除所有文件*/
BOOL DeleAllFileFromDevice(LPCTSTR lpDevicePath)。
本发明实施例中的设备文件是指能够实现抽象出来的接口函数的动态库,对于不同的设备类型,调用与该设备类型对应的接口函数以实现相应的功能。本发明实施例中通过以下代码来实现设备文件所能实现的功能:
(1)/*根据设备类型号获取相应的设备*/
IBaseDevice*GetDevice(long lDeviceStyle,
HDLLINSTANCE*phInstance=NULL);
(2)/*初始化设备文件*/
void InitModuleHandle(HANDLE hModule);
(3)/*释放*/
void UnInitModuleHandle();
(4)/*在默认路径获得所有的设备文件*/
void SearchPlugIn(std::vector<std::string>&aPlugInName);
(5)/*在指定路径获得所有的设备文件*/
int SearchPlugInInFolder(const char*sFoldcr,
std::vector<std::string>&aPlugInName)。
本发明实施例中,一方面,在服务器中设置有设备类型与设备文件的对应关系,在接收到设备操作请求时,采用与待操作设备的设备类型对应的设备文件对该待操作设备进行相应的设备操作;当增加新的设备或更新设备时,只需要修改设备文件的配置即可,不需要频繁的修改应用软件的源代码,从而简化了设备接入或更新的流程,提高了设备扩展和更新的灵活性和效率,继而提高了设备管理的有效性,并且不频繁的修改应用软件的源代码还可以提高软件运行的稳定性与安全性;另一方面,当增加或更新了新类型设备时,生成与该新类型设备对应的设备文件,并根据生成的设备文件更新设备类型与设备文件的对应关系,从而实现了对设备类型与设备文件的对应关系的即时更新,为后续增加或更新设备提供较新的对应关系,从而进一步提高了设备管理效率;再一方面,采用C/S(即客户端/服务器)模式实现设备管理,当服务器和客户端的任一方出现故障时,不会影响到另一方,从而提高了系统的安全性和可靠性。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。