IP Library Granted Patent US 9,860,301
Granted Patent B2
US 9,860,301 · App. 15/441,095 · Granted Jan 2, 2018

File transfer using XML

Inventor: Jonathan Melvin (Aughton, GB)
Assignee: Ent. Services Development Corporation LP
H04L67/06G06F17/30076H04L41/0246H04L41/0273H04L67/2823
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,860,301
App. No.
15/441,095
Granted
Jan 2, 2018
Kind
B2
Abstract

A tangible, machine readable storage medium stores instructions and implements a method when the instructions are executed by a processor. A source file is received by a gateway engine. The source file is a binary file. The source file is portioned into multiple parts by a breakdown engine. The multiple parts are transferred by a reliable transfer engine using a single port according to a messaging protocol to transfer messages reliably between nodes in the presence of any of software failures, component failures, system failures, or network failures. The multiple parts are reassembled into a copy of the source file by a reassembly engine.

Claims (43)

1. A non-transitory machine readable storage medium storing instructions that, when executed by a processor, cause the processor to:

receive a source file to be transferred to a destination node, the source file being a binary data file;

portion the source file into multiple parts, wherein each of the multiple parts includes a chunk of the binary data of the source file;

for each of the multiple parts, create an XML document containing a reference to the corresponding chunk of binary data of the respective part; and

transmit each of the XML documents to the destination node through a single port,

wherein the destination node is to utilize the references in the transmitted XML documents to obtain and reassemble the corresponding chunks of binary data into a copy of the source file.

2. The non-transitory machine readable storage medium of claim 1 , wherein to transmit each of the XML documents to the destination node, the processor is to:

determine whether a communication channel connected to the port supports Message Transmission Optimization Mechanism (MTOM);

in response to a determination that the communication channel supports MTOM, transmit the respective XML document to the destination node through the communication channel; and

in response to a determination that the communication channel does not support MTOM, replace the reference to the chunk of binary data in the respective XML document with an encoded representation of the binary data, and transmit the respective XML document containing the encoded representation of the binary data to the destination node through the communication channel.

3. The non-transitory machine readable storage medium of claim 1 , wherein the instructions are to cause the processor to encode the chunk of binary data of each of the multiple parts in XML by (i) storing the binary data in a container and referencing the binary data in XML, or by (ii) using Base 64 encoding.

4. The non-transitory machine readable storage medium of claim 1 , wherein the instructions are to cause the processor to add a security protocol layer to each of the multiple parts.

5. A method for transferring a binary file across web service channels using XML, the method comprising:

receiving, at a computing system, a source file to be transferred to a destination node, the source file being a binary data file;

portioning, by a processor of the computing system, the source file into multiple parts, wherein each of the multiple parts includes a chunk of the binary data of the source file;

creating, by the processor, an XML document for each of the multiple parts, wherein the XML document contains a reference to the corresponding chunk of binary data of the respective part; and

transmitting, by the processor, each of the XML documents to the destination node through a single port,

wherein the destination node is to utilize the references in the transmitted XML documents to obtain and reassemble the corresponding chunks of binary data into a copy of the source file.

6. The method of claim 5 , wherein transmitting each of the XML documents to the destination node includes:

determining, by the processor, whether a communication channel connected to the port supports Message Transmission Optimization Mechanism (MTOM);

in response to a determination that the communication channel supports MTOM, transmitting the respective XML document to the destination node through the communication channel; and

in response to a determination that the communication channel does not support MTOM, replacing the reference to the chunk of binary data in the respective XML document with an encoded representation of the binary data, and transmitting the respective XML document containing the encoded representation of the binary data to the destination node through the communication channel.

7. The method of claim 5 , further comprising:

encoding, by the processor, the chunk of binary data of each of the multiple parts in XML by (i) storing the binary data in a container and referencing the binary data in XML, or by (ii) using Base 64 encoding.

8. The method of claim 5 , further comprising:

adding a security protocol layer to each of the multiple parts.

9. A system for transferring files using XML, comprising:

a processor; and

a memory device storing instructions that when executed by the processor cause the processor to:

receive a source file to be transferred to a destination node, the source file being a binary data file;

portion the source file into multiple parts, wherein each of the multiple parts includes a chunk of the binary data of the source file;

for each of the multiple parts, create an XML document containing a reference to the corresponding chunk of binary data of the respective part; and

transmit each of the XML documents to the destination node through a single port.

10. The system of claim 9 , wherein to transmit each of the XML documents to the destination node, the processor is to:

determine whether a communication channel connected to the port supports Message Transmission Optimization Mechanism (MTOM);

in response to a determination that the communication channel supports MTOM, transmit the respective XML document to the destination node through the communication channel; and

in response to a determination that the communication channel does not support MTOM, replace the reference to the chunk of binary data in the respective XML document with an encoded representation of the binary data, and transmit the respective XML document containing the encoded representation of the binary data to the destination node through the communication channel.

11. The system of claim 9 , wherein the instructions are further to cause the processor to assign a message number to each of the multiple parts beginning at 1 and increasing by 1 for each subsequent part, the message numbers assigned in the same order in which the XML documents corresponding to the multiple parts are sent to the destination node.

12. The system of claim 9 , wherein the destination node is to utilize the references in the transmitted XML documents to obtain and reassemble the corresponding chunks of binary data into a copy of the source file.

13. The system of claim 9 , wherein the processor is to encode the chunk of binary data in each of the multiple parts in XML by (i) storing the binary data in a container and referencing the binary data in XML, or by (ii) using Base 64 encoding.

14. The system of claim 9 , wherein the instructions are to cause the processor to: embed each of the XML documents in a SOAP message; and

stream the respective SOAP message and referenced binary data as a multi-part MIME to the destination node.

15. The system of claim 9 , wherein the processor is to create the XML document for each of the multiple parts using XML-binary Optimized Packaging (XOP) protocol.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 15, 2017
From: MELVIN, JONATHAN
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 042728/0453 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 15, 2017
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 042839/0001 →
NUNC PRO TUNC ASSIGNMENT Recorded Jun 7, 2017
From: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
To: ENT. SERVICES DEVELOPMENT CORPORATION LP
Reel/Frame 042625/0512 →
Continuity (2)
Continuation 14374834
Related Publication 20170163719A1 · Jun 8, 2017