WO2006111409A1 - Methods and apparatus for contextual awareness in a groupware client - Google Patents

Methods and apparatus for contextual awareness in a groupware client Download PDF

Info

Publication number
WO2006111409A1
WO2006111409A1 PCT/EP2006/003706 EP2006003706W WO2006111409A1 WO 2006111409 A1 WO2006111409 A1 WO 2006111409A1 EP 2006003706 W EP2006003706 W EP 2006003706W WO 2006111409 A1 WO2006111409 A1 WO 2006111409A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
groupware
context
groupware client
query
Prior art date
Application number
PCT/EP2006/003706
Other languages
French (fr)
Inventor
Irene Ivashenko
Nir Kol
Dennis Moore
Frederic Samson
Narayan Nayar
Eric Wood
Original Assignee
Sap Ag
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sap Ag filed Critical Sap Ag
Priority to EP06724504A priority Critical patent/EP1880354A1/en
Priority to JP2008507015A priority patent/JP5080447B2/en
Publication of WO2006111409A1 publication Critical patent/WO2006111409A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management

Definitions

  • Embodiments of the invention relate to enterprise data access, and more particularly to providing data dynamically to a groupware client based on context.
  • a workflow generally refers to a flow of tasks associated with a business process.
  • Enterprises increasingly rely on computers for performing tasks related to a business process, and thus, for executing the tasks of a workflow.
  • Computers can provide mechanisms for modeling, executing, and/or controlling workflows, typically through a graphical user interface (GUI).
  • GUI graphical user interface
  • a GUI may be related to a particular program or application that acts as an interface for operating on a workflow.
  • Traditional interfaces to workflows involve multiple, unrelated desktop applications.
  • a participant in a workflow may receive a notification of one or more tasks via an email application or other collaborative software, and then need to launch a Web browser or other application to access an enterprise system that will enable the participant to complete the task(s).
  • traditional groupware applications have fixed content options, which provides a fixed type of access to data regardless of the user or the work involved.
  • Methods and apparatuses provide contextual awareness to a groupware client with respect to an enterprise backend system.
  • the groupware client generates a query or request for data within a context of the groupware client.
  • a backend determines the context, which may include processing an indication of the context received with the query. Data is selectively chosen based on the context, and the selected data is provided to the groupware client to fulfill the request. In one embodiment, the backend determines a permission associated with the context.
  • Figure 1 is a block diagram of an embodiment of a groupware content manager to provide content to a groupware client with a business process extension.
  • Figure 2 is a block diagram of an embodiment of a groupware application with enterprise data provided by a groupware content manager.
  • Figure 3 is a block diagram of an embodiment of a groupware application with a business process workflow extension with enterprise data provided by a groupware content manager.
  • Figure 4 is a flow diagram of an embodiment of selecting enterprise data to a groupware client based on a user role associated with the groupware client.
  • Figure 5 is a flow diagram of an embodiment of selecting enterprise data to a groupware client based on a context associated with the groupware client.
  • references to one or more "embodiments” are to be understood as describing a particular feature, structure, or characteristic included in at least one implementation of the invention.
  • phrases such as "in one embodiment” or “in an alternate embodiment” appearing herein describe various embodiments and implementations of the invention, and do not necessarily all refer to the same embodiment. However, they are also not necessarily mutually exclusive.
  • Descriptions of certain details and implementations follow, including a description of the figures, which may depict some or all of the embodiments described below, as well as discussing other potential embodiments or implementations of the inventive concepts presented herein. An overview of embodiments of the invention is provided below, followed by a more detailed description with reference to the drawings.
  • Extensions to a groupware client enable access to a business process via the groupware client.
  • the content of provided via the groupware client is contextual, and may change based on a user identifier (ID), a workflow ID, or other context.
  • groupware refers to any of a type of collaborative software, for example, email software, spreadsheet software, etc.
  • Groupware is generally associated with a server that provides data and/or functionality to the software.
  • a client refers to a program, routine, etc., that allows interaction with the groupware server.
  • a client refers to an application with a user interface that includes native functionality to access the groupware server.
  • a client may operate/exist/execute independently of an application that has a user interface, and may in fact provide groupware server access functionality to multiple applications.
  • a groupware client as referred to herein may refer to a groupware application, or to a program that enables one or more applications to access a groupware server.
  • a workflow participant can access and interact with a business process through a groupware client.
  • the groupware client is generated as a modeled software program.
  • a business process refers broadly to a process used to perform work within an enterprise.
  • One or more workflows may be associated with the business process through which to accomplish the work.
  • a workflow includes one or more phases or stages, where each phase is an action or activity to be executed/performed in furthering progress towards the end-goal of the business process.
  • a "hiring" business process may include a "finding candidates" workflow, an "interviewing” workflow, etc., each of which may have multiple actions or activities associated (e.g., scheduling an interview time, arranging travel for the candidate, etc.), which may be executed to accomplish the end goal of hiring an individual.
  • Each phase of a workflow is referred to herein as a "task,” which may be a single item of work (an "action”), or a set of actions (an "activity").
  • a workflow may include structured and/or ad hoc tasks of a business process.
  • a workflow may include context in terms of organizational roles of participants, as well as documents, forms, or other data.
  • the extensions provided to the groupware client can enable integration of business process tasks into the environment of the groupware client (or an application with which the groupware client is associated). Additionally, the extensions can interact with other contextually aware modeled software in the groupware client (e.g., applications accessible from within or that otherwise operate with the groupware client - for example, via popup window, or available from pull-down menus). Changing content based on the context or environment of the groupware client maybe referred to as contextual awareness, or a client being contextually aware. Contextual awareness in a groupware client refers to the dynamic providing of data and/or tools within the groupware client based on the context. Context refers to any number of environmental factors that can affect the permissions associated with a groupware client's access to enterprise data.
  • Factors may include a user ID including a group or department association, a business role, a workflow being executed, a phase or action of a workflow being executed, whether a user is online or offline, a type of device from which the data is being accessed, etc.
  • the context of a groupware client refers to the local environment of the groupware client, and may or may not include external factors in addition to the local factors.
  • data may be selectively displayed, certain data objects may be provided or excluded from the groupware client from the backend systems, certain tools available from within the groupware client may be available or unavailable, etc. Tools refer to one or more items that provide functionality to access, modify, or otherwise operate on data.
  • Data that can be accessed and selectively provided via the groupware client includes data objects, forms, functions, services, data structures, and/or processes.
  • a backend system includes logic and services to manage and control the data and processes, and may be referred to as a business backend system.
  • the backend systems include applications that execute to provide one or more particular functions or services.
  • the user interface of a groupware application is likely to be familiar to the workflow participant, and may allow the integration of tools of the groupware application (e.g., spellchecking, translations, etc.) into the performance of the workflow task.
  • the groupware application typically includes various fields in which to present information and/or work for the user. Rather than providing multiple, different applications each with a different environment in which to perform work, integration of enterprise data and contextual information within the groupware client can enable providing multiple items within the format and with the tools of the groupware application. For example, a particular groupware application may include a folder list to provide access to data or work items.
  • Integration of enterprise data into the groupware application with contextual awareness enables the groupware application to include a folder having access to the enterprise data, rather than simply data local to the groupware client or available from the groupware server.
  • the integration with contextual awareness enables connecting the user to the backend enterprise systems within the groupware application, which means a user does not have to change from the context of the groupware application to access enterprise data and work items.
  • the availability of the contextually aware data from within the groupware application is in contrast to traditional systems that required the user to switch from one application to another to perform work.
  • a workflow participant i.e., a user, or entity that participates in a workflow
  • can interact e.g., create, process, track, set preferences, etc.
  • groupware client may refer to the groupware client and/or its associated groupware application(s).
  • Persisting the information refers to making the information available to the workflow participant either continuously, or upon request, and from within the context of the groupware client. For example, status information may be provided to the groupware client to provide updated information for the business process within the groupware client. Also, or in the alternative, status information could be accessible, for example, when the workflow participant selects an item/icon or executes an action within the groupware client. Persisting the information may include storing the information locally to the groupware client, or within a storage location within a groupware server, in addition to storing the information within the enterprise backend. The data that is persisted, and the work provided in the workflows is dynamic and provided based at least in part on what is happening within the groupware client, in terms of who is accessing what, and when.
  • Figure 1 is a block diagram of an embodiment of a groupware content manager to provide content to a groupware client with a business process extension.
  • Application 110 represents any software program or other application that includes groupware client 116, or accesses groupware client 116.
  • Groupware client 116 provides interaction with groupware server 140, which provides groupware information and/or services for groupware application 110.
  • Groupware server 140 may be, for example, an email server (e.g., an EXCHANGE server available from MICROSOFT CORPORATION of Redmond, Washington).
  • groupware server 140 can include extensions to enable groupware client 116 to access enterprise services and/or data for application 110.
  • Application 110 and groupware server 140 can be connected directly, or over network 132.
  • groupware server 140 is coupled over network 136 to groupware interface 160 of enterprise server 150.
  • Networks 132, 136, and also 134, described below, may include one or more local area networks (LANs), including wireless or wired networks, and hardware and software with which to operate on the network.
  • Network 132-136 may also include other networks, for example, wide area networks, enterprise networks, virtual private networks (VPNs), etc.
  • groupware server 140 exists within the same local network as groupware interface 160 and/or enterprise server 150, although existence within the same local network is not a requirement.
  • Enterprise server 150 represents both hardware and software that operates to provide enterprise data and services access and/or management.
  • Groupware interface 160 represents hardware and/or software to provide groupware- enterprise integration/management. In one embodiment, part or all of groupware interface 160 is incorporated within groupware server 140. In another embodiment, part or all of groupware interface 160 is incorporated within enterprise server 150. In another embodiment, part or all of groupware interface 160 is a standalone entity in hardware and/or software. In one embodiment, groupware interface 160 includes one or more components based on Enterprise Services Architecture (ESA) available in conjunction with mySAP and NETWEAVER products available from SAP AG of Walldorf, Germany, and/or one or more components based on MICROSOFT .NET.
  • ESA Enterprise Services Architecture
  • groupware interface 160 is a server or manager product (e.g., a MENDOCINO server available from collaborative efforts of MICROSOFT CORPORATION and SAP AG).
  • groupware interface 160 may also be referred to as an interface server, or an enterprise-groupware manager.
  • Groupware interface 160 provides one or more mechanisms to enable interaction between groupware client 116 and enterprise server 150, either directly or via groupware server 140. The interaction may include requests between groupware client 116 and enterprise server 150, and responses to the requests. From the groupware side, groupware client 116 may make requests and/or send actions or commands generated from within application 110 to perform a function with respect to enterprise data related to a workflow that exists within the context of application 110.
  • Enterprise server 150 may provide reports, errors, status or other information, data objects, service access, etc., to application 110 through groupware interface 160.
  • groupware interface 160 includes groupware content manager 162, which represents one or more modules or agents that provide contextual awareness to data 118 presented to groupware client 116, which is in turn provided to a user through user interface (UI) 112.
  • UI user interface
  • groupware interface 160 "holds" information related to dynamic data 118 currently accessed within application 110 when application 110 is offline, or disconnected/unable to access groupware server 140 and/or groupware interface 160 or enterprise server 150. When access is restored and application 110 comes back online, information may be synchronized with information local to application 110 related to the data 118. Synchronization of information may also occur when application 110 is online, such as through event-driven connectivity originating from application 110, and/or through a pull daemon that synchronously and/or asynchronously initiates access of enterprise server 150 from application 110.
  • Groupware interface 160 may include a repository or storage wherein information can be locally held or temporarily contained until a synchronization opportunity (e.g., an event, an action, at a time, etc.).
  • Groupware content manager 162 obtains information and status updates, from which dynamic data 118 is provided, through interaction with enterprise data 180 or with one or more services 190 via framework 170.
  • Framework 170 provides a framework of logic and services that enable groupware interface 160 to provide enterprise-level information to groupware server 140.
  • groupware interface 160 and framework 170 are part of the same software and/or hardware module.
  • groupware interface 160 could be considered a "groupware server” layer of a groupware-enterprise manager/server, and framework 170 could be considered an "enterprise” layer of the groupware-enterprise manager/server.
  • Enterprise server 150 includes framework 170, which represents structured logic with which to provide status information to groupware server 140, and optionally receive requests or queries from groupware server 140. Similar interaction can be provided directly to application 110 through the use of Web service 164.
  • framework 170 includes a composite application framework (e.g., SAP CAF) and/or a services architecture (e.g., SAP ESA (ENTERPRISE SERVICES ARCHITECTURE)).
  • Framework 170 may include service mapper 172, which represents logic to map requests or queries to an appropriate enterprise service.
  • Data broker 174 represents logic to access enterprise data 180, including, for example, enterprise resource planning (ERP) database (DB) 182. Other data may be available in enterprise data 180.
  • ERP enterprise resource planning
  • DB database
  • framework 170 models backend logic to provide appropriate data and service access to groupware server 140/groupware client 116.
  • a composite application framework provides backend logic to a front-end (e.g., an application).
  • groupware server 140 may interface enterprise server 150 through extensions in much the same way a composite application can interface the enterprise backend.
  • Services 190 broadly represent functions that can be performed on enterprise data or with respect to enterprise data.
  • services 190 may include one or more enterprise services, which represent functions that can be performed with respect to a local enterprise.
  • a local enterprise refers to an enterprise to which the workflow belongs.
  • a local enterprise may include one or more domains, domain servers, local area networks (LANs) whether wired or wireless, virtual LANs (VLANs), etc.
  • An enterprise is local with respect to a server that generally provides access to a device of a user (specifically shown is enterprise server 150).
  • a local enterprise may be in contrast to a remote enterprise, which represents an enterprise that is not local.
  • a remote enterprise which represents an enterprise that is not local.
  • One or more elements of information or data objects, or one or more functions or services related to a workflow, or operable on a workflow, may exist within an enterprise remote to enterprise server 150 (i.e., managed separately).
  • one or more remote enterprise services can provide contextual data to groupware client 116.
  • One example of access to a remote enterprise service includes access within a cooperative relationship between enterprises, e.g., with a grid trading network.
  • a grid trading network generally enables users to access enterprise data and share functionality across separate enterprises.
  • Services 190 may also include one or more Web services, which represent one or more services that provide access to one or more particular websites, or to the Internet in general.
  • Service mapper 174 may determine which of services 190 can/should be invoked to fulfill a request/action received from groupware client 112. In one embodiment, service mapper 174 may determine that multiple services 190 are appropriate services with which fulfill a request. Thus, multiple of services 190 may be selected simultaneously, or substantially simultaneously (e.g., temporally proximate in time, selected by a single operation or routine, selected to execute in parallel, etc.) to provide functionality.
  • Backend application 192 represents one example of an application that executes in a backend system, from which particular data and/or functions may be available to groupware client 116. Contextual awareness can include providing access to certain services to application 110, while other services are not available. Thus, backend application 192 can be available through a service available to groupware client 116 based on the context of application 110. If the context allows access to backend application 192, groupware content manager 162 enables groupware client 116 access to the appropriate service.
  • groupware client 116 and/or application 110 may include business (biz) process extension 120.
  • Business process extension 120 may be similar to the extensions that could be provided to groupware server 140, although they could be different.
  • Business process extension 120 may include a repository of information and/or a metadata processing engine to be able to provide status information and persistence of business process information to groupware client 116. If application 110 were to be executed offline, the repository or storage may store information that can later be passed to enterprise server 150 and/or synchronized with the enterprise.
  • Business process extension 120 may provide logic with which groupware client 116 interfaces with groupware server 140, and/or processes information exchanged with groupware server 140.
  • business process extension 120 provides groupware client 116 with an interface to enterprise 150 through Web service 164, which represents one or more Web services with which to access enterprise server 150.
  • Web service 164 represents one or more services accessible to application 110/groupware client 116. Access to a Web service is typically authorization-based, and may include registering.
  • the context of application 110 can determine whether Web service 164 can provide access functionality to enterprise server 150 and/or groupware interface 160.
  • Web service 164 refers to a function or routine through which the access can be accomplished.
  • enterprise server 150 includes object standardization 152, which represents one or more software and/or hardware modules.
  • object standardization 152 can provide a common interface for objects sent to application 110.
  • Object standardization 152 can provide a common formatting or "look and feel" of objects to enhance the seamless nature of the enterprise access integration.
  • object standardization 152 includes a translator between the enterprise backend formatting and the context of application 110.
  • object standardization 152 provides the functionality to provide contextual data within the context of application 110.
  • object standardization 152 provides the functionality to provide contextual data within the context of application 110.
  • Context 114 could include anything through which contextual information may be derived (e.g., user name and password, preferences, documents, software version/status information, authorizations, keys, or any other information that may indicate a preference or authorization for access to data). Context 114 may be passed to enterprise server 150 and/or to groupware interface 160 through any interaction mechanism between groupware client 116 and groupware interface 160. Thus, enterprise server 150 can react to the context of application 110 when providing information. Filters may be employed to limit data passed or services available that are appropriate for an authorization indicated by context 114. In one embodiment, filters may be provided to provide data/services that match preferences, or are associated with a particular work context or application being used.
  • FIG. 2 is a block diagram of an embodiment of a groupware application with enterprise data provided by a groupware content manager.
  • Groupware application 210 represents a groupware application and/or associated groupware client according to any embodiment described herein.
  • Application 210 includes application core 212, which represents code and logic that provides the general functions of application 210.
  • Business process extensions are provided for application 210, and application core 212 represents the application without the extensions. The extensions provide the ability to interact with business processes from within application 210. As described herein, the interaction can be further subject to awareness of the context of application 210, which can provide dynamic presentation of data/tools in groupware application 210.
  • Groupware content manager 270 provides for contextual awareness for data/tool availability within groupware application 210.
  • Enterprise data 214 represents data and/or tools of groupware application 210, which are managed by groupware content manager 270.
  • groupware manager 270 represents a composite of various mechanisms within extensions 222-228 to dynamically affect how workflows and/or other objects can be accessed/worked on within groupware application 210.
  • Groupware application 210 includes, or has access to one or more extensions, which may include process initiator 222, information interface 224, status tracker 226, and action initiator 228, each of which may be implemented as one or more modules. Additional or alternative extensions can be provided to result in an application that includes some, all, or different modules than what is shown in Figure 2.
  • Each of the modules may provide structured logic to implement one or more functions related to accessing or otherwise interacting with a workflow associated with a business process.
  • Process initiator 222 provides logic to initiate a workflow from within the context of application 210. Thus, a workflow participant can generate a new workflow from within the context of application 210.
  • process initiator 222 may initiate workflow 240, and begin phase 242.
  • application 210 is not limited to interacting with workflows generated from within the context of application 210.
  • Workflow 240 includes phases 242-254, which may represent any number of discrete parts of workflow 240. The phases may be conditioned on certain events or conditions, may be performed in parallel, etc.
  • Process initiator 222 can limit the ability to generate a workflow based on the context of groupware application 210.
  • Information interface 224 can provide an interface to gather data and status or other information related to a workflow accessed within application 210.
  • Information interface 224 may gather information from workflow 240 and/or from backend logic 260.
  • Information interface 224 may be or include a repository of information that is obtained from business process backend 230, which may be included within an enterprise server.
  • Backend logic 260 represents any service or data, which includes enterprise data 262, which can be accessible to application 210 through business process integration as described herein.
  • Enterprise data 262 represents an enterprise repository that can include data objects, services, processes, process templates, etc.
  • Backend logic 260 is to be understood as any data or function related to data that can be provided at the enterprise level through an enterprise server.
  • Information interface 224 can selectively obtain information/objects based on the context of groupware application 210.
  • a mechanism in the backend selects information to provide to information interface 224.
  • information interface 224 enforces restrictions on information access relative to the context of groupware application 210.
  • Status tracker 226 provides a mechanism that can monitor one or more workflows.
  • Status tracker 226 may include a routine or other logic that can receive input regarding workflow 240 and update information in application 210 related to workflow 240.
  • status tracker 226 may store information in a status information repository or datastructure or other mechanism through which business information is persisted within application 210.
  • Status tracker 226 may provide logic through which an icon or text displayed in a GUI associated with application 210 is modified.
  • Status tracker 226 receives information related to workflow 240.
  • different permissions may apply, which may cause groupware content manager 270 to alter availability to data/tools within groupware application 210.
  • Action initiator 228 can send or receive an action, or request for an action.
  • action initiator 228 can send an action to any phase within workflow 240, for example, to perform a task associated with the phase.
  • Action initiator 228 can likewise send an action to backend logic 260 to cause or result in action on workflow 240 from within the enterprise-level, rather than from within application 210.
  • action may be directly or indirectly taken on workflow 240 from an action performed within application 210.
  • Action initiator 228 may include functions associated with buttons or icons available from within application 210. Thus, for example, clicking or double-clicking a particular icon may make a change to workflow 240, or a change to a view provided on workflow 240 (e.g., change from a list view to a table view, etc.), or launch a guided process related to workflow 240.
  • Action initiator 228 can provide certain action requests, and/or ignore certain action requests based on the context of groupware application 210.
  • action initiator may receive updated information or a trigger from external to application 210 that can cause a function to occur within application 210. In one embodiment, such a received action can cause a function of application core 212 to be performed.
  • Business process extension 120, object standardization 154, and groupware interface 160 of Figure 1, and process initiator 222, information interface 224, status tracker 226, and action initiator 228, and the groupware content managers can be implemented as modules, which may include hardware, software, and/or a combination of these.
  • Software included within modules can instruct a machine to implement techniques described herein. Additionally, software can be used to describe how to manufacture a device to perform the functions of these components. Such software may be provided via an article of manufacture by a machine/electronic device/hardware.
  • An article of manufacture may include a machine accessible/readable medium having content to provide instructions, data, etc.
  • the content may result in an electronic device or computing system performing various operations or executions described.
  • a machine accessible medium includes any mechanism that provides (i.e., stores and/or transmits) information/content/instructions in a form accessible by a machine (e.g., computing device, electronic device, electronic system/subsystem, etc.).
  • a machine accessible medium includes recordable/non-recordable media (e.g., read only memory (ROM), random access memory (RAM), magnetic disk storage media, optical storage media, flash memory devices, etc.).
  • the machine accessible medium may further include an electronic device having code loaded on a storage that may be executed when the electronic device is in operation.
  • delivering an electronic device with such code may be understood as providing the article of manufacture with such content described above.
  • storing code on a database or other memory location and offering the code for download (i.e., providing the code for access) over a communication medium may be understood as providing an article of manufacture with such content described above.
  • FIG. 3 is a block diagram of an embodiment of a groupware application with a business process workflow extension with enterprise data provided by a groupware content manager.
  • Groupware application 310 is one example of a groupware client and/or application according to any embodiment described herein.
  • Groupware application 310 may be an application such as would be found in an office productivity software suite (e.g., EXCEL or OUTLOOK in MICROSOFT OFFICE available from MICROSOFT CORPORATION).
  • Groupware application 310 includes task bar 312, which can provide application 310 with various icons and menus to provide functionality to a user of the application.
  • application 310 includes action pane 320, which can provide additional functionality to a user.
  • Action pane 320 can also be referred to as a task pane.
  • Action pane 320 may provide navigational advantages over task bar 312, in addition to having different functionality.
  • Action pane 320 includes functionality tools 322-326, which may be links, icons, folders, tabs, etc., to provide one or more navigational functions and/or functions for performing work (e.g., completing tasks), and/or provide access to data or tools to perform work, hi one embodiment, action pane 320 includes tab 324, which provides dynamic access to a business process workflow within the context of application 310.
  • Application 310 includes several items that are shown in dashed lines. The items in dashed lines represent the fact that one or more objects may be visible and/or accessible based in whole or in part on the context of application 310.
  • items 322 and 328 may be accessible in only certain contexts. For example, suppose item 322 is a folder that indicates a particular project, and accessing folder 322 provides access to various objects and/or workflows related to the project. If business process workflow 340 is not related to the project associated with folder 322, folder 322 may be displayed, but non-selectable, or perhaps not even displayed, because the context of application 310 does not provide any relation to the project, whether through work to be done, and/or permissions, hi one embodiment, there are no actions to perform on the project, and folder 322 is inaccessible until a workflow task is provided to application 310 (i.e., the occurrence of an event or condition).
  • item 326 may be accessible within the context of application 310, and item 328 is unavailable under the same context.
  • dynamic display of action/task navigation items 322-328, content in work pane 330, business process workflow 340, and/or tools 350 can be dynamically affected by the context of application 310, as described in more detail below.
  • application 310 includes work pane 330, which provides an area in which to view and perform work done in application 310.
  • work pane 330 includes one or more objects 332-336, which can be objects related to a workflow, a process, or other data. Based on the context, object 332 may be available, while other objects 334-336 may be inaccessible and/or unviewable.
  • Selection of, or action on item 326 can provide a view of business process workflow 340.
  • the view of workflow 340 can be within work pane 330, or alternatively, within a separate window or pane (as shown in Figure 3). Thus, an appropriate view may be enabled in which enterprise-level access tools may be provided within the context of application 310.
  • the view of workflow 340 may also include tools 350, with items 352- 356 for actions specific to working on workflow 340. Items 352-356 provide functionality to tie a certain action or view or data access to the backend enterprise system.
  • One embodiment of a view of workflow 340 includes providing a view of each phase of the workflow, hi the embodiment shown, the view of workflow 340 provides a view of phase 342 of workflow 340.
  • the view of phase 342 is due to the contextual awareness with which data is provided to application 310.
  • application 310 can provide a query or request for data to a backend enterprise system related to business process workflow 340 in response to a selection of item 326 corresponding to the workflow.
  • the backend system can determine that the context of application 310 is workflow 340, for example, by the passing of a workflow ID by application 310 with the request for data.
  • the backend system may determine the contextual information that the current phase of workflow 342 that needs attention is phase 342.
  • the view of workflow 340 presents phase 342, with action 344 and sub-action 346 that can be selected for performance.
  • phase 342 includes action 348 that may be inaccessible with the current context.
  • action 348 may be dependent upon an action or item of information to be discerned from performance of action 344.
  • action 348 may be inaccessible until action 344 is complete.
  • action 348 can be made accessible.
  • Each action/sub-action can include one or more tools to perform the work of the action and one or more items of information related to the task.
  • Tools 350 may also be dynamically provided based on contextual awareness.
  • phase 342 of workflow 340 could be related to salary information.
  • Tools 350 may include items 352 and 356 related to changing salary and/or bonus. If workflow 340 is displayed to the user about whom the information relates, the user may be able to see the salary and bonus information, but be restricted from changing it. If workflow 340 is displayed to a manager of the user about whom the information relates, the manager may be able to see and modify the salary and bonus information.
  • any one of the dashed items may be selectively displayed and/or accessible, or any combination of dashed and non-dashed items of Figure 3 can be selectively displayed and/or accessible.
  • a particular tab in action pane 320, a particular object of work pane 330, a particular aspect of workflow 340, and/or a particular item of tools 350 can be selectively accessible alone, or in conjunction with any other of the same or different items.
  • Groupware application 310 is connected, perhaps through network 360, to groupware content manager 370.
  • groupware content manager 370 resides within groupware application 310 and/or a device executing application 310.
  • Groupware content manager 370 includes one or more modules, which can be implemented in hardware and/or software, of which one or more modules can be implemented in whole or in part as a module provided by an article of manufacture.
  • Query process module 372 enables groupware content manager 370 to receive and process queries or requests for data. The query is generated from application 310, and may indicate one or more items of information that indicate a context (e.g., user ID, workflow ID, etc.).
  • Query process module 372 can parse information in the query and determine what enterprise data is requested from the backend systems.
  • Context determiner module 374 enables groupware content manager 370 to determine a context of the query.
  • the context of the query refers to a context of application 310 from which the query is originated. For example, a query may be generated in response to starting up application 310, and/or with respect to an attempt to access information related to a particular project, workflow, action, etc., which is available to a user from within application 310.
  • Context determiner module 374 includes the ability to identify context from identifiers received by query process module 372, and/or to derive the context from work being performed, data recently accessed, a task recently accessed and/or completed, an item in a worklist or dynamic work center, etc. In one embodiment, context determiner identifies a role associated with a user with respect to a particular work item. Permission identifier module 376 enables groupware content manager 370 to determine a permission associated with a particular context. The permission enables access to particular data and/or tools/functions/services that are potentially available for a particular view or a particular application, or a particular workflow, or a particular department, etc.
  • Permission identifier module 376 includes or has access to one or more repositories of information, including a permission information repository and/or rules store associated with particular conditions (e.g., a particular role, a particular phase of a workflow, etc.). Permissions may be stored for particular scenarios or particular users, or permission identifier module 376 can derive the permissions based upon certain rules, lookup tables, etc., which apply generally to all conditions and are narrowed by particular context information provided. Permissions may refer to the services available to a particular groupware client. In one embodiment, the services available to the groupware client differs based on the context of the groupware client.
  • Data selector module 378 enables groupware content manager 370 to selectively choose data to provide to application 310.
  • data selector module 378 has access to all data requested, and then selectively accesses only data related to the query according to the permissions.
  • a data access enforcement module exists within a database of information, and data selector module 378 has only the ability to access the data that is provided by the permissions. Note that some data can be left un- accessed based on the permissions. Similarly, some data may be specifically accessed based on the permissions.
  • Transmitter 380 enables groupware content manager 370 to provide the selected data to application 310. Transmitter 380 includes one or more interfaces with which to couple to application 310 to provide the data selected.
  • Figure 4 is a flow diagram of an embodiment of selecting enterprise data to a groupware client based on a user role associated with the groupware client.
  • Groupware client 402 represents a groupware client according to any implementation described herein.
  • Groupware client 402 generates a query for data, 412.
  • the query can be generated in response to receiving an action by a user.
  • the query can be generated in response to a user selecting a workflow (a generalized request), or in response to a user selecting the specific data (a specific request).
  • the query can be generated as part of loading of groupware client 402.
  • the query can be generated in response to receiving at groupware client a workflow task associated with a particular workflow or other data.
  • the query can also be generated in relation to another event, upon another condition, etc.
  • the request is aggregated with a user ID, 414.
  • the user ID can indicate the specific user, and/or a role of the user.
  • the user ID and the request are provided to enterprise server 404.
  • Enterprise server 404 determines a role associated with the received user ID, 416.
  • the role of the user may be derived from the user ID, where the backend application can maintain a repository of information or access information maintained by the enterprise that indicates roles associated with particular user EDs.
  • the repository may also include information indicating permissions associated with or corresponding to the role.
  • Roles may include positions within an organization (e.g., developer, manager, vice president), or a position on a project or a team (e.g., team leader).
  • Enterprise server 404 accesses data that is the subject of the query, 418. Data that is related to the query may include more data than can be accessed given the role and associated permissions. Thus, enterprise server 404 may select data based on the role, 420. Selection of the data may be performed based on a rules engine that enforces permissions for data access. The selected data is provided by enterprise server 404 to the groupware client, 422. Groupware client 402 can then display the selectively provided data in a user interface.
  • Figure 5 is a flow diagram of an embodiment of selecting enterprise data to a groupware client based on a context associated with the groupware client.
  • User 502 starts a groupware client, 512.
  • the groupware client may be started as part of loading an application that connects with a groupware server.
  • the groupware client as part of the initiation of groupware client 504, the groupware client generates a query for data, 514.
  • a query for data may also be generated in response to a selection of a particular tool, data view, workflow, etc., by user 502 within the context of groupware client 504.
  • groupware client 504 can receive a command for a particular view or operation and generate a request for associated data in response to the command.
  • Groupware client 504 generates the request for the backend enterprise server that includes the data and the mechanisms with which to operate on the data.
  • Groupware client 504 provides a user identifier to the backend, 516.
  • the user identifier can be determined, for example, from an operating system on which groupware client 504 is executing. A user could also be requested to "login" for access to information or tools, which would provide the user identifier.
  • the user identifier is not necessarily the same identifier used in the context of the operating system or a network connection, although it could be.
  • groupware client 504 can also determine a workflow identifier associated with the query. For example, the request may be related to a view on data associated with a particular workflow, either directly, or indirectly through a request related to an action of a workflow.
  • an operation or command or a request for a view can be related to a workflow, which has a particular identifier.
  • Groupware client 504 provides the workflow identifier to the enterprise server, 518.
  • enterprise server 506 determines the context associated with the query, 520. The context may be indicated directly from groupware client 504.
  • Enterprise server 506 may also determine the context from information related to the workflow identifier, the user identifier, metadata associated with the request, etc.
  • Enterprise server 506 accesses data that is the subject of the query, 522, and can selectively choose data to provide to groupware client 504 based in whole or in part on the context, 524.
  • Enterprise server 506 provides the selected data to the groupware client, 526, which can then populate a task pane of a user interface of an application associated with the groupware client with data, 528. Based on the information and/or tools provided, user 502 can then complete the workflow action, 530.
  • the illustrations and examples herein should be construed in an illustrative, and not a restrictive sense. The scope of the invention should be measured solely by reference to the claims that follow.

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Human Resources & Organizations (AREA)
  • Operations Research (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Data Mining & Analysis (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

Methods and apparatuses provide contextual awareness to a groupware client with respect to an enterprise backend system. The groupware client generates a query or request for data within a context of the groupware client. A backend determines the context, which may include processing an indication of the context received with the query. Data is selectively chosen based on the context, and the selected data is provided to the groupware client to fulfill the request. In one embodiment, the backend determines a permission associated with the context.

Description

METHODS AND APPARATUS FOR CONTEXTUAL AWARENESS IN A GROUPWARE CLIENT
RELATED APPLICATIONS The present application claims the benefit of priority under 35 U.S. C. § 119(e) to U.S. Provisional Application No. 60/673,795, filed April 22, 2005, and to U.S. Provisional Application No. 60/673,794, filed April 22, 2005.
FIELD
Embodiments of the invention relate to enterprise data access, and more particularly to providing data dynamically to a groupware client based on context.
BACKGROUND
In enterprise systems, workflows are often used by participants of a workflow in performing work. A workflow generally refers to a flow of tasks associated with a business process. Enterprises increasingly rely on computers for performing tasks related to a business process, and thus, for executing the tasks of a workflow. Computers can provide mechanisms for modeling, executing, and/or controlling workflows, typically through a graphical user interface (GUI). A GUI may be related to a particular program or application that acts as an interface for operating on a workflow. Traditional interfaces to workflows involve multiple, unrelated desktop applications. Thus, a participant in a workflow may receive a notification of one or more tasks via an email application or other collaborative software, and then need to launch a Web browser or other application to access an enterprise system that will enable the participant to complete the task(s). Besides using separate, unrelated applications for accessing work items, traditional groupware applications have fixed content options, which provides a fixed type of access to data regardless of the user or the work involved. SUMMARY
Methods and apparatuses provide contextual awareness to a groupware client with respect to an enterprise backend system. The groupware client generates a query or request for data within a context of the groupware client. A backend determines the context, which may include processing an indication of the context received with the query. Data is selectively chosen based on the context, and the selected data is provided to the groupware client to fulfill the request. In one embodiment, the backend determines a permission associated with the context.
BRIEF DESCRIPTION OF THE DRAWINGS
The following description includes discussion of various figures having illustrations given by way of example of implementations of embodiments of the invention. The drawings should be understood by way of example, and not by way of limitation. Figure 1 is a block diagram of an embodiment of a groupware content manager to provide content to a groupware client with a business process extension.
Figure 2 is a block diagram of an embodiment of a groupware application with enterprise data provided by a groupware content manager.
Figure 3 is a block diagram of an embodiment of a groupware application with a business process workflow extension with enterprise data provided by a groupware content manager.
Figure 4 is a flow diagram of an embodiment of selecting enterprise data to a groupware client based on a user role associated with the groupware client.
Figure 5 is a flow diagram of an embodiment of selecting enterprise data to a groupware client based on a context associated with the groupware client.
DETAILED DESCRIPTION
As used herein, references to one or more "embodiments" are to be understood as describing a particular feature, structure, or characteristic included in at least one implementation of the invention. Thus, phrases such as "in one embodiment" or "in an alternate embodiment" appearing herein describe various embodiments and implementations of the invention, and do not necessarily all refer to the same embodiment. However, they are also not necessarily mutually exclusive. Descriptions of certain details and implementations follow, including a description of the figures, which may depict some or all of the embodiments described below, as well as discussing other potential embodiments or implementations of the inventive concepts presented herein. An overview of embodiments of the invention is provided below, followed by a more detailed description with reference to the drawings.
Extensions to a groupware client enable access to a business process via the groupware client. The content of provided via the groupware client is contextual, and may change based on a user identifier (ID), a workflow ID, or other context. As used herein, groupware refers to any of a type of collaborative software, for example, email software, spreadsheet software, etc. Groupware is generally associated with a server that provides data and/or functionality to the software. A client refers to a program, routine, etc., that allows interaction with the groupware server. In one embodiment, a client refers to an application with a user interface that includes native functionality to access the groupware server. In an alternate embodiment, a client may operate/exist/execute independently of an application that has a user interface, and may in fact provide groupware server access functionality to multiple applications. Thus, a groupware client as referred to herein may refer to a groupware application, or to a program that enables one or more applications to access a groupware server. With extensions as described herein, a workflow participant can access and interact with a business process through a groupware client. In one embodiment, the groupware client is generated as a modeled software program. As used herein, a business process refers broadly to a process used to perform work within an enterprise. One or more workflows may be associated with the business process through which to accomplish the work. A workflow includes one or more phases or stages, where each phase is an action or activity to be executed/performed in furthering progress towards the end-goal of the business process. For example, a "hiring" business process may include a "finding candidates" workflow, an "interviewing" workflow, etc., each of which may have multiple actions or activities associated (e.g., scheduling an interview time, arranging travel for the candidate, etc.), which may be executed to accomplish the end goal of hiring an individual. Each phase of a workflow is referred to herein as a "task," which may be a single item of work (an "action"), or a set of actions (an "activity"). A workflow may include structured and/or ad hoc tasks of a business process. A workflow may include context in terms of organizational roles of participants, as well as documents, forms, or other data.
The extensions provided to the groupware client can enable integration of business process tasks into the environment of the groupware client (or an application with which the groupware client is associated). Additionally, the extensions can interact with other contextually aware modeled software in the groupware client (e.g., applications accessible from within or that otherwise operate with the groupware client - for example, via popup window, or available from pull-down menus). Changing content based on the context or environment of the groupware client maybe referred to as contextual awareness, or a client being contextually aware. Contextual awareness in a groupware client refers to the dynamic providing of data and/or tools within the groupware client based on the context. Context refers to any number of environmental factors that can affect the permissions associated with a groupware client's access to enterprise data. Factors may include a user ID including a group or department association, a business role, a workflow being executed, a phase or action of a workflow being executed, whether a user is online or offline, a type of device from which the data is being accessed, etc. The context of a groupware client refers to the local environment of the groupware client, and may or may not include external factors in addition to the local factors. In response to differing contexts, data may be selectively displayed, certain data objects may be provided or excluded from the groupware client from the backend systems, certain tools available from within the groupware client may be available or unavailable, etc. Tools refer to one or more items that provide functionality to access, modify, or otherwise operate on data. Data that can be accessed and selectively provided via the groupware client includes data objects, forms, functions, services, data structures, and/or processes. A backend system includes logic and services to manage and control the data and processes, and may be referred to as a business backend system. The backend systems include applications that execute to provide one or more particular functions or services.
The user interface of a groupware application is likely to be familiar to the workflow participant, and may allow the integration of tools of the groupware application (e.g., spellchecking, translations, etc.) into the performance of the workflow task. The groupware application typically includes various fields in which to present information and/or work for the user. Rather than providing multiple, different applications each with a different environment in which to perform work, integration of enterprise data and contextual information within the groupware client can enable providing multiple items within the format and with the tools of the groupware application. For example, a particular groupware application may include a folder list to provide access to data or work items. Integration of enterprise data into the groupware application with contextual awareness enables the groupware application to include a folder having access to the enterprise data, rather than simply data local to the groupware client or available from the groupware server. The integration with contextual awareness enables connecting the user to the backend enterprise systems within the groupware application, which means a user does not have to change from the context of the groupware application to access enterprise data and work items. The availability of the contextually aware data from within the groupware application is in contrast to traditional systems that required the user to switch from one application to another to perform work. Thus, a workflow participant (i.e., a user, or entity that participates in a workflow) can interact (e.g., create, process, track, set preferences, etc.) with a workflow through the familiar user interface of the groupware client or associated application with contextually dynamic data. In contrast to the integrated use of groupware with a workflow as described herein, current email notifications or other traditional functions of groupware focus only on a single task or action with respect to the workflow. With the integration of groupware functionality and enterprise access, the business process information associated with a workflow presented in the groupware application is persisted with the integrated groupware client. For purposes of simplicity in description, use of the term "groupware client" may refer to the groupware client and/or its associated groupware application(s). Persisting the information refers to making the information available to the workflow participant either continuously, or upon request, and from within the context of the groupware client. For example, status information may be provided to the groupware client to provide updated information for the business process within the groupware client. Also, or in the alternative, status information could be accessible, for example, when the workflow participant selects an item/icon or executes an action within the groupware client. Persisting the information may include storing the information locally to the groupware client, or within a storage location within a groupware server, in addition to storing the information within the enterprise backend. The data that is persisted, and the work provided in the workflows is dynamic and provided based at least in part on what is happening within the groupware client, in terms of who is accessing what, and when. Figure 1 is a block diagram of an embodiment of a groupware content manager to provide content to a groupware client with a business process extension. Application 110 represents any software program or other application that includes groupware client 116, or accesses groupware client 116. Groupware client 116 provides interaction with groupware server 140, which provides groupware information and/or services for groupware application 110. Groupware server 140 may be, for example, an email server (e.g., an EXCHANGE server available from MICROSOFT CORPORATION of Redmond, Washington). In addition to traditional operation by groupware server 140, groupware server 140 can include extensions to enable groupware client 116 to access enterprise services and/or data for application 110. Application 110 and groupware server 140 can be connected directly, or over network 132.
In one embodiment, groupware server 140 is coupled over network 136 to groupware interface 160 of enterprise server 150. Networks 132, 136, and also 134, described below, may include one or more local area networks (LANs), including wireless or wired networks, and hardware and software with which to operate on the network. Network 132-136 may also include other networks, for example, wide area networks, enterprise networks, virtual private networks (VPNs), etc. In one embodiment, groupware server 140 exists within the same local network as groupware interface 160 and/or enterprise server 150, although existence within the same local network is not a requirement. Enterprise server 150 represents both hardware and software that operates to provide enterprise data and services access and/or management.
Groupware interface 160 represents hardware and/or software to provide groupware- enterprise integration/management. In one embodiment, part or all of groupware interface 160 is incorporated within groupware server 140. In another embodiment, part or all of groupware interface 160 is incorporated within enterprise server 150. In another embodiment, part or all of groupware interface 160 is a standalone entity in hardware and/or software. In one embodiment, groupware interface 160 includes one or more components based on Enterprise Services Architecture (ESA) available in conjunction with mySAP and NETWEAVER products available from SAP AG of Walldorf, Germany, and/or one or more components based on MICROSOFT .NET. In one embodiment, groupware interface 160 is a server or manager product (e.g., a MENDOCINO server available from collaborative efforts of MICROSOFT CORPORATION and SAP AG). Thus, groupware interface 160 may also be referred to as an interface server, or an enterprise-groupware manager. Groupware interface 160 provides one or more mechanisms to enable interaction between groupware client 116 and enterprise server 150, either directly or via groupware server 140. The interaction may include requests between groupware client 116 and enterprise server 150, and responses to the requests. From the groupware side, groupware client 116 may make requests and/or send actions or commands generated from within application 110 to perform a function with respect to enterprise data related to a workflow that exists within the context of application 110. Enterprise server 150 may provide reports, errors, status or other information, data objects, service access, etc., to application 110 through groupware interface 160. hi one embodiment, groupware interface 160 includes groupware content manager 162, which represents one or more modules or agents that provide contextual awareness to data 118 presented to groupware client 116, which is in turn provided to a user through user interface (UI) 112.
In one embodiment, groupware interface 160 "holds" information related to dynamic data 118 currently accessed within application 110 when application 110 is offline, or disconnected/unable to access groupware server 140 and/or groupware interface 160 or enterprise server 150. When access is restored and application 110 comes back online, information may be synchronized with information local to application 110 related to the data 118. Synchronization of information may also occur when application 110 is online, such as through event-driven connectivity originating from application 110, and/or through a pull daemon that synchronously and/or asynchronously initiates access of enterprise server 150 from application 110. Groupware interface 160 may include a repository or storage wherein information can be locally held or temporarily contained until a synchronization opportunity (e.g., an event, an action, at a time, etc.). Groupware content manager 162 obtains information and status updates, from which dynamic data 118 is provided, through interaction with enterprise data 180 or with one or more services 190 via framework 170. Framework 170 provides a framework of logic and services that enable groupware interface 160 to provide enterprise-level information to groupware server 140. In one embodiment, groupware interface 160 and framework 170 are part of the same software and/or hardware module. In one embodiment, groupware interface 160 could be considered a "groupware server" layer of a groupware-enterprise manager/server, and framework 170 could be considered an "enterprise" layer of the groupware-enterprise manager/server.
Enterprise server 150 includes framework 170, which represents structured logic with which to provide status information to groupware server 140, and optionally receive requests or queries from groupware server 140. Similar interaction can be provided directly to application 110 through the use of Web service 164. In one embodiment, framework 170 includes a composite application framework (e.g., SAP CAF) and/or a services architecture (e.g., SAP ESA (ENTERPRISE SERVICES ARCHITECTURE)). Framework 170 may include service mapper 172, which represents logic to map requests or queries to an appropriate enterprise service. Data broker 174 represents logic to access enterprise data 180, including, for example, enterprise resource planning (ERP) database (DB) 182. Other data may be available in enterprise data 180. In one embodiment, framework 170 models backend logic to provide appropriate data and service access to groupware server 140/groupware client 116. In one embodiment, a composite application framework provides backend logic to a front-end (e.g., an application). As shown, groupware server 140 may interface enterprise server 150 through extensions in much the same way a composite application can interface the enterprise backend. Services 190 broadly represent functions that can be performed on enterprise data or with respect to enterprise data. For example, services 190 may include one or more enterprise services, which represent functions that can be performed with respect to a local enterprise. A local enterprise refers to an enterprise to which the workflow belongs. A local enterprise may include one or more domains, domain servers, local area networks (LANs) whether wired or wireless, virtual LANs (VLANs), etc. An enterprise is local with respect to a server that generally provides access to a device of a user (specifically shown is enterprise server 150).
A local enterprise may be in contrast to a remote enterprise, which represents an enterprise that is not local. One or more elements of information or data objects, or one or more functions or services related to a workflow, or operable on a workflow, may exist within an enterprise remote to enterprise server 150 (i.e., managed separately). In one embodiment, one or more remote enterprise services can provide contextual data to groupware client 116. One example of access to a remote enterprise service includes access within a cooperative relationship between enterprises, e.g., with a grid trading network. A grid trading network generally enables users to access enterprise data and share functionality across separate enterprises.
Services 190 may also include one or more Web services, which represent one or more services that provide access to one or more particular websites, or to the Internet in general. Service mapper 174 may determine which of services 190 can/should be invoked to fulfill a request/action received from groupware client 112. In one embodiment, service mapper 174 may determine that multiple services 190 are appropriate services with which fulfill a request. Thus, multiple of services 190 may be selected simultaneously, or substantially simultaneously (e.g., temporally proximate in time, selected by a single operation or routine, selected to execute in parallel, etc.) to provide functionality. Note that the use of multiple of services 190 may signify the use of multiple enterprise services 192 and/or the use of disparate services (e.g., an enterprise service 192 and a remote enterprise service 194, or any combination). Backend application 192 represents one example of an application that executes in a backend system, from which particular data and/or functions may be available to groupware client 116. Contextual awareness can include providing access to certain services to application 110, while other services are not available. Thus, backend application 192 can be available through a service available to groupware client 116 based on the context of application 110. If the context allows access to backend application 192, groupware content manager 162 enables groupware client 116 access to the appropriate service. If the context does not allow access, the service maybe inaccessible within the application, at least until such time as the context may allow access to backend application 192. In one embodiment, in addition to access to enterprise server 150 through groupware server 140, or as an alternative to the access through groupware server 140, groupware client 116 and/or application 110 may include business (biz) process extension 120. Business process extension 120 may be similar to the extensions that could be provided to groupware server 140, although they could be different. Business process extension 120 may include a repository of information and/or a metadata processing engine to be able to provide status information and persistence of business process information to groupware client 116. If application 110 were to be executed offline, the repository or storage may store information that can later be passed to enterprise server 150 and/or synchronized with the enterprise. Business process extension 120 may provide logic with which groupware client 116 interfaces with groupware server 140, and/or processes information exchanged with groupware server 140. In one embodiment, business process extension 120 provides groupware client 116 with an interface to enterprise 150 through Web service 164, which represents one or more Web services with which to access enterprise server 150. Web service 164 represents one or more services accessible to application 110/groupware client 116. Access to a Web service is typically authorization-based, and may include registering. The context of application 110 can determine whether Web service 164 can provide access functionality to enterprise server 150 and/or groupware interface 160. Web service 164 refers to a function or routine through which the access can be accomplished. In one embodiment, enterprise server 150 includes object standardization 152, which represents one or more software and/or hardware modules. With the integration of enterprise data access in application 110, application 110 may potentially have access to any of multiple different types of data objects. Object standardization 152 can provide a common interface for objects sent to application 110. Object standardization 152 can provide a common formatting or "look and feel" of objects to enhance the seamless nature of the enterprise access integration. In one embodiment, object standardization 152 includes a translator between the enterprise backend formatting and the context of application 110. Thus, an object may be accessed and presented in application 110 in a way that the object takes on the look and feel of application 110. Text may be formatted, icons may be matched, etc. Additionally, reports, alerts, functions, etc., received from the enterprise can be presented in the application with the same feel of similar items that occur locally within application 110. In one embodiment, object standardization 152 provides the functionality to provide contextual data within the context of application 110. Thus, if certain data and/or tools are or are not available within a particular context, the data and/or tools can be selectively accessed and provided, as appropriate.
The context or a work environment of application 110 is indicated by context 114. Context 114 could include anything through which contextual information may be derived (e.g., user name and password, preferences, documents, software version/status information, authorizations, keys, or any other information that may indicate a preference or authorization for access to data). Context 114 may be passed to enterprise server 150 and/or to groupware interface 160 through any interaction mechanism between groupware client 116 and groupware interface 160. Thus, enterprise server 150 can react to the context of application 110 when providing information. Filters may be employed to limit data passed or services available that are appropriate for an authorization indicated by context 114. In one embodiment, filters may be provided to provide data/services that match preferences, or are associated with a particular work context or application being used. Thus, the adaptability and power of enterprise server 150 can be available to a workflow participant through a groupware application. Figure 2 is a block diagram of an embodiment of a groupware application with enterprise data provided by a groupware content manager. Groupware application 210 represents a groupware application and/or associated groupware client according to any embodiment described herein. Application 210 includes application core 212, which represents code and logic that provides the general functions of application 210. Business process extensions are provided for application 210, and application core 212 represents the application without the extensions. The extensions provide the ability to interact with business processes from within application 210. As described herein, the interaction can be further subject to awareness of the context of application 210, which can provide dynamic presentation of data/tools in groupware application 210. Groupware content manager 270 provides for contextual awareness for data/tool availability within groupware application 210. Enterprise data 214 represents data and/or tools of groupware application 210, which are managed by groupware content manager 270. hi one embodiment, groupware manager 270 represents a composite of various mechanisms within extensions 222-228 to dynamically affect how workflows and/or other objects can be accessed/worked on within groupware application 210.
Groupware application 210 includes, or has access to one or more extensions, which may include process initiator 222, information interface 224, status tracker 226, and action initiator 228, each of which may be implemented as one or more modules. Additional or alternative extensions can be provided to result in an application that includes some, all, or different modules than what is shown in Figure 2. Each of the modules may provide structured logic to implement one or more functions related to accessing or otherwise interacting with a workflow associated with a business process. Process initiator 222 provides logic to initiate a workflow from within the context of application 210. Thus, a workflow participant can generate a new workflow from within the context of application 210. Rather than simply initiating a request for a new workflow, one or more actions from within application 210 can actually interface with business process backend 230 to generate the new workflow. As depicted, process initiator 222 may initiate workflow 240, and begin phase 242. Note that application 210 is not limited to interacting with workflows generated from within the context of application 210. Workflow 240 includes phases 242-254, which may represent any number of discrete parts of workflow 240. The phases may be conditioned on certain events or conditions, may be performed in parallel, etc. Process initiator 222 can limit the ability to generate a workflow based on the context of groupware application 210. Information interface 224 can provide an interface to gather data and status or other information related to a workflow accessed within application 210. Information interface 224 may gather information from workflow 240 and/or from backend logic 260. Information interface 224 may be or include a repository of information that is obtained from business process backend 230, which may be included within an enterprise server. Backend logic 260 represents any service or data, which includes enterprise data 262, which can be accessible to application 210 through business process integration as described herein. Enterprise data 262 represents an enterprise repository that can include data objects, services, processes, process templates, etc. Backend logic 260 is to be understood as any data or function related to data that can be provided at the enterprise level through an enterprise server. Information interface 224 can selectively obtain information/objects based on the context of groupware application 210. In one embodiment, a mechanism in the backend (e.g., an implementation where groupware content manager 270 is a module in business process backend 230) selects information to provide to information interface 224. In another embodiment, information interface 224 enforces restrictions on information access relative to the context of groupware application 210.
Status tracker 226 provides a mechanism that can monitor one or more workflows. Status tracker 226 may include a routine or other logic that can receive input regarding workflow 240 and update information in application 210 related to workflow 240. For example, status tracker 226 may store information in a status information repository or datastructure or other mechanism through which business information is persisted within application 210. Status tracker 226 may provide logic through which an icon or text displayed in a GUI associated with application 210 is modified. Status tracker 226 receives information related to workflow 240. In one embodiment, as the status of an object changes, different permissions may apply, which may cause groupware content manager 270 to alter availability to data/tools within groupware application 210. Action initiator 228 can send or receive an action, or request for an action. On the sending side, action initiator 228 can send an action to any phase within workflow 240, for example, to perform a task associated with the phase. Action initiator 228 can likewise send an action to backend logic 260 to cause or result in action on workflow 240 from within the enterprise-level, rather than from within application 210. Thus, action may be directly or indirectly taken on workflow 240 from an action performed within application 210. Action initiator 228 may include functions associated with buttons or icons available from within application 210. Thus, for example, clicking or double-clicking a particular icon may make a change to workflow 240, or a change to a view provided on workflow 240 (e.g., change from a list view to a table view, etc.), or launch a guided process related to workflow 240. Action initiator 228 can provide certain action requests, and/or ignore certain action requests based on the context of groupware application 210. On the receiving side, action initiator may receive updated information or a trigger from external to application 210 that can cause a function to occur within application 210. In one embodiment, such a received action can cause a function of application core 212 to be performed. Business process extension 120, object standardization 154, and groupware interface 160 of Figure 1, and process initiator 222, information interface 224, status tracker 226, and action initiator 228, and the groupware content managers can be implemented as modules, which may include hardware, software, and/or a combination of these. Software included within modules can instruct a machine to implement techniques described herein. Additionally, software can be used to describe how to manufacture a device to perform the functions of these components. Such software may be provided via an article of manufacture by a machine/electronic device/hardware.
An article of manufacture may include a machine accessible/readable medium having content to provide instructions, data, etc. The content may result in an electronic device or computing system performing various operations or executions described. A machine accessible medium includes any mechanism that provides (i.e., stores and/or transmits) information/content/instructions in a form accessible by a machine (e.g., computing device, electronic device, electronic system/subsystem, etc.). For example, a machine accessible medium includes recordable/non-recordable media (e.g., read only memory (ROM), random access memory (RAM), magnetic disk storage media, optical storage media, flash memory devices, etc.). The machine accessible medium may further include an electronic device having code loaded on a storage that may be executed when the electronic device is in operation. Thus, delivering an electronic device with such code may be understood as providing the article of manufacture with such content described above. Furthermore, storing code on a database or other memory location and offering the code for download (i.e., providing the code for access) over a communication medium may be understood as providing an article of manufacture with such content described above.
Figure 3 is a block diagram of an embodiment of a groupware application with a business process workflow extension with enterprise data provided by a groupware content manager. Groupware application 310 is one example of a groupware client and/or application according to any embodiment described herein. Groupware application 310 may be an application such as would be found in an office productivity software suite (e.g., EXCEL or OUTLOOK in MICROSOFT OFFICE available from MICROSOFT CORPORATION). Groupware application 310 includes task bar 312, which can provide application 310 with various icons and menus to provide functionality to a user of the application. hi one embodiment, application 310 includes action pane 320, which can provide additional functionality to a user. Action pane 320 can also be referred to as a task pane. Action pane 320 may provide navigational advantages over task bar 312, in addition to having different functionality. Action pane 320 includes functionality tools 322-326, which may be links, icons, folders, tabs, etc., to provide one or more navigational functions and/or functions for performing work (e.g., completing tasks), and/or provide access to data or tools to perform work, hi one embodiment, action pane 320 includes tab 324, which provides dynamic access to a business process workflow within the context of application 310. Application 310 includes several items that are shown in dashed lines. The items in dashed lines represent the fact that one or more objects may be visible and/or accessible based in whole or in part on the context of application 310. Thus, in one embodiment, items 322 and 328 may be accessible in only certain contexts. For example, suppose item 322 is a folder that indicates a particular project, and accessing folder 322 provides access to various objects and/or workflows related to the project. If business process workflow 340 is not related to the project associated with folder 322, folder 322 may be displayed, but non-selectable, or perhaps not even displayed, because the context of application 310 does not provide any relation to the project, whether through work to be done, and/or permissions, hi one embodiment, there are no actions to perform on the project, and folder 322 is inaccessible until a workflow task is provided to application 310 (i.e., the occurrence of an event or condition). Similarly, item 326 may be accessible within the context of application 310, and item 328 is unavailable under the same context. Besides dynamic display of action/task navigation items 322-328, content in work pane 330, business process workflow 340, and/or tools 350 can be dynamically affected by the context of application 310, as described in more detail below.
In addition to action pane 320, application 310 includes work pane 330, which provides an area in which to view and perform work done in application 310. Note that the layout of action pane 320 and work pane 330 is merely for purposes of illustration, and action pane 320 may be located with task bar 312, or anywhere else within application 310. Work pane 330 includes one or more objects 332-336, which can be objects related to a workflow, a process, or other data. Based on the context, object 332 may be available, while other objects 334-336 may be inaccessible and/or unviewable.
Selection of, or action on item 326 can provide a view of business process workflow 340. The view of workflow 340 can be within work pane 330, or alternatively, within a separate window or pane (as shown in Figure 3). Thus, an appropriate view may be enabled in which enterprise-level access tools may be provided within the context of application 310. The view of workflow 340 may also include tools 350, with items 352- 356 for actions specific to working on workflow 340. Items 352-356 provide functionality to tie a certain action or view or data access to the backend enterprise system. One embodiment of a view of workflow 340 includes providing a view of each phase of the workflow, hi the embodiment shown, the view of workflow 340 provides a view of phase 342 of workflow 340. The view of phase 342 is due to the contextual awareness with which data is provided to application 310. For example, application 310 can provide a query or request for data to a backend enterprise system related to business process workflow 340 in response to a selection of item 326 corresponding to the workflow. The backend system can determine that the context of application 310 is workflow 340, for example, by the passing of a workflow ID by application 310 with the request for data. In addition to the immediate contextual information that indicates application is working on workflow 340, the backend system may determine the contextual information that the current phase of workflow 342 that needs attention is phase 342. Thus, the view of workflow 340 presents phase 342, with action 344 and sub-action 346 that can be selected for performance. In one embodiment, phase 342 includes action 348 that may be inaccessible with the current context. For example, action 348 may be dependent upon an action or item of information to be discerned from performance of action 344. Thus, action 348 may be inaccessible until action 344 is complete. In response to completion of action 344, action 348 can be made accessible. Each action/sub-action can include one or more tools to perform the work of the action and one or more items of information related to the task.
Tools 350 may also be dynamically provided based on contextual awareness. For example, phase 342 of workflow 340 could be related to salary information. Tools 350 may include items 352 and 356 related to changing salary and/or bonus. If workflow 340 is displayed to the user about whom the information relates, the user may be able to see the salary and bonus information, but be restricted from changing it. If workflow 340 is displayed to a manager of the user about whom the information relates, the manager may be able to see and modify the salary and bonus information. Note that any one of the dashed items may be selectively displayed and/or accessible, or any combination of dashed and non-dashed items of Figure 3 can be selectively displayed and/or accessible. Thus, a particular tab in action pane 320, a particular object of work pane 330, a particular aspect of workflow 340, and/or a particular item of tools 350 can be selectively accessible alone, or in conjunction with any other of the same or different items.
Groupware application 310 is connected, perhaps through network 360, to groupware content manager 370. In one embodiment, one or more elements of groupware content manager 370 resides within groupware application 310 and/or a device executing application 310. Groupware content manager 370 includes one or more modules, which can be implemented in hardware and/or software, of which one or more modules can be implemented in whole or in part as a module provided by an article of manufacture. Query process module 372 enables groupware content manager 370 to receive and process queries or requests for data. The query is generated from application 310, and may indicate one or more items of information that indicate a context (e.g., user ID, workflow ID, etc.). Query process module 372 can parse information in the query and determine what enterprise data is requested from the backend systems. Context determiner module 374 enables groupware content manager 370 to determine a context of the query. The context of the query refers to a context of application 310 from which the query is originated. For example, a query may be generated in response to starting up application 310, and/or with respect to an attempt to access information related to a particular project, workflow, action, etc., which is available to a user from within application 310. Context determiner module 374 includes the ability to identify context from identifiers received by query process module 372, and/or to derive the context from work being performed, data recently accessed, a task recently accessed and/or completed, an item in a worklist or dynamic work center, etc. In one embodiment, context determiner identifies a role associated with a user with respect to a particular work item. Permission identifier module 376 enables groupware content manager 370 to determine a permission associated with a particular context. The permission enables access to particular data and/or tools/functions/services that are potentially available for a particular view or a particular application, or a particular workflow, or a particular department, etc. Permission identifier module 376 includes or has access to one or more repositories of information, including a permission information repository and/or rules store associated with particular conditions (e.g., a particular role, a particular phase of a workflow, etc.). Permissions may be stored for particular scenarios or particular users, or permission identifier module 376 can derive the permissions based upon certain rules, lookup tables, etc., which apply generally to all conditions and are narrowed by particular context information provided. Permissions may refer to the services available to a particular groupware client. In one embodiment, the services available to the groupware client differs based on the context of the groupware client.
Data selector module 378 enables groupware content manager 370 to selectively choose data to provide to application 310. In one embodiment, data selector module 378 has access to all data requested, and then selectively accesses only data related to the query according to the permissions. In another embodiment, a data access enforcement module exists within a database of information, and data selector module 378 has only the ability to access the data that is provided by the permissions. Note that some data can be left un- accessed based on the permissions. Similarly, some data may be specifically accessed based on the permissions. Transmitter 380 enables groupware content manager 370 to provide the selected data to application 310. Transmitter 380 includes one or more interfaces with which to couple to application 310 to provide the data selected.
Figure 4 is a flow diagram of an embodiment of selecting enterprise data to a groupware client based on a user role associated with the groupware client. Figure 4 provides an overview of various operations that can be performed, as well as the actors that can perform them. Groupware client 402 represents a groupware client according to any implementation described herein. Groupware client 402 generates a query for data, 412. The query can be generated in response to receiving an action by a user. For example, the query can be generated in response to a user selecting a workflow (a generalized request), or in response to a user selecting the specific data (a specific request). The query can be generated as part of loading of groupware client 402. The query can be generated in response to receiving at groupware client a workflow task associated with a particular workflow or other data. The query can also be generated in relation to another event, upon another condition, etc. In one embodiment, the request is aggregated with a user ID, 414. The user ID can indicate the specific user, and/or a role of the user. The user ID and the request are provided to enterprise server 404. Enterprise server 404 determines a role associated with the received user ID, 416. The role of the user may be derived from the user ID, where the backend application can maintain a repository of information or access information maintained by the enterprise that indicates roles associated with particular user EDs. The repository may also include information indicating permissions associated with or corresponding to the role. Roles may include positions within an organization (e.g., developer, manager, vice president), or a position on a project or a team (e.g., team leader). Enterprise server 404 accesses data that is the subject of the query, 418. Data that is related to the query may include more data than can be accessed given the role and associated permissions. Thus, enterprise server 404 may select data based on the role, 420. Selection of the data may be performed based on a rules engine that enforces permissions for data access. The selected data is provided by enterprise server 404 to the groupware client, 422. Groupware client 402 can then display the selectively provided data in a user interface.
Figure 5 is a flow diagram of an embodiment of selecting enterprise data to a groupware client based on a context associated with the groupware client. User 502 starts a groupware client, 512. The groupware client may be started as part of loading an application that connects with a groupware server. In one embodiment, as part of the initiation of groupware client 504, the groupware client generates a query for data, 514. A query for data may also be generated in response to a selection of a particular tool, data view, workflow, etc., by user 502 within the context of groupware client 504. Thus, groupware client 504 can receive a command for a particular view or operation and generate a request for associated data in response to the command. Groupware client 504 generates the request for the backend enterprise server that includes the data and the mechanisms with which to operate on the data.
Groupware client 504 provides a user identifier to the backend, 516. The user identifier can be determined, for example, from an operating system on which groupware client 504 is executing. A user could also be requested to "login" for access to information or tools, which would provide the user identifier. The user identifier is not necessarily the same identifier used in the context of the operating system or a network connection, although it could be. In one embodiment, groupware client 504 can also determine a workflow identifier associated with the query. For example, the request may be related to a view on data associated with a particular workflow, either directly, or indirectly through a request related to an action of a workflow. Thus, an operation or command or a request for a view can be related to a workflow, which has a particular identifier. Groupware client 504 provides the workflow identifier to the enterprise server, 518. In response to the request, enterprise server 506 determines the context associated with the query, 520. The context may be indicated directly from groupware client 504. Enterprise server 506 may also determine the context from information related to the workflow identifier, the user identifier, metadata associated with the request, etc. Enterprise server 506 accesses data that is the subject of the query, 522, and can selectively choose data to provide to groupware client 504 based in whole or in part on the context, 524. Enterprise server 506 provides the selected data to the groupware client, 526, which can then populate a task pane of a user interface of an application associated with the groupware client with data, 528. Based on the information and/or tools provided, user 502 can then complete the workflow action, 530. Besides what is described herein, various modifications may be made to the disclosed embodiments and implementations of the invention without departing from their scope. Therefore, the illustrations and examples herein should be construed in an illustrative, and not a restrictive sense. The scope of the invention should be measured solely by reference to the claims that follow.

Claims

CLAIMSWhat is claimed is:
1. A method for providing data to a groupware client, comprising: receiving at an enterprise server a query from the groupware client for enterprise- level data, the query generated from a context of the groupware client; determining at the enterprise server the context of the groupware client in which the query was generated; selecting enterprise data based at least in part on the determined context; and providing the selected data to the groupware client in response to the query.
2. The method of claim 1, wherein receiving the query from the groupware client comprises: receiving the query from an email client.
3. The method of claim 1 or 2, wherein receiving the query for enterprise-level data comprises: receiving a query for a workflow object.
4. The method of one of the preceding claims, wherein determining the context of the groupware client comprises: identifying a workflow associated with the query.
5. The method of claim 4, wherein identifying the workflow further comprises: receiving a workflow identifier with the query; determining a status of the workflow; and/or identifying data related to a current phase of the workflow.
6. The method of one of the preceding claims, wherein determining the context of the groupware client comprises: identifying a permission associated with the query.
7. The method of claim 6, wherein identifying the permission associated with the query further comprises: receiving a user identifier with the query; and determining a permission associated with the user identifier.
8. The method of claim 6 or 7, wherein identifying the permission associated with the query further comprises: identifying a business role associated with the query; and determining a permission associated with the business role.
9. The method of one of the preceding claims, wherein selecting the enterprise data based on the determined context comprises: accessing enterprise data associated with the query; and selecting what data associated with the query is accessible with a permission associated with the determine context, and not selecting the data inaccessible with the permission.
10. The method of one of the preceding claims, wherein providing the selected data to the group ware client comprises: populating a task pane of the groupware client with the selected data.
11. The method of one of the preceding claims, wherein providing the selected data to the groupware client comprises: providing the selected data to cause the groupware client to display a business object as accessible if data is provided for the business object, and display the business object as inaccessible if data is not provided for the business object.
12. An article of manufacture comprising a machine-readable medium having content stored thereon to provide instructions to cause a machine to perform operations in an enterprise data interface, including: receiving a request for data from a groupware client; determining a context of the groupware client; determining a permission of the groupware client to access the requested data in response to determining the context; and selectively providing some or all of the requested data, based at least in part on the permission of the groupware client to access the requested data.
13. The article of manufacture of claim 12, wherein the content for receiving the request for data comprises content for: receiving a request for a workflow object.
14. The article of manufacture of claim 12 or 13, wherein the content for selectively providing the requested data comprises content for: providing a tool for the groupware client to provide functionality to operate on data.
15. A groupware client content manager comprising: a query processing module to receive a query from a groupware client related to data for presentation in the groupware client; a context determining module coupled to the query processing module, to determine a context of the groupware client; a permission identifier module coupled to the query processing module and the context determining module to identify a permission of the groupware client to access the data of the query within the determined context; a data selection module coupled to the permission module to select none or more data objects for presentation in the groupware client based on the identified permission; and a transmitter coupled to the data selection module to provide the selected data objects to the groupware client for presentation in by the groupware client in a user interface.
16. The manager of claim 15, wherein the context determining module is to determine the context from one or more of a business role associated with the groupware client, a user identifier, or a workflow identifier.
17. The manager of claim 15 or 16, wherein the permission identifier identifies services accessible to the groupware client.
18. A system comprising: a backend enterprise system having data accessible via a service; a groupware client having a context, the context indicated by an identifier, the groupware client to generate a request for data from the backend enterprise system; and a content manager coupled to the backend enterprise system and to the groupware client, the content manager to receive the request for data, identify the context of the groupware client in response to receiving the request, and selectively provide the data related to the request in response to identifying the context.
19. The system of claim 18, wherein the content manager identifies the context of the groupware client by identifying one or more of a business role, user identifier, or workflow identifier associated with the groupware client.
20. The system of claim 18 or 19, the content manager further to identify a workflow indicated in the request, determine a current phase of the workflow, and provide data related to only the current phase of the workflow.
PCT/EP2006/003706 2005-04-22 2006-04-21 Methods and apparatus for contextual awareness in a groupware client WO2006111409A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP06724504A EP1880354A1 (en) 2005-04-22 2006-04-21 Methods and apparatus for contextual awareness in a groupware client
JP2008507015A JP5080447B2 (en) 2005-04-22 2006-04-21 Method and apparatus for context recognition in groupware clients

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US67379505P 2005-04-22 2005-04-22
US67379405P 2005-04-22 2005-04-22
US60/673,794 2005-04-22
US60/673,795 2005-04-22
US11/409,379 2006-04-20
US11/409,379 US7890964B2 (en) 2005-04-22 2006-04-20 Methods and apparatus for contextual awareness in a groupware client

Publications (1)

Publication Number Publication Date
WO2006111409A1 true WO2006111409A1 (en) 2006-10-26

Family

ID=36753976

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2006/003706 WO2006111409A1 (en) 2005-04-22 2006-04-21 Methods and apparatus for contextual awareness in a groupware client

Country Status (4)

Country Link
US (1) US7890964B2 (en)
EP (1) EP1880354A1 (en)
JP (1) JP5080447B2 (en)
WO (1) WO2006111409A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2565783A1 (en) * 2011-09-05 2013-03-06 Alcatel Lucent Groups of contextualised applications for a communication terminal

Families Citing this family (94)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7774713B2 (en) * 2005-06-28 2010-08-10 Microsoft Corporation Dynamic user experience with semantic rich objects
US7693861B2 (en) * 2005-06-28 2010-04-06 Microsoft Corporation Schematization of establishing relationships between applications
US7945891B2 (en) * 2006-04-12 2011-05-17 Microsoft Corporation Time business process validations within data context
US20070244910A1 (en) * 2006-04-12 2007-10-18 Microsoft Corporation Business process meta-model
US20080155014A1 (en) * 2006-12-22 2008-06-26 Sap Ag Execution environment for groupware integration with enterprise applications
US20080195945A1 (en) * 2007-02-14 2008-08-14 Oracle International Corporation Enterprise context
US8381181B2 (en) 2007-08-31 2013-02-19 International Business Machines Corporation Updating a workflow when a user reaches an impasse in the workflow
US8407712B2 (en) * 2007-08-31 2013-03-26 International Business Machines Corporation Updating workflow nodes in a workflow
US8407297B2 (en) 2007-10-22 2013-03-26 Sap Ag Systems and methods to receive information from a groupware client
US20090119245A1 (en) * 2007-11-07 2009-05-07 Liang Holdings Llc Managing data using r-smart criteria
US8326814B2 (en) 2007-12-05 2012-12-04 Box, Inc. Web-based file management system and service
US20100050153A1 (en) * 2008-08-21 2010-02-25 Clevest Solutions Inc. Method and system of editing workflow logic and screens with a gui tool
JP5423444B2 (en) * 2010-02-04 2014-02-19 株式会社リコー Network system, server device, and groupware program
US8751930B2 (en) * 2010-11-02 2014-06-10 International Business Machines Corporation Seamlessly sharing and reusing knowledge between an administrator console and user interaction
US20120124126A1 (en) * 2010-11-17 2012-05-17 Microsoft Corporation Contextual and task focused computing
US9189566B2 (en) * 2010-12-07 2015-11-17 Sap Se Facilitating extraction and discovery of enterprise services
US20120159341A1 (en) * 2010-12-21 2012-06-21 Microsoft Corporation Interactions with contextual and task-based computing environments
WO2012099617A1 (en) 2011-01-20 2012-07-26 Box.Net, Inc. Real time notification of activities that occur in a web-based collaboration environment
US9063912B2 (en) 2011-06-22 2015-06-23 Box, Inc. Multimedia content preview rendering in a cloud content management system
WO2013009337A2 (en) 2011-07-08 2013-01-17 Arnold Goldberg Desktop application for access and interaction with workspaces in a cloud-based content management system and synchronization mechanisms thereof
US9978040B2 (en) 2011-07-08 2018-05-22 Box, Inc. Collaboration sessions in a workspace on a cloud-based content management system
US9197718B2 (en) 2011-09-23 2015-11-24 Box, Inc. Central management and control of user-contributed content in a web-based collaboration environment and management console thereof
US8515902B2 (en) 2011-10-14 2013-08-20 Box, Inc. Automatic and semi-automatic tagging features of work items in a shared workspace for metadata tracking in a cloud-based content management system with selective or optional user contribution
US9098474B2 (en) 2011-10-26 2015-08-04 Box, Inc. Preview pre-generation based on heuristics and algorithmic prediction/assessment of predicted user behavior for enhancement of user experience
US9183407B2 (en) * 2011-10-28 2015-11-10 Microsoft Technology Licensing Llc Permission based query processing
US9069844B2 (en) 2011-11-02 2015-06-30 Sap Se Facilitating extraction and discovery of enterprise services
WO2013067242A1 (en) * 2011-11-02 2013-05-10 ThinkVine Corporation Agent awareness modeling for agent-based modeling systems
US8990307B2 (en) 2011-11-16 2015-03-24 Box, Inc. Resource effective incremental updating of a remote client with events which occurred via a cloud-enabled platform
US9773051B2 (en) 2011-11-29 2017-09-26 Box, Inc. Mobile platform file and folder selection functionalities for offline access and synchronization
US9019123B2 (en) 2011-12-22 2015-04-28 Box, Inc. Health check services for web-based collaboration environments
US9904435B2 (en) 2012-01-06 2018-02-27 Box, Inc. System and method for actionable event generation for task delegation and management via a discussion forum in a web-based collaboration environment
US11232481B2 (en) 2012-01-30 2022-01-25 Box, Inc. Extended applications of multimedia content previews in the cloud-based content management system
US9965745B2 (en) 2012-02-24 2018-05-08 Box, Inc. System and method for promoting enterprise adoption of a web-based collaboration environment
US9195636B2 (en) 2012-03-07 2015-11-24 Box, Inc. Universal file type preview for mobile devices
US9361330B2 (en) 2012-03-12 2016-06-07 Oracle International Corporation System and method for consistent embedded search across enterprise applications with an enterprise crawl and search framework
US9054919B2 (en) 2012-04-05 2015-06-09 Box, Inc. Device pinning capability for enterprise cloud service and storage accounts
US9575981B2 (en) 2012-04-11 2017-02-21 Box, Inc. Cloud service enabled to handle a set of files depicted to a user as a single file in a native operating system
US9177289B2 (en) 2012-05-03 2015-11-03 Sap Se Enhancing enterprise service design knowledge using ontology-based clustering
WO2013166520A1 (en) 2012-05-04 2013-11-07 Box, Inc. Repository redundancy implementation of a system which incrementally updates clients with events that occurred via cloud-enabled platform
US9691051B2 (en) 2012-05-21 2017-06-27 Box, Inc. Security enhancement through application access control
US9027108B2 (en) 2012-05-23 2015-05-05 Box, Inc. Systems and methods for secure file portability between mobile applications on a mobile device
US8914900B2 (en) 2012-05-23 2014-12-16 Box, Inc. Methods, architectures and security mechanisms for a third-party application to access content in a cloud-based platform
US9021099B2 (en) 2012-07-03 2015-04-28 Box, Inc. Load balancing secure FTP connections among multiple FTP servers
US9792320B2 (en) 2012-07-06 2017-10-17 Box, Inc. System and method for performing shard migration to support functions of a cloud-based service
GB2505072A (en) 2012-07-06 2014-02-19 Box Inc Identifying users and collaborators as search results in a cloud-based system
US9712510B2 (en) 2012-07-06 2017-07-18 Box, Inc. Systems and methods for securely submitting comments among users via external messaging applications in a cloud-based platform
US9237170B2 (en) 2012-07-19 2016-01-12 Box, Inc. Data loss prevention (DLP) methods and architectures by a cloud service
US9794256B2 (en) 2012-07-30 2017-10-17 Box, Inc. System and method for advanced control tools for administrators in a cloud-based service
US8745267B2 (en) 2012-08-19 2014-06-03 Box, Inc. Enhancement of upload and/or download performance based on client and/or server feedback information
US9369520B2 (en) 2012-08-19 2016-06-14 Box, Inc. Enhancement of upload and/or download performance based on client and/or server feedback information
US9558202B2 (en) 2012-08-27 2017-01-31 Box, Inc. Server side techniques for reducing database workload in implementing selective subfolder synchronization in a cloud-based environment
US9135462B2 (en) 2012-08-29 2015-09-15 Box, Inc. Upload and download streaming encryption to/from a cloud-based platform
US9311071B2 (en) 2012-09-06 2016-04-12 Box, Inc. Force upgrade of a mobile application via a server side configuration file
US9195519B2 (en) 2012-09-06 2015-11-24 Box, Inc. Disabling the self-referential appearance of a mobile application in an intent via a background registration
US9117087B2 (en) 2012-09-06 2015-08-25 Box, Inc. System and method for creating a secure channel for inter-application communication based on intents
US9292833B2 (en) 2012-09-14 2016-03-22 Box, Inc. Batching notifications of activities that occur in a web-based collaboration environment
US10200256B2 (en) 2012-09-17 2019-02-05 Box, Inc. System and method of a manipulative handle in an interactive mobile user interface
US9553758B2 (en) 2012-09-18 2017-01-24 Box, Inc. Sandboxing individual applications to specific user folders in a cloud-based service
US10915492B2 (en) 2012-09-19 2021-02-09 Box, Inc. Cloud-based platform enabled with media content indexed for text-based searches and/or metadata extraction
US9959420B2 (en) 2012-10-02 2018-05-01 Box, Inc. System and method for enhanced security and management mechanisms for enterprise administrators in a cloud-based environment
US9705967B2 (en) 2012-10-04 2017-07-11 Box, Inc. Corporate user discovery and identification of recommended collaborators in a cloud platform
US9495364B2 (en) 2012-10-04 2016-11-15 Box, Inc. Enhanced quick search features, low-barrier commenting/interactive features in a collaboration platform
US9665349B2 (en) 2012-10-05 2017-05-30 Box, Inc. System and method for generating embeddable widgets which enable access to a cloud-based collaboration platform
US9756022B2 (en) 2014-08-29 2017-09-05 Box, Inc. Enhanced remote key management for an enterprise in a cloud-based environment
US9628268B2 (en) 2012-10-17 2017-04-18 Box, Inc. Remote key management in a cloud-based environment
US20140114992A1 (en) * 2012-10-23 2014-04-24 Avaya Inc. System and method for an awareness platform
US10235383B2 (en) 2012-12-19 2019-03-19 Box, Inc. Method and apparatus for synchronization of items with read-only permissions in a cloud-based environment
US9396245B2 (en) 2013-01-02 2016-07-19 Box, Inc. Race condition handling in a system which incrementally updates clients with events that occurred in a cloud-based collaboration platform
US9953036B2 (en) 2013-01-09 2018-04-24 Box, Inc. File system monitoring in a system which incrementally updates clients with events that occurred in a cloud-based collaboration platform
EP2755151A3 (en) 2013-01-11 2014-09-24 Box, Inc. Functionalities, features and user interface of a synchronization client to a cloud-based environment
US10599671B2 (en) 2013-01-17 2020-03-24 Box, Inc. Conflict resolution, retry condition management, and handling of problem files for the synchronization client to a cloud-based platform
US10725968B2 (en) 2013-05-10 2020-07-28 Box, Inc. Top down delete or unsynchronization on delete of and depiction of item synchronization with a synchronization client to a cloud-based platform
US10846074B2 (en) 2013-05-10 2020-11-24 Box, Inc. Identification and handling of items to be ignored for synchronization with a cloud-based platform by a synchronization client
US9633037B2 (en) 2013-06-13 2017-04-25 Box, Inc Systems and methods for synchronization event building and/or collapsing by a synchronization component of a cloud-based platform
US9805050B2 (en) 2013-06-21 2017-10-31 Box, Inc. Maintaining and updating file system shadows on a local device by a synchronization client of a cloud-based platform
US10229134B2 (en) 2013-06-25 2019-03-12 Box, Inc. Systems and methods for managing upgrades, migration of user data and improving performance of a cloud-based platform
US10110656B2 (en) 2013-06-25 2018-10-23 Box, Inc. Systems and methods for providing shell communication in a cloud-based platform
US9535924B2 (en) 2013-07-30 2017-01-03 Box, Inc. Scalability improvement in a system which incrementally updates clients with events that occurred in a cloud-based collaboration platform
US10509527B2 (en) 2013-09-13 2019-12-17 Box, Inc. Systems and methods for configuring event-based automation in cloud-based collaboration platforms
US9704137B2 (en) 2013-09-13 2017-07-11 Box, Inc. Simultaneous editing/accessing of content by collaborator invitation through a web-based or mobile application to a cloud-based collaboration platform
GB2518298A (en) 2013-09-13 2015-03-18 Box Inc High-availability architecture for a cloud-based concurrent-access collaboration platform
US9213684B2 (en) 2013-09-13 2015-12-15 Box, Inc. System and method for rendering document in web browser or mobile device regardless of third-party plug-in software
US8892679B1 (en) 2013-09-13 2014-11-18 Box, Inc. Mobile device, methods and user interfaces thereof in a mobile device platform featuring multifunctional access and engagement in a collaborative environment provided by a cloud-based platform
US9535909B2 (en) 2013-09-13 2017-01-03 Box, Inc. Configurable event-based automation architecture for cloud-based collaboration platforms
US10866931B2 (en) 2013-10-22 2020-12-15 Box, Inc. Desktop application for accessing a cloud collaboration platform
EP3069272B1 (en) * 2013-11-12 2018-08-29 Pivotal Software, Inc. Managing job status
US10530854B2 (en) 2014-05-30 2020-01-07 Box, Inc. Synchronization of permissioned content in cloud-based environments
US9602514B2 (en) 2014-06-16 2017-03-21 Box, Inc. Enterprise mobility management and verification of a managed application by a content provider
US10574442B2 (en) 2014-08-29 2020-02-25 Box, Inc. Enhanced remote key management for an enterprise in a cloud-based environment
US10038731B2 (en) 2014-08-29 2018-07-31 Box, Inc. Managing flow-based interactions with cloud-based shared content
US9894119B2 (en) 2014-08-29 2018-02-13 Box, Inc. Configurable metadata-based automation and content classification architecture for cloud-based collaboration platforms
US11032220B2 (en) 2016-06-24 2021-06-08 Airwatch Llc Architecture for performing actions in a third-party service by an email client
US10484324B2 (en) * 2016-10-02 2019-11-19 Vmware, Inc. Hero cards that display contextual information and actions for backend systems
US11340961B2 (en) 2017-03-23 2022-05-24 Airwatch Llc Dynamically integrating a client application with third-party services

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004021185A2 (en) * 2002-08-29 2004-03-11 Sap Aktiengesellschaft Isolated mapping point

Family Cites Families (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4862357A (en) 1987-01-28 1989-08-29 Systemone Holdings, Inc. Computer reservation system with means to rank travel itineraries chosen in terms of schedule/fare data
US5021953A (en) 1988-01-06 1991-06-04 Travelmation Corporation Trip planner optimizing travel itinerary selection conforming to individualized travel policies
US5404488A (en) 1990-09-26 1995-04-04 Lotus Development Corporation Realtime data feed engine for updating an application with the most currently received data from multiple data feeds
US5237499A (en) 1991-11-12 1993-08-17 Garback Brent J Computer travel planning system
US5749079A (en) 1992-03-04 1998-05-05 Singapore Computer Systems Limited End user query facility including a query connectivity driver
US5477447A (en) 1992-05-27 1995-12-19 Apple Computer, Incorporated Method and apparatus for providing computer-implemented assistance
US5948040A (en) 1994-06-24 1999-09-07 Delorme Publishing Co. Travel reservation information and planning system
US6442526B1 (en) 1995-09-06 2002-08-27 The Sabre Group, Inc. System for corporate travel planning and management
US7050986B1 (en) 1995-09-06 2006-05-23 The Sabre Group, Inc. System for corporate traveler planning and travel management
US5754782A (en) 1995-12-04 1998-05-19 International Business Machines Corporation System and method for backing up and restoring groupware documents
JPH09198439A (en) 1996-01-22 1997-07-31 Toyota Motor Corp Travel plan preparation system
US6009408A (en) 1996-04-01 1999-12-28 Electronic Data Systems Corporation Automated processing of travel related expenses
JPH09325939A (en) 1996-06-05 1997-12-16 Hitachi Ltd Groupware system provided with agent function
US6085201A (en) 1996-06-28 2000-07-04 Intel Corporation Context-sensitive template engine
EP0914637B1 (en) 1996-07-03 2001-10-17 Sopheon N.V. Document producing support system
US5864848A (en) 1997-01-31 1999-01-26 Microsoft Corporation Goal-driven information interpretation and extraction system
US6029171A (en) 1997-02-10 2000-02-22 Actioneer, Inc. Method and apparatus for group action processing between users of a collaboration system
US6026410A (en) 1997-02-10 2000-02-15 Actioneer, Inc. Information organization and collaboration tool for processing notes and action requests in computer systems
US6209018B1 (en) * 1997-11-13 2001-03-27 Sun Microsystems, Inc. Service framework for a distributed object network system
US6574618B2 (en) 1998-07-22 2003-06-03 Appstream, Inc. Method and system for executing network streamed application
US6507845B1 (en) 1998-09-14 2003-01-14 International Business Machines Corporation Method and software for supporting improved awareness of and collaboration among users involved in a task
US7792773B2 (en) * 2002-10-23 2010-09-07 Genesys Telecommunications Laboratories, Inc. Method and system for enabling automated and real-time discovery of skills available to agents and systems in a multimedia communications network
US7100195B1 (en) * 1999-07-30 2006-08-29 Accenture Llp Managing user information on an e-commerce system
US6732080B1 (en) 1999-09-15 2004-05-04 Nokia Corporation System and method of providing personal calendar services
US6801226B1 (en) 1999-11-01 2004-10-05 Ita Software, Inc. Graphical user interface for travel planning system
US7080021B1 (en) 2000-04-17 2006-07-18 American Express Travel Related Services Company, Inc. Method and apparatus for managing transportation from an origin location
WO2002019228A1 (en) 2000-09-01 2002-03-07 Togethersoft Corporation Methods and systems for improving a workflow based on data mined from plans created from the workflow
US6986145B2 (en) 2001-03-13 2006-01-10 Dipayan Gangopadhyay In-context access to relevant services from multiple applications and information systems by object schema traversal
US20020152101A1 (en) 2001-04-12 2002-10-17 Lawson Robert J. Travel expense management module for an intranet portal
US7305381B1 (en) * 2001-09-14 2007-12-04 Ricoh Co., Ltd Asynchronous unconscious retrieval in a network of information appliances
CA2463889A1 (en) 2001-10-16 2003-04-24 Outtask, Inc. System and method for managing booking and expensing of travel products and services
US7167919B2 (en) * 2001-12-05 2007-01-23 Canon Kabushiki Kaisha Two-pass device access management
US20030135565A1 (en) 2002-01-14 2003-07-17 Julio Estrada Electronic mail application with integrated collaborative space management
US7089287B2 (en) 2002-01-16 2006-08-08 Xerox Corporation Message-based system having embedded information management capabilities
US7343302B2 (en) * 2002-02-11 2008-03-11 Puresense Environmental Inc. System and method for emergency response
US7225425B2 (en) * 2002-08-29 2007-05-29 Sap Aktiengesellschaft Rapid application integration
JP4357823B2 (en) * 2002-09-27 2009-11-04 株式会社東芝 Information sharing system, method, and program
US20040148299A1 (en) 2002-11-25 2004-07-29 Microsoft Corporation Automated workflow composable action model
US7139761B2 (en) * 2002-12-11 2006-11-21 Leader Technologies, Inc. Dynamic association of electronically stored information with iterative workflow changes
US7711694B2 (en) 2002-12-23 2010-05-04 Sap Ag System and methods for user-customizable enterprise workflow management
US7263697B2 (en) 2003-01-17 2007-08-28 Sap Aktiengesellschaft Composite computer program extensions
US8091117B2 (en) 2003-02-14 2012-01-03 Preventsys, Inc. System and method for interfacing with heterogeneous network data gathering tools
US7543237B2 (en) 2003-03-19 2009-06-02 Accenture Global Servicecs Gmbh Dynamic collaboration assistant
JP2004287934A (en) * 2003-03-24 2004-10-14 Alpha Systems:Kk Information providing system and context information extracting method
TWI360083B (en) 2003-05-09 2012-03-11 Jda Software Group Inc System, method and software for managing a central
US20050171963A1 (en) 2003-07-10 2005-08-04 Computer Associates Think, Inc. Systems and methods for managing projects
JP2005267116A (en) 2004-03-17 2005-09-29 Fuji Xerox Co Ltd Program for workflow management, and workflow support system
US8744934B1 (en) 2004-06-07 2014-06-03 Keal, Inc. System and method for improved time reporting and billing

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004021185A2 (en) * 2002-08-29 2004-03-11 Sap Aktiengesellschaft Isolated mapping point

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2565783A1 (en) * 2011-09-05 2013-03-06 Alcatel Lucent Groups of contextualised applications for a communication terminal

Also Published As

Publication number Publication date
US7890964B2 (en) 2011-02-15
JP2008537238A (en) 2008-09-11
JP5080447B2 (en) 2012-11-21
EP1880354A1 (en) 2008-01-23
US20060277166A1 (en) 2006-12-07

Similar Documents

Publication Publication Date Title
US7890964B2 (en) Methods and apparatus for contextual awareness in a groupware client
US7853959B2 (en) Business process extension for productivity suite application
US8250169B2 (en) Business context data companion tool
US8127237B2 (en) Active business client
US6256676B1 (en) Agent-adapter architecture for use in enterprise application integration systems
US8819083B2 (en) Creating new database objects from existing objects
US8010940B2 (en) Methods and apparatus for designing a workflow process using inheritance
US20040230447A1 (en) Collaborative workspaces
US20040249657A1 (en) Synergy realization
US8239226B2 (en) Methods and apparatus for combining properties and methods from a plurality of different data sources
US20040181425A1 (en) Change Management
US9038024B2 (en) Development of process integration scenarios on mobile devices
US8224853B2 (en) Methods and apparatus for updating a plurality of data fields in an electronic form
US8893031B2 (en) Virtual business object node associations
EP1465098A1 (en) A system for implementing a merger of at least two organizations and a method of implementing a merger of at least two organizations
US11816096B2 (en) Systems and methods for managing designated content in collaboration systems
US7996758B2 (en) Methods and apparatus for storing data associated with an electronic form
EP1955201A2 (en) Methods and apparatus for processing business objects, electronic forms, and workflows
US20070143305A1 (en) Methods and apparatus for storing functions associated with an electronic form
US20040249659A1 (en) Procurement framework
US20060265393A1 (en) System and method for implementing workflow in groupware
US20070143711A1 (en) Methods and apparatus for displaying a setup sequence
US20070136367A1 (en) Methods and apparatus for dynamically modifying a business object definition
US20070130138A1 (en) Methods and apparatus for storing a collaboratively designed workflow process
US20200097873A1 (en) Innovation systems and methods

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2008507015

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

WWW Wipo information: withdrawn in national office

Country of ref document: DE

WWE Wipo information: entry into national phase

Ref document number: 2006724504

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: RU

WWW Wipo information: withdrawn in national office

Country of ref document: RU

WWP Wipo information: published in national office

Ref document number: 2006724504

Country of ref document: EP