Patent application number | Description | Published |
20080215450 | REMOTE PROVISIONING OF INFORMATION TECHNOLOGY - Remote provisioning of an IT network and/or associated services is provided. Hardware, software, service and/or expertise can be moved from on-premise to a remote location (e.g., central, distributed . . . ). Accordingly, at least a large degree computation can be moved to the center to exploit economies of scale, among other things. In such an architecture, computational resources (e.g., data storage, computation power, cache . . . ) can be pooled, and entities can subscribe to a particular level of resources related to a private entity IT network. | 09-04-2008 |
20080215603 | SERIALIZATION OF RUN-TIME STATE - The claimed subject matter provides a system and/or a method that facilitates re-locating a web application associated with a network service utilizing a portion of serialized data. The network service can be any collection of resources that are maintained by a party (e.g., third-party, off-site, etc.) and accessible by an identified user over a network (e.g., WAN, Internet, etc.). An interface component can receive a portion of serialized data with transparent structure related to an application specification. A hydrate component can create a web application independent of a network service based at least in part upon the serialized data, the web application has state within the network service. | 09-04-2008 |
20080270234 | Rewarding influencers - Embodiments include a system, a device an apparatus, a method, and a computer program product. An embodiment provides an influence evaluation method. The method includes receiving data indicative of a person accessing at least one of a first network-available electronic content having a first-electronic-content portion or a second network-available electronic content having a second-electronic-content portion. The method also includes receiving data indicative of an involvement between the person and a third party. The method further includes facilitating delivered of a benefit to an owner of the first-electronic content or an owner of the second electronic content in response to an assessed influence bad the first-electronic-content portion and/or the second-electronic-content portion on the involvement between the person and the third-party. | 10-30-2008 |
20080270416 | Determining influencers - Embodiments include a system, a device, an apparatus, a method, and a computer program product. An embodiment provides an influencer discovery method includes receiving at least one of content site data, computing device data, search engine site data, or beneficiary site data. The method also includes determining a correlation between the communication between the content site and the computing device responsive to a human user input; and the communication between the computing device responsive to a human user input and the beneficiary site. | 10-30-2008 |
20080270426 | Collecting influence information - Embodiments include a system, a device, an apparatus, a method, and a computer program product. A method of reporting influence on a person includes collecting data indicative of the person accessing electronic content over a computer network using the user computing device. The method also includes generating a user influence report by transforming the collected data into information indicative of events associatable with the person accessing the electronic content over a computer network using the user computing device. The method further includes transmitting data indicative of the user influence report via a network, the user influence report being receivable by a site operable to facilitate delivery of a benefit to an owner of the electronic content. | 10-30-2008 |
20080270473 | Determining an influence on a person by web pages - Embodiments include a system, a device, an apparatus, a method, and a computer program product. A user-side influence reporting method includes collecting data indicative of a computing device environment of a user-side computing device facilitating a person accessing Web pages and facilitating the person communicating with a third-party via a computer network. The method also includes transforming the collected data to indicate an involvement between the third-party and the person. The method further includes transforming the collected data to indicate the Web pages accessed by the person. The method also includes correlating the indicated involvement between the third-party and the person with the indicated Web pages accessed by the person. The method further includes outputting from the user-side computing device data indicative of the correlation. | 10-30-2008 |
20080270474 | Collecting influence information - Embodiments include a system, a device, an apparatus, a method, and a computer program product. A method of reporting influence on a person includes collecting data indicative of the person accessing electronic content over a computer network using the user computing device. The method also includes generating a user influence report by transforming the collected data into information indicative of events associatable with the person accessing the electronic content over a computer network using the user computing device. The method further includes transmitting data indicative of the user influence report via a network, the user influence report being receivable by a site operable to facilitate delivery of a benefit to an owner of the electronic content. | 10-30-2008 |
20080270476 | Rewarding independent influencers - A method embodiment includes receiving data indicative of a person accessing at least one of a first network-available electronic content or a second network-available electronic content. Also, receiving data indicative of an involvement with respect to possible matters of interest between the person and a third-party. The involvement being independent of the person activating a link to a site owned by the third-party that is included in the first network-available electronic content or in the second network available electronic content. Further, assessing a behavioral influence by the first network-available electronic content and/or the second network-available electronic content on the indicated involvement with respect to the possible matters of interest between the person and a third-party. Also, facilitating delivery of a benefit to an owner of the first network-available electronic content and/or an owner of the second network-available electronic content in response to the assessed behavioral influence. | 10-30-2008 |
20080270551 | Rewarding influencers - Embodiments include a system, a device, an apparatus, a method, and a computer program product. An embodiment provides an influence evaluation method. The method includes receiving data indicative of a person accessing at least one of a first network-available electronic content having a first-electronic-content portion or a second network-available electronic content having a second-electronic-content portion. The method also includes receiving data indicative of an involvement between the person and a third party. The method further includes facilitating delivery of a benefit to an owner of the first-electronic content or an owner of the second electronic content in response to an assessed influence by the first-electronic-content portion and/or the second-electronic-content portion on the involvement between the person and the third-party. | 10-30-2008 |
20080270552 | Determining influencers - Embodiments include a system, a device, an apparatus, a method and a computer program product. An embodiment provides an influencer discovery method includes receiving at least one of content site data, computing device data, search engine site data, or beneficiary site data. The method also includes determining a correlation between the communication between the content site and the computing device responsive to a human user input; and the communication between the computing device responsive to a human user input and the beneficiary site. | 10-30-2008 |
20080270620 | Reporting influence on a person by network-available content - Embodiments include a system, a device, an apparatus, a method, and a computer program product. A method includes assessing a behavioral influence with respect to possible matters of interest to other parties including a third-party by network-available content on a person accessing the network-available content. The method also includes generating a user influence report responsive to the assessed behavioral influence. At least one characteristic of the user influence report includes differentiating between (i) a behavioral influence on the person resulting from the person activating a link included in the network-available content to another network-available content owned by the third-party, and (ii) another behavioral influence on the person. The method further includes transmitting information derived from the user influence report. | 10-30-2008 |
20090030772 | Rewarding independent influencers - A method embodiment includes receiving data indicative of a person accessing at least one of a first network-available electronic content or a second network-available electronic content. Also, receiving data indicative of an involvement with respect to possible matters of interest between the person and a third-party. The involvement being independent of the person activating a link to a site owned by the third-party that is included in the first network-available electronic content or in the second network available electronic content. Further, assessing a behavioral influence by the first network-available electronic content and/or the second network-available electronic content on the indicated involvement with respect to the possible matters of interest between the person and a third-party. Also, facilitating delivery of a benefit to an owner of the first network-available electronic content and/or an owner of the second network-available electronic content in response to the assessed behavioral influence. | 01-29-2009 |
20090083615 | Spreadsheet Fields in Text - A system architecture integrates spreadsheet functionality into text. The architecture allows insertion of discrete individual fields, referred to as “free floating fields”, inline with normal textual sentences. In an HTML document, for example, the free floating fields are elements constructed along with text elements and rendered together as an integrated document. Once rendered, the free floating fields present contents that resemble normal text consistent with the surrounding text. The free floating fields offer spreadsheet functionality, including the ability to handle complex formulas, reference values in a separate free floating field or table, and automatically recalculate the formulas when a source value changes. | 03-26-2009 |
20090094105 | CONTENT EMBEDDED TOOLTIP ADVERTISING - Contextual advertisements embedded within content having tooltip type display functionality are provided where content can be evaluated for possible points for insertion of the advertisements. The content can be evaluated against a list of trigger points indicating advertisement should be inserted along with instructions to embed the advertisements. Using this information, the content can be modified to embed appropriate advertising. Upon returning the content, a viewer thereof can view the content normally, but certain events with respect to the trigger points can cause tooltip type display of the advertisement (such as hovering a cursor over the trigger point). In this regard, trigger points, such as keywords, having associated pop-up advertisements can be underlined or otherwise identified. | 04-09-2009 |
20090094260 | IMAGE-BASED WISH LIST POPULATION - Wish list creation and population is provided where users can associate one or more images as items in a wish list. To this end, an image can be provided, such as a photograph taken by the user, and analyzed to locate matching items and information related thereto. In this regard, the user can observe and desire to purchase an item without knowledge of specifics about the item. The user can then take a picture of the item and tag the picture for upload to their wish list. Matching can be provided to identify one or more items in the picture to facilitate retrieval of information related to the items. Also, items can be selected based on discerned characteristics of the picture in a design/fashion consultant context. | 04-09-2009 |
20090157570 | ROLE/PERSONA BASED APPLICATIONS - The claimed subject matter provides a system and/or a method that facilitates managing data within an environment. An interface component can receive a role-based model reflective of at least one position within an environment, wherein the environment includes two or more entities within an organized hierarchy. The role-based model can include at least one role assigned to an entity in which the assignment is indicative of the position of the entity within the environment. A role component can provide data access to the entity within the environment in accordance with the role assigned to such entity. | 06-18-2009 |
20090171649 | USER-DEFINED APPLICATION MODELS - A system (and corresponding method) that employs wiki-type models to consider authoring rather than composition in an application environment is provided. The innovation enables collaborative information and templates to be used to enhance quality, productivity, etc. within a software application environment. These wiki-type models can provide features, functions and benefits related to, but not limited to, general information, auto-fills, formats, schema, conversions, preferences, etc. | 07-02-2009 |
20090177527 | Rewarding influencers - The present disclosure relates generally to rewarding influencers in a Web 2.0 environment. More specifically, in some implementations, an influence of an electronically-accessed content on an involvement between an accessor and a third party is assessed. In further implementations, a provider of the electronically accessed content is rewarded based on the assessed influence. | 07-09-2009 |
20090248493 | Systems for rewarding influences - The present disclosure relates generally to systems for rewarding influencers in a Web 2.0 environment. More specifically, in some implementations, a system is configured to assess an influence of an electronically-accessed content on an involvement between an accessor and a third party, and may also be configured to facilitate a reward to one or more influencers based on one or more assessed influences | 10-01-2009 |
20090259533 | SECONDARY MARKET FOR CONSUMER REWARDS - System(s) and method(s) are provided to trade compensation credit(s) in a customer price incentive scheme funded through advertisement. A secondary market for rewards is established through advertisement spend from a set of disparate category advertisers (e.g., brand advertisers and product advertisers). Market liquidity is injected through an advertisement component that directs a portion of advertisement spend to issue tradable compensation credit(s) at a initial offering price. A trade platform facilitates commercialization of compensation credit(s) among a set of registered advertisers: A regulatory component provides governance and establishes pricing of traded compensation credit(s), while a brokerage component facilitates negotiation among traders. Disparate advertisers can be joined for trading based at least in part on advertiser intelligence. Trade compensation credits can be utilized, for example, to directly compensate a consumer; increase advertisement; establish an exclusivity advertiser club; or to engage a third-party serviced provider. | 10-15-2009 |
20090259537 | ADVERTISEMENT-FUNDED SOFTWARE - Systems and methods are provided to directly compensate an agent that utilizes a software application in exchange for the agent's intent in using the application, and for displaying intent-driven advertisement to the agent. Intent is inferred through information received from the agent, when utilizing the software application, according to an agent's privacy settings. Based on agent's intent, an advertisement is displayed and an associated software-related compensation is provided to the agent. Compensation accumulation profiles can be established based at least in part on privacy settings. Compensation possesses monetary value and can be directed towards (i) increasing software functionality, (ii) providing credits for training and literature related to the utilization of the application, or (iii) servicing a device in which the application is executed. The monetary aspect of the software-related compensation originated in intent-driven advertisement effectively funds the agent's software application. | 10-15-2009 |
20090265242 | PRIVACY-CENTRIC AD MODELS THAT LEVERAGE SOCIAL GRAPHS - The claimed subject matter relates to an architecture that can mitigate privacy concerns in connection with ad targeting or data collection. In particular, architecture can be included in a personal mobile communication device such as a cell phone. During communication transactions between the host device and a peer device, shared information can be extracted either from content included in the communication or from metadata. Based upon the shared information, a social graph maintained on the host device can be updated. In addition, the host device can receive a large set of ads and select or tailor a custom ad from the set based upon the social graph. | 10-22-2009 |
20090271255 | COMMERCE AND ADVERTISEMENT BASED ON EXPLICIT CONSUMER'S VALUE COST PROPOSITION - System(s) and method(s) are provided to drive commercial transactions and advertisement based on explicit consumer's value-cost propositions. Value-cost propositions express consumer's desires with respect to parameters related to a commercial transaction product price point, sensitivity to price and time, preferred shipping mechanism(s), contractor reputation, supply chain utilized by contractor, and so on. A component registers consumers to submit their value-cost propositions, and aggregates the information so conveyed to generate a market latent demand. The latter is conveyed to a set of advertisers, who respond to the latent demand by (i) adjusting their cost-profit propositions or (ii) countering the consumer's value-cost propositions. Commerce driven through explicit value-cost propositions can be effected within an intent-compensation user price incentive scheme, wherein compensation is issued through advertisement in response to consumer's conveyed intent, which includes value-cost propositions, in engaging in a commercial transaction with a service platform. | 10-29-2009 |
20090271257 | MODEL FOR EARLY ADOPTION AND RETENTION OF SOURCES OF FUNDING TO FINANCE AWARD PROGRAM - System(s) and method(s) are provided to drive early adoption and retention of disparate sources of funding and financing an award program, with application to a consumer compensation scheme subsidized through advertisement revenue. A component that manages advertisement revenue, or received funds, allocates a portion of revenue to subsidize a rebate program, or award program, for enrolled advertisers, or sources of funding, from a universe of advertisers. Rebate or award funds are provided to enrolled advertisers on an exclusivity based for a specific period of time, after which funds are transferred to a commonly accessible account. The subsidized nature of the awarded compensation funds and their time sensitivity drive advertiser enrollment and retention and ensures consumers are aggressively compensated. In an aspect, the subsidized rebate program can be exploited to directly compensate a consumer online or offline in exchange for the consumer's intent in engaging with a service platform. | 10-29-2009 |
20090309891 | AVATAR INDIVIDUALIZED BY PHYSICAL CHARACTERISTIC - An avatar generator for a virtual environment reflects a physiological characteristic of the user, injecting a degree of reality into the capabilities or appearance. Thereby, many of the incentives of the real world are replicated in a virtual environment. Physiological data that reflect a degree of health of the real person can be linked to rewards of capabilities of a gaming avatar, an amount of time budgeted to play, or a visible indication. Thereby, people are encouraged to exercise. Physiological data that reflect the health and perhaps also mood also improve social interaction in virtual environments. People seeking to meet and become acquainted with particular types of people are not thwarted by the artificiality of avatars. The physiological data can be gleaned from a third party health data collection repository, a healthcare smart card, a real-time physiological sensor (e.g., blood pressure, heart rate, blood glucose, peak flow, pedometer, etc.) | 12-17-2009 |
20090313235 | SOCIAL NETWORKS SERVICE - A social network service provides trusted, timely and managed communications between a querying individual and an informed individual by optimizing distribution of queries to reflect a requisite amount of expertise necessary (i.e., interest, background, education, demographic attribute, etc.). Those candidate recipients with a rare level of expertise or specialization can specify a desired level of participation, which is respected. In order not to exhaust their availability, those who are less qualified or part of a larger demographic category appropriate for the query are selected to handle queries of lesser difficulty or less specialization. Anonymity if desired by the recipient party can be supported by increasing the pool of candidate recipients so that the querying party cannot reasonably ascertain who is responding. Timeliness of response, as well as satisfaction in the response, is tracked in order to affect redirection of a query. | 12-17-2009 |
20090326937 | USING PERSONALIZED HEALTH INFORMATION TO IMPROVE SPEECH RECOGNITION - The claimed subject matter provides systems and/or methods that improve speech recognition in the medical context. The system includes mechanisms that access personal health records associated with patients and/or analyze the personal health records for current diseases and/or past ailments. The system thereafter acquires attributes associated with the diseases or ailments and dynamically populates a speech model with these attributes. The speech model utilizes the attributes associated with the diseases or ailments to more accurately transcribe a voice pattern into text that can be projected on a visual display or persisted to a storage device. | 12-31-2009 |
20100318374 | Determining influencers - The present disclosure relates generally to determining influencers in a Web 2.0 environment. More specifically, in some implementations, an influence of an electronically-accessed content on an involvement between an accessor and a third party is determined. In further implementations, a provider of the electronically accessed content is rewarded based on the assessed influence. | 12-16-2010 |
20110282837 | VIRTUALLY INFINITE RELIABLE STORAGE ACROSS MULTIPLE STORAGE DEVICES AND STORAGE SERVICES - A logical file system is described that distributes copies of files across various different physical storage resources yet provides a consistent view to the user of his or her data, regardless of which machine the user is accessing the files from, and even when the user's computer is offline. The distributed file system uses smart data redundancy to enable a virtually infinite amount of storage as long as additional storage resources are made available to the distributed file system. The result is a reliable storage system that does not necessarily tie the user's data to the user's particular computer. Instead, the user's data is associated with the user—for life—or for however long the user would like the data to be maintained, regardless of whether the user's computer or data storage components are replaced or destroyed. | 11-17-2011 |
20110282954 | Content Presentation Based On User Preferences - Architecture is provided that facilitates user-controlled access to user profile information. A user is allowed to selectively expose (or mask) portions of his/her profile to third parties. Additionally, advertisers and/or content providers can offer incentives or enticement in response to the acceptance of which a user exposes larger portions of their profile. The architecture comprises a system that facilitates profile management utilizing a profile component that facilitates creation and storage of an electronic profile of a user, and a control component under control of the user for controlling access to the profile. Machine learning and reasoning is provided to make inferences and automate aspects thereof. | 11-17-2011 |
20120130820 | PROVIDING ALTERNATIVE CONTENT IN A WINDOWED ENVIRONMENT - Embodiments of the invention relate to an architecture or extension to a window manager. In particular, the extension can provide for a window rotation feature that can be exposed as a rotate button. Additionally or alternatively, the rotation feature can be activated based upon a diverse set of conditions, events, and/or commands. Upon activation of the rotation feature, the window manager can rotate a window about an axis to expose a secondary surface that can be populated with alternative content that is distinct from the content of the primary surface of the window. In addition, the architecture provides techniques for identifying both double-sided graphical objects and potentially double-sided objects. | 05-24-2012 |
20120222019 | Control Flow Graph Operating System Configuration - An operating system may be configured using a control flow graph that defines relationships between each executable module. The operating system may be configured by analyzing an application and identifying the operating system modules called from the application, then building a control flow graph for the configuration. The operating system may be deployed to a server or other computer containing only those components identified in the control flow graph. Such a lightweight deployment may be used on a large scale for datacenter servers as well as for small scale deployments on sensors and other devices with little processing power. | 08-30-2012 |
20120222043 | Process Scheduling Using Scheduling Graph to Minimize Managed Elements - A process scheduler may use a scheduling graph to determine which processes, threads, or other execution elements of a program may be scheduled. Those execution elements that have not been invoked or may be waiting for input may not be considered for scheduling. A scheduler may operate by scheduling a current set of execution elements and attempting to schedule a number of generations linked to the currently executing elements. As new elements are added to the scheduled list of execution elements, the list may grow. When the scheduling graph indicates that an execution element will no longer be executed, the execution element may be removed from consideration by a scheduler. In some embodiments, a secondary scan of all available execution elements may be performed on a periodic basis. | 08-30-2012 |
20120227040 | Hybrid Operating System - A hybrid operating system may allocate two sets of resources, one to a first operating system and one to a second operating system. Each operating system may have a memory manager, process scheduler, and other components that are aware of each other and cooperate. The hybrid operating system may allow one operating system to provide one set of services and a second operating system to provide a second set of services. For example, the first operating system may have monitoring applications, user interfaces, and other services, while the second operating system may be a lightweight, high performance operating system that may not provide the same services as the first operating system. | 09-06-2012 |
20120233592 | Meta Garbage Collection for Functional Code - An execution environment for functional code may treat application segments as individual programs for memory management. A larger program of application may be segmented into functional blocks that receive an input and return a value, but operate without changing state of other memory objects. The program segments may have memory pages allocated to the segments by the operating system as other full programs, and may deallocate memory pages when the segments finish operating. Functional programming languages and imperative programming languages may define program segments explicitly or implicitly, and the program segments may be identified at compile time or runtime. | 09-13-2012 |
20120233601 | Recompiling with Generic to Specific Replacement - Executable code may be recompiled so that generic portions of code may be replaced with specific portions of code. The recompilation may customize executable code for a specific use or configuration, making the code lightweight and executing faster. The replacement mechanism may replace variable names with fixed values, replace conditional branches with only those branches which are known to be executed, and may eliminate executable code portions that are not executed. The replacement mechanism may comprise identifying known values defined in the executable code for variables, and replacing those variables with the constant value. Once the constants are substituted, the code may be analyzed to identify branches that may be evaluated using the constant values. Those branches may be reformed using the constant value and the rest of the conditional code that may not be accessed may be removed. | 09-13-2012 |
20120268489 | PROVIDING ALTERNATIVE CONTENT IN A WINDOWED ENVIRONMENT - Embodiments of the invention relate to an architecture or extension to a window manager. In particular, the extension can provide for a window rotation feature that can be exposed as a rotate button. Additionally or alternatively, the rotation feature can be activated based upon a diverse set of conditions, events, and/or commands. Upon activation of the rotation feature, the window manager can rotate a window about an axis to expose a secondary surface that can be populated with alternative content that is distinct from the content of the primary surface of the window. In addition, the architecture provides techniques for identifying both double-sided graphical objects and potentially double-sided objects. | 10-25-2012 |
20120317371 | Usage Aware NUMA Process Scheduling - Processes may be assigned to specific processors when memory objects consumed by the processes are located in memory banks closely associated with the processors. When assigning processes to threads operating in a multiple processor NUMA architecture system, an analysis of the memory objects accessed by a process may identify processor or group of processors that may minimize the memory access time of the process. The selection may take into account the connections between memory banks and processors to identify the shortest communication path between the memory objects and the process. The processes may be pre-identified as functional processes that make little or no changes to memory objects other than information passed to or from the processes. | 12-13-2012 |
20120317389 | Allocating Heaps in NUMA Systems - Processes may be assigned heap memory within locally accessible memory banks in a multiple processor NUMA architecture system. A process scheduler may deploy a process on a specific processor and may assign the process heap memory from a memory bank associated with the selected processor. The process may be a functional process that may not change state of other memory objects, other than the input or output memory objects defined in the functional process. | 12-13-2012 |
20120317421 | Fingerprinting Executable Code - Executable code may be fingerprinted by inserting NOP codes into the executable code in a pattern that may reflect a fingerprint. The NOP codes may be single instructions or groups of instructions that perform no operation. A dictionary of NOP codes and their corresponding portion of a fingerprint may be used to create a series of NOP codes which may be embedded into executable code. The fingerprinted executable code may be fully executable and the presence of the NOP codes may not be readily identifiable. The fingerprinting mechanism may be used to authenticate executable code in various scenarios. | 12-13-2012 |
20120324454 | Control Flow Graph Driven Operating System - An operating system may be reconfigured during execution by adding new components to a control flow graph defining a system's executable flow. The operating system may use a control flow graph that defines executable elements and relationships between those elements. The operating system may traverse the control flow graph during execution to monitor execution flow and prepare executable elements for processing. By placing new components in memory then modifying the control flow graph, the operating system functionality may be updated or changed. In some embodiments, a lightweight version of an operating system may be deployed, then additional features or capabilities may be added. | 12-20-2012 |
20130067445 | Determination of Function Purity for Memoization - The purity of a function may be determined after examining the performance history of a function and analyzing the conditions under which the function behaves as pure. In some cases, a function may be classified as pure when any side effects are de minimis or are otherwise considered trivial. A control flow graph may also be traversed to identify conditions in which a side effect may occur as well as to classify the side effects as trivial or non-trivial. The function purity may be used to identify functions for memoization. In some embodiments, the purity analysis may be performed by a remote server and communicated to a client device, where the client device may memoize the function. | 03-14-2013 |
20130073523 | Purity Analysis Using White List/Black List Analysis - Memoizable functions may be identified by analyzing a function's side effects. The side effects may be evaluated using a white list, black list, or other definition. The side effects may also be classified into conditions which may or may not permit memoization. Side effects that may have de minimus or trivial effects may be ignored in some cases where the accuracy of a function may not be significantly affected when the function may be memoized. | 03-21-2013 |
20130073604 | Optimized Settings in a Configuration Database with Boundaries - A set of optimizations may be defined in a configuration database. The configuration database may be defined with a set of boundaries that may define conditions under which the optimizations may be valid. When the conditions are not met, a new configuration database may be requested from an optimization server. The system may be used to distribute and manage optimizations for an application, which may be deployed in interpreted or runtime scenarios or in pre-execution or compiled scenarios. | 03-21-2013 |
20130073829 | Memory Usage Configuration Based on Observations - A computer software execution system may have a configurable memory allocation and management system. A configuration file or other definition may be created by analyzing a running application and determining an optimized set of settings for the application on the fly. The settings may include memory allocated to individual processes, memory allocation and deallocation schemes, garbage collection policies, and other settings. The optimization analysis may be performed offline from the execution system. The execution environment may capture processes during creation, then allocate memory and configure memory management settings for each individual process. | 03-21-2013 |
20130073837 | Input Vector Analysis for Memoization Estimation - A function's purity may be estimated by comparing a new input vector to previously analyzed input vectors. When a new input vector is within a confidence boundary, the new input vector may be treated as a known vector, even when that vector has not been evaluated. The input vector may reflect the input parameters passed to a function, and the function may be analyzed to determine whether to memoize with the input vector. The function may be a function that behaves as a pure function in some circumstances and with some input vectors, but not with others. By memoizing the function when possible, the function may be executed much faster, thereby improving performance. | 03-21-2013 |
20130074049 | Memoization Configuration File Consumed at Runtime - Memoization may be deployed using a configuration file or database that identifies functions to memorize, and in some cases, includes input and result values for those functions. As an application is executed, functions defined in the configuration file may be captured and memoized. During the first execution of the function, the return value may be captured and stored in the configuration file. For subsequent executions of the function, the return value may be stored in the configuration file. In some cases, the configuration file may be distributed with the return values to client computers. The configuration file may be created by one device and deployed to other devices in some deployments. | 03-21-2013 |
20130074055 | Memoization Configuration File Consumed at Compile Time - Memoization may be deployed using a configuration file or database that identifies functions to memorize, and in some cases, includes input and result values for those functions. At compile time, functions defined in the configuration file may be captured and memoized. During compilation or other pre-execution analysis, the executable code may be modified or otherwise decorated to include memoization code. The memoization code may store results from a function during the first execution, then merely look up the results when the function may be called again. The memoized value may be stored in the configuration file or in another data store. In some embodiments, the modified executable code may operate in conjunction with an execution environment, where the execution environment may optionally perform the memoization. | 03-21-2013 |
20130074056 | Memoizing with Read Only Side Effects - A function may be memoized when a side effect is a read only side effect. Provided that the read only side effect does not mutate a memory object, the side effect may be considered as an input to a function for purity and memoization analysis. When a read only side effect may be encountered during memoization analysis, the read only side effect may be treated as an input to a function for memoization analysis. In some cases, such side effects may enable an impure function to behave as a pure function for the purposes of memoization. | 03-21-2013 |
20130074057 | Selecting Functions for Memoization Analysis - A function may be selected for memoization when the function indicates that memoization may result in a performance improvement. Impure functions may be identified and ranked based on operational data, which may include length of execution. A function may be selected from a ranked list and analyzed for memoization. The memoization analysis may include side effect analysis and consistency analysis. In some cases, the optimization process may perform optimization on one function at a time so as to not overburden a running system. | 03-21-2013 |
20130074058 | Memoization from Offline Analysis - Memoization may be deployed using a configuration file or database that identifies functions to memorize, and in some cases, includes input and result values for those functions. The configuration file or database may be created by profiling target code and offline or otherwise separate analysis of the profiling results. The configuration file may be used by an execution environment to identify which functions to memorize during execution. The offline or separate analysis of the profiling results may enable more sophisticated analysis than could otherwise be performed in parallel with executing the target code, including historical analysis of multiple instances of the target code and sophisticated cost/benefit analysis. | 03-21-2013 |
20130074092 | Optimized Memory Configuration Deployed on Executing Code - A configurable memory allocation and management system may generate a configuration file with memory settings that may be deployed at runtime. An execution environment may capture a memory allocation boundary, look up the boundary in a configuration file, and apply the settings when the settings are available. When the settings are not available, a default set of settings may be used. The execution environment may deploy the optimized settings without modifying the executing code. | 03-21-2013 |
20130074093 | Optimized Memory Configuration Deployed Prior to Execution - A configurable memory allocation and management system may generate a configuration file with memory settings that may be deployed prior to runtime. A compiler or other pre-execution system may detect a memory allocation boundary and decorate the code. During execution, the decorated code may be used to look up memory allocation and management settings from a database or to deploy optimized settings that may be embedded in the decorations. | 03-21-2013 |
20130080760 | Execution Environment with Feedback Loop - An execution environment may have a monitoring, analysis, and feedback loop that may configure and tune the execution environment for currently executing workloads. A monitoring or instrumentation system may collect operational and performance data from hardware and software components within the system. A modeling system may create an operational model of the execution environment, then may determine different sets of parameters for the execution environment. A feedback loop may change various operational characteristics of the execution environment. The monitoring, analysis, and feedback loop may optimize the performance of a computer system for various metrics, including throughput, performance, energy conservation, or other metrics based on the applications that are currently executing. The performance model of the execution environment may be persisted and applied to new applications to optimize the performance of applications that have not been executed on the system. | 03-28-2013 |
20130080761 | Experiment Manager for Manycore Systems - An execution environment may have a monitoring, analysis, and feedback loop that may configure and tune the execution environment for currently executing workloads. A monitoring or instrumentation system may collect operational and performance data from hardware and software components within the system. A modeling system may create an operational model of the execution environment, then may determine different sets of parameters for the execution environment. A feedback loop may change various operational characteristics of the execution environment. The monitoring, analysis, and feedback loop may optimize the performance of a computer system for various metrics, including throughput, performance, energy conservation, or other metrics based on the applications that are currently executing. The performance model of the execution environment may be persisted and applied to new applications to optimize the performance of applications that have not been executed on the system. | 03-28-2013 |
20130081005 | Memory Management Parameters Derived from System Modeling - Optimized memory management settings may be derived from a mathematical model of an execution environment. The settings may be optimized for each application or workload, and the settings may be implemented per application, per process, or with other granularity. The settings may be determined after an initial run of a workload, which may observe and characterize the execution. The workload may be executed a second time using the optimized settings. The settings may be stored as tags for the executable code, which may be in the form of a metadata file or as tags embedded in the source code, intermediate code, or executable code. The settings may change the performance of memory management operations in both interpreted and compiled environments. The memory management operations may include memory allocation, garbage collection, and other related functions. | 03-28-2013 |
20130085882 | Offline Optimization of Computer Software - An offline optimization for computer software may involve creating optimized parameters or components for a software product, and charging customers for the optimization service. The software product may be distributed under one licensing regime and the optimization components may be distributed under a second licensing regime. In some embodiments, a low cost or no-cost monitoring system may be provided, which may interface with a remote service that optimizes the software product for its current workload. A user may pay for the remote optimization service through a subscription, pay-per-use, pay-for-performance, or other payment models. | 04-04-2013 |
20130117753 | Many-core Process Scheduling to Maximize Cache Usage - A process scheduler for multi-core and many-core processors may place related executable elements that share common data on the same cores. When executed on a common core, sequential elements may store data in memory caches that are very quickly accessed, as opposed to main memory which may take many clock cycles to access the data. The sequential elements may be identified from messages passed between elements or other relationships that may link the elements. In one embodiment, a scheduling graph may be constructed that contains the executable elements and relationships between those elements. The scheduling graph may be traversed to identify related executable elements and a process scheduler may attempt to place consecutive or related executable elements on the same core so that commonly shared data may be retrieved from a memory cache rather than main memory. | 05-09-2013 |
20130117759 | Network Aware Process Scheduling - A schedule graph may be used to identify executable elements that consume data from a network interface or other input/output interface. The schedule graph may be traversed to identify a sequence or pipeline of executable elements that may be triggered from data received on the interface, then a process scheduler may cause those executable elements to be executed on available processors. A queue manager and a load manager may optimize the resources allocated to the executable elements to maximize the throughput for the input/output interface. Such as system may optimize processing for input or output of network connections, storage devices, or other input/output devices. | 05-09-2013 |
20130219057 | Relationships Derived from Trace Data - An analysis system may perform network analysis on data gathered from an executing application. The analysis system may identify relationships between code elements and use tracer data to quantify and classify various code elements. In some cases, the analysis system may operate with only data gathered while tracing an application, while other cases may combine static analysis data with tracing data. The network analysis may identify groups of related code elements through cluster analysis, as well as identify bottlenecks from one to many and many to one relationships. The analysis system may generate visualizations showing the interconnections or relationships within the executing code, along with highlighted elements that may be limiting performance. | 08-22-2013 |
20130219372 | Runtime Settings Derived from Relationships Identified in Tracer Data - An analysis system may perform network analysis on data gathered from an executing application. The analysis system may identify relationships between code elements and use tracer data to quantify and classify various code elements. In some cases, the analysis system may operate with only data gathered while tracing an application, while other cases may combine static analysis data with tracing data. The network analysis may identify groups of related code elements through cluster analysis, as well as identify bottlenecks from one to many and many to one relationships. The analysis system may generate visualizations showing the interconnections or relationships within the executing code, along with highlighted elements that may be limiting performance. | 08-22-2013 |
20130227529 | Runtime Memory Settings Derived from Trace Data - An analysis system may perform network analysis on data gathered from an executing application. The analysis system may identify relationships between code elements and use tracer data to quantify and classify various code elements. In some cases, the analysis system may operate with only data gathered while tracing an application, while other cases may combine static analysis data with tracing data. The network analysis may identify groups of related code elements through cluster analysis, as well as identify bottlenecks from one to many and many to one relationships. The analysis system may generate visualizations showing the interconnections or relationships within the executing code, along with highlighted elements that may be limiting performance. | 08-29-2013 |
20130227536 | Increasing Performance at Runtime from Trace Data - An analysis system may perform network analysis on data gathered from an executing application. The analysis system may identify relationships between code elements and use tracer data to quantify and classify various code elements. In some cases, the analysis system may operate with only data gathered while tracing an application, while other cases may combine static analysis data with tracing data. The network analysis may identify groups of related code elements through cluster analysis, as well as identify bottlenecks from one to many and many to one relationships. The analysis system may generate visualizations showing the interconnections or relationships within the executing code, along with highlighted elements that may be limiting performance. | 08-29-2013 |
20130229416 | Transformation Function Insertion for Dynamically Displayed Tracer Data - A visualization system for a tracer may include a processing pipeline that may generate tracing data, preprocess the data, and visualize the data. The preprocessing step may include a mechanism to process user-defined expressions or other executable code. The executable code may perform various functions including mathematical, statistical, aggregation with other data, and others. The preprocessor may perform malware analysis, test the functionality, then implement the executable code. A user may be presented with an editor or other text based user interface component to enter and edit the executable code. The executable code may be saved and later recalled as a selectable transformation for use with other data streams. | 09-05-2013 |
20130232174 | Highlighting of Time Series Data on Force Directed Graph - A force directed graph may display recent activities of a message passing system as highlighted features over a larger graph. The force directed graph may display a superset of nodes and edges representing processes and message routes, then display recent activities as highlighted elements within the larger superset. The highlighted elements may display messages passed or computation performed during a recent time element of a time series. In some embodiments, the effects of activities may be displayed by decaying the highlighted visual elements over time. | 09-05-2013 |
20130232433 | Controlling Application Tracing using Dynamic Visualization - A force directed graph may serve as a part of a user control for a tracer. The tracer may collect data while monitoring an executing application, then the data may be processed and displayed on a force directed graph. A user may be able to select individual nodes, edges, or other elements, then cause the tracer to change what data may be collected. The user may be able to select individual nodes, edges, or groups of elements on the graph, then perform updates to the tracer using the selected elements. The selection mechanisms may include clicking and dragging a window to select nodes that may be related, as well as selecting from a legend or other grouping. | 09-05-2013 |
20130232452 | Force Directed Graph with Time Series Data - A force directed graph may display time series data using a set of playback controls to pause, play, reverse, fast forward, slow down, or otherwise control the display of the time series data. The playback controls may be used in a real time or near real time application to which data sets are displayed and the speed with which the data sets may be displayed. In one architecture, the force directed graph may be deployed using a rendering engine that receives data and renders the data into a graph. A playback controller may send updates to the rendering engine according to user inputs from the playback controls. | 09-05-2013 |
20130238378 | MANAGING RESOURCES USING RESOURCE MODIFIERS - Systems, methods, and computer-storage media are provided for employing environment and resource data to facilitate management of shopper traffic and resource allocation. Shopper traffic information is received from environmental sensors located in or nearby a business establishment. Resource information associated with the business establishment is also received. A traffic modifier is determined based on the shopper traffic information and the resource information; the traffic modifier is used to influence the behavior of shoppers with respect to the business establishment. As well, a resource modifier for the business establishment is also determined based on a projected result of dissemination of the traffic modifier. | 09-12-2013 |
20130282545 | Marketplace for Monitoring Services - A marketplace for monitoring services providers may configure and deploy monitoring and other services that meet a solution definition for a given application. The services may include monitoring and tracing, analysis, rendering, debugging, optimizing, load generating, and other solution providers. The solution definition may include a schema or other data definitions for parameters gathered during application execution, as well as definitions for parameters or solutions that may be desired. The marketplace may identify those services that may be configured to meet the solution definition, then configure and deploy the selected services. A financial clearinghouse may handle financial payments to the various service providers. | 10-24-2013 |
20130283242 | Tracing Closures in a Callback Environment - An automated tracing system may create wrapping functions for each function in an application, including callback functions that may be passed as arguments to or from a given function. The wrapping function may include tracing data which may be used to generate a topology of the application, as well as other tracing data which may be used for performance measurements. In many cases, the wrapping function may be at least partially isomorphic with respect to the inner function being wrapped. | 10-24-2013 |
20130298112 | Control Flow Graph Application Configuration - An operating system may be configured using a control flow graph that defines relationships between each executable module. The operating system may be configured by analyzing an application and identifying the operating system modules called from the application, then building a control flow graph for the configuration. The operating system may be deployed to a server or other computer containing only those components identified in the control flow graph. Such a lightweight deployment may be used on a large scale for datacenter servers as well as for small scale deployments on sensors and other devices with little processing power. | 11-07-2013 |
20140013306 | Computer Load Generator Marketplace - A load generator services marketplace may configure and deploy load generators in conjunction with executing an application. The load generators may be selected based on a solution definition, which may include the types of loads and conditions under which loads may be generated. One or more load generators may be configured to operate with a monitoring service, and a connection manager may cause the load generators, application, and monitoring service to execute simultaneously so that the monitoring service may capture performance metrics while the application experiences the load. The marketplace may have load generators from multiple providers and with multiple configurations, as well as a clearinghouse for clearing a financial transaction as the load generators are used. | 01-09-2014 |
20140013308 | Application Development Environment with Services Marketplace - An application development environment may have a user interface to a marketplace for development related services, such as monitoring, debugging, load generating, analysis, and other services. Service providers may make their products available through the marketplace, and in some cases, the providers may bid for placement in the user interface. The services may be paid or free, and a clearinghouse may handle financial transactions that may occur. The application development environment may include an editor, debugger, compiler, and other tools by which a developer may write, edit, test, and debug an application. The marketplace may detect characteristics about the application under development, and make those characteristics available to various service providers. | 01-09-2014 |
20140013309 | Interactive Graph for Navigating Application Code - Code elements may be selected from a graph depicting an application. The graph may show code elements as nodes, with edges representing connections between the nodes. The connections may be messages passed between code elements, code flow relationships, or other relationships. When a code element or group of code elements are selected from the graph, the corresponding source code may be displayed. The code may be displayed in a code editor or other mechanism by which the code may be viewed, edited, and manipulated. | 01-09-2014 |
20140019879 | Dynamic Visualization of Message Passing Computation - A message passing compute environment may be visualized by illustrating messages passed within the environment. The messages may contain data consumed by a function or other computational element, and may be used to launch or spawn various computational elements. One visualization may be a force directed graph that has each function as a node, with messages passed as edges of the graph. In some embodiments, the edges may display the number of messages, quantity of data, or other metric by showing the edges as wider or thinner, or by changing the color of the displayed edge. The nodes may be illustrated with different colors, size, or shape to show different aspects. Some embodiments may have a mechanism for storing and playing back changes to the graph over time. | 01-16-2014 |
20140026142 | Process Scheduling to Maximize Input Throughput - A schedule graph may be used to identify executable elements that consume data from a network interface or other input/output interface. The schedule graph may be traversed to identify a sequence or pipeline of executable elements that may be triggered from data received on the interface, then a process scheduler may cause those executable elements to be executed on available processors. A queue manager and a load manager may optimize the resources allocated to the executable elements to maximize the throughput for the input/output interface. Such as system may optimize processing for input or output of network connections, storage devices, or other input/output devices. | 01-23-2014 |
20140039868 | User-Defined Application Models - A system (and corresponding method) that employs wiki-type models to consider authoring rather than composition in an application environment is provided. The innovation enables collaborative information and templates to be used to enhance quality, productivity, etc. within a software application environment. These wiki-type models can provide features, functions and benefits related to, but not limited to, general information, auto-fills, formats, schema, conversions, preferences, etc. | 02-06-2014 |
20140040591 | Garbage Collection Based on Functional Block Size - An execution environment for functional code may treat application segments as individual programs for memory management. A larger program of application may be segmented into functional blocks that receive an input and return a value, but operate without changing state of other memory objects. The program segments may have memory pages allocated to the segments by the operating system as other full programs, and may deallocate memory pages when the segments finish operating. Functional programming languages and imperative programming languages may define program segments explicitly or implicitly, and the program segments may be identified at compile time or runtime. | 02-06-2014 |
20140082174 | Serialization of Run-Time State - The claimed subject matter provides a system and/or a method that facilitates re-locating a web application associated with a network service utilizing a portion of serialized data. The network service can be any collection of resources that are maintained by a party (e.g., third-party, off-site, etc.) and accessible by an identified user over a network (e.g., WAN, Internet, etc.). An interface component can receive a portion of serialized data with transparent structure related to an application specification. A hydrate component can create a web application independent of a network service based at least in part upon the serialized data, the web application has state within the network service. | 03-20-2014 |
20140180571 | OBTAINING AND DISPLAYING VIRTUAL EARTH IMAGES - Provided is a single repository for capturing, connecting, sharing, and visualizing information based on a geographic location, for example. Provided is a schema, repository, index, and APIs for any information, place, entity, attribute, service or person that can be referenced geographically. A system to provide real time image data includes an input component that receives image data associated with a specific geographic area, a splitter component that splits the image data into at least two quadrants, and a storage component that stores at least a portion of the at least two quadrants. Also provides is on-line or real-time advertising based on a user's mapped location and/or a user preference. | 06-26-2014 |
20140189650 | Setting Breakpoints Using an Interactive Graph Representing an Application - Breakpoints may be set by selecting nodes on a graph depicting code elements and relationships between code elements. The graph may be derived from tracing data, and may reflect the observed code elements and the observed interactions between code elements. In many cases, the graph may include performance indicators. The breakpoints may include conditions which depend on performance related metrics, among other things. In some embodiments, the nodes may reflect individual instances of specific code elements, while other embodiments may present nodes as the same code elements that may be utilized by different threads. The breakpoints may include parameters or conditions that may be thread-specific. | 07-03-2014 |
20140189651 | Animated Highlights in a Graph Representing an Application - Highlighted objects may traverse a graph representing an application's code elements and relationships between those code elements. The highlighted objects may be animated to represent how the objects are processed in an application. The graph may represent code elements and relationships between the code elements, and the highlighting may be generated by tracing the application to determine the flow of the object through code elements and across relationships. A user may control the highlighted graph with a set of playback controls for playing through the sequence of highlights on the graph. The playback controls may include pause, rewind, forward, fast forward, and other controls. The controls may also include a step control which may step through small time increments. | 07-03-2014 |
20140189652 | Filtering and Transforming a Graph Representing an Application - A graph representing code element and relationships between code elements may have elements combined to consolidate or collapse portions of the graph. A filter may operate between the graph data and a renderer to show the graph in different states. The graph may be implemented with an interactive user interface through which a user may select a node, edge, or groups of nodes and edges, then apply a filter or other transformation. When the user selects to combine a group of code elements, the combined elements may be displayed as a single element. In some cases, the single element may be presented with visual differentiation to show that the element is a collapsed or combined element, as opposed to a singleton element. | 07-03-2014 |
20140316926 | Automated Market Maker in Monitoring Services Marketplace - An application services marketplace may match various solution providers to a solution request, then creating a bid or proposal for services. Upon acceptance of the bid, the services may be configured and deployed. A market maker may combine multiple solution providers to address a specific request, and may use a schema expressly defined or implied in a request to select and configure a combination of services. The market maker may combine monitoring services with analysis services, monitoring services with load generators, or other combination of services that may be used during development or deployment of an application. | 10-23-2014 |
20140317454 | Tracer List for Automatically Controlling Tracer Behavior - A tracing system may use an evaluation mechanism to determine which functions to include or exclude during tracing. The architecture may evaluate functions when functions or groups of functions may be loaded for execution, as well as each time a function may be encountered. The evaluation mechanism may use whitelists, blacklists, and various expressions to identify which functions to trace and which functions to exclude. The evaluation mechanism may evaluate an expression that may identify specific conditions under which a function may be traced or not traced. The tracing mechanism may create wrapping functions for each function, including callback functions. | 10-23-2014 |
20140317603 | Multiple Tracer Configurations Applied on a Function-by-Function Level - A tracing system may use different configurations for tracing various functions in different manners. A configuration may be a group of settings that may define which data elements to collect, as well as the manner in which the data may be summarized, stored, and in some cases, displayed. Example configurations may include debugging configuration, performance optimization configuration, long term monitoring configuration, and others. The tracing system may be able to trace one group of functions with one configuration, while tracing another group of functions in the same application using a different configuration. | 10-23-2014 |
20140317604 | Real Time Analysis of Tracer Summaries to Change Tracer Behavior - Real time analysis of tracing data may identify functions for which tracing may be enhanced or reduced. A tracer that generates function-level data may have an aggregator that summarizes the data. Potential changes to tracing configuration may be identified by analyzing the summarized data to determine whether or not each function is being traced at a level commensurate with that function's impact to the summarized data. Those functions with little significant contribution may have their tracing reduced, while those functions with more significant contribution may have their tracing enhanced. The analysis of the summarized data may be performed in real time in some instances, causing a tracer to change the data collected while an application executes. | 10-23-2014 |
20140317605 | User Interaction Analysis of Tracer Data for Configuring an Application Tracer - A tracing system may be updated to include, exclude, or modify tracing configurations for functions based on how a user consumes tracing results. The user's interactions with graphical representations, inspections of data, and other interactions may indicate which functions may be interesting and which functions may not be. The user's interactions may be classified by use, such as during debugging, performance testing, and ongoing monitoring, and multiple user's interactions with the same function, library, module, source code file, or other groups of functions may be combined to predict a user's interest in a function. | 10-23-2014 |
20140317606 | Error List and Bug Report Analysis for Configuring an Application Tracer - Error logs, bug reports, and other databases identifying problems with a tracer system may be mined to determine how a tracer may interact with a given function, module, or other group of functions. Based on such reports, a tracer may be configured to avoid certain functions or to trace such functions in a specific manner. In some cases, tracer may be configured to limit tracing to certain parameters or with other limitations to avoid any known conditions under which errors occur. | 10-23-2014 |
20150025953 | REWARDING INFLUENCERS - A method embodiment includes receiving data indicative of a person accessing at least one of a first network-available electronic content or a second network-available electronic content, perhaps in a Web 2.0 environment. Also, receiving data indicative of an involvement between the person and a third party. The involvement being independent of the person activating a link to a site owned by the third party that is included in the first network-available electronic content or in the second network available electronic content. Further, assessing a behavioral influence by the first network-available electronic content and/or the second network-available electronic content on the indicated involvement with respect to the possible matters of interest between the person and a third party. Also, facilitating delivery of a benefit to an owner of the first network-available electronic content and/or an owner of the second network-available electronic content in response to the assessed behavioral influence. | 01-22-2015 |
20150052400 | Breakpoint Setting Through a Debugger User Interface - A debugging system may display snapshot information that may be collected in response to an event identified while an application executes. The debugging system may allow a user to browse the various data elements in the snapshot, and may allow the user to modify a snapshot configuration by including or excluding various data elements within the snapshot data. The user interface may have a mechanism for including or excluding data elements that may be presented during browsing, as well as options to change the events that may trigger a snapshot. The updated snapshot configuration may be saved for future execution when the event conditions are satisfied. | 02-19-2015 |
20150052403 | Snapshotting Executing Code with a Modifiable Snapshot Definition - A tracing and debugging system may take a snapshot of an application in response to an event, and may continue executing the program after the snapshot is captured. The snapshot may be stored and retrieved later in a debugging tool where a programmer may browse the snapshot or the snapshot may have some other analysis performed. The snapshot may contain a subset of the state of the application, such as call stacks, portions of source code, the values of local and global variables, and various metadata. The snapshot may be defined in a snapshot configuration that may include an event description and data to be collected. | 02-19-2015 |
20150052406 | Combined Performance Tracer and Snapshot Debugging System - A tracing and debugging system may collect both performance related tracer data and snapshot data. The tracer data may contain aggregated performance and operational data, while the snapshot data may contain call stack, source code, and other information that may be useful for debugging and detailed understanding of an application. The snapshot data may be stored in a separate database from the tracer data, as the snapshot data may contain data that may be private or sensitive, while the tracer data may be aggregated information that may be less sensitive. A debugging user interface may be used to access, display, and browse the stored snapshot data. | 02-19-2015 |
20150066869 | Module Database with Tracing Options - A database of module performance may be generated by adding tracing components to applications, as well as by adding tracing components to modules themselves. Modules may be reusable code that may be made available for reuse across multiple applications. When tracing is performed on an application level, the data collected from each module may be summarized in module-specific databases. The module-specific databases may be public databases that may assist application developers in selecting modules for various tasks. The module-specific databases may include usage and performance data, as well as stability and robustness metrics, error logs, and analyses of similar modules. The database may be accessed through links in module description pages and repositories, as well as through a website or other repository. | 03-05-2015 |
20150067652 | Module Specific Tracing in a Shared Module Environment - A module-specific tracing mechanism may trace the usage of a module on behalf of the module developer. The module may be used by multiple application developers, and the tracing system may collect and summarize data for the module in each of the different applications. The data may include usage data as well as performance data. Usage data may include anonymized data for each time the module may be invoked and called, and performance data may include the processing time, memory consumption, and other metrics. The module-specific tracing may be enabled or disabled by an application developer. | 03-05-2015 |
20150067654 | Tracing System for Application and Module Tracing - A tracing system may trace applications and their modules, and may make module-specific data available through various interfaces. The tracing system may collect tracer data while an application executes, and may preprocess the data into application-specific and module-specific databases. An analysis engine may further analyze and process these databases to create application-specific views and module-specific views into the data. The application-specific views may be intended for a developer of the application, while the module-specific views may have a public version accessible to everybody and a module developer version that may contain additional details that may be useful to the module developer. | 03-05-2015 |
20150082285 | RUNTIME SETTINGS DERIVED FROM RELATIONSHIPS IDENTIFIED IN TRACER DATA - An analysis system may perform network analysis on data gathered from an executing application. The analysis system may identify relationships between code elements and use tracer data to quantify and classify various code elements. In some cases, the analysis system may operate with only data gathered while tracing an application, while other cases may combine static analysis data with tracing data. The network analysis may identify groups of related code elements through cluster analysis, as well as identify bottlenecks from one to many and many to one relationships. The analysis system may generate visualizations showing the interconnections or relationships within the executing code, along with highlighted elements that may be limiting performance. | 03-19-2015 |