Patents by Inventor Dharma Shukla

Dharma Shukla has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Publication number: 20120254109
    Abstract: A method of creating a distributed application in a distributed component runtime is disclosed. An application schema including distributed modules is declaratively defined. Each module hosts a component having a corresponding logical address. Mapping the corresponding logical addresses to physical addresses at runtime virtualizes interactions between the components.
    Type: Application
    Filed: March 28, 2011
    Publication date: October 4, 2012
    Applicant: MICROSOFT CORPORATION
    Inventors: Dharma Shukla, Akash Jeevan Sagar, Nathan C. Talbert, Muthukaruppan Annamalai, Robert B. Schmidt, Aditya Bhandarkar, Asad Jawahar
  • Publication number: 20120246613
    Abstract: A distributed component model for creating a scalable and available distributed application is disclosed. The distributed component model provides for an application schema to be declaratively defined to include a module having a component. The schema includes a corresponding definition construct in a technology agnostic manner. The corresponding definition construct is declaratively defined to include metadata to control scaling and availability.
    Type: Application
    Filed: March 25, 2011
    Publication date: September 27, 2012
    Applicant: MICROSOFT CORPORATION
    Inventors: Dharma Shukla, Akash Jeevan Sagar, Nathan C. Talbert, Muthukaruppan Annamalai, Robert B. Schmidt, Aditya Bhandarkar, Asad Jawahar
  • Publication number: 20120222003
    Abstract: A method of creating an application definition for a distributed application is disclosed. Constructs corresponding with a schema of the distributed application are defined in a declarative and technology agnostic manner. The constructs include the application definition, a module definition, and a component definition. Each construct includes metadata.
    Type: Application
    Filed: February 28, 2011
    Publication date: August 30, 2012
    Applicant: MICROSOFT CORPORATION
    Inventors: Dharma Shukla, Akash Jeevan Sagar, Nathan C. Talbert, Muthukaruppan Annamalai, Robert B. Schmidt, Aditya Bhandarkar, Asad Jawahar
  • Publication number: 20120159424
    Abstract: A method of creating a manifest for a distributed application is disclosed. Components and composites of components of the distributed application are described in a technology agnostic manner. The description includes a definition of the scalability of the composites of components.
    Type: Application
    Filed: December 21, 2010
    Publication date: June 21, 2012
    Applicant: Microsoft Corporation
    Inventors: Dharma Shukla, Akash Jeevan Sagar, Nathan C. Talbert, Muthukaruppan Annamalai, Robert B. Schmidt, Aditya Bhandarkar, Asad Jawahar
  • Publication number: 20120159425
    Abstract: Embodiments are directed to providing an application model for implementing composite applications and to providing a declarative programming model and distributed runtime for creating and executing composite applications. In an embodiment, a computer system instantiates an application model. The application model allows users to compose composite applications. The composite applications are configured to run on both distributed computing systems and local computing systems. The computer system receives user input at the instantiated application model. The user input indicates which composite application components are to be used in conjunction with each other to form the composite application. The computer system also provides the composite application on a distributed computing system and/or a local computing system.
    Type: Application
    Filed: December 15, 2010
    Publication date: June 21, 2012
    Applicant: MICROSOFT CORPORATION
    Inventors: Dharma Shukla, Aditya Gopal Bhandarkar, Akash Jeevan Sagar, Asad Jawahar, Robert Brian Schmidt
  • Publication number: 20120159523
    Abstract: A container service is capable of hosting large numbers of middleware components for multiple tenants. A central container manager controls a plurality of compute nodes. The central container manager receives middleware components from external devices or services and assigns the components to containers on one or more designated compute nodes. Each compute node has a container management agent and one or more containers. The container management agents activate and manage the appropriate number of containers to run the assigned middleware components. The container management agent assigns each container on its compute node a limited set of privileges to control access to shared resources. The central container manager and each node's container management agent monitor container load levels and dynamically adjust the placement of the middleware components to maintain balanced operation. The compute nodes are grouped into clusters based upon the type of middleware components hosted on each compute node.
    Type: Application
    Filed: December 17, 2010
    Publication date: June 21, 2012
    Applicant: MICROSOFT CORPORATION
    Inventors: Amol Kulkarni, Girish Mittur Venkataramanappa, Yann Christensen, Chandra Prasad, Dharma Shukla, Sumit Mohanty, Vinod Shanbhag, Andreas Ulbrich, Mandyam Kishore, Aditya Bhandarkar
  • Patent number: 8196175
    Abstract: A ticketing system adapted for use with a cloud-based services platform is provided by a ticket-based authorization model in which the authorization requirements for traversing one or more meshes of resources associated with a cloud service are annotated in links included in a resource that refer to other resources. The meshes are thus self-describing with respect to the association among the resources (i.e., the links) as well as the authorization required to access resources. Resource access requires a principal ticket which asserts that a caller at a client (e.g., a security principal representing a device or identity associated with a user) is authenticated, plus zero or more claim tickets. The claim tickets make additional assertions about the caller that the cloud service may use to check that the caller is authorized to access the resource.
    Type: Grant
    Filed: March 5, 2008
    Date of Patent: June 5, 2012
    Assignee: Microsoft Corporation
    Inventors: David R. Reed, Eric S. Fleischman, Abolade Gbadegesin, Dharma Shukla, Nikolay Smolyanskiy, Thomas A. Galvin
  • Publication number: 20120030169
    Abstract: An instance persistence command for an update to a state of an instance of an application can be issued. In response to the persistence command, a transaction with an instance store can be initiated. As part of the transaction, a first representation of the update can be stored in the instance store and a second representation of the update can be stored in a queue. The transaction can be committed after storing the first and second representations. After the transaction is committed, the second representation can be processed to store a third representation of the update in a query store. Application instance state information in the query store can be updated and queried without locking the instance store so that such operations in the query store can be performed asynchronously with operations in the instance store.
    Type: Application
    Filed: July 27, 2010
    Publication date: February 2, 2012
    Applicant: Microsoft Corporation
    Inventors: Nicholas A. Allen, John A. Taylor, Kartik Paramasivam, Dharma Shukla
  • Patent number: 8108868
    Abstract: Optimizing workflow execution. A method includes identifying a completion condition. The completion condition is specified as part of the overall workflow. The method further includes identifying a number of activities that could be executed to satisfy the completion condition. One or more activities from the number of activities is ordered into an execution plan and assigned system resources based on an analysis of activities in the number of activities and the completion condition.
    Type: Grant
    Filed: December 18, 2007
    Date of Patent: January 31, 2012
    Assignee: Microsoft Corporation
    Inventors: Stephen Toub, Dharma Shukla
  • Publication number: 20110320522
    Abstract: A back-end locator service can be utilized to identify a specific computing device, from among multiple computing devices in a domain, that is the most appropriate computing device to handle a particular type of request for data or other resources. The data or resources hosted by the domain can be divided among multiple computing devices. The domain can expose a network-based application program interface where successive requests by a client computing device become more specific as to the data or resources requested. Responses from the computing devices in the domain can, at some point in time, be informed by the back-end locator service and can comprise location-specific resource identifiers. The client computing device can utilize such location specific resource identifiers to direct further communications to the appropriate, specific computing device without having to incur redirection inefficiencies.
    Type: Application
    Filed: June 24, 2010
    Publication date: December 29, 2011
    Applicant: MICROSOFT CORPORATION
    Inventors: Raymond E. Endres, Nishant Gupta, Karthik Raman, Aditya G. Bhandarkar, Farookh Mohammed, Dharma Shukla
  • Patent number: 8024405
    Abstract: Implementing synchronization among threads in a workflow. A memory area stores a plurality of work items in a scheduler queue. The work items are associated with an activity in the workflow, and each work item is associated with a thread. A processor is configured to assign a synchronization handle to each of the work items. The synchronization handle indicates a particular shared resource to be accessed by the work items. A token value is computed for each work item based on the assigned synchronization handle and the work items in a hierarchy in the activity. The work items are sorted in a synchronization queue based on the token value associated with each work item. The processor sequentially executes each of the sorted work items in the synchronization queue to serialize the access to the particular shared resource and effects a synchronous execution of the threads associated with the work items.
    Type: Grant
    Filed: March 30, 2006
    Date of Patent: September 20, 2011
    Assignee: Microsoft Corporation
    Inventors: Dharma Shukla, Bob Schmidt, Akash J. Sagar
  • Publication number: 20100235830
    Abstract: Applications executing on computer systems may execute in a virtual environment, such as a web application executing in a web browser. An application may access the actual computing environment (such as the filesystem), but this accessing may be complicated; e.g., the computing environment may be deployed across many computers and devices, and may be synchronized for offline access via a local cache. A computing environment component may service the complex computing environment (e.g., by managing the cache and retrieving remotely stored data objects) and expose it as a well-organized set of data objects. A virtual environment interface (e.g., a web browser plug-in) may allow applications hosted in the virtual environment to access the computing environment through the computing environment component. Programmatic interfaces may also be implemented to permit such accessing via familiar programming languages and techniques, such as JavaScript libraries exposed to web applications in the web browser.
    Type: Application
    Filed: March 11, 2009
    Publication date: September 16, 2010
    Applicant: Microsoft Corporation
    Inventors: Dharma Shukla, Abhay Parasnis, Raymond Enders, Arash Ghanaie-Sichanie, Israel Hilerio, Farookh Mohammed, Aditya Bhandarkar
  • Publication number: 20100235321
    Abstract: A computer user may use a computing environment comprising a set of computers that respectively feature a web browser having a browser cache containing many types of data objects, including application resources and user-generated data files. However, the contents of a browser cache significantly contribute to the computing environment of a computer, and the computing environments presented by each computer may diverge, providing an inconsistent computing environment. Instead, the contents of browser caches of the computers comprising the computing environment may be synchronized across computers. Additionally, the browser cache may be synchronized with the other data objects of a computing environment (such as relevant portions of the filesystem); the synchronizing may be implemented as an out-of-browser process executing independently of the applications, and even when the browser is not executing; and the synchronization may be exposed through a programmatic access with which web applications may interact.
    Type: Application
    Filed: March 11, 2009
    Publication date: September 16, 2010
    Applicant: Microsoft Corporation
    Inventors: Dharma Shukla, Abhay Parasnis, Raymond Enders, Arash Ghanaie-Sichanie, Israel Hilerio, Farookh Mohammed, Aditya Bhandarkar
  • Publication number: 20100235829
    Abstract: An application executing in a virtual environment, such as a web browser, may be serviced by an application host, such as a webserver that maintains application resources or provides runtime services to the application. However, it may be difficult to configure the application to operate suitably when the application host is unavailable. Techniques for facilitating such operation include the storing of application resources in a computing environment (such as the local file system or a deployable mesh or cloud environment) while also initiating the application within the virtual environment in the context of the application host, which may reduce difficulties with isolation policies imposed by the virtual environment (e.g., cross-domain restrictions imposed by the web browser.) This configuration may promote the servicing of the application alongside other applications and data objects, e.g.
    Type: Application
    Filed: March 11, 2009
    Publication date: September 16, 2010
    Applicant: Microsoft Corporation
    Inventors: Dharma Shukla, Abhay Parasnis, Raymond Enders, Arash Ghanaie-Sichanie, Israel Hilerio, Farookh Mohammed, Aditya Bhandarkar
  • Patent number: 7797403
    Abstract: A system and methods providing the automated configuration management and configuration information communication/deployment for a business process server computing application operating in a distributed computing environment is provided. In an illustrative implementation, a configuration management and configuration information communication/deployment tool operating in a distributed computing environment allows cooperating parties cooperating to operate a business process server computing application to more easily and efficiently update the configuration information of one or components of the business process server computing application responsive to changes in business practice changes between the cooperating parties. In the contemplated implementation, packages are requested by the cooperating parties using the configuration tool.
    Type: Grant
    Filed: July 12, 2002
    Date of Patent: September 14, 2010
    Assignee: Microsoft Corporation
    Inventors: Nagender Vedula, Anand C. Ramanathan, Valentino C. Baltazar, Dharma Shukla, Muralidhara Varma Chiluvuri, Mario Pipkin
  • Patent number: 7743328
    Abstract: A guided process framework includes a process engine, one or more data stores, and one or more user interfaces configured to communicate with the process engine. A user can access a given process instance through any appropriately configured user interface, which contacts the process engine, and which in turn contacts/consults definitions for one or more guided processes at a data store. If the user finishes only part of a given process instance, the process engine can save state corresponding to the progress in the data store. A user can continue work on the process instance through a different user interface (or at a different computer system) by contacting the process engine through the different user interface, and receiving rendering information configured for the different user interface. Thus, the user can stop and start work on a process however desired, and with whatever tools are available at any given time.
    Type: Grant
    Filed: October 12, 2006
    Date of Patent: June 22, 2010
    Assignee: Microsoft Corporation
    Inventors: Israel Hilerio, Shiqiu Guo, Dharma Shukla
  • Patent number: 7739135
    Abstract: Asynchronous fault handling for a workflow. A state automaton for an activity in the workflow is defined. The state automaton includes at least an executing state, a faulting state, and a closed state and classifies an execution lifetime of the activity. The activity is defined to include work items and includes an execution hierarchy for the work items. Each work item includes an operation for executing a portion of the activity. Each work item is transitioned to the executing state. The included operation of transitioned work items is executed in the executing state. One or more of the transitioned work items are identified in response to the faulting event as a function of the execution hierarchy and the included operation. The faulting event is asynchronously handled by transitioning the one or more identified work items to the faulting state while executing the included operation of the remaining transitioned work items.
    Type: Grant
    Filed: March 30, 2006
    Date of Patent: June 15, 2010
    Assignee: Microsoft Corporation
    Inventors: Dharma Shukla, Bob Schmidt, Mayank Mehta, Nathan Talbert, Akash J. Sagar, Karthik Raman
  • Publication number: 20100095272
    Abstract: A data set may be managed by a host that provides access to clients through a protocol, such as a RESTful HTTP interface. A resource script may be expressed according to a script language featuring two types of instructions: data set instructions that correspond to the verbs of the protocol, and flow control instructions that alter the flow of execution of the resource script. At runtime, an execution context for the resource script may be selected as a local execution context (through a local script processor that issues protocol verbs to the host based on the data set operations) or a remote execution context (by sending the resource script to a script processor located on the host.) The runtime selection of data context may be executed without having to reconfigure the resource script, and with an equivalent effect on the data set.
    Type: Application
    Filed: October 14, 2008
    Publication date: April 15, 2010
    Applicant: Microsoft Corporation
    Inventors: Dharma Shukla, Aditya Bhandarkar, Ori Amiga, Raymond Endres, Abhay Parasnis
  • Publication number: 20100094926
    Abstract: Data sets of various types may be accessible through a host according to a protocol, such as a RESTful HTTP interface. Various domains may involve domain-specific processes to be executed as pre-triggers or post-triggers of various protocol requests (e.g., an HTTP GET request specifying a Read operation on an access-restricted data set may involve an authorization operations set that verifies the access privileges of the requester.) A host of the data set may be configured to receive a resource script expressing the operations set in a script language, to store the resource script, and to associated it with at least one data set and at least one verb of the protocol. Upon later receiving a protocol request specifying the verb and the resource, the host may then execute the resource script (as a pre-trigger and/or as a post-trigger) in accordance with the business logic of the domain.
    Type: Application
    Filed: October 14, 2008
    Publication date: April 15, 2010
    Applicant: Microsoft Corporation
    Inventors: Dharma Shukla, Aditya Bhandarkar, Ori Amiga, Raymond Endres, Abhay Parasnis
  • Patent number: 7634763
    Abstract: To provide for multi-language compilation, a protocol is established for compilers. Each of at least two compilers implements the protocol. A framework is developed which discovers compilers which have implemented the protocol. The framework allows multi-language compilation using and coordinating the compliant compilers. The framework is extensible. When a new protocol-compliant compiler is discovered, the language compiled by the new compiler can be compiled using the framework and the capabilities of the protocol-compliant compilers. Similarly, a multi-language extensible design tool may be created using protocol-compliant design tools.
    Type: Grant
    Filed: October 3, 2003
    Date of Patent: December 15, 2009
    Assignee: Microsoft Corporation
    Inventors: Mark Nathan Wain, Dharma Shukla, Mayank Mehta