Patents by Inventor Craig H. Stirling

Craig H. Stirling 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: 9317308
    Abstract: A method, executed by a computer, for augmenting a first performance profile with data extracted from a Just-in-Time compiler, the Just-in-Time compiler compiling bytecodes into machine instructions and generating the first performance profile, the bytecodes having an associated original call structure includes: tracking “in-lining” optimizations performed by a Just-in-Time compiler compiling bytecodes into machine instructions; extracting data associated with the tracked “in-lining” optimizations; storing the extracted data in a second profile; and augmenting the first performance profile with the extracted data associated with the tracked “in-lining” optimizations, the extracted data comprising call paths corresponding to the original call structure associated with the bytecodes. A corresponding computer program product and computer system are also disclosed herein.
    Type: Grant
    Filed: February 26, 2015
    Date of Patent: April 19, 2016
    Assignee: International Business Machines Corporation
    Inventors: Fiona M. Crowther, Geza Geleji, Christopher J. Poole, Martin A. Ross, Craig H. Stirling
  • Publication number: 20160099902
    Abstract: Methods and systems are provided for processing messages for retrieval from a message queuing system. The method may be carried out at a message sending component, and may include: receiving requests from multiple clients, where a request includes at least one required record; forming a union of requests, such that a common record of multiple requests is handled once; providing the common record with an associated reference count of requests requiring the record, and associated metadata listing the client requests in the record; sending a record response to a queuing system when processed including the reference count and the metadata listing the client requests; determining when all records in a request have been sent; and notifying a client that the request can be retrieved from the message queuing system, including a response list indicating to the client the identifier of the requested records retained at the message queuing system.
    Type: Application
    Filed: September 28, 2015
    Publication date: April 7, 2016
    Inventors: Fiona M. CROWTHER, Geza GELEJI, Christopher J. POOLE, Martin A. ROSS, Craig H. STIRLING
  • Publication number: 20160050296
    Abstract: Batch compression management of messages. A message being sent to a batch for transmission is intercepted. The message is assigned to a batch pool, in which multiple batch pools are provided as sub-sets of the batch. The assigning of the message to the batch pool is based on a similarity of properties of the message with other messages and determined by looking up the properties in a batch pool mapping database. The message is added to the batch pool or a new batch pool is created for the message. A batch pool of messages is compressed using a dictionary of the properties common to at least some of the messages in the batch pool. The compressed batch pools are transmitted over an input/output channel.
    Type: Application
    Filed: August 11, 2015
    Publication date: February 18, 2016
    Inventors: Fiona M. Crowther, Geza Geleji, Christopher J. Poole, Martin A. Ross, Craig H. Stirling
  • Patent number: 9264310
    Abstract: A method for event processing within a complex event processing environment. The method includes monitoring a plurality of event processing paths of the complex event processing environment. The method includes determining that utilization of server resources in the complex event processing environment has exceeded a threshold value and identifying one or more event processing paths responsible for the high utilization of server resources. The method includes determining that the one or more event processing paths contain an independent rule, wherein an independent rule includes a rule or a rule subset where data for processing of the rule or rule subset is accessible by a client computing device. The method then includes determining the client computing device can perform processing of the independent rule and transferring processing of the independent rule to the client computing device.
    Type: Grant
    Filed: April 12, 2013
    Date of Patent: February 16, 2016
    Assignee: International Business Machines Corporation
    Inventors: David Granshaw, Samuel T. Massey, Daniel J. McGinnes, Martin A. Ross, Richard G. Schofield, Craig H. Stirling
  • Publication number: 20160041755
    Abstract: A method is provided for deforming one or more touch screen activation targets associated with respective representations of items displayed on a display of a touch screen device. The method includes: displaying one or more representations corresponding to each of the one or more items displayed on a display of a touch screen device; providing, for each displayed representation, an activation target defining boundaries within which a touch input is processed as corresponding to selection of the corresponding item; receiving information indicating the orientation or movement of the touch screen device; and responsive to the received orientation or movement information, deforming the activation target of the item with respect to the representation of the item. The items may be a plurality of keys forming a virtual keyboard; and each of the representations may be one of the plurality of keys on the display of the touch screen device.
    Type: Application
    Filed: July 31, 2015
    Publication date: February 11, 2016
    Inventors: Fiona M. CROWTHER, Geza GELEJI, Christopher J. POOLE, Martin A. ROSS, Craig H. STIRLING
  • Patent number: 9244813
    Abstract: Software is traced using Extensible Markup Language (XML) messages. A trace command, which includes one or more specified fields to be traced and a trace output file location, is defined. A determination is made as to whether the trace command is for a full trace or a differential trace, where the full trace traces all the one or more specified fields, and the differential trace traces specified fields only in response to the specified fields having a value that has changed during processing. The trace command is added to an XML input message for propagation through one or more products. Trace data is collected from the full trace or the differential trace for defined fields at each product, and then stored at the trace output file location.
    Type: Grant
    Filed: January 8, 2015
    Date of Patent: January 26, 2016
    Assignee: International Business Machines Corporation
    Inventors: David Granshaw, Samuel T. Massey, Daniel J. McGinnes, Martin A. Ross, Richard G. Schofield, Craig H. Stirling
  • Publication number: 20150378757
    Abstract: A method of optimizing software source code, where the source code is for execution as compiled bytecode using a just-in-time compiler. The source code is compiled to generate corresponding compiled bytecode. The bytecode is then executed using a just-in-time compiler. Run-time optimization actions performed by the just-in-time compiler during execution of the bytecode are determined, and analysed to determine corresponding optimization data for the source code.
    Type: Application
    Filed: June 10, 2015
    Publication date: December 31, 2015
    Inventors: Fiona M. Crowther, Geza Geleji, Christopher J. Poole, Martin A. Ross, Craig H. Stirling
  • Publication number: 20150309815
    Abstract: A method, executed by a computer, for augmenting a first performance profile with data extracted from a Just-in-Time compiler, the Just-in-Time compiler compiling bytecodes into machine instructions and generating the first performance profile, the bytecodes having an associated original call structure includes: tracking “in-lining” optimizations performed by a Just-in-Time compiler compiling bytecodes into machine instructions; extracting data associated with the tracked “in-lining” optimizations; storing the extracted data in a second profile; and augmenting the first performance profile with the extracted data associated with the tracked “in-lining” optimizations, the extracted data comprising call paths corresponding to the original call structure associated with the bytecodes. A corresponding computer program product and computer system are also disclosed herein.
    Type: Application
    Filed: February 26, 2015
    Publication date: October 29, 2015
    Inventors: Fiona M. Crowther, Geza Geleji, Christopher J. Poole, Martin A. Ross, Craig H. Stirling
  • Publication number: 20150212925
    Abstract: Software is traced using Extensible Markup Language (XML) messages. A trace command, which includes one or more specified fields to be traced and a trace output file location, is defined. A determination is made as to whether the trace command is for a full trace or a differential trace, where the full trace traces all the one or more specified fields, and the differential trace traces specified fields only in response to the specified fields having a value that has changed during processing. The trace command is added to an XML input message for propagation through one or more products. Trace data is collected from the full trace or the differential trace for defined fields at each product, and then stored at the trace output file location.
    Type: Application
    Filed: January 8, 2015
    Publication date: July 30, 2015
    Inventors: DAVID GRANSHAW, SAMUEL T. MASSEY, DANIEL J. MCGINNES, MARTIN A. ROSS, RICHARD G. SCHOFIELD, CRAIG H. STIRLING
  • Publication number: 20150163122
    Abstract: A messaging system comprises a plurality of connected components and including a schema defining fields for messages, at least one field defined as non-essential. A mechanism for operating the messaging system comprises the steps of collecting one or more performance metrics for one or more components of the messaging system, determining that at least one performance metric has crossed a predetermined threshold, informing one or more components of the messaging system that a surge in workload has occurred, and the informed components removing non-essential fields from transmitted messages and/or not processing non-essential fields from received messages.
    Type: Application
    Filed: October 7, 2014
    Publication date: June 11, 2015
    Inventors: David Granshaw, Samuel T. Massey, Daniel J. McGinnes, Martin A. Ross, Richard G. Schofield, Craig H. Stirling
  • Publication number: 20150161098
    Abstract: A computer-implemented method of parsing a message comprising a sequence of data fields, the method comprising evaluating program code for processing the parsed message to identify a first set of data fields of the message that are referenced in said program code; identifying the boundaries of the data fields in a schema defining the format of said message; identifying a second set of data fields in said schema related to the first set of data fields by reference, said second set further including the first set; and sequentially parsing the message using the identified data field boundaries, wherein said parsing step comprises skipping data fields in said sequence that precede the first data field belonging to the second set. A computer program product comprising program code for implementing this method and a data processing system adapted to implement this method are also disclosed.
    Type: Application
    Filed: October 11, 2014
    Publication date: June 11, 2015
    Inventors: David Granshaw, Samuel T. Massey, Daniel J. McGinnes, Martin A. Ross, Richard G. Schofield, Craig H. Stirling
  • Patent number: 8924932
    Abstract: A computer accesses a stack data and a source code of a program. The computer searches for a first change made to the program, wherein the first change is one of a change to a method of the program, a change to a class of the program, a change to a method that is invoked by the program, or a change to a class containing a method that is invoked by the program. The computer identifies the first change that was made to the program and determines the probability that the identified first change caused one or both of an error and a regression. The computer generates a ranked list of identified changes based, at least in part, on the probability that the identified first change caused one or both of an error and a regression.
    Type: Grant
    Filed: April 11, 2013
    Date of Patent: December 30, 2014
    Assignee: International Business Machines Corporation
    Inventors: David Granshaw, Samuel T. Massey, Daniel J. McGinnes, Martin A. Ross, Richard G. Schofield, Craig H. Stirling
  • Publication number: 20140366032
    Abstract: Event processing is prioritized based on system workload. A time constraint attribute is defined in an event rule. The event rule uses one or more events. An event processing system is monitored to determine when the system is under a predefined level of stress. If the system is determined to be under the predefined level of stress, the time constraint attribute in the event rule is used to establish when the processing of a received event used in an event rule must be carried out.
    Type: Application
    Filed: June 5, 2014
    Publication date: December 11, 2014
    Inventors: David Granshaw, Samuel T. Massey, Daniel J. McGinnes, Martin A. Ross, Richard G. Schofield, Craig H. Stirling
  • Patent number: 8875149
    Abstract: Resource constraints for a group of individual application products to be configured for shared resource usage of at least one shared resource within a single operating system instance are analyzed by a resource allocation module. An individual resource allocation for each of the group of individual application products is determined based upon the analyzed resource constraints for the group of individual application products. The determined individual resource allocation for each of the group of individual application products is implemented within the single operating system instance using local inter-product message communication bindings by the single operating system instance.
    Type: Grant
    Filed: March 29, 2012
    Date of Patent: October 28, 2014
    Assignee: International Business Machines Corporation
    Inventors: Paul Slater, Brian Stewart, Craig H. Stirling, Ian T. Stirling
  • Patent number: 8875148
    Abstract: Resource constraints for a group of individual application products to be configured for shared resource usage of at least one shared resource within a single operating system instance are analyzed by a resource allocation module. An individual resource allocation for each of the group of individual application products is determined based upon the analyzed resource constraints for the group of individual application products. The determined individual resource allocation for each of the group of individual application products is implemented within the single operating system instance using local inter-product message communication bindings by the single operating system instance.
    Type: Grant
    Filed: June 14, 2011
    Date of Patent: October 28, 2014
    Assignee: International Business Machines Corporation
    Inventors: Paul Slater, Brian Stewart, Craig H. Stirling, Ian T. Stirling
  • Publication number: 20140317172
    Abstract: A system for workflow placement in a computer system wherein the performance of a system processing a workflow is monitored against one or more performance measures. One or more logic elements from the workflow are delegated for subsequent processing to other systems in the computer system in response to one or more of the one or more performance measures being within a predetermined range.
    Type: Application
    Filed: March 20, 2014
    Publication date: October 23, 2014
    Applicant: International Business Machines Corporation
    Inventors: David Granshaw, Samuel T. Massey, Daniel J. McGinnes, Martin A. Ross, Richard G. Schofield, Craig H. Stirling
  • Publication number: 20140310688
    Abstract: A computer accesses a stack data and a source code of a program. The computer searches for a first change made to the program, wherein the first change is one of a change to a method of the program, a change to a class of the program, a change to a method that is invoked by the program, or a change to a class containing a method that is invoked by the program. The computer identifies the first change that was made to the program and determines the probability that the identified first change caused one or both of an error and a regression. The computer generates a ranked list of identified changes based, at least in part, on the probability that the identified first change caused one or both of an error and a regression.
    Type: Application
    Filed: April 11, 2013
    Publication date: October 16, 2014
    Applicant: International Business Machines Corporation
    Inventors: David Granshaw, Samuel T. Massey, Daniel J. McGinnes, Martin A. Ross, Richard G. Schofield, Craig H. Stirling
  • Publication number: 20140310331
    Abstract: A method for event processing within a complex event processing environment. The method includes monitoring a plurality of event processing paths of the complex event processing environment. The method includes determining that utilization of server resources in the complex event processing environment has exceeded a threshold value and identifying one or more event processing paths responsible for the high utilization of server resources. The method includes determining that the one or more event processing paths contain an independent rule, wherein an independent rule includes a rule or a rule subset where data for processing of the rule or rule subset is accessible by a client computing device. The method then includes determining the client computing device can perform processing of the independent rule and transferring processing of the independent rule to the client computing device.
    Type: Application
    Filed: April 12, 2013
    Publication date: October 16, 2014
    Applicant: International Business Machines Corporation
    Inventors: David Granshaw, Samuel T. Massey, Daniel J. McGinnes, Martin A. Ross, Richard G. Schofield, Craig H. Stirling
  • Publication number: 20140310694
    Abstract: A computer captures a thread state data of a first program. The computer generates a second program by applying a first program patch to the first program. The computer inserts additional code into a source code of the second program. The computer executes a first performance test using the second program and the inserted additional code. The computer monitors a first status of the second program and the inserted additional code that are under the first performance test. The computer determines a degree that a first deadlock state was prevented during the first performance test. The computer generates a first message based, at least in part, on the determined degree that the first deadlock state was prevented during the first performance test.
    Type: Application
    Filed: April 11, 2013
    Publication date: October 16, 2014
    Applicant: International Business Machines Corporation
    Inventors: David Granshaw, Samuel T. Massey, Daniel J. McGinnes, Martin A. Ross, Richard G. Schofield, Craig H. Stirling
  • Publication number: 20140129584
    Abstract: A method, system, and/or computer program product handles a query generated by a user of one of multiple local network devices that are coupled to a network. Multiple system queries are autonomously issued, by a computer that is coupled to the network, requesting states of the local network devices. Query statements, responsive to the system queries and being sent to a wide area network search engine, are intercepted. A natural language query, which is a logical query that is answered by one of the multiple query statements, is generated from one of the multiple query statements. An unstructured query, from a user, about a state of a particular device is received. The unstructured query from the user is compared with the natural language query in order to determine if a match between the query from the user with the natural language query exceeds a predetermined threshold value.
    Type: Application
    Filed: October 9, 2013
    Publication date: May 8, 2014
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: ELIZABETH J. MAPLE, RICHARD W. PILOT, MARTIN A. ROSS, CRAIG H. STIRLING, IAN T. STIRLING