1460935798-855278b3-2fd8-4ed7-a897-e1f7fb128383

1. A buffer unit having a packet buffer for temporary storage of data packets, comprising:
a plurality of token buckets, each of which allows for temporary storage of tokens, each of the tokens authorizing transmission of a unit of data, wherein the token buckets have different token bucket sizes, respectively, and each token bucket size represents a maximum number of tokens that can be stored in a corresponding one of the token buckets;
a plurality of token controllers associated with the respective token buckets, and configured to remove and use equal numbers of tokens from the respective token buckets;
a plurality of token generators associated with the respective token buckets, wherein each token generator is configured to generate tokens at a token rate at which tokens are to be generated per unit time for a corresponding one of the token buckets, wherein each token rate is preset such that the larger the token bucket size of the corresponding token bucket, the lower the token rate for the corresponding token bucket, and wherein each token generator is further configured to add the generated tokens to the corresponding token bucket;
a plurality of token counters associated with the respective token buckets, wherein each token counter is configured to measure a used-token count which represents a number of tokens that were used from a corresponding one of the token buckets, and measure a stored-token count which represents a number of tokens stored in the corresponding token bucket, such that the stored-token count has a positive value representing a number of the tokens in the corresponding token bucket when the corresponding token bucket is not empty, and the stored-token count has a negative value having an absolute value representing a balance between a number of incoming tokens and a number of outgoing tokens, with respect to the token bucket size, when the corresponding token bucket is empty; and
a packet reader configured to read out of the packet buffer a number of data packets which depends on the measured value of the used-token count for each token buffer.
2. The buffer unit according to claim 1, wherein the plurality of token controllers are configured to use tokens from the respective token buckets every unit time; and the plurality of token generators are configured to add tokens to the respective token buckets at the respective token rates, each time the respective token controllers use tokens.
3. The buffer unit according to claim 1, wherein each token counter is configured to operate, when the measured stored-token count for the corresponding token bucket has a negative value, to increase the stored-token count toward a positive value, each time tokens are added to the corresponding token bucket.
4. The buffer unit according to claim 1, wherein the token buckets share a same maximum possible token use count which represents a maximum number of tokens which can be used from each token bucket at a time, and wherein the maximum possible token use count is preset depending on a maximum possible readout rate at which the packet reader can read the data packets from the packet buffer.
5. The buffer unit according to claim 4, wherein the plurality of token controllers are configured to operate, when at least one of the token buckets has stored therein a number of tokens equal to or more than the maximum possible token use count, to use tokens from the respective token buckets, a same number of tokens as the maximum possible token use count, and operate, when none of the token buckets has stored therein tokens equal to or more than the maximum possible token use count, to select one of the token buckets which has stored therein a largest number of tokens among the token buckets, and to use equal numbers of tokens from the respective token buckets, wherein each of the equal numbers is set to be a same as a number of tokens which have been stored in the selected token bucket.
6. A communication device for transmitting data packets, which includes the buffer unit constructed according to claim 1.
7. A method of controlling a buffer unit having a packet buffer for temporary storage of data packets, the buffer unit being configured to include a plurality of token buckets, each of which allows for temporary storage of tokens, each of the tokens authorizing transmission of a unit of data, wherein the token buckets have different token bucket sizes, respectively, and each token bucket size represents a maximum number of tokens that can be stored in a corresponding one of the token buckets, the method comprising:
removing and using equal numbers of tokens from the token buckets, respectively;
generating tokens at a token rate at which tokens are to be generated per unit time for each token bucket, wherein each token rate is preset such that the larger the token bucket size of each token bucket, the lower the token rate for each token bucket, and adding the generated tokens to the token buckets, respectively;
measuring a used-token count which represents a number of tokens that were used from each token bucket, and measuring a stored-token count which represents a number of tokens stored in each token bucket, such that the stored-token count has a positive value representing a number of the tokens in the corresponding token bucket when the corresponding token bucket is not empty, and the stored-token count has a negative value having an absolute value representing a balance between a number of incoming tokens and a number of outgoing tokens, with respect to the token bucket size, when each token bucket is empty; and
reading out of the packet buffer a number of data packets which depends on the measured value of the used-token count for each token buffer.
8. A computer-readable non-transitory storage medium having stored therein a program which, when executed by a computer, effects the method according to claim 7.
9. A method of controlling a buffer unit having a packet buffer for temporary storage of data packets, the buffer unit being configured to include a plurality of token buckets, each of which allows for temporary storage of tokens, each of the tokens authorizing transmission of a unit of data, wherein the token buckets have different token bucket sizes, respectively, and each token bucket size represents a maximum number of tokens that can be stored in a corresponding one of the token buckets, the method comprising:
removing and using equal numbers of tokens from the token buckets, respectively;
generating tokens at a token rate at which tokens are to be generated per unit time for each token bucket, wherein each token rate is preset such that the larger the token bucket size of each token bucket, the lower the token rate for each token bucket, and adding the generated tokens to the token buckets, respectively;
measuring a used-token count which represents a number of tokens that were used from each token bucket; and
reading out of the packet buffer a number of data packets which depends on the measured value of the used-token count for each token buffer.

The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.

1. A method of modifying a toolbar, comprising the steps of:
a user Internet device displaying a toolbar comprising one or more buttons, the toolbar defined by toolbar data stored in one or more toolbar-defining databases, the toolbar data comprising a plurality of attributes, each attribute associated with a button of the toolbar, wherein for each button of the toolbar, at least one of the plurality of attributes identifying a function to be performed when the button is actuated by the user Internet device;
the user Internet device automatically sending a revision level of the one or more toolbar-defining databases to a predetermined network address;
a server at the predetermined network address determining, from the revision level, the user Internet device should receive the toolbar update data;
the user Internet device receiving toolbar update data from the Internet;
the user Internet device initiating without user interaction an operation to update the toolbar data in accordance with the toolbar update data received;
the user Internet device updating, by the operation, the toolbar data in accordance with the toolbar update data, thereby producing updated toolbar data, the updating comprising at least one of the following steps (a) and (b), each respectively comprising:
(a) writing at least one new attribute to the original toolbar data, wherein the writing at least one new attribute to the toolbar data comprises changing the one or more buttons of the toolbar by adding a button; and
(b) updating at least one attribute of the toolbar data; and

the user Internet device displaying the toolbar as defined by the updated toolbar data.
2. The method of claim 1 wherein database responsive toolbar software installed in the user Internet device as part of a web browser displays the toolbar as defined by the toolbar data and the toolbar as defined by the updated toolbar data.
3. The method of claim 1, wherein the toolbar as defined by the toolbar data further comprises a plurality of tabs containing the one or more buttons.
4. The method of claim 1, wherein the one or more toolbar-defining databases comprises a file containing a plurality of name-value pairs comprising the plurality of attributes.
5. The method of claim 1, wherein the contents of the one or more toolbar-defining databases and the contents of the toolbar update data within the user Internet device are hidden from a user of the user Internet device.
6. The method of claim 5, wherein the contents of the one or more toolbar-defining databases and the contents of the toolbar update data within the user Internet device are hidden from the user by encryption.
7. The method of claim 1, wherein the plurality of attributes for each button of the toolbar as defined by the toolbar data comprises:
a button caption;
an enablement attribute specifying whether the button is enabled or disabled;
an execution type comprising the at least one of the plurality of attributes identifying the function to be performed;
a description of the button functionality; and
a location attribute specifying either a location of a file for the button function or a URL for the button function.
8. The method of claim 7, wherein the execution type for at least one button of the toolbar is selected from the group consisting of:
exchanging data between a first computer program within the user Internet device and a second computer program within the user Internet device;
exchanging data between a first computer program within the user Internet device and a second computer program within the user Internet device without obtaining a network connection;
launching a program or script;
launching a program or script and waiting for the program or script to complete before continuing;
obtaining a network connection and then launching a program or script;
changing a preference associated with the toolbar;
changing a password associated with the toolbar;
displaying account information;
setting network connection properties for the user computer;
executing a script;
causing at least a portion of a user interface of the toolbar program to jump to a tab or button of the toolbar; and
restoring a tab or button of the toolbar to a predetermined state.
9. The method of claim 1, wherein, for each button of the toolbar, the at least one of the plurality of attributes identifying the function to be performed comprises an execution type selected from a plurality of execution types.
10. The method of claim 1, wherein the function to be performed when at least one button of the toolbar as defined by the updated toolbar data is actuated by the user Internet device comprises opening a URL.
11. The method of claim 1, wherein the initiating of the operation occurs transparently.
12. The method of claim 1, further comprising the user Internet device receiving a script from the Internet, the script comprising the toolbar update data; and
wherein the operation to update the toolbar-defining database in accordance with the toolbar update data comprises the user Internet device executing the script.
13. The method of claim 12, wherein the script comprises specifications for the construction of the updated toolbar.
14. The method of claim 1, wherein the updating the toolbar data comprises writing at least one new attribute to the toolbar data.
15. The method of claim 14, wherein the writing at least one new attribute to the toolbar data comprises changing the one or more buttons of the toolbar by adding a button.
16. The method of claim 1, wherein the updating the toolbar data comprises updating at least one attribute of the toolbar data.
17. The method of claim 16, wherein the updating at least one attribute of the toolbar data comprises updating the one or more buttons of the toolbar.
18. The method of claim 16, wherein the updating at least one attribute of the toolbar data comprises changing the one or more buttons of the toolbar by removing a button.
19. The method of claim 1, wherein the updating of the toolbar data in accordance with the toolbar update data comprises inserting, by the operation, at least a portion of the toolbar update data into the one or more toolbar-defining databases.
20. The method of claim 1, wherein the updating of the toolbar data in accordance with the toolbar update data comprises updating an attribute defining a button caption, the attribute updating from a first caption to a second caption.
21. The method of claim 1, wherein the updating of the toolbar data in accordance with the toolbar update data comprises updating an attribute defining whether a button of the toolbar is enabled or disabled, the attribute updating from a first value to a second value.
22. The method of claim 1, wherein the updating of the toolbar data in accordance with the toolbar update data comprises updating an attribute defining a URL to be opened when a button of the toolbar is clicked, the attribute updating from a first URL to a second URL.
23. The method of claim 1, further comprising the user Internet device maintaining the display of the toolbar as defined by the updated toolbar data until a subsequent updating of the updated toolbar data.
24. A method of modifying a toolbar, comprising the steps of:
a user Internet device displaying a toolbar comprising one or more buttons, the toolbar defined by toolbar data stored in one or more toolbar-defining databases, the toolbar data comprising a plurality of attributes, each attribute associated with a button of the toolbar, wherein for each button of the toolbar, at least one of the plurality of attributes identifying a function to be performed when the button is actuated by the user Internet device;
the user Internet device receiving a first web page comprising a reference to a network location;
the user Internet device accessing the reference;
the user Internet device receiving a MIME type identification of the content type of the toolbar update data in response to the user Internet device accessing the reference;
the user Internet device determining the MIME type identification is associated in the user Internet device with a database update program;
in response to the user Internet device determining the MIME type identification is associated in the user Internet device with the database update program, the user Internet device providing the toolbar update data to the database update program;
the user Internet device receiving the toolbar update data from the Internet in response to the user Internet device accessing the reference;
the database update program initiating without user interaction an operation to update the toolbar data in accordance with the toolbar update data received;
the user Internet device updating, by the operation, the toolbar data in accordance with the toolbar update data, thereby producing updated toolbar data, the updating comprising at least one of the following steps (a) and (b), each respectively comprising:
(a) writing at least one new attribute to the original toolbar data, wherein the writing at least one new attribute to the toolbar data comprises changing the one or more buttons of the toolbar by adding a button; and
(b) updating at least one attribute of the toolbar data and

the user Internet device displaying the toolbar as defined by the updated toolbar data.
25. A method of modifying a toolbar, comprising the steps of:
a user computer installing a toolbar program on the user computer, the toolbar program comprising a predetermined Internet Protocol address and an encrypted toolbar specifications database, the encrypted toolbar specifications database comprising a revision level and specifications for building a toolbar, the specifications for building a toolbar comprising:
a plurality of name-value attribute pairs, the plurality of name-value attribute pairs comprising, for each of a plurality of buttons of the toolbar:
a button caption;
an enablement attribute specifying whether the button is enabled or disabled;
an execution type;
a description of the button functionality; and
a location attribute specifying either a location of a file for the button function or a network location for the button function;

specifications for a plurality of tabs containing the plurality of buttons; and
specifications for a ticker tape moving display;
wherein the toolbar comprises a first button comprising:
a location attribute comprising a first network location; and
an execution type of causing a web browser to open the location attribute;
the toolbar program building and displaying the toolbar in accordance with the encrypted toolbar specifications database;
the toolbar program causing the user computer to automatically contact a server at the predetermined Internet Protocol address, the contact comprising the user computer transmitting the revision level of the encrypted toolbar specifications database to the server;
the server determining, from the revision level, the user computer should receive toolbar update data for the toolbar program, the toolbar update data comprising a second network location;
the user computer receiving the toolbar update data;
the toolbar program causing the user computer to transparently insert the toolbar update data into the encrypted toolbar specifications database, thereby producing an updated encrypted toolbar specifications database, the transparently inserting the toolbar update data comprising replacing the first network location with the second network location as the location attribute of the first button;
the user computer building and displaying the toolbar in accordance with the updated encrypted toolbar specifications database;
in response to a user clicking the first toolbar button, the toolbar program exchanging data comprising the second network location with a web browser in the user computer;
the user computer displaying a web page located at the second network location; and
the user computer maintaining the display of the toolbar in accordance with the updated encrypted toolbar specifications database until a subsequent updating of the updated encrypted toolbar specifications database.