CN104881376A - 自助服务终端(sst)设备驱动程序 - Google Patents

自助服务终端(sst)设备驱动程序 Download PDF

Info

Publication number
CN104881376A
CN104881376A CN201510087826.0A CN201510087826A CN104881376A CN 104881376 A CN104881376 A CN 104881376A CN 201510087826 A CN201510087826 A CN 201510087826A CN 104881376 A CN104881376 A CN 104881376A
Authority
CN
China
Prior art keywords
application program
equipment
communication port
sst
operating system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201510087826.0A
Other languages
English (en)
Other versions
CN104881376B (zh
Inventor
安德鲁·莫纳根
理查德·汉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NCR Voyix Corp
Original Assignee
NCR Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NCR Corp filed Critical NCR Corp
Publication of CN104881376A publication Critical patent/CN104881376A/zh
Application granted granted Critical
Publication of CN104881376B publication Critical patent/CN104881376B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Systems (AREA)

Abstract

提供了可拓展设备驱动程序和一个可拓展设备驱动程序自助服务终端(SST)的方法。一个SST(100或401)包括一个具备通信端口(120)的操作系统(OS)(110),以及一个拥有特定于连接至SST(100或401)的硬件设备(150)的低级别命令的应用程序(130);低级别命令可直接由设备(150)执行。通信端口(120)可用以转发信息以及设备(150)与应用程序(130)之间的命令(包括低级别命令)。应用程序(130)使用低级别命令直接控制设备(150),且低级别命令不能被OS(110)识别。

Description

自助服务终端(SST)设备驱动程序
技术领域
本发明涉及可拓展设备驱动程序和一个可拓展设备驱动程序自助服务终端(SST)的方法。
背景技术
传统上,硬件驱动程序会被打包成独立二进制组件,以扩展操作系统(OS)。硬件驱动程序还向应用程序提供应用程序编程接口(API),用于控制与驱动程序相关的设备。OS组件和应用程序组件(API)的这种分离增加了升级的复杂性,导致:
·OS必须通过打包成OS中的驱动程序来加以增强,因此在需要更改驱动程序时就不得不升级OS;或
·驱动程序需要被部署为单独的部署单元,作为OS之后的独立包安装,由于此独立包在部署时需要OS的特殊权限,故会引发潜在的安全漏洞和攻击危险。
对于诸如自动柜员机(ATM)等自助服务终端(SST),与硬件设备安装相关的问题尤为突出。ATM是一类高度安全的SST,仅有指定工程师(获授权访问)具有对相关OS、硬件设备和软件的管理访问权限。远程网络访问通常遭到禁止,即使是对维修工程师。因此,当ATM需要更换新的硬件设备(因原有设备存在缺陷或需要在ATM上更新若干特性)时,银行工作人员必须等到工程师有空时过来,且更新过程可能需要一段时间。不仅如此,OS本身甚至可能不允许较新的设备或可能需要更新,这也会大大增加在ATM平台上安装和测试新设备的时间和复杂性。
发明内容
在各实施方案中,呈现了用于安装和使用SST设备驱动程序的可扩展自助服务终端(SST)设备驱动程序和方法。
根据一个实施例,所提供的SST包括一个操作系统(OS)和一个应用程序。所述OS包括一个通信端口,而该应用程序包括特定于一个硬件设备的低级别命令,该硬件设备通过该通信端口连接至SST,低级别命令则由硬件设备直接执行。通信端口可操作中继信息以及硬件设备与该应用程序之间的命令,该应用程序直接控制硬件设备;OS无法识别低级别命令(至少而言,OS不分析或解释低级别命令,仅会将它们传递到硬件设备)。
根据本发明的第一个方面,所提供的操作连接至主机的设备的方法包含:在主机的一个处理器上执行一个应用程序;使用操作系统的一个通信端口,将该应用程序与接至主机的一个设备相连接;该应用程序选择一个低级别设备命令,用于与该设备通信;及该应用程序向设备发出无法被操作系统识别但可被该设备识别的低级别设备命令。
该方法还可选择性地包含该应用程序通过所述操作系统通信端口接收设备响应。
该方法还可选择性地包含处理器在操作系统缺少该设备的设备驱动程序时,作为该设备的软设备驱动程序执行该应用程序。
该方法还可选择性地包含该应用程序通过更新该应用程序内的一个或多个低级别设备命令和其他低级别设备命令来更新软设备驱动程序。
该方法还可选择性地包含处理器更新包括低级别设备命令在内的整个应用程序。
所述连接步骤还可选择性地包括该应用程序从操作系统提供的通用串行总线应用程序编程接口的可用命令中选择一个连接命令。
所述选择步骤还可选择性地包括该应用程序根据其评估的处理条件来确定适当的低级别设备命令。
根据本发明的第二个方面,所提供的自助服务终端包含:一个操作系统,包括一个通信端口接口;一个应用程序,可以:(i)使用操作系统的通信端口接口连接至安装在自助服务终端上的硬件设备;(ii)通过通信端口接口向硬件设备发出特定于设备的命令,其中所述特定于设备的命令不由操作系统处理,而是传递给硬件设备。
可选择地,该硬件设备在与该应用程序相关的执行空间之外不可访问。
所述自助服务终端可包含一台自动柜员机。
通信端口接口可以与通用串行总线通信端口相关联。
所述硬件设备可包含一个介质出钞器。
根据本发明的第三个方面,所提供的方法包含:在自助服务终端上执行的操作系统检测新连接至该自助服务终端的设备;操作系统通知该应用程序新连接设备的存在;操作系统响应从该应用程序到的连接命令,以建立该应用程序与新连接设备之间的连接;及操作系统向该应用程序提供操作系统的一个通信端口接口,用于在连接期间与新连接设备通信,其中该应用程序将接至该设备的连接用作该设备的软设备驱动程序,并向该设备发出特定于设备的命令,所述特定于设备的命令附加于或嵌入操作系统的一个通信端口接口命令,且不能被操作系统识别。
该方法还可选择性地包含当该应用程序不在自助服务终端上执行时,操作系统将忽略新连接设备的存在。
该方法还可选择性地包含操作系统更新该应用程序,从而更新特定于设备的命令。
检测步骤还可选择性地包括检测是否存在受操作系统监控的通用串行总线通信端口接口。
通知步骤还可选择性地包括操作系统向该应用程序提供存在情况,作为USB设备的连接通知。
建立步骤还可选择性地包括操作系统提供连接,作为该应用程序与该设备连接的自助服务终端通信端口之间的隧道。
建立步骤还可选择性地包括操作系统在该设备与自助服务终端的通信端口断开连接时终止连接。
建立步骤还可选择性地包括当该应用程序在操作系统内被终止并发出结束连接命令时,操作系统将终止连接。
根据本发明的第四个方面,所提供的方法包含:在一个处理器上处理一个应用程序;由该应用程序连接接至主机设备的一个设备;该应用程序选择一个用于与该设备通信的低级别设备命令;及该应用程序使用操作系统(OS)提供的一个OS通信端口应用程序编程接口(API),向该设备发出OS无法识别的低级别设备命令。
根据本发明的第五个方面,所提供的自助服务终端(SST)包含一个应用程序,其可以:(i)在SST上的操作系统(OS)内执行;(ii)连接至接到一个硬件设备的一个SST的通信端口;(iii)在连接期间通过OS提供的一个通信端口应用程序编程接口,向硬件设备发出特定于设备的命令,以将所述特定于设备的命令从该应用程序发送至通信端口,其中所述特定于设备的命令无法被操作系统识别,仅可被硬件设备识别及在硬件设备上处理。
根据本发明的第六个方面,所提供的方法包含:于在自助服务终端(SST)上处理的操作系统(OS)内检测是否存在新连接至SST的设备;OS通知应用程序所述的存在;OS响应从该应用程序接收的连接命令,以建立该应用程序与该设备之间的连接;及OS向该应用程序提供一个OS通信端口应用程序编程接口(API),用于在连接期间与该设备通信,其中该应用程序将接至该设备的连接用作该设备的软设备驱动程序,并向该设备发出特定于设备的命令,所述特定于设备的命令附加于或嵌入一个OS通信端口API命令,且不能被操作系统识别。
附图说明
下文将具体说明本发明的上述内容和其他方面,其中:
根据一个示例实施例,图1是具有应用程序级设备驱动程序支持的自动柜员机(ATM)的示意图;
根据一个示例实施例,图2是与可扩展SST设备驱动程序进行交互的方法的示意图;
根据一个示例实施例,图3是与可扩展SST设备驱动程序进行交互的另一方法的示意图;及
根据一个示例实施例,图4是一个可扩展设备驱动程序SST的示意图。
具体实施方式
首先参照图1,根据一个示例实施例,这是具有应用程序级设备驱动程序支持的自动柜员机(ATM)100的示意图。
仅出于说明目的,描绘各个组件以及呈现组件的布置形式。但要指出的是,也可以按其他方式布置更多或更少组件,而不会脱离本文和下文呈现的应用程序级设备驱动程序支持。
本文和下文就可扩展SST设备驱动程序运作呈现的ATM 100、方法和SST,可以在与ATM 100一起列示的一个或全部组件或部件组合中全部或部分实现。这些技术和方法均在内存和/或永久性电脑可读存储媒体中被编程为可执行指令,并在与不同组件相关的一个或多个处理器中执行。此外,ATM 100以大为简化的形式示出,主要(但并非详尽)描绘了仅在理解本文所述教导时所强调或所需的组件。
后文的讨论将陈述本发明的一个实施例,即ATM 100中的一个应用程序130。要指出的是,任何SST(如信息亭)或设备均可从本文所述的教导中获益;其中一些将参照图2-4进行讨论。因此,下列描述仅是本发明的实施例,无意将本发明限定为金融设施上的金融交易。
ATM 100包括一个操作系统(OS)110、一个OS通信端口API 120、一个包括物理设备命令模块131的应用程序130、一个通信端口140以及一个连接的硬件设备150。
OS 110可提供一个处理环境(平台),以便执行命令、操作和应用程序,访问连接或接口至OS 110的设备和外围设备。
在一个实施例中,OS 110是安卓(商标)OS或其中一个修订版本。
在一个实施例中,OS是基于Tizen(商标)、Unix(商标)或Linux(商标)的开源OS及其他开源OS中的一种。
在一个实施例中,OS 110是Windows(商标)、Apple iOS(商标)、Blackberry(商标)及其他非开源或专有OS 110中的一种。
在本实施例中,OS 110包括访问一些常规硬件设备(如USB端口、存储设备、相机等等)的一些常规设备驱动程序111。然而,OS 110不包括ATM专有硬件组件(如加密密码键盘、出钞器、现金存款器、现金循环模块等等)的任何设备驱动程序。
OS通信端口API 120是OS 110为应用程序(如应用程序130)提供的一个接口,用以访问ATM 100的一个通信端口140。通常,此端口API 120可让一个应用程序直接连接至端口140,并从应用程序130传递命令至通过端口140连接至ATM 100的硬件设备150。
在一个实施例中,端口140是一个通用串行总线(USB)端口,端口API 120是USBAPI 120。应了解的是,可以提供多个USB端口140,且ATM 100中可以安装多个硬件设备150,每个硬件设备150被连接至不同的USB端口140。
在本实施例中,硬件设备150是ATM专用硬件设备(或高安全硬件设备),因此限制访问硬件设备150是非常可取的。
硬件设备150通常包括一个处理器,并可执行低级别命令,以执行与该硬件设备150有关的功能和任务。
物理设备命令模块131采用访问连接的硬件设备150及与之通信的必要逻辑和命令进行配置。物理设备命令可以是连接的硬件设备150预期和识别的任何低级格式,例如但不限于二进制指令及内存或存储位置以及激活命令和存储位置的偏移。在一些情况下,物理设备命令可为更高级别,以便进行识别的API调用。但不管与物理设备命令有关的抽象级别为何,OS 110都缺少并且不会识别那种格式;OS 110只会将应用程序130连接至端口140,为该应用程序130提供端口API 120,以与硬件设备150进行通信。
此外,物理设备命令模块131不止包括命令。例如,物理设备命令模块131包括控制下列各项的逻辑:命令的同步和对该等命令的响应;与未获得及时响应的命令有关的超时;平行发出的命令的管理;向USB端口上不同的信道发出的命令的管理等等。
物理设备命令模块131包括一个设备API 132,其允许应用程序130以与一个常规应用程序向包括本身安装的设备驱动程序的一个操作系统发出命令的类似方式向硬件设备150发出高级别命令。设备API 132收到该等高级别命令后将之转换为必要的低级别命令,然后再通过OS通信端口API 120发送至硬件设备150。
OS 110亦可终止应用程序130与端口140之间的连接。这可在应用程序130专门发出OS识别的命令终止连接(命令亦可为端口API 120的一部分)时发生,亦可在应用程序130在ATM 100中的运行被(正常或异常)终止或在硬件设备150从端口140断开连接(移除)时发生。
另外,应用程序130是硬件设备150的设备驱动程序。也就是说,OS 110缺少服务硬件设备150的设备驱动程序。设备驱动程序被称为“软驱动程序”,因为对设备特定(低级别)命令的访问通常由用户应用程序(如应用程序130)控制,而不是由OS 110控制。因此,不能在应用程序130的执行范围外实现对硬件设备150的访问。这就为ATM 100提供了额外的安全性(在ATM环境中至关重要),因为对硬件设备150的任何访问都必须源自应用程序130,这是因为只有该应用程序130包括必要的低级别命令。
通常,当新设备被安装到一台机器(或终端)上时,OS会限制对该设备的访问,直到OS可以查找并安装通过通信端口连接设备传递设备特定的命令及接收设备特定的响应的设备驱动程序为止。
不过,如本文和下文作出的更完整说明一样,OS 110不需要任何设备驱动程序,以安装新连接的硬件设备150及允许与之进行通信。相反,应用程序130通过请求OS 110将应用程序130连接至端口140及使用OS提供的端口API 120(由此,应用程序130可向硬件设备150传递物理设备命令并从硬件设备150接收响应)向连接的硬件设备150提供设备驱动程序。
应用程序130亦可有一个应用程序接口,为其他应用层应用程序提供与应用程序130进行交互的用户交互功能和/或应用程序API命令。
在ATM 100中的应用程序130运行的过程中,硬件设备150被检测为已连接或接口至ATM的通信端口140。OS 110因而可以通过端口140接收连接通知。该通知由OS 110传达至应用程序130。这可通过端口API 120的通知命令或通过应用程序130中配置的由OS提供的其他命令发生。
一旦应用程序130从OS 110收到通知,应用程序130就需要连接至端口140。这可通过端口API 120中的命令或通过应用程序130中配置的由OS 110识别的标准端口连接命令发生。
连接至端口140后,应用程序130使用从端口API 120选择的命令通过端口140直接向硬件设备150发出物理设备命令。硬件设备150识别命令并采取适当的行动,也可能通过端口140传回响应或其他数据,这些响应或其他数据也可能是设备特定的格式。连接至端口140的应用程序130接收该等响应或其他数据,并按照该应用程序的配置逻辑进行处理。因此,端口API 120可提供路由功能,在应用程序130与硬件设备150之间传送特定命令(即物理设备命令)和响应。
在一个实施例中,各设备命令被加密或包括一个仅可在硬件设备150和应用程序130之间加密或验证的密钥。由此进一步加强安全性,因为硬件设备150被预配置为验证各项命令并传回加密数据作为响应。因此,假设应用程序130被ATM 100的OS 110中的一个未授权应用程序替换或修改,且该应用程序以某种方式得知设备命令,该应用程序与硬件设备150之间的通信就会失败,因为硬件设备150上的加密通信或验证会失败。
由于消费者进行的是金融交易,加上ATM含有大量货币,所以安全性是ATM尤需注意的问题。
维护、支持和管理同样也是就连接的硬件设备维护ATM的员工关心的问题。通过一个应用程序130在ATM 100上提供软设备驱动程序支持的技术可以业内迄今为止前所未有的水平改善ATM 100的维护、支持和管理。
例如,对应用程序130的更新也是一项更新,可提供机会更新物理设备命令模块131的命令,从而有效地更新硬件设备150的设备驱动程序支持。需注意的是,发生这种情况时,不需要对OS 110进行任何更新。
此外,由于设备命令由应用程序130(可能是通过文件引用和索引机制)控制,设备命令可通过替换可被应用程序130访问的文件进行更新(软驱动程序更新)。这就为管理硬件设备150的应用程序和设备驱动程序提供了出色的灵活性,因为命令不是在应用程序130中进行硬编码,而替换有命令的文件却会对设备驱动程序进行有效的更新,但不会更新应用程序130和OS 110。此文件引用可就安全性进行加密签名。
亦需注意的是,应用程序130可有用于连接至ATM 100的不同设备的设备驱动程序支持的不同设备命令组合和类型。因此,一个应用程序130可充当多个硬件设备的多个软设备驱动程序。不同的端口API也可用于可在ATM 100上访问的不同通信端口。例如,ATM100可包括USB端口140和一个RS232端口(未显示)。这些端口(USB和RS232端口)都可获得一个不同的OS通信端口API。
此外,还需注意的是,尽管ATM 100描述了一个单一应用程序130,但实际上可以有多个独立的应用程序(就应用程序130而言),每个应用程序拥有自己的物理设备命令(一些可能被导向至相同的硬件设备150或被导向至一个不同的连接硬件设备)。如前所述,ATM 100是以大为简化的形式提供的,单一应用程序130和单一硬件设备150仅出于说明目的加以描绘,且有关描述的目的不是将ATM 100的范围限定为一个拥有应用程序130和硬件设备150的单一实例的配置。典型ATM 100将有多个与之连接的硬件设备150。
硬件设备150(或多个硬件设备)可包含以下一项或多项:一个在AMT 100上吐出有价介质(如货币、奖励、虚拟货币(通过连接的永久性电脑可读媒体设备)、优惠券等等)的出钞器;一个加密的个人识别码(PIN)键盘设备;一个显示设备;一个打印机(如一个打印凭条的凭条打印机、一个打印对账单的对账单打印机、一个打印交易记录的流水打印机等等);一个用户输入设备(如一个键盘、触摸屏覆盖);一个生物计量捕捉设备;一个摄像头(静止帧或影像)等等。
在一个实施例中,通信端口140是一个USB端口;一个安全数位(SD)卡槽;一个以太网端口;一个视频图形阵列(VGA)端口、一个高清多媒体接口(HDMI)、一个AppleThunderbolt(商标)端口等等。
现应了解的是,ATM 100的一个或多个连接硬件设备150的设备驱动程序支持可通过一个在操作系统110上运行的应用程序130实现,该操作系统拥有一个通信端口API 120,用以将来自该应用程序130的命令传送至硬件设备150,而不会转换或解释该等命令。这提高安全性,并消除了OS 110更新或设备驱动程序更新时,这些设备驱动程序对OS 110的依赖性。这还以行业内迄今为止前所未有的效率,改善了硬件设备150的维护、支持和管理功能。在一些实施例中,保留操作系统110内的一些设备驱动程序可能有一些好处,当这些驱动程序的相关安全性不高,或驱动程序涉及提供访问存储体、通信端口等基础设施功能的传统电脑组件时,尤为如此。
这些(上述)实施例和其他实施例现已参照图2-4予以讨论。
根据一个示例实施例,图2是与可扩展SST设备驱动程序进行交互的方法200的示意图。实现方法200的软件模块(一个或多个)被称为“软设备驱动程序。”软设备驱动程序被实现为编程的可执行指令,驻留于内存和/或永久性电脑可读(处理器可读)存储媒体,由主机设备的一个或多个处理器执行。执行软设备驱动程序的主机设备处理器(一个或多个)经过专门的配置与编程,以处理软设备驱动程序。该软设备驱动程序有权在处理期间访问一个或多个网络。网络可以为有线、无线或有线与无线相结合。
因此,最初在210处,主机设备的处理器(一个或多个)执行该主机设备上为软设备驱动程序提供处理环境或平台的OS内的软设备驱动程序(图2中称为“应用程序”)。
在一个实施例中,处理软设备驱动程序的主机设备是ATM 100或其他信息亭。
在220处,软设备驱动程序连接到与主机设备连接的硬件设备。这个操作可能在OS通知软设备驱动程序硬件设备已存在或连接至主机设备的通信端口后完成。
根据一个实施例,在221处,软设备驱动程序从OS在USB端口API中提供的可用命令中选择了连接命令,供应用程序与连接至硬件设备的通信端口通信。
在230处,软设备驱动程序选择了低级别命令(特定于设备的命令),以便与硬件设备进行通信。即,软设备驱动程序从硬件设备识别的命令中选择了特定命令(硬件设备识别的物理设备命令或设备命令)。
在一个实施例中,在231处,软设备驱动程序根据其对处理条件的评估,确定低级别设备命令,评估过程中软设备驱动程序和硬件设备必须进行通信或访问。这可能是软设备驱动程序中评估的任何逻辑。
在240处,软设备驱动程序使用OS提供的OS通信端口API,向硬件设备(连接至主机设备)发布低级别设备命令。OS未识别(或尝试分析或识别)低级别设备命令。
根据一个实施例,在241处,软设备驱动程序提供低级别设备命令,作为硬件设备特定且专有的物理设备命令。OS也未识别这个物理设备命令。这意味着,OS不知道如何处理或识别物理设备命令的格式。
在一个实施例中,在250处,软设备驱动程序收到硬件设备发出的对最初发布的低级别设备命令的响应。此响应是通过OS通信端口API接收的。
在一个实施例中,在260处,(主机设备且处理有关210-250的)处理器将软件当做硬件设备的软设备驱动程序处理。换而言之,软设备驱动程序是硬件设备的设备驱动程序,OS缺乏与硬件设备独立交互的设备驱动程序。软设备驱动程序是硬件设备的设备驱动程序。
根据实施例260和261处,软设备驱动程序通过更新低级别设备命令和/或更新软设备驱动程序内的其他低级别设备命令,更新软设备驱动程序。当软设备驱动程序可访问的文件中有可用的低级别设备命令,以便软设备驱动程序选择一个新文件或一个已更改的文件,进而有效更新软设备驱动程序时,可以完成上述操作。
在另一种情况下,在262处,执行软设备驱动程序的主机设备处理器,通过更新软设备驱动程序(在某些实施例中,通过更新整个应用程序)以更新软驱动程序。
根据一个示例实施例,图3是与可扩展SST设备驱动程序进行交互的另一方法300的示意图。实现方法300的软件模块(一个或多个)在本文被称为SST软驱动程序OS。SST软驱动程序OS被实现为可执行指令,在内存和/或永久性电脑可读(处理器可读)存储媒体内被编程,并在SST的一个或多个处理器上执行。SST的处理器被专门配置为执行SST软驱动程序OS。SST软驱动程序OS可访问一个或多个网络,网络可以为有线、无线或有线和无线相结合。
在一个实施例中,处理SST软驱动程序OS的SST是ATM 100或其他信息亭。
在一个实施例中,SST软驱动程序OS被实现为对SST OS的增强。
在310处,SST软驱动程序OS检测到SST存在新连接设备。这个结果是通过SST软驱动程序OS为SST管理的通信端口的通信端口接口得到的。
根据一个实施例,在311处,SST软驱动程序OS检测受SST软驱动程序OS监控的USB通信端口接口上的存在状态。
在320处,SST设备驱动程序管理器通知应用程序SST通信端口接口上检测的存在状态。
在一个实施例中,应用程序是应用程序130。
在一个实施例中,应用程序是图2的方法200。
通知可通过SST软驱动程序OS向应用程序提供的通信端口接口API发出;或者,通知可通过OS向应用程序发送的标准设备通知消息发出。
根据实施例320和311以及321处,SST软驱动程序OS提供通知作为USB设备的连接通知,被应用程序的处理逻辑识别为通过通信端口连接的SST已连接设备。
在330处,SST软驱动程序OS在应用程序和连接设备之间建立了连接。此操作是对应用程序向SST软驱动程序OS发出的连接请求的响应。再次,连接请求可以通过应用程序使用OS向其提供的通信端口接口API或应用程序发布由SST软驱动程序OS识别的SST软驱动程序OS命令发出(未纳入通信端口API—标准设备连接请求)。
根据一个实施例,在331处,SST软驱动程序OS为应用程序和连接设备提供连接,作为应用程序和连接设备连接至的SST通信端口之间的“隧道”。
在一个实施例中,在332处,当连接设备从SST的通信端口脱离时,SST软驱动程序OS终止连接。例如,有人将连接设备实体从通信端口移除(如,将USB设备从USB端口断开连接)。
在一个实施例中,在333处,当SST软驱动程序OS收到应用程序的连接终止命令,或应用程序停止在SST上执行(如应用程序正常或异常终止时)时,SST软驱动程序OS终止连接。
在340处,SST软驱动程序OS向应用程序提供一个OS通信端口API,供应用程序与连接设备连接至的SST通信端口进行通信。应用程序使用连接和通信端口API直接与连接设备进行通信。应用程序在连接期间发出特定于设备的命令,并被连接设备识别与处理。连接、OS通信端口API以及应用程序(拥有特定于设备的命令)允许应用程序充当连接设备的软设备驱动程序。SST软驱动程序OS未识别特定于设备的命令,且该SST软驱动程序OS缺乏连接设备的设备驱动程序。因此,应用设备提供用以和连接设备进行通信的设备驱动程序。
根据一个实施例,在350处,当应用程式未以活动状态在SST上执行时,SST软驱动程序OS忽视连接至SST通信端口的连接设备的存在。
在一个实施例中,在360处,SST软驱动程序OS更新了应用程序,此更新引发了对特定于设备的命令进行更新。从本质上说,应用程序的更新是对设备驱动程序的更新,因为应用程序是连接设备的软设备驱动程序(通过特定于设备的命令)。
根据一个示例实施例,图4是可扩展设备驱动程序SST 401的示意图400。可拓展设备驱动程序SST 401(下称“SST 401”)组件经过编程,驻留于内存和/或永久性电脑可读媒体,并在SST 401的一个或多个处理器上执行。SST 401有权访问一个或多个网络,并可通过一个或多个网络进行通信,网络可以为有线、无线或有线和无线相结合。
SST 401包括一个作为可执行指令在SST 401的一个或多个处理器上执行的应用程序402(软件模块或模块组合)。可执行指令驻留于SST 401可访问的内存和/或永久性电脑可读存储媒体中。
在一个实施例中,SST是一个ATM 100。
在一个实施例中,SST是一个信息亭。
SST 401被应用程序402编程,而应用程序402可用于在SST上执行。
应用程序402可用于在SST 401上的OS内执行,并连接至硬件设备所连接至的SST通信端口。可拓展SST 401也可用于在连接期间,通过OS提供的一个通信端口API,向硬件设备发出特定于设备的命令,以将特定于设备的命令从应用程序发送至通信端口。该特定于设备的命令无法被OS识别与获取,可被硬件设备识别及在硬件设备上处理。
根据一个实施例,应用程序402还可以通过特定于设备的命令充当硬件设备的软设备驱动程序执行处理操作,并通过OS用户应用层的可访问用户API,充当管理、控制以及访问硬件设备的接口执行处理操作。
根据一个实施例,应用程序402是应用程序130。
在一个实施例中,应用程序402是图2的方法200。
在一个实施例中,OS是增强OS或图3方法300陈述的OS的增强功能。
在一个实施例中,硬件设备在与OS内应用程序402相关的执行空间之外不可访问。
根据一个实施例,SST 401是一个ATM,而硬件设备是通过USB通信端口连接至ATM的介质出钞器。
应了解的是,当以特定形式(如组件或模块)描述软件时,仅为帮助理解,并无意对实施这些功能的软件的构造或组织形式予以限制。例如,模块可能被图解为分离的模块,但可以作为同源代码、独立组件执行,不过并不是所有的这些模块均可以结合,或者可在以任何其他便利方式构建的软件中实施该功能。
此外,尽管软件模块被图解为在一个硬件上执行,但软件可以分布于单个设备的多个处理器,或采用任何其他便利的形式。
以上描述是说明性的,并非限制性的。在审阅上述说明后,所属领域的技术人员显然可明白许多其他实施例。因此实施例的范围应根据附加权利要求来决定。
在之前对实施例的描述中,出于简化本披露目的,将各个特征分组到单个实施例中。这种披露方法不应被理解为,反映了权利要求的实施例具有多于各个权利要求中明确表述的特征。正如以下权利要求所反映,发明主题反而少于单个披露的实施例的所有特征。

Claims (12)

1.一种操作连接至主机(100或401)的设备(150)的方法(200),此方法包含:
在主机的一个处理器上执行一个应用程序(130)(步骤210);
使用操作系统的一个通信端口(120),将该应用程序(130)与接至主机的一个设备(150)相连接(步骤220);
该应用程序(130)选择一个低级别设备命令,用于与设备通信(步骤230);及
该应用程序(130)向设备发出无法被操作系统(110)识别但可被该设备(150)识别的已选低级别设备命令(步骤240)。
2.权利要求1所述的方法,该方法还包含应用程序(130)通过操作系统通信端口(120)接收设备(150)的响应(步骤250)。
3.权利要求1或2所述的方法,该方法还包含处理器在操作系统(110)缺少该设备(150)的设备驱动程序时,作为该设备(150)的软设备驱动程序执行该应用程序(130)(步骤260)。
4.权利要求3所述的方法,还包含应用程序(130)更新应用程序(130)所储存或获取的引用文件(131),并包含低别设备命令。
5.任何上述权利要求所述的方法,该方法还可包含处理器更新包括低级别设备命令在内的整个应用程序(130)。
6.权利要求5所述的方法,其中更新整个应用程序(130)包括在更新整个应用程序(130)前验证加密证书的分步骤。
7.任何上述权利要求所述的方法,其中操作系统通信端口(120)包含一个通用串行总线应用程序编程接口,而使用端口(120)的步骤包括应用程序(130)从通用串行总线应用程序编程接口(120)的可用命令中选择一个连接命令(步骤221)。
8.任何上述权利要求所述的方法,其中所述选择步骤还包括该应用程序(130)根据其评估的处理条件来确定适当的低级别设备命令。
9.一个自助服务终端(100),包括:
一个通信端口(140);
一个连接至通信端口(140)的硬件设备(150);
一个操作系统(110),包括一个用于通过通信端口(140)接口至硬件设备(150)的通信端口接口(120);
一个应用程序(130),包括一个物理设备命令模块(131),并可以:(i)通过通信端口接口(120)向硬件设备(150)发送特定于设备的命令,其中所述特定于设备的命令不由操作系统(110)处理,而是传递给硬件设备(150)。
10.根据权利要求9所述的自助服务终端,其中操作系统(110)包括供自助服务终端(100)中至少一种设备用的传统设备驱动程序(111)。
11.一种操作连接至主机(100或401)的设备(150)的方法(200),包括权利要求1-8中的任意一个技术特征或者技术特征的任意组合。
12.一个自助服务终端(100),包括权利要求9-10中的任意一个技术特征或者技术特征的任意组合。
CN201510087826.0A 2014-02-28 2015-02-26 自助服务终端及操作连接至自助服务终端的设备的方法 Active CN104881376B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/193,668 US9483420B2 (en) 2014-02-28 2014-02-28 Self-service terminal (SST) device driver
US14/193,668 2014-02-28

Publications (2)

Publication Number Publication Date
CN104881376A true CN104881376A (zh) 2015-09-02
CN104881376B CN104881376B (zh) 2018-10-09

Family

ID=52444169

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510087826.0A Active CN104881376B (zh) 2014-02-28 2015-02-26 自助服务终端及操作连接至自助服务终端的设备的方法

Country Status (3)

Country Link
US (1) US9483420B2 (zh)
EP (1) EP2916226A3 (zh)
CN (1) CN104881376B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10120698B2 (en) * 2017-03-28 2018-11-06 Ncr Corporation Operating system (OS) independent peripheral control

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5901312A (en) * 1994-12-13 1999-05-04 Microsoft Corporation Providing application programs with unmediated access to a contested hardware resource
US20060242611A1 (en) * 2005-04-07 2006-10-26 Microsoft Corporation Integrating programmable logic into personal computer (PC) architecture
US20080096494A1 (en) * 2006-10-19 2008-04-24 Future Dial, Inc. Method and Apparatus for Using an Electromagnetically Shielded Enclosure for Exchanging Secure Data
US7469350B2 (en) * 2005-12-22 2008-12-23 Ncr Corporation Power control interface for a self-service apparatus
US20110296092A1 (en) * 2006-09-12 2011-12-01 Apple Inc. Storing a Driver for Controlling a Memory
US20120131375A1 (en) * 2010-11-18 2012-05-24 International Business Machines Corporation Executing a Kernel Device Driver as a User Space Process
US20120160913A1 (en) * 2002-11-25 2012-06-28 Diebold Self-Service Systems Division Of Diebold, Incorporated Automated Banking Machine that Operates Responsive to Data Read from Data Bearing Records and Diagnostic Method
US20120297094A1 (en) * 2011-05-17 2012-11-22 Ncr Corporation Device start up system and method
CN103678966A (zh) * 2012-08-31 2014-03-26 Ncr公司 安全模块和保证支付信息安全的方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7207041B2 (en) 2001-06-28 2007-04-17 Tranzeo Wireless Technologies, Inc. Open platform architecture for shared resource access management
WO2004001615A1 (en) 2002-06-19 2003-12-31 Telefonaktiebolaget Lm Ericsson A network device driver architecture
US8365985B1 (en) 2010-04-12 2013-02-05 Diebold Self-Service Systems Division Of Diebold, Incorporated Banking system controlled responsive to data bearing records
US9384015B2 (en) * 2013-07-16 2016-07-05 Intel Corporation Techniques for dynamically redirecting device driver operations to user space

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5901312A (en) * 1994-12-13 1999-05-04 Microsoft Corporation Providing application programs with unmediated access to a contested hardware resource
US20120160913A1 (en) * 2002-11-25 2012-06-28 Diebold Self-Service Systems Division Of Diebold, Incorporated Automated Banking Machine that Operates Responsive to Data Read from Data Bearing Records and Diagnostic Method
US20060242611A1 (en) * 2005-04-07 2006-10-26 Microsoft Corporation Integrating programmable logic into personal computer (PC) architecture
US7469350B2 (en) * 2005-12-22 2008-12-23 Ncr Corporation Power control interface for a self-service apparatus
US20110296092A1 (en) * 2006-09-12 2011-12-01 Apple Inc. Storing a Driver for Controlling a Memory
US20080096494A1 (en) * 2006-10-19 2008-04-24 Future Dial, Inc. Method and Apparatus for Using an Electromagnetically Shielded Enclosure for Exchanging Secure Data
US20120131375A1 (en) * 2010-11-18 2012-05-24 International Business Machines Corporation Executing a Kernel Device Driver as a User Space Process
US20120297094A1 (en) * 2011-05-17 2012-11-22 Ncr Corporation Device start up system and method
CN103678966A (zh) * 2012-08-31 2014-03-26 Ncr公司 安全模块和保证支付信息安全的方法

Also Published As

Publication number Publication date
EP2916226A3 (en) 2016-05-25
US9483420B2 (en) 2016-11-01
CN104881376B (zh) 2018-10-09
EP2916226A2 (en) 2015-09-09
US20150248359A1 (en) 2015-09-03

Similar Documents

Publication Publication Date Title
US10025957B2 (en) Learning a new peripheral using a security provisioning manifest
US8490868B1 (en) Banking system controlled responsive to data bearing records
US8201732B1 (en) Banking system controlled responsive to data bearing records
US9552246B2 (en) Out-of-band monitoring and managing of self-service terminals (SSTs)
US10558787B2 (en) Threat-monitoring systems and related methods
US8310698B2 (en) Image forming apparatus and activating method thereof
US8739305B2 (en) Secure access to encrypted information
WO2011148672A1 (ja) 業務計算機割当て方法及び装置
CN104881277A (zh) 自助服务终端(sst)瘦客户端
EP2704078A1 (en) Security module and method of securing payment information
CN101901147B (zh) 资源分发系统及方法
US8281985B1 (en) Card activated cash dispensing automated banking machine customization system and method
US20190333038A1 (en) Basic input/output system (bios) credential management
CN104881376A (zh) 自助服务终端(sst)设备驱动程序
US20190325412A1 (en) Maintaining Secure Access to a Self-Service Terminal (SST)
EP2006771A2 (en) Detecting loss of communication with periherals
JP2004348414A (ja) Posシステムの印刷制御装置、イメージデータの登録方法、及びイメージデータの初期化方法
US20180039985A1 (en) Apparatus and related method for device communication management for transmission of sensitive data
KR20160019615A (ko) 화이트리스트와 블랙리스트 혼용 기반의 보안장치 및 방법
CN104346882A (zh) 交易执行
US20220308891A1 (en) Multi-boot architecture for electronic interaction device
JP4719447B2 (ja) デバイス管理システム及びその制御方法
KR101592522B1 (ko) 금융자동화기기 및 그 작동 방법
CN115664781A (zh) 一种自助设备用系统安全管理方法、系统、设备及介质
TW202201322A (zh) 透過自動櫃員機掃碼驗身以完成帳戶申請之系統及方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant