WO2001046803A2 - Architecture for dynamically exposing hardware capabilities using a page description language - Google Patents
Architecture for dynamically exposing hardware capabilities using a page description language Download PDFInfo
- Publication number
- WO2001046803A2 WO2001046803A2 PCT/US2000/041655 US0041655W WO0146803A2 WO 2001046803 A2 WO2001046803 A2 WO 2001046803A2 US 0041655 W US0041655 W US 0041655W WO 0146803 A2 WO0146803 A2 WO 0146803A2
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- driver
- user interface
- interface
- service layer
- hardware
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
Definitions
- the subject matter of the present invention relates generally to the field of software architecture; more particularly, the present invention relates to software that implements a user interface capable of communicating with driver software.
- One traditional method is through a simple command-line language interface.
- a pre-formatted configuration file can be created specific to this purpose.
- a more popular way of exposing hardware device properties to the user is through one or more static, configuration screens. These screens basically allow the user to input specific configuration values.
- a property page refers to a specific type of Microsoft Windows® dialog box that consists of a set of labeled tabs across the top edge of the dialog box.
- a dialog box is well known as an interface screen in the Microsoft Windows® operating system (OS) environment.
- OS Microsoft Windows® operating system
- a typical computer system may have a display adapter, modem, and other hardware devices that can be configured to a variety of different settings or values.
- Associated property pages are provided through the operating system software to access and change these settings. Often times, the property page settings must be set to match the specific requirements of a particular hardware device.
- a related problem is that nowadays there are many different hardware devices being produced with the same basic functionality; however, each may have subtle variations that required different device settings. For instance, different graphics devices being manufactured today can have very different output device compatibility requirements.
- a generic property page could easily mislead a user by showing hardware capabilities that a particular device might lack.
- the property page may include a setting for sending an output to a television, but the graphics device being used may lack that particular capability.
- the present invention comprises a software architecture for dynamic exposing capabilities of hardware devices in a computer system.
- the invention comprises a user interface defined by a page description language, the user interface providing a set of user interface screens for configuring the hardware devices.
- a driver interface is also included to provide an extensible communication channel between the user interface and each driver associated with a hardware device. The driver interface accesses driver functions specific to each hardware device.
- Figure 1 is a diagram of the two-tiered software architecture of the present invention.
- Figure 2 illustrates one embodiment of the architecture of the present invention.
- Figure 3 is an example showing a graphics display settings page as it may appear to the end-user in accordance with one embodiment of the present invention.
- the present invention is a software architecture that allows dynamic exposure of multiple hardware device capabilities with page description languages and programmatic scripting. As discussed previously, exposure of hardware capabilities has traditionally been performed either through a command line language interface, through a pre-formatted configuration file, or through one or more static configuration schemes (i.e., conventional property pages).
- the software architecture of the present invention provides a generic user interface capable of supporting a wide range of hardware devices.
- the present invention advantageously uses a page description language to expose the capabilities of various hardware devices within a computer system. More specifically, the page description language is utilized to define a user interface for the hardware device. An extensible protocol is employed to allow specific capabilities of the hardware device to be automatically discovered by the user interface hosting software.
- a key innovation is the technique of using a page description language to express a wide range of alternative user interfaces without altering the individual hardware or software components. This technique also facilitates the integration of information stored on the World Wide Web with the user interface screens used to configure the hardware devices. Thus, the present invention supports the integration of external information from the internet to assist the end-user in configuring a hardware device.
- HTML Hypertext Markup Language
- This easy-to-use scripting language allows a vendor to supply numerous, unique interfaces for the same hardware.
- a vendor or OEM can also empower its resellers and other agents to create unique versions of the user interface without changing or even having knowledge of the operation of the underlying hardware and software.
- FIG. 1 is a diagram illustrating the two-tiered software architecture of the present invention.
- the user interface referred to in the diagram as common user interface (CUI) 11.
- Common user interface 11 is a generic, hardware-independent graphical user interface defined by a page description language.
- the second tier, or bottom level, of the architecture is the driver level, comprising driver interface 14 and driver core 15.
- the diagram of Figure 1 also shows a CUI-Driver interface 12, which is tightly coupled with the specific driver implementation.
- the CUI-Driver interface 12 is a custom Microsoft COM interface that encapsulates the concept of a driver call.
- the CUI-Driver interface 12 can be considered a thin wrapper that hides the differences between the function calls (e.g., ExtEscape, DevicelOControl, etc.) to the driver core 15.
- the CUI-Driver interface 12 provides an extensible communication channel between common user interface 11 and all hardware drivers contained in driver core 15. It is this extensible communication channel that allows run-time discovery of supported hardware features.
- CUI-Driver interface 12 provides access to all hardware specific or proprietary functions. Standard operating system calls, when available, are the preferred mechanism to invoke driver functions. When standard operating system calls are not available the CUI software may use a proprietary, driver specific call.
- common user interface 11 is only loosely coupled to driver core 15 through CUI-Driver interface 12.
- the CUI software is independent of the hardware, with no hardware specific information hard-coded into its programs. This independence allows the same code to work with all hardware, assuming the particular driver supports CUI-Driver interface 12. In other words, common user interface 11 supports all drivers that have implemented CUI-Driver interface 12. Because the CUI software is independent of the hardware, it is relatively easy to extend the software to support new hardware components.
- common user interface 11 is patterned after the navigation model traditionally used by Web browsers.
- Web browsers provide a simple, easily understood model for navigation. Many users have become comfortable with and accustomed to navigating Web pages due to the popularity of the Internet. Thus, by emulating Web browser navigation techniques, the present invention allows end-users to leverage their existing knowledge.
- FIG 2 is a detailed block diagram of one embodiment of the architecture of the present invention.
- the two-tiered nature of the architecture of Figure 2 is illustrated by the separation of the dynamic user interface elements (i.e., the common user interface 20) from the driver/hardware dependent elements (i.e., drivers 30).
- driver 33 each with its own associated CUI-Driver component (interface) 31.
- interface There is a one-to-one correspondence between a driver and a CUI-Driver component.
- driver 33a is shown being connected to CUI-Driver component 31a, driver 33b to CUI-Driver component 31 b, and so on.
- Figure 2 shows multiple drivers 33 to represent the capability of the CUI-Driver software to communicate with drivers of various types of hardware devices (e.g., graphics, network, modem, etc.).
- CUI-Driver interface is shown in the diagram as a plurality of COM components, each of which "sits" on top of an associated driver.
- Each CUI- Driver component 31 is independent of driver type (e.g., graphics, network, security, etc.) and has no explicit knowledge of the meaning of the data communicated across the interface.
- CUI-Driver components 31 provide a single consistent way of communicating with the driver software.
- the CUI-Driver components basically provide a transparent pipeline between application and driver.
- an application can communicate with the driver. These ways include: Escape/ExtEscape calls, DevicelOControl calls, basic input/output system (BIOS) calls, and other OS calls. These semantics of these communication methods vary widely.
- the CUI-Driver component 31 is the key to seamlessly integrating the common user interface with new hardware devices. That is, the CUI software can automatically communicate with drivers that implement the CUI-Driver component interface. It should also be understood that the properties exposed by the CUI-Driver component are independently extensible by the various driver developers. In other words, driver developers can avoid development bottlenecks by extending the properties supported by the CUI-Driver component to add new properties as needed. This is simply a matter of making appropriate changes to the driver and the corresponding CUI-Driver component.
- HTML pages 21 are the custom HTML content pages that interface to the CUI-Services 25 via a set of ActiveX controls 24.
- Static pages 22 are a traditional set of property pages, which are also supported by the architecture of the present invention.
- the IHV custom application 24 provides a secondary level of control to a manufacturer (e.g., OEM) to customize the user interface. Through the IHV custom application 24 an OEM may create a new "look and feel" to the user interface, or to hide device capabilities from the end-user, without modification to the code. This capability is also available to a manufacturer of through HTML pages 21 using an HTML editor.
- the ActiveX controls 24 are a well-known Microsoft technology that is used in the present invention to bridge the gap between the HTML environment and the hardware device environment.
- the ActiveX controls 24 provide a dispatch interface that allows scripting environments, such as Microsoft Internet ExplorerTM, to invoke the CUI functions.
- a Web browser may be utilized to display the HTML pages.
- Another approach is to use a standard Windows help engine, which is also HTML based, and which has a Web browser embedded within it. This latter approach provides the additional benefit of allowing the distribution of all the images and pages associated with the HTML pages via a single, compressed file.
- the CUI-Services layer 25 exposes a set of high-level, hardware- independent interfaces that provide services for the various display elements. Each CUI-Service interface is dedicated to a particular technology, e.g., graphics settings, network settings, 3D settings, audio settings, etc. All CUI-Service interfaces are hardware independent. In this is yet another aspect of the extensible protocol of the present invention.
- the CUI-Services layer 25 makes calls to operating system functions to fulfill requests from the display elements.
- the CUI-Services layer 25 also masks the differences between various operating systems. This allows all OS-specific code to be localized within the CUI-Services modules.
- the CUI-Services software layer is the driver with its corresponding implementation of the CUI-Driver component (i.e., interface).
- This interface exposes the driver's capabilities to the software in a consistent manner, completely abstracting the specific hardware/driver implementation.
- the CUI-Services layer 25 uses the associated CUI-Driver component 31 to obtain the information.
- the CUI-Services layer 25 relies on standard OS calls for standardized functions, and uses the associated CUI- Driver component for all proprietary extensions that relate to specific driver/hardware implementation.
- FIG 3 is an example screen capture illustrating how a typical CUI page may appear to the end-user.
- this example page shows the graphics display settings that allow the user to change the color model and screen resolution of the graphics hardware.
- the individual page contents appear within the CUI hosting application, which provides basic Web-like navigation services. Individual page contents are created using HTML for page layout. This approach permits a very high level of customization, for example, by a product development team or by OEM customers.
- the HTML-based pages invoke driver functions using ActiveX controls, as provided by the CUI software. It is appreciated that the page contents may take on any desired "look and feel".
- the standard baseline pages consist of a "Quick Access Bar" across the top the page; a navigation bar on the left-hand side of the page; and the main page content on the right-hand side of the page.
- the Quick Access Bar is held consistent across all pages and provides access to the table of contents, keyword search, the technology-based home page, and other information.
- the navigation bar provides access to a set of context- sensitive links that lead the user to other pages related to the current page.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Computer And Data Communications (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
Description
Claims
Priority Applications (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| GB0215176A GB2373902B (en) | 1999-12-21 | 2000-10-27 | Architecture for dynamically exposing hardware capabilities using a page description language |
| DE10085323T DE10085323B4 (en) | 1999-12-21 | 2000-10-27 | Apparatus and method for dynamically visualizing the capabilities and configuring hardware devices of a computer system |
| HK02108121.3A HK1046571B (en) | 1999-12-21 | 2000-10-27 | Architecture for dynamically exposing hardware capabilities using a page description language |
| AU26202/01A AU2620201A (en) | 1999-12-21 | 2000-10-27 | Architecture for dynamically exposing hardware capabilities using a page description language |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US46998899A | 1999-12-21 | 1999-12-21 | |
| US09/469,988 | 1999-12-21 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| WO2001046803A2 true WO2001046803A2 (en) | 2001-06-28 |
| WO2001046803A3 WO2001046803A3 (en) | 2002-03-14 |
Family
ID=23865839
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/US2000/041655 Ceased WO2001046803A2 (en) | 1999-12-21 | 2000-10-27 | Architecture for dynamically exposing hardware capabilities using a page description language |
Country Status (6)
| Country | Link |
|---|---|
| AU (1) | AU2620201A (en) |
| DE (1) | DE10085323B4 (en) |
| GB (1) | GB2373902B (en) |
| HK (1) | HK1046571B (en) |
| TW (1) | TWI248020B (en) |
| WO (1) | WO2001046803A2 (en) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2002046898A3 (en) * | 2000-12-05 | 2003-03-13 | Nokia Corp | Improved user interface |
| EP1357475A1 (en) * | 2002-04-23 | 2003-10-29 | Hewlett-Packard Company | Data processing system and method |
| US7325235B2 (en) * | 2001-10-23 | 2008-01-29 | Canon Kabushiki Kaisha | Data processing apparatus, data processing method, program, and storage medium |
| EP2024818A4 (en) * | 2006-04-27 | 2010-07-28 | Microsoft Corp | Bios configuration update technique |
Family Cites Families (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5838910A (en) * | 1996-03-14 | 1998-11-17 | Domenikos; Steven D. | Systems and methods for executing application programs from a memory device linked to a server at an internet site |
| US5956487A (en) * | 1996-10-25 | 1999-09-21 | Hewlett-Packard Company | Embedding web access mechanism in an appliance for user interface functions including a web server and web browser |
| US5909540A (en) * | 1996-11-22 | 1999-06-01 | Mangosoft Corporation | System and method for providing highly available data storage using globally addressable memory |
| US6139177A (en) * | 1996-12-03 | 2000-10-31 | Hewlett Packard Company | Device access and control using embedded web access functionality |
| US5995102A (en) * | 1997-06-25 | 1999-11-30 | Comet Systems, Inc. | Server system and method for modifying a cursor image |
| WO1999017210A1 (en) * | 1997-09-26 | 1999-04-08 | Toughey Daniel J | Detection and control of non-server-based computer programs |
-
2000
- 2000-10-27 WO PCT/US2000/041655 patent/WO2001046803A2/en not_active Ceased
- 2000-10-27 AU AU26202/01A patent/AU2620201A/en not_active Abandoned
- 2000-10-27 DE DE10085323T patent/DE10085323B4/en not_active Expired - Fee Related
- 2000-10-27 HK HK02108121.3A patent/HK1046571B/en not_active IP Right Cessation
- 2000-10-27 GB GB0215176A patent/GB2373902B/en not_active Expired - Fee Related
- 2000-11-29 TW TW089125347A patent/TWI248020B/en not_active IP Right Cessation
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2002046898A3 (en) * | 2000-12-05 | 2003-03-13 | Nokia Corp | Improved user interface |
| US7325235B2 (en) * | 2001-10-23 | 2008-01-29 | Canon Kabushiki Kaisha | Data processing apparatus, data processing method, program, and storage medium |
| EP1357475A1 (en) * | 2002-04-23 | 2003-10-29 | Hewlett-Packard Company | Data processing system and method |
| US7032095B2 (en) | 2002-04-23 | 2006-04-18 | Hewlett-Packard Development Company, L.P. | Data processing system and method |
| EP2024818A4 (en) * | 2006-04-27 | 2010-07-28 | Microsoft Corp | Bios configuration update technique |
Also Published As
| Publication number | Publication date |
|---|---|
| AU2620201A (en) | 2001-07-03 |
| WO2001046803A3 (en) | 2002-03-14 |
| DE10085323T5 (en) | 2007-05-31 |
| GB0215176D0 (en) | 2002-08-07 |
| GB2373902B (en) | 2004-10-20 |
| GB2373902A (en) | 2002-10-02 |
| DE10085323B4 (en) | 2010-11-18 |
| TWI248020B (en) | 2006-01-21 |
| HK1046571B (en) | 2005-03-24 |
| HK1046571A1 (en) | 2003-01-17 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7086014B1 (en) | Automatic generation of application program interfaces, source code, interrupts, and datasheets for microcontroller programming | |
| JP4643931B2 (en) | Web page rendering mechanism using themes based on external programs | |
| EP1236089B1 (en) | Method and system for configuring network deliverable components | |
| US7954087B2 (en) | Template integration | |
| US20030135842A1 (en) | Software development tool for embedded computer systems | |
| US20110131273A1 (en) | Development and deployment of mobile and desktop applications within a flexible markup-based distributed architecture | |
| US20030011640A1 (en) | System and methods for implementing peripheral device front menu panels | |
| US20030079051A1 (en) | Method and system for the internationalization of computer programs employing graphical user interface | |
| GB2347766A (en) | Internet based printing using a web browser | |
| US6381654B1 (en) | Systems methods and computer program products for customized host access applications including user-replaceable transport code | |
| US7281236B1 (en) | System and methods for developing and deploying a remote domain system | |
| CA2395468A1 (en) | Abstract device driver model for the portability of device drivers across different operating system platforms | |
| WO2004104751A2 (en) | Web site development software | |
| Sobell | A Practical Guide to Linux® Commands, Editors, and Shell Programming | |
| WO2001046803A2 (en) | Architecture for dynamically exposing hardware capabilities using a page description language | |
| US20040102976A1 (en) | System for installation of a resource device on a computing device | |
| Parihar | Asp. net Bible | |
| US8230043B2 (en) | Documentation process for invoking help from a server | |
| KR100578434B1 (en) | Computer-readable recording media recording expandable device driver programs, methods and devices for registering driver plug-in programs | |
| Smyth | Android Studio 3.5 Development Essentials-Java Edition: Developing Android 10 (Q) Apps Using Android Studio 3.5, Java and Android Jetpack | |
| KR100375529B1 (en) | skin system for Window applications | |
| WO2000058817A1 (en) | Method and system for providing a digital imaging device with a web-based graphical-user-interface | |
| Phung | Professional microsoft windows embedded CE 6.0 | |
| Smyth | Android Studio 3.6 Development Essentials-Java Edition: Developing Android 10 (Q) Apps Using Android Studio 3.6, java and Android Jetpack | |
| Golomshtok | . NET System Management Services |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| AK | Designated states |
Kind code of ref document: A2 Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW |
|
| AL | Designated countries for regional patents |
Kind code of ref document: A2 Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG |
|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
| DFPE | Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101) | ||
| AK | Designated states |
Kind code of ref document: A3 Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW |
|
| AL | Designated countries for regional patents |
Kind code of ref document: A3 Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG |
|
| ENP | Entry into the national phase |
Ref country code: GB Ref document number: 200215176 Kind code of ref document: A Format of ref document f/p: F |
|
| 122 | Ep: pct application non-entry in european phase | ||
| NENP | Non-entry into the national phase |
Ref country code: JP |
|
| RET | De translation (de og part 6b) |
Ref document number: 10085323 Country of ref document: DE Date of ref document: 20070531 Kind code of ref document: P |