Disclosed in previous patent applications above is a passive collection server, at a uniform resource identifier(uri) which operates a secure hyper text transfer protocol (https) service. Any agent may initiate an https post transfer to this uri. The passive collection server accepts every transfer it is presented with unconditionally. If successful, it stores and acknowledges the transfer. If unsuccessful, the https client will automatically retry. Thus it is impossible to prevent the transfer from the server side.
Today, data which is stale, or duplicative, or no longer of interest consumes bandwidth. A study which initiated data acquisition may have ended or based on initial results have been substantially evolved. Sufficient samples may already have been acquired of the mean, median, and mode of the distribution. Large volumes of obsolete data occupy storage. Furthermore, costly analysis cycles are consumed to determine that the data is no longer of use and to determine that it can be discarded. And the temptation is to keep it to be on the safe side but then it is too difficult to mine to be useful.
In addition to hiding desirable data in a thicket of useless data by the mere fact of its volume, the volume of data being uploaded may resemble a self-inflicted denial of service attack. The receiving server at the destination uniform resource identifier may sometimes be too busy during peak upload periods to receive a rare but desirable upload.
A prior art tasking server receives identification information from each agent and distributes profiles to agents generally according to their identity. An external selection process has selected agents to potentially participate in a study. Current information provided by the agent may disqualify it from receiving a profile but does not today determine the profile the agent should receive.
The process of developing a prior art profile is deterministic and done in anticipation of a certain scenario. Only a fixed number of profiles is available in practicality due to the development, test, and debugging effort. In any case the tasking server is capacity constrained to a fixed number of available profiles to manage.
Economically, it can be expensive to contact each and every agent of a large population. Therefore, because it is expensive to modify a profile on demand, each profile has a longevity determined by the reporting period previously encoded into the most recently distributed previous profile. For example, if a set of agents had received a profile to report their packages of data every 2 months, then the mean time to replace that profile would be one month after the decision to do so.
Even if an agent transmits a package containing an event of interest, there might be little that can be learned from it. Only the data that was anticipated to be of interest is recorded. It may be essentially the same report of a problem from many agents without more details to analyze. It can be observed that a problem is widespread and common but otherwise the data may be thin, duplicative, and obsolete by the time it is recognized.
Prior art, as disclosed in a related U.S. Pat. No. 7,609,650 issued Oct. 27, 2009, provides for a service quality platform of a data collection and management system to download to a population of wireless devices static data collection profiles. Profiles define what information is to be recorded on the devices in response to which conditions and events, as well as the conditions and events which enable the device to upload the set of information. Conditions or events comprise selected occurrences in the network or on the device that the device can sense, such as a call dropping or a user pressing a button on the device. Conditions and events also comprise the passage of time, or a request from a network administrator that the device report to the server.
However, the number of studies that can be developed and conducted concurrently is constrained by the manner in which a profile can be created, the devices selected, the profiles transmitted, and data received. Accordingly, response to a transient problem may be delayed.
It can be appreciated that what is needed is a solution which acquires data from a plurality of agent configured apparatus but in which less data is transferred. Less storage of unneeded, stale, or duplicative data would be advantageous over present solutions. Furthermore, what is needed is finer grained measurements tailored to each situation. Measurements should not be limited to anticipated scenarios or confirmation of hypotheses. Assignment of tasks to agents should reflect the latest understanding of interesting problems. New scopes of research or areas of study should be converted to profiles and distributed on a continuous rather than batch schedule.
An economical system for collecting measurements from among a large plurality of wireless stations by what is effectively self-selection towards a plurality of concurrent studies which avoids network congestion, data duplication, and impertinent submissions would address the limitations of conventional systems, methods, and apparatus described above.
Referring to
One aspect of the present invention is tasking-masking a plurality of adaptive agents which augment the functionality of conventional agents by additionally subscribing to more, fewer, or different data feed streams. This can be done by adding thresholds, computations, and logic into a replacement profile which adapt the agent to examine and operate on recorded data or by changing the mask of a last profile. For example two completely orthogonal and incompatible events might occur which are mutually exclusive. And the data necessary to analyze one has no overlap with the data to analyze the other. It is wasteful to record the superset of data for both events because at least one and possible both subsets would be eventually discarded as uninteresting. By adapting the data feed stream according to the detection of one event or the other, more capacity is obtained for storage.
An other aspect of the present invention is tasking-masking a plurality of adaptive agents which augment the functionality of conventional agents by additionally modifying a destination uniform resource identifier. In one embodiment, the destination may be determined by a regular expression controlling a subdirectory of the collection server. In an other embodiment, the destination uniform resource identifier may be selected according to a preliminary analysis of the recorded data or user behavior.
An other aspect of the present invention is tasking-masking a plurality of adaptive agents which augment the functionality of conventional agents by additionally extending or shortening their reporting period. For example, a event may be determined from analyzing recorded data or user behavior that initiates an immediate report to the collection server. This can be accomplished by setting a timer to zero. Or extending the reporting period may be desirable upon examining the battery charge, signal strength, and user activity.
An other aspect of the present invention is tasking-masking a plurality of adaptive agents which augment the functionality of conventional agents by additionally operating on recorded data to summarize and type the package. Metadata about the package may be submitted to a discriminating collection server as part of a proposed upload. By operating on the recorded data the agent may determine if the package represents a corner case in a study or is likely to be duplicative of the most commonly reported cases. Or the metadata could be compared to samples collected to that point.
It understood among those skilled in the art that the tasking-masking server may not be a separate physical server and may not only share hardware resources but also share software with a collection server. It is described separately solely for clarity of understanding as separably inventive.
One aspect of the present invention is a dynamic tasking-masking server which augments the functionality of a conventional tasking server by reading in addition to the identity of the agent, configuration-state data from the package of the last reporting period.
The package of the last reporting period may have some recent changes in the configuration of the agent. This might be the location, the software release, the radio signal statistics. This might be in user behaviors recorded. This might be in quality or reliability measures. Or the configuration state may be in the normal range and show little variation from previous values or expected values for that make/model/user.
A further aspect of a dynamic tasking server is determining if a profile should be replaced or continued based on configuration-state data. It may be that its configuration-state corresponds to a new study just released. It may be that the configuration state reflects a degradation or impending failure. It may be that the configuration state indicates a special environment or configuration which requires more detailed measurements to diagnose. Or the dynamic tasking server may determine that the same profile should be continued without change or that portions of the profile should be masked to enable or disable subscription, recordation, or transmission of data.
A further aspect of a dynamic tasking-masking server is compiling and transmitting a replacement profile according to an event registry. An event registry is disclosed in the detailed specification which has all the dimensions of configuration state which can be measured, recorded, or reported by an agent. All studies are represented in the event registry and specify the user behaviors, data streams, destination uniform resource identifiers, upload schedules, and packages that should be incorporated into a replacement profile.
The present invention is a component of a system, apparatus and method for asking a persistent query of a system of wireless communications. One aspect of the invention is tasking-masking qualified agents which are installed in a variety of mobile communication devices. Qualifications may be selected from specific categories of hardware, software, state, and configuration. The agents in an embodiment may self-select or in an embodiment may report their current configuration state and be selected by a dynamic tasking-masking server. If selected for a plurality of studies, the agent receives at least one profile. In an embodiment, if an agent is selected for two or more studies in which the information is required to be uploaded to two or more distinct Mobile Service Intelligence Platforms (MSIP) instances, the agent receives a plurality of profiles.
Each profile determines which device characteristics are useful to measure performance and how often and what conditions should be stored. The profile may further determine interactions with the user and software applications are monitored to record user behavior. Configuration-state includes the radio conditions, hardware status, recent error rates, and user behaviors. A single profile prepares more than one type of package. In an embodiment a single profile prepares one type of package with variable destination uniform resource identifier. Multiple profiles are appropriate for studies that are being conducted for unrelated clients to avoid confidentiality issues. To avoid wasteful transfer and storage, the collecting method may refuse to accept data for a variety of reasons. The data may be stale, the study not open, or a statistically sufficient number of reports may already have been accumulated to answer the query.
The present invention is a system, method, and apparatus for dynamically tasking-masking a plurality of agents to measure performance and record user behavior in a wireless network. It is understood that the various servers described are logical systems which may be combined in operation on fewer physical servers or scaled to be distributed among multiple physical servers organized as a grid which provide the functionality. It is for the ease of conveying the concept of the invention that functionality is described herein as related to recordation or analysis or application. From time to time individual members of the grid will participate in recordation, in analysis and in application methods. A domain specific body of knowledge referred to as a Service Intelligence Module may be applied to data both at the analysis server in batch processing or at the application server in interactive manipulation and display of data.
An event register contains the conditions and requirements of all active persistent queries. Each persistent query comprises a flow and a tasking specification. The flow describes the desired output to be collected and analyzed for a selected domain and applies to at least one service intelligence module. The tasking specification describes the configuration-state of agents which qualify for a study and at least one of the following: how much data is to be collected, the latency of reporting events, and the priority of the tasking specification relative to other tasking specifications. The result of compiling the flow, its tasking specification, and related service intelligence modules populates the event registry for one Persistent Query. When an agent reports configuration-state data in a package, the tasking-masking server determines if a replacement profile should be generated by examining all the Persistent Queries active in the event registry and compiling a replacement profile if appropriate for that agent.
It is understood that a replacement profile may be cached and served to a second agent reporting nearly the same configuration-state data. It is understood that the tradeoff between pre-computing most likely requested profiles and dynamically determining a profile may be optimized by those skilled in the art.
The present invention concerns conducting several studies by concurrently recording and collecting measurements. Each measurable parameter is part of the configuration-state.
A study definition calls upon a selection of service intelligence modules which contain a collection of data displays, transformations, and measurements. Depending on the study not all displays and measurements that can be operated on by a service intelligence module need be collected. A profile is assembled from the requirements of the service intelligence modules with respect to the study definition which specifies the frequency of measurement and which device parameters and user behaviors are to be recorded.
Each study determines the qualification of the agents which shall potentially receive the profile. In an embodiment, the agents self-select to receive each profile. In an embodiment, the agents are selected but receive each profile on their own initiative. In an embodiment, certain agents are directed to receive a second profile by matching qualifying conditions of configuration-state in a first profile.
Agents may be permanently embedded in a mobile device or removably embedded in a wireless modem datacard which can be shared among mobile devices. Generally agents have a hardware and software configuration which while updatable is not extremely dynamic. In contrast, being assigned to mobile devices, the location is very dynamic and an agent may pass through many envelopes. In an embodiment, an agent may also be installed as an after-market application or system service on a device that allows such things (like a smartphone).
Tasking a profile to an agent may depend on the agent's recent history in transient events, in radio signal strength, in bit error rates, in bad cellular areas, in internal state or statistics in the radio channel. Tasking a profile to an agent may depend on its propinquity to other agents have a recent history in transient event, statistics in the radio channel, bad cellular areas, and radio signal strength as a control.
The dynamic tasking-masking server receives most recently reported package from an adaptive agent, examines its event registry, and if appropriate offers a replacement profile to each agent.
Applicants disclose an apparatus and a method for operating the apparatus which is attached to a storage device providing a searchable event register data structure. The apparatus is further communicatively coupled to a plurality of adaptive agents which receive profiles, record data, and transmit packages of measurements according to their received profiles.
Referring now to
Referring now to
In an embodiment, the method of receiving a package of metrics further comprises determining if packages defined within the last profile may be disabled 127. It may be that a sufficient number of samples of a certain package have been acquired to meet the study need. It may be that all the packages of a particular study are no longer needed. Rather than retransmitting a profile simply to delete a portion, the recording and transmission of data only required for those portions may be suppressed by changing a mask. It may be that the profile already contains definitions for packages and studies that are not presently active. The enablement of recording and transmission of data defined in a portion of a profile already downloaded may be controlled by revising a profile mask 128.
Referring now to
In an embodiment the method further comprises:
Referring now to
In an embodiment generating a replacement multiple package profile comprises:
In an embodiment generating a replacement multiple package profile comprises:
In an embodiment generating a replacement multiple package profile comprises:
In an embodiment generating a replacement multiple package profile comprises:
A non-limiting exemplary rule-base includes any of truth tables, a sequence of states in a state machine, a collection of if-then tests on conditions or ranges of values, evaluations of mathematical expressions, equalities, or inequalities, expiration of time limits, logic equations, priorities of overriding rules, lists, a list of packages to enable or disable received from a tasking-masking server, a list of studies to enable or disable received from a tasking-masking server, and combinations of the above.
In an embodiment determining whether a profile on the adaptive agent should be replaced or masked comprises:
In an embodiment determining whether a profile on the adaptive agent should be replaced or masked comprises:
Referring now to
In an embodiment, a replacement multiple package profile comprises executable program instructions in binary code, in interpretive code, in procedural code, or in 4th generation language to manipulate data and measurements at the adaptive agent. The executable instruction may compress data into packages, summarize a series of events or behaviors, recognize a pattern, monitor a state machine, trigger an upload, change a destination uniform resource identifier, initiate a new package, change a package definition, mask or unmask portions of a profile to enable or disable subscribing to a datastream, enable or disable recording of measurements or behaviors, maintain a rolling history of observations, events, records, send notifications of an event, compute or trace.
A profile may be triggered to initiate measurements by some threshold value or transient condition. A profile may be triggered in a bad cell area, an internal status bit being set, a certain frame error rate being passed, or a record of crash recovery. A profile may be selected to operate or to be installed in a device within a configuration having certain measurements, internal status bits, transient event history, as well as location and calendar. A profile may prepare one or more packages for upload. Multiple profiles may coexist in one agent. A profile may adapt to different circumstances and record different performance measurement and user behaviors. A profile may determine that another profile is appropriate. A profile may trigger certain measurements and evaluations based on prior other measurements and conditions.
A profile comprises a schedule or trigger for upload, a fallback for upload failure, a destination URI and a plurality of measures to assemble into at least one package. In an embodiment the profile contains program code to perform computations or thresholds to determine if an upload is enabled or disabled. Program code within a profile may alter the measurements or sense a sequence of events which trigger a specialized set of measurements. The program code within a profile may determine the appropriate measurement for a condition or state.
In an embodiment the replacement multiple package profile comprises
In an embodiment the replacement multiple package profile comprises
In an embodiment the replacement multiple package profile comprises
In an embodiment the replacement multiple package profile comprises
In an embodiment the replacement multiple package profile comprises
In an embodiment the rule-based evaluation of the parameter-value pairs of said first package configures said at least one second package destination uri definition.
In an embodiment the rule-based evaluation of the parameter-value pairs of said first package configures said at least one second package parameter-value pairs to record definition.
In an embodiment the rule-based evaluation of the parameter-value pairs of said first package configures said at least one second package definition to select and perform a computation on a plurality of parameter-value pairs.
In an embodiment n the circuit to search through an event register data structure for package elements comprises a circuit to
In an embodiment the invention further comprises a circuit to reduce the number of packages, metrics, and uploads to be optimized according to relative priority among studies, the relative priority retrieved as a stored parameter in the event register data structure.
In an embodiment the circuit to receive a package of metrics recorded at an adaptive agent, comprises a circuit to match recorded parameter-value pairs within a range.
In an embodiment the circuit to receive a package of metrics recorded at an adaptive agent, comprises a circuit to match recorded user-behaviors.
In an embodiment the circuit to receive a package of metrics recorded at an adaptive agent identifies a plurality of studies for which the agent is qualified to sample performance metrics.
In an embodiment, the invention comprises an apparatus for dynamically tasking-masking an adaptive agent comprising
In an embodiment said study profile stored in an event registration data structure is at least location and time reported by an adaptive agent.
In an embodiment said study profile stored in an event registration data structure is at least error codes and device performance metrics recorded by an adaptive agent.
In an embodiment said study profile stored in an event registration data structure is at least user behaviors and applications recorded by an adaptive agent.
In an embodiment, a dynamic tasking-masking server determines a replacement profile because current configuration-state parameters have substantially changed from previous configuration-state parameters in at least one of physical location, internal state parameters, external environmental conditions, hardware status, software settings, and long interval from previous registration.
In an embodiment, registering with a tasking server comprises
The event registry is used in conjunction with the configuration-state data within each agent's most recently reported package to determine if a replacement profile is appropriate. Every persistent query being run on a given Mobile Service Intelligence Platform (MSIP) instance is issued in terms of a set of interesting event types, including both the characteristics of an event that would make it interesting (e.g., it was a call drop that occurred in New York City while talking to one of a small set of cells of interest) as well as specific aspects of the event in which the query is interested (e.g. the call setup latency, the average signal strength, a full record of all handoffs, etc.). These events and the context surrounding them are registered with a system-wide “event registry”, which is a complete record of all of the events being studied by all active queries on that MSIP instance.
An event registry comprises a set or envelope of locations within configuration-state space including time, space, internal state, and external environment where and when measurements would be pertinent for a study as well a population within the device census of hardware, software, release and configuration which controls which devices may submit measurements.
The event registry is used to generate profiles for devices. In a degenerate case, a single profile can be generated for all devices, which includes logic to look for all events of interest. Because the profile definition is very flexible (as cited in other patents), this is feasible for relatively small numbers of events. This simple technique becomes infeasible, however, as the number of persistent queries (and thus the number of distinct types of interesting events) grows. This is because the profile itself may grow too large, or the mobile device may be unduly taxed by the effort of looking for events which it has little or no chance of seeing. As the number of events grows, then, there is a more sophisticated technique called for.
Therefore, for large numbers of events, the event registry is used to build a map of the total device configuration space, including location in space and time as well as conditions regarding various state parameters (e.g. firmware revision, applications present on the device, features that have been used, etc.). This mapping subdivides the space into some number of (potentially overlapping) “configuration envelopes” within which events may occur (or may occur with higher likelihood than in the broader space). A device is then understood to be located within zero or more of these envelopes at any given time.
Armed with this mapping of configuration space, a profile can be generated for a given device in a given state which is customized to look only for events which may occur within those configuration envelopes that contain that device's point in configuration space. In addition, this profile is also programmed to look for “transition events” which signal that the device has changed it's envelope containment—either entering a new envelope or leaving one that it was previously in. Upon observing these transition events, the profile may direct the device to then report back in to the server (potentially immediately upon observing the transition) to receive a newly customized profile for the new space the device occupies in configuration space.
The mapping of the configuration space into these envelopes is a heuristic-based process, which may include many different considerations. Primary along these considerations is the amount of time a device is expected to remain within a given envelope. Because there is some latency, unreliability, and network load involved in reporting back into the server to get a newly customized profile, a profile should be configured to look for all critical events of interest that it might see before being able to change configurations. In other words, envelope transitions are expensive, and so decomposition of the configuration space into envelopes must balance the cost of having overly broad envelopes (i.e. looking for a larger number of events at once) with the cost of transitioning between envelopes (looking for only a small number of events at a time, but more often transitioning to new envelopes and thus fetching new profiles more often). Other important considerations include the relative priority of the queries interested in each event and the available device resources.
The present invention is distinguished from conventional systems by the Event Registry which:
The Event Registry comprises a circuit to:
Referring to
A dynamic tasking-masking server receives a package of configuration-state data from a collection server at a uniform resource identifier 311. An event registry identifies all studies and a profile may be offered by the tasking server to at least one of a plurality of agents 400 according to the configuration-state data contained in its most recently uploaded package. In an embodiment a first profile may identify a second profile appropriate to agent.
The present invention in an embodiment is distinguished by dynamically generating a plurality of profiles which may be pulled by an adaptive agent from a dynamic tasking server. The present invention in an embodiment is distinguished by providing at least one profile which may be pulled by an adaptive agent from a dynamic tasking-masking server. Each adaptive agent participates in determining tasking, at least by uploading its configuration-state.
Each individual profile controls what an agent measures and records, combines a plurality of measurements and recordations into at least one package. In an embodiment a package can determine it schedule for uploading. In a preferred embodiment, a package contains a schedule according to the tasking specification. At a first step in filtering, an agent controlled by a profile may discard data which is not useful.
Each profile has triggers to begin and end recording and triggers to upload. The triggers may be a timer or a threshold for a measured value or a user behavior or a combination. Each profile identifies which study it belongs to and a list of measurements. A profile may determine that an event is interesting or not which determines if and when a package is uploaded. Each profile has a destination uniform resource identifier to receive its upload. In an embodiment, a profile may have a statistical test on combinations of measurements to determine if measurements are significant and worthy of upload.
A plurality of discriminating collection servers 311 and 312 are located at uniform resource identifiers.
A non-limiting exemplary conventional processor is illustrated in
The present invention is easily distinguished from conventional systems by comprising a rule-based evaluation to select among a plurality of packages of measurements defined in a profile to store at an agent and transmit. The present invention is easily distinguished from conventional systems by at least one of a plurality of packages of measurements having a destination uniform resource identifier not equal to an other one of the plurality of packages. The present invention is easily distinguished from conventional systems by at least one of a plurality of packages of measurements having and upload schedule not equal to an other one of the plurality of packages. The present invention is easily distinguished from conventional systems by a mask which enables or disables operation of selected packages or selected studies comprising a plurality of packages within a profile. The method of operating a tasking-masking server is distinguished by determining if a profile on an agent should be masked or replaced based on the contents of a package uploaded from the agent, determining a mask to continue operation of the profile on the agent, and determining a replacement profile to be downloaded to the agent.
As is well known in the art, the techniques described herein can be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them. The techniques can be implemented as a computer program product, i.e., a computer program tangibly embodied in an information carrier, e.g., in a machine-readable storage device or in a propagated signal, for execution by, or to control the operation of, data processing apparatus, e.g., a programmable processor, a computer, or multiple computers. A computer program can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program can be deployed to be executed on one computer or on multiple computers at one site or distributed across multiple sites and interconnected by a communication network.
Method steps of the techniques described herein can be performed by one or more programmable processors, such as the illustration of
A number of embodiments of the invention have been described. Nevertheless, it will be understood that various modifications may be made without departing from the spirit and scope of the invention. For example, Wireless and Wired Communication Devices, Electronic Books, Games, and Computing Environments are non-limiting exemplary embodiments. As indicated herein, embodiments of the present invention may be implemented in connection with a special purpose or general purpose telecommunications device, including wireless and wireline telephones, other wireless communication devices, or special purpose or general purpose computers that are adapted to have comparable telecommunications capabilities. Embodiments within the scope of the present invention also include computer-readable media for carrying or having computer-executable instructions or electronic content structures stored thereon, and these terms are defined to extend to any such media or instructions that are used with telecommunications devices.
By way of example such computer-readable media can comprise RAM, ROM, flash memory, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to carry or store desired program code in the form of computer-executable instructions or electronic content structures and which can be accessed by a general purpose or special purpose computer, or other computing device.
When information is transferred or provided over a network or another communications connection (either hardwired, wireless, or a combination of hardwired or wireless) to a computer or computing device, the computer or computing device properly views the connection as a computer-readable medium. Thus, any such a connection is properly termed a computer-readable medium. Combinations of the above should also be included within the scope of computer-readable media. Computer-executable instructions comprise, for example, instructions and content which cause a general purpose computer, special purpose computer, special purpose processing device or computing device to perform a certain function or group of functions.
Although not required, aspects of the invention have been described herein in the general context of computer-executable instructions, such as program modules, being executed by computers in network environments. Generally, program modules include routines, programs, objects, components, and content structures that perform particular tasks or implement particular abstract content types. Computer-executable instructions, associated content structures, and program modules represent examples of program code for executing aspects of the methods disclosed herein.
The described embodiments are to be considered in all respects only as exemplary and not restrictive. The scope of the invention is, therefore, indicated by the appended claims rather than by the foregoing description. All changes which come within the meaning and range of equivalency of the claims are to be embraced within their scope.
Priority is claimed for this application from 22 Dec. 2009 the filing date of provisional application 61/289,304 attorney docket Q-PTNTR200925 Confirmation Number 7866 which is incorporated by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
61289304 | Dec 2009 | US |