Patent Publication Number: US-2013239048-A1

Title: Centralized User Interface for Displaying Contextually Driven Business Content and Business Related Functionality

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This application is a Continuation of U.S. application Ser. No. 11/393,020 entitled “Centralized User Interface for Displaying Contextually Driven Business Content and Business Related Functionality” filed Mar. 30, 2006, which issued on Apr. 30, 2013 as U.S. Pat. No. 8,434,021, which claims priority to U.S. Provisional Application No. 60/740,926, filed Nov. 30, 2005, entitled “Centralized User Interface for Displaying Contextually Driven Business Content and Business Related Functionality,” which are incorporated herein by reference. 
    
    
     BACKGROUND 
     The success of an organization depends largely on the ability of its employees to discover, analyze, and act on Line Of Business (LOB) data and operational information. Unfortunately, there is traditionally a deep divide between enterprise systems used to collect and manage data and the desktop tools that information workers use to communicate and act on this information. 
     Applications that enable organizations to connect their desktop programs to line-of-business systems in an intuitive, cost-effective way may increase worker efficiency as well as employee satisfaction. By providing information workers with the information they need to make sound, timely business decisions, workers may become more productive and organizations more agile. 
     Enabling information workers to view and act on business data from within familiar desktop programs, such as electronic mail, spreadsheet, or word processing applications, may reduce workload on enterprise IT administrators and designers as well. 
     It is with respect to these and other considerations that the present invention has been made. 
     SUMMARY 
     This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended as an aid in determining the scope of the claimed subject matter. 
     Aspects are directed to a User Interface (UI) employed to provide summary information and controls associated with data that is being synchronized or transferred between two applications, such as a desktop application and an LOB application. 
     The UI is generated, positioned, and laid out based on one or more selections on the desktop application UI. Behavior of the UI, such as appearance and position, is dynamically determined based on the position, size, and other characteristics of the desktop application UI. 
     These and other features and advantages will be apparent from a reading of the following detailed description and a review of the associated drawings. It is to be understood that both the foregoing general description and the following detailed description are explanatory only and are not restrictive of aspects as claimed. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a block diagram of an exemplary computing operating environment. 
         FIG. 2  illustrates a system where example embodiments may be implemented. 
         FIG. 3  illustrates an example centralized UI comprising a supplementary UI, explorer and inspector views of an application, an LOB application, and their interactions. 
         FIG. 4  illustrates example placements of a task pane in relation to an application UI according to embodiments. 
         FIG. 5  illustrates example placement and use of task panes with explorer and multiple inspector views of an application UI. 
         FIG. 6  illustrates an example task pane and its contents according to one embodiment. 
         FIG. 7  illustrates two example styles of subheadings for a task pane according to embodiments. 
         FIG. 8  illustrates a sampling of content regions for a task pane according to embodiments. 
         FIG. 9  illustrates a logic flow diagram for a process of using a supplementary UI (task pane) according to embodiments. 
     
    
    
     DETAILED DESCRIPTION 
     As briefly described above, enabling information workers to view and act on business data from within familiar desktop applications, such as electronic mail, spreadsheet, or word processing applications, is desired for efficiency, accuracy, and other business goals. A supplementary UI, such as a task pane, generated based on selections in a desktop application UI may provide summary information and content control over synchronization actions between the desktop application and an LOB application. In the following detailed description, references are made to the accompanying drawings that form a part hereof, and in which are shown by way of illustrations specific embodiments or examples. These aspects may be combined, other aspects may be utilized, and structural changes may be made without departing from the spirit or scope of the present disclosure. The following detailed description is therefore not to be taken in a limiting sense, and the scope of the present invention is defined by the appended claims and their equivalents. 
     Referring now to the drawings, aspects and an exemplary operating environment will be described.  FIG. 1  and the following discussion are intended to provide a brief, general description of a suitable computing environment in which the invention may be implemented. While the embodiments will be described in the general context of program modules that execute in conjunction with an application program that runs on an operating system on a personal computer, those skilled in the art will recognize that aspects may also be implemented in combination with other program modules. 
     Generally, program modules include routines, programs, components, data structures, and other types of structures that perform particular tasks or implement particular abstract data types. Moreover, those skilled in the art will appreciate that embodiments may be practiced with other computer system configurations, including hand-held devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, minicomputers, mainframe computers, and the like. Embodiments may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote memory storage devices. 
     Embodiments may be implemented as a computer process (method), a computing system, or as an article of manufacture, such as a computer program product or computer readable media. The computer program product may be a computer storage media readable by a computer system and encoding a computer program of instructions for executing a computer process. The computer program product may also be a propagated signal on a carrier readable by a computing system and encoding a computer program of instructions for executing a computer process. 
     With reference to  FIG. 1 , one exemplary system for implementing the embodiments includes a computing device, such as computing device  100 . In a basic configuration, the computing device  100  typically includes at least one processing unit  102  and system memory  104 . Depending on the exact configuration and type of computing device, the system memory  104  may be volatile (such as RAM), non-volatile (such as ROM, flash memory, etc.) or some combination of the two. System memory  104  typically includes an operating system  105  suitable for controlling the operation of a networked personal computer, such as the WINDOWS® operating systems from MICROSOFT CORPORATION of Redmond, Wash. The system memory  104  may also include one or more software applications such as program modules  106  and desktop application  120 . Program modules  106  and desktop application  120  may be executed within operating system  105  or in another operating system. Furthermore, program modules  106  and desktop application  120  may be distributed programs that are executed in coordination with other computing devices. 
     According to embodiments, the desktop application  120  may comprise many types of programs. Examples of such programs include OUTLOOK®, WORD®, EXCEL®, and INTERNET EXPLORER® manufactured by MICROSOFT CORPORATION. Desktop application  120  may also comprise a multiple-functionality software application for providing many other types of functionalities. Such a multiple-functionality application may include a number of program modules, such as a word processing program, a spreadsheet program, a database program, and the like. The term desktop application is intended to distinguish the application from the LOB application, and should not be construed in any limiting sense. Desktop application  120  may essentially be any application used by a business system participant to perform computing actions including, but not limited to, emailing, scheduling, data entry, and the like. 
     According to some embodiments, desktop application  120  may include supplementary UI  122  that interacts with a business application such as a LOB application (not shown) and provides summary information associated with data that is synchronized or transferred between the two applications. Supplementary UI  122  may also provide control over the actions between the two applications. The supplementary UI may be integrated into desktop application  120  or may be part of another application and interact with desktop application  120 . The basic integrated configuration is illustrated in  FIG. 1  by those components within dashed line  108 . 
     An LOB application is one of a group of critical computer applications that are vital to running an enterprise, such as accounting, supply chain management, and resource planning applications. LOB applications are usually large programs that contain a number of integrated capabilities and tie into databases and database management systems. 
     The computing device  100  may have additional features or functionality. For example, the computing device  100  may also include additional data storage devices (removable and/or non-removable) such as, for example, magnetic disks, optical disks, or tape. Such additional storage is illustrated in  FIG. 1  by removable storage  109  and non-removable storage  110 . Computer storage media may include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information, such as computer readable instructions, data structures, program modules, or other data. System memory  104 , removable storage  109  and non-removable storage  110  are all examples of computer storage media. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by computing device  100 . Any such computer storage media may be part of device  100 . Computing device  100  may also have input device(s)  112  such as keyboard, mouse, pen, voice input device, touch input device, etc. Output device(s)  114  such as a display, speakers, printer, etc. may also be included. These devices are well known in the art and need not be discussed at length here. 
     The computing device  100  may also contain communication connections  116  that allow the device to communicate with other computing devices  118 , such as over a network in a distributed computing environment, for example, an intranet or the Internet. Communication connection  116  is one example of communication media. Communication media may typically be embodied by computer readable instructions, data structures, program modules, or other data in a modulated data signal, such as a carrier wave or other transport mechanism, and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. The term computer readable media as used herein includes both storage media and communication media. 
     Referring to  FIG. 2 , a system where example embodiments may be implemented, is illustrated. System  200  includes application server  202 , LOB application server  204 , and clients  222 ,  224 ,  226 . The term “client” may refer to a client application or a client device employed by a user to interact with one or both of a desktop application and an LOB application. Application server  202  may also be one or more programs or a server machine executing programs associated with the application server tasks. As described above, an such as a desktop application may be executed in any one of the clients or in application server  202  and shared in a distributed manner by clients  222 ,  224 , and  226 . 
     LOB application server  204  may execute an LOB application and interact with application server  202  and/or clients  222 ,  224 , and  226  for sharing data, synchronizing data and processes, and the like. 
     Server  202 , LOB application server  204 , and clients  222 ,  224 ,  226  may communicate over one or more networks. The network(s)  210  may include a secure network such as an enterprise network, or an unsecure network such as a wireless open network. By way of example, and not limitation, the network(s) may include wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. 
     In a typical implementation, a user may interact with a desktop application such as an electronic mail application that includes a calendar utility, and enter time for appointments or tasks. Information associated with the calendar entries may be provided to an LOB application running on the LOB application server  204 . A supplementary UI executed as an add-in part of the electronic mail application may provide summary information associated with the shared (synchronized) data to the user. The supplementary UI may also provide controls that enable the user to add, modify, or remove some or all of the data being transferred between the two applications. In some embodiments, the supplementary UI may be run as a distinct application and interact with the desktop application. 
     Now referring to  FIG. 3 , an example supplementary UI and its interactions with explorer and inspector views of an application and an LOB application are shown. Diagram  300  includes desktop application UI  310 , an inspector view  319  of a portion of the electronic mail application UI  310 , task pane  320 , and LOB application  330 . An electronic mail application is an example of a desktop application, in which embodiments may be implemented. Task pane  320  is an example of a supplementary UI as described previously. 
     According to embodiments, a centralized UI for displaying contextually driven business content and business related functionality may be provided as a supplementary UI accompanying the UI of an application, such as desktop application UI  310 . The desktop application may include a scheduling application, a calendar application, a word processing application, a spreadsheet application, a database application, or a browser application in addition to an electronic mail application. 
     Desktop application UI  310  may include a number of regions such as command bar region  314 , overview pane  312 , selected option pane  316 , and detailed view pane  318  (explorer view). The different panes may include elements of the desktop application that are associated with a second application through data binding. The second application may be a business application (e.g. LOB application  330 ). 
     For example, the desktop application may be an electronic mail application with scheduling capability. Overview pane  312  may present different options of the electronic mail application such as composing or reviewing mail, calendar, contact information, and the like. Selected option pane  316  may present contents of the option chosen from overview pane  312 , such as calendar items. Detailed view pane  318  may present details of the item highlighted in the selected option pane  316 , such as an appointment on a particular date. 
     In the above example, the appointment may be designated as an item to be reported to a business application for time keeping purposes. In that case, information associated with time, duration, and other relevant aspects of the appointment may be provided to LOB application  330 . 
     Task pane  320  is configured to provide summary information, content control, and additional capabilities associated with the exchange (or synchronization) of data between the selected element(s) of desktop application UI  310  and LOB application  330 . 
     LOB application  330  may be any business related application and may include one or more modules such as project  332 . Project  332  may in turn include one or more modules such as workflows, tasks, subprojects, and the like. Module  334  represents an example subgroup within project  332  that keeps track of time entries from desktop application  310  in the above example. 
     Getting back to task pane  320 , the task pane or supplementary UI may be generated based on selection of an element of desktop application UI  310 , such as the calendar entry. Task pane  320  may include a number of regions that present object identification, dynamic messages, content control, description of direct actions, links to related reports, links to related actions, or contextual data. An order, a layout, an emphasis, or a selection of graphics, associated with the regions may be determined based on the selected element. Contents of the task pane are discussed in conjunction with  FIGS. 6 ,  7 , and  8  later in this text. 
     Task pane  320  may also be generated by selection of an element in inspector view  319  of the desktop application UI. Inspector view  319  is presentation of details of a chosen item from selected option pane  316  in a separate window. For example, emails may be viewed in an integral “Preview Pane” or in a separate window in OUTLOOK®. Thus, task pane  320  may be activated by a number of elements in desktop application UI  310  or associated inspector view(s)  319 . 
     Task pane  320  may be dynamically positioned and its behavior controlled based on a position and size of desktop application UI  310 , as well as selection of the element in the desktop application UI. Dynamic positioning of the supplementary UI (task pane  320 ) is discussed in detail below in conjunction with  FIG. 4  and  FIG. 5 . 
     Task pane  320  may be activated automatically when an element is selected for the first time to provide the user an indication that the task pane is available as a tool for the user. If the user navigates away from the selected element or deselects that element, the task pane may be automatically deactivated. According to one embodiment, the task pane may not be reactivated when the element is selected for a second time, since the user is presumed to be aware of the task pane functionality at this point. The desktop application may include an option icon or similar items for the user to activate the task pane at will. On the other hand, a default setting may activate the task pane every time an element is selected. 
     When one or more inspector view windows are opened, the task pane may follow the active window, i.e. reflect information associated with the active inspector view window. The task pane is also positioned about the active inspector view window. As the open inspector view windows are closed, the task pane(s) associated with those may also be deactivated leaving open only the task pane associated with the currently active desktop application window. 
     Task pane  320  may be managed by an add-in module of the desktop application, or by a distinct application that interacts with the desktop application. Furthermore, task pane  320  may be presented as a separate UI from desktop application UI  310 , or it may be an integrated part of desktop application UI  310 . The above examples for desktop application and task pane are for illustration purposes only, and embodiments may be implemented with any application following the principles described herein. 
       FIG. 4  illustrates diagram  400  of example placements of a task pane in relation to an application UI according to embodiments. As explained previously, the task pane may be dynamically positioned about the desktop application UI and sized based on a size and position of the desktop application UI. 
     Example placements  402 ,  404 ,  406 , and  408  show the task pane being sized to match a size (e.g. length or height) of the desktop application UI and placed adjacent to the desktop application UI (e.g. right, left, below, and above, respectively). Example placements  410  and  412  show the task pane being placed in hovering mode, where the task pane is placed over the desktop application UI in a shifted position. This mode may be employed when the desktop application UI covers a significant portion of the screen or when multiple application UI&#39;s are open at the same time. 
     According to some embodiments, the size and the placement of the supplementary UI (task pane) may be dynamically modified based on actions associated with the desktop application UI. For example, a change in size or placement of the desktop application UI may result in modification of the task pane size and position. Selection of a different element in the desktop application UI, which may result in different contents being displayed in the task pane, may also lead to dynamic repositioning and resizing of the task pane. Furthermore, placement modes (e.g. adjacent, hovering) may also be interchanged based on changes to the desktop application UI. The placements described in this portion are for illustration purposes only. The supplementary UI may be placed in any position and sized in any way suitable with the desktop application. 
       FIG. 5  illustrates diagram  500  of example placement and use of task panes with explorer and multiple inspector views of an application UI. As explained previously, a desktop application may include a UI with an explorer view window ( 502 ) and multiple inspector view windows (e.g.  504 ,  506 ,  508 ). Due to the rules of the operating system, only one of the open windows is “active” at any given time, however. In a typical implementation, the task pane is first activated by the explorer view window of the desktop application UI. As inspector view windows are opened, each may activate its own corresponding task pane while the task panes associated with “inactive” UI windows are deactivated. 
     In one embodiment, the activation and deactivation of the task panes may take the form of the task pane simply following the currently active desktop application UI window, and all others disappearing from the screen. In another embodiment (as shown in the figure), task panes associated with inactive application windows may be presented in an inactive mode with only the active task pane performing actions described previously. If the active application UI window is closed, the corresponding task pane may also be closed and one of the inactive ones corresponding to the new active window activated. 
       FIG. 6  illustrates an example task pane  600  and its contents according to one embodiment. Example task pane  600  is employed to provide summary information and content controls for exchange of data between a scheduling application and an LOB application keeping track of time. 
     Task pane  600  has at the top level title  602 . Title  602  may be used to define the task pane and be universal. Title  602  is followed by subheading  604 . Subheading  604  may be used to provide an application specific summary definition of the task pane. In example task pane  600 , the subheading  604  is Time Recording indicating that the task pane is associated with time keeping activities. In one embodiment, subheading  604  may include control icons such as dropdown menu controls. Examples of different configurations for subheading  604  are provided in  FIG. 7 . 
     Subheading  604  is followed by an object identification region  606 . Object identification region  606  provides summary information about the item from the scheduling application, which is being synchronized with the LOB application. In the example, the timekeeper item is defined as “Discuss New Project” (retrieved from scheduling application entry), and its duration is shown as 1 hour. Object identification region  606  is followed by content control region  608 . Content control region  608  provides options to the user to modify attributes and aspects of the data being synchronized. In the example, content control region  608  is titled “Recording Details”, and provides options to modify a project code, an activity definition, and a brief description for the activity. The example task pane provides these options as fixed options in dropdown menu style. In other embodiments, the user may be provided the option of entering his/her own information for the attributes or aspects. 
     Content control region  608  is followed by contextual data region  610 . Contextual data region  610 , titled “Recording Balance” in the example, provides summary information associated with the project such as total recorded time and the period of recording. This information is typically retrieved from the LOB application. Contextual data region  610  is followed by related actions region  612 . Related actions region  612 , titled “You Can Also” provides links to activities for the user associated with the time keeping operation. 
     Task pane  600  and its contents are provided for illustration purposes only. A supplementary UI to provide contextual business content and business related functionality is not limited to the example task pane, and may be implemented in other ways using the principles described herein. Specifically, type, layout, and order of regions within the supplementary UI may be selected in many different ways such as those described in conjunction with  FIG. 8 . 
       FIG. 7  illustrates two example styles for a subheading of a task pane according to embodiments. Subheading  702  is the application specific subheading of the example task pane of  FIG. 6  without control icons. 
     Subheading  704 , titled “Time Reporting”, includes a dropdown menu icon  706  and available menu items  708  associated with the icon. The dropdown menu icon  706  provides another method of offering the user choices, such as selecting additional panes. In some embodiments, options may be provided to the user as tabs along one edge of the UI. The user may then select one of the available panes by clicking on the related tab. 
     The example implementation of dropdown menu icons and tabs to provide selections to the user is intended for illustration purposes only and should not be construed as a limitation on embodiments. Other embodiments using different methods for providing a supplementary UI to present summary information and content controls may be implemented using the principles described herein. 
       FIG. 8  illustrates a sampling of content portions for a task pane  800  according to embodiments. Task pane  800  includes title region  802  as described in  FIG. 6 . Title region  802  may include control icons such as an open/close icon  832  as well. Title region  802  is followed by subheading  804 , which is typically application specific and may include the application name. Because task pane  800  may be used with multiple applications, subheading  804  may include a dropdown menu icon  834  to select from the available applications. 
     Branding graphics region  806  may be used to provide graphics associated with the desktop or LOB applications tied together by the task pane. Branding graphics  806  is followed by an object identification region  808 . Object identification region  808  may be used to identify the element of the desktop application, its counterpart module in the LOB application, as well as to provide status information. Multiple object identification regions may be collapsed or expanded using a dropdown menu icon. 
     Dynamic message region  810  is used to provide summary information such as status of the activity. For example, in a workflow application, status of different workflow tasks may be reflected in dynamic message region  810 . Content controls region  812  includes options for the user to modify attributes, aspects of data being synchronized or exchanged between the two applications. Actions region  814  may provide links to actions associated with the LOB application. For example, in a time keeping application, the actions region  814  may include a link that enables the user to open a new timekeeper item or a new project. The links in actions region  814  may be in form of hyperlinks, buttons, and the like. 
     Another region in task pane  800  is contextual data region  816 . Contextual data region  816  may provide information retrieved from the LOB application such as total recorded time balance in a time keeping application. Contextual data region  816  is followed by object link region  818 . Object link region  818  includes links to additional objects (e.g. “Recent Requests”) associated with the LOB application and the desktop application. 
     A further region in task pane  800  is related reports region  820 . Related reports region  810  may provide links to related reports in form of text hyperlinks, buttons, tree style, and the like. Related actions region  822  is similar to the related reports region  820 , and provides links to actions within the desktop or LOB applications associated with the current task pane. 
     Task pane  800  may include many more or fewer regions in any order. The regions may be designed to appear only when they include an item within themselves or may be listed in a dropdown menu. The regions may also include additional elements such as graphics, control icons, and the like. 
       FIG. 9  illustrates a logic flow diagram for process  900  of using a supplementary UI according to embodiments. Process  900  may be implemented in an application server or client as described in  FIG. 2 . 
     Process  900  begins with operation  902 , where a selection on the application UI is received. As described previously, the selection may be activation of a link associated with a calendar entry, a task entry, and the like. In a typical implementation, the selected item is associated with a corresponding item in an LOB application. Processing advances from operation  902  to operation  904 . 
     At operation  904 , information associated with the selected item is retrieved from the LOB application. In the scheduling example, such information may include data associated with a project task, and the like. Processing moves from operation  904  to operation  906 . 
     At operation  906 , the supplementary UI (in the example, the task pane) is generated. The contents of the task pane such as message, object, and control regions may be created and ordered based on the information retrieved from the LOB application and the application UI. Regions within the supplementary UI include information received from the application UI and retrieved from the LOB application. Processing advances from operation  906  to operation  908 . 
     At operation  908 , the task pane is dynamically positioned based on a position and size of the application UI. Specific examples of task pane positioning are discussed in conjunction with  FIGS. 4 and 5 . The task pane may, however, be positioned in any predefined way in relation to the application UI. Operation  908  is followed by operation  910 . 
     At operation  910 , the data is synchronized. Some data may be synchronized automatically between the application and the LOB application. Other portions of the data may be synchronized upon approval by the user. In other embodiments, the user may be provided the option of binding additional data to be synchronized. Processing advances from operation  910  to optional  912 . 
     At optional operation  912 , additional actions associated with transferring data between the application and the LOB application may be performed. Such actions may include modifying data to be synchronized, setting or modifying of properties and attributes of information to be exchanged between the applications, and the like. After optional operation  912 , processing moves to a calling process for further actions. 
     The operations included in process  900  are for illustration purposes. Providing a centralized UI for displaying contextually driven business content and business related functionality may be implemented by similar processes with fewer or additional steps, as well as in different order of operations using the principles described herein. 
     The above specification, examples and data provide a complete description of the manufacture and use of the composition of the embodiments. Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims and embodiments.