throbber
||||||||||||||Ill||||||||||Illlllllllllllllllll|||||lllllllllllllllllllllll
`US005566278A
`
`United States Patent
`[191
`5,566,278
`[11] Patent Number:
`
`Oct. 15, 1996
`[45] Date of Patent:
`
`Patel et al.
`
`[54] OBJECT ORIENTED PRINTING SYSTEM
`
`[75]
`
`Inventors: Jayendra N. Patel, Sunnyvale; Ryoji
`Watanabe, Cupertino; .Mark Peek, Ben
`Lomond; L. Bayles Holt, San Jose;
`Mahinda K. de Silva, Mountain View,
`all of Calif.
`
`[73] Assignee: Taligent, Inc., Cupertino, Calif.
`
`[21] Appl. No.: 111,238
`
`[22] Filed:
`
`Aug. 24, 1993
`
`Int. Cl.6 ..................................................... G06K 15/00
`[51]
`[52] U.S. Cl.
`............................................. 395/114; 395/112
`[58] Field of Search ..................................... 395/112, 114,
`395/117, 101, 115, 133, 138, 821, 831,
`834, 839, 844, 853, 854, 859, 870, 874,
`892, 280, 284, 285, 286, 292, 309, 116,
`500; 370/858
`
`[56]
`
`References Cited
`
`U.S. PATENT DOCUNLENTS
`
`4/1989 Duisberg .......................... 364/578
`4,821,220
`
`4,885,717 12/1989 Beck et al.
`..... 364/900
`
`1/1990 Friedman et al.
`4,891,630
`..... 340/706
`
`..... 364/200
`4,953,080
`8/1990 Dysart et a1.
`
`5,025,398
`6/1991 Nelson ...........
`395/112
`
`6/1991 Wendt et al. ........... 395/ 117
`5,025,399
`
`8/1991 Cunningham et al.
`..... 364/518
`5,041,992
`
`9/1991 Golub et al. ............ 364/478
`5,050,090
`
`. 400/121
`5,052,834 10/1991 Feistel et a1.
`
`..... 382/8
`5,060,276 10/1991 Morris et al.
`
`................................ 395/425
`5,075,848
`12/1992 Lai et a1.
`5,093,914
`3/1992 Coplien et al.
`......................... 395/700
`5,119,475
`6/1992 Smith et a1.
`..... 395/156
`
`..... 395/114
`5,123,757
`6/1992 Nagaoka et a1.
`
`..... 395/650
`5,125,091
`6/1992 Staas, Jr. et a1.
`
`7/1992 Risch .................. 395/800
`5,133,075
`........................... 395/575
`5,136,705
`8/1992 Stubbs et al.
`
`5,151,987
`5,181,162
`5,226,112
`5,287,194
`5,303,336
`5,323,393
`5,337,258
`5,353,388
`5,495,561
`
`9/1992 Abraham et al.
`....................... 395/575
`1/1993 Smith etal.
`......
`364/419
`
`7/1993 Mensing etal.
`395/114
`2/1994 Lobiondo ..........
`395/114
`
`4/1994 Kageyarna etal.
`395/114
`
`6/1994 Barrett etal. .....
`.. 370/858
`8/1994 Dennis ......
`395/575
`
`
`10/1994 Motoyama
`395/117
`........................................ 395/112
`2/1996 Holt
`
`OTHER PUBLICATIONS
`
`IBM Technical Disclosure Bulletin, V.34(10A), New York,
`US, pp. 912—193 “Use of Agraphical User Interface for
`Printers”.
`
`Primary Examiner—Arthur G. Evans
`Assistant Examiner—Dov Popovici
`_
`Anomey, Agent, or Finn—Keith Stephens; Bookstein &
`Kudirka
`
`[57]
`
`ABSTRACT
`
`An object-oriented printing system includes objects that
`provide query, data transfer, and control methods. The
`inventive object-oriented printing system communicates
`with the remainder of the operating system by means of a
`standard interface such as a grafport and printer drivers are
`provided for each printer type within the operating system.
`Thus, an application not only need not worry about the
`particular printer/computer combination with which it is to
`operate, but also need not have a built in document format~
`ting capability. The printing system includes objects that
`provide queries for device identification, optimized imaging,
`and printer status. Other objects are also provided for data
`transfer to bracket connections prior to sending and receiv-
`ing information. Still other objects are provided for cancel-
`ing a print job, pausing a job, and clearing out a job. Finally,
`an object is also provided for supporting multiple streams of
`communication to an imaging task.
`
`20 Claims, 12 Drawing Sheets
`
`
`
`
`
`
`
`APPLICATION
`PROGRAM
`
`
`
`'414
`
`
`
`
`
`
`
`
`
`
`
`
`OPERATING
`SYSTEM
`
`PRINTING
`INTERFACE
`
`i I
`
`aPRINTER
`
`420
`
`Petitioner Sipnet EU S.R.O. - Exhibit 1015 - Page 1
`
`Petitioner Sipnet EU S.R.O. - Exhibit 1015 - Page 1
`
`

`

`US. Patent
`
`Oct. 15, 1996
`
`Sheet 1 of 12
`
`5,566,278
`
`_________
`
`____________
`
`m:
`
`52coin.FGE
`
`3%
`
`“Suhw>m
`___________o:_N:“m2___________
`
`mwthn—KuhZF—n—
`
`02F<mma020_._.<0_4n_n_<
`
`.FKOQmm>ED
`
`521001.“.
`
`Nov
`
`Petitioner Sipnet EU S.R.O. - Exhibit 1015 - Page 2
`
`Petitioner Sipnet EU S.R.O. - Exhibit 1015 - Page 2
`
`
`
`

`

`US. Patent
`
`Oct. 15, 1996
`
`Sheet 2 of 12
`
`5,566,278
`
`CNN
`
`E"?moan:m.b~n~
`
`mthEn.
`
`5.10.“.
`
`KMHZEQ
`
`amazerEofi<m0
`
`mwN
`
`02_._.<mmn_0
`
`Ewhm>m
`
`ON
`
`saw—001n—
`
` N
`
`zO_._.<U_._n_n_<
`
`ON
`
`Petitioner Sipnet EU S.R.O. - Exhibit 1015 - Page 3
`
`Petitioner Sipnet EU S.R.O. - Exhibit 1015 - Page 3
`
`
`
`
`
`
`

`

`U
`
`w
`
`8
`
`
`mmE<o<_S_"><.Em_o 2Wiileiilliilili--i--l-ll---ii-ixilliiliiiiiliiiiliJ1__muu3__w.in“Em"h_mto,mmE<o<
`
`
`
`
` mofimmhz.“______%mE_w"mmE<o<“5,N5_O:_1_t__mmama"woo“xma"o;__“2m“um“:mo"e__t_Dom|\_.\a_8m__STilliiimmm.............v.omiiiiiNmm..............._
`
`
`
`
`
`
`
`
`
`mmm
`
`7.2,m65%
`
`
`
`5omm5><.Em_oom<om>mx
`
`Petitioner Sipnet EU S.R.O. - Exhibit 1015 - Page 4
`
`Petitioner Sipnet EU S.R.O. - Exhibit 1015 - Page 4
`
`

`

`US. Patent
`
`Oct. 15, 1996
`
`Sheet 4 of 12
`
`5,566,278
`
` Futh—m
`
`8v6............................................
`02F<mmm0\$56.28
`
`Suhw>w
`
`02F2En.
`
`mo<mmm.rz_
`
`hmOnE<m0
`
`
`
`mmvZO_._.<O_.._n_n_<
`
`E<mwomm
`
`Petitioner Sipnet EU S.R.O. - Exhibit 1015 - Page 5
`
`Petitioner Sipnet EU S.R.O. - Exhibit 1015 - Page 5
`
`
`
`
`
`
`

`

`US. Patent
`
`9
`
`h
`
`n
`
`s.
`
`6i
`
`$5.05
`
`,mmwNNmwomm
`
`5
`
`553
`
`
`
`thammm
`
`momcomo5vomNam
`
`com
`
`
`
`mm4oz<zmmthn.
`
`0%mEmE0Sm
`
`w.3?“,nw,m.ww.,H,.
`
`mm>mmwAmzz<IO
`
`thn.._.Z_m_n_
`
`NEI89.
`hszDUOQ
`
`5,566,278
`
`N8
`
`0mm
`
`m.65%
`
`Petitioner Sipnet EU S.R.O. - Exhibit 1015 - Page 6
`
`Petitioner Sipnet EU S.R.O. - Exhibit 1015 - Page 6
`
`
`
`
`

`

`US. Patent
`
`Oct. 15, 1996
`
`Sheet 6 of 12
`
`5,566,278
`
`mWEDGE
`
`E200
`
`5.52%355mnmoozmEzEnE
`
`._<U_mm¢:n_
`
`ENPZEQ
`
`20:55.9
`.05.5:56
`
`
`
`m...<._.wU_E<z>o
`
`.mthEQHt.".0
`
`
`
`Mambom0....
`
`.Okm
`
`
`
`20:5“.365200
`
`/mam—=0mg.
`
`S'EJO'WICI
`
`
`
`/Emacs.mszEnE
`
`mthEn—no.5.mmo
`
`
`
`$5.5mmEzE;
`
`whimhzmhmammm
`
`EMHZEah
`
`ZO_._.<m=GEZOU
`
`
`
`moq.PZEQ...
`
`20Fn=m0wmo
`
`
`
`E12285“.$5.5.
`
`:sz38..
`
`@222225
`
`Petitioner Sipnet EU S.R.O. - Exhibit 1015 - Page 7
`
`Petitioner Sipnet EU S.R.O. - Exhibit 1015 - Page 7
`
`

`

`US. Patent
`
`Oct. 15, 1996
`
`Sheet 7 of 12
`
`5,566,278
`
`Illll'IIAIzogmaomzoo5.5?v
`“||‘
`
`
`
`IIMommammpzfimw\\
`
`<mu»
`
`/I18..EEEi\\um2:<EINIIIIIH\moimzo
`
`\\I.II2::imo
`
`szsaooomzb
`
`
`
`\\0.5223232.5\/mosmoSEE
`
`2:52.”:
`
`
`
`“Ea—hmmDmDOm0..
`
`zoEBtFozMom.@255
`955m9.<thao»
`
`thDCmm
`
`
`
`5.325.EEEE
`
`Emzotfima.
`
`Em>mmm
`
`mmoa
`
`£2:<Emzov
`
`
`H¥w<262552.
`
`NEEautomamnfiamvoh<5335.
`
`Emmaofiazg35355::E:
`
`
`
`EizommmaESE“.,z.omhomzmmwmmn\|IlI
`
`.L.ZmE:QOQ=>m02m2
`
`
`
`EMFquoz<1mthEm
`
`kWEDGE
`
`how—domE<wm:._.IIlIll\
`
`J\
`
`etitioner Sipnet EU S.R.O. - Exhibit 1015 - Page 8
`
`p P
`
`4m22<20
`
`amzmtfiua\,._mzz<:oIIIlelele
`IIII.IllImosmo$5.5:homsmo
`
`
`
`‘nlIII
`
`ll,
`
`\
`
`Petitioner Sipnet EU S.R.O. - Exhibit 1015 - Page 8
`
`

`

`9
`
`1f0
`
`5,566,278
`
`mx,,m02<zoxmoafiU\--
`Hx-W.://i.\\/li\\\i\\ii..iil/
`
`i/AmmSz/‘ImmpzimwVIi[/\..\
`6:\\Il]/\\’//\\.l\
`2l\\
`8(Ix/Wiii//
`
`t/|./.w/hflBEE/EB.Si\\
`
`/I//\iiii
`
`\ZO_Fn__mOmMDmOZ.Z_N_n_F\\..\\
`\L\//i\\I/_/
`\\Il/\\il/.i\\(l/i
`‘H/m0_>mo._.z_mn:.li‘
`
`
`Qw<526<2EszEm-t---\---
`
`@O_F<EDO_H_ZOOEMPZ_ZQH_
`
`\
`
`u.6an
`
`Petitioner Sipnet EU S.R.O. - Exhibit 1015 - Page 9
`
`US. Patent
`
`{\‘01
`LlJ
`
`I E<[
`
`L
`<2
`
`0L
`
`L!
`'—
`
`OEL
`
`U
`L:
`b2]
`
`
`
`Petitioner Sipnet EU S.R.O. - Exhibit 1015 - Page 9
`
`

`

`US. Patent
`
`Oct. 15, 1996
`
`Sheet 9 of 12
`
`5,566,278
`
`
`mm._n_2<_._mmthm.ENDS”.I
`
`
`
`xwdc.02532:‘mam—DOm9.
`
`
`§<m00ma¥w<kmm2mommh
`
`._.Z_mn_
`
`¥Z_n_
`
`FZm—EDOOD
`
`4m22<IOm0_>mD._.
`
`wkwkzEm
`
`
`
`withO=2<Z>Q
`
`aGER
`
`Petitioner Sipnet EU S.R.O. - Exhibit 1015 - Page 10
`
`Petitioner Sipnet EU S.R.O. - Exhibit 1015 - Page 10
`
`

`

`US. Patent
`
`Oct. 15, 1996
`
`Sheet 10 of 12
`
`5,566,278
`
`PINK '
`
`PRINT
`REQUEST
`
`DOCUMENT
`
`PRINTER HANDLER
`JOB QUEUE ‘
`
`
`
`
`TRECEIVERTASKPROGRAM
`
`TIMAGING TASK
`
`TDEVICECHANNEL
`
`
`
`PRINTER'S
`DYNAMIC STATE
`
`MESSAGE
`STREAM
`
`PRINTER HANDLER
`
`PRINT
`REQUEST
`
`TDEVICECHANNEL
`
`TRECEIVERTASKPROGRAM
`
`JOB QUEUE “ TIMAGINGTASK
`
`PRINTER'S
`DYNAMIC STATE
`
`'
`
`FIG. 10
`
`Petitioner Sipnet EU S.R.O. - Exhibit 1015 - Page 11
`
`Petitioner Sipnet EU S.R.O. - Exhibit 1015 - Page 11
`
`

`

`US. Patent
`
`Oct. 15, 1996
`
`Sheet 11 of 12
`
`5,566,278
`
`
`
`
`PRINT
`
`
`PRINTER HANDLER
`
`
`
`REQUEST
`
`
`
`
`
`DYNAMIC STATE
`
`
`
`
`
`DOCUMENT
`
`TRECEIVERTASKPROGRAM
`
`JOB QUEUE
`
`TIMAGING TASK
`
`PRINTER'S
`
`TDEVICECHANNEL
`
`MESSAGE
`STREAM
`
`
`PRINT
`REQUEST
`PRINTER HANDLER
`
`
`TRECEIVERTASKPROGRAM
`
`JOB QUEUE.1
`
`TIMAGING TASK
`
`
`
`
`
`
`
`
`
`
`PRINTER'S
`DYNAMIC STATE
`
`TDEVICECHANNEL
`
`FIG. 11
`
`Petitioner Sipnet EU S.R.O. - Exhibit 1015 - Page 12
`
`Petitioner Sipnet EU S.R.O. - Exhibit 1015 - Page 12
`
`

`

`US. Patent
`
`Oct. 15, 1996
`
`Sheet 12 of 12
`
`5,566,278
`
`PRINT
`
`REQUEST
`
`DOCUMENT
`
`
`TDEVICECHANNEL
`DYNAMIC STATE
`
`
`
`
`
`
`
`
` PRINTER HANDLER
`
`
`
`TRECEIVERTASKPROGRAM
`
`JOB QUEUE
`
`TIMAGING TASK
`
`PRINTER'S
`
`FIG. 12
`
`NETWORK PRINTER,
`SUCH AS:
`- NOVELL IPX
`-PAP
`-TCPHP
`
`Petitioner Sipnet EU S.R.O. - Exhibit 1015 - Page 13
`
`Petitioner Sipnet EU S.R.O. - Exhibit 1015 - Page 13
`
`

`

`1
`OBJECT ORIENTED PRINTING SYSTEM
`
`COPYRIGHT NOTIFICATION
`
`Portions of this patent application contain materials that
`are subject to copyright protection. The copyright owner has
`no objection to the facsimile reproduction by anyone of the
`patent document or the patent disclosure, as it appears in the
`Patent and Trademark Office.
`
`FIELD OF THE INVENTION
`
`This invention generally relates to improvements in com-
`puter systems and, more particularly, to operating system
`software for printing documents.
`
`BACKGROUND OF THE INVENTION
`
`One of the most important aspects of a modern computer
`system is the ability to generate a “hard” copy of textual
`information or graphics which can be manipulated by the
`computer, visually displayed and stored. In order to accom-
`plish this task, a computer system generally includes a
`printing device which is electrically connected to the com-
`puter system and controlled by it in order to generate a
`permanent image on a selected medium. Examples of print—
`ing devices in common use are dot matrix, ink jet and laser
`printers which fix permanent images on paper under control
`of the computer. Although paper is the most common
`medium, other media are often used, such as photographic
`film.
`
`In order to print a document which is displayed on the
`monitor or stored within the memory, several actions must
`take place. First, since the print medium generally has a
`fixed size, the printable information must be divided into
`pieces which are small enough to fit on the selected medium,
`a process which is called pagination. In addition, the infor-
`mation may need to be reformatted from the format in which
`it is either displayed or stored into a format which is suitable
`for controlling the printing device to actually perform the
`printing on the medium. The reformatting in this latter step
`may include the insertion of control commands into the
`printable information in order to control the printing device.
`These added commands may, for example, include such
`commands as carriage returns, line feeds, form feeds, spaces
`and font information, all of which format the printable
`information. The reformatting may also include a conver-
`sion step in which a graphical display is converted into the
`form used by the printing device.
`The pagination and reformatting necessary to convert the
`printable information into a form which can be printed on a
`given printing device is generally performed by software
`programs running within the computer system. Software
`programs operating on a computing system generally can be
`categorized into two broad classes: operating systems which
`are usually specific to a type of computer system and consist
`of a collection of utility programs that enable the computer
`system to perform basic operations, such as storing and
`retrieving information on a peripheral disk memory, display-
`ing information on an associated video display, perfomring
`rudimentary file operations including the creation, naming
`and renaming of files and, in some cases, performing diag-
`nostic operations in order to discover or recover from
`malfunctions.
`
`By itself, the operating system generally provides only
`very basic functions and must be accompanied by an “appli-
`cation” program. The application program interacts with the
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`45
`
`50
`
`55
`
`65
`
`5,566,278
`
`2
`
`operating system to provide much higher level functionality
`and a direct interface with the user. During the interaction
`between the application program and the operating system,
`the application program typically makes use of operating
`system functions by sending a series of task commands to
`the operating system which then performs the requested
`tasks. For example, the application program may request
`that the operating system store particular information on the
`computer disk memory or display information on the video
`display.
`FIG. 1 is a schematic illustration of a typical computer
`system utilizing both an application program and an oper—
`ating system. The computer system is schematically repre-
`sented by dotted box 100, the application program is rep-
`resented by box 102 and the operating system by box 106.
`The interaction between the application program 102 and the
`operating system 106 is illustrated schematically by arrow
`104. This dual program system is used on many types of
`computers systems ranging from mainframes to personal
`computers.
`The method for handling printing, however, varies from
`computer to computer, and, in this regard, FIG. 1 represents
`a prior art personal computer system. In order to provide
`printing functions, the application program 102 interacts (as
`shown schematically by arrow 108) with printer driver
`software 110. Printer driver software 110 is generally asso—
`ciated with an application program and reformats and con-
`verts the printable information as necessary. Since each
`printer has its own particular format and control command
`set, which must be embedded in the text properly to control
`the printer, the printer driver software 110 must be specifi-
`cally designed to operate with one printer or one type of
`printer.
`The printer driver software 110 produces a reformatted
`information stream containing the embedded commands as
`shown schematically as arrow 114. The converted informa-
`tion stream is, in turn, applied to a printer port 112 which
`contains circuitry that converts the incoming information
`stream into electrical signals. The signals are, in turn, sent
`over a cable 116 to the printer 118. Printer 118 usually
`contains an “imaging engine” which is a hardware device or
`a ROM-programmed computer which takes the incoming
`information stream and converts it into the electrical signals
`necessary to drive the actual printing elements. The result is
`a “hard copy” output on the selected medium.
`While the configuration shown in FIG. 1 generally works
`in a satisfactory manner, it has several drawbacks. Since the
`printer driver software 110 is specific to each type of printer,
`a separate driver had to be provided for each printer type
`with which the application program is to operate. In the
`personal computer market,
`there are a large number of
`different printer types that are compatible with each type of
`computer and, therefore, as the number of printer types
`proliferated, so did the number of printer drivers which were
`required for each application program so that the program
`was compatible with most available printers. Therefore,
`application program developers had to provide larger and
`larger numbers of printer drivers with each application
`program, resulting in wasted time and effort and wasted disk
`space to hold the drivers, only one or two of which were of
`interest
`to any particular user. Unfortunately,
`if a user
`purchased an application program and it did not include a
`printer driver which could control the printer which the user
`owned, unpredictable operation occurred, resulting in pro-
`gram returns and user dissatisfaction.
`In addition, it was also necessary for each application
`program to provide high level printing functions such as
`
`Petitioner Sipnet EU S.R.O. - Exhibit 1015 - Page 14
`
`Petitioner Sipnet EU S.R.O. - Exhibit 1015 - Page 14
`
`

`

`3
`
`5,566,278
`
`pagination and page composition (including addition of
`margins, footnotes, figure numbers, etc.) if such functions
`were desired. Consequently, each application program
`developer had to spend time developing programs to imple-
`ment common printing functions which programs were
`specific to each application program, thereby resulting in
`duplicated effort and wasted time.
`In order to overcome the aforementioned difiiculties, the
`prior art arrangement was modified as shown in FIG. 2. In
`this new arrangement, computer system 200 is still con-
`trolled by application program 202 which cooperates, as
`shown schematically by arrow 204, with operating system
`206. However, in the system shown in FIG. 2 operating
`system 206 includes printer drivers 214. A separate printer
`driver must still be provided for each diiferent type of
`printer, but the printer drivers are sold with, and part of, the
`operating system. Consequently, it is not necessary for each
`application program to have its own set of printer drivers. An
`application program, such as application program 202, com-
`municates with the printer driver 214 by means of a stan—
`dardized interface 210. Two common interfaces are called
`“grafports” or “device contexts”. Illustratively, application
`program 202 provides information (shown schematically
`shown by arrow 208) in a standardized form to the grafport
`210. The grafport 210, in turn, forwards information, as
`shown by arrow 212, to printer driver 214 which reforrnats
`and converts the information as previously described into
`the format required by the printer. The output of printer
`driver 214 is provided (illustratively shown as arrow 216) to
`printer port 218 where it is converted to electrical signals
`that are transmitted, via cable 220, to the printer 222.
`The configuration shown in FIG. 2 has the advantage that
`the application program developer need not worry about the
`specific computer and printer combination on which the
`program will ultimately run in order to provide printing
`capabilities to the application program. However, it still
`sufi°ers from the drawback that, if desired, high level printing
`capabilities such as pagination and page composition must
`still be designed into each application program,
`thereby
`duplicating program code and wasting programming
`resources.
`
`SUMMARY OF THE INVENTION
`
`The foregoing problems are overcome and the foregoing
`object is achieved in an illustrative embodiment of the
`invention in which an object—oriented printing interface
`includes document grouping or folio objects which, once
`instantiated provide complete and flexible printing capabil-
`ity that
`is transparent
`to the application program. The
`printing interface objects include objects that provide query,
`data transfer, and control methods.
`
`The inventive object-oriented printing interface commu-
`nicates with the remainder of the operating system by means
`of a standard interface such as a grafport and printer drivers
`are provided for each printer type within the operating
`system. Thus, an application not only need not worry about
`the particular printer/computer combination with which it is
`to operate, but also need not have a built in document
`formatting capability. The printing system includes objects
`that provide queries for device identification, optimized
`imaging, and printer status. Other objects are also provided
`for data transfer to bracket connections prior to sending and
`receiving information. Still other objects are provided for
`canceling a print job, pausing a job, and clearing out a job.
`Finally, an object is also provided for supporting multiple
`streams of communication to an imaging task.
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`4o
`
`45
`
`50
`
`55
`
`60
`
`65
`
`4
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`The above and further advantages of the invention may be
`better understood by referring to the following description in
`conjunction with the accompanying drawings, in which:
`FIG. 1 is a schematic block diagram of a prior art
`computer system showing the relationship of the application
`program to the operating system and the printer driver in the
`prior art;
`FIG. 2 is a schematic block diagram of a modification of
`the prior art system shown in FIG. 1 to allow the application
`program to interface to a standard printing interface in the
`prior art;
`FIG. 3 is a block schematic diagram of a computer
`system, for example, a personal computer system on which
`the inventive object-oriented printing interface operates in
`accordance with a preferred embodiment;
`FIG. 4 is a schematic block diagram of modified computer
`system in which the operating system includes an inventive
`object-oriented printing interface in accordance with a pre-
`ferred embodiment;
`
`FIG. 5 is a block schematic diagram of the information
`paths and hardware by which printable information is chan-
`neled through intermediate storage to a print device in
`accordance with a preferred embodiment;
`FIG. 6 shows how the personality document is used by
`difierent parts of the printing system in accordance with a
`preferred embodiment;
`FIG. 7 details the printer handler components and their
`interactions in accordance with a preferred embodiment;
`FIG. 8 illustrates the relationship between various printer
`handler classes in accordance with a preferred embodiment;
`FIG. 9 is a block diagram of local printing in accordance
`with a preferred embodiment;
`FIG. 10 is a block diagram of remote imaging in accor-
`dance with a preferred embodiment;
`FIG. 11 is a block diagram of local imaging in accordance
`with a preferred embodiment; and
`FIG. 12 is a block diagram of local imaging to a net-
`worked printer.
`
`DETAILED DESCRIPTION OF THE
`ILLUSTRATIVE EMBODIMENTS
`
`The invention is preferably practiced in the context of an
`operating system resident on a personal computer such as
`the IBM, PS/2, or Apple, Macintosh, computer. A represen-
`tative hardware environment is depicted in FIG. 3, which
`illustrates a typical hardware configuration of a computer
`300 in accordance with the subject invention. The computer
`300 is controlled by a central processing unit 302, which
`may be a conventional microprocessor; a number of other
`units, all interconnected via a system bus 308, are provided
`to accomplish specific tasks. Although a particular computer
`may only have some of the units illustrated in FIG. 3 or may
`have additional components not shown, most computers will
`include at least the units shown.
`
`Specifically, computer 300 shown in FIG. 3 includes a
`random access memory (RAM) 306 for temporary storage of
`information, a read only memory (ROM) 304 for permanent
`storage of the computer’s configuration and basic operating
`commands and an input/output (I/O) adapter 310 for con-
`necting peripheral devices such as a disk unit 313 and printer
`314 to the bus 308, via cables 315 and 312, respectively. A
`user interface adapter 316 is also provided for connecting
`
`Petitioner Sipnet EU S.R.O. - Exhibit 1015 - Page 15
`
`Petitioner Sipnet EU S.R.O. - Exhibit 1015 - Page 15
`
`

`

`5
`
`6
`
`5,566,278
`
`input devices, such as a keyboard 320, and other known
`interface devices including mice, speakers and microphones
`to the bus 308. Visual output is provided by a display adapter
`318 which connects the bus 308 to a display device 322 such
`as a video monitor. The workstation has resident thereon and
`
`is controlled and coordinated by operating system software
`such as the Apple System/7, operating system.
`In a preferred embodiment, the invention is implemented
`in the 01+ programming language using object—oriented
`programming techniques. C-i—i- is a compiled language, that
`is, programs are written in a human-readable script and this
`script is then provided to another program called a compiler
`which generates a machine-readable numeric code that can
`be loaded into, and directly executed by, a computer. As
`described below, the CH- language has certain characteris-
`tics which allow a software developer to easily use programs
`written by others while still providing a great deal of control
`over the reuse of programs to prevent their destruction or
`improper use. The C—H— language is well-known and many
`articles and texts are available which describe the language
`in detail. In addition, C++ compilers are commercially
`available from several vendors including Borland Intema—
`tional, Inc. and Microsoft Corporation. Accordingly, for
`reasons of clarity, the details of the C-i—l- language and the
`operation of the CH compiler will not be discussed further
`in detail herein.
`
`As will be understood by those skilled in the art, Object-
`Oriented Programming (OOP) techniques involve the defi—
`nition, creation, use and destruction of “objects”. These
`objects are software entities comprising data elements and
`routines, or functions, which manipulate the data elements.
`The data and related functions are treated by the software as
`an entity and can be created, used and deleted as if they were
`a single item. Together, the data and functions enable objects
`to model virtually any real-world entity in terms of its
`characteristics, which can be represented by the data ele-
`ments, and its behavior, which can be represented by its data
`manipulation functions. In this way, objects can model
`concrete things like people and computers, and they can also
`model abstract concepts
`like numbers or geometrical
`designs.
`Objects are defined by creating “classes” which are not
`objects themselves, but which act as templates that instruct
`the compiler how to construct the actual object. A class may,
`for example, specify the number and type of data variables
`and the steps involved in the functions which manipulate the
`data. An object is actually created in the program by means
`of a special function called a constructor which uses the
`corresponding class definition and additional information,
`such as arguments provided during object creation, to con-
`struct the object. Likewise objects are destroyed by a special
`function called a destructor. Objects may be used by using
`their data and invoking their frmctions.
`The principle benefits of object-oriented programming
`techniques arise out of three basic principles; encapsulation,
`polymorphism and inheritance. More specifically, objects
`can be designed to hide, or encapsulate, all, or a portion of,
`the internal data structure and the internal functions. More
`
`particularly, during program design, a program developer
`can define objects in which all or some of the data variables
`and all or some of the related functions are considered
`“private” or for use only by the object itself. Other data or
`functions can be declared “public” or available for use by
`other programs. Access to the private variables by other
`programs can be controlled by defining public functions for
`an object which access the object’s private data. The public
`functions form a controlled and consistent interface between
`
`10
`
`15
`
`20
`
`25
`
`3O
`
`35
`
`45
`
`50
`
`55
`
`65
`
`the private data and the “outside” world. Any attempt to
`write program code which directly accesses the private
`variables causes the compiler to generate an error during
`program compilation which error stops the compilation
`process and prevents the program from being run.
`Polymorphism is a concept which allows objects and
`functions which have the same overall format, but which
`work with different data, to function differently in order to
`produce consistent results. For example, an addition func—
`tion may be defined as variable A plus variable B (A+B) and
`this same format can be used whether the A and B are
`numbers, characters or dollars and cents. However,
`the
`actual program code which performs the addition may differ
`widely depending on the type of variables that comprise A
`and B. Polymorphism allows three separate function defi—
`nitions to be written, one for each type of variable (numbers,
`characters and dollars). After the functions have been
`defined, a program can later refer to the addition function by
`its common format (A+B) and, during compilation, the CH-
`compiler will determine which of the three functions is
`actually being used by examining the variable types. The
`compiler will
`then substitute the proper function code.
`Polymorphism allows similar
`functions which produce
`analogous results to be “grouped” in the program source
`code to produce a more logical and clear program flow.
`The third principle which underlies object-oriented pro-
`gramming is inheritance, which allows program developers
`to easily reuse pre-existing programs and to avoid creating
`software from scratch. The principle of inheritance allows a
`software developer to declare classes (and the objects which
`are later created from them) as related. Specifically, classes
`may be designated as subclasses of other base classes. A
`subclass “inherits” and has access to all of the public
`functions of its base classes just as if these function appeared
`in the subclass. Alternatively, a subclass can override some
`or all of its inherited functions or may modify some or all of
`its inherited functions merely by defining a new function
`with the same form (overriding or modification does not
`alter the function in the base class, but merely modifies the
`use of the function in the subclass). The creation of a new
`subclass which has some of the functionality (with selective
`modification) of another class allows software developers to
`easily customize existing code to meet their particular needs.
`Although object-oriented programming offers significant
`improvements over other programming concepts, program
`development still requires significant outlays of time and
`effort, especiallyif no pre-existing software programs are
`available for modification. Consequently,
`a prior art
`approach has been to provide a program developer with a set
`of pre-defined, interconnected classes which create a set of
`objects and additional miscellaneous routines that are all
`directed to performing commonly-encountered tasks in a
`particular environment. Such pre—defined classes and librar-
`ies are typically called “application framewor
`” and essen-
`tially provide a pre-fabricated structure for a working appli-
`cation.
`
`For example, an application framework for a user inter-
`face might provide a set of predefined graphic interface
`objects which create windows, scroll bars, menus, etc. and
`provide the support and “default” behavior for these graphic
`interface objects. Since application frameworks are based on
`object-oriented techniques, the pre—defined classes can be
`used as base classes and the built—in default behavior can be
`inherited by developer—defined subclasses and either modi-
`fied or overridden to allow developers to extend the frame-
`work and create customized solutions in a particular area of
`expertise. This object-oriented approach provides a major
`
`,
`
`Petitioner Sipnet EU S.R.O. - Exhibit 1015 - Page 16
`
`Petitioner Sipnet EU S.R.O. - Exhibit 1015 - Page 16
`
`

`

`7
`
`8
`
`5,566,278
`
`advantage over traditional programming since the program-
`mer is not changing the original program, but rather extend-
`ing the capabilities of the original program. In addition,
`developers are not blindly working through layers of code
`because the framework provides architectural guidance and
`modeling and, at the same time, frees the developers to
`supply specific actions unique to the problem domain.
`There are many kinds of application frameworks avail-
`able, depending on the level of the system involved and the
`kind of problem to be solved. The types of frameworks range
`from high-level application frameworks that assist in devel-
`oping a user interface, to lower-level frameworks that pro-
`vide basic system software services such as communica-
`tions,
`printing,
`file
`systems
`support,
`graphics,
`etc.
`Commercial examples of application frameworks include
`MacApp (Apple), Bedrock (Symantec), OWL (Borland),
`NeXT Step App Kit (NEXT), and Smalltalk-80 MVC (Parc-
`Place).
`While the application framework approach utilizes all the
`principles of encapsulation, polymorphism, and inheritance
`in the object layer, and is a substantial improvement over
`other programming techniques, there are difficulties which
`arise. These difliculties are caused by the fact that it is easy
`for developers to reuse their own objects, but it is difficult for
`the developers to use objects generated by other programs.
`Further, application frameworks generally consist of one or
`more object “layers” on top of a monolithic operating
`system and even with the flexibility of the object layer, it is
`still often necessary to directly interact with the underlying
`operating system by means of awkward procedural calls.
`In the same way that an application framework provides
`the developer with prefab functionality for an application
`program, a system framework, such as that included in a
`preferred embodiment, can p

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