A method (1000) and apparatus for generating an interface comprising a plurality of screens, on a first computer (107) for display by a second computer (102) is disclosed. A hierarchical compositing expression representing an arrangement of one or more graphical objects for a first screen of the interface is constructed. A description of the compositing expression is then transmitted to the second computer (102), together with object identifiers corresponding to graphical objects for the first screen. The compositing expression is reconstructed based on the transmitted description and identifiers, where the transmitted identifiers are mapped to a description of each of the graphical objects stored within the second computer (102). The first screen of said interface is then displayed according to the reconstructed compositing expression.
|
1. A method of generating an interface comprising a plurality of screens, on a first computer for display by a second computer, said method comprising the steps of:
(i) constructing a compositing tree comprising one or more graphical objects and one or more compositing operations for compositing the graphical objects for a first screen of the interface;
(ii) transmitting a description of the compositing tree, to the second computer, together with object identifiers corresponding to the graphical objects for the first screen;
(iii) reconstructing the compositing tree based on the transmitted description and identifiers, wherein the transmitted identifiers are mapped to a description of each of the graphical objects stored within the second computer;
(iv) displaying the first screen of the interface according to the reconstructed compositing tree; and
(v) transmitting an event generated by the second computer to the first computer;
(vi) modifying any of the graphical objects affected by the event, wherein the graphical objects affected by the event are animation objects;
(vii) updating the compositing tree based on the modified graphical objects; and
(viii) repeating at least steps (ii) to (iv) for at least one subsequent screen of the interface.
7. A method of displaying an interface comprising a plurality of screens, on a first computer, the interface being generated by a second computer, said method comprising the steps of:
(i) constructing a compositing tree comprising one or more graphical objects and one or more compositing operations for compositing the graphical objects for a first screen of the interface;
(ii) transmitting a description of the compositing tree, to the first computer, together with object identifiers corresponding to the graphical objects for the first screen;
(iii) reconstructing the compositing tree based on the transmitted description and identifiers, wherein the transmitted identifiers are mapped to a description of each of the graphical objects stored within the first computer;
(iv) displaying the first screen of the interface according to the reconstructed compositing tree; and
(v) transmitting an event generated in the first computer to the second computer;
(vi) modifying any of the graphical objects affected by the event, wherein the graphical objects affected by the event are animation objects;
(vii) updating the compositing tree based on the modified graphical objects; and
(viii) repeating at least steps (ii) to (iv) for at least one subsequent screen of the interface.
19. A computer-readable storage medium storing a computer program, executable on a first computer for generating an interface comprising a plurality of screens, for display by a second computer, said program comprising:
code for constructing a compositing tree comprising one or more graphical objects and one or more compositing operations for compositing the graphical objects for a first screen of the interface;
code for transmitting a description of the compositing tree, to the second computer, together with object identifiers corresponding to the graphical objects for the first screen;
code for reconstructing the compositing tree based on the transmitted description and identifiers, wherein the transmitted identifiers are mapped to a description of each of the graphical objects stored within the second computer;
code for displaying the first screen of the interface according to the reconstructed compositing tree;
code for transmitting an event generated by the second computer to the first computer;
code for modifying any of the graphical objects affected by the event;
wherein the graphical objects affected by the event are animation objects; and
code for updating the compositing tree based on the modified graphical objects in order to display at least one subsequent screen of the interface.
21. A computer-readable storage medium storing a computer program, executable on a first computer, for displaying an interface comprising a plurality of screens, the interface being generated by a second computer, said program comprising:
code for constructing a compositing tree comprising one or more graphical objects and one or more compositing operations for compositing the graphical objects for a first screen of the interface;
code for transmitting a description of the compositing tree, to the first computer, together with object identifiers corresponding to the graphical objects for the first screen;
code for reconstructing the compositing tree based on the transmitted description and identifiers, wherein the transmitted identifiers are mapped to a description of each of the graphical objects stored within the first computer;
code for displaying the first screen of the interface according to the reconstructed compositing tree;
code for transmitting an event generated by the first computer to the second computer;
code for modifying any of the graphical objects affected by the event;
wherein the graphical objects affected by the event are animation objects; and
code for updating the compositing tree based on the modified graphical objects in order to display a least one subsequent screen of the interface.
10. An apparatus for generating an interface comprising a plurality of screens, on a first computer for display by a second computer, said apparatus comprising:
construction means for constructing a compositing tree comprising one or more graphical objects and one or more compositing operations for compositing the graphical objects for a first screen of the interface;
transmission means for transmitting a description of the compositing tree, to the second computer, together with object identifiers corresponding to the graphical objects for the first screen;
reconstruction means for reconstructing the compositing tree based on the transmitted description and identifiers, wherein the transmitted identifiers are mapped to a description of each of the graphical objects stored within the second computer;
display means for displaying the first screen of the interface according to the reconstructed compositing tree;
further transmission means for transmitting an event generated by the second computer to the first computer;
modifying means for modifying any of the graphical objects affected by the event, wherein the graphical objects affected by the event are animation objects; and
updating means for updating the compositing tree based on the modified graphical objects in order to display at least one subsequent screen of the interface.
16. An apparatus for displaying an interface comprising a plurality of screens, on a first computer, the interface being generated by a second computer, said apparatus comprising:
constructing means for constructing a compositing tree comprising one or more graphical objects and one or more compositing operations for compositing the graphical objects for a first screen of the interface;
transmitting means for transmitting a description of the compositing tree, to the first computer, together with object identifiers corresponding to the graphical objects for the first screen;
reconstructing means for reconstructing the compositing tree based on the transmitted description and identifiers, wherein the transmitted identifiers are mapped to a description of each of the graphical objects stored within the first computer;
display means for displaying the first screen of the interface according to the reconstructed compositing tree;
further transmitting means for transmitting an event generated by the first computer to the second computer;
modifying means for modifying any of the graphical objects affected by the event, wherein the graphical objects affected by the event are animation objects; and
updating means for updating the compositing tree based on the modified graphical objects in order to display a least one subsequent screen of the interface.
5. A method of generating an interface, comprising a plurality of screens, on a first computer for display by a second computer, each of the screens comprising one or more graphical objects, wherein each of the graphical objects has an associated identifier, said method comprising the steps of:
(i) storing a first description of each of the graphical objects together with the associated identifiers, within the first computer;
(ii) constructing a compositing tree utilizing one or more of the stored first descriptions, the compositing tree comprising graphical objects and one or more compositing operations for compositing the graphical objects for a first screen of the interface;
(iii) transmitting a description of the compositing tree, to the second computer, together with object identifiers corresponding to the graphical objects for the first screen;
(iv) reconstructing the compositing tree based on the transmitted description and identifiers, wherein the transmitted identifiers are mapped to second descriptions of each of the graphical objects stored within the second computer;
(v) displaying the first screen of the interface according to the reconstructed compositing tree; and
(vi) transmitting an event generated by the second computer to the first computer;
(vii) modifying any of the graphical objects affected by the event, therein the graphical objects affected by the event are animation objects;
(viii) updating the compositing tree based on the modified graphical objects; and
(ix) repeating at least steps (iii) to (v) for at least one subsequent frame of the interface.
20. A computer-readable storage medium storing a computer program, executable on a first computer, for generating an interface, comprising a plurality of screens, for display by a second computer, each of the screens comprising one or more graphical objects, wherein each of the graphical objects has an associated identifier, said program comprising:
code for storing a first description of each of the graphical objects together with the associated identifiers, within the first computer;
code for constructing a hierarchical compositing tree utilising one or more of the stored first descriptions, the compositing tree comprising one or more graphical objects and one or more compositing operations for compositing the graphical objects for a first screen of the interface;
code for transmitting a description of the compositing tree, to the second computer, together with object identifiers corresponding to the graphical objects for the first screen;
code for reconstructing the compositing tree based on the transmitted description and identifiers, wherein the transmitted identifiers are mapped to second descriptions of each of the graphical objects stored within the second computer;
code for displaying the first screen of the interface according to the reconstructed compositing tree;
code for transmitting an event generated by the second computer to the first computer;
code for modifying any of the graphical objects affected by the event;
wherein the graphical objects affected by the event are animation objects; and
code for updating the compositing tree based on the modified graphical objects in order to display at least one subsequent screen of the interface.
14. An apparatus for generating an interface comprising a plurality of screens, on a first computer for display by a second computer, each of the screens comprising one or more graphical objects, wherein each of the graphical objects has an associated identifier, said apparatus comprising:
storing means for storing a first description of each of the graphical objects together with the associated identifiers, within the first computer;
constructing means for constructing a compositing tree utilising one or more of the stored first descriptions, the compositing tree comprising one or more graphical objects and one or more compositing operations for compositing the graphical objects for a first screen of the interface;
transmitting means for transmitting a description of the compositing tree, to the second computer, together with object identifiers corresponding to the graphical objects for the first screen;
reconstructing means for reconstructing the compositing tree based on the transmitted description and identifiers, wherein the transmitted identifiers are mapped to second descriptions of each of the graphical objects stored within the second computer;
display means for displaying the first screen of the interface according to the reconstructed compositing tree;
further transmitting means for transmitting an event generated by the second computer to the first computer;
modifying means for modifying any of the graphical objects affected by the event, wherein the graphical objects affected by the event are animation objects; and
updating means for updating the compositing tree based on the modified graphical objects in order to display at least one subsequent screen of the interface.
2. A method according to
3. A method according to
4. A method according to
(ix) updating descriptions of the modified graphical objects corresponding to the affected animation objects; and
(x) forwarding the updated descriptions to the second computer for storage and display.
6. A method according to
8. A method according to
9. A method according to
11. An apparatus according to
12. An apparatus according to
13. An apparatus according to
updating means for updating descriptions of the modified graphical objects corresponding to the affected animation objects; and
forwarding means for forwarding the updated descriptions to the second computer for storage and display.
15. An apparatus according to
17. An apparatus according to
18. An apparatus according to
|
This application claims the right of priority under 35 U.S.C. §119 based on Australian Patent Application No. PS1459, filed Mar. 28, 2002, which is incorporated by reference herein in its entirety as if fully set forth herein.
The present invention relates generally to graphical user interfaces, and in particular to the provision of such interfaces using a networked client/server system. The present invention relates to a method and apparatus for providing graphical user interfaces using a networked client/server system. The invention also relates to a computer program product including a computer readable medium having recorded thereon a computer program for providing graphical user interfaces using a networked client/server system.
Before proceeding with a description of the background art, a brief review of terminology to be used throughout the following description is appropriate.
In an object oriented programming environment, such as Visual C++, the term “object” is used to refer to a computer software component comprising data structures, and procedures (often referred to as methods) for manipulating the data structures. Objects can communicate with one another by sending messages using some form of communications protocol. The procedures of a particular object can be activated by a message sent from another object, where the interior structure of each object is entirely hidden from any other object (a property referred to as encapsulation). Each object can have one or more associated interfaces, which specify the communication between two objects. For example, each object can have its own private variables and if a procedure contained within a specific object does not refer to non-local variables then the interface of the object is defined by a parameter list contained within the object. Variables of an object store information but do not define how that information is processed.
Objects are derived from a template or type of object, and the collection of objects that are derived from a particular template are said to form a class. Each object in a class is referred to as an ‘instance’ of that class. A class definition defines the attributes (i.e. properties) of the objects within a particular class. Generally, the objects within a class are ordered in a hierarchical manner such that an object has a parent object (i.e. super-class) at the next higher level in the hierarchy and one or more child objects (i.e. sub-class) at the next lower level. An object is generally mapped to a parent object or a child object by means of a mapping table, often referred to as a sibling table, which is associated with the object.
As described above, each object can have various attributes associated with the object. Attributes can be local to that object, or can be inherited from the parent object. Inheritance is the term given to the manner in which characteristics of objects can be replicated and instantiated in other objects. Attributes of an object can also be inherited from a child object often without limit on the number of inheritances. The object from which all of the objects within the class are derived is referred to as the base class object.
Inheritance is both static by abstract data type and dynamic by instantiation and value. Inheritance rules define that which can be inherited and inheritance links define the parent and child of inheritance attributes.
Generally, an object has a permanent connection with a parent application program. However, some objects (e.g. embedded objects) have no permanent connection with a parent application. In this case, when the object is activated the parent application is generally launched. For example, a button object on a graphical user interface, when activated might cause a certain application program to execute in order to perform some function.
Graphical user interfaces are typically used to present information to an end user in a visually pleasing manner and to allow the user to interact with a corresponding application program, for example, using a pointing device or a keyboard. In particular, with the advent of the Internet, many users have become accustomed to simply providing an Internet browser software application, executing on a client computer, hereinafter referred to as a “client”, with an application program reference. The browser software application retrieves information, according to the reference, which is then returned to the client for display as a combination of text, graphics and images.
For the end user, the quality of presentation of information can be an important aspect in choosing a product to purchase or use. This has been well recognised by information technology companies, resulting in the emergence of several software tools for assisting the construction of such graphical interfaces. Some of these tools include processes, which allows a graphical user interface-generating program to execute within browser software on a client. Such tools also allow for the provision of dynamically created content to the user. A further advantage of such software tools is that the client needs only to be configured with a standard web browser, for example, without needing installation or configuration of specialised software for an application being executed on a remote server computer hereinafter referred to as a “server”. A still further advantage of such software tools is that a heterogeneous network of clients can be used, where the clients differ in operating systems, central processing units and further, hardware and software configurations. The graphical information can be dynamically generated on such clients requiring a much lower bandwidth than would otherwise be needed if pixel information was directly transmitted to the client from a server.
In addition, since a client does not retain prior knowledge of an application being executed on a remote server, applications can be more easily up-gradable, since such applications need only be updated at the corresponding server. For example, a graphical user interface can be changed completely, without requiring any cooperation from the clients. The ability to easily customise and modify a graphical user interface over time can be an important feature of a product, especially in response to feedback and requests from end users.
Whilst a computer system which allows a graphical user interface generating program to execute on a client is an extremely powerful and useful tool, such a tool can present many limitations and restrictions to a user due to security restrictions which are associated with the graphical user interface. These security restrictions are necessary due to the nature of the Internet, which would otherwise easily permit both unwanted access and destruction of personal data. An additional disadvantage of such a system is that a program executing on a client is therefore not under the direct control of a server.
In addition, in order to graphically display changes in the state of a graphical user interface presented by a server, corresponding client software typically has to periodically poll the server for changes. Such polling often results in the fetching of a newly updated application program as a replacement to an existing one, and execution of this new application program. Polling introduces an extra element of complexity in the writing of such an application program in that the program must be configured to execute the action of polling the server. Additionally, the need to execute a new program introduces inefficiency and slow response time particularly where only small updates are required to a graphical user interface being displayed on a graphical display.
In order to overcome the limitations of conventional client/server computer systems discussed above, software tools have been developed to allow a program to execute on a server in response to a request from a client. Such a program, upon completing the request originating from the client, responds to the client with the requested information embedded within a graphical description included within the response, perhaps even embedding a program for the client to execute. Software tools that allow a program to execute on a server, in response to a request from a client, permit dynamic graphical content generation as well as server data access and manipulation. However, such tools are configured to work over the Internet, which inherently presents unpredictable delays in network traffic, and is driven by client requests rather than server initiative.
Thus, a need clearly exists for an improved method of displaying visual effects on a client, which would otherwise require both significant software and processing power on the part of the client.
It is an object of the present invention to substantially overcome, or at least ameliorate, one or more disadvantages of existing arrangements.
According to one aspect of the present invention there is provided a method of generating an interface comprising a plurality of screens, on a first computer for display by a second computer, said method comprising the steps of:
(i) constructing a hierarchical compositing expression representing an arrangement of one or more graphical objects for a first screen of said interface;
(ii) transmitting a description of said compositing expression, to said second computer, together with object identifiers corresponding to graphical objects for said first screen;
(iii) reconstructing said compositing expression based on said transmitted description and identifiers, wherein said transmitted identifiers are mapped to a description of each of said graphical objects stored within said second computer;
(iv) displaying said first screen of said interface according to said reconstructed compositing expression; and
(v) updating said hierarchical compositing expression and repeating steps (ii) to (v) for each subsequent screen of said interface.
According to another aspect of the present invention there is provided a method of generating an interface, comprising a plurality of screens, on a first computer for display by a second computer, each of said screens comprising one or more graphical objects, wherein each of said graphical objects has an associated identifier, said method comprising the steps of:
(i) storing a first description of each of said graphical objects together with said associated identifiers, within said first computer;
(ii) constructing a hierarchical compositing expression utilising one or more of said stored first descriptions, said hierarchical compositing expression representing an arrangement of graphical objects for a first screen of said interface;
(iii) transmitting a description of said compositing expression, to said second computer, together with object identifiers corresponding to graphical objects for said first screen;
(iv) reconstructing said compositing expression based on said transmitted description and identifiers, wherein said transmitted identifiers are mapped to second descriptions of each of said graphical objects stored within said second computer;
(v) displaying said first screen said interface according to said reconstructed compositing expression; and
(vi) updating said hierarchical compositing expression and repeating steps (iii) to (v) for each subsequent frame of said interface.
According to still another aspect of the present invention there is provided a method of displaying an interface comprising a plurality of screens, on a first computer, said interface being generated by a second computer, said method comprising the steps of:
(i) constructing a hierarchical compositing expression representing an arrangement of one or more graphical objects for a first screen of said interface;
(ii) transmitting a description of said compositing expression, to said first computer, together with object identifiers corresponding to graphical objects for said first screen;
(iii) reconstructing said compositing expression based on said transmitted description and identifiers, wherein said transmitted identifiers are mapped to a description of each of said graphical objects stored within said first computer;
(iv) displaying said first screen of said interface according to said reconstructed compositing expression; and
(v) updating said hierarchical compositing expression and repeating steps (ii) to (v) for each subsequent screen of said interface.
According to still another aspect of the present invention there is provided an apparatus for generating an interface comprising a plurality of screens, on a first computer for display by a second computer, said apparatus comprising:
construction means for constructing a hierarchical compositing expression representing an arrangement of one or more graphical objects for a first screen of said interface;
transmission means for transmitting a description of said compositing expression, to said second computer, together with object identifiers corresponding to graphical objects for said first screen;
reconstruction means for reconstructing said compositing expression based on said transmitted description and identifiers, wherein said transmitted identifiers are mapped to a description of each of said graphical objects stored within said second computer; and
display means for displaying said first screen of said interface according to said reconstructed compositing expression.
According to still another aspect of the present invention there is provided an apparatus for generating an interface comprising a plurality of screens, on a first computer for display by a second computer, each of said screens comprising one or more graphical objects, wherein each of said graphical objects has an associated identifier, said apparatus comprising:
storing means for storing a first description of each of said graphical objects together with said associated identifiers, within said first computer;
constructing means for constructing a hierarchical compositing expression utilising one or more of said stored first descriptions, said hierarchical compositing expression representing an arrangement of graphical objects for a first screen of said interface;
transmitting means for transmitting a description of said compositing expression, to said second computer, together with object identifiers corresponding to graphical objects for said first screen;
reconstructing means for reconstructing said compositing expression based on said transmitted description and identifiers, wherein said transmitted identifiers are mapped to second descriptions of each of said graphical objects stored within said second computer; and
display means for displaying said first screen of said interface according to said reconstructed compositing expression.
According to still another aspect of the present invention there is provided an apparatus for displaying an interface comprising a plurality of screens, on a first computer, said interface being generated by a second computer, said apparatus comprising:
constructing means for constructing a hierarchical compositing expression representing an arrangement of one or more graphical objects for a first screen of said interface;
transmitting means for transmitting a description of said compositing expression, to said first computer, together with object identifiers corresponding to graphical objects for said first screen;
reconstructing means for reconstructing said compositing expression based on said transmitted description and identifiers, wherein said transmitted identifiers are mapped to a description of each of said graphical objects stored within said first computer; and
display means for displaying said first screen of said interface according to said reconstructed compositing expression.
According to still another aspect of the present invention there is provided a program for generating an interface comprising a plurality of screens, on a first computer for display by a second computer, said program comprising:
code for constructing a hierarchical compositing expression representing an arrangement of one or more graphical objects for a first screen of said interface;
code for transmitting a description of said compositing expression, to said second computer, together with object identifiers corresponding to graphical objects for said first screen;
code for reconstructing said compositing expression based on said transmitted description and identifiers, wherein said transmitted identifiers are mapped to a description of each of said graphical objects stored within said second computer; and
code for displaying said first screen of said interface according to said reconstructed compositing expression.
According to still another aspect of the present invention there is provided a program for generating an interface, comprising a plurality of screens, on a first computer for display by a second computer, each of said screens comprising one or more graphical objects, wherein each of said graphical objects has an associated identifier, said program comprising:
code for storing a first description of each of said graphical objects together with said associated identifiers, within said first computer;
code for constructing a hierarchical compositing expression utilising one or more of said stored first descriptions, said hierarchical compositing expression representing an arrangement of graphical objects for a first screen of said interface;
code for transmitting a description of said compositing expression, to said second computer, together with object identifiers corresponding to graphical objects for said first screen;
code for reconstructing said compositing expression based on said transmitted description and identifiers, wherein said transmitted identifiers are mapped to second descriptions of each of said graphical objects stored within said second computer; and
code for displaying said first screen said interface according to said reconstructed compositing expression.
According to still another aspect of the present invention there is provided a program for displaying an interface comprising a plurality of screens, on a first computer, said interface being generated by a second computer, said program comprising:
code for constructing a hierarchical compositing expression representing an arrangement of one or more graphical objects for a first screen of said interface;
code for transmitting a description of said compositing expression, to said first computer, together with object identifiers corresponding to graphical objects for said first screen;
code for reconstructing said compositing expression based on said transmitted description and identifiers, wherein said transmitted identifiers are mapped to a description of each of said graphical objects stored within said first computer; and
code for displaying said first screen of said interface according to said reconstructed compositing expression.
Other aspects of the invention are also disclosed.
One or more arrangements of the present invention will now be described with reference to the drawings, in which:
Where reference is made in any one or more of the accompanying drawings to steps and/or features, which have the same reference numerals, those steps and/or features have for the purposes of this description the same function(s) or operation(s), unless the contrary intention appears.
A method 1000, seen depicted in
The servers 107 and 108, and the clients 101 to 106 can be implemented as general-purpose computers, such as those shown in
The steps of the methods described herein are effected by instructions in the software that are carried out by one of the clients 101 to 106 or the server 107 or 108. The instructions may be formed as one or more code modules, each for performing one or more particular tasks. The software may also be divided into two separate parts, in which a first part performs the methods and a second part manages the host graphical user interface between the first part and the user. The software may be stored in a computer readable medium, including the storage devices described below, for example. The software is loaded into the computer from the computer readable medium, and then executed by the computer. A computer readable medium having such software or computer program recorded on it is a computer program product. The use of the computer program product in the computer preferably effects an advantageous apparatus for performing the methods.
As seen in
The computer module 201 typically includes at least one processor unit 205, a memory unit 206, for example formed from semiconductor random access memory (RAM) and read only memory (ROM), input/output (I/O) interfaces including a video interface 207, and an I/O interface 213 for the keyboard 202 and mouse 203 and optionally a joystick (not illustrated), and an interface 208 for the modem 216. A storage device 209 is provided and typically includes a hard disk drive 210 and a floppy disk drive 211. A magnetic tape drive (not illustrated) may also be used. A CD-ROM drive 212 is typically provided as a non-volatile source of data. The components 205 to 213 of the computer module 201, typically communicate via an interconnected bus 204 and in a manner which results in a conventional mode of operation of the computer 107 known to those in the relevant art. Examples of computers on which the described arrangements can be practised include IBM-PC's and compatibles, Sun Sparcstations or alike computer systems evolved therefrom.
As seen in
The computer module 301 includes at least one processor unit 305, a memory unit 306, for example formed from semiconductor random access memory (RAM) and read only memory (ROM), input/output (I/O) interfaces including a video interface 307, and an I/O interface 313 for the keyboard 302 and mouse 303 and optionally a joystick (not illustrated), and an interface 308 for the modem 316. A storage device 309 is provided and typically includes a hard disk drive 310 and a floppy disk drive 311. A magnetic tape drive (not illustrated) may also be used. A CD-ROM drive 312 is typically provided as a non-volatile source of data. The components 305 to 313 of the computer module 301, typically communicate via an interconnected bus 304 and in a manner which results in a conventional mode of operation of the computer 102 known to those in the relevant art.
In addition, the method 1200 performed by the server 107 for establishing a communications channel with the client 102, will be explained below with reference to
Again referring to
The browser plug-in software of the client 102, having been executed, uses the parameters supplied by the HTML instruction to connect to the specified socket of the server 107, and requests the graphical user interface specified by the name parameter in the instruction, as represented by the arrow 503. The processor 305 of the client 102 supplies further parameters as part of the request, including window dimensions at which the graphical user interface is to be presented on the display 314.
The processor 205 of the server 106 receives the request from the client 102, and spawns a child process to deal with the request. Further, communications from the client 102 are then directed to the child process. After having created the child process, the server 107 continues to listen for new client requests from graphical user interfaces. The child process, then executes a script containing a graphical description for the user interface. The script describes a compositing tree consisting of the graphical objects to be displayed and instructions of how the graphical objects are to be arranged on the display 314, taking into consideration the window dimension parameters specified by the client request. After constructing the compositing tree as per the script, the processor 205 then streams a description of the compositing tree to the client 102, as represented by the arrow 504. The description is then used by the client 102 to reassemble the compositing tree description and update the display 314.
Referring to
The method 1100 continues at the next step 1113, where the processor 305 receives the description of the compositing tree from the server 107 and reassembles the compositing tree. The method 1100 concludes at the next step 1115, where the display 314 is updated, by the processor 305, according to the compositing tree.
Referring to
The method 1300 of interpreting the script and constructing the compositing tree structure 603, as performed by the processor 205 at steps 1207 and 1209, will now be explained in further detail with reference to
The method 1300 continues at the next step 1307, where having constructed the compositing tree structure 603 to be displayed, the processor 205 writes a binary description corresponding to each of the graphical object 605, 607 and 609 to a buffer 701 as shown in
Referring to
As described above, upon receiving the contents of the buffer 701 from the processor 205 of the server 107, the processor 305 of the client 102 executes the client plug-in software. The client plug-in software is configured to construct structures according to a rendering library, configured within the memory (e.g. the memory 306) of the client 102, in preparation for rendering the graphical objects 605 and 609 on the display 314.
In transmitting graphical object based incremental information from the server 107, a smaller amount of bandwidth than would otherwise be required if pixel information was transmitted, results in faster response time to a user. Transmission of pixel data typically also requires compression in order to meet practical bandwidth requirements, again significantly reducing the response time to the user.
The method 1000 of generating a graphical user interface, will now be explained in more detail with reference to
Script defined graphical user interfaces can be triggered in a number of ways, including a user event being reported by the client 102, the passing of a specified amount of time, or the termination of a previously triggered user interface. An animation object is created with the properties specified in the description of the script (e.g. the script 601). In addition to specifying a graphical object to be animated, a relevant attribute, starting and ending values and interpolation type, the properties in the script can also include the frame (display) rate at which to execute a corresponding animation, and the terminating condition for the animation. The terminating conditions available for an animation include run once, run once and call a scripted routine when complete, or loop continuously.
In the arrangements described above, user generated mouse interaction events are responded to using a technique known as hit testing. In the hit testing method, mouse interaction events are responded to by finding a top most graphical object currently being displayed on the client display 314 and having dimensions which overlap with present coordinates of a mouse pointer (e.g. the mouse 303) on the client display 314.
Two types of software configurations are described below for responding to user interaction with a pointing device such as the mouse 303. Referring to
The second software configuration described herein for responding to user interaction events with a pointing device comprises the components 901 to 906 of
The arrangements described above with reference to
In addition, the arrangements described above provide the added advantage to a designer of a graphical user interface, in that the client 102/server 107 interaction is abstracted from the description of the graphical interface. The described arrangements also handle all necessary communications, not only making the designer's initial task simpler, but also allowing modifications to an existing description of a graphical user interface much easier.
The described arrangements can alternatively be implemented in dedicated hardware such as one or more integrated circuits performing the functions or sub functions of
The aforementioned described methods comprise a particular control flow. There are many other variants of the described methods which use different control flows without departing the spirit or scope of the invention. Furthermore one or more of the steps of the described methods may be performed in parallel rather sequentially.
The foregoing describes only some arrangements of the present invention, and modifications and/or changes can be made thereto without departing from the scope and spirit of the invention, the arrangements being illustrative and not restrictive.
Patent | Priority | Assignee | Title |
Patent | Priority | Assignee | Title |
5668997, | Oct 25 1994 | Apple Inc | Object-oriented system for servicing windows |
5712964, | Sep 29 1993 | Fujitsu Limited | Computer graphics data display device and method based on a high-speed generation of a changed image |
5926817, | Dec 29 1995 | Verizon Patent and Licensing Inc | Graphical user interface-based, client-server system and method for decision making applications |
5978834, | Sep 30 1997 | The United States of America as represented by the Secretary of the Navy | Platform independent computer interface software responsive to scripted commands |
5983190, | May 19 1997 | Microsoft Technology Licensing, LLC | Client server animation system for managing interactive user interface characters |
6052711, | Jul 01 1996 | Oracle America, Inc | Object-oriented system, method and article of manufacture for a client-server session web access in an interprise computing framework system. |
6078322, | Sep 30 1997 | The United States of America as represented by the Secretary of the Navy | Methods permitting rapid generation of platform independent software applications executed on a universal client device |
6161136, | Oct 16 1998 | CIENA LUXEMBOURG S A R L ; Ciena Corporation | High performance user interface and method of structuring same |
6489979, | Oct 30 1998 | International Business Machines Corporation | Non-computer interface to a database and digital library |
6667992, | Aug 04 1997 | Matsushita Electric Industrial Co., Ltd. | Network control system |
6954737, | Nov 05 2001 | JOHNSONDIVERSEY, INC | Method and apparatus for work management for facility maintenance |
7058654, | Jun 26 1998 | III Holdings 2, LLC | User interface and search system for internet and other applications |
7076453, | Oct 10 1997 | Microsoft Technology Licensing, LLC | System and method for designing and operating an electronic store |
20030118250, | |||
20030167213, | |||
20040051728, | |||
SE200301958, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Mar 25 2003 | Canon Kabushiki Kaisha | (assignment on the face of the patent) | / | |||
Apr 22 2003 | WILL, ALEXANDER | Canon Kabushiki Kaisha | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 014159 | /0077 |
Date | Maintenance Fee Events |
Aug 04 2010 | ASPN: Payor Number Assigned. |
Aug 02 2013 | REM: Maintenance Fee Reminder Mailed. |
Dec 22 2013 | EXP: Patent Expired for Failure to Pay Maintenance Fees. |
Date | Maintenance Schedule |
Dec 22 2012 | 4 years fee payment window open |
Jun 22 2013 | 6 months grace period start (w surcharge) |
Dec 22 2013 | patent expiry (for year 4) |
Dec 22 2015 | 2 years to revive unintentionally abandoned end. (for year 4) |
Dec 22 2016 | 8 years fee payment window open |
Jun 22 2017 | 6 months grace period start (w surcharge) |
Dec 22 2017 | patent expiry (for year 8) |
Dec 22 2019 | 2 years to revive unintentionally abandoned end. (for year 8) |
Dec 22 2020 | 12 years fee payment window open |
Jun 22 2021 | 6 months grace period start (w surcharge) |
Dec 22 2021 | patent expiry (for year 12) |
Dec 22 2023 | 2 years to revive unintentionally abandoned end. (for year 12) |