Home
Device display object infrastructure
Contents
1. For example if the initiating event at step 310 was the detection or other addi tion of a new function provider then at step 320 a request to enumerate known functions can be directed only to that newly detected function provider Tn conjunction with the request to enumerate known func tions at step 320 a callback function can be provided to the function providers at step 330 to enable the function providers to notify the device display object infrastructure 210 of new functions of which such function providers may become aware Thus for example if a new device is connected to the computing device 100 then the functions of such a device can be detected by or otherwise communicated to one or more appropriate function providers and such function providers can notify the device display object infrastructure 210 of the new functions through the callback function provided at step 330 As will berecognized by those skilled in the art the exact order of steps 320 and 330 is not critical and the order may 20 25 30 35 40 45 50 55 60 65 12 differ from that illustrated in flow diagram 300 without impacting the overall functionality described After requesting the enumeration of known functions and after providing the callback to the function providers the device display object infrastructure 210 or other appropriate component can at step 340 wait until information regarding a function is received from
2. service 220 and prior to utilizing information obtained from the device function providers for setting properties of the device display object Turning to FIG 4 a flow diagram 300 is shown illustrating an exemplary process for creating and maintaining a device display object As shown an initiating event 310 can trigger the requesting of the enumeration of known functions by known function providers at step 320 The initiating event of step 310 can in one embodiment be the initialization of the device display object infrastructure 210 or more generally the display objects client process 280 Traditionally such an initialization would occur upon startup of the computing device 100 though such an initialization can also occur at any other time Alternatively or in addition step 310 can com prise initiating events that can provide a specific trigger to the device display object infrastructure 210 even if it is already executing such as an explicit user command to reset the system After the initiating event at step 320 the function provid ers such as function providers 251 252 253 254 and 260 enumerated above that are known to the device display object infrastructure 210 can be each in turn requested to enumer ate the functions of devices of which those function providers are aware In an alternative embodiment step 320 can com prise the request to enumerate known functions only to a sub set of the known function providers
3. 12 United States Patent Greeff et al US0083473 19B2 10 Patent No US 8 347 319 B2 45 Date of Patent Jan 1 2013 54 75 73 21 22 65 51 52 58 56 DEVICE DISPLAY OBJECT INFRASTRUCTURE Inventors Esaias Engelbertus Greeff Redmond WA US Douglas K Brubacher Sammamish WA US Narayanan Ganapathy Redmond WA US Randall E Aull Kenmore WA US Doron J Holan Seattle WA US Neil Sandlin Redmond WA US James G Cavalaris Kirkland WA US Assignee Microsoft Corporation Redmond WA US Notice Subject to any disclaimer the term of this patent is extended or adjusted under 35 U S C 154 b by 1259 days Appl No 12 125 907 Filed May 22 2008 Prior Publication Data US 2009 0293070 A1 Nov 26 2009 Int CI G06F 13 00 2006 01 G06F 3 00 2006 01 VS Ch enar 719 321 719 327 Field of Classification Search None See application file for complete search history References Cited U S PATENT DOCUMENTS 6 216 196 Bl 4 2001 Elwell et al 6 272 576 Bl 8 2001 Porterfield 6 282 586 Bl 8 2001 Bullough 6 735 756 Bl 5 2004 Linn et al 6 886 049 B2 4 2005 Wong 7 124 226 B2 10 2006 Khanna 2004 0042027 Al 3 2004 Timperman et al 2005 0004974 Al 1 2005 Sharma et al 400 ND 2005 0149639 A1 7 2005 Vrielink et al 2005 0187924 Al 8 2005 Brubacher et al 2007 0027879 Al 2 2007 Bridges et al OTHER PUBLICATIONS
4. both local and remote memory storage devices Turning to FIG 1 an exemplary system 99 is illustrated comprising a multi function device 10 and a computing device 100 that is connected to and communicating with the multi function device Though the descriptions will be appli cable to any combination of one or more single or multi function devices as indicated for illustrative purposes the multi function device 10 of FIG 1 is illustrated as comprising a scanning function 11 a printing function 12 and a faxing function 13 Each of these functions can be communicating with one or more drivers or other software elements executing on the computing device 100 For example the scanning function 11 of the multi function device 10 can be commu nicating with a scanner driver 20 such as may have been provided by the manufacturer of the multi function device and the faxing function 13 can be communicating with a fax driver 40 such as may also have been provided by the manu facturer of the multi function device Similarly the printing function 12 can be communicating with a printer driver 30 such may have been provided as part of the operating system 134 of the computing device 100 or which may have been provided by the manufacturer ofthe multi function device 10 The scanner driver 20 printer driver 30 and the fax driver 40 can each further communicate with other components executing on the computing device 100 which for simplicity of illust
5. for selecting whether an indication of a device associated with the single device display object is presented in a relevant user interface ele ment 17 A system for creating and maintaining a single device display object representing a multi function device the sys tem comprising the multi function device providing multiple distinct func tions multiple device function providers associated with the multi function device a device display object infrastructure for creating the single device display object aggregating at least two separately enumerated functions enumerated by the multiple device function providers to the device display object infrastructure wherein the device display object infra structure sets properties of single device display object such that information associated with a higher ran func tion supersedes conflicting information associated with a lower ranked function US 8 347 319 B2 17 18 a remote metadata service that is identified by the multi 19 The system of claim 17 wherein the device display function device and object infrastructure creates the single device display object ametadata retrieval service for obtaining information asso based on a common device identifier associated with each of ciated with the multi function device from the remote the at least two separately enumerated functions metadata service and providing it to the device display 5 object infrastructure 18 The system of claim 17
6. known function providers Received function d om function provider yes Device display yes object for device ID associated with received unction exists no Set device display object properties Fig 5 Adjust device display object properties Fig 5 Create device display object for device ID associated with received function Add received function to device display object for device ID associated with received function Figure 4 310 320 330 340 350 360 370 380 390 U S Patent Jan 1 2013 Sheet 5 of 5 US 8 347 319 B2 400 Request for properties of a device display object ai Check registry for user specified settings associated with the device display object and use found settings if any to set adjust properties of the device display object 420 Search remote metadata for information associated with the device ID of the device display object and use found remote metadata if any to set adjust other properties of 430 the device display object Search local metadata for information associated with the device ID of the device display object and use found local metadata if any to set adjust other properties of the 440 device display object Rank functions associated with device display object 450 Set adjust other properties of the device display object based on information associated with the functions in order of rank 460 Properties of device display object set PE
7. of a multiple of sources including metadata resident locally on the comput ing device and remotely stored metadata The metadata can supplement information provided by the device function pro viders with respect to individual functions In addition meta data applicable to the whole device can likewise be incorpo rated into the device display object Such device metadata can be obtained from one or more multiple sources or it can be derived from individual function metadata In a further embodiment the individual functions associ ated with a device display object can be ranked such that higher ranked functions can define aspects of the device dis play object For example function metadata from a highly ranked function can be used as the device metadata if no device specific metadata is available Likewise the functions associated with a device display object can be used to assign a category or type to the device represented by the device display object Ina still further embodiment the device display object can enable a user to adjust various settings to suit their own preferences For example the device display object can pro vide show hide support thereby enabling a user to select whether one or more user interfaces including higher level software applications display the existence ofthe multi func tion device to the user Similarly the user can assign a name to the multi function device and adjust other settable proper
8. of printing function 12 the scanning function 11 and the faxing function 13 respectively of the multi function device 10 In one embodiment the device display object infrastruc ture 210 can resolve such a conflict and select the model name associated with the device display object from among the model names provided by the device function providers 251 253 and 254 based on a ranking of the respective func tions of the devices such as in the present example functions 12 11 and 13 respectively For simplicity a static ranking can be used whereby for example a printing function is always ranked higher than any other function and a scanning func tion is ranked higher than a faxing function In an alternative embodiment however a dynamic ranking can be applied such as by letting the user select a particular ranking or adjusting the ranking based on user actions For example the ranking could be adjusted based on the frequency with which a user accesses a particular one of the functions of the device display object Alternatively the ranking can be dictated by information received from the metadata retrieval service 220 Returning to the above example the discrepancy between the model name as provided to the device display object infrastructure 210 by the plug and play devices function pro vider 251 the scanning devices function provider 253 and the faxing devices function provider 254 can be resolved by the device display o
9. the device display object to include a function instance or device inter face corresponding to the newly received function In another embodiment the addition of a new function to a device dis play object can entail the reevaluation of the properties of the device display object In particular as indicated previously and as will be described further below the properties of a device display object can be set with reference to information associated with the function obtained from a device function provider in accordance with the ranking of the function among the other functions encompassed by the same device display object Thus if the function whose information was received at step 340 is a higher ranked function than the functions previously comprising the device display object the properties of such a device display object may change with the addition of the newly added more highly ranked function Consequently at step 390 a reevaluation and pos sible modification of the device display object s properties can be performed such as in accordance with the mechanisms described below with reference to FIG 5 If at step 350 it is determined that the newly received function is separate from any existing device display func tion a new device display object for the newly received function can be created at step 360 Subsequently at step 370 the properties of the newly created device display object comprising the newly received fun
10. wherein the single device display object comprises user settable properties OK Ro Roo
11. A method for creating and maintaining a single device display object encompassing at least two functions the method comprising the steps of requesting enumeration of known functions from at least two known device function providers 20 25 30 40 45 50 55 65 16 aggregating at least two separately enumerated functions within the single device display object ranking the at least two separately enumerated functions encompassed within the single device display object setting at least some properties ofthe single device display object in accordance with information associated with a device identifier of a device providing the at least two separately enumerated functions that is obtained from a metadata store and setting at least some properties ofthe single device display object such that information associated with a higher ranked function supersedes conflicting information associated with a lower ranked function 10 The method of claim 9 further comprising the step of selecting the at least two separately enumerated functions for encompassing within the single device display object by selecting enumerated functions that are each independently associated with the device identifier 11 The method of claim 10 wherein the single device display object comprises an icon representing a single multi function device providing the at least two separately enumer ated functions encompassed within the single device dis
12. Figure 5 US 8 347 319 B2 1 DEVICE DISPLAY OBJECT INFRASTRUCTURE BACKGROUND To provide added functionality computing devices have been traditionally capable of communicating with peripheral devices Such peripheral devices include output devices such as printers fax machines and speakers input devices such as scanners digital cameras and microphones and extension devices such as personal digital assistants digital music players hard drives and flash based storage drives Periph eral devices are traditionally connected to a computing device via one or more transports such as a wireless or wire based transport The communicational coupling enables the com puting device to utilize some or all of the functionality of the peripheral device From the perspective of the computing device each periph eral device performs one or more discrete functions The computer can discover these functions through software com ponents such as a device driver that are associated with a specific transport or with a specific type of peripheral device The device driver may contain instructions to configure the function obtain status information about the function or con trol operation of the function These capabilities to interact with the peripheral device through the device driver may be exposed to a user of the computer through one or more user interfaces such as a control panel or other visual interface or through programmat
13. PnP X Plug and Play Extensions for Windows A Windows Rally Specification Version 1 0c Jan 11 2007 33 pages Toby Nixon Directions on the Windows PC and Network Device Connectivity Oct 2004 UPnP Summit Presentations China 29 pages Using Windows Rally Vertical Pairing to Automatically Install Wi Fi Devices Jan 15 2010 34 pages How to manage devices in Windows XP Jul 6 2006 archived Apr 22 2007 retrieved Dec 15 2011 3 pages Windows 7 Association Database http www microsoft ques tions com microsoft Windows Devices PNX 29 180498 associa tion database aspx Feb 2007 8 pages Network Explorer Extensibility Jun 7 2006 6 pages Enabling User Customization Oracle Application Server Wireless Developer s Guide Oracle Corporation 2003 pp 16 Continued Primary Examiner H S Sough Assistant Examiner Kimberly Jordan 57 ABSTRACT Multi function devices expose multiple functions to device drivers or other lower level software Device function provid ers can interface with such drivers or lower level software and can provide information including device identifiers regard ing such functions to a device display object infrastructure A device display object can then be created that encompasses one or more functions such that in one embodiment the device display object corresponds to a single physical multi function device Alternatively any combination of function ality
14. a device function provider Once such information is received an initial determination can be made at step 350 to determine if a device display object already exists with which the function should be associated As indicated previously in one embodiment a device identi fier such as can be provided by the physical device or which can be derived by a function provider can be utilized to determine which functions should be grouped into a common device display object Such an arrangement can provide a single device display object for a single physical device irrespective of the number of functions provided by such a device In such a case at step 350 a comparison can be made between the device identifier associated with the function information provided at step 340 and the device identifiers associated with currently existing device display objects to determine if the newly received function is to be combined with an existing device display object In an alternative embodiment other identification mechanisms or even explicit user choice can be utilized at step 350 to determine whether to combine the newly received function with an existing device display object If at step 350 it is determined that the newly received function is to be combined with an existing device display object processing can skip to step 380 where the function can be added to the device display object In one embodiment such an addition can comprise modification of
15. bject infrastructure by simply selecting the model name as provided by the plug and play devices func tion provider because in one embodiment the printing func tion 12 can have a higher ranking than either the scanning function 11 or the faxing function 13 If the plug and play devices function provider 251 did not provide an indication of a model name the next most highly ranked function such as for example the scanning function 11 can be referenced and the model name provided by the faxing devices function provider 254 can be used In such a manner the information provided by device function providers such as device func tion providers 251 252 253 254 and 260 can be used by the device display object infrastructure 210 to set at least some of the properties of the device display object The possibility exists that the information provided by a device that is ultimately received by device function provid ers and then provided to the device display object infrastruc ture 210 can be inaccurate Thus in one embodiment rather than relying exclusively on information provided by device function providers the device display object infrastructure 210 can reference metadata either locally maintained or remotely stored to set at least some of the properties of a device display object Because such metadata may be more accurate or at least more recent than information that had been provided to a device at the time of its manufacture
16. by the device display object infrastructure 210 as the basis by which to determine that the scanning function 11 the printing function 12 and the faxing function 13 may be grouped into a single device display object In addition to device identifiers the device function pro viders can provide to the device display object infrastructure 210 any of the above enumerated information In some cases the information provided may be specific to a particular func tion and can therefore remain associated with that function within the device display object More commonly however the information provided by the device function provider can be used by the device display object infrastructure 210 to set or modify the properties of the device display object In such acase the device display object infrastructure 210 can deter mine which function s information will be used as the corre US 8 347 319 B2 9 sponding information for the device display object For example the plug and play devices function provider 251 may have provided to the device display object infrastructure 210 one model name for the multi function device 10 while the scanning devices function provider 253 may have pro vided a slightly different model name and the faxing devices function provider 254 may have provided yet a third again slightly different model name Such a difference in model names can occur in many circumstances including the inde pendent programming
17. can be used to set the other settings of the device display object As indicated previously in one embodiment an identifier of the device associated with the device display object such as a model identifier or a hardware 0 a 5 40 45 50 65 14 identifier can be used to identify and locate any metadata relevant to the device display object at the remote metadata storage 260 If at step 430 it is determined that such remote metadata exists then it can be utilized to set the appropriate properties of the device display object that were not already set previously at step 420 For example the remote metadata storage 260 can provide an updated device model identifica tion or an icon of the device associated with the device display object which can be used to set the appropriate prop erties of the device display object In one embodiment illustrated by flow diagram 400 a local metadata storage 270 can be referenced at step 440 even if the remote metadata storage 260 comprised information regarding the device associated with the device display object In an alternative embodiment step 440 can be per formed only if the remote metadata storage 260 did not include any information used at step 430 to set any of the properties of the device display object The searching at step 440 of local metadata storage 270 for information that is relevant to the device associated with the device display object and the setting
18. ction can be set such as in accordance with the mechanisms described below with ref erence to FIG 5 In one embodiment the setting of the prop erties ofa newly created device display object such as at step 370 can be performed by the same mechanisms as the adjust ment ofthe properties ofan existing device display object that has had a newly received function associated with it such as at step 390 Turning to FIG 5 a flow diagram 400 is shown illustrating the setting or adjusting of properties of a device display object such as could occur at steps 370 and or at steps 390 US 8 347 319 B2 13 illustrated above A triggering event can occur at step 410 whereby a request or other action is made with respect to the properties of a device display object In one embodiment the trigger of step 410 can be the setting of properties as would be initiated by step 370 whereas in another embodiment the triggering event can be the adjustment of properties as would be initiated by step 390 In one embodiment the properties of the device display object can first be set with reference to the registry 230 or other appropriate storage location to identify and locate any user settings that may be stored there Thus at step 420 the registry 230 can be checked for settings associated with an identifier used to identify the device display object such as a device identifier received from a device function provider and associated with the
19. direct wired connection and wireless media such as acoustic RF infrared and other wireless media Combinations of the any ofthe above should also be included within the scope of computer readable media The system memory 130 includes computer storage media inthe form of volatile and or nonvolatile memory such as read only memory ROM 131 and random access memory RAM 132 A basic input output system 133 BIOS con taining the basic routines that help to transfer information between elements within computing device 100 such as dur ing start up is typically stored in ROM 131 RAM 132 typi cally contains data and or program modules that are imme diately accessible to and or presently being operated on by processing unit 120 By way of example and not limitation FIG 2 illustrates operating system 134 other program mod ules 135 and program data 136 um 0 an 5 20 25 40 45 50 55 65 6 The computing device 100 may also include other remov able non removable volatile nonvolatile computer storage media By way of example only FIG 2 illustrates a hard disk drive 141 that reads from or writes to non removable non volatile magnetic media Other removable non removable volatile nonvolatile computer storage media that can be used with the exemplary computing device include but are not limited to magnetic tape cassettes flash memory cards digi tal versatile disks digital video tape solid state RAM
20. e collection of functions but rather a unified device display object that can in one embodi ment mirror the physical multi function device 10 that the user has connected to the computing device The device dis play object system 200 can reference identifying information such as device identifiers 21 31 and 41 obtained or derived by the scanner driver 20 printer driver 30 and fax driver 40 respectively to determine which functions should be sub sumed within a single device display object The precise mechanisms by which identifiers such as device identifiers 21 31 and 41 are obtained by the scanner driver 20 printer driver 30 and fax driver 40 respectively are not relevant to the present descriptions and they can be obtained in any manner including direct provision by the multi function device 10 itself or derivation by the scanner driver plug and play sys tem or fax driver Before proceeding with further detailed descriptions of the device display object system 200 the framework for the below descriptions is provided with reference to FIG 2 wherein an exemplary computing device 100 such as the one from FIG 1 is further illustrated The exemplary computing device 100 can include but is not limited to one or more central processing units CPUs 120 a system memory 130 and a system bus 121 that couples various system components including the system memory to the processing unit 120 The system bus 121 may be any of severa
21. echanisms 240 information previously stored in the registry 230 such as by the plug and play system and metadata such as that obtained by the metadata retrieval service 220 which can obtain meta data from either or both a local metadata repository 270 and a remote metadata repository 260 In one embodiment the device display object infrastruc ture 210 can determine which functions reported to it by device function providers such as the device function pro viders 251 252 253 254 and 260 enumerated above are to be combined into a single device display object For example a single device display object can be created to represent the single multi function device 10 of FIG 1 in which case that single device display object can encompass all of the func tions 11 12 and 13 that are provided by the multi function device The device display object infrastructure 210 can receive information regarding the printing function 12 from the plug and play devices function provider 251 information regarding the scanning function 11 from the scanning devices function provider 253 and information regarding the faxing function 13 from the faxing devices function provider 254 In one embodiment the information regarding the scanning function 11 the printing function 12 and the faxing function 13 can individually include device identifiers 21 31 and 41 respectively that can be identical to one other Such a com mon device identifier can be used
22. er process such as the out of process device function provider 260 In the latter case the communication between the out of process function provider 260 and the device dis play object infrastructure 210 can occur via inter process communication but can otherwise remain analogous to that described below The device function providers can obtain from the lower level software they are designed to interface with specific information that the device function providers can then pro vide to the device display object infrastructure 210 to enable the device display object infrastructure to generate a device display object and provide access to such an object to higher level software 50 In one embodiment the device function providers can provide some or all of the following informa tion regarding the device with which the device function provider is interfacing a unique device identifier for the device the model name of the device the model number of the device the manufacturer of the device an indication of whether the device is currently connected an indication of the type of connection such as a networked connection through which the device is currently connected a display icon for the device an indication of whether the device is currently oper 20 25 30 35 40 45 50 55 60 65 8 ating properly and similar information In addition the device function providers can provide some or all of the following
23. es of software or functionality with the device represented by the device dis play object on the basis ofthe listed identifiers For example a model identifier can be used as a topmost class with hard ware identifiers being used as sub classes in order of ranking of the functions with which such hardware identifiers are associated The class structure of the device display object can provide information to existing processes such as pro cesses executing as part of the operating system 134 For example shell processes of the operating system 134 can utilize the classes stored in the registry 230 and the informa tion stored within those classes to populate user interface elements such as drop down menus that can be associated with the device display object In one embodiment the device display object classes can comprise a list of verbs or opera tions that the device associated with the device display object can perform Those operations can then be presented to a user by user interface elements that are pre programmed to refer ence the registry 230 Turning back to FIG 5 after setting or adjusting the appropriate properties of a device display object with any settings in the registry 230 or from any other storage location that comprises user specified settings the remote metadata storage 260 can be queried by the metadata retrieval service 220 to determine at step 430 if there are any other settings or other information that
24. from one or more physical devices can be combined into a single device display object representing a virtual multi function device Properties ofthe device display object can be set with reference to user specified settings remotely main tained metadata locally available metadata and information associated with each function Functions can be ranked such that if there is a conflict information from more highly ranked functions is used to set the properties of the device display object 19 Claims 5 Drawing Sheets Request for properties of a device display object Y M6 sei associated wit regi User Ihe device display object and use found settings if any to set adjust properties of the device display object 420 the device ID of the device display object and use found remote metadata if any to set acjust other properties of 430 Y Search remote metadata for information associated with the device display object Sascha meade Tor Wormalion eRe win TE device ID of the device display object and use found local metadata if any to sevadjust other properties of the 446 device di j Rank functions associated with device display object if b Y SeVadjust other properties of the device display object based on information associated with the functions in order of rank 460 US 8 347 319 B2 Page 2 OTHER PUBLICATIONS U S Appl No 12 002 060 filed Dec 14 2007 Inventor s Dolon et al entit
25. functions of the device display object In one embodiment settings in the registry 230 can be stored in accordance with a categorization or classification of the device represented by the device display object Such a cat egorization can be derived by reference to the functions and interfaces that are encompassed by the device display object For example if the device display object encompasses func tionality commonly associated with a printer then the device associated with the device display object can be categorized as a printer for purposes of storing information into the reg istry 230 Such a categorization can be informed by the rank ing of functions ofthe device display object described above Thus for example if a device display object encompassed both printing and scanning functionality the higher ranking ofthe printing function can cause the device associated with the device display object to be categorized as a printer In an alterative embodiment however a device can be categorized as both a printer and a scanner enabling settings to be stored in accordance with both classifications The settings in the registry 230 can in a further embodi ment be stored such that a device display object exposes a property that lists a model identifier ofthe device represented by the display object hardware identifiers of the device and interface classes of the device Such a storage structure can make it possible to associate other piec
26. he system bus 121 In a networked environment program modules depicted relative to the computing device 100 or portions or periph erals thereof may be stored in the memory of one or more other computing devices that are communicatively coupled to the computing device 100 through the general network con nection 171 It will be appreciated that the network connec tions shown are exemplary and other means of establishing a communications link between computing devices may be used Turning to FIG 3 the device display object system 200 shown in FIG 1 is illustrated in greater detail In one embodi ment the device display object system 200 can comprise a display objects client process 280 user interface mechanisms 240 and a metadata retrieval service 220 that can communi cate with one or more local metadata stores 270 and or alternatively one or more remote metadata services 275 via the network 180 In the illustrated embodiment the display device client process 280 can comprise a device display object infrastructure 210 that can act as a centralizing agent for collecting information and generating the device display object The display device client process 280 can further comprise access to the registry 230 and various device func tion providers such as a plug and play devices function pro vider 251 a multimedia devices function provider 252 a scanning devices function provider 253 and a faxing devices function provider 254 In addi
27. highest ranked function can be subsequently referenced and information associated with lower ranked functions can be referenced in reverse order of the function s ranking After the information associated with the various functions encompassed by the device display object is referenced and if appropriate utilized to set appro priate properties of the device display object at step 460 the processing can end at step 470 and the properties ofthe device display object can be considered to be set until a subsequent triggering event such as that of step 410 As can be seen from the above descriptions mechanisms for creating and maintaining a device display object that can encompass one or more functions from one or more devices have been provided In view of the many possible variations ofthe subject matter described herein we claim as our inven tion all such embodiments as may come within the scope of the following claims and equivalents thereto We claim 1 Oneor more computer readable storage media compris ing computer executable instructions for creating and main US 8 347 319 B2 15 taining a single device display object encompassing at least two functions the computer executable instructions directed to steps comprising requesting enumeration of known functions from at least two known device function providers aggregating at least two separately enumerated functions within the single device display object ranking the a
28. ic interfaces that can be utilized by higher level software executed on the computing device by the user More recently peripheral devices often referred to as multi function devices are capable of performing multiple independent functions For example a device may provide printing scanning and faxing functionality in a single physi cal package Each individual function however remains associated with a distinct driver Thus when a multi function device is connected to a computing device the computing device recognizes the individual functions but there is no generic mechanism by which they can be grouped into a single cohesive construct The user therefore perceives a single physical peripheral device but yet is presented with multiple independent functions on the computing device none of which completely or often even accurately represent the whole multi function peripheral device SUMMARY As individual drivers or other software recognize and receive information regarding the individual functions of a multi function device they can also receive identifiers that can provide indicators that the individual functions are being provided from a single physical device For example the functions reported by the multi function device can each be associated with a device or container identifier and more specifically with the same device identifier Alternatively the drivers or other software communicating with the mul
29. information for each function of which the function providers are aware an identifier of the interface through which the function can be accessed an indication of whether the interface is enabled information that can be used to enable the interface and other like information Based on the information provided by the device function providers the device display object infrastructure 210 can create and maintain a device display object that can in one embodiment comprise the following information a name of the device display object a unique device identifier for that device an indication whether the device is currently con nected an icon for the device a classification of the device a pointer to any metadata associated with the device an indi cation of the type of connection such as a networked connec tion through which the device is currently connected an indication of whether the device is currently operating prop erly an indication of whether the device is the default device and other like information In creating and maintaining such a device display object the device display object infrastruc ture 210 can reference not only the information received from the device function providers such as device function providers 251 252 253 254 and 260 but also information received from the user based on knowledge they possess or express about the device or its usage such as information that may be received through user interface m
30. l types of bus structures including a memory bus or memory controller a peripheral bus and a local bus using any ofa variety of bus architectures The computing device 100 also typically includes com puter readable media which can include any available media that can be accessed by computing device 100 and includes both volatile and nonvolatile media and removable and non removable media By way of example and not limitation computer readable media may comprise computer storage media and communication media Computer storage media includes media implemented in any method or technology for storage of information such as computer readable instruc tions data structures program modules or other data Com puter storage media includes but is not limited to RAM ROM EEPROM flash memory or other memory technology CD ROM digital versatile disks DVD or other optical disk storage magnetic cassettes magnetic tape magnetic disk storage or other magnetic storage devices or any other medium which can be used to store the desired information and which can be accessed by the computing device 100 Communication media typically embodies computer read able instructions data structures program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media By way of example and not limitation communica tion media includes wired media such as a wired network or
31. led Multi function device ID with unique identifier Modular Object Scanning Technology Version 1 10 User Manual FabSoft Inc 2006 pp 1 26 cited by examiner US 8 347 319 B2 Sheet 1 of 5 Jan 1 2013 U S Patent eyn6iJ eoiAep Bunndujoo 001 OL eolAep uonounjninuJ uonounj Bunuiud 9JeMJOS TOND Le Su Jojuud 0 uleis s Bunejedo OS 00 U S Patent Jan 1 2013 Sheet 2 of 5 US 8 347 319 B2 Central processing unit Operatin System 134 Program N on removable modules non volatile memory interface Network interface Program data we General a x network connection Operating Program Program System modules data 144 145 146 Figure 2 U S Patent Jan 1 2013 Sheet 3 of 5 US 8 347 319 B2 200 SS remote metadata il 275 local metadata metadata retrieval service display objects client process device display object infrastructure user interface mechanisms plug and play scanning devices function devices function provider provider multimedia faxing devices function devices function provider provider out of process device function provider Figure 3 U S Patent Jan 1 2013 Sheet 4 of 5 US 8 347 319 B2 300 SS Initiating event Request known function providers to enumerate known functions Provide callback to
32. mation from one or more device function pro viders which can then in turn be layered above one or more drivers or other components that operate at a lower level and can communicate with the one or more devices that are capable of performing the provided functions However the precise division of capabilities into particular components or layers is strictly for ease of integration with existing infra structure and none of the below described mechanisms require a specific componentization or a specific layering of components For example the device function providers described herein which can also be nominated device dis play object providers or device function enumerators can be implemented in one or more layers or can even be inte grated into the device drivers themselves Consequently the below descriptions are meant to be applicable to any collec tion of components and layering so long as the below de scribed information delivery and processing is present within the overall system Although not required the descriptions below will be in the general context of computer executable instructions such as program modules being executed by one or more computing devices More specifically the descriptions will reference acts and symbolic representations of operations that are per formed by one or more computing devices or peripherals unless indicated otherwise As such it will be understood that such acts and ope
33. nfrastructure can receive information from one or more device function providers each of which can in turn inter face with one or more drivers or other software that commu nicates with the one or more devices that are capable of performing the provided functions The device display object infrastructure can further obtain metadata associated with individual functions or the overall device display object itself and can provide to the user or to higher level software appli cations the ability to set properties of the device display object The techniques described herein focus on the presentation of the multiple functions of a single physical multi function device into a single device display object However the tech niques described are not so limited as the same mechanisms described below are equally capable of combining into a device display object only a subset of functions from a multi function device or alternatively combining into a single device display object the functions from multiple physical devices and thereby creating additional multi function devices Consequently the descriptions below directed to a multi function device are illustrative only and are meant to include any combination of one or more single or multi function devices Similarly the below mechanisms are described with refer ence to a multi layer componentized environment where a higher level device display object infrastructure can receive infor
34. of properties of the device display object if such information is found can occur in an analogous manner to that described above with reference to step 430 If both the local and remote metadata storage 270 and 260 respectively are checked then in one embodiment the infor mation obtained from the remote metadata storage can super sede any conflicting information obtained from the local metadata storage As indicated previously the functions encompassed by the device display object can be ranked to provide a meaningful mechanism by which to identify information associated with the functions that can be utilized to set one or more properties of the device display object The ranking performed at step 450 can be a static ranking or a dynamic ranking as described above In addition while the ranking is illustrated at step 450 it is not dependent on any of the prior steps of the flow diagram 400 and consequently could occur prior to or in parallel with any of the steps 420 430 or 440 At step 460 the information associated with the functions that are encompassed by the device display object can be utilized to set or adjust any of the properties of the device display object that were not set previously by steps 420 430 or 440 In one embodiment information associated with the highest ranked function can be referenced first and utilized to set appropriate properties of the device display object Infor mation associated with the next
35. omputer readable storage media of claim 1 wherein the metadata store is a remote metadata service iden tified by a single multi function device providing the at least two separately enumerated functions encompassed within the single device display object 6 The computer readable storage media of claim 1 com prising further computer executable instructions for assign ing a primary category to the single device display object based on the at least two separately enumerated functions aggregated within the single device display object and based on the ranking of the at least two separately enumerated functions and storing information associated with the single device display object into a registration database categorized in accordance with the assigned primary category 7 The computer readable storage media of claim 1 com prising further computer executable instructions for storing user selected values for user settable properties of the single device display object and setting at least some properties of the single device display object in accordance with the user selected values such that the user selected values supersede conflicting values received from other sources 8 The computer readable storage media of claim 7 wherein the user settable properties include a hide show property for selecting whether an indication of a device asso ciated with the single device display object is presented in a relevant user interface element 9
36. ovided to the device display object infrastructure 210 by the device function providers The device display object infra structure 210 can then in turn provide such information to the metadata retrieval service 220 to enable the metadata retrieval service to locate and communicate with an appro priate remote metadata service 275 In an alternative embodiment a local metadata storage 270 can be referenced either instead of or in addition to the remote metadata service 275 For example the local metadata storage 270 can be referenced if the metadata retrieval service 220 cannot establish a communicational connection to the remote metadata service 275 The local metadata storage 270 can in one embodiment comprise information analogous to that available from the remote metadata service 275 For example the local metadata storage 270 can comprise a con densed or filtered version of the information available from the remote metadata storage 260 and can have been provided to the computing device 100 by the same manufacturer sup porting the remote metadata storage such as when a set of drivers such as the scanner driver 20 were obtained from the manufacturer and installed on the computing system The metadata available from either the remote metadata service 275 or the local metadata store 270 can comprise information that can be used by the device display object infrastructure 210 to set or edit oneor more properties ofthe device displa
37. play object 12 The method of claim 9 wherein the ranking the at least two separately enumerated functions is performed in accor dance with a dynamic ranking algorithm based on a frequency with which individual ones of the at least two separately enumerated functions are invoked by a user 13 The method of claim 9 wherein the metadata store is a remote metadata service identified by a single multi function device providing the at least two separately enumerated func tions encompassed within the single device display object 14 The method of claim 9 further comprising the step of assigning a primary category to the single device display object based on the at least two separately enumerated func tions aggregated within the single device display object and based on the ranking ofthe at least two separately enumerated functions and storing information associated with the single device display object into a registration database categorized in accordance with the assigned primary category 15 The method of claim 9 further comprising the steps of storing user selected values for user settable properties of the single device display object and setting at least some prop erties of the single device display object in accordance with the user selected values such that the user selected values supersede conflicting values received from other sources 16 The method of claim 15 wherein the user settable properties include a hide show property
38. r 40 by supporting and utilizing those inter faces and functionality that are commonly associated with fax drivers In some cases access to functions can be provided to higher level software 50 through a pre existing system having multiple levels of software For example as will be known by those skilled in the art the printer driver 30 can interface with a plug and play system that can comprise multiple levels In such a case a function provider can interface with the overall plug and play system Thus as illustrated a plug and play devices function provider 251 can be tailored to interface with a plug and play system by supporting and utilizing those interfaces and functionality supported by the plug and play system While the illustrated plug and play devices function pro vider 251 scanning devices function provider 253 and other device function providers are shown as executing as part of the display objects client process 280 they can in an alter native embodiment execute outside of the display objects client process since the precise process boundaries of each of these components is not material Additionally the device display object infrastructure 210 can interface with both device function providers that execute as part of the display objects client process 280 such as device function providers 251 252 253 and 254 described above and it can interface with device function providers that execute within their own or anoth
39. ration are not specifically enumerated in FIG 1 For example as will be known by those skilled in the art in addition to individual drivers various other systems exist to enable the higher level software 50 executing on the comput ing device 100 to utilize the various functions ofa peripheral such as the multi function device 10 For example various plug and play systems can be provided such as by the oper ating system 134 ofthe computing device 100 to enable users to merely connect a peripheral to a computing device and enable its usage without additional effort Such plug and play systems as will also be known by those skilled in the art can comprise multiple layers of components that can interoperate with one another to provide access to one or more functions of a device to the user and other software executing on a com puting device In the illustrative example of FIG 1 the printer driver 30 can communicate with a plug and play system such as can be provided by the operating system 134 and the plug and play system can then in turn communicate with further upstream components such as the illustrated device display object system 200 In one embodiment a centralized device display object system 200 can directly or indirectly interface with indi vidual drivers such as drivers 20 30 and 40 and with larger systems suchas a plug and play system to expose to higher US 8 347 319 B2 5 level software 50 not a disparat
40. rations which are at times referred to as being computer executed include the manipulation by a pro cessing unit of electrical signals representing data in a struc tured form This manipulation transforms the data or main tains it at locations in memory which reconfigures or otherwise alters the operation of the computing device or peripherals in a manner well understood by those skilled in 30 40 45 50 55 65 4 the art The data structures where data is maintained are physical locations that have particular properties defined by the format of the data Generally program modules include routines programs objects components data structures and the like that per form particular tasks or implement particular abstract data types Moreover those skilled in the art will appreciate that the computing devices need not be limited to conventional personal computers and include other computing configura tions including hand held devices multi processor systems microprocessor based or programmable consumer electron ics network PCs minicomputers mainframe computers and the like Similarly the computing devices need not be limited to a stand alone computing device as the mechanisms may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network In a distrib uted computing environment program modules may be located in
41. sociated with the multi function device 10 can be US 8 347 319 B2 11 accessible to the user through both a printing user interface a scanning user interface and a faxing user interface The user interface mechanisms 240 can enable a user or other software such as the higher level software 50 to create or modify one or more of the properties of the device display object For example a user can be allowed to assign or edit the name of the device associated with the device display object Similarly a user can be allowed to select whether a representation of the device associated with the device dis play object is shown in a listing or other user interface that enumerates available devices or alternatively whether the device is to remain hidden and not be shown in such an interface The changes or additions made to the properties of the device display object by a user or higher level software 50 can in one embodiment be stored by the device display object infrastructure 210 in the registry 230 for future refer ence and to prevent the user from having to make the same edits multiple times Because such user specified values reflect specifically set user preferences and can therefore trump default property values derived from other sources in one embodiment the device display object infrastructure 210 can first reference the registry 230 for such user specified values prior to obtaining metadata from the metadata retrieval
42. solid state ROM and the like The hard disk drive 141 is typically connected to the system bus 121 through a non removable memory interface such as interface 140 The drives and their associated computer storage media discussed above and illustrated in FIG 2 provide storage of computer readable instructions data structures program modules and other data for the computing device 100 In FIG 2 for example hard disk drive 141 is illustrated as storing operating system 144 other program modules 145 and pro gram data 146 Note that these components can either be the same as or different from operating system 134 other pro gram modules 135 and program data 136 Operating system 144 other program modules 145 and program data 146 are given different numbers hereto illustrate that at a minimum they are different copies Additionally the computing device 100 may operate in a networked environment using logical connections to one or more remote computers For simplicity of illustration the computing device 100 is shown in FIG 2 to be connected to a network 180 that is not limited to any particular network or networking protocols The logical connection depicted in FIG 2 is a general network connection 171 that can be a local area network LAN a wide area network WAN or other network The computing device 100 is connected to the gen eral network connection 171 through a network interface or adapter 170 which is in turn connected to t
43. t least two separately enumerated functions encompassed within the single device display object setting at least some properties of the single device display object in accordance with information associated witha device identifier of a device providing the at least two separately enumerated functions that is obtained from a metadata store and setting at least some properties of the single device display object such that information associated with a higher ranked function supersedes conflicting information associated with a lower ranked function 2 The computer readable storage media of claim 1 com prising further computer executable instructions for selecting the at least two separately enumerated functions for encom passing within the single device display object by selecting enumerated functions that are each independently associ ated with the device identifier 3 The computer readable storage media of claim 2 wherein the single device display object comprises an icon representing a single multi function device providing the at least two separately enumerated functions encompassed within the single device display object 4 The computer readable storage media of claim 1 wherein the ranking the at least two separately enumerated functions is performed in accordance with a dynamic ranking algorithm based on a frequency with which individual ones of the at least two separately enumerated functions are invoked by a user 5 The c
44. the device display object infrastructure 210 can in one embodi ment reference the metadata to set the device display object s properties giving such metadata higher priority than the information received from device function providers As illustrated in FIG 3 in one embodiment a metadata retrieval service 220 can provide the device display object infrastructure 210 with metadata that can be used by the device display object infrastructure to set at least some of the 20 25 30 35 40 45 50 55 60 65 10 properties of the device display object As shown a remote metadata service 275 such as a web service can be accessed by the metadata retrieval service 220 via the network 180 Similarly the metadata retrieval service 220 can access a local metadata storage 270 Inone embodiment the metadata retrieval service 220 can initially seek to access the remote metadata service 275 because the remote metadata service can be an authoritative source of metadata For example the remote metadata service 275 may have access to current metadata maintained by vari ous peripheral device manufacturers Consequently the sin gular remote metadata service 275 illustrated in FIG 3 is meant to represent any one or more collections of metadata and associated services that are remote from the computing device 100 Such remote metadata services 275 can be iden tified by the peripheral devices and such identification can be pr
45. ti func tion device can derive device identifiers and while perform ing such a derivation can associate the multiple function of a multi function device with the same device identifier The mere existence of such a common device identifier across multiple functions however may not be sufficient to provide a user experience commensurate with users expectations In particular given a single physical device even a multi func tion one users would expect that user interfaces would indi cate only one device 20 25 30 35 40 45 50 55 60 65 2 In one embodiment therefore a single device display object is created and maintained to encompass at least some of the multiple functions of a single multi function device The functions encompassed by the device display object can beenumerated and provided by device function providers that can interface with existing drivers or other software designed to communicate with the multi function device and utilize its individual functions Such device function providers can be tailored to specific types of devices drivers or communica tional methodologies and can provide identification informa tion from devices to a centralized device display object infra structure which can in turn create and maintain one or more device display objects based on the data provided In another embodiment the device display object can com prise metadata obtained from any one or more
46. ties which can likewise be associated with the device dis play object This Summary is provided to introduce a selection of con cepts in a simplified form that are further described below in the Detailed Description This Summary is not intended to identify key features or essential features of the claimed sub ject matter nor is it intended to be used to limit the scope of the claimed subject matter Additional features and advantages will be made apparent from the following detailed description that proceeds with reference to the accompanying drawings DESCRIPTION OF THE DRAWINGS The following detailed description may be best understood when taken in conjunction with the accompanying drawings of which FIG 1 is a block diagram of an exemplary connection between a multi function device and a computing device FIG 2 is a block diagram of an exemplary computing device FIG 3 is a block diagram of an exemplary function group ing infrastructure FIG 4 is a flow diagram of an exemplary multi function object creation and maintenance mechanism and US 8 347 319 B2 3 FIG 5 is a flow diagram of an exemplary multi function object property association mechanism DETAILED DESCRIPTION The following description relates to the combination and presentation of multiple functions from devices including some or all ofthe functions ofa single multi function device into a single device display object A device display object i
47. tion to the device function providers that can in one embodiment execute within the display objects client process 280 out of process device func tion providers 260 can likewise communicate with and pro vide information to the device display object infrastructure 210 US 8 347 319 B2 7 Device function providers such as the device function providers 251 252 253 254 and 260 enumerated above can communicate either directly or indirectly with one or more devices that actually provide the relevant functions and can then in turn provide information obtained regarding those one or more devices and their functions to the device display object infrastructure 210 In one embodiment each device function provider can communicate with lower level soft ware such as dedicated drivers a plug and play system and other like pre existing software that can provide more direct and specific control of one or more functions provided by one or more devices Each device function provider can be tai lored to such lower level software facilitating its interface therewith For example as illustrated in FIG 3 a scanning devices function provider 253 can be tailored to interface with scanner drivers such as the scanner driver 20 by supporting and utilizing interfaces and functionality commonly associ ated with scanner drivers Similarly a faxing devices function provider 254 can be tailored to interface with fax drivers such as the fax drive
48. y object For example the metadata can include anicon that can represent the physical device associated with the device display object Similarly the metadata can include information that can facilitate the ordering of any consum ables such as ink or toner that the device that is associated with the device display object uses As yet another example the metadata can provide pointers such as a web page address to additional information regarding the device that is associated with the device display object As indicated previously one advantage of the device dis play object is the correspondence between such an object and a physical device irrespective of the number of functions that may be exported by the physical device The device display object therefore can be exposed to the user through user interface mechanisms 240 In one embodiment such mecha nisms can comprise the standard display and modification mechanisms for the one or more functions encompassed by the device display object For example if the device display object was created as a representation of the multi function device 10 such that the device display object encompasses the printing function 12 the user interface mechanisms 240 can comprise the printing user interface traditionally pro vided by the operating system 134 In another embodiment the user interface mechanisms 240 can comprise multiple user interfaces such that for example the device display object as
Download Pdf Manuals
Related Search
Related Contents
Enhanced controlling of the SLS Process during a build the manual here TY-WK37PV3 here Shuttle DS437 Arkansas USER DASEP MANUAL - KIT Solutions Support Site 取替 簡単 内窓 最適 断熱 防露 - ガラスカタログ 日本板硝子の商品 Genomic DNA from Tissue ZF046(M024A) 取扱説明書 Clax Selecta 3ZP10 Copyright © All rights reserved.
Failed to retrieve file