scispace - formally typeset
Search or ask a question
Author

John M. Sheehan

Bio: John M. Sheehan is an academic researcher from Microsoft. The author has contributed to research in topics: Application virtualization & Virtual machine. The author has an hindex of 18, co-authored 43 publications receiving 1040 citations.

Papers
More filters
Patent•
Stuart H. Schaefer1, John M. Sheehan1•
28 Jul 2005
TL;DR: In this article, a method for controlling the interoperation of a plurality of software applications and resources includes intercepting communications from a first application to a second application or resource, directing the communication to a context management system, generating a candidate list of contexts for the communication, evaluating the candidate list according to at least one policy defined for these contexts, and performing the action as defined by the policies within the identified namespace.
Abstract: A method for controlling the interoperation of a plurality of software applications and resources includes intercepting communications from a first application to a second application or resource, directing the communication to a context management system, generating a candidate list of contexts for the communication, evaluating the candidate list according to at least one policy defined for these contexts to identify the resultant action and namespace for the communication, and performing the action as defined by the policies within the identified namespace. The method further includes tracking one or more versions of the second application, as well as tracking an evolution of application and/or resource names. The method further includes identifying one or more operations associated with a context on the candidate list, and executing the identified operations prior to a further communication.

194 citations

Patent•
12 Sep 2011
TL;DR: In this article, the synchronization of application state between one or more instances of an application on multiple devices is discussed, such that a user can configure a new email account within a first instance of an email application on a laptop device.
Abstract: One or more techniques and/or systems are provided for synchronizing application state between one or more instances of an application on one or more devices. In particular, an application state, such as application settings, may be synchronized between a first instance of an application on a first device and a second instance of the application on a second device. For example, a user may configure a new email account within a first instance of an email application on a laptop device. The new email account may be synchronized with a second instance of the email application on a tablet device. During synchronization, various conflict resolution, version verifications, and/or consistency verifications may be performed. In this way, the user may be provided with a seamless and consistent experience between the laptop and tablet device.

114 citations

Patent•
16 Jul 2009
TL;DR: In this paper, the authors present a policy to define how any changes to specific software components may be stored and retrieved based on the designator, and a set of changed components can be generated, persisted, and re-applied to create a customized version of the application.
Abstract: Applications operated within a virtual environment may be organized into a package containing various software components. Each software component or resource may have a specific name and other metadata, including a designator for overwriting or modifying the component. A policy may define how any changes to specific software components may be stored and retrieved based on the designator. One or more sets of changed components may be generated, persisted, and re-applied to create a customized version of the application based on the original package. The application may be operated within a virtual application environment or within a dedicated virtual machine environment.

71 citations

Patent•
31 Jan 2008
TL;DR: A management system for virtual applications may deploy sets of virtual applications to many client devices, dynamically allocate virtual application servers to individual clients, manage updates to the virtual applications, and provide other high level management to deployments of VMs.
Abstract: A management system for virtual applications may deploy sets of virtual applications to many client devices, dynamically allocate virtual application servers to individual clients, manage updates to the virtual applications, and provide other high level management to deployments of virtual applications. A client device may include a virtual application management client that may communicate with a management server. The management client may add or remove virtual applications to the client device based on a policy received from the management server, and may query the management server to determine a currently available virtual application distribution server when a virtual application is requested. The management server may distribute and manage versions of applications across one or more virtual application distribution servers.

62 citations

Patent•
John M. Sheehan1•
11 Jun 2008
TL;DR: In this paper, a request is received for a first resource name from an application, where the resource name exists in the first resource namespace and in the second resource namespace, and in response to the request, whether to obtain a resource from the first namespace or from the second namespace is determined by applying one or more resource policies to the first and second resource names.
Abstract: Access to resources on a computer may be provided by using a first namespace of resources and a second namespace of resources, where one or more names are common to both namespaces and those names refer to different respective instances of resources. A request is received for a first resource name from an application, where the first resource name exists in the first resource namespace and in the second resource namespace. In response to the request, whether to obtain a resource from the first namespace or from the second namespace is determined by applying one or more resource policies to the first resource namespace and to the second resource namespace.

49 citations


Cited by
More filters
Patent•
11 Jan 2011
TL;DR: In this article, an intelligent automated assistant system engages with the user in an integrated, conversational manner using natural language dialog, and invokes external services when appropriate to obtain information or perform various actions.
Abstract: An intelligent automated assistant system engages with the user in an integrated, conversational manner using natural language dialog, and invokes external services when appropriate to obtain information or perform various actions. The system can be implemented using any of a number of different platforms, such as the web, email, smartphone, and the like, or any combination thereof. In one embodiment, the system is based on sets of interrelated domains and tasks, and employs additional functionally powered by external services with which the system can interact.

1,462 citations

Patent•
03 Oct 2013
TL;DR: In this paper, an improved technique for managing enterprise applications on mobile devices is described, where each enterprise mobile application running on the mobile device has an associated policy through which it interacts with its environment.
Abstract: Improved techniques for managing enterprise applications on mobile devices are described herein. Each enterprise mobile application running on the mobile device has an associated policy through which it interacts with its environment. The policy selectively blocks or allows activities involving the enterprise application in accordance with rules established by the enterprise. Together, the enterprise applications running on the mobile device form a set of managed applications. Managed applications are typically allowed to exchange data with other managed applications, but are blocked from exchanging data with other applications, such as the user's own personal applications. Policies may be defined to manage data sharing, mobile resource management, application specific information, networking and data access solutions, device cloud and transfer, dual mode application software, enterprise app store access, and virtualized application and resources, among other things.

646 citations

Patent•
25 Oct 2006
TL;DR: In this paper, the authors propose a method for providing access to a computing environment that includes the step of receiving a request from a client system for an enumeration of available computing environments.
Abstract: A method for providing access to a computing environment includes the step of receiving a request from a client system for an enumeration of available computing environments. Collected data regarding available computing environments are accessed. Accessed data are transmitted to a client system, the accessed data indicating to the client system each computing environment available to a user of the client system. A request is received from the client system to access one of the computing environments. A connection is established between the client system and a virtual machine hosting the requested computing environment via a terminal services session, the virtual machine executed by a hypervisor executing in the terminal services session provided by an operating system executing on one of a plurality of execution machines.

499 citations

Patent•
18 Jan 2007
TL;DR: In this article, a method for executing, by a virtual machine, an application program requested by a client machine includes the step of receiving a file including access information for accessing a plurality of application files and for executing a first client capable of receiving an application stream.
Abstract: A method for executing, by a virtual machine, an application program requested by a client machine includes the step of receiving a file including access information for accessing a plurality of application files and for executing a first client capable of receiving an application stream. An identification of the plurality of application files is retrieved, responsive to the received file. At least one characteristic required for execution of the plurality of application files is retrieved, responsive to the file. A determination is made as to whether a client machine includes the at least one characteristic. A second client is executed, responsive to a determination that the client machine lacks the at least one characteristic, the second client requesting execution of the plurality of application files on a remote machine comprising a virtual machine providing a computing environment having the at least one characteristic.

402 citations

Patent•
Aram Lindahl1•
24 May 2012
TL;DR: In this paper, an electronic device may capture a voice command from a user and store contextual information about the state of the electronic device when the voice command is received, such as a desktop computer or a remote server.
Abstract: An electronic device may capture a voice command from a user. The electronic device may store contextual information about the state of the electronic device when the voice command is received. The electronic device may transmit the voice command and the contextual information to computing equipment such as a desktop computer or a remote server. The computing equipment may perform a speech recognition operation on the voice command and may process the contextual information. The computing equipment may respond to the voice command. The computing equipment may also transmit information to the electronic device that allows the electronic device to respond to the voice command.

385 citations