Systems and Methods for Secure, Message-Based Delivery of Mobile Application Requests
20180276397 ยท 2018-09-27
Inventors
Cpc classification
H04N1/4433
ELECTRICITY
H04N1/411
ELECTRICITY
International classification
H04N1/00
ELECTRICITY
H04N1/411
ELECTRICITY
Abstract
The disclosed invention comprises Systems and Methods for delivery of mobile applications' requests for services to network devices or apparatus in a secure environment. The invention features web-based configuration services allowing for the definition of delivery systems' components, including mobile devices, delivery channels, machine handlers, endpoints and pre-authentications. Machine handlers are pre-authenticated to access endpoints. Mobile applications encode their requests and send these encoded requests in message bodies to a message server. Delivery handlers send these messages to machine handlers for specified endpoints based on configuration. Machine handlers decode and submit the requests to endpoints, e.g. a printer. The invention therefore allows a user to send a mobile application request to a secured network device, such as an endpoint printer, with no intervening actions such as unwanted security requests.
Claims
1. A system for secure, message-based delivery of mobile application requests, comprising: at least one mobile device, comprising: a processor; memory; an application: which sends a request for action to be performed to a request handler; said request handler: receiving said request for action; encoding said request for action in an encoded request; creating a message with said encoded request within said message; posting said message to a message server; a separate computer, comprising: a computer processor; memory for said separate computer; a configuration services server: which enables delivery of mobile application requests by defining and modifying components of a delivery system; a message server: which receives said message posted by said request handler; which dispatches said message to a delivery handler; at least one delivery handler: receiving said message; delivering said message to a machine handler; at least one machine handler: receiving said message; decoding said encoded request in a decoded request; then sending said decoded request to an endpoint; said endpoint receiving said decoded request and performing said decoded request.
2. The system of claim 1, wherein said configuration services server; defines and modifies said mobile devices, defines and modifies said applications, defines and modifies said request handlers, defines and modifies said message server, defines and modifies said delivery handlers, defines and modifies said machine handlers, and defines and modifies said endpoints; and wherein said configuration server: defines and modifies schedules ror delivery of said messages; and establishes secure connections between said machine handlers and said endpoints.
3. The system of claim 1, wherein: said mobile device further comprises: said application: which sends a print request to be performed to a print request handler; said print request handler receiving said print request and its associated print file, therein encoding said print file in an encoded print file; creating a message with said encoded print file within said message: posting said message to said message server; said machine handler: receiving said message; decoding said encoded print file in a decoded print file; sending said decoded print file to a printer endpoint; and said printer endpoint: receiving said decoded print file and printing said decoded print file.
4. The system of claim 3, wherein: said print request handler: receives said print request with a corresponding print file; encodes said print file for action in an encoded print file; stores said encoded print file in network-accessible storage at a storage location; creates a message with said storage location within said message; posts said message to a message server; and wherein said machine handler: receives said message; retrieves said endoded print file at said storage location; decodes said encoded print file in a decoded print file; and sends said decoded print file to a printer endpoint.
5. The system of claim 1, wherein: said message server further comprises: a database; a message queue which receives said message posted by said request handler, and which passes said message to a scheduler; said scheduler: storing said message in said database; retrieving a scheduled delivery time for said message from said configuration services server; notifying, at said scheduled delivery time, a monitor of said message; said monitor: waiting for notifications from said scheduler; retrieving said message, upon notification, from said database; dispatching said message to said delivery handler.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0007] The drawings described herein are for illustrative purposes only of selected embodiments and not all possible implementations and are not intended to limit the scope of the present disclosure.
[0008]
[0009]
[0010]
[0011]
[0012]
[0013]
[0014]
DEFINITIONS
[0015] Configuration: collection of identifiers, definitions, parameters and parameter values that define the components of a delivery system for mobile application requests, such as a mobile printing system.
[0016] Configuration Services: module that provides for the definition and modification of the delivery system for mobile application requests.
[0017] Configuration Services Server: The Server (computer program providing functionality for clients) which utilizes the configuration services module to provide functions for mobile application requests, and other functions disclosed infra.
[0018] Database: an organized collection of information.
[0019] Define (verb): to configure a system, setting system parameters, devices and functions.
[0020] Decode: convert coded information into its original form.
[0021] Delivery Handler: module that deliver messages to Machine Handlers.
[0022] Delivery system for mobile application requests: system for delivery and receipt of application requests over a network.
[0023] Encode: convert information into another form.
[0024] Endpoint: general term for network-connected devices that can receive information.
[0025] Machine Handler: module that decodes messages and sends the decoded requests to endpoints.
[0026] Message: a unit of information transferred via a network from one entity to another entity.
[0027] Message Queue: module that receives posted messages.
[0028] Message Server: module that processes the receipt and delivery of messages.
[0029] Mobile application: module resident, at least in part, on a mobile device.
[0030] Mobile device: general term for network-connected devices.
[0031] Mobile printing system: system for delivery and receipt of application print requests over a network.
[0032] Modify (verb): to change the configurations of a system, including devices and defined functions.
[0033] Monitor: module that dispatches messages to their indicated destination.
[0034] Network printer: network-connected printers.
[0035] Post: command requesting data enclosed in body of message be accepted and stored.
[0036] Print Request Handler: module that receives and sends application print requests.
[0037] Proxy server: a server (computer or application) which serves as an intermediary for requests from one computer or application on a network to another computer or application on a network.
[0038] Request: information requesting an action be taken or service be performed.
[0039] Request Handler: module that receives and sends application requests.
[0040] Scheduler: module that stores messages and sets time for their future dispatch.
DETAILED DESCRIPTION OF THE DRAWINGS AND SAMPLE EMBODIMENTS
[0041] In the Summary above, this Detailed Description, the claims below, and in the accompanying drawings, reference is made to particular features (including method steps) of the invention. It is to be understood that the disclosure of the invention in this specification includes all possible combinations of such particular features. For example, where a particular feature is disclosed in the context of a particular aspect or embodiment of the invention, or a particular claim, that feature can also be used, to the extent possible, in combination with and/or in the context of other particular aspects and embodiments of the invention.
[0042] Certain terminology and derivations thereof may be used in the following description for convenience in reference only, and will not be limiting. For example, words such as upward, downward, left, and right would refer to directions in the drawings to which reference is made unless otherwise stated. Similarly, words such as inward and outward would refer to directions toward and away from, respectively, the geometric center of a device or area and designated parts thereof. References in the singular tense include the plural, and vice versa, unless otherwise noted.
[0043] The term comprises and grammatical equivalents thereof are used herein to mean that other components, ingredients, steps, among others, are optionally present. For example, an article comprising (or which comprises) components A, B and C can consist of (i.e., contain only) components A, B and C, or can contain not only components A, B, and C but also contain one or more other components.
[0044] Where reference is made herein to a method comprising two or more defined steps, the defined steps can be carried out in any order or simultaneously (except where the context excludes that possibility), and the method can include one or more other steps which are carried out before any of the defined steps, between two of the defined steps, or after all the defined steps (except where the context excludes that possibility).
[0045] The term at least followed by a number is used herein to denote the start of a range beginning with that number (which may be a range having an upper limit or no upper limit, depending on the variable being defined). For example, at least 1 means 1 or more than 1. The term at most followed by a number (which may be a range having 1 or 0 as its lower limit, or a range having no lower limit, depending upon the variable being defined). For example, at most 4 means 4 or less than 4, and at most 40% means 40% or less than 40%. When, in this specification, a range is given as (a first number) to (a second number) or (a first number)-(a second number), this means a range whose limit is the second number. For example, 25 to 100 mm means a range whose lower limit is 25 mm and upper limit is 100 mm.
[0046] Aspects of the disclosed invention may be embodied as a system, method or process, or computer program product. Accordingly, aspects of the disclosed invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a circuit, module, program, device, or system. Furthermore, aspects of the disclosed invention may take the form of a computer program product embodied in one or more computer readable media having computer readable program code embodied thereon.
[0047] Any element in a claim that does not explicitly state means for performing a specified function, or step for performing a specific function is not to be interpreted as a means or step clause as specified in 35. U.S.C. 112 6. Specifically, the use of step of in the claims herein is not intended to invoke the provisions of U.S.C. 112 6.
[0048]
[0049] A mobile application, resident at least in part on the mobile device, is integrated into business workflow and other operations. The mobile application is therefore sending requests for work to be completed by other components within the business system as herein disclosed. The mobile application request made via the instant invention is efficient and secure. Efficiency and security requirements are met by the structure and definitions as setup in the herein-disclosed embodiment's configuration.
[0050] Referring to
[0051] By way of example and preferred embodiment [further described infra], a Machine Handler 109 is connected, using a pre-authorized, secure network connection, to two Endpoints 104: a physically attached, label printer (Endpoint A) and a network attached letter printer (Endpoint B). Machine Handler 109 could then be configured to send all label requests to Endpoint A, and all other requests to Endpoint B.
[0052] Finally, and most critically, Configuration Services 111 provides the ability to establish secure connections between Machine Handlers 109 and their network-secured Endpoints 104. An Application 101 requesting services from a secured Endpoint 104 bypasses any requisite security prompts because the configured Machine Handler 109 is acting as a proxy server. In this way, requests are sent and received securely, and without disruptive and repeated authentications.
[0053] Mobile applications, using the System of the invention, can request to print documents, labels, receipts and orders.
[0054] Referring to
[0055] One embodiment of the Print Request Handler 301 and its post of the encoded print file in the body of a message 306, whichin this exampleis written in Python (a programming language well understood by persons of ordinary skill in the art), is shown below:
TABLE-US-00001 def.sub.gn_send_msg(printPage) response = Net::HTTP.new(NOTIFICATION_SERVER, NOTIFICATION_ PORT).st art{ |http|http.request(Net::HTTP::Post.new(/printSocket/1/)) } node_key = response.body.split(:).first socket = WebSocket.new(ws://#{NOTIFICATION_SERVER}:#{NOTIFICATION.sub. PORT} /printSock t/1/websocket/#{node_key}) socket.send(4:::#{{:.sub.send => true, :data => printPage}.to_json}) socket.close
[0056]
[0057] Referring to
[0058]
[0059] Referring to
[0060] One embodiment of the Machine Handler 503 and its decoding of body of message into Decoded Print File 504, and sending the print request and Decoded Print File 504 to the Endpoint Printer 505, whichin this exampleis written in Python (a programming language well understood by persons of ordinary skill in the art), is shown below:
TABLE-US-00002 def on_message(self, *args): message = args[1].split(:, 3) key = int(message[0]) if len(message) >= 4: data = message[3] else: data = if key == 1 and args[1] == 1: : : self.send_packet_helper(1) self.send_packet_helper(4, data={.sub.queue: self.gn_key + _ + self.gn_queue}) self.log.info(Connected to gn_queue socket) elif key == 2: self.send_packet_helper(2) elif key == 5: data = json.loads(data, ) args = json.loads(data[args][0].replace( , )) if args[data][subject] == PDF PRINT: message = args[data] cmd = if os.name == nt: cmd = gsprint.exe landscape printer { } .format(self.printer_name,) else: cmd = /usr/bin/lpr o landscape o PageSize={ } P { }.format(self.page_size, self.printer_name) proc = subprocess.Popen(cmd, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True) response = requests.get(html.unescape(message['body']), stream=True) for block in response.iter_content(1024): proc.stdin.write(block) stdout, stderr = proc.communicate( ) exit_code = proc.wait( ).
[0061] Using the instant System, print requests from mobile applications to secured, network printers are therefore processed in a secure and efficient manner.