The present disclosure relates to data processing, and more particularly to portals.
Generally, a portal refers to a single entry point through which a user can access information, applications, and services needed to perform one or more tasks. Computer programs that generate portals, or simply portal software, typically reside on a server of a network such as, for example, the Internet. Portal software is usually accessed from a client computer.
A portal can include, for example, content such as data, applications and transactional systems, and Web content and services. The data can be structured or unstructured. The portal content is generally included in the portal by subscription. That is, the user subscribes to the content that the user wants to be included in the portal. Portal software, thus, can provide different portal content to different users. Furthermore, portal software can provide the same portal content to a particular user, regardless of where in the network the user accesses the portal software. The user will, thus, have the same portal content even when the user launches the portal from different client computers.
Portal content can be distributed. That is, portal content can be located on different points of the network. A portal can, for example, provide access to a first application and a second application even when the first and second applications are located on different servers. A portal, can also, for example, provide access to a first set of data and a second set of data even when the first and second sets of data are stored at different locations in the network.
Access is typically page-oriented. A user operating a client computer, for example, can use a browser to access the portal. In this case, the client and the server can communicate by using hypertext transfer protocol (“HTTP”).
Access can be stateless. That is, the portal software and the portal content can have no access to information that describes interactions of a previous user session. Alternatively, access can be stateful, which can be implemented, for example, by rewriting URLs, using sessions cookies, or using unique session identifications. In general, a particular set of communications between a server and a client will be referred to in this specification as a user session. The set can be defined in different ways. A user session, for example, can be identified based on when a browser being used is opened and closed. A user session can also be identified by the network application itself. For example, a network application can include a login and logout function that starts and terminates, respectively, a user session.
The disclosure describes methods and apparatus, including computer-program products, for providing a portal-based desktop.
In general, in one aspect, a computer-implemented method for providing status of portal content includes identifying at least one element of portal content to which a user is subscribed. The method includes monitoring a state of the one element of portal content. The method includes indicating status of the one element of portal content, the indication being included as portal content.
In general, in another aspect, a computer program product, for providing status of portal content, includes instructions operable to cause a processor to identify at least one element of portal content to which a user is subscribed. The product includes instructions to monitor a state of the one element of portal content. The product includes instructions to indicate status of the one element of portal content, the indication being included as portal content. The product is tangibly stored on machine-readable medium.
Various implementations of the disclosure may realize one or any combination of the following advantages. A portal as described in this specification provides a desktop computing environment in which content can be organized by context. The desktop computing environment, or simply desktop, is an aspect of a user interface through which data can be organized. The desktop can be said to provide a virtual replica of one's physical desktop. Context, as used in this specification, refers, but is not limited, to a subject matter of interest to a user. The portal can be organized by context, for example, into one work area for work, another work area for personal use, and a third work area for a particular project. Furthermore, the portal can be organized into different levels of context. That is, within one work area having one context, content can be further organized by more specific contexts. For example, the work area for personal use can include further work areas such as those for, for example, entertainment, email, and car insurance. Work areas can be implemented as one or more configurable workspaces. Each workspace can include content related to a context. Each work space can include one or more configurable folders. Each folder of a work space can include content that are related to a context that is more specific than the context of the parent work space. The work space can provide an overview of the content of the folders in the workspace. Navigating into a folder can provide a detailed view of the folder content. In one implementation, the portal includes a navigation window in each work space for navigating the portal's workspaces and folders.
Portal content can include applications or data as specified by the user. The portal can include content from heterogeneous systems rather than include only links to the content. Access to the portal can be established without using a virtual private network. That is, a user can generally use any client computer that has Internet access to launch the portal. The portal reduces the need for installation of applications on client computers. The client computers from where a portal is launched can be a thin client computer. That is, the client computer can operate with a reduced operating system (“OS”) and without customized applications to allow a user access to a desktop like environment. In some implementations, only a browser is required to gain access to the desktop computing environment. The portal can be configured to operate in conjunction with applications that are local at the client computer. Alternatively, the portal can be configured to operate independently of the local applications. The portal can generally be launched from any client regardless of the client's particular OS. That is, the portal is OS independent. The portal can also be launched using any browser and, hence, is browser independent.
The portal can provide status of the portal's content. In some implementations, a user can be notified of a change in state of a portal application, even when the application is not being displayed on the portal. In some implementations, a portal status bar can be used to replace a locally generated desktop status bar.
The portal can facilitate data backup by unifying the distributed data in a centralized location. In certain implementations, the portal software can provide a user with a portal display that includes a layer of abstraction of data to identify key data for the user. The abstraction layer can also have the capability of responding at a user's level of authority, preferred profile, and requirements to fulfill a function or a user's request.
The details of one or more embodiments of the invention are set forth in the accompanying drawings and the description below. Other features, objects, and advantages of the invention will be apparent from the description and drawings, and from the claims.
Like reference symbols in the various drawings indicate like elements.
Overview
The portal infrastructure facilitates user-or people-centric collaboration. The portal infrastructure component 102 can be implemented as a single computing device or multiple computing devices. The portal infrastructure component 102 includes portal software that provides the portal framework. As discussed, the portal content can be customized by subscribing to content and organized according to user input. The component 102 can store information that indicate the content subscriptions and organization for a user. Portal software can include computer programs that monitor the status of the portal content and push status information to a client.
The application infrastructure component 104 provides the infrastructure on which applications and services distributed throughout a network can run. The application infrastructure component 104 can include one or more servers of the network or can be implemented as a single server, such as, for example, a Web application server. The applications can included proprietary applications of different vendors, such as the R/3 applications available from SAP AG of Walldorf, Germany.
The exchange infrastructure component 106 provides an exchange infrastructure, which provides process centric collaboration. The exchange infrastructure component 106 can include one or more computing devices and serves to synchronize data between applications. For example, the exchange infrastructure component 106 can take data from a customer order application (e.g., Bob Smith, order of 5 computers, date X, price $Z), transform it into compatible formats, and push it into a customer relationship management (“CRM”) application (e.g., Bob Smith, order placed on date X, order expected to ship on date Y, etc.), as well as a bookkeeping application (e.g., accounts receivable entry of $Z from Bob Smith).
Desktop Function in a Portal
In one implementation, a portal desktop may be used to replace a user's locally generated (i.e., client-side) desktop. The portal desktop can be stored on a server that is accessible to a client. The portal desktop can be organized into folders containing either or both team or personal data. The folders of the portal desktop can also include iViews that provide access to heterogeneous data related with the folder, such as a project folder for data related to an area of work. Workspaces of the portal desktop provide access to the folders. Workspaces represent different views on a portal desktop display. Each workspace can be implemented as a Web page. The portal desktop can also include a status/notification bar, which is further described below.
Functionality may be provided in the portal desktop. A user may be provided with access to different data and applications at the portal, workspace, or folder level. For example, a user can access email from both the workspace and project folder levels. As another example, a project task plan may be accessed by user selection at the project level.
As discussed, portal content can be organized by context. Furthermore, portals can include one or more presentation components. Generally, a presentation component can be represented by a page of the portal. When the portal is Web based, the portal page can be a Web page. A portal, thus, can include presentation components that include one or more elements of portal content. A presentation component can, for example, include multiple applications and data with which to execute the applications. In one implementation, portal content that are related to a certain task can be grouped into a workspace for the task. In this case, the portal content are grouped together and represented in a single portal page, or when the portal is Web based, a single Web page. The portal content of a portal page can be further grouped. In one implementation, a workspace includes one or more folders that represent categories within a workspace. The folders can represent different areas of interests, serve different functions, and so forth. One folder can, for example, serve as a tool to schedule appointments. This folder can include portal content such as, for example, a project calendar, emails, contact information, and so forth. Another folder can, for example, serve as a project development tool. This second folder can include portal content such as, for example, a project development application and data objects that relates to project development.
Workspaces can offer various content management features to help users find and use the information. In a particular feature, the portal may allow users to plan, find, filter, create and distribute information from multiple information sources and to various audiences depending upon the user's role as described herein. Classification capabilities may automate the arrangement of information and provide access by subject area. Information may be published to users, and users can subscribe to automatically receive content. The user can create personal or team project folders within the workspace, and the user may select and enter a project folder.
The status/notification bar 408, described below in further detail, can be used to inform the user of changes to underlying information sources, availability of applications, action items due, configuration of the portal such as date and time, or other portal environmental information.
Portal-clients or users can be provided content in the portal desktop according to their role. A user might have many roles in an organization. For example, the same user can have roles such as general employee, sales department employee, sales manager, and east coast employee. A user's role may help determine the work-sets that the user may use to complete tasks. Users may be defined by their roles and access to information determined by the roles. Roles may be specific to individuals, groups of individuals, internal and external users of the portal. Employees and external business partners can be assigned roles that are under control of the company. An administrator of a portal may provide a user with default work-sets that are associated with the user's roles. Features of the portal may allow the user to personalize or customize their work-sets content beyond those afforded by the default roles.
The portal-client also may organize the portal desktop display according to their own preferences. This personalization of the desktop enables users to configure the portal to meet their individual needs and interests. For example, users can configure the portal appearance.
In one implementation, the portal-based desktop can be executed by a server and, hence, independent of the client-side operating system or Web browser. The portal desktop can be run without local installation of desktop software and may be used by clients with both a full OS or a reduced OS such as JAVA OS or, more specifically, Multimedia Home Platform (“MHP”).
The project folders can be synchronized so that a user may work offline. With a client-side local desktop, for example, the folders can be synchronized with the local operating system, including the file system and desktop for local, offline, editing of documents. The local desktop can also be used to launch client-side applications to, for example, edit or create files on the local desktop.
The project folders also can be configured for working offline without using the local desktop or applications. In this instance, the applications may be started as browser plug-ins such as a PDF-viewer or office-viewer. Applications also may be started from connected network resources or downloaded from a Web-server and run on a local virtual machine such as the Java Virtual Machine (“VM”) or .Net-VM.
Status/Notification Bar in a Portal
As discussed above, the portal can indicate content status. In one implementation, the indication is provided by a status/notification bar that is included in the portal. The bar indicates to a user the state of one or more pages that are represented in the portal. The display may be used to alert a user to the status, or change in status, of a portal page.
The system identifies the portal content to which the user has subscribed (step 604). As discussed above, the content can include applications and data, both of which can be distributed throughout a network.
The system monitors the content status (step 606). Monitoring content status includes, for example, monitoring the states of content and alerts, such as prompts for when the content requires user input and when the content is outputting information. In one implementation, monitoring is performed by an application that is located on a Web application server. The application uses the described exchange infrastructure to interact with the content to which the user has subscribed. Alternatively, the monitoring can be performed by others, such as intelligence included in the portal infrastructure.
In one implementation, the system determines an initial state of each application to which the user has subscribed and monitors for changes in the state of the applications. Based on the state of each application, the portal software can select a status indicator that is representative of the state of the application. Different states can be represented by different status indicators. An appointment application, for example, can have a first state for when there are no alerts and a second state when there are alerts. A first status indicator, such as a non-flashing icon, can indicate that the appointment application is running. A second status indicator, such as a flashing icon or a pop-up icon, can indicate that the appointment is running and that there are one or more alerts.
The initial state can be referenced to the last time the user accessed the portal. For example, if there has been an alert since the last user session, the portal software selects and displays a status indicator to notify the user that there has been an alert since the last user session.
The portal software monitors the subscribed content for a change in state. If there is no change in state, the portal software may continue to display the same status indicator to the user. If a change in state of the subscribed content is detected, the portal software may replace the displayed status indicator with a different status indicator representative of the changed state of the subscribed content.
The system provides status (step 608). Providing status includes providing status notifications as portal content. Providing status can also include a status bar as portal content. The status bar can include, for example, icons that represent the content to which the user has subscribed. The icons can have different states that indicate status.
Optionally, the system can configure the status indication in accordance to user input. For example, the system can indicate status by changing size of the icons, appearance of the icons, and color of the icons.
The status bar can include notification symbols 702, 704, and 706 representing applications or information to which the user is subscribed. The symbols may be arranged in any desired format and is shown in a bar for illustration purposes only. The status indicators may be icons, text, or other display item.
The symbols can correspond to user subscribed applications and information as well general portal settings such as setting a time, help, how to set an alarm, and so forth. The corresponding context of the symbol does not have to be displayed. For example, a symbol 704 may represent on-line meetings to which the user is subscribed. In this instance, the discussion taking place need not be displayed on the portal desktop or even available through the desktop. Similarly, a symbol 706 may represent orders filled on a project. The actual order listing need not be displayed on the portal desktop. The status bar/notification bar also may include symbols for notification of incoming mail, or an appointment in a calendar, a clock, and so forth.
The status/notification bar can be displayed on a portal page as illustrated in
The user may personalize the status/notification bar to display symbols associated with roles, work-sets or views to which the user is subscribed. The portal software may use a hierarchical search to locate notification items for the status/notification bar.
Each notification symbol can change to indicate that an event has occurred in a user subscribed portal content. The occurrence of an event, for example, in a user subscribed page can be passed to the status/notification bar for update to the user. In one implementation, status indication is based on the sending of events from one iView to another iView. In general, events are messages that specify a data object and some action associated with the data object. Events and eventing are further described in commonly owned U.S. application Ser. No. 10/137,208, filed on Apr. 30, 2002, which is hereby incorporated by reference in its entirety.
Status indicator 704, for example, can change appearance to indicate that an on-line meeting is in progress. Similarly, the symbol 706 can change color to indicate that a change has occurred in the portal information source containing the status of filled orders. For example, an additional order may have been entered or an order filled that was previously unfilled. In addition or instead of a status indicator change, the user also may be alerted to a notification item by using pop-up text, sound, or other alerting action.
A permanent refresh or other check mechanism can be used to check the status of portal content being monitored and refreshes the status bar display on the occurrence of a change in the portal content. Within a portal, users can be notified proactively or alerted to a change in relevant events. That is, the notification may be triggered by either pull from the front-end client-side or a push from the back-end side associated with the server. The displayed item may be selected by the user to trigger an action. For example, the user may select by clicking on the order status indicator 706a to open a window with the portal order status entries.
The invention can be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them. The invention can be implemented as a computer program product, i.e., a computer program tangibly embodied in an information carrier, e.g., in a machine-readable storage device or in a propagated signal, for execution by, or to control the operation of, data processing apparatus, e.g., a programmable processor, a computer, or multiple computers. A computer program can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program can be deployed to be executed on one computer or on multiple computers at one site or distributed across multiple sites and interconnected by a communication network.
Method steps of the invention can be performed by one or more programmable processors executing a computer program to perform functions of the invention by operating on input data and generating output. Method steps can also be performed by, and apparatus of the invention can be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit).
Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a processor for executing instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks. Information carriers suitable for embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in special purpose logic circuitry.
To provide for interaction with a user, the invention can be implemented on a computer having a display device such as a CRT (cathode ray tube) or LCD (liquid crystal display) monitor for displaying information to the user and a keyboard and a pointing device such as a mouse or a trackball by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback, such as visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input.
The invention can be implemented in a computing system that includes a back-end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front-end component, e.g., a client computer having a graphical user interface or an Web browser through which a user can interact with an implementation of the invention, or any combination of such back-end, middleware, or front-end components. The components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network (“LAN”), a wide area network (“WAN”), and the Internet.
The computing system can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
A number of implementations of the invention have been described. Nevertheless, it will be understood that various modifications may be made without departing from the spirit and scope of the invention. For example, the method described herein can be combined into a single method and performed on a single system. The system can included any portal content and is not limited to including those examples described above. The portal content included also need not be only those subscribed by a user. The system can include portal content that are generic in nature and that can be generally useful to users. In one implementation, these generic portal content elements are implemented as a collection of iViews, also referred to a channel, that are not part of any workspace. The iViews are those of general interests. The presentation components can be other than a Web page. The status indication need not be a status bar but, alternatively, can be any representation that indicates status. The status indication can be represented as sound, images, text, pup-up icons, or any combination of these. Accordingly, other embodiments are within the scope of the following claims.
Number | Name | Date | Kind |
---|---|---|---|
4974173 | Stefik et al. | Nov 1990 | A |
5644334 | Jones et al. | Jul 1997 | A |
5760771 | Blonder et al. | Jun 1998 | A |
5848424 | Scheinkman et al. | Dec 1998 | A |
5893110 | Weber et al. | Apr 1999 | A |
5978828 | Greer et al. | Nov 1999 | A |
5995943 | Bull et al. | Nov 1999 | A |
6023708 | Mendez et al. | Feb 2000 | A |
6064980 | Jacobi et al. | May 2000 | A |
6081263 | LeGall et al. | Jun 2000 | A |
6085229 | Newman et al. | Jul 2000 | A |
6154764 | Nitta et al. | Nov 2000 | A |
6209100 | Robertson et al. | Mar 2001 | B1 |
6263363 | Rosenblatt et al. | Jul 2001 | B1 |
6266649 | Linden et al. | Jul 2001 | B1 |
6300947 | Kanevsky | Oct 2001 | B1 |
6311194 | Sheth et al. | Oct 2001 | B1 |
6317722 | Jacobi et al. | Nov 2001 | B1 |
6327628 | Anuff et al. | Dec 2001 | B1 |
6330007 | Isreal et al. | Dec 2001 | B1 |
6337699 | Nielsen | Jan 2002 | B1 |
6356899 | Chakrabarti et al. | Mar 2002 | B1 |
6356922 | Schilit et al. | Mar 2002 | B1 |
6430567 | Burridge | Aug 2002 | B2 |
6433795 | MacNaughton et al. | Aug 2002 | B1 |
6452609 | Katinsky et al. | Sep 2002 | B1 |
6460038 | Khan et al. | Oct 2002 | B1 |
6473407 | Franklin et al. | Oct 2002 | B1 |
6516349 | Lieberman | Feb 2003 | B1 |
6553412 | Kloba et al. | Apr 2003 | B1 |
6631411 | Welter et al. | Oct 2003 | B1 |
6643661 | Polizzi et al. | Nov 2003 | B2 |
6651066 | Baxter et al. | Nov 2003 | B2 |
6675350 | Abrams et al. | Jan 2004 | B1 |
6738804 | Lo | May 2004 | B1 |
6741853 | Jiang et al. | May 2004 | B1 |
6766362 | Miyasaka et al. | Jul 2004 | B1 |
6816720 | Hussain et al. | Nov 2004 | B2 |
6850252 | Hoffberg | Feb 2005 | B1 |
6877134 | Fuller et al. | Apr 2005 | B1 |
6901429 | Dowling | May 2005 | B2 |
6917373 | Vong et al. | Jul 2005 | B2 |
6918090 | Hesmer et al. | Jul 2005 | B2 |
6947959 | Gill | Sep 2005 | B1 |
6950991 | Bloomfield et al. | Sep 2005 | B2 |
6959319 | Huang et al. | Oct 2005 | B1 |
6993529 | Basko et al. | Jan 2006 | B1 |
6996778 | Rajarajan et al. | Feb 2006 | B2 |
7003528 | Dan et al. | Feb 2006 | B2 |
7028264 | Santoro et al. | Apr 2006 | B2 |
7039684 | Blockton et al. | May 2006 | B2 |
7103844 | Jones et al. | Sep 2006 | B2 |
7162504 | McCauley et al. | Jan 2007 | B2 |
7174512 | Martin et al. | Feb 2007 | B2 |
7185290 | Cadiz et al. | Feb 2007 | B2 |
7269664 | Huetsch et al. | Sep 2007 | B2 |
7305679 | Kovacs et al. | Dec 2007 | B2 |
7346668 | Willis | Mar 2008 | B2 |
7376907 | Santoro et al. | May 2008 | B2 |
7404141 | Giljum et al. | Jul 2008 | B1 |
7412658 | Gilboa | Aug 2008 | B2 |
7496839 | Duxbury | Feb 2009 | B2 |
7765556 | Hauser et al. | Jul 2010 | B2 |
8028237 | Schmitt | Sep 2011 | B2 |
20010013050 | Shah | Aug 2001 | A1 |
20010049651 | Selleck | Dec 2001 | A1 |
20020004402 | Suzuki | Jan 2002 | A1 |
20020019881 | Bokhari et al. | Feb 2002 | A1 |
20020042747 | Istvan | Apr 2002 | A1 |
20020049727 | Rothkopf | Apr 2002 | A1 |
20020049833 | Kikinis | Apr 2002 | A1 |
20020053078 | Holtz et al. | May 2002 | A1 |
20020067370 | Forney et al. | Jun 2002 | A1 |
20020087679 | Pulley et al. | Jul 2002 | A1 |
20020090932 | Bhatia et al. | Jul 2002 | A1 |
20020143659 | Keezer et al. | Oct 2002 | A1 |
20020169852 | Schaeck | Nov 2002 | A1 |
20020178223 | Bushkin | Nov 2002 | A1 |
20020184055 | Naghavi et al. | Dec 2002 | A1 |
20020194267 | Flesner et al. | Dec 2002 | A1 |
20030028896 | Swart et al. | Feb 2003 | A1 |
20030084059 | Kelley et al. | May 2003 | A1 |
20030093790 | Logan et al. | May 2003 | A1 |
20030101412 | Eid | May 2003 | A1 |
20030126136 | Omoigui | Jul 2003 | A1 |
20030182392 | Kramer | Sep 2003 | A1 |
20030217061 | Agassi et al. | Nov 2003 | A1 |
20030229900 | Reisman | Dec 2003 | A1 |
20040003097 | Willis et al. | Jan 2004 | A1 |
20040078476 | Razdow et al. | Apr 2004 | A1 |
20040104931 | Schmitt | Jun 2004 | A1 |
20040205473 | Fisher et al. | Oct 2004 | A1 |
20040220926 | Lamkin et al. | Nov 2004 | A1 |
20040230572 | Omoigui | Nov 2004 | A1 |
20050193335 | Dorai et al. | Sep 2005 | A1 |
20050204276 | Hosea et al. | Sep 2005 | A1 |
Number | Date | Country |
---|---|---|
1 143 679 | Oct 2001 | EP |
1 176 520 | Jan 2002 | EP |
1 367 513 | Dec 2003 | EP |
WO 9962011 | Dec 1999 | WO |
WO 0065773 | Nov 2000 | WO |
WO 0109737 | Feb 2001 | WO |
WO 0113287 | Feb 2001 | WO |
WO 0115050 | Mar 2001 | WO |
WO 0118688 | Mar 2001 | WO |
WO 0150289 | Jul 2001 | WO |
WO 0177903 | Oct 2001 | WO |
WO 0181829 | Nov 2001 | WO |
WO2004051507 | Jun 2004 | WO |
WO2004051524 | Jun 2004 | WO |
Number | Date | Country | |
---|---|---|---|
20040104947 A1 | Jun 2004 | US |