HK1181889B - System and method for enabling service features within productivity applications - Google Patents
System and method for enabling service features within productivity applications Download PDFInfo
- Publication number
- HK1181889B HK1181889B HK13109203.9A HK13109203A HK1181889B HK 1181889 B HK1181889 B HK 1181889B HK 13109203 A HK13109203 A HK 13109203A HK 1181889 B HK1181889 B HK 1181889B
- Authority
- HK
- Hong Kong
- Prior art keywords
- service
- feature
- user
- productivity
- features
- Prior art date
Links
Description
Technical Field
Aspects of the present disclosure relate to enhanced integration of computer software applications, particularly productivity applications, with online services.
Background
In the computer hardware and software arts, a productivity application is generally understood to be a software program or application that is used to produce content and perform functions with respect to the content. Common examples of productivity applications include office productivity suites, accounting software, graphics applications, and other well-known programs, while common examples of content include word processing documents, spreadsheets, databases, and photographs.
Many productivity applications provide feature menus that allow users to invoke functions. Two types of features are productivity features and service features. In general, productivity features are those that allow a user to perform functions on content, such as printing, saving, or sharing content. A service feature may be understood as a specific type of productivity feature corresponding to an online service. In an illustrative example, a send or share feature found in some document editors that allows a user to send a document to a destination may be considered a productivity feature. A specific destination specified in the send profile, such as a particular online collaboration service, may be considered a service profile.
Users are becoming increasingly enthusiastic about online services, and at the same time, the diversity and usefulness of online services is constantly evolving. Thus, the diversity of service features found in productivity applications is also expected to expand.
Disclosure of Invention
Provided herein are systems, devices, methods, and software for improving the integration of productivity applications with services by dynamically enabling service features corresponding to services that users may be involved in. In some implementations, this may be accomplished by identifying a service associated with the user and enabling a service feature in the productivity application that corresponds to the associated service. In this way, the user's experience with productivity applications is enhanced.
In another implementation, a user interface can be provided that presents a productivity feature menu corresponding to a productivity feature in a productivity application. In response to a selection from the productivity feature menu of one of the productivity features, a service feature menu can be presented that includes several service features. At least one service feature may be enabled based on an association between a user and an online service corresponding to the service feature.
This overview is provided to introduce a selection of concepts in a simplified form that are further described below in the technical disclosure. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.
Drawings
Many aspects of the invention can be better understood with reference to the following drawings. While several implementations are described in connection with these figures, the disclosure is not limited to the implementations described herein. On the contrary, the intent is to cover all alternatives, modifications and equivalents.
FIG. 1 illustrates a process in one implementation.
FIG. 2 illustrates an enhanced feature environment in one implementation.
FIG. 3 illustrates a feature enhancement system in one implementation.
FIG. 4 illustrates an enhanced feature environment in one implementation.
FIG. 5 illustrates an operational flow diagram in one implementation.
FIG. 6 illustrates an operational flow diagram in one implementation.
FIG. 7 illustrates an enhanced feature environment in one implementation.
FIG. 8 illustrates an enhanced feature environment in one implementation.
FIG. 9 illustrates a screenshot of a user interface in one implementation.
FIG. 10 illustrates a screenshot of a user interface in one implementation.
Detailed Description
Implementations described herein allow users to experience enhanced feature offerings in productivity applications based on which online or other services the user may be associated with. In particular, service features are dynamically enabled depending on the identity of users participating in the productivity application such that service features related to the users are enabled. Subsequently, the user can invoke these service features to perform various functions or operations on the content that are generated when working with the productivity application. Given the wide variety of services with which users may be associated, by dynamically enabling and disabling service features on a per-user basis, the user experience will remain organized and easy to use.
In one non-limiting example, a user may be associated with a social networking website. When working on a document in a document editing program, service features associated with the social network instance within a menu in the program will be enabled. In contrast, service features associated with other social networks or services unrelated to the user will be disabled and may not be displayed at all.
Fig. 1 illustrates a process 100 for dynamically enabling service features. The following discussion of FIG. 1 is made with reference to FIG. 2 in order to illustrate the association of users with service applications and thus how corresponding service features within productivity applications 201 and 221 are dynamically enabled based on such association. FIG. 3 is intended to provide a brief, general description of a suitable computing environment in which process 100 may be implemented.
Referring now to FIG. 1, beginning at step 101, a user associated with a productivity application is identified. In FIG. 2, enhanced features environment 200 includes two exemplary productivity applications 201 and 221, each used by different users A and B, respectively. Thus, user a is associated with productivity application 201, while user B is associated with productivity application 221.
It should be understood that the productivity applications 201 and 221 may be the same application, different versions of the same application, or entirely different applications. Examples of productivity applications include office productivity suites, accounting software, graphics applications, gaming applications, database programs, and any number of other types of applications. As noted, examples of application data that a user may interact with include word processing documents, spreadsheets, databases, photographs, gaming environments, and the like.
At step 103, a service application associated with the user is identified. In the illustrated example, enhanced features environment 200 includes service application 215, service application 217, and service application 219. The service application 215 is also shown in the illustrative example as being associated with three different users: user a, user M, and user N. Service application 217 is shown associated with three users: user a, user B, and user N. The service application 219 is also shown in the illustrated example as being associated with three users: user M, user B, and user N. User a will thus be associated with service applications 215 and 217, while user B is associated with service applications 217 and 219. It should be understood that the term service may be used alternatively with service applications. For example, a social network may be considered a service, and a web server through which a user accesses the social network may run one or more applications that provide the service.
Finally, at step 105, service features corresponding to the identified service application are enabled. Productivity features 203 and 223 are shown within productivity applications 201 and 221, respectively. The productivity features 203 include service features 205 corresponding to service applications 215, and service features 207 corresponding to service applications 217. The productivity features 223 include service features 225 that are assumed to correspond to the service applications 215. The productivity features 223 also include service features 227 corresponding to the service applications 217.
Service feature 209 is assumed to correspond to service application 219 and is shown as a feature of productivity application 201, but not as a sub-feature of productivity feature 203. The service feature 229 is assumed to correspond to the service application 219, but is shown as a feature of the productivity application 221, rather than as a sub-feature of the productivity feature 223. This is intended to illustrate that some service features may be sub-features of productivity features, while other service features may be separate features that are not sub-features of productivity features. Indeed, it should be understood that some service features may themselves be considered productivity features.
Here, service features 205 and 207 are shown as enabled for user a, while service features 209 are shown in shaded form as disabled. Similarly, service feature 227 and service feature 229 are shown as enabled, while service feature 225 is shown in shaded form as disabled. It should be understood that any service feature, whether a sub-feature of a productivity feature or not, may be dynamically enabled.
Referring now to FIG. 3, the feature enablement system 300 and the associated discussion are intended to provide a brief, general description of a suitable computing environment in which the process 100 can be implemented. A system for dynamically enabling service features may be implemented using many other computing devices and configurations of software computing systems.
Feature enabling system 300 may be any type of computing system capable of dynamically enabling service features in productivity applications, such as a server computer, a client computer, an internet electronic device, or any combination or variation thereof. FIG. 4 provides an example of a computing system, which will be described in further detail below. In practice, feature enabling system 300 may be implemented as a single computing system, but may also be implemented in a distributed manner across multiple computing systems. For example, the feature enablement system 300 may represent a server system (not shown) with which computer systems (not shown) running the productivity applications 201 and 221 may communicate to enable service features. However. Feature enablement system 300 may also represent a computer system running productivity applications 201 and 221. In practice, the feature enabling system 300 may be provided as an example of a general purpose computing system that becomes a special purpose system capable of dynamically enabling service features when performing process 100.
Feature enabling system 300 includes a processing system 301, a storage system 303, and feature enabling software 305. Processing system 301 may be communicatively coupled with storage system 303. Storage system 303 stores feature enabling software 305, which when executed by processing system 301, instructs feature enabling system 300 to operate as described for process 100 and enhanced feature environment 200.
Still referring to fig. 3, the processing system 301 may include, among other circuitry, a microprocessor that retrieves and executes feature enabling software 305 from the storage system 303. Processing system 301 may be implemented in a single processing device, but may also be distributed across multiple processing devices or subsystems cooperating in executing program instructions. Examples of processing system 301 include general purpose central processing units, special purpose processors, and graphics processors, and any other type of processing device.
Storage system 303 may include any storage medium readable by processing system 301 and capable of storing feature enabling software 305. Storage system 303 may include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information, such as computer readable instructions, data structures, program modules, or other data. Storage system 303 may be implemented as a single storage device, but may also be implemented across multiple storage devices or subsystems. The storage system 303 may include additional elements, such as a controller capable of communicating with the processing system 301.
Examples of storage media include random access memory, read only memory, magnetic, optical, and flash memory, and any combination or variation thereof, or any other type of storage media. In some implementations, the storage medium may be a non-transitory storage medium. In some implementations, at least a portion of the storage medium may be transitory. It should be understood that a storage medium is by no means a propagated signal.
Feature enabling software 305 comprises computer program instructions, firmware, or some other form of machine-readable processing instructions having process 100 embedded therein. The feature enabling software 305 may be implemented as a single application, but may also be multiple applications. The feature enabling software 305 may be a separate application, but may also be implemented within other applications distributed across multiple devices, including productivity application software and operating system software.
In general, when loaded into processing system 301 and executed, feature enabling software 305 may transform processing system 301, as well as the entire feature enabling system 300, from a general purpose computing system to a special purpose computing system customized to dynamically enable service features within a productivity application as described in process 100 and its associated discussion.
The encoding feature enablement software 305 may also transform the physical structure of the storage system 303. The particular transformation of physical structure may depend on various factors, in different implementations of this description. Examples of such factors include, but are not limited to: storage media, computer storage media used to implement storage system 303, whether characterized as primary or secondary, and the like.
For example, if the computer storage medium is implemented as semiconductor-based memory, the feature enabling software 305 may transform the physical state of the semiconductor memory when the software is encoded therein. For example, feature enabling software 305 may transform the state of transistors, capacitors, or other discrete circuit elements that make up a semiconductor memory.
A similar transformation may occur with respect to magnetic or optical media. Other transformations of physical media are possible without departing from the scope of the present description, with the foregoing examples provided only to facilitate this discussion.
Referring again to fig. 1-3, transformations may be performed on productivity applications 201 and 221 through the operation of feature enablement system 300 using feature enablement software 305. As an example, the productivity application 201 or 221 can be considered to transition from one state to another by enabling the enablement of various services within the productivity application.
Feature enabling system 300 may have additional devices, features, or functionality. Feature-enabled system 300 may optionally have input devices such as a keyboard, mouse, voice input device, or touch input device and equivalent input devices. Output devices such as a display, speakers, printer, and other types of output devices may also be included. Feature-enabled system 300 may also contain communication connections and devices that allow feature-enabled system 300 to communicate with other devices, such as over a wired or wireless network in a distributed computing and communication environment. These devices are well known in the art and need not be discussed at length here.
Fig. 4-8 refer to implementations in which a client device interfaces with a server system to enable service features within a productivity application used by the client device operator. Briefly, FIG. 4 illustrates an enhanced feature environment, while FIGS. 5 and 6 illustrate the operational flow of data between various devices and systems within the enhanced feature environment. Fig. 7 and 8 illustrate more detailed views of the elements of the enhanced feature environment and their interactions.
Referring now to FIG. 4, an enhanced features environment 400 in one implementation is illustrated. Three different scenarios are depicted in enhanced features environment 400, and there is at least one hosted and unmanaged implementation within each scenario. A first scenario involving client devices 421 and 431 is directed towards a user identified by a personal identity and, from there, enabling service features identified and associated with the relevant service. The second scenario involving client devices 441 and 451 is directed to identifying users based on productivity, and the third scenario involving client devices 461 and 471 is directed to identifying users based on enterprise.
Enhanced feature environment 400 includes an open communication network 401, which may be considered to be at least part of the so-called internet, and a private communication network, which may be referred to as an intranet. The client devices 421, 431, 441, and 451 communicate with the service management system 403, and in some instances with the hosted application server 439, over the communication network 401.
Client devices 421, 431, 441, and 451 may also communicate with cloud services 491, 493, and 495 over open communication network 401. A cloud service is a service provided on the internet. Examples of cloud services 491, 493, and 495 include cloud drivers, photo sharing websites, and social networking websites, and any of a variety of services that may be considered cloud services due to their ubiquitous availability on the internet. Examples of client devices 421, 431, 441, and 451 include desktop and laptop computers, tablet computers, mobile communication devices, and other types of computing or electronic devices. Client devices 421, 431, 441, and 451 access open communication network 401 by any number of well-known access techniques, which are not shown here for the sake of brevity. Wired and wireless access networks, common in homes and businesses, or provided by network service providers are examples of access technologies.
Continuing with fig. 4, client devices 461 and 471 communicate with service management system 413, and in some instances, hosted application server 479, over private communication network 411. Client devices 461 and 471 can also communicate with cloud services 491, 493, and 495. Private communication network 411 is shown here in communication with open communication network 401. However, it should be understood that this is optional, and in fact, client devices 461 and 471 may communicate with cloud services 491, 493, and 495 over some other communication channel or network. Client devices 461 and 471 can also communicate with local services 497, which are considered with respect to cloud services because of their ubiquitous availability in intranets, rather than the internet. Examples of local services 497 include cloud-driven, enterprise social networks, blog sites, and the like. Examples of client devices 461 and 471 include desktop and laptop computers, tablet computers, mobile communication devices, and other types of computing or electronic devices. Client devices 461 and 471 access private communication network 411 by any number of well-known wired or wireless access techniques, which are not shown here for purposes of brevity.
Referring now to the first scenario, in the illustrated example, the client device 421 includes a feature-enabled client 427, a productivity application 425, and a personal identifier 423. The productivity application 425 may be any productivity application installed on and capable of running on a client device. A productivity application is a software program used to generate, produce, or interact with content. Examples of productivity applications 425 include Microsoft's Word document editor, Microsoft' sSpreadsheet program, Microsoft' sDemonstration program and MicrosoftEmail and calendar programs. Other examples include Lotus intelligent Suite (Lotus Smart Suite) from IBM, WordPerfect from Corel, and any other type of productivity application provided by any vendor, such as accounting and database software. Examples of content include word processing documents, spreadsheets, databases, and photographs.
Feature-enabling client 427 may be any application program capable of communicating with feature-enabling server 407, running on service management system 403 to dynamically enable service features within productivity application 425, as will be described in detail below. The feature-enabling client 427 may be a separate client application, but may also be integrated in the productivity application 425 or with operating system software.
Personal identifier 423 represents a login identity that identifies the user and is associated with the user's person. Examples of personal identifier 423 include, but are not limited to, Windows for accessing what is known as Microsoft WindowsWindows of the service suiteID for accessing from MicrosoftOf electronic mail systemsIdentifiers, and Gmail identifiers to access email and other services provided by Google. Any number and variety of personal identifiers are available and contemplated within the scope of the present discussion. The user will use personal identifier 423 to log into productivity application 425, or possibly another application or operating system running on client device 421.
In operation, a user operating client device 421 logs into productivity application 425 with personal identifier 423. This may be done via a user interface provided by the productivity application 425, but may also be done through an operating system interface or some other type of login mechanism. The feature-enabling client 427 (which may be referred to as the productivity application 425) initiates communication with the feature-enabling server 407 to determine which service features within the productivity application 425 may be enabled. Using personal identifier 423, feature-enabling server 407 identifies the relevant service associated with the user and returns an indication of the relevant service to feature-enabling client 427. Based on the correspondence between the features and the associated services, the feature enablement client 427 communicates with the productivity application 425 which service features may be enabled.
Enabling the service feature may occur in a number of ways. For example, the productivity application 425 may invoke a graphical object corresponding to a service feature in order to present a graphical representation of the service feature. The presentation may be by making the graphical representation active or visible to the user. In some cases, the disabled service features may be grayed out, while the enabled service features may be presented in a non-gray color. The graphical representation of the service feature itself may be linked to or include code that is executable based on user selection of the graphical representation. Common examples of such graphical representations include buttons, hyperlinks, and items in drop-down menus. In another example, the productivity application 425 may change a value or setting in a graphical object corresponding to a service feature to change a visual characteristic of a graphical representation of an enabled service feature. It should be understood that many other implementations are possible.
Once the service features are enabled, the productivity application 425 makes these service features available to the user for interacting with any of the cloud services 491, 493, and 495. For example, assuming the cloud service 491 is a cloud drive and is associated with a user, the user will be able to save the document into the cloud drive. Similarly, in some examples, users will be able to upload photos or share content through cloud services 491, 493, and 495, or download content from the services. In another example, assuming the cloud service 491 is a social networking website, a user will be able to upload content, such as photos or word processing documents, to the social networking website.
As further shown in fig. 4, client device 431 includes a hosted application 435 and a personal identifier 433. For client device 421, personal identifier 433 represents a login identity for a user to access a personal service (e.g., webmail, messaging, etc.) associated with the user. Hosted application 435 is a productivity application running as a client instance on client device 431, for example, within a web browser application, hosted by hosted application server 439 and providing services. Examples of managed applications 435 include, but are not limited to, WordTMA document editor,A spreadsheet program,Demonstration program andhosted versions of email and calendar programs, all in Microsoft Office of productivity applicationsTMProvided within a hosted version of the package. Other examples include the Google docs suite from Google and the Zoho office suite from Zoho. Still other examples include any other type of hosted productivity application provided by any vendor, such as accounting and database software, gaming applications, and online-provided communication applications. Hybrid applications that can run in either a managed mode or an unmanaged mode (e.g., a local cache mode) are also contemplated within the scope of this discussion.
In operation, a user operating a client device 431 logs in to the hosted productivity application 435 with a personal identifier 433. This may be done via a user interface provided by a web browser or other user interface through which a user accesses a hosted productivity application, but may also be done through an operating system interface or some other type of login mechanism. The feature-enabling client 437 running on the hosted application server 439 initiates communication with the feature-enabling server 407 to determine which service features within the hosted productivity application 435 may be enabled. Using personal identifier 433, feature-enabling server 407 identifies the relevant service associated with the user and returns an indication of the relevant service to feature-enabling client 437. Based on the correspondence between the features and the associated services, the feature-enabling client 437 communicates with the hosted productivity application 435 which service features can be launched. Once enabled, as described above for productivity application 425, hosted productivity application 435 will make these service features available to the user for interacting with any of cloud services 491, 493, and 495.
Referring now to the second scenario described above, the client device 441 includes a productivity application 445 and a productivity identifier 443. Examples of productivity applications 445 include those office suites offered by microsoft, IBM, and Corel mentioned above, as well as any other type of productivity application. The feature-enabling client 447 may be any application program capable of communicating with the feature-enabling server 407, running on the service management system 403 to dynamically enable service features within the productivity application 445, as will be described in more detail below.
The productivity identifier 443 represents a login identity that identifies and is associated with an organization (e.g., business or school) to which the user may belong, which allows a provider of the productivity application 445 to manage and perform provisioning of the productivity application 425. For example, an organization may associate their active directory with Office365TMThe suppliers of the product packages are soft-coupled. Although Office365TMIs a set of internet-based applications, but it is contemplated herein that users are in transit through their Office365TMThe identities may also be identified using locally installed versions of these productivity applications. As such, the productivity identifier 443 is an identifier that is directly associated with the productivity application 425. An example identifier is john smith @ o365. com. Any number and variety of productivity identifiers are available and contemplated within the scope of the present discussion. The user will use the productivity identifier 443 to log into the productivity application 445,or may log into another application or operating system running on client device 441.
In operation, a user operating the client device 441 logs into the productivity application 445 with the productivity identifier 443. This may be done via a user interface provided by the productivity application 445, but may also be done through an operating system interface or some other type of login mechanism. The feature enablement client 447 (which may be referred to as the productivity application 445) initiates communication with the feature enablement server 407 to determine which service features within the productivity application 445 may be enabled. Using productivity identifier 443, feature-enablement server 407 identifies the relevant service associated with the user and returns an indication of the relevant service to feature-enablement client 447. Based on the correspondence between features and associated services, the feature enablement client 447 communicates with the productivity application 445 which service features may be enabled.
Once the service features are enabled, the productivity application 445 makes these service features available to the user for interacting with any of the cloud services 491, 493, and 495, e.g., uploading files, photos, or other such content to any of the services, or downloading content from the services. As noted, enabling the service feature may occur in a number of ways. In many possibilities, some examples include invoking a graphical object corresponding to a service feature in order to present a graphical representation of the service feature, and changing a value or setting in the graphical object corresponding to the service feature to change a visual characteristic of the enabled graphical representation of the service feature.
As further shown in fig. 4, client device 451 includes hosted application 455 and productivity identifier 453. For the client device 441, the productivity identifier represents a login identity that binds the user with an organization that allows the product vendor to manage and enforce the provisioning of the hosted productivity application 455. Office365 such as John Smith @ O365.comTMIdentity is one example. The managed application 455 is a productivity application running as a client instance on the client device 451, for example, within a web browser application, and is hosted by the managed application server 439Hosting and serving. Examples of managed applications 455 include, but are not limited to, WordTMA document editor,A spreadsheet program,Demonstration program andhosted versions of email and calendar programs, all in Microsoft Office365 for productivity applicationsTMProvided in a kit. Other examples include the Google Docs suite from Google and the Zoho office suite from Zoho.
In operation, a user operating client device 451 logs into hosted productivity application 455 with productivity identifier 453. This may be done via a user interface provided by a web browser or other client interface through which a user accesses the hosted productivity application 455, but may also be done through an operating system interface or some other type of login mechanism. A feature-enabling client 437 running on hosted application server 439 initiates communication with feature-enabling server 407 to determine which service features within hosted productivity application 455 may be enabled. Using productivity identifier 453, feature-enablement server 407 identifies the relevant service associated with the user and returns an indication of the relevant service to feature-enablement client 437. Based on the correspondence between features and associated services, the feature-enabling client 437 communicates with the hosted productivity application 455 which service features may be enabled. As described above with respect to the productivity application 445, once the service features are enabled, the productivity application 455 makes these service features available to the user for interacting with any of the cloud services 491, 493, and 495.
Referring now to the third scenario described above, a client device 461 includes a productivity application 465 and an enterprise identifier 463. The productivity application 465 can be any productivity application installed on and capable of running on the client device. Examples of productivity applications 465 include the productivity applications provided by Microsoft, IBM, and Corel, as described above. Feature-enabling client 467 can be any application program capable of communicating with feature-enabling server 417, running on service management system 413, to dynamically enable service features within productivity application 465, as will be described in detail below.
The enterprise identifier 463 represents a login identity that identifies and is associated with an organization (e.g., a company or school) that contains the user, which itself manages and enforces the provisioning of the productivity application 465. Examples of productivity applications include Word from microsoftTM、Thus, enterprise identifier 463 is an identifier associated with an organization, such as acme \ John Smith. Any number and variety of enterprise identifiers are available and contemplated within the scope of the present discussion. The user will use enterprise identifier 463 to log into productivity application 465 or perhaps into another application or operating system running on client device 461.
In operation, a user operating a client device 461 logs into a productivity application 465 with an enterprise identifier 463. This may be done via a user interface provided by the productivity application 465, but may also be done through an operating system interface or some other type of login mechanism. The feature-enabling client 467 (perhaps referred to as a productivity application 465) initiates communication with the feature-enabling server 417 to determine which service features within the productivity application 465 may be enabled. Using enterprise identifier 463, feature-enabling server 417 identifies the relevant service associated with the user and returns an indication of the relevant service to feature-enabling client 467. Based on the correspondence between the features and the associated services, the feature-enabling client 467 communicates with the productivity application 465 which service features may be enabled.
Once the service features are enabled, the productivity application 465 makes these service features available to the user for interaction with any of the cloud services 491, 493, and 495, e.g., uploading content to the service, or downloading content from the service. A service feature or features corresponding to service 497 may also be enabled. As noted, enabling the service feature may occur in a number of ways. In many possibilities, some examples include invoking a graphical object corresponding to a service feature in order to present a graphical representation of the service feature, and changing a value or setting in the graphical object corresponding to the service feature to change a visual characteristic of the enabled graphical representation of the service feature.
As further shown in fig. 4, client device 471 includes hosted application 475 and enterprise identifier 473. For client device 461, the enterprise identifier represents a login identity that binds the user with the organization that manages and enforces the provisioning of the hosted productivity application 475. Hosted application 475 is a productivity application running as a client instance on client device 471, for example, within a web browser application, hosted and served by hosted application server 479. Examples of managed applications 475 include, but are not limited to, WordTMA document editor,A spreadsheet program,Demonstration program andhosted versions of email and calendar programs, all from microsoft. Other examples include the Google Docs suite from applications of Google that may also be hosted locally.
In operation, a user operating a client device 471 logs into the hosted productivity application 475 with an enterprise identifier 473. This may be done via a user interface provided by a web browser or other client interface through which a user accesses the hosted productivity application 475, but may also be done through an operating system interface or some other type of login mechanism. The feature-enabling client 479 running on the hosted application server 477 initiates communication with the feature-enabling server 417 to determine which service features within the hosted productivity application 475 may be enabled. Using enterprise identifier 473, feature-enablement server 417 identifies the relevant services associated with the user and returns an indication of the relevant services to feature-enablement client 477. Based on the correspondence between the features and the associated services, the feature enablement client 477 communicates with the hosted productivity application 475 which service features may be enabled. Once the service features are enabled, the productivity application 475 makes them available to the user for interaction with any of the cloud services 491, 493, and 495, as described above with respect to the productivity application 465.
Fig. 5 shows an operational flow diagram 500 illustrating an example exchange of data between a client device 421, a service management system 403, and a service 491 to illustrate some operations of the enhanced feature environment 400. In this scenario, a user starts a productivity application on a client device 421. The client device 421 provides the user identity to the service management system 403. The user identity may have been provided by the user during a login operation to the productivity application, or alternatively, during a login operation to the operating system.
In one implementation, a Relying Party Suite (RPS) exchange is used to authenticate and identify a user to the service management system 403. In an RPS implementation, the client device 421 communicates with a login server (not shown) to authenticate a user. Assuming that the user is authenticated, the login server may provide a ticket or token for the client device to use to authenticate the user to the service management system 403. The client device 421 presents the ticket to the service management system 403, and the service management system 403 then communicates with the login server to verify the authenticity of the user. It should be understood that a variety of other techniques may be used to identify a user.
In any event, the service management system 403 proceeds to identify which services are associated with the user and returns the selected services to the client device 421. A more detailed discussion of how the service management system 403 identifies associated services will be provided below with respect to fig. 7 and the service table 717.
The client device 421 then enables the service feature within the productivity application corresponding to the selected service. In some implementations, the client device 421 may also determine which service features correspond to the selected service. For example, feature-enabling client 427, running on client device 421, may access a feature table that stores the identities of various service features in association with various services. Upon receiving an indication from service management system 403 of which services are associated with the user, feature enablement client 427 may then access the feature table to specifically determine which service features are enabled.
Alternatively, the profile may be maintained by another system (not shown) that is remotely located from the client device 421. Feature enablement client 427 queries the system to obtain information about which service features are enablable. In another alternative, service management system 403 may store the feature table itself and provide information to feature-enabling client 427 indicating which service features are enabler.
In yet another example, each service feature within the productivity application 425 may be self-enabled. This may be done by querying a service table stored in the client device 421, or alternatively remotely from the client device 421, for each service characteristic to determine which services have been identified by the service management system 403 as being associated with the user. Each service feature is then enabled based on whether any identified service matches the criteria maintained by each service feature.
It should be noted that the service management system 403 may also return service information to the client device 421, through which the productivity application may communicate with the service 491. One example of service information is a service identifier that identifies an instance of a service used by a user. Another example is a list of enabled capabilities of a service. Yet another example is a user identifier used by the user on the service, such as a peer handle or social network username. A user profile Uniform Resource Locator (URL) that links to a user profile for a particular service is yet another example of service information. A connection-specific URL may be provided for services that have already been selected and a connection-specific token for those services for which a recent session is still ongoing or has just stopped. Connection status information and last modification date information are other examples of service information.
In fig. 5, it is further depicted that the service application 491 provides service information to the service management system 403. It should be understood that the service 491 need not provide service information directly in this manner. Rather, the service 491 may publish certain information that may then be obtained by personnel or automated tools involved in maintaining and programming the service management system 403. In some scenarios, the service management system 403 may also obtain a service information client device 421. Various implementations may be used to provide service information for service management system 403.
The service 491 may be invoked, for example, by selection of an enabled service feature corresponding to the service. The client device 421 then generates a service call to the service 491 to complete the function served by the enabled service feature. For example, a service feature may be a sub-feature of a send productivity feature that, when invoked, allows content to be sent from the client device 421 to a social networking website. In another example, a service feature may be a save productivity feature that, when invoked, allows content generated on the client device 421 to be saved to a cloud storage service. It should be understood that productivity features and service features may be thought of as invoking functionality associated therewith, such as a command or some other type of control to send, share, or save content.
Fig. 6 illustrates an operational flow diagram 600 that illustrates another possible scenario involving hosted applications. In this scenario, the client device 431 provides a user identity corresponding to the user to the hosted application server 439. The user identity may be provided by the user during a login operation to the productivity application, or alternatively, during a login operation to the operating system.
In any event, the application server 439 authenticates the user and submits the user identity to the service management system 403, for example by transmitting a delivery request to the service management system 403 over the open communication network 401. The service management system 403 proceeds to identify which services are associated with the user and returns an indication of the selected service to the application server 439 by delivering a response over the open communication network 401. The service management system 403 may also return service information to the application server 439, which the productivity application uses to communicate with the service 491. As described above, some examples of service information include a service identifier, enablement capabilities of a service, a username of a service, a user profile URL, a connection specific URL, a token, and so forth.
In fig. 6, it is shown that a service application 491 may provide service information to a service management system 403. It should be appreciated that this need not occur in a direct manner, but may involve individuals who obtain service information from published resources and manually maintain and program service management system 403 or use automated tools. In other implementations, the service management system 403 actively queries the service on behalf of the user to obtain service information. In still other implementations, the service management system 403 obtains service information from the client device. It should be appreciated that various ways may be used to provide service information to the service management system 403.
The application server 439 then enables service features within the productivity application corresponding to the selected service. In some implementations, the application server 439 can also determine which service features correspond to the selected service. As described above with respect to fig. 5, various mechanisms may be used to determine this correspondence, such as a feature table maintained by the application server 439 or elsewhere or by way of a self-enabled service feature. The enabled service features are provided to a user operating the client device 431 through a client application (e.g., a web browser) that interacts with the application server 439 to present the user with a productivity application enabled with all relevant service features.
The service 491 may be invoked, for example, by selection of an enabled service feature corresponding to the service. The client device 431 then generates an indication of a service call to the service 491 to complete the functionality of the enabled service feature. The hosted application server 439 receives the indication and passes a corresponding service call to the service 491. For example, a service feature may be a sub-feature of a send productivity feature that, when invoked, allows sending content to the service 491.
Fig. 7 and 8 illustrate enhanced feature environments 700A and 700B, respectively, that illustrate in greater detail the components of the client device and service management system of fig. 4 and the operations therebetween to accomplish dynamic enablement of service features. In particular, FIG. 7 depicts an example of a user interacting with a service feature in a productivity application to upload content to a service. FIG. 8 depicts an example of a user interacting with another service feature in a productivity application to download images from a different service.
It should be understood that although discussed in the context of client device 421, the operations described in fig. 7 and 8 are broadly applicable to other devices of enhanced feature environment 400 of fig. 4. Similarly, the structural elements of the devices described in fig. 7 and 8 may generally be applied to the devices and systems shown in fig. 4, although certain variations may exist.
In FIG. 7, enhanced feature environment 700A includes service management system 403, client device 421, and service 491. The service management system 403 communicates with the client device 421 and the service 491. Similarly, the client device 421 communicates with the service management system 403 and the service 491.
The service management system 403 includes a processing system 705, a communication interface 709, and a memory 707. The processing system 705 is operatively linked to a communication interface 709 and a memory 707, and is capable of executing software stored in the memory 707. When executing software, processing system 705 typically drives service management system 403, including communication interface 709, to operate as described herein. Examples of processing system 705 include, but are not limited to, a general purpose central processing unit, a special purpose processor, and a graphics processor. Examples of memory 707 include random access memory, read only memory, magnetic disk, optical disk, and flash memory, any combination or variation thereof, or any other type of storage medium. The communication interface 708 may include communication connections and devices that allow the service management system 4033 to communicate with other devices, such as over a wired or wireless network in a distributed computing and communication environment.
As depicted, the processing system 705 executes software stored in the memory 707. FIG. 7 provides an expanded view of the software contained in memory 707, including feature-enabling server 407 and operating system 719. The feature enabling server 407 includes a directory module 712, a connection module 713, a service addition module 715, and a service removal module 716.
The catalog module 712 provides a catalog of possible services that the user may access. The connection module 713 monitors which services the user is currently connected to, while the availability module 714 tracks which services the user is associated with and may want to connect to, both of which are described in more detail below. The service addition module 715 provides a mechanism by which a user can add a new service through the connection module 713 and the availability module 714. Similarly, the service removal module 716 provides a mechanism by which a user can remove a service.
A service table 717 is also provided that maintains information about the various users and their associations with the various services. The services table 717 is illustrated in a relatively simple form to show how the availability module 714 determines which services are associated with which users. In this simple example, user A is associated with services 491 and 493; user B is associated with services 493 and 495; user M is associated with services 491 and 495; and user N is associated with all three services 491, 493, and 495. Upon receiving a request from a client device to identify a related service associated with a user, the availability module 714 (possibly alone or in combination with the connection module 713) will access the service table 717 to identify the service associated with the user. More complex ways of tracking such information and more complex data structures other than tables are also possible. Other modules may also operate on the access service table 717.
The service table 717 may be maintained in a number of ways. In one implementation, the service table 717 is populated on a per-user basis and when requests are made to determine which services are associated with a user. In this implementation, service management system 403 communicates with cloud services 491, 493, and 495 to determine whether the requesting user is associated with each service and populates service table 717 accordingly. In other implementations, service management system 403 may periodically query cloud services 491, 493, and 495 to determine which services are associated with which users. In either case, the service management system 403 may query at least some cloud services using the login identity provided by the user to use the productivity application 425 if the login identity is the same identity as the identity of the user accessing the cloud services. However, the service management system 403 may query the cloud service with a different identity of the user (e.g., a service-specific identity). The service-specific identity may be provided by the user through the service directory 736 when the user selects a service to associate with.
In yet another implementation, the service table 717 can be populated based on information provided by the client device. For example, based on user selections of at least a subset of the services in the services directory 736, the feature-enabled client 427 may communicate these selections to the service management system 403 for storage in the services table 717. In this example, the selected subset of services includes services 491 and 493.
Combinations and variations on these implementations are also possible. For example, the service table 717 may be initially populated based on information provided by the client device, but subsequently updated on a periodic basis or on a per-request basis.
Client device 421 includes a processing system 723, a memory 725, a communication interface 727, and a user interface 729. The processing system 723 is operatively linked to the memory 725, the communication interface 727, and the user interface 729, and is capable of executing software stored in the memory 725. When executing software, processing system 723 typically drives client device 421 including a user interface 729 and a communication interface 727 to operate as described herein. Examples of processing system 723 include general purpose central processing units, special purpose processors, and graphics processors, and any other type of processing device. Examples of memory 725 include random access memory, read only memory, magnetic disk, optical disk, and flash memory, any combination or variation thereof, or any other type of storage medium. The communication interface 727 may include communication connections and devices that allow the client device 421 to communicate with other devices, such as over a wired or wireless network in a distributed computing and communication environment. The user interface 729 may have input devices such as a keyboard, a mouse, a voice input device, or a touch input device and equivalent input devices. Output devices such as a display, speakers, printer, and other types of output devices may also be included.
As depicted, the processing system 723 executes software stored in the memory 725. FIG. 7 provides an expanded view of the software contained in memory 725, including productivity application 425, feature-enabling client 427, and operating system 732.
The productivity application 425 includes productivity features 733, productivity features 734, and service features 735. FIG. 7 also shows service features included in the productivity feature 733, including service feature 791 and service feature 793. The service feature 791 is intended to correspond to the service 491 shown in FIG. 4. Similarly, service feature 793 is intended to correspond to service 493 shown in FIG. 4. The description of service features 791 and 793 together within the productivity feature 733 is intended to indicate the enablement of these two features based on the relevance of user A, who is logged into the productivity application 425 having services 491 and 493. In fact, the service table 717 in the service management system 403 also indicates these relationships.
As seen, the productivity application 425 also includes a service directory 736. Service directory 736 includes graphical representations of service 491, service 493, and service 495, corresponding to the same services shown in FIG. 4. In this example, service 491 and service 493 are shown as being selected. This selection is communicated from the client device 421 to the service management system 403 via the communication interface 727 and ultimately stored in the service table 717.
The service directory 736 may be presented to the user at various times. For example, the service directory 736 may be presented to the user when starting a productivity application. This may occur every time, but may also occur periodically, or when new services are available. The service directory 736 can also be presented upon user selection (e.g., by making a selection in a feature menu to start the service directory 736). The user may also be presented with a service catalog 736 when selecting the productivity feature. For example, a user may choose to save productivity features, whereby the service directory 736 may be presented to the user.
It should be understood that the service directory 736 need not be presented as distinct directories or as separate elements. Rather, the presentation of the graphical representation of the services 491, 493, and 495 may occur within productivity features (e.g., features 733, 734, and 735). The services directory 736 can also be integrated with and presented as part of the operating system 732. It is contemplated that other implementations and presentations of the service directory 736 should not be limited to that described herein. The service directory 736 may communicate with the directory module 712 to obtain information for populating the directory.
It should be understood that the various elements of the productivity application 425, as well as the application itself, may be presented to the user through the user interface 729. While the productivity application 425 and its elements reside as software within the memory 725, execution of the software by the processing system 723 drives the user interface 729 to display various aspects of the operating system 732 and the productivity application 425 to a user, for example, by displaying images on a display system. Similarly, the user interface 729 may include other input components that allow a user to interact with the productivity application 425 by, for example, clicking a mouse or indicating with another input device a selection of any of the productivity features, service features, or catalog elements shown in fig. 7.
The operation of enhanced features environment 700A in one implementation is discussed below. In this implementation, the service feature corresponding to the service 491 is enabled and invoked through interaction between the client device 421 and the service management system 403. This is an exemplary illustration that may be applied to any of the other elements shown in diagram 400 with some variation possible, but is limited to the interaction between client device 421 and service management system 403 for clarity reasons.
In operation, user A logs into the productivity application 425. User a may alternatively or simultaneously log into operating system 732 and into some other application that may communicate the user identity to productivity application 425. In this example, user a is logged in personal identity, as explained with respect to fig. 4. In operation, a user works with the productivity application 425 to generate application content 737, in this example a word processing document. The productivity features 733 and 734 and the service features 735 are made available to the user through a graphical user interface displayed to the user on the user interface 729.
The feature enablement client 427 determines which service features are enabled within the productivity application 425. Feature-enabling client 427 queries feature-enabling server 407 through communication between client device 421 and service management system 403. As depicted, the service management system 403 maintains a service table 717 that stores user identities associated with various services. In table 717, user a is associated with service 491 and service 493. User B is associated with services 493 and 495. User M is associated with services 491 and 495. User N is associated with all three services 491, 493, and 495. These associations are made as a result of the user providing the associations to the service management system 403 or by some other means. As described above, the user may provide these associations through, for example, the service directory 736.
To determine which features are invokable for a given productivity application associated with a given user, the table 717 is consulted or otherwise queried by the availability module 714 to identify which services are associated with the user. Since the productivity application 425 is associated with user A, the service feature 791 corresponding to the service 491 is enabled and available to the user. Similarly, a service feature 793 corresponding to service 493 is enabled. However, no service feature corresponding to service 495 is enabled, as it is evidenced by its absence from display in productivity application 425.
Enhanced features environment 700A is also intended to illustrate that a service feature may be a sub-feature of a productivity feature. For example, service feature 791 and service feature 793 are shown as sub-features of productivity feature 733. It should be understood that fig. 7 illustrates, in an expanded view, the productivity feature merely indicating the enablement of the service feature therein, however it is contemplated that the productivity feature 734 and the service feature 735 may themselves include other sub-features or service features that may also be enabled.
The service features enabled with the productivity feature 733 may provide any number of functions. In this case, it is assumed for purposes of illustration that the productivity feature 733 is a send feature, and that the service feature 791 allows the productivity feature 733 to send the content 737 to the service 491, as shown by arrow 787. In this way, the service 491 is able to host the content 737 when the content 737 is generated and transmitted by the productivity application 425.
As described above, enabling service features may occur in a number of ways. In many possibilities, some examples include invoking a graphical object corresponding to a service feature in order to present a graphical representation of the service feature, and changing a value or setting in the graphical object corresponding to the service feature to change a visual characteristic of the enabled graphical representation of the service feature. The graphical objects may have executable code associated with them that provides the operational functionality that the user wishes to apply to the content. For example, the save feature will drive the client device 421 to save the content. Similarly, the send feature will contain code that drives the client device 421 to send the content to the destination.
Referring now to FIG. 8, enhanced feature environment 700B includes service management system 403, client device 421, and service 493. Service management system 403 communicates with client device 421 and service 493. Similarly, client device 421 communicates with service management system 403 and service 493.
The operation of enhanced features environment 700B in one implementation is discussed below. In this implementation, service features corresponding to service 493 are enabled and invoked through interaction between client device 421 and service management system 403. This is an exemplary illustration that may be applied to any of the other elements shown in diagram 400 with some variation possible, but is limited to the interaction between client device 421 and service management system 403 for clarity reasons.
As described above with respect to fig. 7, user a is logged into productivity application 425, but may alternatively or simultaneously be logged into operating system 732. In this example, user a is logged in personal identity, as explained with respect to fig. 4. In operation, a user works with the productivity application 425 to generate application content 737, in this example a word processing document. Productivity features 733 and 734 and service features 735 within productivity application 425 are made available to a user through a graphical user interface displayed to the user on user interface 729.
The feature enablement client 427 determines which service features are enabled within the productivity application 425. Feature-enabling client 427 queries feature-enabling server 407 through communication between client device 421 and service management system 403. Since productivity application 425 is associated with user A, the service features corresponding to these services associated with user A will be enabled. Service table 717 shows that user A is associated with service 491 and service 493. Thus, service features associated with service 491 and service 493 are enabled. For purposes of illustration, it is assumed herein that service feature 893 is associated with service 493 and, as such, is enabled and available to the user.
In this case, it is assumed for purposes of illustration that the productivity feature 734 is an insert image feature that allows a user to insert an image into the application content 737. Service feature 891 is provided as a dedicated insertion feature corresponding to a search engine (not shown) that allows a user to search for images or other content to be inserted into application content 737. Service feature 893 is provided as a dedicated insertion feature corresponding to service 493, which allows a user to insert images from image sources 757 in service 493. Assume for purposes of illustration that the user has selected the service feature 893 and selected to download an image from the image source 757 and insert it into the application content 737, as indicated by arrow 777. The image is transferred from the service 493 and embedded into the application content 737.
It should be understood that in the service features 891 and 893, graphics related to what may be inserted into the application content 737 may be exposed (surfaced). In the case of the service feature 891, a search box may be displayed to the user where the user can enter search terms. With respect to the service features 893, image representations stored in the image sources 757 may be displayed to the user, allowing the user to select one or more images that are desired to be inserted into the application content 737. The user can also add service features by adding service features 895. Within the add service feature 895, graphical representations of two possible services (photo service and drive service) that the user would like to connect to and add as related services are displayed. While the add-on-service feature 895 is shown as a sub-feature of the productivity feature 895, it should be understood that similar add-on features may be provided as separate features or as sub-features of other productivity features.
In FIG. 8, service features 891 are provided along with service features 893 to indicate that while some service features corresponding to services associated with a user may be dynamically enabled, other service features may be enabled or otherwise exposed to the user even if an association between the user and a corresponding service exists. In this example, service characteristic 891 corresponds to a search engine service, and service characteristic 893 corresponds to service 493. This is intended to indicate that service features associated with the service other than those associated with the user may be exposed within the productivity application 425.
As described above, enabling service features may occur in a number of ways. In many possibilities, some examples include invoking a graphical object corresponding to a service feature in order to present a graphical representation of the service feature, and changing a value or setting in the graphical object corresponding to the service feature to change a visual characteristic of the enabled graphical representation of the service feature. The graphical objects may have executable code associated with them that provides the operational functionality that the user wishes to apply to the content. For example, the save feature will drive the client device 421 to save the content. Similarly, the send feature will contain code that drives the client device 421 to send the content to the destination.
The following discussion relates to Microsoft OfficeTMVarious implementations of the application suite. In addition, FIGS. 9 and 10 contain diagrams illustrating when services provided by Microsoft and third party vendors are connected to or integrated with their OfficeTMScreenshots of a user interface that a user may encounter while applying. When a user selects and uses these services, Office is run even when the user can roam from one device to anotherTMOr a service manager in communication with the client, or both. Whether running on a web, mobile, desktop or laptop platform or any other type of platform, any OfficeTMThe client may interact with the service manager to accomplish this.
The service manager may itself be a hosted service that authenticates users and returns information about services to those services to which the users have connected or are available for connection by the users. The service manager communicates with these various services to obtain the information needed to enable the corresponding service features. Since this information can change over time, this allows productivity applications to avoid being voided by service changes or new services becoming available. This is accomplished by the service manager interfacing with the service and then in turn with the productivity application to enable service features.
In this example, the user may be identified in several ways, including through WindowsIdentifier and Office365TMAn identifier. It should be understood that the user may also be identified by a third party identifier. Once their relevant services are identified and the associated service features enabled, the user will be able to interact directly with the services through the service features to perform such as from OfficeTMUploading content to a garment internally of an applicationServices, or inserting content directly from services to use OfficeTMThe generated document is applied. In addition, from OfficeTMIt will become possible for an application to open internally files stored by a cloud storage service associated with a user. Similarly, from OfficeTMIt becomes possible for the application to internally save files to the cloud storage associated with the user. In yet another example, contacts from a social networking website associated with the user may be at OfficeTMBecome available within the application.
Referring now to FIG. 9, illustrated is a screen shot of a user interface 900 that may be encountered when working with a productivity application having dynamically-enabled service features. In particular, user interface 900 provides a sample view in Microsoft's Word document editor showing a sample summary (sample resume) generated by the sample author Jermey.
A user interface 900, such as the user executing the productivity application 901 described in the previous figures, may be presented and displayed to the user via the client device. A user may interact with a productivity application 901 to create content 903 such as a document. The productivity application 901 includes a productivity features menu 905 having graphical representations corresponding to a subset of the various productivity features displayed therein. For example, the features menu 905 includes buttons for file, home, insert, page layout, reference, mail, review, and view productivity features directory. In this example, selecting an insert catalog results in a view of graphical icons corresponding to productivity features within the insert catalog.
As shown, the insertion catalog 907 includes a number of productivity features, including those that allow a user to insert local images, online images, videos, shapes, smart art, charts, and screenshots. In practice, the plug-in directory 907 includes several other productivity features, including overlay pages, blank pages, page breaks, tables, hyperlinks, bookmarks, cross-references, headers, footers, and page count productivity features. These productivity features allow the user to perform functions with respect to the content, i.e., insert an item represented by a graphical icon for each productivity feature. For example, by clicking on a graphical icon marked by the local image, the productivity feature of the local graphic will allow the user to insert a locally stored photo or other type of image. Similarly, inserting a video productivity feature would allow a user to insert a video into content 903.
Still referring to FIG. 9, the user interface 900 also provides a view of the service features discussed in the implementations above. When the inline image productivity feature 911 is selected, an inline image insertion menu 913 is displayed to the user. The insert online images menu 913 contains several service features available to the user that allow the user to perform functions with respect to the content 903 related to the online service. In this case, three service features are shown: service features 915, service features 917, and service features 919.
Service feature 915 corresponds to an online search serviceBingTM. The service feature 915 allows the user to search for images to be inserted into the content 903 using a search service. In particular, the user may enter a search string into a search box 925 inserted within the online images menu 913 without navigating away from the productivity application 901. In some implementations, the service features 915 may correspond to other online search services, including search services embedded or included in other services. For example, service features 915 may correspond to search tools that allow a user to search for content stored within a social networking service.
Service feature 917 corresponds to Office by MicrosoftTMThe online clip-draw store provided by the service. Com allows the user to search for images to be inserted into the content 903 from the photo repository and from the illustrations of office. The user can enter the search string in the search box 927 without navigating away from the productivity application 901.
Service features 919 correspond to FACEBOOK (FACEBOOK) social networking online services. Service features 919 allow users to insert images 929 from their facebook account into content 903. The user may also search their facebook account number for additional images to insert.
The insert online images menu 913 also provides an additional source menu 931 that may be added to the roster of enabled service features 915, 917, and 913. For example, a user may wish to enable service features associated with a professional networked social network, a web portal, or messaging service, among other types of online services. The user may click on the graphical representations of these other services within the additional source menu 931 to initiate a process that connects to these services and enables the service features associated therewith.
As described in the implementations discussed above, the service features 915, 917, and 919 may be dynamically enabled depending on the association of the user with their corresponding online service. For example, in the user interface 900, the service feature 919 is enabled when the user-Jeremy-of the productivity application 901 is a member of a facebook. However, some service features may be enabled at any time, regardless of whether the user is associated with the corresponding online service. For example, the service features 915 corresponding to the online service may be continuously enabled.
Referring now to FIG. 10, a screenshot of a user interface 1000 from Microsoft's Word document editor is shown showing an account management view 1001 that allows a sample user Kaitlin to manage her profile of connected services. In this manner, the user is able to identify which online services she is associated with in order to enable their corresponding ones of the productivity features.
As seen from user interface 1000, account management view 1001 includes an indication of the identity of the user. In this case, Kaitlin is associated with an online email serviceAn identifier. The account management view 1001 also displays to the user a list of her connected services 1005. In this example, Kaitlin is associated with an online storage drive, an online productivity suite, a social networking online service, and an online photo uniformAnd (6) associating services. An add service function 1007 may also be provided to the user that allows the user to add or remove any services from her list of connected services 1005. Within menu 1009, other standard features of the functionality may also be available to the user, such as new, open, save, and print functions and features.
The description and drawings are included to describe a particular implementation for teaching one skilled in the art how to make and use the best mode. For the purpose of teaching inventive principles, some conventional aspects have been simplified or omitted. Those skilled in the art will appreciate variations from these implementations that also fall within the scope of the invention. Those skilled in the art will also appreciate that features described above can be combined in various ways to form multiple implementations. Accordingly, the present invention is not limited to the specific implementations described above, but only by the claims and their equivalents.
Claims (10)
1. A method of instructing a client device operated by a user of a productivity application when executed by the client device, identified by a first identity, comprising:
presenting, within the productivity application (901), a productivity features menu (905) corresponding to a plurality of productivity features (907) through a user interface (900);
in response to a selection from the productivity feature menu (905) corresponding to one of the plurality of productivity features (907), presenting a service feature menu (913) corresponding to a plurality of service features (915, 917, 919) within the productivity application (901) through a user interface (900), the service feature menu (913) including at least one service feature enabled based on an association between the user and an online service corresponding to the one service feature, wherein the user is identified to the online service by a second identity different from the first identity; and
in response to the selection of the one service feature, initiating a function on content generated by the productivity application using content associated with the online service;
wherein the method further comprises providing a service table that maintains information about the various users and their associations with the various services.
2. The method of claim 1, wherein the one service feature comprises an insert feature, and wherein the function comprises an insert function that inserts the content associated with the online service into the content generated by the productivity application.
3. The method of claim 1, wherein the one service feature comprises a search feature, and wherein the function comprises a search function that searches for content associated with the online service.
4. The method of claim 1, wherein the service feature menu comprises graphical representations of the plurality of service features, and wherein one of the graphical representations of the plurality of service features corresponding to the one service feature comprises a graphical representation of content associated with the online service.
5. The method of claim 1, wherein the online service comprises a social networking site.
6. The method of claim 1, wherein the content associated with the online service comprises an image or video stored by the online service within a profile of the user associated with the online service.
7. A method for presenting a productivity application on a client device, the client device operated by a user, the user identified to the productivity application by a first identity, the method comprising:
presenting, within the productivity application, a productivity feature menu corresponding to a plurality of productivity features through a user interface;
in response to a selection from the productivity features menu corresponding to one of the plurality of productivity features, presenting a service features menu corresponding to a plurality of service features within the productivity application through a user interface, the service features menu including at least one service feature enabled based on an association between the user and an online service corresponding to the one service feature, wherein the user is identified to the online service by a second identity different from the first identity; and
in response to the selection of the one service feature, initiating a function on content generated by the productivity application using content associated with the online service;
wherein the method further comprises providing a service table that maintains information about the various users and their associations with the various services.
8. The method of claim 7, wherein the one service feature comprises an insert feature, and wherein the function comprises an insert function that inserts the content associated with the online service into the content generated by the productivity application.
9. The method of claim 7, wherein the service feature menu comprises graphical representations of the plurality of service features, and wherein one of the graphical representations of the plurality of service features corresponding to the one service feature comprises a graphical representation of content associated with the online service.
10. The method of claim 7, wherein the online service comprises a social networking website, and wherein the content associated with the online service comprises an image or video stored by the social networking website in a profile of the user.
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US13/297,287 | 2011-11-16 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| HK1181889A HK1181889A (en) | 2013-11-15 |
| HK1181889B true HK1181889B (en) | 2018-04-20 |
Family
ID=
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10708252B2 (en) | Configuring credentials to faciltate sharing data in a secure manner | |
| US11360790B2 (en) | Collaborative and non-collaborative workspace application container with application persistence | |
| US10051055B2 (en) | System and method for synchronizing data objects in a cloud based social networking environment | |
| US10769591B2 (en) | Enabling service features within productivity applications | |
| US20140245141A1 (en) | Contextual user assistance for cloud services | |
| US12238191B2 (en) | System, method, and computer program product for improved embedded application data management | |
| US20100306664A1 (en) | Automated content submission to a share site | |
| US12184706B2 (en) | Method for resource sharing in video teleconferences | |
| CN107430609A (en) | For the generation of the new Shipping Options Page of browser of corporate environment | |
| HK1181889B (en) | System and method for enabling service features within productivity applications | |
| HK1181889A (en) | System and method for enabling service features within productivity applications |