IP Library Granted Patent US 9,843,469
Granted Patent B2
US 9,843,469 · App. 14/010,328 · Granted Dec 12, 2017

Generic data exchange method using hierarchical routing

Inventor: Joseph J. Dziezanowski (Salisbury, NH)
Assignee: MICROSCAN SYSTEMS, INC.
H04L29/06068G06F9/541G06F9/548H04L41/0233
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,843,469
App. No.
14/010,328
Granted
Dec 12, 2017
Kind
B2
Abstract

A process including retrieving a list of one or more candidate objects with which an origin object can communicate using a standard command language, wherein at least one of the one or more candidate objects uses a command language different than the standard command language. The process queries the schema of one or more target objects selected from among the one or more candidate objects and uses the standard command language to transmit to the one or more target objects commands and/or data consistent with the schemas of the target objects.

Claims (78)

1. A method of communicating between objects comprising:

receiving a request from an originating object to exchange data with any one or more unspecified target objects;

discovering, from a remote service object via a standard communication protocol, candidate objects for the any one or more unspecified target objects, wherein the candidate objects might or might not be known to the originating object as a target object with which the originating object is able to exchange data;

determining that a candidate object is known to the originating object as a target object with which the originating object is able to exchange data, including:

sending an information request package to the remote service object via the standard protocol, the information request package containing a hierarchy of commands, including a routing command to command the remote service object to route the request package to the target object, and any one or more of a:

query command to command the target object to return the target object's namespace, and

schema query command to command the target object to return the target object's schema;

responsive to the hierarchy of commands, receiving from the remote service object via the standard protocol any one or more of the namespace and schema returned by the target object;

determining that any one or more of the received namespace and schema returned by the target object is known to the originating object;

receiving a data exchange request package assembled by the originating object to exchange data with the target object, wherein the data exchange request package is assembled by the originating object to exchange data based on any one or more of the known namespace and schema returned by the target object;

relaying the data exchange request package to the remote service object via the standard protocol; and

receiving a confirmation from the remote service object that the originating object exchanged data with the target object in accordance with the data exchange request package, the confirmation including receiving data from the target object.

2. The method of communicating between objects as in claim 1 , further comprising:

determining that data cannot be exchanged between the originating object and target object in native format;

encoding data in the data exchange request package before transmission to the remote service object via the standard communication protocol; and

decoding data received from the target object after receiving a confirmation from the remote service object via the standard communication protocol that the originating object exchanged data with the target object.

3. The method of communicating between objects as in claim 2 wherein the native format is any one of:

binary, and further wherein encoding and decoding is performed using uuencode; and

scalable vector graphics (SVG), and further wherein encoding and decoding is performed using tags conforming to SVG language for describing two-dimensional graphics and graphical applications in the extended markup language (XML).

4. The method of communicating between objects as in claim 1 :

wherein the method is performed in a local service object in communication with the remote service object using communication objects configured with the standard communication protocol, the local service object servicing the originating object from which the request to exchange data was initially received.

5. The method of communicating between objects as in claim 1 wherein:

the originating object and the target object are each present in any one of:

a same process in a same device,

separate processes in the same device, and

separate devices.

6. The method of communicating between objects as in claim 5 wherein:

the originating object is present in an application running in a client device; and

the target object is present in a server running in a data capture device, including a machine vision camera for capturing and processing any one or more of graphical data and binary data.

7. An apparatus, comprising:

a processor in communication with any one or more target devices, the processor managing an exchange of data with the any one or more target devices, wherein the processor is configured to:

receive a request from an originating object to exchange data with any one or more unspecified target objects operating on the any one or more target devices;

discover, via a standard communication protocol, from a remote service object operating on one of the any one or more target devices whether objects on the remote service object's target device are candidate objects for the any one or more unspecified target objects, wherein the candidate objects might or might not be known as a target object with which the processor is able to exchange data;

determine that a candidate object is known as a target object with which the processor is able to exchange data, including:

send an information request package to the remote service object via the standard protocol, the information request package containing a hierarchy of commands, including a routing command to command the remote service object to route the request package to the target object, and any one or more of a:

query command to command the target object to return the target object's namespace, and

schema query command to command the target object to return the target object's schema;

responsive to the hierarchy of commands, to receive from the remote service object via the standard protocol any one or more of the namespace and schema returned by the target object;

determine that any one or more of the received namespace and schema returned by the target object is known to the originating object;

receive a data exchange request package for exchanging data with the target object, wherein the data exchange request package is assembled by an originating object operating on the processor, based on any one or more of the known namespace and schema returned by the target object;

relay the data exchange request package to the remote service object via the standard protocol; and

receive a confirmation from the remote service object that the originating object exchanged data with the target object in accordance with the data exchange request package, the confirmation including receiving data from the target object.

8. The apparatus of claim 7 , wherein the processor is further configured to:

determine that data cannot be exchanged between the originating object and target object in native format;

encode data in the data exchange request package before transmission to the remote service object via the standard communication protocol; and

decode data received from the target object after receiving a confirmation from the remote service object via the standard communication protocol that the originating object exchanged data with the target object.

9. The apparatus of claim 8 , wherein the native format is any one of:

binary, and further wherein the processor is configured to encode and decode using uuencode processes; and

scalable vector graphics (SVG), and further wherein the processor is configured to perform encoding and decoding using tags conforming to SVG language for describing two-dimensional graphics and graphical applications in the extended markup language (XML).

10. The apparatus of claim 7 , wherein the processor is further configured to:

administer communications between the local service object and any remote service object using a communication object configured with the standard communication protocol, the local service object servicing the originating object from which the request to exchange data was initially received.

11. The apparatus of claim 7 , wherein:

the originating object and the target object are each present in any one of:

a same process in a same device,

separate processes in the same device, and

separate devices.

12. The apparatus of claim 11 , wherein:

the originating object is present in an application running in a client device; and

the target object is present in a server running in a data capture device, including a machine vision camera for capturing and processing any one or more of graphical data and binary data.

13. At least one non-transitory computer-readable storage medium, including instructions that, when executed on a local service object operating on a client device in communication with an embedded web server operating on a data acquisition device, cause the local service object to implement a method to:

receive a request from an originating object to exchange data with any one or more unspecified target objects;

discover, from a remote service object via a standard communication protocol, candidate objects for the any one or more unspecified target objects, wherein the candidate objects might or might not be known to the originating object as a target object with which the originating object is able to exchange data;

determine that a candidate object is known to the originating object as a target object with which the originating object is able to exchange data, including instructions to cause the local service object to further implement the method to:

send an information request package to the remote service object via the standard protocol, the information request package containing a hierarchy of commands, including a routing command to command the remote service object to route the request package to the target object, and any one or more of a:

query command to command the target object to return the target object's namespace, and

schema query command to command the target object to return the target object's schema;

responsive to the hierarchy of commands, receive from the remote service object via the standard protocol any one or more of the namespace and schema returned by the target object;

determine that any one or more of the received namespace and schema returned by the target object is known to the originating object;

receive a data exchange request package assembled by the originating object to exchange data with the target object, wherein the data exchange request package is assembled by the originating object to exchange data based on any one or more of the known namespace and schema returned by the target object;

relay the data exchange request package to the remote service object via the standard protocol; and

receive a confirmation from the remote service object that the originating object exchanged data with the target object in accordance with the data exchange request package, the confirmation including receiving data from the target object.

14. The at least one non-transitory computer-readable storage medium as in claim 13 , wherein the instructions further cause the local service object to further implement the method to:

determine that data cannot be exchanged between the originating object and target object in native format;

encode data in the data exchange request package before transmission to the remote service object via the standard communication protocol; and

decode data received from the target object after receiving a confirmation from the remote service object via the standard communication protocol that the originating object exchanged data with the target object.

15. The at least one non-transitory computer-readable storage medium as in claim 14 , wherein the native format is any one of:

binary, and further wherein encoding and decoding is performed using uuencode; and

scalable vector graphics (SVG), and further wherein encoding and decoding is performed using tags conforming to SVG language for describing two-dimensional graphics and graphical applications in the extended markup language (XML).

Assignments (3)
CHANGE OF NAME Recorded Mar 6, 2019
From: MICROSCAN SYSTEMS INCORPORATED
To: OMRON MICROSCAN SYSTEMS, INC.
Reel/Frame 050244/0489 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 6, 2019
From: OMRON MICROSCAN SYSTEMS, INC.
To: OMRON CORPORATION
Reel/Frame 048524/0944 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 4, 2016
From: DZIEZANOWSKI, JOSEPH J.
To: MICROSCAN SYSTEMS, INC.
Reel/Frame 038462/0684 →
Continuity (2)
Continuation 13048762 · Mar 15, 2011
Related Publication 20130343406A1 · Dec 26, 2013