用于实现云连接打印机和应用程序框架的方法和设备与流程

文档序号:15491943发布日期:2018-09-21 20:46阅读:264来源:国知局

本发明的实施例一般涉及打印机技术领域,并且更具体地,示例性实施例涉及实现打印机和服务器之间的基于云的连接和适应性的基于打印机的应用程序框架。



背景技术:

在许多网络中,管理打印机通常需要设置中心服务器或者需要使用多个本地连接的计算机以管理打印机。远程管理这些打印机可能需要通过网络防火墙通过暴露打印机来允许外部访问或者通过设置虚拟专用网络(vpn)来访问网络。

申请人发现关于建立与打印机的远程连接并提供对这些打印机的远程管理有许多缺陷和问题。通过不懈的努力、构思和创新,申请人通过开发由本发明具体体现的解决方案解决了许多发现的问题,本发明将在下文详细描述。



技术实现要素:

因此,根据本发明的示例性实施例提供了方法、设备和计算机程序产品,以便于装置(诸如打印机和基于云的服务器)之间的连接,并实现适应性的基于打印机的应用程序框架。

在一个实施例中,提供了一种打印机,所述打印机至少包括:通信电路,所述通信电路被配置成便于与网络通信;以及处理电路,所述处理电路被配置成向所述网络发送连接请求;从所述网络接收所请求的连接参数;向所述网络发送打印机连接参数;以及在所述打印机和所述网络之间建立第一安全连接。在一些实施例中,所述连接请求可以至少包括将所述连接升级为websocket连接的请求。

在一些实施例中,所请求的连接参数可以至少包括签名安全证书和服务器在所述网络上的dns名称,并且,所述处理电路可以进一步被配置成验证所述签名安全证书和服务器的dns名称。在一些实施例中,所述打印机连接参数至少包括所述打印机的签名安全证书。

在一些实施例中,所述处理电路可以进一步被配置成:从所述网络接收请求以通过所述第一安全连接建立一个或多个通信信道;以及通过所述第一安全连接建立所述一个或多个通信信道。在一些实施例中,在所述一个或多个通信信道中的每一个上的通信可以与所述一个或多个通信信道中的其它每一个的状态无关。在一些实施例中,所述一个或多个附加通信信道可以通过相同连接提供,或者所述一个或多个附加通信信道可以分别通过单独的连接提供。在一些实施例中,所述处理电路可以进一步被配置成通过向网络发送包括打印机id、信道名称和信道id的响应消息,建立一个或多个附加通信信道。

在一些实施例中,所述处理电路可以进一步被配置成:通过所述一个或多个通信信道中的第一通信信道发送或接收打印机命令;以及通过所述一个或多个通信信道中的至少第二通信信道发送或接收其它数据。在一些实施例中,所述其它数据可以包括以下当中的一个或多个:文件传输、打印机状态请求、打印机状态变化、存储数据、配置信息、通信信道变化、警报通知和固件升级。

在一些实施例中,所述处理电路进一步被配置成在一个或多个存储位置存储数据,并通过所述一个或多个通信信道中的一个通信信道发送所存储的数据。在一些实施例中,所述处理电路可以进一步被配置成:从连接到所述打印机的一个或多个外围装置接收数据;以及在所述一个或多个存储位置存储所接收的数据。

在一些实施例中,所述处理电路可以进一步被配置成:通过所述安全连接向所述网络发送消息,其中,所述消息至少包括唯一的打印机标识符;至少部分基于所述消息从所述网络接收配置信息;以及基于所接收的配置信息修改所述打印机配置。

在一些实施例中,所述打印机可以进一步包括用户接口,所述用户接口为在所述网络上实现的应用程序提供应用程序前端接口。

在另一实施例中,提供了一种服务器,所述服务器至少包括:通信电路,所述通信电路被配置成便于与网络通信;以及处理电路,所述处理电路被配置成:从打印机接收连接请求;向所述打印机发送所请求的连接参数;从所述打印机接收打印机连接参数;以及在所述服务器和所述打印机之间建立第一安全连接。在一些实施例中,所述连接请求可以至少包括将所述连接升级为websocket连接的请求,并且,所述处理电路可以进一步被配置成将所述连接升级为websocket连接。

在一些实施例中,所请求的连接参数可以至少包括签名安全证书和所述服务器的dns名称。在一些实施例中,所述打印机连接参数可以至少包括所述打印机的签名安全证书,并且,所述处理电路可以进一步被配置成验证所述打印机的签名安全证书。

在一些实施例中,所述处理电路可以进一步被配置成:向所述打印机发送请求,以通过所述第一安全连接建立一个或多个通信信道;从所述打印机接收对所述请求的回答;以及通过所述第一安全连接建立所述一个或多个通信信道。在一些实施例中,所述处理电路可以进一步被配置成:通过所述一个或多个通信信道中的第一信道发送或接收打印机命令;以及通过所述一个或多个通信信道中的至少第二信道发送或接收其它数据。在一些实施例中,所述其它数据包括以下当中的一个或多个:文件传输、请求打印机状态、打印机状态变化、存储数据、配置信息、通信信道变化、警报通知和固件升级。

在一些实施例中,所述处理电路可以进一步被配置成:通过所述一个或多个通信信道中的一个通信信道从所述打印机接收数据;处理所接收的数据;以及通过所述一个或多个通信信道中的所述一个通信信道向所述打印机发送处理过的输出。

在一些实施例中,所述处理电路可以进一步被配置成:从所述打印机接收消息,其中,所述消息至少包括唯一的打印机标识符;至少部分基于所接收的消息识别配置信息;以及向所述打印机发送所述配置信息。

在另一实施例中,提供了一种计算机程序产品,所述计算机程序产品包括至少一个非暂态计算机可读存储介质,其中存储了计算机可执行程序代码指令,所述计算机可执行程序代码指令包括程序代码指令,当被执行时引起设备:向网络发送连接请求;从所述网络接收所请求的连接参数;向所述网络发送设备连接参数,以及在所述设备和所述网络之间建立第一安全连接。

附图说明

至此,以概括性词语描述了本发明的某些实施例,现在参照附图进行参考,附图不一定是按比例绘制的,并且其中:

图1图解说明包括用于实现应用程序的计算机终端的示例性系统;

图2图解说明包括打印机的示例性系统,所述打印机被配置成根据各个示例性实施例实现与基于云的服务器的连接;

图3图解说明根据各个示例性实施例提供打印机和服务器之间的安全连接的操作的流程图;

图4图解说明根据各个示例性实施例建立多个信道的操作的流程图;

图5图解说明根据各个示例性实施例提供供应的操作的流程图;

图6图解说明根据各个示例性实施例提供警报通知的操作的流程图;

图7图解说明根据各个示例性实施例包括打印机的示例性系统,所述打印机通过与多个单独的信道的安全连接连接到基于云的服务器;

图8图解说明根据各个示例性实施例适应性的基于打印机的应用程序框架的软件模块架构;

图9图解说明根据各个示例性实施例的示例性打印设备的框图;以及

图10是根据各个示例性实施例被配置成支持适应性的基于打印机的应用程序框架的打印机系统的图示。

具体实施方式

现在在下文参照附图更加全面地描述本发明的实施例,附图中示出了本发明的一些但并非所有的实施例。实际上,本发明可以以许多不同的形式体现,不应将本发明解读为局限于本文中列出的实施例;而且,提供这些实施例以便本申请满足实用性的法律要求。同样的附图标记在所有图中指相同的元件。如本文中使用的词语“数据”、“内容”、“信息”和类似词语可以互换使用,以指根据本发明的实施例能够被发送、接收、操作和/或存储的数据。而且,提供如本文中使用的词语“示例性的”不是要传达任何定性评价,而实际上只是传达示例的图示。

以下提供对各个示例性设备和便于装置(诸如打印机和基于云的服务器)之间的连接的方法的描述。在此方面,根据一些示例性实施例,打印机可以被配置成发起与服务器的第一连接,服务器可以驻存在内部或外部网络上,无需等待服务器发起连接。在一些示例性实施例中,服务器可以是基于云的服务器,这里云是分布式网络,可以是公共云(诸如互联网)、专用云、混合云等等,服务器可以是通过统一资源定位符(url)在云中或网络中可到达的。

根据一些示例性实施例,装置之间的连接可以提供安全的和/或加密的连接,装置可以交换安全证书,以验证装置的身份,保护该连接。这些安全证书可以进一步确保装置只允许授权连接,诸如确保打印机连接到正确的服务器,服务器只允许与预期打印机连接。根据一些示例性实施例,这些服务器和打印机可以只识别由指定的认证授权(ca)(诸如充当ca的打印机制造商)签名的安全证书。在这些实施例中,服务器和打印机可以不接受由第三方ca(诸如verisign)签名的安全证书。根据一些示例性实施例,打印机可以被配置成连接到超过一个服务器,诸如允许连接到由打印机制造商主持的服务器以及连接到应用服务器。

根据一些示例性实施例,一旦建立初始连接,打印机和服务器可以建立附加连接或信道以提供装置之间的特定类型的通信。这些附加信道可以是例如只在服务器请求时建立,多个附加信道可以通过相同的连接提供或者可以是服务器和打印机之间的单独的连接,诸如传输控制协议(tcp)连接。这些附加的信道可以提供服务器和打印机之间的不同类型通信(例如不同协议)的分离,例如可以包括专有命令信道、tcpraw信道(例如表现为连接到端口9100)、文件传输信道、固件下载信道、安全raw端口或者其它任何类型的适当信道。例如,通过安全连接建立单独的信道可以允许打印机通过第二信道接收设置更新,甚至同时通过其第一信道接收带宽填充打印命令。在一些实施例中,这些信道可以提供服务器和打印机之间的双向通信,并且可以被配置成提供服务器和打印机之间的永久连接。在一些实施例中,多个附加信道可以分别配备有多个不同的安全等级中的一个等级,诸如限制打印机用户访问特定功能。

根据一些示例性实施例,建立与基于云的打印机的安全连接可以允许提供打印机。在建立安全连接之后,打印机可以向服务器发送识别信息(例如唯一的打印机标识符)以允许服务器检索适当的配置信息,完成打印机的期望配置的提供。例如,传统的配置过程可能包括直接连接到打印机以在用户位置进行配置,或者替代性地在制造商那打开打印机盒子,定制配置打印机,重新包装打印机,将其传输到顾客位置,或者调节网络安全设置以允许通过防火墙或代理服务器远程连接到打印机,以允许配置。相反,根据一些示例性实施例,打印机可以实际上由驻存在云(即可通过专用或公用网络(诸如互联网)到达的远程服务器)中的服务器配置或更新。根据一些示例性实施例,打印机可以被配置成通过用户的网络防火墙和/或代理服务器以不需要更改标准网络设置但仍允许打印机接收基于驻存在云(例如存储在远程主机服务器上)中的设置的动态新设置的方式连接。

根据一些示例性实施例,云连接可以允许打印机向服务器发送警报通知,服务器然后可以采取行动。在一些实施例中,打印机可以被配置成基于打印机上的事件或动作(诸如配置改变、打印机状态、打印机错误、建立新信道、安全信道改变、变成打印机存储位置中的数据(例如用户定义的设置或变量))或等等向服务器发送警报通知。在一些实施例中,服务器可以被配置成基于警报通知执行一些动作,诸如向用户装置(例如向技术员或管理员)发送消息,向服务器上实现的应用程序提供数据,向管理服务器发送数据,生成事件中断等等。

根据一些示例性实施例,打印机可以被配置成允许用户定义的设置(例如在打印机的存储器中的存储变量)在打印机上指定或通过打印机接口更新。根据一些示例性实施例,这些用户定义的设置可以在打印机上局部存储数据,再诸如通过云连接发送给服务器,使得服务器可以使用这些数据执行一些操作。例如,这些用户定义的设置可以存储公司名称、标志、位置等等,他们可以发送到服务器以用来生成发送到打印机并由其打印的标签格式。在一些实施例中,这些用户定义的设置可以包含打印机不对其进行作用的数据,而只是在某些条件下(诸如某些量的数据存储在用户定义的设置中)发送给服务器。在一些实施例中,这些用户定义的设置中存储的数据可以由连接的外围装置(诸如条形码扫描器)通过打印机接口提供。

在一些示例性实施例中,基于打印机的应用程序框架可以提供,使得打印机可以被配置成作为应用程序的用户接口前端操作,应用程序在打印机通过网络或云(诸如通过使用安全连接或信道)连接的远程服务器上存储并执行。打印机可以实现能够使应用程序在远程服务器上执行的打印机前端,以将打印机用作输入和输出信息的接口。在打印机上实现的打印机前端应用程序可以被配置成利用打印机的用户接口,所述用户接口可以包括集成小键盘、显示器或外围装置(例如条形码扫描器、磁带阅读器、rfid阅读器、读卡器、nfc标签、nfc阅读器、秤盘、键盘、触摸屏、签名板),以控制或另外提供输入,这些输入再提供给远程服务器。根据一些示例性实施例,打印装置可以直接连接到网络以作为网络打印机操作,不通过中间计算机终端连接到网络。在一些实施例中,应用程序框架可以提供一些应用处理在打印机上的执行和其它应用处理在服务器上的执行。

图1图解说明传统的系统,其包括作为打印机104和应用服务器100之间的中间装置的计算机终端102。在此传统系统中,应用服务器100与计算机终端102交互,以提供屏幕提示和打印作业,屏幕提示和打印作业又提供给打印机104。计算机终端102还可以将扫描数据(例如源于扫描器106)和键盘输入提供回应用服务器100以由服务器分析。

图2图解说明根据各个示例性实施例的示例性系统。在图2的系统中,打印机202可以直接连接到内部或外部网络中的服务器(即不需要中间计算机终端)。在一些示例性实施例中,打印机202可以通过网络(例如云206)连接到服务器200和被配置成支持网络操作的装置。在一些示例性实施例中,打印机202可以通过网络安全装置(诸如防火墙208)连接到服务器200,通过防火墙208的连接可以一开始在打印机202使用数据通信协议(诸如http/https)请求时建立。

在图2的示例性系统中,服务器200可以与打印机202交互,以提供供应或配置信息、打印作业格式化、数据检索、屏幕提示、打印作业或其它任何适当的功能。打印机202还可以将扫描数据(例如源于连接到打印机202的扫描器206)、键盘输入、系统事件、打印机设置、所存储的数据等等提供回服务器200,以由服务器200处理。在一些示例性实施例中,打印机202可以被配置成通过硬件处理器或处理电路实现打印机前端应用程序,以与特定的服务器实现的应用程序交互以合作实现。特定的服务器实现的应用程序可以由服务器200的硬件处理器或处理电路实现。

根据一些示例性实施例,适应性的基于打印机的应用程序框架允许开发涉及在应用服务器环境中使用打印机而不需要中间计算机终端的应用程序。换言之,在一些示例性实施例中,适应性的基于打印机的应用程序框架可以允许使用代码语言(例如java等)和在云计算环境中更加广泛为人所知所用的协议开发软件,这与直接在打印机上运行的软件开发不同,这种开发可能需要知道特定的打印机制造商语言和协议(例如zebrabasic解释器(zbi)等等)。因此,根据一些示例性实施例,应用程序开发可能涉及创建简单化的流程和用户提示,从而不需要中间计算机终端。而且,适应性的基于打印机的应用程序框架还可以被配置成使得应用程序不是由打印机或本地连接的计算机终端大量处理,而是应用程序可以在服务器上实现,打印机可以作为服务器实现的应用程序的前端操作。在一些示例性实施例中,此架构可以降低对打印机的处理要求,原因是至少一部分处理由服务器而不是由打印机实现。

建立远程连接

图3图解说明了根据一些示例性实施例提供装置(诸如打印机和服务器)之间的安全连接的操作的流程图。

在许多网络中,管理打印机通常需要设置中心服务器或者使用多个本地连接的计算机来管理打印机。进一步地,远程管理这些打印机可能需要通过网络防火墙或其它安全装置暴露打印机允许从外部访问打印机和网络或通过设置虚拟专用网络(vpn)来通过网络访问打印机。在网络中的远程服务器和打印机之间建立连接需要远程服务器发起与打印机的连接,通常网络防火墙会产生问题。例如,网络防火墙通常被配置成只允许向外的连接,因此会引起来自远程服务器的连接请求被拒绝。替代性地,网络防火墙可以将远程连接请求视为非标准的互联网连接,阻止该连接。建立这些远程连接可能需要改变防火墙设置,以允许这些连接,这会引起关于这些远程连接的安全性或控制的问题。

根据本发明的一些示例性实施例,打印机可以被配置成发起与远程服务器(诸如驻存在云中的服务器)的第一连接。这个连接可以用小的开销保持为永久连接,允许打印机或服务器在任何时间不需要重新连接就能发送数据,甚至在长时间的不活动之后也能发送数据。例如,根据示例性实施例,打印机可以请求连接到远程服务器,然后建立可以保持开放直到打印机关机的永久连接。在一些示例性实施例中,在网络防火墙外部的发起与远程服务器的连接请求的打印机允许在不需要对网络防火墙进行任何改变就进行连接。

根据一些示例性实施例,打印机可以使用数据通信协议或请求-响应协议(诸如http或https)发起与远程服务器的连接,并请求该连接转换成html5websocket协议(websocket)连接(由互联网工程任务强制rfc6455定义-http://tools.ietf.org/html/rfc6455)。这种websocket连接可以允许打印机和远程服务器象在相同的防火墙后面连接(诸如通过传统的tcpraw端口(例如端口9100))的那样通信。websocket连接可以通过单个连接(诸如传输控制协议(tcp)连接)提供全双工通信信道。

根据一些示例性实施例,这个连接充当双向信道,允许任一侧在变成可用时发送数据。根据一些示例性实施例,这个连接可以进一步允许数据使用各种公用或专有格式或语言(诸如javascriptobjectnotation(json)或zebrasetgetdo(sgd))发送。

如图3中所示,根据示例性实施例的连接过程在打印机连接到网络并上电时开始,如在块302所示的。为了发起与服务器的第一连接,打印机可以使用数据通信协议或请求-响应协议(诸如http或https请求(例如通过tcp端口80或433))将连接请求发送到指定服务器,如块304中所示的。在一些实施例中,一个或多个指定服务器可以使用定义的变量或设置识别,可以存储在打印机的存储器(诸如图9的存储器904)中。连接请求可以给服务器指示打印机希望使用传输层安全(tls)或加密套接字协议层(ssl)来提供打印机和服务器之间的安全信道。在一些实施例中,请求可以进一步指示连接应当升级到websocket连接(例如双向、永久通信信道)。这个连接请求可以被认为或当成是标准网络浏览器请求,诸如网络浏览器和网站之间的通信。在块306,服务器可以指示它是否接受连接请求。如果服务器拒绝连接请求,则过程可以继续到块322,在块322,报告错误,然后在块324过程结束。

在块306,如果服务器接受连接请求,则服务器可以向打印机发送其安全证书和连接参数。在一些实施例中,服务器的安全证书只在是由指定的ca(诸如打印机制造商)签名时是有效的。此指定的ca签名证书可以用来确保指定的打印机只连接到信任的和授权的服务器。在块310,打印机可以评价服务器的安全证书。例如,打印机可以分析安全证书中的数据,以确保它连接到预期的打印机,诸如验证证书中的dns名称与用来发送请求的url匹配。打印机可以进一步评价证书,以确保证书是由预期的ca(诸如打印机制造商)签名的。

在块312,如果打印机不接受证书,则过程可以继续到块322,在块322,报告错误,然后在块324过程结束。在块312,如果打印机接受服务器证书,则过程可以继续到块314,在块314,打印机可以向服务器发送其安全证书。

根据一些示例性实施例,作为一个示例,进一步由远程服务器强制客户认证,确保只有授权的打印机(例如特定制造商的打印机)可以连接到远程服务器。在这些实施例中,打印机可以包含专用/公用密钥对以及其自己的安全证书(由指定的ca签名),以向远程服务器提供认证。在一些示例性实施例中,一组打印机全部可以共享由指定的ca(例如打印机制造商)签名的公用安全证书,其可向远程服务器提供打印机是授权打印机的认证。

在块316,服务器可以评价打印机的安全证书。例如,服务器可以分析打印机的证书,以确保证书是由预期的ca签名的,打印机是服务器预期与其进行连接的打印机之一(例如,打印机是特定类型的打印机、特定制造商的打印机或者来自预期的网络)。

在块318,如果服务器不接受证书,则过程可以继续到块322,在块322,报告错误,然后在块324过程结束。在块318,如果服务器接受打印机证书,则过程可以继续到块320,在块320,在打印机和服务器之间建立websocket连接,诸如通过服务器将连接升级到websocket协议。打印机和服务器然后可以通过websocket连接分别开始向对方发送数据,诸如打印命令或控制数据。在一个实施例中,json、sgd等等可以用来在服务器和打印机之间发送数据。

在打印机和服务器之间提供多个通信信道

图4图解说明根据各个示例性实施例在服务器和打印机之间通过连接建立多个双向通信信道的操作的流程图。根据一些示例性实施例,一旦在打印机和服务器之间建立初始连接,诸如初始的websocket连接,此初始连接可以认为是主要信道,并用来在服务器和打印机之间交换专有控制消息。根据一些示例性实施例,打印机和服务器然后可以通过相同的连接或者通过单独的连接(例如tcp连接)建立单独的通信信道,以交换不同类型的消息或数据。主信道可以例如由服务器使用以指示何时打开打印机和服务器之间的新信道以交换其它类型的数据和消息。根据一些示例性实施例,这些附加信道可以只在服务器请求时建立,打印机和服务器之间的初始连接是没有服务器的预先允许可以被发起的唯一一个连接。根据一些示例性实施例,信道可以是单独的彼此独立的,使得信道不依赖其它任何信道的状态。例如,在一些实施例中,如果一个通信信道变成锁定,则服务器和打印机可以仍然通过其它信道之一通信。在这个实施例中,服务器可以通过其它信道之一能与打印机通信,以命令打印机关闭锁定信道,建立相同类型的新信道。例如,单独的信道可以允许不同类型的通信同时在服务器和打印机之间交换,而不是必须中断传输或者等待第一传输完成。例如,打印机能够在一个信道上接收设置更新,甚至同时在另一信道上接收带宽填充打印命令,或者服务器应用程序能够通过一个信道请求打印机状态,同时通过单独的信道发送格式。

在一些实施例中,单独的信道可以由位于通信协议层的顶层的应用程序协议提供。因此,示例性实施例的信道是与通信协议的任何过程分开的,诸如无线网络中的信道跳频。

根据一些示例性实施例,建立单独的信道可以由系统管理员提供对网络打印机上哪些功能对用户可用的更精细控制。例如,网络打印机的标准tcpraw端口连接允许用户进行除了格式化打印作业之外的任何作业,以修改设置并下载新固件。为不同类型的协议或功能建立单独的信道可以允许管理员独立地控制信道,诸如通过在不同的信道上配置不同的安全等级,以防止用户访问配置设置,同时仍允许配置设置来格式化打印作业。

如图4中所示,如在块402所示的,可以在打印机和服务器之间建立初始(主)websocket连接,如之前描述的。如块404所示,服务器然后可以确定应当打开新的通信信道,使得特定类型的数据可以在服务器和打印机之间交换。如果服务器确定不需要建立新信道,则过程可以返回块402,等待将来确定。如果服务器确定需要建立新信道,则过程继续到块406。

在块406,服务器可以向打印机发送消息以建立新信道。这个消息可以至少包括信道类型和允许使用信道的指示。例如,服务器可以通过初始连接向打印机发送消息,请求建立特定协议的新信道,诸如固件更新信道。在块408,可以在打印机和服务器之间建立新信道。在一些实施例中,打印机可以响应于服务器,通过发送包括打印机的唯一id、信道名称和信道id的消息尝试与新信道连接。在一些实施例中,打印机的唯一id可以包括打印机序列号,信道名称可以包括使用点描绘符号的字母数字字符串,信道id可以由打印机分配。在块410,打印机和服务器可以在新信道上基于为该新信道指定的协议执行双向通信。例如,这些信道可以包括但不限于专有命令信道、配置信道、状态信道、tcpraw端口信道、文件传输信道、固件升级信道、安全tcpraw信道或者在服务器和打印机之间通信的其它任何适当的信道。

在一些实施例中,可以通过相同的连接(诸如单个tcp连接)提供多个通信信道。在一个实施例中,可以重叠信道,诸如单个连接上的多个逻辑信道。在这些实施例的一些当中,为了识别单独信道的数据,传输可以用引导标识符打包,例如使用json字符串、xml、专有格式等等。例如,打包的传输可以包括信道名称和信道id之后是数据有效载荷。

图7图解说明根据一些示例性实施例打印机和服务器之间具有多个信道的连接(诸如websocket连接)的一个示例。如图7所示,远程服务器(例如应用服务器、第三方(制造商)主机服务器),诸如服务器200可以驻存于分布式网络(诸如云206)中,如在上文关于图2描述的。打印机202可以通过分布式网络或云206建立与远程服务器200的连接,诸如websocket连接702,如在示例性实施例中提供并在上文描述的。例如,打印机可以发起与驻存在云中的指定服务器的连接请求,指示该连接应当升级为websocket连接。

一旦在打印机202和服务器200之间建立websocket连接702(可以是安全的双向连接),服务器200可以请求使用websocket连接建立附加单独双向通信信道,以提供打印机和服务器之间的各种功能。例如,服务器200可以向打印机202发送建立第一附加通信信道704的请求,以实现服务器和打印机之间的第一类型的通信。服务器200可以向打印机202发送建立第二附加通信信道706的请求,以实现服务器和打印机之间的第二类型的通信。例如,在一个实施例中,第一信道704可以用来交换打印命令,而其它信道(诸如第二信道706)交换与打印无关的数据。例如,第二信道706可以用来提供文件传输、固件升级、打印机状态的请求和响应、提供信息、警报通知或在打印机和服务器之间的其它任何适当的数据交换。

在一些实施例中,每个单独的信道可以配置有不同的安全等级,可以加密也可以不加密,每个信道的通信可以与其它每个信道的通信独立。例如,打印机和服务器可以通过多个个别的信道同时通信,与其它信道中任何一个信道的状态无关。

提供打印机的远程配置

图5图解说明根据各个示例性实施例提供自动化的打印机供应的操作的流程图。根据一些示例性实施例,在服务器和打印机之间建立云连接可以实现打印机的自动提供。例如,技术员不必分别访问用户位置的每个打印机或者在制造商那里打开每个盒子来部署打印机的定制配置,打印机可以被配置成在用户位置一开始连接到网络时(比方说例如通过使用如上文描述的websocket连接)是“自提供的”。根据一些示例性实施例,打印机和服务器之间的连接允许配置信道在打印机和服务器之间通过用户网络的防火墙、代理服务器等发送,而不必修改各个装置上的标准网络设置。

根据一些示例性实施例,打印机可以通过连接到用户网络并上电来首先投入使用。在块502,如前面描述的,一旦首先连接到用户网络时,新打印机可以首先建立与指定服务器(例如由制造商主持的存储配置资料的服务器)的websocket连接。一旦已经建立连接,则在块504,打印机可以向指定服务器发送识别打印机的消息。例如,打印机可以发送包含关于打印机信息(至少包括唯一的打印机id(例如打印机序列号))的发现包。在块506,服务器可以使用唯一的打印机id来确定与打印机关联的组id(例如,组id可以识别特定的顾客或特定的一组被购买的打印机)。在一些实施例中,全部被类似配置的许多打印机可以分配单个组id,该组id指示要使用的特定的配置资料。在块508,如果服务器不能确定与打印机id关联的组id,则处理可以继续到块514,在块514,报告错误,然后在块516,过程结束。在块508,如果服务器确定适当的组id,则处理继续到块510。

在块510,服务器检索与组id关联的配置文件。在块512,服务器向打印机发送配置文件或消息,并通过连接(诸如通过使用json、sgd或其它)配置打印机以进行操作。

提供来自打印机的远程通知

图6图解说明根据各个示例性实施例提供来自打印机的警报通知的操作的流程图。根据一些示例性实施例,诸如使用websocket连接连接到远程服务器的打印机可以生成并向远程服务器发送警报通知,使得可以执行一些动作。打印机可以被配置成使得这些警报可以使用各种数据通信协议(诸如httppost)传输,使得他们通过网络(诸如通过防火墙、代理服务器或其它)类似于标准的网络浏览器请求被处理。例如,打印机可以被配置成发送关于打印机的状态(例如离线、打印机错误、墨带需要更换、低墨、需要更换纸张、纸张少等),打印机中存储的设置或数据变化,通信信道变化或其它任何类型的通知的警报通知。在一些实施例中,服务器可以被配置成诸如通过向用户装置(例如管理员或技术员的移动装置)发送消息,向应用程序提供数据,向管理服务器发送数据,生成事件中断或者其它来处理警报通知。

根据一些示例性实施例,打印机可以具有用户定义的设置(例如本地存储的变量),这些设置可以用来存储可以发送到远程服务器(例如应用服务器)并由服务器使用以执行一些动作的数据。例如,诸如在打印机的存储器中可以建立打印机上用户定义的设置,以存储标志、公司名称、本地名称信息、位置信息或者可以发送到服务器以由服务器使用来格式化(诸如基于打印机的位置或使用格式化定制标签)发送回打印机的特定的打印作业的信息。这些用户定义的设置还可以用来存储打印机从外围装置接收的数据,例如从扫描器接收的条形码数据。在一些实施例中,在这些用户定义的设置中存储的数据可以发送到服务器,使得服务器可以检索与数据(例如服务器上的用户数据或来自互联网的第三方数据)有关的信息以用在特定操作中,诸如在一个示例中,基于扫描的upc从网站检索数据,以用来格式化打印机的特定标签。根据一些示例性实施例,用户定义的变量中存储的数据可以不由打印机在本地使用,而是实际上可以只存储在打印机上,当被触发时诸如通过使用定义的信道发送到远程服务器。

在块602,打印机可以诸如通过如之前描述的websocket连接建立与服务器的连接。可选地,在块604,可以更改打印机设置,诸如通过存储从外围装置或者从用户通过接口接收的数据,或者打印机状态可以改变,需要通知技术员或管理员。

在块606,打印机可以确定是否存在触发警报通知的条件。例如,打印机的状态可以改变,或者某些量的数据可以被接收或存储以用于用户定义的设置。在块606,如果不触发警报通知,则打印机可以返回过程的开始,等待下一次确定出现。在块606,如果触发警报通知,则过程继续到块608。

在块608,打印机可以生成并向服务器发送警报通知。警报通知可以包括警报消息连同唯一的打印机id。在一些实施例中,警报消息可以包括在打印机上接收或存储的数据、状态或配置变化或者类似。

在块610,服务器可以基于所接收的警报通知采取一些预定的动作。例如,服务器可以基于警报消息中包含的信息(诸如条形码数据)执行搜索,并使用检索的信息来格式化发送到打印机的打印作业,服务器可以向技术员或管理员发送关于打印机维修或操作的消息,或者服务器可以向另一装置(诸如管理服务器)发送数据。

提供基于打印机的应用程序框架

图8图解说明根据一些示例性实施例的示例性的适应性的基于打印机的应用程序框架。适应性的基于打印机的应用程序框架可以提供开发涉及在应用服务器环境中使用打印机而无需中间计算机终端的应用程序。例如,这个应用程序框架可以允许开发应用程序并在应用服务器上实现,打印机提供用户接口前端以提供输入和/或输出。例如,应用程序可以被实现,使得多数处理发生在应用服务器上而不是打印机上。应用服务器200和打印机202包括于图8中,作为实现框架的各个方面的硬件装置。在这方面,应用服务器200可以实现特定的服务器实现的应用程序以执行支持打印机202的硬件的特定任务或功能。

应用服务器还可以实现服务器侧软件研发套件(sdk)模块802。服务器侧sdk模块802可以提供在其中可以开发软件(例如服务器实现的应用程序800)以在适应性的基于打印机的应用程序框架中使用的环境。在这方面,服务器侧的sdk模块802可以包括控制或另外与打印机的各个功能方面交互以执行任务的预定义代码对象的集合。预定义的代码对象可以在应用程序开发中使用以生成在适应性的基于打印机的应用程序框架中的应用服务器200上执行的专用应用程序。要理解,尽管服务器侧sdk模块802图示为在应用服务器200上,应用程序开发可以在任何类型的计算装置上借助服务器侧sdk模块802执行,然后在其它地方开发之后,安装在应用服务器200上。

打印机202可以实现本地操作系统810,在其上实现打印机前端应用程序812。打印机前端应用程序812可以从服务器实现的应用程序800接收指令和请求并对其进行动作。在这方面,前端应用程序812可以被配置成与打印机202的各种硬件交互,以控制硬件来执行特定任务。例如,当由服务器实现的应用程序800适当命令时,前端应用程序812可以被配置成操作打印硬件(例如打印头、滚筒、电动机操作器等等)、显示屏、小键盘、通信端口(例如连接到包括例如条形码扫描器的外围装置的通信端口)、打印机上的存储器(例如专用于变量的存储器)、网络连接性等等。

打印机前端应用程序812可以包括各种子模块以处理各种控制、消息收发和各种其它功能。服务器实现的应用程序800可以具体被配置成响应于由服务器实现的应用程序800提供的指令和请求执行具体任务。在这方面,指令和请求可以是在服务器侧sdk模块802中提供的预先定义的代码对象的实现。作为预先定义的代码对象的实现,指令和请求可以被配置成与形成打印机前端应用程序812的至少一部分的各种子模块交互。一些示例性子模块包括显示屏控制模块814、消息收发模块816、通信端口捕获模块818和打印机上通用变量接口模块820。

显示屏控制模块814可以被配置成从服务器实现的应用程序800接收指令,并在打印机202的显示装置上输出信息(例如控制提示、错误通知或其它信息)。显示屏控制模块814可以与从小键盘检索用户输入的模块结合操作,以实现软键等等。在打印机202包括触摸屏显示器的示例性实施例中,显示屏控制模块814还可以被配置成处理并传送通过触摸屏显示器的用户输入的指示。

消息收发模块816可以被配置成处理服务器实现的应用程序800和打印机前端应用程序812之间的消息收发。消息收发模块816可以被配置成路由和控制消息在打印机前端应用程序812的各个模块和服务器实现的应用程序800之间的来回流动。消息收发模块816还可以被配置成引起打印机202采取措施以管理(例如连接、断开、维持等)与应用服务器800的网络连接。

通信端口捕获模块818可以被配置成与打印机202的有线或无线通信端口交互。通信端口可以被配置成连接并维持与各个外围装置(例如包括条形码扫描器、磁卡阅读器、键盘、显示面板等等)的通信会话。在一些示例性实施例中,通信端口捕获模块818可以被配置成检索并存储通过端口获得的数据(例如条形码数据)以用于后续传送到服务器实现的应用程序800。

为了支持打印机前端应用程序812的操作,各种模块可以利用打印机202上分配的存储。分配的存储可以由打印机上的通用变量接口模块管理。在这方面,打印机202的存储器装置的具体存储位置可以被分配以存储通用变量的值。可以利用这些存储位置以支持打印机前端应用程序812的操作,接着再支持服务器侧应用程序800的操作。根据一些示例性实施例,服务器侧应用程序800可以给相应的存储位置分配变量,并且利用存储位置来存储与服务器实现的应用程序的执行过程中的该变量相关的值。

图8图解说明一个示例性系统,其中,应用服务器200支持单个打印机202的操作。然而,根据一些示例性实施例,应用服务器200可以执行与各个打印机(和各个打印机前端应用程序)交互的服务器实现的应用程序800的多个实例。进一步,根据一些示例性实施例,第二打印机可以借助第一打印机在例如第一打印机不操作时转换到活动的服务器实现的应用程序。用户或会话令牌可以用来便于该转换。另外,根据一些示例性实施例,因为服务器实现的应用程序驻存在应用服务器上,为了更新软件应用程序,更新要求只在应用服务器上执行(不是在应用服务器可能支持的个别打印机上执行)。

示例性系统架构

上文提供并在本文中概括的描述图解说明示例性方法、示例性设备和在非暂态计算机可读介质上存储以实现云连接打印机的功能的示例性计算机程序。图9图解说明包括打印机硬件和打印机功能的设备900的示例性框图。设备900被配置成如上文描述通过利用处理器902、存储器装置904、用户接口906、通信接口908、打印作业管理器910、打印硬件912和打印机前端应用程序914支持与服务器的连接。

处理器902可以具体体现为用于实现本发明的示例性实施例的各个功能的各个装置,包括例如微处理器、协处理器、控制器、特殊用途集成电路(比方说例如asic(专用集成电路))、fpga(现场可编程门阵列)或硬件加速器、处理电路或类似。根据一个示例性实施例,处理器902可以代表一起操作的多个处理器或一个或多个多核处理器。进一步地,处理器902可以包括多个晶体管、逻辑门、时钟(例如振荡器)、其它电路等,以便于本文中描述的功能的实现。在一些示例性实施例中,处理器902被配置成执行存储器装置904中存储的指令或执行另外由处理器902可访问的指令。处理器902可以被配置成操作,使得处理器引起设备900执行本文中描述的各个功能。

不管是配置为硬件或者通过计算机可读存储介质上存储的指令,或其组合,处理器902可以是能够在执行根据本发明的实施例的操作时被相应配置的实体。因此,在处理器902具体体现为或者是asic、fpga等的一部分的示例性实施例中,处理器902是特别配置的以进行如本文中描述的操作的硬件。替代性地,在处理器902具体体现为在非暂态计算机可读存储介质上存储的指令或计算机程序代码的执行器的示例性实施例中,指令具体配置处理器902以执行本文中描述的算法和操作。在一些示例性实施例中,处理器902是具体装置(例如打印机)的处理器,所述具体装置通过执行用于执行本文中描述的算法、方法和操作的指令另外配置处理器902,而被配置成使用本发明的示例性实施例。

存储器装置904可以是一个或多个非暂态计算机可读存储介质,其可以包括易失性和/或非易失性存储器。在一些示例性实施例中,存储器装置904包括随机存取存储器(ram)(包括动态和/或静态ram)、片上或片外高速缓冲存储器,和/或类似。进一步,存储器装置904可以包括非易失性存储器,其可以是嵌入的和/或可移动的,并且可以包括例如只读存储器、闪存、磁存储装置或类似。存储器装置904可以包括用于数据的暂时存储的高速缓存区。在这方面,存储器装置904中的一些或全部可以包括于处理器902中。存储器装置904可以进一步被配置成存储通用数据或用户定义的设置或变量,以根据本文中描述的示例性实施例使用。

进一步地,存储器装置904可以是一个或多个存储器装置,可以被配置成存储信息、数据、应用程序、计算机可读程序代码指令和/或类似用于使处理器902和示例性设备900能够执行根据本文中描述的本发明的示例性实施例的各个功能。例如,存储器装置904可以被配置成缓冲输入数据以由处理器902处理。另外,或者替代性地,存储器装置904可以被配置成存储指令以由处理器902执行。

通信接口908可以是具体体现为硬件、计算机程序产品或硬件和计算机程序产品的组合的任何装置或设备(例如电路),所述计算机程序产品被配置成从网络920、外围装置930和/或与示例性设备900通信的任何其它装置或模块接收和/或向其发送数据。通信接口可以被配置成通过任何类型的有线或无线连接通过任何类型的通信协议(诸如支持近场通信的通信协议)传送信息。根据各个示例性实施例,通信接口908可以被配置成支持在各种网络(包括但不限于基于互联网协议(ip)的网络(例如互联网)或类似)中发送和接收通信。进一步地,通信接口908可以被配置成支持装置与装置的通信。处理器902还可以被配置成便于通过通信接口908通过例如控制通信接口908中包括的硬件进行通信。在这方面,通信接口908可以包括例如通信驱动器电路、一个或多个天线、发射器、接收器、收发器和/或支持硬件,例如包括用于实现通信的处理器。

用户接口906可以与处理器902通信,以通过用户接口906接收用户输入和/或给用户呈现输出,例如可听的、可视的、机械的或其它输出指示。用户接口906可以包括例如键盘或小键盘、显示器(例如触摸屏显示器)或其它输入/输出机构。进一步地,处理器902可以包括或者与用户接口电路通信,所述用户接口电路被配置成控制用户接口的一个或多个元件的至少一些功能。处理器902和/或用户接口电路可以被配置成通过处理器902可访问的存储器(例如,易失性存储器、非易失性存储器和/或类似)上存储的计算机程序指令(例如软件和/或固件)控制用户接口的一个或多个元件的一个或多个功能。在一些示例性实施例中,用户接口电路被配置成便于通过使用显示器并配置成响应用户输入由用户控制设备900的至少一些功能。处理器902还可以包括显示器电路或与显示器电路通信,显示器电路被配置成显示用户接口的至少一部分,显示器和显示器电路被配置成便于用户控制设备900的至少一些功能。

打印硬件912可以包括支持在介质上打印的各种硬件装置和组件。在这方面,打印硬件912可以包括墨辊、滚筒、电动机操作器、打印头、打印墨带和被配置成支持在介质上打印的其它硬件。介质还可以支持机器可读数据,诸如磁带、rfid标签、nfc标签或磁存储器。在这方面,打印硬件还可以包括被配置成支持在这些场中存储数据、或者向这些装置读和写数据的硬件,诸如磁带阅读器、rfid问答机、nfc模块或存储器阅读装置。

打印作业管理器910可以具体体现在硬件(例如形式为asic或fpga)中或体现为由处理器902执行的控制打印操作的指令。在这方面,设备900可以被配置成接收打印作业,在打印作业管理器910的控制下,设备900可以在介质上打印信息或设计。打印作业管理器910还可以被配置成管理假脱机和缓冲打印作业。

打印机前端应用程序914可以具体体现在硬件(例如形式为asic或fpga)中或体现为由处理器902执行的支持适应性的基于打印机的应用程序框架的操作的指令。在这方面,设备700可以被配置成从服务器实现的应用程序接收指令和请求,通过打印机前端应用程序914的实现作用于这些指令或请求。

图10图解说明根据一些示例性实施例的示例性系统。示例性系统包括打印机1000和扫描器1010。打印机1000被配置成无线连接到扫描器1010,以接收由扫描器1010获得的数据,并以其它方式与扫描器1010通信。打印机1000还可以包括显示器1002和小键盘1004。通过打印机前端应用程序的实现,打印机1000可以被配置成响应于来自服务器实现的应用程序的指令或请求与扫描器1010、显示器1002和小键盘1004交互。

例如,打印机1000可以通过服务器实现的应用程序被配置成接收从条形码1020的扫描获得的信息,在打印机上的通用变量中存储该信息。存储的信息然后可以通过网络连接传送到服务器实现的应用程序以进行分析。分析可以包括例如检索与条形码关联的数据(例如内部或第三方数据),使用检索数据来格式化具体的打印作业。在另一示例中,分析可以包括登录与条形码信息关联的用户,并允许用户使用打印机。

在另一示例中,打印机和扫描器配对操作可以通过动态的基于打印机的应用程序框架实现。在这方面,扫描器1010可以扫描并从附连到打印机1000的标签中获得条形码信息,将装置配对在一起以用于通信、报表或等等。

本文中的描述提供根据本发明的示例性实施例的示例性方法和计算机程序产品。因此提供了根据本发明的示例性实施例的系统、方法和计算机程序产品。用于实现本文中描述的本发明的示例性实施例的功能的装置可以包括硬件和/或计算机程序产品,计算机程序产品包括计算机可读存储介质,所述计算机可读存储介质其中存储一个或多个计算机程序代码指令、程序指令或可执行的计算机可读程序代码指令。在这方面,程序代码指令可以存储在存储器装置(诸如存储器装置904)上,由处理电路(诸如处理器902)执行。如将认识到的,任何这些程序代码指令可以从计算机可读存储介质上下载到计算机或其它可编程设备上,以产生具体的机器,使得具体的机器变成用于实现规定的功能的装置。这些程序代码指令还可以存储在计算机可读存储介质上,他们可以引导计算机、处理电路、处理器或其它可编程设备以具体方式起作用,从而生成具体的机器或具体的制品。计算机可读存储介质中存储的指令可以产生制品,这里制品变成用于实现规定功能的装置。程序代码指令可以从计算机可读存储介质中检索,加载到计算机、处理电路、处理器或其它可编程设备上,以配置计算机、处理电路、处理器或其它可编程设备,从而执行要在或要由计算机、处理电路、处理器或其它可编程设备执行的操作步骤。程序代码指令的检索、加载和执行可以顺序执行,使得一次检索、加载和执行一个指令。在一些示例性实施例中,检索、加载和/或执行可以并行执行,使得多个指令可以一起被检索、加载和/或执行。程序代码指令的执行可以产生计算机实现的过程,使得由计算机、处理器或其它可编程设备执行的指令提供用于实现规定功能的步骤。还要理解,本文中描述的功能可以由特殊用途的基于硬件的计算系统和/或执行规定功能的处理器或特殊用途硬件和程序代码指令的组合来实现。

许多修改和本文中列出的本发明的其它实施例会由受益于前述描述和关联附图中呈现的教导的这些发明所属的领域内的技术人员想到。因此,要理解本发明不局限于所公开的特定实施例,修改和其它实施例旨在被包括。而且,尽管前述描述和关联附图在元件和/或功能的某些示例性组合的背景下描述示例性实施例,应当认识到在不偏离本文中提供的描述的范围下可以由替代性实施例提供元件和/或功能的不同组合。在这方面,除了上文明确描述的之外,例如元件和/或功能的不同组合也被考虑。尽管本文中使用特定词语,但他们只是在通用的描述性意义上使用,不是出于限制目的。

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