Abstract:
An interactive tool adapted for administering a portal including user information, comprising providing a graphical user interface (GUI) adapted for managing at least one of the portal and the user information and wherein the GUI can be used to delegate at least one administration task to a user represented by the user information.

Description:
CLAIM OF PRIORITY  
       [0001]    This application claims priority from ENHANCED PORTALS [FLAGSTAFF RELEASE], U.S. Provisional Application No. 60/386,487, Inventors: Phil Griffin, et al., filed on Oct. 24, 2001, and which is incorporated herein by reference. 
     
    
     
       CROSS REFERENCE TO RELATED APPLICATIONS  
         [0002]    This application is related to the following co-pending applications which are each hereby incorporated by reference in their entirety: SYSTEM AND METHOD FOR DELEGATED SYSTEM ADMINISTRATION, U.S. Application Ser. No. ______, Inventors: Phil Griffin, et al., filed on ______; SYSTEM AND METHOD FOR RULE-BASED ENTITLEMENTS, U.S. Application Ser. No. ______, Inventors: Phil Griffin, et al., filed on ______; and SYSTEM AND METHOD FOR PORTAL PAGE LAYOUT, U.S. Application Ser. No. ______, Inventors: John Haut, et al., filed on ______.  
         FIELD OF THE DISCLOSURE  
         [0003]    The present invention disclosure relates to interactive tools for portal management.  
         BACKGROUND  
         [0004]    A portal is a point of access to data and applications that provides a unified and personalized view of information and resources. Portals are typically implemented as websites on the World Wide Web and are accessible via web browser applications. Portals have evolved from simple one page content sites to multi-page aggregations of content and applications with integration to back-office systems. Portal complexity has also increased due to the growth in the number of portal users. However, tools for administering portals have not kept pace with these trends. 
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0005]    [0005]FIG. 1 is an illustration of an exemplary portal administration graphical user interface (GUI) in one embodiment of the invention.  
         [0006]    [0006]FIG. 2 is an illustration of an exemplary group hierarchy GUI in one embodiment of the invention.  
         [0007]    [0007]FIG. 3 is an illustration of an exemplary portal management GUI in one embodiment of the invention.  
         [0008]    [0008]FIG. 4 is an illustration of an exemplary delegated administration GUI in one embodiment of the invention.  
         [0009]    [0009]FIG. 5 is an illustration of an exemplary group portal home GUI in one embodiment of the invention.  
         [0010]    [0010]FIG. 6 is an illustration of an exemplary user management GUI in one embodiment of the invention.  
         [0011]    [0011]FIG. 7 is an illustration of an exemplary portal page selection GUI in one embodiment of the invention.  
         [0012]    [0012]FIG. 8 is an illustration of an exemplary page attribute GUI in one embodiment of the invention.  
         [0013]    [0013]FIG. 9 is an illustration of an exemplary page entitlements GUI in one embodiment of the invention.  
         [0014]    [0014]FIG. 10 is an illustration of an exemplary portlet attributes GUI in one embodiment of the invention.  
         [0015]    [0015]FIG. 11 is an illustration of an exemplary portlet entitlements GUI in one embodiment of the invention. 
     
    
     DETAILED DESCRIPTION  
       [0016]    The invention is illustrated by way of example and not by way of limitation in the figures of the accompanying drawings in which like references indicate similar elements. It should be noted that references to “an” or “one” embodiment in this disclosure are not necessarily to the same embodiment, and such references mean at least one.  
         [0017]    In one embodiment of the invention, resources for portal applications deployed on a web server (hereinafter referred to as a “server”) are managed with a portal administration tool (hereinafter referred to as a “tool”). Servers are available from a variety of venders, such as the BEA WebLogic Server™ offered by BEA Systems, Inc. of San Jose, Calif. Aspects of one embodiment are realized in the BEA WebLogic Portal Administration Tools, available from BEA Systems, Inc. In one embodiment, by way of example, a tool can be implemented as one or more Java Server Pages™ (JSP&#39;s). JSP&#39;s are part of the Java™ programming environment which is available from Sun Microsystems, Inc. of Santa Clara, Calif. JSP technology separates presentation of a GUI from application logic so that one can be changed independent of the other.  
         [0018]    Portal applications deployed on a server can present a GUI which, in one embodiment, can be rendered by a web browser, such as the Microsoft Internet Explorer, available from Microsoft Corp. of Redmond, Wash. By way of a non-limiting example, a portal application could present to a user a list of real-time stock quotes. A portal application could also work behind-the-scenes, providing data and services in support of the portal. A portal and its applications can be developed using commercially available development tools such as BEA WebLogic Portal™, available from BEA Systems, Inc.  
         [0019]    [0019]FIG. 1 is an illustration of an exemplary portal administration GUI in one embodiment. The GUI enables an individual to create or register a number of portal users, each having the same or different administration capabilities. By assigning a portal user to a role-based administrator group, the portal user can acquire the administrative authority that is assigned to that group. In one embodiment, the following types of portal users can be created:  
                                   User Type   Description                   Users   Users are individuals that exist in the system with user           names and passwords. Only System Administrators can           create users. Users are not part of a particular group.       System   SA&#39;s are the superusers and can manage any aspect of       Administrators   any portal. They can only be created by other SA&#39;s.       (SA&#39;s)       AdminEligible   AdminEligible group members are eligible for       Users   administrative abilities. Users can be added to the           AdminEligible group by SA&#39;s.       Portal   PA&#39;s are AdminEligible users that have been assigned       Administrators   administrative authority for a particular portal       (PA&#39;s)   application. PA&#39;s can be created by SA&#39;s and other PA&#39;s.       Group   GA&#39;s are AdminEligible users who are given limited       Administrators   administrative authority for specific group portals. A       (GA&#39;s)   group portal is a portal that is associated with a user           group. A user group can be any arbitrary collection of           users that is determined statically, or dynamically by           evaluating rules that take into account information about           a user and other information. GA&#39;s can be created by           SA&#39;s, PA&#39;s, and other GA&#39;s.                  
 
         [0020]    In one embodiment, a portal user can be a registered user or an anonymous visitor. In order to assign a user administrative abilities of any kind however, they must be registered. Registering a portal user provides them with a user name and a password, and enables them to be selected for addition to role-based user groups. In one embodiment, by way of illustration, the following procedure can be used to register a portal user:  
         [0021]    1. Select User Management icon  100  as illustrated in FIG. 1. A User Management home page then appears (not shown). By way of a non-limiting example, selection or interaction with the tool can be accomplished using an input device such as a mouse, trackball, or similar device, a keyboard, a gesture recognition system, a speech recognition system, etc.  
         [0022]    2. Select a Create icon in the Users bar (not shown). The Create New Users page then appears.  
         [0023]    3. In a Create New User page (not shown), enter the user Name, Password, and User Type.  
         [0024]    In one embodiment, a registered user can be associated with a property set. A property set is a convenient way to give a name to a group of properties for a specific purpose. Generally speaking, a property can be considered a name/value pair. Property sets serve as namespaces for properties so that properties can be conveniently grouped and multiple properties with the same name can be defined. Properties can include the following information:  
                                   Name   Value                   Property   The name of the property, such as Gender.       name       Data type   Specifies the data type of the property value. For example,           possible data types are Text, Numeric, Floating-Point           number (equivalent to Double in Java), Boolean, and           Date/Time.       Selection   Specifies whether a property is single-valued (has a single       mode   default value) or multi-valued (has a collection of default           values).       Value range   Specifies whether the defaults are restricted to one specific           value, one or more specific values, or any value.       Description   A textual description of the property, perhaps describing the           purpose of the property.       Values   A list of values from which the user will pick, and you can           designate which of the values is the default.                  
 
         [0025]    By way of a non limiting example, a property set called Demographics can describe portal user properties such as Age, Gender, Income, and so forth. Because property sets create unique namespaces for properties, another property set can also have a property called Gender, and the two values will be kept separate. Property sets and other user attributes can be edited using a GUI.  
         [0026]    By way of a non limiting example, a registered user can have property set named Customer Properties which defines properties for an e-commerce customer, for example, such as First Name, Last Name, Home Phone, Email, and Customer Type. In one embodiment, the following procedure can be used to assign property sets to the new user:  
         [0027]    1. In a Create New Users page (not shown), Select the name of the new user. A user management page for your new user appears (not shown).  
         [0028]    2. Use a drop-down menu to select a property set for the user (not shown).  
         [0029]    A portal user can be promoted to an SA by adding them to the System Administrator group. In one embodiment, in order to assign a portal user to the System Administrator Group, they must have already been registered as an SA. In one embodiment, the following procedure can be followed:  
         [0030]    1. Select the User Management icon  100  in the Administration Tools Home page (FIG. 1). A User Management page appears.  
         [0031]    2. Select a Groups icon in the User Management page (not shown). The Group Hierarchy page appears (FIG. 2).  
         [0032]    3. In the Group Hierarchy page, Select “SystemAdministrator”  200 .  
         [0033]    4. An Edit Groups page (not shown) displays information for the SystemAdministrator group and allows a registered portal user to be added to the group.  
         [0034]    In one embodiment, before a user can be given PA or GA authority, they must first be added to the AdminEligible group. AdminEligible members are registered users that are added to the AdminEligible group by an SA. In another embodiment, registered users can be added to the AdminEligible group by a PA or a GA. In one embodiment, the following procedure can be followed to add an SA:  
         [0035]    1. Select the User Management icon  100  in the home page (FIG. 1). A User Management page appears (not shown).  
         [0036]    2. Select a Groups icon in the User Management page. The Group Hierarchy page appears (FIG. 2).  
         [0037]    3. In the Group Hierarchy page, Select the AdminEligible link  210 .  
         [0038]    4. Select an add/remove icon (+/−) in an AdminEligible page (not shown).  
         [0039]    5. Search a for user to add to the AdminEligible group (not shown).  
         [0040]    6. Highlight the desired user and Select a right arrow to add them to the Group Search Results list (not shown).  
         [0041]    [0041]FIG. 4 is an illustration of an exemplary delegated administration GUI in one embodiment. In one embodiment, PA&#39;s have authority to manage aspects of their associated portal. A PA is created by adding a member of the AdminEligible group to the Portal Administrator group and specifying their privileges. SA&#39;s and PA&#39;s can create a new PA from an existing AdminEligible user. A PA may have authority in multiple portals. In one embodiment, the following procedure can be used to create a new PA:  
         [0042]    1. Select the Portal Management icon  102  in the home page (FIG. 1). The Portal Management home page appears (FIG. 3), listing all group portals within the portal application. Group portals provide a means for organizing users with common characteristics into a single category. Portal groups also allow for the definition of different views of a portal for different user groups, making it seem as if users in each group are looking at completely different web sites.  
         [0043]    2. Select the Edit Portal Administrators link  300 . An Edit Portal Administrators page appears (not shown).  
         [0044]    3. In the Edit Portal Administrator page, Select Create New Administrator. An Add New Portal Administrator page appears (not shown).  
         [0045]    4. Select a user to add to the Portal Administrator group (not shown). Any user in the AdminEligible group or existing GA is eligible.  
         [0046]    5. The Delegate Administration page appears (FIG. 4).  
         [0047]    [0047]FIG. 4 is an illustration of an exemplary delegated administration GUI in one embodiment. Checking each box allows the new PA to perform that function on any group portal within the associated portal application. In the User Management row  400 , if “Grant” is checked, the PA can create, add, remove, delete, and edit properties of users. In one embodiment, delegated system administration involves the conveying of a capability (e.g., the ability to perform a system administration task) from one user to another. If “Can Delegate” is checked, the PA can choose to assign or remove the user management authority of other PA&#39;s or GA&#39;s associated with this portal application.  
         [0048]    In Portal Page Management row  402 , if “Grant” is selected, the PA can perform portal page administration. In one embodiment, portal page administration entails controlling behavioral aspects that a visitor experiences when accessing a portal, such as whether a portlet is viewed as a popup window or a smaller window within the page of origin. A portlet is an application that manages its own GUI. In one embodiment, a portlet is implemented as a JSP. If “Can Delegate” is checked, the PA can choose to give or remove portal page management authority of other PA&#39;s or GA&#39;s associated with this portal application. If “Can Set Entitlements” is selected, the PA can control visitor portal page capabilities by associating entitlement segments with portal pages. In one embodiment, an entitlement segment is a dynamic visitor group based on common characteristics that allows a member of the group to view certain aspects of a portal. For example, if a portal provides information about upcoming city council elections in Los Angeles, an entitlement group for that portlet could consists of visitors who live in Los Angeles county and are of voting age. Meeting an entitlement segment&#39;s criteria may also give the user certain privileges in a portal. In the above example, any visitor that lives in Los Angeles county and is of voting age might be given the ability to edit the presentation or color scheme of their portal.  
         [0049]    Portlet Management row  404  controls a PA&#39;s authority of the management of portlets. In one embodiment, if an administrator has the capability of managing portlets, the administrator can define and modify the resources that are available to a portlet. The administrator can also set portlet defaults, such as whether the portlet will be available to users, whether the portlet can be minimized, whether the portlet can be maximized, etc. If “Grant” is selected, a PA can perform portlet administration. If “Can Delegate” is selected, a PA can choose to give or remove portal management authority of other PA&#39;s or GA&#39;s associated with this portal application. If “Can Set Entitlements” is selected, a PA can control visitor group capabilities by associating entitlement segments with portlets.  
         [0050]    In one embodiment, a skin can be a collection of files that includes a cascading style sheet and a directory of images that define the look and feel of a portal. Every button, banner, portlet header, background color, and font characteristic can be determined by the skin. Skins management entails selecting the default skin for a group portal and determining what skins are available to users for customization of their view of a portal. In the Skins Management row  406 , if “Grant” is selected, a PA can perform skins management. If “Can Delegate” is checked, a PA can choose to give or remove skins management authority of other PA&#39;s or GA&#39;s associated with this portal application.  
         [0051]    [0051]FIG. 5 is an illustration of an exemplary group portal home GUI in one embodiment. In one embodiment, GA&#39;s are users in the AdminEligible group who are given limited administrative authority for specific group portals. For a user to be a GA, they must first be placed in the AdminEligible group by an SA. In one embodiment, the following procedure can be used to create a GA:  
         [0052]    1. Select the Portal Management icon  102  in the Portal Administrator Home page (FIG. 1). The Portal Management Home page appears (FIG. 3).  
         [0053]    2. Select the group portal for which you wish to add a GA. The Group Portal Management Home page appears (FIG. 5).  
         [0054]    3. Select “Edit Delegated Administration Settings for Group Administrators”  500 . An Edit Group Administrators page appears (not shown).  
         [0055]    4. Select Create New Administrator. A Choose Administrator page appears (not shown).  
         [0056]    5. Select a user to add to the Group Administrator group (not shown).  
         [0057]    6. The Delegate Administration page appears (FIG. 4).  
         [0058]    7. In the Delegate Administration page, determine what authority the GA will have. Checking each button allows the new GA to perform that function for this group portal only. In one embodiment, these functions are a subset of the functions available to PA&#39;s.  
         [0059]    [0059]FIG. 6 is an illustration of an exemplary user management GUI in one embodiment. In another embodiment, once a GA or PA exists, their administration authority can be modified using the above procedures. Likewise, once a portal user is registered, the user can be added to a user group and associated with a group portal. In one embodiment, the following procedure could be used to manage existing users and groups associated with a portal:  
         [0060]    1. Select the Portal Management icon  102  in the home page (FIG. 1). The Portal Management home page appears (FIG. 3).  
         [0061]    2. Select the Group Portal you wish to edit in the Portal Management Home page, the Group Portal Management home page appears (FIG. 5).  
         [0062]    3. In the User and Group Management section, select User Management  502 . The Edit Users in Group page displays a list of users for the selected group (FIG. 6).  
         [0063]    4. To remove a user from the group, select the desired user and Select the Remove User From Group button  600 . The user will be removed from the group and will no longer be displayed in the list.  
         [0064]    5. To delete the user from the system, select the desired user and Select the Delete button  602 . The user is deleted from the system and is removed from the display list.  
         [0065]    6. To create new users, Select Create New Users  604 .  
         [0066]    7. To add users to the group, Select Add Users to the Group  606 ; The Add users to Group page displays a list of available users (not shown).  
         [0067]    8. Select the user you want to add to the group and Select the Add User to Group button (not shown).  
         [0068]    In one embodiment, SA&#39;s and PA&#39;s can create a new group portal within a portal application. Portals are designed either for single users or for groups. A group portal can restrict portal access to specific visitors and set up delegated administration for portals. There can be multiple group portals within a portal. Group portals can share portal resources, such as layouts and portlets, but can be configured differently to satisfy the needs of each group separately. Because users are designated individually as members of a group, a group portal provides a form of personalization. In one embodiment, the a group portal could be established with the following procedure:  
         [0069]    1. Select the Portal Management icon  102  in the home page (FIG. 1). The Portal Management Home page appears (FIG. 3).  
         [0070]    2. Select “Create a New Group Portal”  302  in the Portal Management Home page. A New Group Portal page appears (not shown).  
         [0071]    3. Enter a display name for the group portal (not shown).  
         [0072]    4. Select a user group to associate with this group portal (not shown).  
         [0073]    5. Select a template for the new group portal by selecting a group portal to use as a template (not shown). In one embodiment, templates can specify the layout or location of elements on a portal page.  
         [0074]    6. In a Create New Group Portal page (not shown), determine the following information:  
         [0075]    a) Whether to Copy Entitlements: You can copy existing entitlements from the template group portal and keep them as is and/or edit them later. You can also choose not to copy the existing entitlements and create new entitlements.  
         [0076]    b) Whether to Copy Group Administrators: When you copy GA&#39;s, the same GA&#39;s will have the same authority in this group portal as those in the template group portal you have selected. If you choose not to copy the GA&#39;s you can assign your own. If you choose to copy the existing GA&#39;s you can add to or remove them later.  
         [0077]    In one embodiment, an administrator can select which skin is associated with a group portal. A skin can be a collection of files that includes a cascading style sheet and a directory of images that define the look and feel of a portal. Every button, banner, portlet header, background color, and font characteristic can be determined by the skin. Skins management entails selecting the default skin for a group portal and determining what skins are available to users for customization of their view of a portal. In one embodiment, the following procedure can be followed to specify this information:  
         [0078]    1. Select the Portal Management icon  102  in the home page (FIG. 1). The Group Portal page appears (FIG. 3).  
         [0079]    2. Select the Group Portal you wish to edit in the Portal Management Home page, the Group Portal Management Home page appears (FIG. 5). Under Appearance and Content section, Select “Select Skins”  506 . A Select Skins page displays a list of unused and available skins (not shown). The default skin is indicated by an asterisk (*) (not shown).  
         [0080]    3. To view a thumbnail of a skin, highlight the desired skin. A thumbnail of that skin will appear under the Preview Skin heading (not shown).  
         [0081]    4. To set a new default, highlight the desired skin and Select Set as Default; the new default skin is marked with an asterisk (*) (not shown).  
         [0082]    5. You can move skins between the Available and Unused lists by selecting the skin and Selecting the left and right arrows. Making a skin available means that visitors can select that skin when personalizing their portal (not shown).  
         [0083]    [0083]FIG. 7 is an illustration of an exemplary portal page selection GUI in one embodiment. The portal page selection GUI allows an administrator to determine the order in which the page tabs will be displayed. Portal page tabs appear as buttons or tabs on a portal page and act like bookmarks when selected, each able to render a different page within the portal. Portal pages can be thought of as panels or panes that are swapped into and out of a display region of the available portal real estate. In one embodiment, an administrator can select and order pages in a group portal using the following procedure:  
         [0084]    1. Select the Portal Management icon  102  in the home page (FIG. 1). The Portal Management Home page appears (FIG. 3).  
         [0085]    2. Select the Group Portal you wish to edit. The Group Portal Management home page appears (FIG. 5).  
         [0086]    3. In the Group Portal Management Home page, Select “Manage Portlets”  508 , A Pages, Layouts, and Portlets page appears (not shown).  
         [0087]    4. Select the “Select and Order Pages” link. The Select and Order Pages page displays a list of available and unused pages (FIG. 7). The Home (default) page  700  is indicated by an asterisk (*).  
         [0088]    5. To reset the Home page, highlight the desired page and Select Set as Home  704 ; the new default page is indicated by an asterisk (*)  
         [0089]    6. You can move pages between the Available Pages and Unused Pages lists by selecting the page name and selecting the left  708  and right  706  arrows. Making a page available means that visitors may choose to display the page as a tab when personalizing their portal.  
         [0090]    7. You can reorder pages by selecting the desired page in the Available Pages list and using the Up  710  and Down  712  arrows. This determines the order in which the page tabs will be displayed.  
         [0091]    [0091]FIG. 8 is an illustration of an exemplary portal page attribute GUI in one embodiment. In one embodiment, an administrator can modify the following page attributes:  
         [0092]    a) Available  802 : The page will be available to visitors and can be customized by a user.  
         [0093]    b) Visible  804 : The page will be visible to a visitor default (e.g., the page will have a page tab which, when selected, will render the page).  
         [0094]    c) Mandatory  806 : A visitor will always see this page. That is, they cannot remove it from their personalized portal.  
         [0095]    d) Display Name  808 : The display name for the page, this is the name that visitors will see.  
         [0096]    [0096]FIG. 9 is an illustration of an exemplary page entitlements GUI in one embodiment of the invention. In one embodiment, an entitlement segment is a visitor group based on common characteristics that allows a member of the group to view certain aspects of a portal. An administrator can specify the permissions granted to each entitlement segment as follows:  
         [0097]    a) Can See  906 : Select the radio buttons to grant or deny availability of this page to the entitlement segment members. For example, in FIG. 9 the entitlement segments “Developer”  900  and “Experienced Java Developer”  902  have been granted the ability to see the selected page, whereas the default segment “EVERYONE”  904 , representing users not belonging to the above-mentioned entitlement segments, is denied the ability to see the page.  
         [0098]    b) Can Remove  908 : Select the radio buttons to grant or deny the entitlement segment members the ability to remove the portal page from their view.  
         [0099]    [0099]FIG. 10 is an illustration of an exemplary portlet attributes GUI in one embodiment of the invention. In one embodiment, an administrator can set the following attributes using the GUI:  
         [0100]    a) Available  1000 : The portlet will be available to the visitor.  
         [0101]    b) Visible  1002 : The portlet should be visible to the visitor default.  
         [0102]    c) Minimizable  1004 : The portlet can be minimized by the visitor.  
         [0103]    d) Maximizable  1006 : The portlet can be maximized by the visitor.  
         [0104]    e) Default Minimized  1008 : The portlet is minimized in the visitor default.  
         [0105]    f) Floatable  1010 : The portlet can be opened in a new browser.  
         [0106]    g) Mandatory  1012 : The visitor will always see this page. That is, they cannot remove it from their personalized portal.  
         [0107]    h) Display Name  1014 : The display name for the page, this is the name that site visitors will see.  
         [0108]    [0108]FIG. 11 is an illustration of an exemplary portlet entitlements GUI in one embodiment of the invention. In one embodiment, an entitlement segment is a dynamic user group based on common characteristics that allows a member of the group to view certain aspects of a portal. An administrator can set the following attributes:  
         [0109]    a) Can See  1100 : Check the radio buttons to grant or deny availability of the portlet to the entitlement segment member.  
         [0110]    b) Can Edit  1102 : Check the radio buttons to grant or deny the entitlement segment members the ability to edit the portlet.  
         [0111]    c) Can Remove  1104 : Check the radio buttons to grant or deny the entitlement segment members the ability to remove the portlet from their view. The entitlement segment “Everyone” represents every user in the system and is the default if a user does not fall into an entitlement segment.  
         [0112]    One embodiment may be implemented using a conventional general purpose or a specialized digital computer or microprocessor programmed according to the teachings of the present disclosure, as will be apparent to those skilled in the computer art. Appropriate software coding can readily be prepared by skilled programmers based on the teachings of the present disclosure, as will be apparent to those skilled in the software art. The invention may also be implemented by the preparation of integrated circuits or by interconnecting an appropriate network of conventional component circuits, as will be readily apparent to those skilled in the art.  
         [0113]    One embodiment includes a computer program product which is a storage medium (media) having instructions stored thereon/in which can be used to program a computer to perform any of the features presented herein. The storage medium can include, but is not limited to, any type of disk including floppy disks, optical discs, DVD, CD-ROMs, microdrive, and magneto-optical disks, ROMs, RAMs, EPROMs, EEPROMs, DRAMs, VRAMs, flash memory devices, magnetic or optical cards, nanosystems (including molecular memory ICs), or any type of media or device suitable for storing instructions and/or data.  
         [0114]    Stored on any one of the computer readable medium (media), the present invention includes software for controlling both the hardware of the general purpose/specialized computer or microprocessor, and for enabling the computer or microprocessor to interact with a human user or other mechanism utilizing the results of the present invention. Such software may include, but is not limited to, device drivers, operating systems, and user applications.  
         [0115]    The foregoing description of the preferred embodiments of the present invention has been provided for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise forms disclosed. Many modifications and variations will be apparent to the practitioner skilled in the art. Embodiments were chosen and described in order to best describe the principles of the invention and its practical application, thereby enabling others skilled in the art to understand the invention, the various embodiments and with various modifications that are suited to the particular use contemplated. It is intended that the scope of the invention be defined by the following claims and their equivalents.