throbber
US007324228B2
`
`(12) United States Patent
`Chiarabini et al.
`
`(10) Patent No.:
`(45) Date of Patent:
`
`US 7,324.228 B2
`Jan. 29, 2008
`
`(54) SYSTEM AND METHOD FOR
`DOWNLOADING AND FOR PRINTING DATA
`FROM AN EXTERNAL CONTENT SOURCE
`
`(75) Inventors: Luca Chiarabini, San Diego, CA (US);
`Xavier Boix, Sant Cugat-BCN (ES);
`Mark E. Boettcher, Vancouver, WA
`(US); Michael D. Whitmarsh,
`Vancouver, WA (US)
`s
`(73) Assignee: Hewlett-Packard Development
`Company, L.P., Houston, TX (US)
`
`EP
`EP
`EP
`EP
`GB
`
`5,727,137 A * 3/1998 LeClair et al. ............. 358/1, 17
`6,009,153 A * 12/1999 Houghton et al. ..... 379/102.02
`-
`(Continued)
`FOREIGN PATENT DOCUMENTS
`
`0 704 792
`! 1995
`() 733 965
`9/1996
`0 795 817
`9/1997
`() 9 11 723
`4/1999
`2 325 997
`12/1998
`OTHER PUBLICATIONS
`
`sk
`
`* * * *
`
`-
`
`-
`
`-
`
`-
`
`B. Noghani et al., “Reducing Latency on the Internet using “Com
`
`(*) Notice: º to sº º º jº º: ponent-Based Download” and “File-Segment Transfer Protocol”:
`patent 1s extended or adjusted under
`Experimental Result”, Proceedings of the Jul. 2000 Symposium on
`U.S.C. 154(b) by 943 days.
`Performance Evaluation of Computer and Telecommunication Sys
`t
`.#
`(21) Appl. No.: 09/935,579
`ems
`
`22) Filed:
`(22) File
`(65)
`
`Aug. 24. 2001
`ug. 24,
`Prior Publication Data
`|US 2002/003919.6 A1
`Apr. 4, 2002
`
`Related U.S. Application Data
`(63) Continuation-in-part of application No. 09/513,441,
`filed on Feb. 25, 2000, now abandoned.
`Foreign Application Priority Data
`(30)
`Aug. 25, 2000 (GB) ................................. 002106.3.3
`
`(51) Int. Cl.
`(2006.01)
`G06F 3/12
`(2006.01)
`G06F H 5/()()
`(52) U.S. Cl. ..................................... 358/1.15, 358/1.13
`(58) Field of Classification Search ............... 358/1 .15,
`358/402, 1.13, 1.16, 1.17, 1.18, 1.14, 1.1;
`. -
`705/9: 718/1, 100. 709/200
`-
`See application file for complete search history.
`References Cited
`
`(56)
`
`|U.S. PATENT DOCUMENTS
`5,438,436 A *
`8/1995 Harris ........................ 358/500
`
`(Continued)
`Primary Examiner—Dov Popovici
`(57)
`ABSTRACT
`
`A system and method are provided for enabling faster
`downloading and printing of data received from an external
`content source. In one embodiment, the method is segment
`ing the data file available on a content source external to the
`user computing device into a plurality of portions; indepen
`dently downloading to said computing device each of said
`plurality of portions; and assembling each downloaded
`portion into a second data file on said computing device, to
`mach such first data file. In a second embodiment the
`method is (a) selecting a first data file to be printed from said
`plurality of data files; (b) downloading said selected data file
`form a content source external to a computing device
`connected to the printer, (c) once said selected data file is
`entirely downloaded into said computing device, processing
`said selected data file and sending the processed data to the
`printer for printing; and (d) during said steps of processing
`and sending, selecting the following data file from said
`plurality of data files and repeating steps (b) (c) and (d) for
`said selected data file.
`
`13 Claims, 6 Drawing Sheets
`
`
`
`
`
`Microsoft Corp. Exhibit 1006
`
`

`

`US 7,324.228 B2
`Page 2
`
`|U.S. PATENT DOCUMENTS
`6,025,923 A * 2/2000 Kageyama et al. ........ 358/1.14
`6,031,624 A * 2/2000 Murphy ..................... 358/1.17
`6,238,105 B1* 5/2001 Pardo ........................ 358/1.17
`6,313,921 B1* 11/2001 Kadowaki .................. 358/1.15
`6,392,758 B2 *
`5/2002 Hines ......................... 358/1.9
`6,426,799 B1* 7/2002 Okimoto et al. ........... 358/1.15
`6,691,166 B1* 2/2004 Gasior et al. ............... 709/232
`6,775,705 B2 * 8/2004 Maeda ....................... 709/230
`
`6,982,801 B1* 1/2006 Saito ......................... 358/1.15
`OTHER PUBLICATIONS
`Tachibana Hiroaki; Patent Abstracts of Japan—JP 110127276; Nov.
`21, 2000.
`Chuck Forsberg; “Evolution and Selection of File Transfer Proto
`cols”: http://www.omen.com/zmdmev.html; 7 pages.
`Search Report for Corresponding Great Britain Application No. GB
`0021063.3.
`* cited by examiner
`
`Microsoft Corp. Exhibit 1006
`
`

`

`U.S. Patent
`
`Jan. 29, 2008
`
`Sheet 1 of 6
`
`
`
`324,228 B2 US 7,
`
`aut?u
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`? 914
`
`Microsoft Corp. Exhibit 1006
`
`

`

`U.S. Patent
`
`Jan. 29, 2008
`
`Sheet 2 of 6
`
`US 7,324.228 B2
`
`
`
`UPLOADING
`LOGIC
`182
`
`4
`
`| ETORY
`159
`
`PROCESSOR º
`
`156
`
`NETWORK
`?NTERFACE
`166
`
`165
`SERVER
`106
`
`
`
`
`
`
`
`
`
`
`
`NETWORK
`109
`
`
`
`
`
`NETWORK
`INTERFACE
`123
`
`PROCESSOR
`113
`
`
`
`SYSTEM
`100
`
`OUTPUT
`| INTERFACE(s)
`126
`
`FIG. 2
`
`
`
`
`
`BROWSER
`143
`
`
`
`|
`
`
`
`
`
`
`
`PLUG - IN
`147
`UPLOADING
`LOGIC
`180
`only?s. DOWNLOADING
`*
`?,CGIC
`181
`PRINTING
`LOGIC
`L49
`
`
`
`
`
`i.
`
`INPUT
`INTERFACE(S)
`129
`L
`|
`
`Microsoft Corp. Exhibit 1006
`
`

`

`U.S. Patent
`
`Jan. 29, 2008
`
`Sheet 3 of 6
`
`US 7,324.228 B2
`
`
`
`BEGIN RECEIVING
`DATA STREAT From T 200
`CoNTENT source
`
`GATHER FIRST
`Portion OF DATA T-202
`FROM STREAM:
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`STORE FIRST
`PORTION IN
`'IE TORY
`
`GATHER SECOND
`PORTION OF DATA
`FROM STREAT
`
`STORE SECOND
`PORTION IN
`TEMORY
`
`
`
`
`
`
`
`. REQEIVER .N.
`i?
`DESTROY STREAM
`covyAND
`
`GATHER NEXT
`PORTION OF DATA
`FROM STREAT
`
`STORE NEXT
`PORTION IN
`MEMORY
`
`FIG.3
`
`206
`
`SEND FIRST PORTION
`TO PRINTER TO
`3BG|N PRINTHNG
`
`
`
`
`
`TITIEOUT º |FIRST PORTION
`
`FINISHED
`YES
`SEND SECOND
`PORTION
`TO PRINTER
`
`214
`
`
`
`230
`| TIMEouTT
`TIMEOUT
`
`
`
`PRINTING OF
`PREVIOUS PORTION
`FINISHED
`YES
`SEND NEXT
`PORTION
`TO PRINTER
`
`
`
`228
`
`
`
`
`
`Microsoft Corp. Exhibit 1006
`
`

`

`U.S. Patent
`
`Jan. 29, 2008
`
`Sheet 4 of 6
`
`US 7,324.228 B2
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`START
`
`PING
`CONTENT
`SOURCE
`
`2 4 0
`
`
`
`CALCULATE
`~242
`dATA TRANSFER
`SPEED
`
`
`
`DATA
`TRANSFER
`SPEEP > A
`
`YES
`
`DATA
`TRANSFER
`SPEEP > B
`
`
`
`246
`
`SET BLOCK
`SIZE = W
`
`SET BLOCK
`SIZE = X,
`WHERE X > W
`
`SET BLOCK
`SIZE = Y,
`WHERE Y > X
`
`252
`
`FIG.l.
`
`Microsoft Corp. Exhibit 1006
`
`

`

`U.S. Patent
`
`Jan. 29, 2008
`
`Sheet 5 of 6
`
`US 7,324.228 B2
`
`FIG. 5
`
`2TS 500
`START
``-- ~~
`
`Af
`
`-
`
`
`
`587
`
`GET BYTES
`FROM POS Y1
`TO POS Y2
`
`YES
`
`585
`( TIME OUT
`
`NO
`
`YES
`
`
`
`
`
`OBTAIN SIZE
`ORIGINATING | 510
`
`FHLE
`
`CREATE OUTPUT s
`FILE
`20
`
`GET BYTES
`FROM POS Y1
`TO POS Y2
`
`530
`
`540
`
`555
`--~ *
`
`END ) A \
`550
`|S Y1 > sº
`ORIGINATING
`FILE
`7
`A
`
`YES
`
`NO
`
`/ GET STILL
`DOWNLOADING
`
`580
`
`
`
`STORE
`BYTES FROM
`POS Y4 TO Y2
`IN OUTPUT
`FILE
`
`590
`
`
`
`
`
`NO
`
`IS SPEED >= 20
`|CBS OR NO
`CONCURRENT
`THREAD
`
`IS No.
`PARALLEL
`THREAD >= Z.
`
`YES
`
`Microsoft Corp. Exhibit 1006
`
`

`

`U.S. Patent
`
`Jan.29,2008
`
`Sheet6 0f6
`
`US 7,324,228 B2
`
`Aunanu
`
`-avnO
`
`ucov
`
`lune-alu-Councurlno-OOu..0000.o0.oalo-nau.-cult-n.-oncuh-Inn-o-ounc~toutoocl..I-cuocuovI-O'O-noIntact-00.nov00Ibo
`
`.99...on...v:-onucnI-oo.uto.onnoon-vu-a...so...two...o00......-con-000‘.cl...In;-oonaca:cc...aID.oIInto-luto..cocou-Iuccoon
`
`no.9...out.I‘oonoono.0-fiasco-c.Don-Io...anon-on..-uni-Ooolnon-Q-o'cOIacoal-0......aQ0lqclcnonoon-0.0.-Ito-0-IOI0000'001'III
`
`oncouqlvlto.Can’t-OIOOICIanI-I-oocac-luau-accus-uln-.Qo.¢Qo-nn-noon-.Uoootttutoocouo'u:-nonnatntooooao-Ilonocc
`
`o-I:o.0......-.ooouncnonoogacon-00:.cuounvo-cno...a:0.sou.cunt-non...-volunCIn-co-nono¢000-ococooucOI-l-occa-nncoco
`
`II
`
`
`
`wEu5InbilllllrununJl.mIb-in...uo‘lnuICQQoOOCiloos-c~1u~¢0§.I'-to...out.0.0.3.0...II-ool-ol-oocn-pnncucco-DOnuo.cud-JWQIo-iostouul-o
`
`ocacoooonO-ocou.cunt-acc-onu.oQCI.ctuhonII¢.toco0.-u9~'.I-.Du-ncoccvocuaco-o-OCIQOoOcc-no.no...guano-Il-oociaouodrou
`
`O
`
`d.l$’..l....‘l...|fl..l.l0'...II‘IIU..0..C.Q......'C.II'.‘.‘C.......'.IC'IC...'I.‘I....I.O..ll.....IIUCOO'CICII.."...I....I....II
`
`ItIIMgamma—mafia.35:5eE.
`
`Microsoft Corp. Exhibit 1006
`
`Microsoft Corp. Exhibit 1006
`
`
`

`

`US 7,324.228 B2
`
`1
`SYSTEM AND METHOD FOR
`DOWNLOADING AND FOR PRINTING DATA
`FROM AN EXTERNAL CONTENT SOURCE
`
`CROSS REFERENCE TO RELATED
`APPLICATION(S)
`This is a continuation in part application of application
`number Ser. No. 09/513,441 filed on Feb. 25, 2000 now
`abandoned which is hereby incorporated by reference
`herein.
`This application also claims foreign priority benefits
`under 35 U.S.C. § 119 of Great Britain application GB
`0021063.3 filed Aug. 25, 2000, which is herein incorporated
`by reference.
`
`10
`
`15
`
`TECHNICAL FIELD
`
`The present invention relates generally to downloading
`data from an external content source and, more particularly,
`to methods and systems that enable faster and more reliable
`downloading of data received from an external content
`SOUIrce.
`
`BACKGROUND
`
`20
`
`25
`
`In any Internet application download/upload of large data
`files has always been a major problem. There are several
`weird problems related to transfer of data through Internet
`protocols (IP) such as HTTP or FTP. Most of these problems
`are related to frequent error conditions that may occur
`during any long download/upload process. Errors like a
`broken transmission, lost connection, stalled transfer and so
`on are very common problems for large data file transfers.
`An example of a typical internet service where these
`problems become even worst is Print On Demand Services
`since very large data files (i.e. more than 10 Mb) are
`exchanged over the Internet.
`A Print On Demand (POD) Service generally allows a
`customer to buy printed reproductions of certain data files,
`which can be available on particular web sites or on the
`customer’s own computer. Such data files, once selected by
`the customer, are transferred, preferably via Internet, to a
`print service facility/provider for their reproduction, and
`often via a modem. For example Mediaflex.com (http://
`www.mediafiex.com) offers an Internet accessible printing
`service using a standard web site.
`Conventional print service providers (PSPs) comprise one
`or a plurality of printers in a singles physical location, e.g.
`a print shop or a print room, which provide to a customer a
`printing service for posters, brochures, leaflets, copies of
`photographs and the like. Typically a print service provider
`may comprise one or more large format printers capable of
`printing to large format size media, i.e. a HP Design.Jet
`printer.
`Printing speed is an important feature for printers of all
`types, in particular for printers at print service facilities. In
`a POD environment if a customer desires to buy a bitmap
`image that fills an 8%x11 inches page at 300 dots-per-inch
`(dpi) in 24 bit colour, this uncompressed image file would be
`over 22 Mb in size. Even compressing the file using JPEG
`compression would still leave a file several MB in size.
`Then, such file is download from the server where it is stored
`to the print service provider for its printing. With a modem
`operating at 56.6 Kb/s, this download would take several
`minutes, If working at full speed and not experiencing any
`of the above error cited conditions. During this time the
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`2
`printer sits idle as it waits to receive data and it will not start
`receiving data, i.e. printing. Clearly if the downloading
`process, for any of the above reasons, fails, the time the
`printers stay idle get bigger and bigger causing frustration
`and damages (printers not printing the required job) to the
`PSP’s Owner.
`However not only the downloading time has accrued
`problems, but also the rest of the traditional sequential
`printing process, which causes the growth of the total print
`time for each print to further unacceptable levels in particu
`lar for a PSP, which is trying to maximise the amount of time
`during which each printer is actually printing.
`With reference to FIG. 1, traditionally printing of a raster
`data has been based on a sequence of the following tasks:
`“download”, “load”, “process”, print”, “I/O’’. For instance a
`4 Mb JPEG (or TIFF, PhotoCD or the like) compressed
`raster file has been traditionally printed by:
`downloading: take 4 Mb of compressed raster data from
`the internet;
`loading: decompress 4 Mb data into 50 Mb memory data;
`processing: apply image processing to 50 Mb memory
`data;
`printing: send 50 Mb memory data through the print
`driver, eventually till the print spooler; and
`I/O: send 4 Mb-100 Mb (compressed/uncompressed) data
`through the I/O, till the printer, which eventually starts
`printing.
`According to FIG. 1, a PSP, by printing several images,
`has to repeat for each of these such sequence of tasks, which
`means that long period s of “printing process” time are
`always required. Then, there is a need, in particular for a
`PSP for methods and systems which can increase the
`number of prints that can be produced by each printer,
`optimising such printing process.
`Applicant realises that most of the above stated problems,
`occurring while downloading/uploading files from/to a
`server to/from a client computing device, are not likely to
`appear when small files (generally less than 1 Mb) are
`transferred.
`
`SUMMARY OF THE INVENTION
`
`According to a first aspect of the present invention there
`is provided a method to download a first data file to a
`computing device, comprising the steps of segmenting the
`data file available on a content source external to the user
`computing device into a plurality of portions; independently
`downloading to said computing device each of said plurality
`of portions; and assembling each downloaded portion into a
`second data file on said computing device, to mach such first
`data file.
`This means that only small sized “files” (portions) are
`download/uploaded via the telecommunication network, and
`that in the few occurrences of a failed transmission, only
`small sized files will be re-transmitted. This also means that
`even if the amount of time required for the downloading of
`a given time is not reduced in case of a “good connection”,
`it makes the total downloading time less dependent on the
`quality of the connection. In fact a bad connection may
`cause substantial increases of the downloading time due to
`the frequent need of retransmission of the same data.
`In addition, reducing the occurrence of transmission inter
`ruption it reduces the risk to not receive any error message
`advising that the downloading ha been interrupted for any
`reason, generating the dangerous believe that the download
`ended correctly and the file is complete. For instance it may
`happen if the computing device is protected by a fire wall.
`
`Microsoft Corp. Exhibit 1006
`
`

`

`3
`Preferably, the size of each portion is smaller than or
`equal to 1 Mb.
`The split of the full size of the data file to a number of
`portions having a smaller size allows to enjoy a transmission
`through a more reliable connection for the entire data file. In
`fact, experiments run by the Applicant showed that a good
`connection (above 15 Kb/s or more preferably 20 Kb/s) over
`the Internet can be guaranteed for few minutes (4 to 10 min)
`only (this corresponding to transmission of 1 Mb or below
`of data), then may experience degradation or other prob
`lems.
`More preferably, at least two portions of said plurality of
`portions have the same size.
`In preferred embodiment, the method comprises a step of
`creating said second data file in the computing device having
`size equal to the size of said first data file.
`The creation of the empty file is twofold: firstly it ensures
`before starting the download that there is enough space in,
`the memory store the data file; secondarily, it allows to
`employ a simpler method to re-assembly the independently
`downloaded portions of the original data file.
`Typically, said step of independently downloading com
`prises the step of downloading X bytes of said first data file
`starting from byte Y of said first data file and storing the
`downloaded X bytes into said second data file form byte Y
`25
`of said second data file.
`In a further preferred embodiment, the method comprises
`the step of downloading at least two of said plurality of
`portions by simultaneous threads. Preferably, 4 or more
`portions are downloaded by simultaneous threads
`30
`This allows to achieve the bigger reduction in the down
`loading time.
`More preferably, a further simultaneous thread is
`launched for independently downloading a further portion of
`said plurality of portions if a data transfer speed for any of
`35
`the current active thread(s) is bigger than or equal to Kb/s or
`more preferably bigger than 20 Kb/s.
`In this way, the method it is optimising the capacity of the
`line, i.e. a new concurrent thread, which may further reduce
`the downloading time, is not launched if is going to fill up
`the connection. This may cause a reduction of the speed time
`of some or all of the currently active threads, then eventually
`provoking an increase in the total downloading time.
`According to a second aspect of the present invention
`there is provided a method of printing a plurality of data files
`on a printer comprising the steps of (a) selecting a first data
`file to be printed from said plurality of data files; (b)
`downloading said selected data file from a content source
`external to a computing device connected to the printer, (c)
`once said selected data file is entirely downloaded into said
`computing device, processing said selected data file and
`sending the processed data to the printer for printing; and (d)
`during said steps of processing and sending, selecting the
`following data file from said plurality of data files and
`repeating steps (b) (c) and (d) for said selected data
`This allows the system to continuously download, load,
`process, print and transmit raster data without overheating
`the system and minimising the bottleneck. Although the total
`print time of each image is not improved at all (if previous
`embodiment(s) achieving the improved downloading are not
`included in this embodiment) the overall printing system
`delivers an optimal in/out throughput ratio.
`According to a third aspect of the present invention there
`is provided a method printing a plurality of data files on a
`printing device, comprising a computing unit and a printing
`unit, said method comprising the steps of (a) selecting a first
`data file to be printed from said plurality of data files; (b)
`
`4
`downloading said selected data file, by means of said
`computing unit, from a content source external to said
`printing device; (c) once said selected data file is entirely
`downloaded into said printing device, processing said
`selected data file and passing the processed data to the
`printing unit for printing; and (d) during said steps of
`processing and passing, selecting the following data file
`from said plurality of data files and repeating steps (b) (c)
`and (d) for said selected data file.
`According to a fourth aspect of the present invention there
`is provided a computer program product comprising com
`puter program means adapted to perform the method of
`downloading and/or printing a plurality of data files on a
`computing device or printing device when said program is
`run on the computing device or the printing device.
`According to a fifth aspect of the present invention there
`is provided a system comprising means adapted for carrying
`out all the steps of the method of downloading and/or
`printing a plurality of data files on a computing device or
`printing device.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`The invention can be better understood with reference to
`the following drawings. The components in the drawings are
`not necessarily to scale, emphasis instead being placed upon
`clearly illustrating the principles of the present invention.
`Moreover, in the drawings, like reference numerals desig
`nate corresponding parts throughout the several views.
`FIG. 1 illustrates steps performed by a conventional print
`service provider;
`FIG. 2 is a block diagram of a system for printing a data
`file on a printer according to one embodiment of the present
`invention;
`FIG. 3 is a flow chart of one embodiment of a method for
`printing a data file on a printer executed in the system of
`FIG. 2;
`FIG. 4 is a flow chart showing the steps for setting the
`block size of data based on the connection speed between the
`content source and the user’s system;
`FIG. 5 is a flow chart of one embodiment of a method for
`downloading a data file on a printer executed in the system
`of FIG. 2;
`FIG. 6 is a block diagram showing the downloading time
`when the method of FIG. 5 is applied; and
`FIG. 7 is a block diagram showing the full printing time
`achieved by a method of printing a plurality of data files on
`a printer executed in the system of FIG. 2.
`
`DETAILED DESCRIPTION OF THE
`INVENTION
`
`There will now be described by way of example the best
`mode contemplated by the inventors for carrying out the
`invention. In the following description of numerous specific
`details are set forth in order to provide a through under
`standing of the present invention. It will be apparent how
`ever, to one skilled in the art, that the present invention may
`be practiced without limitation to these specific details. In
`other instances, well known methods and structures have not
`been described in detail so as not to unnecessarily obscure
`the present invention.
`Whilst the following description applies to a plurality of
`computing devices and printing devices, including, small
`and large format printers, facsimiles, all-in-one devices or
`the like, communicating over the internet it will be under
`stood by the person skilled in the art, that in general such
`
`US 7,324.228 B2
`
`5
`
`10
`
`15
`
`20
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`Microsoft Corp. Exhibit 1006
`
`

`

`5
`devices may communicate over any communications net
`work, including virtual private networks (VPN’s), local area
`networks (LAN’s), mobile telecommunications networks or
`the like.
`In this specification, the term ‘communication network’
`includes any communications network over which a plural
`ity of computer entities can communicate with each other by
`transfer of electronic data files. Such networks include both
`packet switched and circuit switched networks, and hybrids
`of packed switched/circuit switched networks. Examples of
`such networks include the Internet, wide area networks
`(WAN’s). Various protocols such as internet protocol (IP);
`asynchronous transfer mode (ATM); wireless application
`protocol (WAP) and the like may be used.
`With reference to FIG. 2, a block diagram of a system 100
`for printing a data file on a printer according to one embodi
`ment of the present invention is shown. The system 100 may
`comprise, for example, a computer system as shown or a
`dedicated logical circuit that replaces the principle compo
`ments of the computer system, which can be integrated into
`a printing device. In the preferred embodiment, the system
`100 includes a processor 113 and a memory 116, both of
`which are electrically coupled to a local interface 119. The
`local interface 119 may comprise, for example, a data bus
`with an accompanying control bus as is known by those
`skilled in the computer art. The local interface 119 provides
`a conduit for the transfer of data between the various
`components attached thereto.
`The system 100 of FIG. 2 is shown in context with a
`server 106 and a network 109. The system 100 also com
`30
`prises a network interface 123 that electrically couples a
`network 109 to the local interface 119. The network inter
`face 123 makes data obtained from the server 106 via the
`network 109 available on the local interface 119. The
`network interface 123 may include, for example, a modem
`35
`or an appropriate network card that may be employed to
`transmit and receive data across the communications net
`work 109.
`The system 100 also includes one or more output inter
`faces 126 and one or more input interfaces 129. The output
`interfaces 126 electrically couple one or more output devices
`to the local interface 119. Examples of such output devices
`include a printer 128, a display device 133 and other output
`devices such as speakers, etc. The output interfaces 126 may
`include, for example, an interface card or other similar
`45
`device. Likewise, the input interfaces 129 electrically couple
`one or more input devices to the local interface 119 as
`shown. The input devices may include, for example, a
`keyboard 136 or a mouse 139. The memory 116 may
`comprise any one of or a combination of a number of
`memory devices, including both volatile and nonvolatile
`memory components. Volatile components are those that do
`not retain data values upon loss of power. Conversely,
`nonvolatile components retain data upon a loss of power.
`These volatile and nonvolatile components may include, for
`example, random access memory (RAM), read-only
`memory (ROM), hard disk drives, floppy disk drives, com
`pact disk drives, tape drives, and other memory components.
`A browser 143 and one or more drivers 145 for commu
`nicating with the output devices are stored on the memory
`60
`116. Upon execution by the processor 113, the logic of the
`browser 143 generates a browser graphical user interface
`that appears on the display device 133. The browser 143 may
`be employed to display various web pages that are down
`loaded to the system 100 via the network 109 as known in
`the art. Also stored on the memory 116 is a plug-in 147 that
`includes printing logic 149 for controlling the system 100 to
`
`50
`
`40
`
`55
`
`65
`
`US 7,324.228 B2
`
`5
`
`10
`
`15
`
`20
`
`25
`
`6
`print a data file on a printer in accordance with the present
`invention. Plug-in 147 further includes an upload logic 180
`and a download logic 181 for respectively uploading a data
`from the system memory system 116 to the server 106 or
`downloading data from the server to the system memory
`116. As explained in more detail below, in a first embodi
`ment the printing logic 149 gathers data received from a
`remote content source and sends portions of the data to the
`printer 128 via the driver 145.
`With continued reference to FIG. 2, the server 106 may
`include a processor 156 and a memory 159, both of which
`are electrically coupled to a local interface 163. The local
`interface 163 may comprise, for example, a data bus with an
`accompanying control bus as known in the art. The server
`106 also includes a network interface 166 that electrically
`couples the telecommunication network 109 to the local
`interface 163, thereby allowing data available from the
`network 109 to be manipulated by the processor 156 and
`stored in the memory 159. Also, data from the memory 159
`may be transmitted to a remote location on the network 109,
`such as the system 100, via the network interface 166. For
`example, a data file 169 stored on the memory 159 may be
`downloaded from the server 106 to the system 100 via the
`network 109 and ultimately displayed on the display device
`133, stored in memory 116 for future usage, or printed on the
`printer 128.
`The system 100 may receive a data file from a remote
`content source, such as the server 106, and begin printing the
`data from the file before the entire data file is received. In
`this manner, the actual printing of the data file begins soon
`after the print request from the user and is much less
`dependent upon the modem speed, network traffic and other
`factors.
`However, in a number of case it is still necessary to wait
`till the data 169 is entirely downloaded before starting any
`printing activity.
`This is true for example if the data file is:
`A PDF file, since all the multipage information are stored
`at the end of the file, thus it is necessary to receive the entire
`file before the printing logic is capable of the information for
`each page;
`A BMP or TIFF files, since the information are stored in
`the other way around, i.e. first the data to be printed last and
`last the data to be printed first. Then, it is necessary to wait
`that the downloading is ended to get the data which are
`going to be printed first and so starting the printing process;
`Or
`Any file comprising special actions to be performed or
`effects to be applied on the data image before printing which
`require completion of the download process to perform the
`action (or apply the effect) e.g. rotating the image for
`printing, for instance to optimise the media usage or for
`fitting with the media size.
`In the following with reference to FIG. 3, a preferred
`embodiment of the system and method of the present
`invention which will try to address the above problem will
`be described.
`As shown in FIG. 2, the remote content source may
`comprise the server 106 and the data file may be a full-page
`image file 169 residing in the memory 159 of the server. A
`user operating the computer system 100 may view on the
`display device 133 a web page 146 served from server 106.
`The web page 146 may include a thumbnail version 149 of
`the full-page image file 169. If the user desires to print the
`complete image file 169, the user may select the thumbnail
`version 149 and execute a print request.
`
`Microsoft Corp. Exhibit 1006
`
`

`

`7
`Turning now to FIG. 3, a flow chart of one embodiment
`of the system and method of the present invention is
`illustrated. Beginning with block 200, when the print request
`is executed the printing logic 149 controls the system 100 to
`begin receiving the image file 169 from the server 106 in the
`form of a data stream through the browser 143. In block 202
`the printing logic 149 gathers a first portion of data 40' from
`the stream and stores the first portion in a temporary storage
`segment 40 of the memory 116 (block 204). The printing
`logic 149 then progresses to block 206 and sends the first
`portion of data 40' to the printer 128 via the driver 145. Upon
`receiving the first portion of data 40', the printer 128 begins
`printing. Meanwhile, in block 208 the printing logic 149
`gathers a second portion of data 40" from the stream and
`stores the second portion in the memory 116 (block 210). It
`will be appreciated that the step of gathering a second
`portion of data 40" (block 208) may be performed concur
`rently with the step of sending the first portion of data 40' to
`the printer (block 206) or may be started while the first
`portion of data 40' is still printing. Additionally, this step and
`the other steps described herein are performed in the back
`ground such that the user is unaware that data is being
`continuously received.
`After storing the second portion of data 40" in memory
`(block 210), the printing logic 149 then proceeds to block
`212 to determine if the printer has finished printing the first
`portion of data 40'. If the printer has finished printing the
`first portion of data 40', then the printing logic 149 sends the
`second portion of data 40" to the printer 128 (block 214). If
`the printer has not finished printing the first portion of data
`40', the printing logic 149 progresses to block 216 and
`determines whether a printing timeout has expired, where
`the printing timeout comprises a predefined period of time.
`When the printing timeout expires, the printing logic 149
`again executes the query of block 212.
`It will be appreciated that in this embodiment the block
`size of the first, second and any additional portions of data
`may be a predefined value or may be adjusted based upon
`one or more factors, such as data transfer speed between the
`computer system 100 and the server 106. A more detailed
`explanation of one embodiment of logic that adjusts the
`block size of the data portions is provided below.
`After storing the second portion of data 40" in memory,
`the printing logic 149 also determines whether the entire
`data file 169 has been received from the server 106. More
`specifically, in block 220 of the illustrated embodiment the
`printing logic 149 determines whether a “destroy stream”
`command has been received. If a “destroy stream” command
`has been received, the printing logic 149 ends. If a “destroy
`stream” command has not been received, the printing logic
`149 progresses to block 222 and gathers the Next portion of
`data from the stream. The printing logic 149 then stores the
`Next portion in the temporary storage segment 40 of the
`memory 116 (block 224). The printing logic 149 then
`progresses to block 226 where it determines if the printer
`128 has finished printing the Previous portion of data.
`If the printer has finished printing the Previous portion,
`then the printing logic 149 sends the Next portion of data to
`the printer 128 (block 228)

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket