Patents by Inventor Marco Gagliardi

Marco Gagliardi 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).

  • Patent number: 10506024
    Abstract: Systems, methods and media are shown for equitable job processing of asynchronous messages for multiple tenants in a multi-tenant platform that involve receiving messages of a given message type in an input buffer from at least one front end tier (FET) device, providing messages of the given message type from an output buffer to at least one back end tier (BET) device, determining a priority weight W for each message in the input buffer based on a tenant identifier and message type for the message, and evaluating the priority weight W for the message and delaying the message if the priority weight W is below a priority threshold and moving the message to the output buffer if the priority weight W is not below the priority threshold.
    Type: Grant
    Filed: December 4, 2018
    Date of Patent: December 10, 2019
    Assignee: Zuora, Inc.
    Inventors: Marco Gagliardi, Marc Aronson, Pushkala Pattabhiraman, Dmitri Medvedev, Levon Stepanian
  • Patent number: 10397349
    Abstract: Efficiently identifying transactions processed by a software application, such as a server application is disclosed. In one embodiment, transactions are identified by applying a set of rules to communications between a client and server to determine whether certain patterns are in the communications. For example, the rules may look for some combination of parameters in the transactions. As a particular example, the rules may be used to look for parameters in HTTP requests. The rules are organized in a way that allows efficient processing. For example, the rules may be organized based on the frequency with which the parameters are expected to occur in the transactions and the frequency with which each transaction is expected to occur. The rules may be updated if the expected frequencies deviate from actual frequencies, such that the rules can be organized for more efficient processing.
    Type: Grant
    Filed: January 12, 2017
    Date of Patent: August 27, 2019
    Assignee: CA, Inc.
    Inventors: Marco Gagliardi, Neil Desai
  • Publication number: 20190109893
    Abstract: Systems, methods and media are shown for equitable job processing of asynchronous messages for multiple tenants in a multi-tenant platform that involve receiving messages of a given message type in an input buffer from at least one front end tier (FET) device, providing messages of the given message type from an output buffer to at least one back end tier (BET) device, determining a priority weight W for each message in the input buffer based on a tenant identifier and message type for the message, and evaluating the priority weight W for the message and delaying the message if the priority weight W is below a priority threshold and moving the message to the output buffer if the priority weight W is not below the priority threshold.
    Type: Application
    Filed: December 4, 2018
    Publication date: April 11, 2019
    Applicant: Zuora, Inc.
    Inventors: Marco Gagliardi, Marc Aronson, Pushkala Pattabhiraman, Dmitri Medvedev, Levon Stepanian
  • Patent number: 10148738
    Abstract: Systems, methods and media are shown for equitable job processing of asynchronous messages for multiple tenants in a multi-tenant platform that involve receiving messages of a given message type in an input buffer from at least one front end tier (FET) device, providing messages of the given message type from an output buffer to at least one back end tier (BET) device, determining a priority weight W for each message in the input buffer based on a tenant identifier and message type for the message, and evaluating the priority weight W for the message and delaying the message if the priority weight W is below a priority threshold and moving the message to the output buffer if the priority weight W is not below the priority threshold.
    Type: Grant
    Filed: November 9, 2015
    Date of Patent: December 4, 2018
    Assignee: Zuora, Inc.
    Inventors: Marco Gagliardi, Marc Aronson, Pushkala Pattabhiraman, Dmitri Medvedev, Levon Stepanian
  • Patent number: 9817656
    Abstract: Technology is disclosed herein for managing versions of an Agent associated with an application. Code for the Agent can be updated, and subsequently rolled back without being disruptive to the application. The technology includes running an Agent with an Application in a Java Virtual Machine and rolling back the Agent to use a previous version of code for the Agent while the Application and the Java Virtual Machine continue to run. The rolled back Agent with the Application in the Java Virtual Machine can then be run while the Application and the Java Virtual Machine continue to run.
    Type: Grant
    Filed: August 24, 2012
    Date of Patent: November 14, 2017
    Assignee: CA, Inc.
    Inventor: Marco Gagliardi
  • Patent number: 9798557
    Abstract: Technology is disclosed for updating an Agent. One embodiment comprises running the Agent for the Application while the Application is also running. The Agent is associated with an identified source of code for the Agent. The code for the Agent is updated, and the updated Agent is run with the Application.
    Type: Grant
    Filed: August 24, 2012
    Date of Patent: October 24, 2017
    Assignee: CA, Inc.
    Inventor: Marco Gagliardi
  • Publication number: 20170126823
    Abstract: Efficiently identifying transactions processed by a software application, such as a server application is disclosed. In one embodiment, transactions are identified by applying a set of rules to communications between a client and server to determine whether certain patterns are in the communications. For example, the rules may look for some combination of parameters in the transactions. As a particular example, the rules may be used to look for parameters in HTTP requests. The rules are organized in a way that allows efficient processing. For example, the rules may be organized based on the frequency with which the parameters are expected to occur in the transactions and the frequency with which each transaction is expected to occur. The rules may be updated if the expected frequencies deviate from actual frequencies, such that the rules can be organized for more efficient processing.
    Type: Application
    Filed: January 12, 2017
    Publication date: May 4, 2017
    Applicant: CA, Inc.
    Inventors: Marco Gagliardi, Neil Desai
  • Patent number: 9569326
    Abstract: Efficiently identifying transactions processed by a software application, such as a server application is disclosed. In one embodiment, transactions are identified by applying a set of rules to communications between a client and server to determine whether certain patterns are in the communications. For example, the rules may look for some combination of parameters in the transactions. As a particular example, the rules may be used to look for parameters in HTTP requests. The rules are organized in a way that allows efficient processing. For example, the rules may be organized based on the frequency with which the parameters are expected to occur in the transactions and the frequency with which each transaction is expected to occur. The rules may be updated if the expected frequencies deviate from actual frequencies, such that the rules can be organized for more efficient processing.
    Type: Grant
    Filed: April 15, 2010
    Date of Patent: February 14, 2017
    Assignee: CA, Inc.
    Inventors: Marco Gagliardi, Neil Desai
  • Patent number: 9411616
    Abstract: An agent object can invoke one or more methods of an application object using a helper object. The application object passes a reference to itself to the agent object. The agent object identifies a class loader of the application from the reference. The agent object obtains byte code of a helper class and uses the byte code of the helper class to creating a helper class loader. A parent of the helper class loader is set as the class loader of the application. The helper class loader is used to load the helper class and define an instance of the helper object. Using the helper object, the one or more methods of the application object are invoked by the agent using casting, without having a direct class loader connection with the class loader of the application.
    Type: Grant
    Filed: December 9, 2011
    Date of Patent: August 9, 2016
    Assignee: CA, Inc.
    Inventor: Marco Gagliardi
  • Publication number: 20160134573
    Abstract: Systems, methods and media are shown for equitable job processing of asynchronous messages for multiple tenants in a multi-tenant platform that involve receiving messages of a given message type in an input buffer from at least one front end tier (FET) device, providing messages of the given message type from an output buffer to at least one back end tier (BET) device, determining a priority weight W for each message in the input buffer based on a tenant identifier and message type for the message, and evaluating the priority weight W for the message and delaying the message if the priority weight W is below a priority threshold and moving the message to the output buffer if the priority weight W is not below the priority threshold.
    Type: Application
    Filed: November 9, 2015
    Publication date: May 12, 2016
    Inventors: Marco Gagliardi, Marc Aronson, Pushkala Pattabhiraman, Dmitri Medvedev, Levon Stepanian
  • Patent number: 9037705
    Abstract: A method, system and computer program product are disclosed for routing performance data to compute nodes. According to one aspect of the present disclosure each of a plurality of compute nodes are assigned a topic. Each topic may be associated with a set of calculations. Labeled performance metrics for an application are received. Each performance metric is labeled with a context under which the performance metric was collected. A topic is associated with each of the performance metrics based on the labeled context. Each respective node listens for a topic assigned to it in order to access the performance metrics associated with the assigned topic. Each respective node analyzes the performance metrics associated with the topic assigned to it.
    Type: Grant
    Filed: November 28, 2012
    Date of Patent: May 19, 2015
    Assignee: CA, Inc.
    Inventors: Aaron Kenneth Blackwell, Marco Gagliardi, Benny Tseng, David Tootill, Mark S. LoSacco, Ramana V. Lokavarapu, Gabriel D. Underwood
  • Patent number: 9021448
    Abstract: A technique for detecting patterns in the execution of an application. The technique identifies a sequence of methods which are invoked and obtains information regarding attributes of the methods. For example, attribute information such as a class hierarchy can be obtained from an instrumentation API. A data structure representing a hierarchy of the attributes can be created and compared to one or more reference data structures which describe patterns of interest. A decision can be made to provide instrumentation for the methods having the matching attributes. The decision can consider how frequently the pattern is detected and overhead costs of the instrumentation.
    Type: Grant
    Filed: February 28, 2013
    Date of Patent: April 28, 2015
    Assignee: CA, Inc.
    Inventors: Marco Gagliardi, Andreas Reiss
  • Patent number: 8938729
    Abstract: A two-pass technique for instrumenting an application is disclosed. One pass may be performed statically by analyzing the application and inserting probes while the application is not running. Another pass may be performed dynamically by analyzing data collected by the probes while the application runs to derive metrics for the probes. One or more metrics for each probe may be analyzed to determine whether to dynamically modify the probe. By dynamically modifying the probe, the application does not need to be shut down. Dynamically modifying the probe could include removing the probe from the application or moving the probe to another component (e.g., method) in the application, as examples. For example, the probe might be moved to a component that is either up or down the call graph from the component that the probe is presently in.
    Type: Grant
    Filed: October 12, 2010
    Date of Patent: January 20, 2015
    Assignee: CA, Inc.
    Inventors: David Brooke Martin, Marco Gagliardi, Mark Jacob Addleman
  • Patent number: 8812434
    Abstract: A technique for monitoring software which efficiently communicates transaction trace data, including static and dynamic data, from an agent to a manager is disclosed. A tree data structure describes transactions as a sequence of transaction elements. Each branch may correspond to one type of transaction. The nodes along a branch may be associated with components of monitored software that are invoked to perform the transaction. A provisional branch may be constructed when an agent is unable to initially identify the transaction. Transaction data may be stored in association with the nodes in the provisional branch during the monitoring. After information needed to identify the transaction becomes available to the agent, the provisional branch is updated. The transaction data is reported in response to determining the branch in the tree data structure that matches the provisional branch.
    Type: Grant
    Filed: October 12, 2012
    Date of Patent: August 19, 2014
    Assignee: CA, Inc.
    Inventors: Marco Gagliardi, Martin Tali, Ramesh Mani
  • Patent number: 8782612
    Abstract: A failsafe mechanism for installing and removing temporary instrumentation during a runtime of an application. Initially, an application is configured with a baseline set of instrumented components such as methods. Additional instrumentation is then deployed in the application, such as to diagnose a performance problem. The failsafe mechanism ensures that the additional instrumentation is automatically removed, even when there is an interruption in a communication link to the application, a computing device failure, a software failure, or some other type of failure, which renders it impossible to manually roll back the instrumentation from a remote user interface. The failsafe mechanism can be provided using callbacks between the computing devices which detect when a connection is unexpectedly lost or closed. Termination of one callback can cascade to one or more other callbacks. The instrumentation rollback can involve reloading un-instrumented byte code of the application.
    Type: Grant
    Filed: May 11, 2010
    Date of Patent: July 15, 2014
    Assignee: CA, Inc.
    Inventors: Marco Gagliardi, Yitao Sun
  • Publication number: 20140149575
    Abstract: A method, system and computer program product are disclosed for routing performance data to compute nodes. According to one aspect of the present disclosure each of a plurality of compute nodes are assigned a topic. Each topic may be associated with a set of calculations. Labeled performance metrics for an application are received. Each performance metric is labeled with a context under which the performance metric was collected. A topic is associated with each of the performance metrics based on the labeled context. Each respective node listens for a topic assigned to it in order to access the performance metrics associated with the assigned topic. Each respective node analyzes the performance metrics associated with the topic assigned to it.
    Type: Application
    Filed: November 28, 2012
    Publication date: May 29, 2014
    Applicant: CA, INC.
    Inventors: Aaron Kenneth Blackwell, Marco Gagliardi, Benny Tseng, David Tootill, Mark S. LoSacco, Ramana V. Lokavarapu, Gabriel D. Underwood
  • Publication number: 20140108463
    Abstract: A technique for monitoring software which efficiently communicates transaction trace data, including static and dynamic data, from an agent to a manager is disclosed. A tree data structure describes transactions as a sequence of transaction elements. Each branch may correspond to one type of transaction. The nodes along a branch may be associated with components of monitored software that are invoked to perform the transaction. A provisional branch may be constructed when an agent is unable to initially identify the transaction. Transaction data may be stored in association with the nodes in the provisional branch during the monitoring. After information needed to identify the transaction becomes available to the agent, the provisional branch is updated. The transaction data is reported in response to determining the branch in the tree data structure that matches the provisional branch.
    Type: Application
    Filed: October 12, 2012
    Publication date: April 17, 2014
    Applicant: CA, INC.
    Inventors: Marco Gagliardi, Martin Tali, Ramesh Mani
  • Patent number: 8688729
    Abstract: Transaction-segregated metrics are obtained for component invocations of different transactions of an application. Corresponding tree data structures are maintained by an agent and a manager which describe sequences of invoked components of the different transactions. The start and end of each component are each represented by a node in each branch of the tree data structure. Each transaction is identified by matching a branch to a transaction trace. Gatherers are linked to one or more nodes to collect the transaction-segregated metrics. For example, metrics can be gathered separately for component invocations in different transactions. Metrics can also be gathered together for instances of different components in one or more transactions. A user interface includes a directed graph having vertices connected by edges. Edge portions are visually distinguished from one another based on the metrics of the gatherers. Each edge portion can be associated with one or more of the gatherers.
    Type: Grant
    Filed: August 16, 2011
    Date of Patent: April 1, 2014
    Assignee: CA, Inc.
    Inventors: Marco Gagliardi, Vladimir Umansky
  • Publication number: 20140059527
    Abstract: Technology is disclosed for updating an Agent. One embodiment comprises running the Agent for the Application while the Application is also running. The Agent is associated with an identified source of code for the Agent. The code for the Agent is updated, and the updated Agent is run with the Application.
    Type: Application
    Filed: August 24, 2012
    Publication date: February 27, 2014
    Applicant: CA, INC.
    Inventor: Marco Gagliardi
  • Publication number: 20140059528
    Abstract: Technology is disclosed herein for managing versions of an Agent associated with an application. Code for the Agent can be updated, and subsequently rolled back without being disruptive to the application.
    Type: Application
    Filed: August 24, 2012
    Publication date: February 27, 2014
    Applicant: CA, INC.
    Inventor: Marco Gagliardi