`(12) Patent Application Publication (10) Pub. No.: US 2008/0126958 A1
`Louie
`(43) Pub. Date:
`May 29, 2008
`
`US 2008O126958A1
`
`(54) ADDING GRAPHICAL USER INTERFACE TO
`DISPLAY
`
`(52) U.S. Cl. ........................................................ 71.5/764
`
`Wayne C. Louie, Uxbridge (CA)
`(75) Inventor:
`Correspondence Address:
`VEDDER PRICE KAUFMAN & KAMIMHOLZ
`222 N. LASALLE STREET
`CHICAGO, IL 60601
`
`(73) Assignee:
`
`ATI Technologies Inc., Markham
`(CA)
`
`(21) Appl. No.:
`(22) Filed:
`
`11/469,233
`Aug. 31, 2006
`
`Publication Classification
`
`(51) Int. Cl.
`G06F 5/16
`
`(2006.01)
`
`ABSTRACT
`(57)
`To operate a computer, a first graphical user interface of a
`server application is displayed in a first display region, which
`has user interface elements for presenting output from the
`server application and receiving runtime user input to the
`server application. A second display region is also provided,
`in which graphical user interfaces are provided. The second
`display region has a defined location and may be a sidebar. In
`response to user interaction with the first graphical user inter
`face, a first user interface element is selected from the first
`graphical user interface. The first user interface element pre
`sents a type of output from the server application or receiving
`a type of input to the server application. Further, a client
`application is configured to display a second graphical user
`interface in the second display region, Such that the second
`graphical user interface includes a second user interface ele
`ment corresponding to the first user interface element.
`
`
`
`Desktop
`)
`
`View Hotkeys Profiles Preferences Help
`Welcome
`Display Manager
`
`Sidebar
`
`Gadget
`Interface
`
`UNIFIED PATENTS EXHIBIT 1037
`UNIFIED PATENTS, LLC v. MEMORYWEB, LLC
`IPR2021-01413
`Page 1 of 17
`
`
`
`Patent Application Publication May 29, 2008 Sheet 1 of 7
`
`US 2008/O126958A1
`
`10
`
`
`
`CPU
`12
`
`Memory
`16
`
`
`
`PrOCeSSOr
`14
`
`FIG. 1
`
`UNIFIED PATENTS EXHIBIT 1037
`UNIFIED PATENTS, LLC v. MEMORYWEB, LLC
`IPR2021-01413
`Page 2 of 17
`
`
`
`Patent Application Publication May 29, 2008 Sheet 2 of 7
`
`US 2008/O126958A1
`
`
`
`Desktop
`
`Sidebar
`
`Gy All SerWer
`pplication
`N
`
`Gadget
`Interface
`
`36B
`Gadget
`Interface
`
`FIG. 2
`
`UNIFIED PATENTS EXHIBIT 1037
`UNIFIED PATENTS, LLC v. MEMORYWEB, LLC
`IPR2021-01413
`Page 3 of 17
`
`
`
`Patent Application Publication May 29, 2008 Sheet 3 of 7
`
`US 2008/O126958A1
`
`System Server
`40
`
`User Interface
`Configuration
`Application
`38
`
`Create Modify
`
`SerWer
`Applation
`
`
`
`
`
`Manager
`Appletion
`
`
`
`Gadget
`Interface
`36B
`
`FIG 3
`
`UNIFIED PATENTS EXHIBIT 1037
`UNIFIED PATENTS, LLC v. MEMORYWEB, LLC
`IPR2021-01413
`Page 4 of 17
`
`
`
`Patent Application Publication May 29, 2008 Sheet 4 of 7
`
`US 2008/O126958A1
`
`S42
`Display first GUI. Of Server application 1
`
`Provide client application for
`presenting Second GUI of Server
`application in designated display region
`
`S44
`-
`
`Monitor user interaction With first GUI S45
`
`Select UIE from first GUI for display in S46
`designated display region
`
`Configure client application to display S48
`Corresponding UIE in designated display
`region
`
`FIG. 4
`
`UNIFIED PATENTS EXHIBIT 1037
`UNIFIED PATENTS, LLC v. MEMORYWEB, LLC
`IPR2021-01413
`Page 5 of 17
`
`
`
`Patent Application Publication May 29, 2008 Sheet 5 of 7
`
`US 2008/O126958A1
`
`
`
`Desktop
`28
`)
`
`30
`GUI for SerWer
`Application
`
`Sidebar
`32
`)
`
`Gadget
`Interface
`
`F.G. 5
`
`UNIFIED PATENTS EXHIBIT 1037
`UNIFIED PATENTS, LLC v. MEMORYWEB, LLC
`IPR2021-01413
`Page 6 of 17
`
`
`
`Patent Application Publication May 29, 2008 Sheet 6 of 7
`
`US 2008/O126958A1
`
`
`
`Desktop
`
`2.
`
`View Hotkeys Profiles Preferences Help
`Welcome
`Display Manager
`
`Sidebar
`
`s
`
`Gadget
`Interface
`
`FIG. 6
`
`UNIFIED PATENTS EXHIBIT 1037
`UNIFIED PATENTS, LLC v. MEMORYWEB, LLC
`IPR2021-01413
`Page 7 of 17
`
`
`
`Patent Application Publication May 29, 2008 Sheet 7 of 7
`
`US 2008/O126958A1
`
`
`
`Desktop
`28
`
`Sidebar
`32
`
`Gadget
`Interface
`
`FIG. 7
`
`UNIFIED PATENTS EXHIBIT 1037
`UNIFIED PATENTS, LLC v. MEMORYWEB, LLC
`IPR2021-01413
`Page 8 of 17
`
`
`
`US 2008/O 126958 A1
`
`May 29, 2008
`
`ADDING GRAPHICAL USER INTERFACE TO
`DISPLAY
`
`FIELD OF THE INVENTION
`
`0001. The present invention relates to computing, and par
`ticularly to methods and devices for adding a graphical user
`interface to a display region on a computer display.
`
`BACKGROUND OF THE INVENTION
`
`0002 Graphical user interfaces (GUIs) have become stan
`dard Software user interfaces. Most end-user applications
`now interact with a user by way of a GUI, hosted by a GUI
`operating system, such as Windows, the Mac OS, or the like,
`directly or by way of an application called a “window man
`ager, that controls the placement and interaction of GUI
`windows. GUIs may be arranged in different display regions
`of a user Screen. For example, a conventional window, form
`ing part of, or defining, an application GUI, may appear
`anywhere on the screen. Such windows may be tiled, or
`cascaded.
`0003. Many operating systems (or window managers) set
`aside designated regions, to present GUIs that a user wishes to
`frequently interact with. Sidebars, for example, are used to
`provide a designated area or region on a computer desktop,
`for providing instant ready access to GUIs displayed in the
`sidebar, without cluttering the work space on the desktop.
`Sidebars are usually positioned to the side of the desktop, but
`may be positioned or moved elsewhere.
`0004 For example, the Windows VistaTM operating sys
`tem provides a component known as Windows SidebarTM.
`The Windows Sidebar is a pane on the side of the Windows
`Vista desktop that organizes interfaces to Smaller applications
`referred to as "Gadgets” and makes these interfaces easy to
`access. Gadgets generally are described in Microsoft Sidebar
`for Windows Vista Beta 2 Gadget Development Overview,
`Microsoft Windows White Paper, Brian Teutsch, Published on
`May 22, 2006, the contents of which are hereby incorporated
`herein by reference.
`0005 Generally, gadgets are “mini-applications” that
`include a graphical user interface that presents information
`and allows user interaction in a pre-defined region of the
`display, referred to as a sidebar. Conveniently, underlying
`gadget program logic and associated gadget may be pro
`grammed using a scripting language, such as HTML, and
`may make a variety of application program interface (API)
`calls in order to interact with the operating system, and other
`applications. Gadgets are managed by a sidebar application,
`that controls their execution. Gadgets may be used for a wide
`variety of possible purposes. For example, a gadget interface
`may present a clock, a control panel, a news-feeder, a tickler,
`or the like. During use, a user may select the gadget applica
`tion(s) whose interface(s) is or are to be displayed in the
`Sidebar from a list of available gadget applications provided
`by the Sidebar. The selection is made through a dialog win
`dow called the Gadget Dialog.
`0006 Conventionally, the gadgets for displaying the gad
`get interfaces need to be pre-installed, either in the Vista
`operating system or in a designated directory. For example, to
`make an additional gadget available for selection, code for the
`corresponding gadget has to be stored in the designated direc
`tory, which the Sidebar application will search when creating
`
`the list of available gadget applications. Typically, unless a
`gadget's name appears in the list, its interface cannot be
`displayed in the Sidebar.
`0007. A somewhat similar application is provided by the
`Mac OS X, and is referred to as the Dashboard TM. The Dash
`board is detailed in Beginning Mac OS X Tiger Dashboard
`Widget Development, Fred Terry, July 2006, Wrox, the con
`tents of which are also incorporated herein by reference.
`0008. However, the conventional software and method of
`configuring Such a user interface presented by mini-applica
`tion in a designated region of the display, and adding interface
`elements thereto have some drawbacks. For instance, the
`conventional Sidebar application is not convenient to use in
`Some aspects. Specifically, the user can only display user
`interfaces of gadgets selected from the gadget list. However,
`the user may not know the name of the gadgethe or she wishes
`to display; may not know what the associated user interface
`looks like before it is displayed; and may not know which
`gadget to display for a certain purpose.
`0009. The gadgets available for user selection are also
`limited and it is difficult or cumbersome for an average user to
`add a new gadget application that the user wishes to have.
`Further, the average user typically cannot flexibly modify the
`user interface of a gadget as desired, to add or delete elements
`from the interface.
`0010. Accordingly, there is a need for improved methods
`and devices in which user interfaces, such as those presented
`by gadgets, can be conveniently added to a designated display
`region.
`
`SUMMARY OF THE INVENTION
`0011. In a first aspect of the present invention there is
`provided a method of operating a computer. A first graphical
`user interface of a server application is displayed in a first
`display region, which has user interface elements for present
`ing output from the server application and receiving runtime
`user input to the server application. A second display region is
`provided in which graphical user interfaces are presented.
`The second display region has a defined location. In response
`to user interaction with the first graphical user interface, a first
`user interface element is selected from the first graphical user
`interface. The first user interface element presents a type of
`output from the server application or receiving a type of input
`to the server application. Further, a client application is con
`figured to display a second graphical user interface in the
`second display region, such that it includes a second user
`interface element for presenting the type of output from the
`server application or receiving the type of input to the server
`application. Each of the first and second user interface ele
`ments may both present the type of output and receive the type
`of input. The second display region may be a sidebar region
`and presentation of graphical user interfaces in the sidebar
`region may be controlled by a manager application such as a
`sidebar application. User interaction with the first graphical
`user interface may comprise selection of the first user inter
`face element, effected by a user placing a pointer on the first
`user interface element. User interaction with the first graphi
`cal user interface may be effected by a user opening a menu
`associated with the first graphical user interface, and selecting
`a menu item from the menu for sending or exporting the first
`user interface element to the second display region. User
`interaction with the first graphical user interface may be
`effected by a user dragging-and-dropping the first interface
`element into the second display region, or by a user dragging
`
`UNIFIED PATENTS EXHIBIT 1037
`UNIFIED PATENTS, LLC v. MEMORYWEB, LLC
`IPR2021-01413
`Page 9 of 17
`
`
`
`US 2008/O 126958 A1
`
`May 29, 2008
`
`and-dropping an existing user interface in the second display
`region onto the first user interface element. A user interface
`configuration application for configuring the client applica
`tion may be provided, which may create a script file for
`configuring the client application, and cause the Script file to
`be executed so as to display the second user interface in the
`second display region. Descriptor data describing the type of
`output or input may be communicated to at least one of the
`client application or the user interface configuration applica
`tion. The descriptor data may be communicated from the
`server application or a system server. Any communication
`may be through inter-process communication (IPC). The
`inter-process communication may be compliant with one or
`more of common object request broker architecture
`(CORBA), distributed computing environment (DCE), Java
`Remote Method Invocation (Java RMI), object linking and
`embedding (OLE), component object model (COM), distrib
`uted component object model (DCOM), Windows .Net
`framework, Internet Information Services (IIS), and Win
`dows communication foundation (WCF) framework. The
`communicated data may be compliant with one or more of a
`hyper text transfer protocol (HTTP), an extended mark-up
`language (XML), an XML schema definition (XSD), a web
`service definition language (WDSL), and a Java program
`ming language. At least one of the type of input and the type
`of output may comprise one or more of data types selected
`from numerical ranges, character strings, integer ranges,
`named item sets, Boolean sets, read-only data, and binary
`status indicators. At least one of the first and second user
`interface elements may comprise one or more of buttons,
`boxes, bars, menus, data entry fields, lists, graphs, and tickers
`for presenting the type of output or receiving the type of input.
`0012. In accordance with another aspect of the present
`invention, there is provided a method of operating a computer.
`The method comprises, in response to user interaction with a
`first graphical user interface for communication with a server
`application, the first graphical user interface displayed in a
`first display region and comprising a plurality of user inter
`face elements for presenting output from the server applica
`tion and receiving runtime user input to the server application,
`the user interaction causing a first user interface element
`being selected from the first graphical user interface, the first
`user interface element presenting a type of output from the
`server application or receiving a type of input to the server
`application, displaying a second graphical user interface, in a
`second display region having a defined location, Such that the
`second graphical user interface comprises a second user inter
`face element for presenting the type of output from the server
`application or receiving the type of input to the server appli
`cation.
`0013. In another aspect of the present invention, there is
`provided a computer comprising a display, a processor and a
`computer readable medium storing thereon computer execut
`able code. The computer executable code when executed on
`the processor causes the processor to perform one or more of
`the methods described above.
`0014. In a further aspect of the present invention, there is
`provided a computer readable medium storing thereon com
`puter executable code, the computer executable code when
`executed on a computer causing a processor of the computer
`to perform one or more of the methods described above.
`0015. Other aspects and features of the present invention
`will become apparent to those of ordinary skill in the art upon
`
`review of the following description of specific embodiments
`of the invention in conjunction with the accompanying fig
`ures and tables.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`0016. In the figures, which illustrate, by way of example
`only, embodiments of the present invention,
`0017 FIG. 1 is a schematic view of a computer system
`having a display;
`(0018 FIG. 2 is a schematic view of the display of FIG. 1
`during use;
`0019 FIG. 3 is a block diagram showing the inter-rela
`tions among various components related to displaying user
`interfaces in a sidebar,
`0020 FIG. 4 is flowchart for a method of providing a user
`interface in the sidebar of the display of FIG. 2;
`0021
`FIG. 5 is an exemplary screenshot of the display of
`FIG. 1 during use:
`0022 FIG. 6 is another exemplary screenshot of the dis
`play of FIG. 1 during use; and
`0023 FIG. 7 is further exemplary screenshot of the display
`of FIG. 1 during use.
`
`DETAILED DESCRIPTION
`0024 FIG. 1 illustrates computer 10, exemplary of an
`embodiment of the present invention.
`0025 Computer 10 includes a central processing unit 12,
`which includes a processor 14, in communication with a
`memory 16 and input/output (I/O) 18. Computer 10 may
`optionally communicate with a network (not shown) or
`another device (not shown). Computer 10 has a display
`device, such as monitor 20, in communication with I/O 18.
`Computer 10 may also have one or more input devices such as
`keyboard 22 and mouse 24, in communication with I/O 18. A
`removable memory storage medium such as disk 26 may be
`provided and is accessible through I/O 18 by the CPU 12. As
`illustrated, a desktop window 28 may be displayed on moni
`tor 20.
`0026. Processor 14 can be any suitable processor includ
`ing microprocessors, as can be understood by persons skilled
`in the art. Processor 14 may include one or more processors
`for processing data and computer executable codes or instruc
`tions.
`0027 Memory 16 may include a primary memory readily
`accessible by processor 14 at runtime. The primary memory
`may typically include a random access memory (RAM) and
`may only need to store data at runtime. Memory 16 may also
`include a secondary memory, which may be a persistent Stor
`age memory for storing data permanently, typically in the
`form of electronic files. The secondary memory may also be
`used for other purposes known to persons skilled in the art.
`Memory 16 can include one or more computer readable
`media. For example, memory 16 may be an electronic storage
`including a computer readable medium for storing electronic
`data including computer executable codes. The computer
`readable medium can be any suitable medium accessible by a
`computer, as can be understood by a person skilled in the art.
`A computer readable medium may be either removable or
`non-removable, either Volatile or non-volatile, including any
`magnetic storage, optical storage, or Solid state storage
`devices, or any other medium which can embody the desired
`data including computer executable instructions and can be
`accessed, either locally or remotely, by a computer or com
`
`UNIFIED PATENTS EXHIBIT 1037
`UNIFIED PATENTS, LLC v. MEMORYWEB, LLC
`IPR2021-01413
`Page 10 of 17
`
`
`
`US 2008/O 126958 A1
`
`May 29, 2008
`
`puting device. Any combination of the above is also included
`in the scope of computer readable medium. Disk 26 may form
`a part of memory 16. Memory 16 may store computer execut
`able instructions for operating computer 10 in the form of
`program code, as will be further described below. Memory 16
`may also store data such as operational data, image data, input
`data, and output data.
`0028 I/O 18 may include any suitable combination of
`input and output devices. I/O 18 may be integrated or pro
`vided on separated components, and may be in communica
`tion with any number of input and output devices. The input
`devices may include a device for receiving user input Such as
`user command or for receiving data. Example user input
`devices may include a keyboard, amouse, a disk drive/disk, a
`network communication device, a microphone, a Scanner, a
`camera, and the like. Input devices may also include sensors,
`detectors, or imaging devices. The output devices may
`include a display device such as a monitor for displaying
`output data to a user, a printer for printing output data, a
`communication device for communicating output data to
`another computer or device, and the like, as can be understood
`by persons skilled in the art. The output devices may also
`include other devices such as a computer Writable medium
`and the device for writing to the medium. An input or output
`device can be locally or remotely connected to CPU12, either
`physically or in terms of communication connection.
`0029. It will be understood by those of ordinary skill in the
`art that computer 10 may also include other, either necessary
`or optional, components not shown in the FIG. 1.
`0030 The hardware in computer system 10 may be manu
`factured and configured in any Suitable manner, as will be
`understood by one skilled in the art.
`0031 Memory 16 or disk 26 may store thereon computer
`executable code, including instructions which, when
`executed by processor 12, can cause computer 10 to perform
`as described below. Suitable software incorporating the code
`may be readily developed and implemented by persons
`skilled in the art, in manners that will become apparent.
`0032. A method of operating computer 10, exemplary of
`an embodiment of the present invention, is described next
`with reference to FIGS. 2 to 7.
`0033 FIG. 2 is an exemplary screen shot of the desktop 28.
`As can be seen, desktop 10 includes a graphical user interface
`(GUI) 30 and a designated display region 32.
`0034 GUI 30 is displayed in a display region different
`from the designated display region 32 and includes a number
`ofuser interface elements (UIE) such as UIE 34 for providing
`an interface between a user (not shown) and a server applica
`tion 37 (not shown but see FIG. 3). The UIEs may present
`output from server application 37 and receive user input,
`particularly runtime user input, to server application 37.
`0035. In the depicted embodiment, display region 32 is
`managed by a manager application 39 (not shown but see
`FIG.3). In the depicted embodiment, manager application 39
`may be the Windows Vista Sidebar application. In other
`embodiments, manager application 39 may be formed as the
`Dashboard manager of the Mac OS X.
`0036) As can be understood, GUI 30 may be selectively
`displayed and may include one or more conventional UIES,
`such as widgets or UI controls. Each UIE may hold data and
`present an interface of the associated end-user application. A
`UIE may refer to any graphical component in a graphical user
`interface (GUI) and may be associated with one of both of
`input and output semantics.
`
`0037 GUI 30 may be created using object oriented pro
`gramming technique. UIES may be defined by objects (UIE
`objects) that are children of an object defining GUI 30.
`Objects may hold both code and data, and may provide an
`input oran output object, or both. For example, a UIE may be
`presented in the form of a window or sub-window with a
`particular appearance and behaviour. Each UIE may contain
`one or more UI controls, enabling user interaction or input,
`Such as to initiate an action, display information, or set values.
`A control may be a graphic object that represents operations
`or properties of another object, application or process. For
`example, a UIE object may include a window, a graphical
`element or a collection of graphical elements such as buttons
`including radio buttons, pushbuttons and the like, bars includ
`ing slider bars, menu bars, title bars, scroll bars and the like,
`boxes including text boxes, check boxes, combo boxes, spin
`boxes and the like, lists including drop-down lists, scrolling
`lists and the like, menus including popup menus, dropdown
`menus, cascade menus and the like, tickers, data entry fields,
`or any and all other paraphernalia that a window can have or
`contain.
`0038 A UIE object may belong to an object class and may
`implement procedures through its class structure. A UIE
`object may provide a combination of state(s) and procedure
`(s). Each UIE may be a member of a class, which holds the
`procedures and data structures common to all UIEs of that
`class. An instance of the class may hold the procedures and
`data structures particular to that single instance. Each UIE
`class may provide the general behaviour associated with a
`particular kind of interaction with the user, such as input or
`output behaviour. UIES Such as widgets and controls are
`commonly used in computing and can be readily constructed
`by those skilled in the art. The different UIEs forming GUI 30
`may be displayed at the same time or at different times,
`depending on the particular application and user selection or
`preference.
`0039. One or more graphical user interfaces, such as gad
`get interfaces 36A and 36B (also individually and collectively
`referred to as gadget interface or interfaces 36), are specifi
`cally presented in designated display region 32. Designated
`display region 32 typically has a pre-defined location on one
`desktop (or on an extended desktop). Such as on the side of a
`display screen, as shown. In a different embodiment, region
`32 may be replaced with any designated display region or area
`wherein one or more graphical user interfaces are only dis
`played on the occurrence of certain events. For example, the
`MacOS X Dashboard similarly presents graphical user inter
`faces, on an overlay that occupies the entire Screen upon user
`interaction with an icon.
`0040 Region 32 may be positioned on the side of a display
`as shown or at another convenient location. Region32 may be
`positioned to avoid cluttering the work space in desktop win
`dow 28. Region 32 may also be positioned to avoid blocking
`other application windows displayed in desktop window 28.
`As can be appreciated, Region 32 may have various sizes,
`shapes, or locations. Region 32 may be resizable or re-locat
`able. In some embodiments, region 32 or any user interface
`displayed therein may be selectively hidden from view or
`activated at user's choice. Region 32 may be expandable Such
`as when a user clicks on a particular gadget interface to have
`an expanded view of the gadget interface.
`0041. A user interface 36 such as gadget interface 36B
`may provide instant access by a user. While only two user
`interfaces are displayed in region 32, it should be understood
`
`UNIFIED PATENTS EXHIBIT 1037
`UNIFIED PATENTS, LLC v. MEMORYWEB, LLC
`IPR2021-01413
`Page 11 of 17
`
`
`
`US 2008/O 126958 A1
`
`May 29, 2008
`
`that a different number of gadget interfaces may be displayed.
`A gadget interface may include one or more UIES, as can be
`understood by a person skilled in the art. For example, a
`gadget interface 36B may display a clock, a control panel, a
`news-feeder, a ticker, an email viewer, or the like. The exact
`format of the gadget interface may be defined using HTML or
`a similar scripting language as detailed in Microsoft Sidebar
`for Windows Vista Beta 2 Gadget Development Overview,
`Supra. A displayed gadget interface may be associated with an
`underlying script or program object which performs certain
`computing functions.
`0042. In the depicted embodiment, user interfaces 36 are
`graphical interfaces of gadgets. However, in other embodi
`ments, user interfaces 36 could be GUIs for other applications
`or components of applications which a user may wish to have
`ready access during use.
`0043 Conventionally, a gadget interface 36 is added by
`adding a gadget for management by manager application 39.
`In manners exemplary of embodiments of the present inven
`tion, a user interface 36, Such as gadget interface 36B, may be
`added at runtime as described and illustrated with reference to
`FIGS. 3 and 4.
`0044 FIG. 3 schematically illustrates the various com
`puter applications that may be involved in an exemplary pro
`cess of adding a graphical user interface in a designated
`display region 32, and their interrelations with each other and
`with the displayed objects shown in FIG. 2. The applications
`include server application 37, user interface configuration
`application 38, manager application 39, an optional system
`server 40, and a gadget (or gadgets) 41.
`0045. As illustrated, a UIE 34 is associated with GUI 30 of
`server application 37 for interfacing server application 37
`with a user. Server application 37 may be any suitable appli
`cation executing on computer 10.
`0046. In the depicted embodiment, server application 37
`and gadget 41 have a server-client relationship with each
`other, in that data from server application 37 is provided to
`gadget 41, and interaction with the gadget interface of gadget
`41 may provide data to server application37. Thus, gadget 41
`may be considered a client application with respect to server
`application37. For example, server application 37 may be the
`Catalyst Control Center (CCC) developed by ATITM Tech
`nologies Inc., and gadget 41 may agadget designed to provide
`a user interface for the CCC.
`0047 GUI 30 includes UIE 34 may be an interface for any
`component, part, feature or aspect of server application 37.
`0048 User interface configuration application 38 may
`communicate with one or both of system server 40 and server
`application 37. User interface configuration application 38
`may take the form of an application Suitable for creating or
`configuring user interfaces Such as gadgets, exemplary of an
`embodiment of the present invention. In one embodiment,
`user interface configuration application 38 may be executing
`in the background. User interface configuration application
`38 may communicate directly or indirectly with server appli
`cation37 and manager application39. User interface configu
`ration application 38 may also communicate with system
`server 40. User interface configuration application 38 may
`listen for requests of adding user interfaces to desktop 28, and
`more particularly to region 32, for example, originating with
`server application37. On requests from server application37.
`system server 40, or another application, user interface con
`figuration application 38 may dynamically configure a client
`application, Such as a gadget, and cause the display of addi
`
`tional or modified UIES, that may be added to region 32, as
`will be further described below.
`0049 Manager application 39 manages the presentation of
`user interfaces in region 32. Manager application 39 may be
`in communication with user interface configuration applica
`tion 38 and system server 40. Exemplary manager application
`39 may take the form of the Windows Sidebar, the GoogleTM
`Desktop Sidebar, the Mac OS X Dashboard application, or
`the like. In the literature and herein, the term “sidebar” is
`sometimes used to refer to one or both of the physical display
`area and the underlying application or the associated program
`code, depending on the context. Manager application 39 may
`present the list of available gadgets that may be presented for
`user selection, and the associated gadget interface may be
`displayed.
`0050 System server 40 provides inter process/application
`communication to applications running on computer 10. For
`example, System server 40 may serve as a data server. In one
`embodiment, system server 40 may include a Catalyst Con
`trol Center Runtime data server (CCC Runtime). The CCC
`runtime may be compliant with the .Net framework or another
`Suitable communication framework Such as Internet Informa
`tion Services (IIS). System server 40 may communicate with
`one or more of applications 37,38, and 39 and gadget 41.
`0051 Communication between the applications operating
`on computer 10 may be provided according to any Suitable
`inter-process communication (IPC) protocol by way of Suit
`able API. For example, the Microsoft .Net remoting API may
`be used under the .Net framework to facilitate communica
`tion between different applications. .NET Remoting is an
`enabler for application communication. It is a generic system
`for different applications to use to communicate with one
`another. .NET objects are exposed to remote processes, thus
`allowing inter-process communication. The applications can
`be located on the same computer, different computers on the
`same network, or even computers across separate networks.
`As can be understood, with a .Net Remoting API, and the
`assistance of an operating system and network agents, a client
`process can send a message to server 40 and receive a reply.
`Thus, two separate client processes may communicate with
`each other through the server 40, using the .Net Remoting
`technique.
`0052. Other IPC APIs, standards, architectures, or frame
`works may also be used for communication between different
`applications or processes, which include Object Linking and
`Embedding (OLE), Component Object Model (COM). Dis
`tributed Component Object Model (DCOM), ActiveX, Win
`dows Communication Foundation (WCF), Common Object
`Request Broker Architecture (CORBA), Distributed Com
`puting Environment (DCE), Java Remote Method Invocation
`(Java RMI), IIS, and the like.
`0053 Communication, Such as data communication, que
`ries and function calls between different applications
`domains/servers, may be implemented in any suitable man
`ner. For instance, the HyperText Transfer Protocol (HTTP)
`may be used. Other functionalities and techniques may also
`be implemented. For example, one or more of the Object
`Linking and Embedding (OLE) functionalities, Component
`Object Model (COM) serve