Patent Publication Number: US-2005138566-A1

Title: User interface, method, system and program product for managing collaboration data

Description:
BACKGROUND OF THE INVENTION  
      1. Technical Field  
      The invention relates generally to managing collaboration data, and more specifically to a user interface, method, system and program product for managing collaboration data for a shared object displayed in a user interface using a portion of the user interface.  
      2. Background Art  
      Typically, real-time collaboration, e.g., simultaneous editing of a shared object, by various users is performed in a specialized environment. In particular, users may be required to travel to a particular location, use a particular computing system, and/or use a specialized application in order to collaborate in real-time with other users. For example, a collaboration location could include specialized hardware and/or software that enables the real-time collaboration. In this case, shared objects would typically be stored in a unique location, and each user at the location could view every other user present to determine who is currently collaborating on the shared object.  
      A significant drawback of current collaboration solutions is the necessity for users to leave their personal workspace and/or use computing environments with which the user is less familiar. Further, a user that seeks to collaborate may be located at a remote location, and be unable to relocate to the collaboration location. As a result, it is increasingly desirable that users be able to collaborate using familiar software and/or without leaving their personal workspaces.  
      However, without users being located in an environment customized for collaboration, new problems arise with real-time and/or asynchronous collaboration. For example, a user is no longer capable of viewing all users that are currently collaborating on the shared object. Further, the user may not be able to readily discern the relationship between various shared objects since they can be stored in a central location along with other objects that are not being shared. When users in different locations collaborate on a shared object asynchronously, it is difficult to determine who has most recently modified the shared object, who has most recently viewed the shared object, and/or when these types of events occurred.  
      For both synchronous and asynchronous sharing, users are presented with additional difficulties in understanding the relationships among shared objects. While some shared objects may be self-explanatory, other shared objects may only make sense when a user can view its dependency on other shared objects. For example, a shared object could comprise a message sent in response to earlier messages, comments on a particular shared object (e.g., a document), graphical illustrations that support comments made in a chat or instant message session, or the like.  
      As a result, a need exists for a solution that allows a user to manage collaboration data while remaining at his/her personal workspace. Further, a need exists for a user to have readily available access to collaboration data and/or functions for modifying the collaboration data when viewing a shared object. Still further, a need exists for a user to be able to view the relationships among interrelated shared objects. In particular, a need exists for a user interface, method, system and program product for managing collaboration data for a shared object using a portion of a user interface that displays the shared object.  
     SUMMARY OF THE INVENTION  
      The invention provides a solution for managing collaboration data for one or more shared objects using a portion of a user interface used to display a shared object and/or a set of shared objects to which a shared object may belong. In particular, the user interface can provide access to one or more collaboration functions used to manage the collaboration data. For example, the user interface may enable a user to view and/or manage all users that have permission to collaborate on the shared object, all users currently collaborating on the shared object, one or more related shared objects, etc. A user may also be allowed to manage collaboration data about one or more shared object events, e.g., user and/or date/time information for a shared object&#39;s creation, modification, and/or display, as well as other collaboration aspects of shared objects. As a result, a user can readily collaborate on the shared object and view and/or modify collaboration data for the shared object without connecting to a specialized collaboration environment.  
      A first aspect of the invention provides a method of managing collaboration data, the method comprising: generating a user interface for a shared object using an application; displaying the shared object in a first portion of the user interface; and managing collaboration data for the shared object in a second portion of the user interface.  
      A second aspect of the invention provides a user interface for managing collaboration data, the user interface comprising: a first portion of a user interface generated by an application for displaying a shared object; and a second portion of the user interface for managing collaboration data for the shared object.  
      A third aspect of the invention provides a system for managing collaboration data, the system comprising: an application for providing a user interface and displaying a shared object in a first portion of the user interface; and a sharing management system for managing collaboration data in a second portion of the user interface.  
      A fourth aspect of the invention provides a program product stored on a recordable medium for managing collaboration data, which when executed comprises: program code for providing a user interface for an application; program code for displaying a shared object in a first portion of the user interface; and program code for managing collaboration data for the shared object in a second portion of the user interface.  
      The illustrative aspects of the present invention are designed to solve the problems herein described and other problems not discussed, which are discoverable by a skilled artisan. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
      These and other features of this invention will be more readily understood from the following detailed description of the various aspects of the invention taken in conjunction with the accompanying drawings that depict various embodiments of the invention, in which:  
       FIG. 1  shows an illustrative system for managing collaboration data;  
       FIG. 2  shows an illustrative user interface that allows a user to view a shared object and manage its collaboration data;  
       FIG. 3  shows the user interface of  FIG. 2  after a user has selected to manage user permissions;  
       FIG. 4  shows the user interface of  FIG. 2  after a user has selected to manage an awareness of other users;  
       FIG. 5  shows an alternative user interface that allows a user to manage collaboration data that comprises both object-specific and user-specific data; and  
       FIG. 6  shows an illustrative user interface when collaboration data management is implemented as part of an application. 
    
    
      It is noted that the drawings of the invention are not to scale. The drawings are intended to depict only typical aspects of the invention, and therefore should not be considered as limiting the scope of the invention. In the drawings, like numbering represents like elements between the drawings.  
     DETAILED DESCRIPTION OF THE INVENTION  
      As indicated above, the invention provides a solution for managing collaboration data for one or more shared objects using a portion of a user interface used to display a shared object and/or a set of shared objects to which a shared object may belong. In particular, the user interface can provide access to one or more collaboration functions used to manage the collaboration data. For example, the user interface may enable a user to view and/or manage all users that have permission to collaborate on the shared object, all users currently collaborating on the shared object, one or more related shared objects, etc. A user may also be allowed to manage collaboration data about one or more shared object events, e.g., user and/or date/time information for a shared object&#39;s creation, modification, and/or display, as well as other collaboration aspects of shared objects. As a result, a user can readily collaborate on the shared object and view and/or modify collaboration data for the shared object without connecting to a specialized collaboration environment.  
      Turning to the drawings,  FIG. 1  shows an illustrative system  10  for managing collaboration data  46 . In particular, one or more users  14 A-C can display a shared object  44  (e.g., a document, image, etc.) in a user interface provided by an application  30 . Shared object  44  can include collaboration data  46  that can be managed by one or more users  14 A-C using a portion of the user interface. As shown, shared object  44  can be stored at a server  13 , and each user  14 A-C can access shared object  44  using a computer  12 A-C in communication with server  13  over a network  16 . To this extent, network  16  can comprise any type of communications link. For example, network  16  can comprise an addressable connection in a client-server (or server-server) environment that may utilize any combination of wireline and/or wireless transmission methods. In this instance, computers  12 A-C and server  13  may utilize conventional network connectivity, such as Token Ring, Ethernet, WiFi or other conventional communications standards. Further, network  16  can comprise any type of network, including the Internet, a wide area network (WAN), a local area network (LAN), a virtual private network (VPN), etc. Where computers  12 A-C and server  13  communicate via the Internet, connectivity could be provided by conventional TCP/IP sockets-based protocol, and one or more computers  12 A-C and/or server  13  could utilize an Internet service provider to establish connectivity.  
      As shown, computer  12 A generally includes a central processing unit (CPU)  18 , a memory  20 , an input/output (I/O) interface  22 , a bus  24 , external I/O devices/resources  26 , and a storage unit  28 . CPU  18  may comprise a single processing unit, or be distributed across one or more processing units in one or more locations, e.g., on a client and server. Memory  20  may comprise any known type of data storage and/or transmission media, including magnetic media, optical media, random access memory (RAM), read-only memory (ROM), a data cache, a data object, etc. Storage unit  28  may comprise any type of data storage for providing storage for information necessary to carry out the invention as described below. As such, storage unit  28  may include one or more storage devices, such as a magnetic disk drive or an optical disk drive. Moreover, similar to CPU  18 , memory  20  and/or storage unit  28  may reside at a single physical location, comprising one or more types of data storage, or be distributed across a plurality of physical systems in various forms. Further, memory  20  and/or storage unit  28  can include data distributed across, for example, a LAN, a WAN or a storage area network (SAN) (not shown).  
      I/O interface  22  may comprise any system for exchanging information to/from one or more external I/O devices  26 . I/O devices  26  may comprise any known type of external device, including speakers, a CRT, LED screen, handheld device, keyboard, mouse, voice recognition system, speech output system, printer, monitor/display, facsimile, pager, communication hardware/software, etc. Bus  24  provides a communication link between each of the components in computer  12 A and likewise may comprise any known type of transmission link, including electrical, optical, wireless, etc. In addition, computer  12 A is shown including an operating system  32  that provides an interface between application  30 , and the various hardware components included in computer  12 A. It is understood that computer  12 A is only an illustrative representation of a computing device. As a result, various combinations of components may be incorporated into computer  12 A.  
      It is also understood that computers  12 B-C and server  13  typically include the same elements as shown in computer  12 A (e.g., CPU, memory, I/O interface, etc.). These have not been separately shown and discussed for brevity. Further, it is understood that each computer  12 A-C and server  13  comprises any type of computing device capable of communicating with one or more other computing devices, such as a server, a desktop computer, a laptop, a handheld device, a mobile phone, a pager, a personal data assistant, etc. However, it is understood that if a computer  12 A-C is a handheld device or the like, a display could be contained within the computer  12 A-C, and not as an external I/O device  26  as shown for computer  12 A.  
      Computer  12 A is shown including an application  30  for providing a user interface for shared object  44 . To this extent, application  30  can include a display system  34  for managing the contents of the user interface. Further, application  30  can include a modification system  36  that enables a user  14 A-C to modify shared object  44 . As is known in the art, when initially started, application  30  can request that operating system  32  create the user interface. Once created, display system  34  and/or modification system  36  can manage the content for most of the user interface, while operating system  40  can manage the content for a portion of the user interface. It is understood that application  30  can comprise any type of application. For example, application  30  could comprise a “high level” software product such as word processing software (e.g., International Business Machine&#39;s (IBM) Lotus Word Pro), spreadsheet software (e.g., IBM&#39;s Lotus 1-2-3), drawing software (e.g., IBM&#39;s Lotus Freelance Graphics), or the like. Further, application  30  could comprise “low level” software (e.g., utility software) that is provided as part of operating system  32 , e.g., Microsoft&#39;s Windows Explorer, a shell program in Unix or Linux, or the like.  
      As shown, system  10  comprises a “client-server” type network  16 , e.g., each user  14 A-C accesses shared object  44  that is stored on server  13  using an application  30  that is stored on his/her corresponding computer  12 A-C. However, it is understood that network  16  can comprise any type of network. For example, shared object  44  could be stored on computer  12 A, e.g., in storage unit  28 , and users  14 B-C could access shared object  44  in a “peer-to-peer” fashion, without the use of server  13 . Additional shared objects  44  could be stored on computers  12 B-C, and be accessed in a similar manner by users  14 A-C. Further, application  30  could be located on server  13 , on which each user  14 A-C would access it. Still further, while collaboration data  46  is shown stored as part of shared object  44 , it is understood that some or all of collaboration data  46  could be stored separately from shared object  44 , e.g., in a database or the like.  
       FIG. 2  shows a portion of an illustrative user interface  50  that comprises a window  52 , such as one generated by Microsoft&#39;s Windows® operating system  32  ( FIG. 1 ). A portion of window  52  can comprise a title bar  54  that displays information about window  52  (e.g., name of application and name of object being displayed), while another portion of window  52 , typically comprising most of user interface  50 , can comprise a workspace  56  that can display content based on a shared object  44  ( FIG. 1 ). To this extent, the content of title bar  54  can be managed by operating system  32 , while the content of workspace  56  can be managed by application  30 .  
      Title bar  54  can provide access to various functions implemented by operating system  32 . For example, title bar  54  is shown including a close icon  58 , a maximize/restore icon  60 , and a minimize icon  62  as are known in the art. Further, title bar  54  is shown including a system menu icon  64  that can provide access to the various functions performed by operating system  32  via a drop down menu or the like.  
      Returning to  FIG. 1 , operating system  32  is shown including a sharing management system  38  that allows user  14 A to manage collaboration data  46  for shared object  44 . Collaboration data  46  can comprise any data that is used to manage collaboration by users  14 A-C on shared object  44 . For example, collaboration data  46  can include authorship data, readership data, related objects (shared or not shared), user data, etc. To this extent, collaboration data  46  typically includes data about the set (one or more) of users  14 A-C allowed to collaborate on shared object  44 . As a result, sharing management system  38  can include a user system  40  for managing user-specific collaboration data  46  (e.g., the set of users  14 A-C). Further, collaboration data  46  can comprise data about shared object  44  and/or one or more related shared objects  44 . To this extent, sharing management system  38  can also include an object system  42  for managing object-specific collaboration data  46 .  
      As previously noted, sharing management system  38  manages collaboration data  46  for shared object  44 . To this extent, sharing management system  38  can provide access to one or more functions for managing collaboration data  46  to users  14 A-C. For example, a user interface for any type of application  30  ( FIG. 1 ), such as IBM&#39;s Lotus Word Pro, can have access to one or more collaboration management functions integrated therein. Returning to  FIG. 2 , title bar  54  is shown including a permissions icon  66  and an awareness icon  68 . As shown, Permissions icon  66  and awareness icon  68  can each provide users  14 A-C ( FIG. 1 ) with access to one or more collaboration management functions. The collaboration management functions can manage user-specific collaboration data using user system  40  ( FIG. 1 ).  
      To this extent, user-specific collaboration data  46  ( FIG. 1 ) can identify a set of collaboration users for shared object  44 . The set of collaboration users can comprise those users  14 A-C ( FIG. 1 ) that currently have permission to access shared object  44  ( FIG. 1 ). The set of collaboration users can include users  14 A-C that have varying permissions to access shared object  44 . For example, the set of collaboration users could include a set of users that are allowed to modify shared object  44 , and another set of users that are only allowed to view shared object  44 .  
      In any event, permissions icon  66  and awareness icon  68  can enable a user  14 A-C ( FIG. 1 ) to manage the set of collaboration users. To this extent, permissions icon  66  can enable a user  14 A-C to determine the set of collaboration users for a particular shared object  44  ( FIG. 1 ). For example,  FIG. 3  shows an illustrative user interface  50  after a user  14 A-C has selected permissions icon  66 . As shown, a drop down window  70  can be displayed in a portion of user interface  50 , which displays a set of users  14 A-C who currently have permission to collaborate on shared object  44 . It is understood that additional information could be displayed by selecting permissions icon  66 . For example, when the set of collaboration users includes users  14 A-C with varying access permissions as discussed above, drop down window  70  could indicate the access permissions for users  14 A-C.  
      Further, one or more collaboration management functions (e.g., “Edit”) available to user  14 A-C ( FIG. 1 ) can be included in drop down window  70  to allow for selection by user  14 A-C. When user  14 A-C selects a function, an additional window can appear that allows user  14 A-C to implement the desired function in a known manner. For example, user  14 A-C could select “Edit” in order to add a user, remove a user, modify a user&#39;s access permissions, or the like for shared object  44  ( FIG. 1 ). It is understood that access to one or more collaboration management functions can be limited based on a particular user  14 A-C (e.g., a permission level) as is known in the art.  
      Awareness icon  68  can enable a user  14 A-C ( FIG. 1 ) to determine the other users  14 A-C that are currently collaborating on shared object  44  ( FIG. 1 ). For example,  FIG. 4  shows an illustrative user interface  50  after a user  14 A-C has selected awareness icon  68 . In this case, a drop down window  72  is displayed in a portion of user interface  50  that displays one or more users  14 A-C in the set of collaboration users, and indicates a status for the displayed users  14 A-C. In one embodiment, drop down window  72  displays only those users  14 A-C that are within the set of collaboration users and have a status of currently using system  10  ( FIG. 1 ), e.g., users  14 A-B. Further, drop down window  72  can display a collaboration status for those users  14 A-C that are currently using system  10 . For example, drop down window  72  is shown including a check box next to each user  14 A-B that is checked if user  14 A-B is collaborating on shared object  44  ( FIG. 1 ), and not checked if user  14 A-B is not collaborating on shared object  44 . As with drop down window  70  ( FIG. 3 ), drop down window  72  can also include access to one or more collaboration management functions available to user  14 A-C. For example, drop down window  72  is shown including an “Invite” function, which can enable a user (e.g., user  14 A) to invite another user (e.g., user  14 B) that is using system  10  but not currently collaborating on shared object  44 , to join in collaborating on shared object  44 .  
      As previously discussed, sharing management system  38  ( FIG. 1 ) can further include an object system  42  ( FIG. 1 ) for managing a set of shared objects  44  ( FIG. 1 ). To this extent, title bar  54  can provide access to one or more collaboration management functions for managing the set of shared objects  44 . Further, access to various functions and/or collaboration data  46  ( FIG. 1 ) can be provided through a single collaboration interface. For example,  FIG. 5  shows an illustrative user interface  50  in which title bar  54  is shown including a collaboration icon  74 . Collaboration icon  74  can provide access to collaboration management functions performed by both object system  42  and user system  40  ( FIG. 1 ).  
      In particular, a user  14 A-C ( FIG. 1 ) can select collaboration icon  74 , and be presented with a listing of a set of shared objects  44  ( FIG. 1 ) that are related to a shared object displayed in workspace  56 , in a drop down window  76 . Drop down window  76  can also provide access to one or more collaboration management functions available to user  14 A-C for managing the set of shared objects  44 . For example, drop down window  76  is shown including an “Edit” function for modifying the set of shared objects  44 . To this extent, a user  14 A-C could select “Edit” to add and/or remove one or more shared objects  44  from the set of shared objects  44 . Further, drop down window  76  is shown including a “View” function that can change the set of shared objects  44  that is displayed in drop down window  76 . For example, only those shared objects  44  having one or more of the same values in collaboration data  46  as the current shared object  44  may be displayed (e.g., all shared objects  44  for which user  14 A is in the set of collaboration users). Still further, user  14 A-C could select one of the related shared objects  44  and a new user interface could be created to open the selected related shared object  44  and its corresponding collaboration data  46  ( FIG. 1 ). Status information can also be displayed for each shared object  44 . For example, an appearance of the shared object can be altered if at least one user  14 A-C is currently accessing the shared object  44 .  
      Object system  42  ( FIG. 1 ) can also manage collaboration data  46  ( FIG. 1 ) for each shared object  44  ( FIG. 1 ). For example, collaboration data  46  could include data regarding various events regarding shared object  44 . An event can comprise, for example, the creation of shared object  44 , a modification of shared object  44 , a display of shared object  44 , etc. For each event, data such as a date/time stamp, the particular user  14 A-C ( FIG. 1 ) that performed the action, etc. can be recorded. Subsequently, a user  14 A-C could view all events, events since a particular date/time, the most recent event, etc.  
      Each listing of a shared object  44  ( FIG. 1 ) is also shown including a user icon  78  that can enable user  14 A-C ( FIG. 1 ) to manage the set of collaboration users associated with the corresponding shared object  44 . In one embodiment, each user  14 A-C in the set of collaboration users is displayed with a corresponding status. For example, for the shared object  44  named “Overview.lwp,” user  14 A could be currently collaborating, user  14 B could be currently available on system  10  ( FIG. 1 ) but not collaborating, and user  14 C could belong to the set of collaboration users but be unavailable on system  10 .  
      Returning to  FIG. 1 , while sharing management system  38  is shown implemented as part of operating system  32 , it is understood that sharing management system  38  can be implemented apart from operating system  32 . For example, sharing management system  38  could be implemented as a stand-alone application that runs in the background and inserts interface(s) for managing collaboration data  46  onto a user interface  50  ( FIG. 2 ) for a shared object  44 .  
      Still further, sharing management system  38  could be implemented as part of application  30 . To this extent,  FIG. 6  shows an illustrative user interface  50  in which a portion of workspace  56 A displays collaboration data  46  ( FIG. 1 ) and includes access to various functions for managing collaboration data  46 . In particular, a portion  84  of workspace  56 A is shown displaying collaboration data  46 . In one embodiment, portion  84  displays a set of shared objects  44  ( FIG. 1 ). In managing the set of shared objects  44 , a user  14 A-C ( FIG. 1 ) can define a relationship (e.g., “parent-child”) between multiple shared objects  44 . To this extent, set of shared objects  44  can be displayed in a tree structure. As a result, the display of shared objects  44  can be limited and/or expanded in any known manner. For example, only those shared objects  44  that have specific collaboration data  46  (e.g., a particular user or group of users is in a corresponding set of collaboration users), a limited/expanded number of levels of the tree, or the like can be displayed.  
      By defining related shared objects  44  ( FIG. 1 ), default collaboration data  46  ( FIG. 1 ) can be used for a newly created shared object  44 . For example, when a new shared object  44  is created and/or added to a set of shared objects  44 , some or all of the collaboration data  46  from one or more of the other shared objects  44  in the set of shared objects  44  can be used. For example, a user  14 A-C ( FIG. 1 ) could specify a shared object  44  from which to copy collaboration data  46 . Alternatively, collaboration data  46  for a shared object  44  can be automatically used. For example, when a child shared object  44  is added to a set of shared objects  44 , the collaboration data  46  of its parent shared object  44  can be used by default. It is understood, however, that user  14 A-C could override the default collaboration data  46  if desired. Further, when collaboration data  46  for a parent shared object  44  is changed, collaboration data for all its child (children, grandchildren, etc.) shared objects  44  can also be changed.  
      For example, a user  14 A-C ( FIG. 1 ) can select one or more of the displayed shared objects  44  (e.g., “Schedule”), and access collaboration management functions and/or collaboration data  46  ( FIG. 1 ) by, for example, selecting a collaboration menu item or one of a set of collaboration buttons  82 . In the former case, a pop-up menu  80  can be displayed, which allows user  14 A-C to access one or more collaboration management functions. By selecting the “Permissions” collaboration management function, a second pop-up menu  81  can be created to display collaboration data  46 , e.g., the set of users  14 A-C having permission to collaborate on the selected shared object  44 , and one or more additional collaboration management functions (e.g., “Edit”). Should a user  14 A-C modify the set of collaboration users for the “Schedule” shared object  44 , the set of collaboration users for its child shared objects  44  (e.g., “Part A” and “Part B”) could be modified as well. Alternatively, all shared objects  44  in the tree and/or only the selected shared object  44  could be modified.  
      The appearance of the various interfaces shown in  FIGS. 2-6  can be temporarily altered when the corresponding collaboration data  46  ( FIG. 1 ) and/or shared object  44  ( FIG. 1 ) has been altered. For example, if a user  14 A-C commences or stops collaborating on a shared object  44 , awareness icon  68  ( FIG. 2 ) can change color or the like to signal to the other users  14 A-C viewing the shared object  44  that a change has occurred. In this manner, the other users  14 A-C would be notified that a change in the collaboration status has occurred.  
      Further, a user  14 A-C ( FIG. 1 ) can notify other users  14 A-C in the set of collaboration users that a change has been made to a shared object  44  ( FIG. 1 ) and/or its collaboration data  46  ( FIG. 1 ). For example, other users  14 A-C currently collaborating on the shared object could be directed to the portion of the shared object  44  that was changed, users  14 A-C currently available but not collaborating could be notified by an audio and/or text message, and users  14 A-C not currently available could be notified by e-mail or the like. In any event, the other collaboration users would be informed of the change so that they may review the updated data.  
      It is understood that numerous variations and/or combinations of the illustrative user interfaces depicted in  FIGS. 2-6  are possible. For example, icons, images, initials, or the like can be used to identify the various buttons, users  14 A-C ( FIG. 1 ), collaboration management functions, and/or shared objects  44  ( FIG. 1 ). Further, collaboration data  46  ( FIG. 1 ) could be displayed within title bar  54  ( FIG. 3 ). For example, an icon for each user in the set of collaboration users could be displayed in title bar  54  along with permission icon  66  ( FIG. 3 ), rather than in drop down window  70  ( FIG. 3 ). Still further, additional status data for users  14 A-C can be displayed. For example, each user  14 A-C could have a particular color, font, symbol, or the like that is used to display data entered by user  14 A-C in shared object  44 . As a result, each user  14 A-C can be displayed using and/or along with the particular color, font, etc. Additionally, a status indicator can be used to identify a user  14 A-C invited to join in the collaboration, users  14 A-C that do not have permission to collaborate but are currently using system  10  ( FIG. 1 ), etc.  
      While the invention is shown and discussed with reference to user interfaces similar to those generated using Microsoft&#39;s Windows® operating system  32  ( FIG. 1 ), it is understood that any type of user interface and/or operating system  32  can be used. Further, while the various interfaces have been shown as including pop-up windows, menus, and the like, it is understood that any solution can be used. For example, a portion of the user interface could be reserved for displaying collaboration data  46  and/or providing access to the various functions for managing collaboration data  46 . Still further, the various interfaces for collaboration management functions can be disabled and/or not displayed when an object not being shared is displayed or when a user  14 A-C doe not have permission to access the function(s).  
      It is understood that the present invention can be realized in hardware, software, or a combination of hardware and software. Any kind of computer/server system(s)—or other apparatus adapted for carrying out the methods described herein—is suited. A typical combination of hardware and software could be a general-purpose computer system with a computer program that, when loaded and executed, carries out the respective methods described herein. Alternatively, a specific use computer (e.g., a finite state machine), containing specialized hardware for carrying out one or more of the functional tasks of the invention, could be utilized. The present invention can also be embedded in a computer program product, which comprises all the respective features enabling the implementation of the methods described herein, and which—when loaded in a computer system—is able to carry out these methods. Computer program, software program, program, or software, in the present context mean any expression, in any language, code or notation, of a set of instructions intended to cause a system having an information processing capability to perform a particular function either directly or after either or both of the following: (a) conversion to another language, code or notation; and/or (b) reproduction in a different material form.  
      The foregoing description of various aspects of the invention has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed, and obviously, many modifications and variations are possible. Such modifications and variations that may be apparent to a person skilled in the art are intended to be included within the scope of the invention as defined by the accompanying claims.