The present disclosure generally relates to the evaluation of the performance of drilling tools, and more specifically recommending whether to rerun a drilling tool.
Oilfield operators perform a series of operations to obtain a producing well. Illustrative operations include drilling a borehole, obtaining logging measurements, inserting casing, cementing the casing in place, perforating the casing at selected points, and/or fracturing the formation. These operations generally require monitoring the drill tool. When a drill tool is active and downhole, monitoring its performance and operational condition can be difficult. Failure to properly monitor the drill tool can lead to inefficient operation, and even complete failure resulting in costly repairs and down time.
Illustrative embodiments of the present technology are described in detail below with reference to the following figures:
Certain aspects and examples of this disclosure are provided below. Some of these aspects and embodiments may be applied independently and some of them may be applied in combination as would be apparent to those of skill in the art. In the following description, for the purposes of explanation, specific details are set forth to provide a thorough understanding of embodiments of the application. However, it will be apparent that various embodiments may be practiced without these specific details. The figures and description are not intended to be restrictive.
In typical oil and gas drilling applications, a well bore is drilled to reach a reservoir. The well bore may include multiple changes in direction and may have sections that are vertical, slanted, or horizontal. A well bore casing is placed in the well bore to provide structure and support for the earthen well bore. The oil, gas, and/or other fluid deposit is then pumped out of the reservoir, through the well bore casing, and to the surface, where it is collected.
The well bore is often drilled using a drill string made up of tubular (e.g., drill pipe) and having a bottom hole assembly (“BHA”) that includes a drill bit at the distal end of the drill string. Drilling mud is conventionally circulated down the borehole through the drill string, out through the drill bit, and up an annulus between the tubular and the borehole wall. The drilling mud performs a number of functions, including cooling the drill bit and carrying cuttings to the surface. In some drilling systems, measurement while drilling (“MWD”) tool string or logging while drilling (“LWD”) tools are mounted in or close to the BHA to monitor the weight on bit, torque on bit, bending moment applied to the bit, and other related aspects of the drilling assembly. In this description, MWD and LWD are used interchangeably and the composition of the MWD tool string can include one or more constituent tools or sub-components. The MWD/LWD tool string provides information (data) to equipment at the surface and which can include real-time measurements of such things as weight, bending moment, vibration, and the like sensed by the MWD tool string. The data provided by the MWD tool string can be voluminous in nature because each of the measuring components of the tool string produces its own set(s) of data. The data provided by each component of the tool string will be relevant to certain diagnostic activities, but not to others. Therefore, when considering any one specific diagnostic activity or test, much of the received data is irrelevant for that particular analysis.
The presently disclosed technology provides solutions for efficiently processing the voluminous MWD/LWD data for assessing the operable condition of each of the constituent tools in the MWD tool string. More particular, these solutions enable the determination of whether individual components of the tool string meet predetermined operational metrics for continued use (next run downhole) in the drilling process without repair or refurbishment. Still further, these solutions provide for and facilitate a visible display representing the health and/or other sensed characteristics of the components of the MWD tool string. In these ways the present technology enhances the speed and efficiency of observing and evaluating the health and operating capabilities of the MWD tool string as a whole, or at the level of the tool sting's constituent components.
The instant descriptions are provided as exemplary examples only and are not intended to limit the scope, applicability, or configuration of the claimed methods and arrangements. Rather, disclosure of the technology via the exemplary examples provides those skilled in the art with sufficient description to enable their implementation of the solutions described herein. Regarding the present written description, the articles “a,” “an,” “the,” and “said” are intended to mean that there are one or more of the so-described elements. The terms “comprising,” “including,” and “having” are open-ended and are intended to be inclusive and mean that there may be additional elements other than those listed. Furthermore, any numerical examples in the following discussion are intended to be non-limiting, and thus additional numerical values, ranges, and percentages are within the scope of the disclosed examples.
Further, while this disclosure describes a land-based drilling system, it will be understood that the equipment and techniques described herein are applicable in sea-based systems, multilateral wells, all types of drilling systems, all types of rigs, measurement while drilling (MWD)/logging while drilling (LWD) environments, wired drill pipe environments, coiled tubing (wired and unwired) environments, wireline environments, and similar settings and environments.
The disclosure now turns to
Downhole tool 126 can take the form of a drill collar (i.e., a thick-walled tubular that provides weight and rigidity to aid the drilling process) or other arrangements known in the art. Further, downhole tool 126 can include various sensor and/or telemetry devices, including but not limited to: acoustic (e.g., sonic, ultrasonic, etc.) logging tools and/or one or more magnetic directional sensors (e.g., magnetometers, etc.). In this manner, as bit 114 extends the borehole through formations 118, the bottom-hole assembly (e.g., directional systems, and acoustic logging tools) can collect various types of logging data. For example, acoustic logging tools can include transmitters (e.g., monopole, dipole, quadrupole, etc.) to generate and transmit acoustic signals/waves into the borehole environment. These acoustic signals subsequently propagate in and along the borehole and surrounding formation and create acoustic signal responses or waveforms that are received/recorded by evenly spaced receivers. These receivers may be arranged in an array and can be evenly spaced apart to facilitate capturing and processing acoustic response signals at specific intervals. The acoustic response signals are further analyzed to determine borehole and adjacent formation properties and/or characteristics.
For purposes of communication, a downhole telemetry sub 128 can be included in the bottom-hole assembly to transfer measurement data to surface receiver 130 and to receive commands from the surface. In some implementations, mud pulse telemetry may be used for transferring tool measurements to surface receivers and receiving commands from the surface; however, other telemetry techniques can also be used without departing from the scope of the disclosed technology. In some embodiments, telemetry sub 128 can store logging data for later download at the surface when the logging assembly is recovered. These logging and telemetry assemblies consume power, which must often be routed through the directional sensor section of the drill string, and which can produce stray EM fields which interfere with the magnetic sensors.
At the surface, surface receiver 130 can receive and uplink signal from downhole telemetry sub 128 and can communicate the signal to data acquisition module 132. Module 132 can include one or more processors, storage mediums, input devices, output devices, software, and the like as described in further detail below. Module 132 can collect, store, and/or process the data received from tool 126 as described herein.
At various times during the drilling process, such as between two consecutive downhole runs, drill string 108 may be removed from the borehole as shown in example environment 101, illustrated in
Logging tool 134 can include various directional and/or acoustic logging instruments that collect data within borehole 116. A logging facility 144 includes a computer system, such as those described with reference to
Although
Turning now to
During a fracturing job, the fracturing fluid producing apparatus 220 can access the fluid source 230 for introducing/controlling flow of a fluid such as fracturing fluid in the fracturing system 200. While only a single fluid source 230 is shown, the fluid source 230 can include a plurality of separate fluid sources. Further, the fracturing fluid producing apparatus 220 can be omitted from the fracturing system 200. In turn, the fracturing fluid can be sourced directly from the fluid source 230 during a fracturing job instead of through the intermediary fracturing fluid producing apparatus 220.
The fracturing fluid can be an applicable fluid for forming fractures during a fracture stimulation treatment of the well 260. For example, the fracturing fluid can include water, a hydrocarbon fluid, a polymer gel, foam, air, wet gases, and/or other applicable fluids. In various embodiments, the fracturing fluid can include a concentrate to which additional fluid is added prior to use in a fracture stimulation of the well 260. In certain embodiments, the fracturing fluid can include a gel pre-cursor ahead of a fluid (such as liquid or substantially liquid) from fluid source 230. Accordingly, the gel pre-cursor with fluid can be mixed by the fracturing fluid producing apparatus 220 to produce a hydrated fracturing fluid for forming fractures.
Solid source 240 can include a volume of one or more solids for mixture with a fluid, such as fracturing fluid, to form a solid-laden fluid. The solid-laden fluid can be pumped into the well 260 as part of a solids-laden fluid stream that is used to form and stabilize fractures in the well 260 during a fracturing job. The one or more solids within the solid source 240 can include applicable solids that can be added to the fracturing fluid of the fluid source 230. Specifically, the solid source 240 can contain one or more proppants for stabilizing fractures after they are formed during a fracturing job, such as after the fracturing fluid flows out of the formed fractures. For example, the solid source 240 can contain sand, bauxite, other mined materials, manufactured ceramic or other materials, or combinations thereof.
Fracturing system 200 can also include additive source 270. The additive source 270 can contain/provide one or more applicable additives that can be mixed into fluid, such as fracturing fluid, during a fracturing job. For example, the additive source 270 can include solid-suspension-assistance agents, gelling agents, weighting agents, and/or other optional additives to alter the properties of the fracturing fluid. The additives can be included in the fracturing fluid to reduce pumping friction, to reduce or eliminate the fluid's reaction to the geological formation in which the well is formed, to operate as surfactants, and/or to serve other applicable functions during a fracturing job. As will be discussed in greater detail later, the additives can function to maintain solid particle suspension in a mixture of solid particles and fracturing fluid as the mixture is pumped down the well 60 to one or more perforations.
The pump and blender system 250 functions to pump fracture fluid into the well 260. Specifically, pump and blender system 250 can pump fracture fluid from fluid source 230, such as fracture fluid that is received through the fracturing fluid producing apparatus 220 and into the well 260 for forming and potentially stabilizing fractures as part of a fracture job. Pump and blender system 250 can include one or more pumps. Specifically, the pump and blender system 250 can include a plurality of pumps that operate together; for example, concurrently to form fractures in a subterranean formation as part of a fracturing job. The one or more pumps included in the pump and blender system 50 can be an applicable type of fluid pump. For example, the pumps in the pump and blender system 250 can include electric pumps and/or hydrocarbon and hydrocarbon mixture powered pumps. Specifically, the pumps in the pump and blender system 250 can include electric pumps, diesel powered pumps, natural gas powered pumps and diesel combined with natural gas powered pumps.
The pump and blender system 250 can also function to receive the fracturing fluid and combine it with other components and solids. Specifically, the pump and blender system 250 can combine the fracturing fluid with volumes of solid particles, such as proppant, from the solid source 240 and/or additional fluid and solids from the additive source 270. In turn, the pump and blender system 250 can pump the resulting mixture down the well 260 at a sufficient pumping rate to create or enhance one or more fractures in a subterranean zone, for example, to stimulate production of fluids from the zone. While the pump and blender system 250 is described to perform both pumping and mixing of fluids and/or solid particles, in various embodiments, the pump and blender system 250 can function to just pump a fluid stream, such as a fracture fluid stream, down the well 260 to create or enhance one or more fractures in a subterranean zone.
The fracturing fluid producing apparatus 220, fluid source 230, and/or solid source 240 may be equipped with one or more monitoring devices (not shown). The monitoring devices can be used to control the flow of fluids, solids, and/or other compositions to the pumping and blender system 250. Such monitoring devices can effectively allow the pumping and blender system 250 to source from one, some or all of the different sources at a given time. In turn, the pumping and blender system 250 can provide only fracturing fluid into the well at some times, just solids or solid slurries at other times, and combinations of those components at yet other times.
After the MWD tool 310 collects data within borehole 116, the system 300 advances to the analytical electronic device 320. In one aspect, the electronic device 320 performs one or more data-analytic processes to assist or produce a determination as to whether or not run the MWD tool string downhole again, or send it back for maintenance, repair or refurbishment. For example, the electronic device 320 can determine the tool's operational capability concerning whether to be sent downhole again in a subsequent run of the tool string based on processing the binary data 321. In at least one aspect, the binary data 321 can be downloaded or outputted from the MWD tool 310 to the electronic device 320. The electronic device 320 then applies a filter 322 to the binary data 321. In one example, the filter 322 sifts the binary data 321 and segregates it into data sets that individually constitute a diagnostic data set that can be processed to determine the operational capability of respective ones of the constituent tool of the MWD tool string. By way of example, operational capability or condition can include information about the health, fitness, and/or capability to operate properly of any one or more of the components that make-up the MWD tool string.
In some instances, data retrieved from certain components of the tool string becomes the diagnosable or diagnostic data that upon analysis, indicates the operational capability/condition of the component from which the data was retrieved/received. In other instances, the analysis may be of data from one or more components, but is predictive of an overall condition of the MWD tool string. Examples of such data represent such operational conditions as vibration, current and voltage. In another aspect, the diagnostic data can represent information that is beneficial to certain persons, depending upon the role they fulfill, examples of which can include field engineer, shop technician or system engineer. For instance, the diagnostic data can provide useful information to a field engineer at a sensitive time during which a determination must be made as to whether or not to run the tool string (or tool string component) downhole again or send it out for service/refurbishment. In another example, the diagnostic data can provide useful information to a shop technician in determining and/or to diagnose what constituent tool of a MWD tool string to repair or replace. In another example, the diagnostic data can provide useful information to a system engineer for designing and/or modifying future designs of the MWD tool string or its components in order to remedy existing deficiencies or incorporate improvements.
After filtering 322 the binary data 321 into data sets (e.g., the data sets each representing a singular tool of the MWD tool string as a whole), in one example, the data sets of each respective constituent tool of the MWD tool string can be converted to engineering units by known data processing techniques or processes known in the art. Such conversion facilitates and enables the benefits of data analysis and reporting. Upon completion of processing 323 the data into data sets, the data sets can be input into a post processing orchestrator 324.
The post processing orchestrator 324, in at least one aspect, can accommodate and/or receive filters, algorithms, and diagnostic assessments 325 either directly or indirectly through a runtime plugin 333. In some examples, the filters, algorithms, and diagnostic assessments 325 are unique and/or predetermined to apply to specific data sets based on characteristics of the data sets. For example, certain filters, algorithms and diagnostic assessments 325 can be applied to a data set of a particular constituent component of the tool string to derive quantifications of vibration, rotation, temperature, voltage, current and the like concerning that component tool of the MWD tool string, or the tool string in its entirety. The filters, algorithms, and diagnostic assessment 325 can be stored in advance prior to inputting the algorithms, filters, and/or diagnostic assessment 325 into the post processing orchestrator 324 either directly or indirectly through a runtime plugin 333.
The runtime plugin 333, in some examples, can be configured to permit updating of the post processing orchestrator 324 with revised, new, and/or updated algorithms, filters, and/or diagnostic assessment. In one instance, the filters, algorithms, and diagnostic assessment 325 can be updated or new algorithms, filters, and/or diagnostic assessments can be inserted. In such an example, the runtime plugin 333 can receive the newly updated algorithms, filters, and/or diagnostic assessments from the filters, algorithms, and diagnostic assessment 325 which can be outputted into the post processing orchestrator 324. Updating the post processing orchestrator 324 via the runtime plugin 333 improves the speed of deployment of the new algorithms, filters, and/or diagnostic assessment without having to recompile a new software in its entirety or reprogram an original software and similarly permits instructions to be executed by a processor of the electronic device 320. Additionally, the runtime plugin 333 can be configured to receive and utilize additional algorithms that helps drive displayable visualizations of operable conditions of constituent tool of the MWD tool string. This can eliminate the need to shut down the drilling operation or minimize potential downtime to perform an update to the post processing orchestrator 324 or introduce new filters, algorithms, and/or diagnostic assessments into the system 300.
The post processing orchestrator 324, in one example, can process (via a local and/or remote processors 326) the data sets inputted from the data processing 323 with filters, algorithms, and/or diagnostic assessments inputted from the runtime plugin 333 and/or from the filters, algorithms, and diagnostic assessment 325 to the post processing orchestrator 324. For instance, a data set can be processed using an algorithm specifically selected for that data set. In such example, the processor can output a detailed analysis 327 including tool-condition data yielded by the now algorithm-processed data set. The tool-condition data can correspond to a respective constituent tool. In some aspects, the tool-condition data can represent the health, characteristics, and the like of a respective constituent tool.
The processor 326, in some examples, can proceed to determine whether the tool-condition data meets a predetermined operational capability threshold (requirement) to be operated in an immediately subsequent run of the tool string. The operational capability requirement, in some examples, can include a set threshold regarding the health, characteristic, quality, potential, and the like of a constituent tool of the MWD tool string to undergo redeployment and perform a subsequent run. Exemplarily, the threshold level can be predetermined/preset. The process to determine whether the tool meets a predetermined operational capability requirement can be determined by an algorithm or a human end user (e.g., field engineer, system engineer, and/or shop technician).
The processor 326, in some examples, can be a local processor such as an electronic device 320 located at the rig site. In another example, the processor can be a remote processor such as in a virtual processing environment 340 and/or an electronic device 320 located off site. The remote processor can be one or more virtual processor 340. In such example, the remote and local processor(s) can work synchronously (i.e., multi-processing and/or concurrent processing). In this regard, synchronization is defined as several processes accessing and processing data sets concurrently. That is, the several processors 326 (local processor on an on-site electronic device 320 and remote processor 340) can process data simultaneously in parallel, in series, or in any combination thereof. This configuration facilitates the desired scalability that enables rapidly assessing the operatable condition of the MWD tool string, or its constituent components, by running multiple processors simultaneously. Each constituent component tool can encompass very large amounts of data distilled down into data sets comprising gigabytes of data. This tandem configuration permits multiple processors 326 to access and process data synchronously, thereby increasing the efficiency and speed of determining the operable condition of the members of the MWD tool string (or the string itself) in order to determine whether to re-run the tool, or even just lay one component out, but run the tool again on the next downhole trip.
Upon the processor 326 processing the data sets into tool-condition data of the respective constituent tools, the system 300 can proceed to render visualizations of the deduced tool conditions based on outputs from the processor 326 via a specialty visualizer 328. By way of example, the specialty visualizer 328 can display each constituent tool of the MWD tool string. Such display or visible representation, for example, can display a recommendation 329 of whether a subsequent run of the tool string based on the respective tool-condition data meet a predetermined operation capability threshold or other predetermined requirement. In such example, the constituent tools of the MWD tool string can be individually displayed. In some aspects, the recommendation 329 can yield a Go Status Visualization 330A (accompany the next downhole trip) or a No-Go Status Visualization 330B (return the tool to the shop for maintenance). The visualization of the individual constituent tools, in some examples, can be color-coded to discriminate between Go and No-Go Status. The visualization of the individual constituent tool, in another example, can include a second color to indicate the respective constituent tool is not capable of a subsequent run. In other aspects, text or symbols can be used to indicate the capability of the constituent tool to be run in on the next trip downhole.
The specialty visualizer 328, in at least one example, can provide a further visualization based on a detailed description of the MWD tool string. The visualization based on the detailed description can include a drill-down or drop-down menu. For example, the visualization based on a detailed description can display an entire MWD tool string that is broken down into its respective constituent parts and depict such characteristics as vibration, voltage, current and the like. In another example, the characteristic(s) of the respective constituent tool can be displayed in waveforms.
The disclosure now turns to
The overview configuration 400A, in some instances, can be interactive wherein a user may select an individual constituent tool 402A of the tool string 401A for a second level analysis 400B or a further detailed analysis on the respective subcomponents 401B (see
Specific characteristics of the different constituent tools 402A can be displayed in a similar manner as the characteristics of the overview configuration 400A are displayed as described above. The individual characteristics can further include, by way of example, the present and maximum current 402B, voltage 403B, RPM 404B, and temperature 405B of the subcomponents 401B.
At block 5004, the process 5000 includes selecting, for each of the data sets, a processing algorithm from a store of predetermined algorithms, based on characteristics of the respective data set. In some aspects, the store of predetermined algorithms can include a plugin configured to receive one or more new algorithms or visualizations.
At block 5006, the illustrated process 5000 includes processing, substantially simultaneously, each data set with the algorithm selected for that data set. The computer processor can process the data sets synchronously. In some embodiments, the computer processor includes one or more virtual processors/servers housed in a cloud-based environment.
At block 5008, the process 5000 includes determining, based on respective tool-condition data output by each algorithm-processed data set, whether the tool that corresponds to the respective data set meets a predetermined operational capability requirement (threshold) to be operated (included) in the next downhole run of the drill string. GO/NO GO recommendations can be visually displayed for instantaneous operator appreciation. Other operational aspects can also be visually represented and configured to be user interactive for easy navigation and aspect drill-down, often via engageable drop-down menus.
In some examples, the process can include recommending at least a go or no-go decision based on the determination of whether the tool that corresponds to the respective data set meets a predetermined operational capability requirement to be operated in the subsequent run of the MWD tool string.
Computing system 600 can be (or may include) a distributed system in which the functions described in this disclosure can be distributed within a datacenter, multiple data centers, a peer network, etc. In some embodiments, one or more of the described system components represents many such components each performing some or all of the functions for which the component is described. In some examples, the components can be physical or virtual devices.
Example system 600 includes at least one processing unit (CPU or processor) 610 and connection 605 that couples various system components including system memory 615, such as read-only memory (ROM) 620 and random-access memory (RAM) 625 to processor 610. Computing system 600 can include a cache of high-speed memory 612 connected directly with, in close proximity to, or integrated as part of processor 610.
Processor 610 can include any general-purpose processor and a hardware service or software service, such as services 632, 634, and 636 stored in storage device 630, configured to control processor 610 as well as a special-purpose processor where software instructions are incorporated into the actual processor design. Processor 610 may essentially be a completely self-contained computing system, containing multiple cores or processors, a bus, memory controller, cache, etc. A multi-core processor may be symmetric or asymmetric.
To enable user interaction, computing system 600 includes an input device 645, which can represent any number of input mechanisms, such as a microphone for speech, a touch-sensitive screen for gesture or graphical input, keyboard, mouse, motion input, speech, etc. Computing system 600 can also include output device 635, which can be one or more of a number of output mechanisms known to those of skill in the art. In some instances, multimodal systems can enable a user to provide multiple types of input/output to communicate with computing system 600.
Computing system 600 can include communications interface 640, which can generally govern and manage the user input and system output. The communication interface may perform or facilitate receipt and/or transmission wired or wireless communications via wired and/or wireless transceivers, including those making use of an audio jack/plug, a microphone jack/plug, a universal serial bus (USB) port/plug, an Apple® Lightning® port/plug, an Ethernet port/plug, a fiber optic port/plug, a proprietary wired port/plug, a BLUETOOTH® wireless signal transfer, a BLUETOOTH® low energy (BLE) wireless signal transfer, an IBEACON® wireless signal transfer, a radio-frequency identification (RFID) wireless signal transfer, near-field communications (NFC) wireless signal transfer, dedicated short range communication (DSRC) wireless signal transfer, 802.11 Wi-Fi wireless signal transfer, wireless local area network (WLAN) signal transfer, Visible Light Communication (VLC), Worldwide Interoperability for Microwave Access (WiMAX), Infrared (IR) communication wireless signal transfer, Public Switched Telephone Network (PSTN) signal transfer, Integrated Services Digital Network (ISDN) signal transfer, 3G/4G/5G/LTE cellular data network wireless signal transfer, ad-hoc network signal transfer, radio wave signal transfer, microwave signal transfer, infrared signal transfer, visible light signal transfer, ultraviolet light signal transfer, wireless signal transfer along the electromagnetic spectrum, or some combination thereof.
Communication interface 640 may also include one or more Global Navigation Satellite System (GNSS) receivers or transceivers that are used to determine a location of the computing system 600 based on receipt of one or more signals from one or more satellites associated with one or more GNSS systems. GNSS systems include, but are not limited to, the US-based Global Positioning System (GPS), the Russia-based Global Navigation Satellite System (GLONASS), the China-based BeiDou Navigation Satellite System (BDS), and the Europe-based Galileo GNSS. There is no restriction on operating on any particular hardware arrangement, and therefore the basic features here may easily be substituted for improved hardware or firmware arrangements as they are developed.
Storage device 630 can be a non-volatile and/or non-transitory and/or computer-readable memory device and can be a hard disk or other types of computer readable media which can store data that are accessible by a computer, such as magnetic cassettes, flash memory cards, solid state memory devices, digital versatile disks, cartridges, a floppy disk, a flexible disk, a hard disk, magnetic tape, a magnetic strip/stripe, any other magnetic storage medium, flash memory, memristor memory, any other solid-state memory, a compact disc read only memory (CD-ROM) optical disc, a rewritable compact disc (CD) optical disc, digital video disk (DVD) optical disc, a Blu-ray disc (BDD) optical disc, a holographic optical disk, another optical medium, a secure digital (SD) card, a micro secure digital (microSD) card, a Memory Stick® card, a smartcard chip, a EMV chip, a subscriber identity module (SIM) card, a mini/micro/nano/pico SIM card, another integrated circuit (IC) chip/card, random access memory (RAM), static RAM (SRAM), dynamic RAM (DRAM), read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), flash EPROM (FLASHEPROM), cache memory (L1/L2/L3/L4/L5/L6), resistive random-access memory (RRAM/ReRAM), phase change memory (PCM), spin transfer torque RAM (STT-RAM), another memory chip or cartridge, and/or a combination thereof.
Storage device 630 can include software services, servers, services, etc., that when the code that defines such software is executed by the processor 610, it causes the system to perform a function. In some embodiments, a hardware service that performs a particular function can include the software component stored in a computer-readable medium in connection with the necessary hardware components, such as processor 610, connection 605, output device 635, etc., to carry out the function.
Embodiments within the scope of the present disclosure may also include tangible and/or non-transitory computer-readable storage media or devices for carrying or having computer-executable instructions or data structures stored thereon. Such tangible computer-readable storage devices can be any available device that can be accessed by a general purpose or special purpose computer, including the functional design of any special purpose processor as described above. By way of example, and not limitation, such tangible computer-readable devices can include RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other device which can be used to carry or store desired program code in the form of computer-executable instructions, data structures, or processor chip design. When information or instructions are provided via a network or another communications connection (either hardwired, wireless, or combination thereof) to a computer, the computer properly views the connection as a computer-readable medium. Thus, any such connection is properly termed a computer-readable medium. Combinations of the above should also be included within the scope of the computer-readable storage devices.
Computer-executable instructions include, for example, instructions and data which cause a general-purpose computer, special purpose computer, or special purpose processing device to perform a certain function or group of functions. Computer-executable instructions also include program modules that are executed by computers in stand-alone or network environments. Generally, program modules include routines, programs, components, data structures, objects, and the functions inherent in the design of special-purpose processors, etc. that perform tasks or implement abstract data types. Computer-executable instructions, associated data structures, and program modules represent examples of the program code means for executing steps of the methods disclosed herein. The particular sequence of such executable instructions or associated data structures represents examples of corresponding acts for implementing the functions described in such steps.
Other embodiments of the disclosure may be practiced in network computing environments with many types of computer system configurations, including personal computers, hand-held devices, multi-processor systems, microprocessor-based or programmable consumer electronics, network PCs, minicomputers, mainframe computers, and the like. Embodiments may also be practiced in distributed computing environments where tasks are performed by local and remote processing devices that are linked (either by hardwired links, wireless links, or by a combination thereof) through a communications network. In a distributed computing environment, program modules may be located in both local and remote memory storage devices.
The various embodiments described above are provided by way of illustration only and should not be construed to limit the scope of the disclosure. For example, the principles herein apply equally to optimization as well as general improvements. Various modifications and changes may be made to the principles described herein without following the example embodiments and applications illustrated and described herein, and without departing from the spirit and scope of the disclosure. Claim language reciting “at least one of” a set indicates that one member of the set or multiple members of the set satisfy the claim.
The various examples described above are provided by way of illustration only and should not be construed to limit the scope of the disclosure. For example, the principles herein apply equally to optimization as well as general improvements. Various modifications and changes may be made to the principles described herein without following the example aspects and applications illustrated and described herein, and without departing from the spirit and scope of the disclosure.
Claim language or other language in the disclosure reciting “at least one of” a set and/or “one or more” of a set indicates that one member of the set or multiple members of the set (in any combination) satisfy the claim. For example, claim language reciting “at least one of A and B” or “at least one of A or B” means A, B, or A and B. In another example, claim language reciting “at least one of A, B, and C” or “at least one of A, B, or C” means A, B, C, or A and B, or A and C, or B and C, or A and B and C. The language “at least one of” a set and/or “one or more” of a set does not limit the set to the items listed in the set. For example, claim language reciting “at least one of A and B” or “at least one of A or B” can mean A, B, or A and B, and can additionally include items not listed in the set of A and B.