`I-"'
`\0
`--.;::,
`.......
`I-'
`
`c:)
`I-"'
`6
`.......
`
`C:
`.
`~
`.
`__ "ti
`~
`0
`
`Attorney's Ref. No. 1282-002/MMM
`
`Express Mail Label No. EL817817767US
`DATE OF DEPOSIT: November 1, 2001
`
`f+
`
`~(cid:173)ON
`Ii:~,
`elf~·
`!:>t:::JI
`.,,_,~
`.... -=
`~ ... ~
`_......,___,
`""~
`;;:ll:
`:::::::::
`
`..
`
`IN THE UNITED STATES PATENT AND TRADEMARK OFFICE
`
`Box PATENT APPLICATION
`ASSISTANT COMMISSIONER FOR PATENTS
`Washington, D.C. 20231
`
`Transmitted herewith for filing is the patent application of:
`Inventor: Chang et al.
`
`For: System for Device-to-Device Pervasive Digital Output
`
`Enclosed are:
`[X]
`Patent application with 54 pages of specification, 1 O pages of claims, an abstract, and 13
`sheets of drawings.
`Combined Declaration and Power of Attorney.
`Assignment and Assignment Cover Sheets
`
`[X]
`[X]
`
`CLAIMS AS FILED
`
`Number
`Filed
`
`Number
`Extra
`
`Rate
`
`96
`
`6
`
`-20
`
`-3
`
`76
`
`3
`
`X $9.00 =
`
`X $42.00 =
`
`For
`
`Total claims
`
`Independent
`Claims
`
`TOT AL FILING FE:E
`
`Basic Fee
`$370.00
`
`$684
`
`$126
`
`$1180
`
`[
`
`]
`
`[X]
`
`The Commissioner is hereby authorized to charge any additional fees which may be
`required in connection with the filing of this application and recording any assignment
`filed herewith, or credit over-payment, to Account No. ___ . A copy of this sheet is
`enclosed.
`A check in the amount of $1220 to cover [X] filing fee and [X] assignment recordal fee is
`enclosed.
`
`Respectfully submitted, Plfl_~
`
`Mark M. Meininger
`Registration No. 32,428
`
`IPSOLON LLP
`805 SW Broadway #27 40
`Portland, Oregon 97205
`Telephone: (503) 249-7066
`
`TRANSMITTAL - PAGE 1
`
`-1-
`
`ROKU 1010
`
`
`
`1282-002/MMM
`
`System for Device-to-Device Pervasive Digital Output
`
`Technical Field of invention
`
`[0001]
`
`Present invention relates to device synchronization and digital
`
`output and, in particular, to providing pervasive output for information
`
`apparatuses.
`
`Summary of the Invention
`
`[0002]
`
`An Information apparatus refers to both stationary computers and
`
`mobile computing devices (pervasive devices). Examples of information
`
`apparatuses include without limitation desktop computers, laptop
`
`computers, palmtop (hand-held) computers, personal digital assistants
`
`(PDAs), Internet-enabled cellular phones, smart phones, pagers, Internet
`
`appliances, e-books, digital pads, Web pads, and digital capturing
`
`devices (e.g., digital cameras and video cameras). An output device 140
`
`may include a fax machine, printer, copier, image or video display
`
`device, projector, and an audio output device.
`
`[0003]
`
`For simplicity and convenience, hereafter, the following description
`
`may refer to an output device as a printer and an output process as
`
`printing. However, it should be understood that the term printer and
`
`printing is used as a specific example to simplify description or may be
`
`one exemplary embodiment. The reference to printing used here is
`
`intended to be applied or extended to the larger scope and definition of
`
`output devices and should not be construed as restricting the scope and
`
`practice of present invention.
`
`[0004]
`
`Fueled by ever-increasing bandwidth and processing power and
`
`ever-increasing numbers of wireless mobile devices and available
`
`software applications for pervasive devices, millions of users are or will
`
`be creating, downloading, and transmitting content and information using
`
`their pervasive computing devices. Unfortunately, the small display
`
`screen of a pervasive device may not provide a good viewing
`
`1
`
`-2-
`
`ROKU 1010
`
`
`
`1282-002/MMM
`
`experience. As a result, there is a need to allow users to easily output
`
`content and information from their pervasive computing devices to any
`
`output device. People need to output directly and conveniently from their
`
`pervasive information apparatus, without depending on synchronizing
`
`with a stationary computer (e.g., desktop personal computer) for printing,
`
`as an example.
`
`[0005]
`
`To illustrate, an information worker at an airport receiving e-mail in
`
`his hand-held computer may want to walk up to a nearby printer or fax
`
`machine to have his e-mail printed. In addition, the mobile worker may
`
`also want to print a copy of his to-do list, appointment book, business
`
`card, and his flight schedule from his mobile device. As another
`
`example, a traveler stopping at a convenience store, gas station, or
`
`kiosks may want to print out a copy of the map he just downloaded from
`
`the Internet using his Internet enable wireless phone (information
`
`apparatus). In still another example, an individual who just finished a
`
`stock trade or performed an e-commerce transaction using his PDA
`
`(information apparatus) may want to print out a copy of his transaction
`
`confirmation, invoice or receipt. In yet another example, a user who
`
`takes a picture with a digital camera may want to easily print it out to a
`
`nearby printer.
`
`[0006]
`
`Conventionally, an output device (e.g., a printer) is connected to an
`
`information apparatus via a wired connection such as a cable line. A
`
`wireless connection is also possible by using, for example, radio
`
`communication or infrared communication. Regardless of whether the
`
`connection is wired or wireless, a user must first install in the information
`
`apparatus a printer driver corresponding to a particular printer model and
`
`make. Using a device-dependent or specific driver, the information
`
`apparatus may process output content or a digital document into the
`
`printer input space. The printer input space corresponds to the type of
`
`input that a printer understands (herein referred to as print data). For
`
`example, the printer input space or print data may include a printer-
`
`2
`
`-3-
`
`ROKU 1010
`
`
`
`1282-002/MMM
`
`specific input format (e.g., image, graphics, file, data format), encoding,
`
`page description language, markup language, instructions, protocols or
`
`data that can be understood or used by a particular printer make and
`
`model.
`
`[0007]
`
`Print data may be proprietary or a published standard or a
`
`combination of the two. A printer input space or print data is therefore, in
`
`general, device dependent. Different printer models may specify their
`
`own input, designed or adopted for optimal operation by the printer
`
`manufacturer according to a specification. Consequently, different
`
`printers usually require use of specific printer drivers for accurate
`
`printing. A device driver (printer driver in this example) may control,
`
`manage, communicate, and output print data to a printer. Sometimes,
`
`instead of using a printer or device driver, the device driving feature may
`be included as part of an application software. The application in this
`example may process the document and communicate directly with an
`
`output device without utilizing a device driver. Print data is an output
`
`data sent to a printer. However, the term print data used here is
`
`intended to be applied or extended to the larger scope and definition of
`
`output data which applies to any output devices including display,
`
`projection and audio devices, and this should not be construed as
`
`restricting the scope and practice of present invention.
`
`[0008]
`
`Installation of a printer driver or application may be accomplished
`
`by, for example, manual installation using a CD or floppy disk supplied
`
`by the printer manufacturer. Or alternatively, a user may be able to
`
`download that particular driver or application from a network. For a
`
`home or office user, this installation process may take anywhere from
`
`several minutes to several hours depending on the type of driver and
`
`user's sophistication level with computing devices and networks. Even
`
`with plug-and-play driver installation, the user is still required to execute
`
`a multi-step process for each printer. This installation and configuration
`
`process adds a degree of complexity and work to end-users who may
`
`3
`
`-4-
`
`ROKU 1010
`
`
`
`1282-002/MMM
`
`otherwise spend their time doing other productive or enjoyable work.
`
`Moreover, many unsophisticated users may be discouraged from adding
`
`new peripherals (e.g., printers, scanners, etc.) to their home computers
`
`or networks to avoid the inconvenience of installation and configuration.
`
`Therefore, there is a need to provide a way for a user to more
`
`conveniently or easily output digital content to an output device without
`
`the inconvenience of manually finding and installing new device drivers
`
`or printer drivers. Installation of printer drivers, if needed, should be
`
`more automatic and transparent to end-users.
`
`[0009]
`
`In addition, conventional printing methods may pose significantly
`
`higher challenges and difficulties for mobile device users than for home
`
`and office computer users: The requirement for pre-installation of a
`
`device-dependent driver is in conflict with the concept of mobile
`
`(pervasive) computing and output. For example, a mobile user may want
`
`to print e-mail, PowerPoint® presentation documents, web pages, or
`
`other documents in an airplane or at an airport, gas station, convenience
`
`store, kiosk, hotel, conference room, office, home, etc. It is highly
`
`unlikely that the user would find at any of these locations a printer of the
`
`same make and model as is at the user's base station. Therefore, the
`
`user may have to install and configure a printer driver each time at each
`
`of these locations before printing. Alternatively, it is also not a viable
`
`option usually to pre-install all of the possible hundreds, or even
`
`thousands, of printer drivers available to the user's information
`
`apparatus. A mobile information device usually has limited memory and
`
`storage capacity. As a consequence, the user would currently be
`
`required to install and configure a printer driver each time at each such
`
`different location before printing. Moreover, the user may not want to be
`
`bothered with looking for a driver or downloading it and installing it just to
`
`print out one page of email at the airport. This is certainly an undesirable
`
`and discouraging process to promote pervasive or mobile computing.
`
`Therefore, a more convenient or automated printing solution is needed
`
`4
`
`-5-
`
`ROKU 1010
`
`
`
`1282-002/MMM
`
`so that a user can simply walk up to a printer and easily print a digital
`
`document without having to install or pre-install a particular printer driver.
`
`[0010]
`
`Network printing may partially solve the above problem in a local
`
`area network (LAN). Network printing was first motivated to allow people
`
`to share printing resources within a network. Printers are often
`
`connected to the network using a network adapter or network card. Print
`
`servers may be used to manage print jobs (such as spooling). Different
`
`clients may send print jobs to the print server for queuing, prioritizing and
`
`managing. The driver of each networked printer may be stored in the
`
`network (for example, in an application server) and available for clients to
`
`download.
`
`[0011]
`
`The above configuration is often used in a local area network (LAN)
`
`such as in an office building. An office worker with a mobile or static
`
`computing device connected to this network may be able to send a print
`
`job to any printer that is connected to the same network. He either has
`
`the necessary printer drivers pre-installed in his device or he can
`
`download a driver from the LAN before printing to a particular printer.
`
`But once outside of the office building, or meaning outside of his wired or
`
`wireless network coverage, the office worker can no longer print to any
`
`printer he or she desires.
`
`[0012]
`
`In one instance, it has been argued that the idea of local network
`
`printing can be further extended to the Internet as the larger and public
`
`network. In an ideal situation, every printer and every computing device
`
`(information apparatus) is connected to the same network, for example
`
`the Internet. But in reality, extending network printing to a big super(cid:173)
`
`network or the Internet is still unavailable.
`
`[0013]
`
`Nevertheless, one drawback of network printing may be higher
`
`cost. To connect the output devices and information apparatus to the
`
`same network, additional hardware or software may need to be installed.
`
`And therefore, the costs of output devices may be raised substantially.
`
`In addition to hardware and software costs there are also service
`
`5
`
`-6-
`
`ROKU 1010
`
`
`
`1282-002/MMM
`
`charges to maintain the connectivity to a large network such as the
`
`Internet. Furthermore, a large permanent network infrastructure would
`
`need to be built and made available to each location.
`
`[0014]
`
`In addition to costs, another drawback of network printing is
`
`reliability. Network printing requires perfect function in any part of the
`
`chain of network hardware, software and services. If any component of
`
`the link is down or not fully functional, for any reason, printing service
`
`may be unavailable, interrupted or result in inaccuracies.
`
`[0015]
`
`Finally, another drawback of network printing is the issue of
`
`security. A user does not feel secure if confidential documents or
`
`information must pass through the entire network before reaching the
`
`printer immediately in front of him or her. There may be the fear that the
`
`confidential document could be intercepted, viewed, copied or stored
`
`within any segment of the connected network. There can also be the
`
`fear that the document could actually be printed to a different printer
`
`instead of the intended one. This problem may be caused by, for
`
`example, errors in directory service software, a software component that
`
`is not up-to-date or corrupted, inconsistent or incompatible software
`
`and/or hardware versions, or any combination of human, software,
`
`network, or hardware errors. There is also risk when downloading a
`
`software component (e.g., printer driver) from the network to an
`
`information apparatus. This software component maybe damaged,
`
`corrupted or carrying a malicious attack or virus or otherwise modified by
`
`hackers. A damaged software component can disrupt or corrupt the
`
`user's information apparatus. Finally, some internal corporate or local
`
`networks may reject unknown documents trying to reach their printers
`
`and other output devices protected within a firewall. It is therefore more
`
`desirable if the communication and exchange of information are done
`
`locally between users' information apparatus and the selected output
`
`device, all within the range of the users watchful, and inspecting eyes.
`
`6
`
`-7-
`
`ROKU 1010
`
`
`
`1282-002/MMM
`
`[0016]
`
`Accordingly, the present invention provides a convenient method of
`
`digital printing in which a user need not pre-install a device-dependent
`
`printer driver on an information apparatus in order to print.
`
`[0017]
`
`This invention can provide an easy, friendly and convenient
`
`process tor printing. Unlike conventional printing, a user need not
`
`manually install a printer driver from a CD, floppy disk, or download it
`
`somewhere from an existing static network. With the apparatus and
`
`process of present invention, all the software components, data, or
`
`printer drivers can be loaded to the information apparatus through easy
`
`and automatic synchronization process between the information
`
`apparatus and a printer having an output controller of present invention.
`
`As a result, a mobile user with an information apparatus equipped with
`
`an output manager of present invention can print pervasively virtually at
`
`any time, anywhere, to any printer.
`
`[0018]
`
`Furthermore, this invention can provide a convenient method
`
`allowing users to print to any printer with or without connection to a static
`
`permanent network tor both the information apparatus and the output
`
`device. Through local communication and synchronization directly
`
`between the information apparatus and the output device, hardware and
`
`software installation for static network connectivity may not be
`
`necessary. Therefore printing costs may be reduced.
`
`[0019]
`
`In addition, this invention can provide a more reliable printing
`
`method than conventional remote network printing methods or
`
`processes. By communicating locally between an information apparatus
`
`and an output device, the printing process does not depend on the
`
`perfect function of each element of a network chain. This chain may
`
`include, tor example, network connections, network servers, application
`
`servers, service providers and application providers. Therefore, the
`
`chance of a successful printing under present invention is greatly
`
`enhanced as processing and communication involves fewer elements.
`
`7
`
`-8-
`
`ROKU 1010
`
`
`
`1282-002/MMM
`
`[0020]
`
`This invention can further provide a more secure printing process
`
`than conventional network printing processes and methods. Uploading
`
`or downloading data or software components such as a printer driver
`
`from an output device immediately in front of user provides a more
`
`secure feeling than dealing with components from a remote location in
`
`the network. Components stored in a large network may be perceived to
`
`have more exposure to tampering (e.g., contaminated with a virus). An
`
`erroneous module or component in the network caused by a human or
`
`software or hardware error may also disrupt the function of the
`
`information apparatus. Furthermore, sending a confidential digital
`
`document or print data directly to the printer in front of user provides a
`
`more secure feeling than if the document is routed through a large
`
`network with a plurality of users and servers. There are greater
`
`possibilities of the document being intercepted, viewed, copied, stored or
`
`finally printed on a wrong printer in conventional network printing.
`
`[0021]
`
`In accordance with present invention, an electronic system and
`
`method of pervasive output allow an information apparatus to output
`
`digital content conveniently to virtually any output device. The
`
`information apparatus may be equipped with a central processing unit,
`
`input/output control unit, storage unit, memory unit, and wired or wireless
`
`communication unit or adapters. The information apparatus preferably
`
`also includes output manager that may be implemented as application
`
`software, a client application, or device driver (printer driver in case of
`
`printer). The output manager may include management and control
`
`capabilities with hardware and software components including for
`
`example one or more communication chipsets residing in its host
`
`information apparatus.
`
`[0022]
`
`The output manager in the information apparatus may be capable
`
`of communicating with, managing and synchronizing data or software
`
`components with an output device equipped with an output controller of
`
`present invention. Examples of output devices include, without
`
`8
`
`-9-
`
`ROKU 1010
`
`
`
`1282-002/MMM
`
`limitation, printers, fax machines, copiers, image or video display
`
`devices, monitors, display screens, projectors, and audio output devices.
`
`[0023]
`
`The output controller may be a circuit board, card or software
`
`components residing in an output device. Alternatively, the output
`
`controller may be connected externally to an output device as an
`
`external component or "box." The output controller may be implemented
`
`with one or a combination of embedded processor, software, firmware,
`
`ASIC, DSP, FPGA, system on a chip, special chipsets, among others. In
`
`another embodiment, the functionality of the output controller may be
`
`provided by application software running on a PC, workstation or server
`
`connected externally to an output device.
`
`[0024]
`
`The output controller may include a processing unit,
`memory/storage unit and communication a.da.ptQr unit, among othars.
`The storage or memory unit of the output controller may store device
`
`drivers, software components or objects encapsulating device dependent
`
`data, algorithms, and code. Device dependent data may be, for
`
`example, parameters and information about the output device and output
`
`controller. Software components and objects may encapsulate for
`
`example code or executables of algorithms necessary for converting or
`
`encoding an image or document description or language into print data
`
`or output data compatible with a specific output device. The output
`
`manager may manage the process of uploading data and or software
`
`components from an output controller to an information apparatus in
`
`order to, for example, enable the information apparatus to generate and
`
`transmit print data or output data accurately to the output device or the
`
`output controller.
`
`[0025]
`
`Output data (or print data in the case where the output device is a
`
`printer) may be specific data, instructions, page description language,
`
`markup language, graphics and or image file format among others. Print
`
`data may also be encoded or compressed with one or more compression
`
`or encoding techniques. Furthermore, print data may use one or more
`
`9
`
`-10-
`
`ROKU 1010
`
`
`
`1282-002/MMM
`
`open standards or one or more proprietary techniques and formats, or a
`
`combination. Output data (or print data for printers) refers to the
`
`electronic data sent from an information apparatus to the output device.
`
`[0026]
`
`One implementation of a digital content output process of this
`
`invention includes the following steps.
`
`1. A user requests to print a digital content from his/her information
`
`apparatus.
`
`2. The information apparatus detects available output devices by a
`
`discovery process.
`
`3. The information apparatus exchanges service information with output
`
`controllers associated with the available output devices in a service
`
`negotiation process. The user may then select one or more output
`
`devices based on the service information provided.
`
`4. The information apparatus communicates with output controller to
`
`identify and upload the necessary components to enable output to a
`
`specific output device as part of a synchronization process. The
`
`uploaded components or data may then be installed or configured in
`
`the information apparatus.
`
`5. The digital content intended for output is processed by one or more
`
`components to be compatible with the output device. The one or more
`
`components include the information apparatus with an output
`
`manager, an output controller and the output device.
`
`6. The printer engine or display engine or audio engine generates final
`
`output.
`
`(0027]
`
`In the output process of present invention, an output manager
`
`residing in the information apparatus may participate in, coordinate and
`
`manage the communication and exchange of information/components
`
`between its host information apparatus and output controllers.
`
`Brief Description of the Drawings
`
`[0028]
`
`Fig. 1 is a block diagram of an output system that can implement
`
`the process and apparatus of the present invention.
`
`10
`
`-11-
`
`ROKU 1010
`
`
`
`1282-002/MMM
`
`[0029)
`
`Figs. 2A and 28 are block diagrams illustrating exemplary
`
`configurations of hardware components of wireless communication units.
`
`[0030]
`
`Fig. 3A-3C illustrates various configurations and implementations of
`
`output manager with respect to an information apparatus.
`
`[0031)
`
`Figs. 4A-4F illustrate various configurations and implementations of
`
`output controller with respect to a printer or output device.
`
`[0032]
`
`Fig.5 is a flow diagram of a pervasive output process of the present
`
`invention.
`
`[0033]
`
`Fig. 6 is a flow diagram of an exemplary implementation of service
`
`negotiation process optionally included in the output process of Fig. 5.
`
`[0034]
`
`Fig. 7 is a flow diagram of different possible configuration of print
`
`job process included in the output process of Fig. 5.
`
`[0035]
`
`Figs. 8A-8G show a series of graphical user interfaces (GUls)
`
`rendered at different times on a display screen of an information
`
`apparatus.
`
`[0036]
`
`Fig. 9A-9B is a block diagram of a conventional printing system or
`
`printer.
`
`[0037]
`
`Detailed Description of Preferred Embodiments
`
`[0038]
`
`FIG 1 is a block diagram illustrating exemplary components of an
`
`electronic communication system that may provide an operating
`
`environment for the present invention and includes an information
`
`apparatus 100, which is a computing device with processing capability.
`
`As illustrated in Fig. 1, examples of information apparatus 100 may
`
`include, but are not limited to, a desktop personal computer (PC), laptop
`
`computer, palmtop computer, handheld or mobile device, personal digital
`
`assistant (PDA), smart phone, screen phone, set-top box, e-book,
`
`Internet pad, digital camera, Internet appliance, pager, etc.
`
`[0039]
`
`Information apparatus 100 may contain components (not shown)
`
`such as a processing unit, a memory unit, a storage unit and an
`
`inpuVoutput control unit, as are known in the art. Information apparatus
`
`11
`
`-12-
`
`ROKU 1010
`
`
`
`1282-002/MMM
`
`100 may also contain an interface (not shown) for interactions with users.
`
`The interface may be implemented in software or hardware or a
`
`combination. Examples of such an interface include, without limitation, a
`
`mouse, a keyboard, a touch-sensitive or non-touch-sensitive screen, one
`
`or more push buttons, soft keys, a stylus, a speaker, a microphone, etc.
`
`[0040]
`
`An information apparatus 100 may be a dedicated single task
`
`device (e.g. email terminal, web terminal, e-book, etc) or a general(cid:173)
`
`purpose computing device with multiple features and functions. These
`
`multiple functions and features may be implemented by one or more
`
`software applications (e.g., applications 302, Fig. 3) installed in the
`
`information apparatus100, which may or may not include an operating
`
`system. A digital camera 112 equipped with processing capability and
`
`feature sets of the present invention is also an example of an information
`
`apparatus 100.
`
`[0041]
`
`Some information apparatuses 100 (e.g., dedicated devices) may
`
`be pre-configured by manufacturers with fixed functionalities and
`
`features. Other information apparatuses 100 may allow users to install
`
`additional hardware components and application software (e.g.,
`
`applications 302, Fig. 3) to expand or change functionality. Examples of
`
`functionalities and applications of information apparatuses 100 may
`
`include, for example, e-mail, messaging, voice communication, web
`
`browsing, image acquisition, text processing, graphics applications,
`
`document or image editing, and output functionalities, among others.
`
`[0042]
`
`Functionalities and feature sets of an information apparatus 100
`
`may be implemented in software or hardware or a combination of both.
`
`When features are implemented in software, this software may be
`
`installed by the manufacturer or by users. Application software may be
`
`implemented using embedded software running on embedded
`
`processors or it may run on a specific operating system. Some or all or
`
`combinations of applications and feature sets may also be implemented
`
`in hardware or in silicon. Some functionality or feature sets may be
`
`12
`
`-13-
`
`ROKU 1010
`
`
`
`1282-002/MMM
`
`implemented in special chip sets and may include one or more or
`
`combinations of, for example, application-specific integrated circuits
`
`(ASICs), field programmable gate arrays (FPGAs), digital signal
`
`processors (DSPs), systems on a chip, firmwares, etc.
`
`[0043]
`
`Information apparatus 100 may or may not contain an operating
`
`system. In an implementation having an operating system, the operating
`
`system may provide a variety of application programming interfaces
`
`(APls) or object models (e.g., APls 300, Fig. 3) for software applications
`
`to interface and communicate with device drivers. Device drivers in an
`
`information apparatus 100 control and communicate with peripheral
`
`devices such as printers, copiers, fax machines, display monitors,
`
`screens, etc. Several different applications can share a common device
`
`driver through the use of APls or interfaces or object models provided by
`
`an operating system, as described below with reference to Fig. 3A.
`
`In
`
`implementations having no operating system or an operating system that
`
`does not support or provide a device driver API, each application may
`
`have to implement its own device driver or its own output and
`
`communication capability, as described below with reference to Figs. 3B
`
`and 3C. For example, to output a digital document to a printer, each
`
`application may have to implement its own printer-specific driving,
`
`processing and/or communication capability.
`
`[0044]
`
`In one implementation, information apparatus 100 includes an
`
`output manager 308 (Figs. 3A-3C), which is typically implemented in
`
`software. Output manager 308 may be implemented or included in a
`
`client application, or as a stand-alone application, or as part of another
`
`application software 302B (Fig. 3B), or in the form of a device driver
`
`(e.g., a printer driver, in case of a printer being the output device), which
`
`may be invoked, shared and used by one or more application software
`
`programs 302 (Figs. 3A-3C).
`
`[0045]
`
`One task for output manager 308 is to manage and coordinate
`
`communication between information apparatus 100 and one or more
`
`13
`
`-14-
`
`ROKU 1010
`
`
`
`1282-002/MMM
`
`output controllers 120. Output manager 308 may, for example,
`
`implement an open-standard or a proprietary communication protocol to
`
`directly or indirectly interact with, manage, or utilize functionalities
`
`provided by hardware components residing in a host information
`
`apparatus 100. Such hardware components may include, for example, a
`
`processing unit, a memory unit and communication chipsets (not shown).
`
`Output manager 308 may include one or more of the following features
`
`and functionalities:
`
`• Output manager 308 may communicate and interact with one or more
`
`software applications 302 included in a host information apparatus100
`
`to provide pervasive output capability or feature to those software
`
`applications 302. The type of information passed from the software
`
`applications 302 to the output manager 308 may be, for example, a
`
`digital document or digital content data that needs output. In some
`
`instances, application software 302 may invoke or launch the output
`
`manager 308 as a separate application (as shown in Fig. 3C) or as an
`
`integrated part of the application software (as shown in Fig. 38).
`
`Examples of possible communication and management between
`
`output manager 308 and application software 302 may include, among
`
`others, messages, objects models, instances, procedural calls,
`
`program invocation and APls, which may or may not be provided by an
`
`operating system.
`
`• Output manager 308 may manage and maintain wired or wireless
`
`communications with output controller 120. Output manager 308 may
`
`interact with functionalities implemented by hardware components of
`
`its host information apparatus 100. As an example, the output
`
`manager 308 may manage and interact with the communication unit in
`
`the information apparatus 100. Figs. 2A and 2B show an example of
`
`communication units using wireless adapters, as described below in
`
`greater detail. A user may interact with the output manager 308
`
`14
`
`-15-
`
`ROKU 1010
`
`
`
`1282-002/MMM
`
`through a user interface provided by output manager 308 through the
`host information apparatus 100.
`
`• Output manager 308 may help discover available output devices 140,
`
`verify communication connections, identify devices available or
`
`compatible for service, or send or broadcast service requests to one or
`
`more devices.
`
`• Output manager 308 may communicate with output controller 120 to
`
`identify necessary software components, data, or any other device
`
`dependent information or parameters, if any, that need to be uploaded
`
`from the output controller 120 to the host information apparatus 100 to
`
`enable pervasive output. Software components may be, for example,
`
`a device driver, an application, a special code or algorithm, an
`
`executable object or device dependent data, parameter, information,
`
`etc.
`
`• Output manager 308 may coordinate with output controller 120 to
`
`upload the necessary components or data from the output controller
`
`120 to its host information apparatus 100 so that the user can output
`
`digital content pervasively to that output controller 120 or its associated
`
`output device 140.
`
`• Output manager 308 may perform raster image processing operations
`
`(e.g. rasterization, color management, half-toning operations) or
`
`convert digital content from its original format into print data compatible
`
`for input to a s