The present disclosure relates to operations performed in hydrocarbon-carrying reservoirs, for example, drilling operations, and more particularly to obtaining information about the reservoirs from data obtained from drilling operations.
Hydrocarbons (for example, petroleum, natural gas, or combinations of them) entrapped in subsurface reservoirs of subterranean zones can be produced to the surface through wellbores. A wellbore can be drilled into the subterranean zone (for example, a formation, a portion of a formation, or multiple formations) from a surface to a desired depth and in desired orientations (for example, vertical, horizontal, angular, or combinations of them). The hydrocarbons are entrapped in the reservoirs under pressure. When the well is completed, the reservoir pressure forces the hydrocarbons into the wellbore, and the hydrocarbons are lifted to the surface.
The subsurface reservoirs define a porous network through which the hydrocarbons flow. Information about the porous network and other features of the subsurface reservoirs can improve well operations including drilling and production.
The present disclosure describes methods and systems, including computer-implemented methods, computer program products, and computer systems for obtaining relative permeability ratio from wellbore drilling data.
Certain aspects of the subject matter described here can be implemented as a method. A section of a wellbore is drilled in a subterranean zone including a subsurface reservoir in which hydrocarbons are entrapped. The hydrocarbons include a multiphase fluid including oil phase and water phase. A relevant suite of logs of rock in the section of the wellbore is determined. Water saturation is determined from the relevant suite of logs. A relative permeability ratio of the rock in the section to a flow of the oil phase and the water phase is determined. Using the relative permeability ratio, a flow rate of the oil phase or a flow rate of the water phase through the rock is determined.
Aspects combinable with other aspects described here can include the following features. To determine the relative permeability ratio, a flow rate of the oil phase through the section of the wellbore is measured. A flow rate of the water phase through the section of the wellbore is measured. A formation volume factor and a viscosity for each of the oil phase and the water phase are determined from pressure, volume and temperature of the oil phase and the water phase.
Aspects combinable with other aspects described here can include the following features. To determine the relative permeability ratio, a drawdown pressure is imposed over a pre-determined depth interval through the section of the wellbore. A stabilized well fluid flow rate through the section of the wellbore at the drawdown pressure over the pre-determined depth interval is recorded.
Aspects combinable with other aspects described here can include the following features. The drawdown pressure is a first drawdown pressure. To determine the relative permeability ratio, multiple drawdown pressures are imposed over the pre-determined depth interval through the section of the wellbore. Each drawdown pressure is greater than the first drawdown pressure. For each drawdown pressure, a respective stabilized well fluid flow rate through the section of the wellbore at the drawdown pressure over the pre-determined depth interval is recorded.
Aspects combinable with other aspects described here can include the following features. To determine the relative permeability ratio, a water saturation and a total mobility of the liquid phase through the rock in the section is determined using Eq. 11 (described below) where R is determined from the slope of
Aspects combinable with other aspects described here can include the following features. A plot of the relative permeability ratio versus water saturation and the total mobility of the water phase for the multiple drawdown pressures and the first drawdown pressure is generated.
Aspects combinable with other aspects described here can include the following features. The aspects can be implemented entirely or in part as computer-implemented methods. The computer-implemented methods can be implemented as computer-readable media (for example, non-transitory computer-readable media) storing instructions executable by one or more processors. The computer-implemented methods can be implemented using a computer system including one or more processors that can execute such computer instructions stored on such a computer-readable medium.
Like reference numbers and designations in the various drawings indicate like elements.
Well resistivity logging is a method of characterizing the relative amounts of fluid types within a rock or sediment in a wellbore by measuring an electrical resistivity of the rock or sediment. The resistivity log correlates the resistivity of a rock at a depth in the wellbore to that depth and is a function of the relative amounts of fluid types present in the pores of the rock. Resistivity of a rock represents the rock's strength to oppose the flow of electric current. The rock on a subsurface hydrocarbon reservoir can carry multiphase fluids, for example, liquid petroleum, liquid water, natural gas, other fluid components, or combinations of them. The water can include dissolved salts which make the water highly conductive. Thus, the resistivity of water in the wellbore can be low. Conversely, liquid petroleum, being a dielectric fluid, can have high resistivity and low conductivity. The natural gas can have higher resistivity compared to liquid water.
Well resistivity logging can be implemented while drilling the wellbore. In some implementations, the logging equipment can be included in the drilling assembly that drills the wellbore such that resistivity logs are taken while the wellbore is being drilled. The output of resistivity logging can be used to determine, among other things, water saturation and hydrocarbon saturation (or oil saturation) of rock in the wellbore. Water saturation is a fraction or percentage of the pore volume filled with liquid water. Oil saturation is a fraction or percentage of the pore volume filled with liquid hydrocarbons. It is the output of density log that can be used to determine porosity of the rock
Porous media are characterized by a permeability, which is a property of a material to allow fluids to pass through. Flow through porous media, such as the rock in the subsurface reservoirs, is modeled using Darcy's flow equations. Darcy's flow equations include an absolute permeability term (K) to account for the permeability of the porous media itself. When only a single fluid phase exists in the porous medium, effective permeability of medium to that phase is the same as the absolute permeability of the media regardless of the fluid type. But, when porous media contains multiple fluids, the displacement of each phase is impeded by the presence of other phases and hence the effective permeability to a particular phase in the presence of other phase(s) is lower than the absolute medium permeability and is a function of the particular phase saturation. Darcy's flow equations therefore include a relative permeability term (Kr) to account for multiphase flow. The relative permeability term (Kr) is measured through steady state or unsteady state laboratory experiments. The relative permeability term is fluid type and saturation dependent, that is, oil and water have respective relative permeability terms which are denoted by Kro and Krw, respectively and are a function of the individual fluid saturations. The ratio of relative permeabilities of the porous media to two different types of fluids is called the relative permeability ratio. For example, the relative permeability ratio of water to oil (Krr) is determined as Krw/Kro.
In certain approaches, the relative permeability ratio is determined by separately determining the relative permeability ratio of water (Krw) and the relative permeability ratio of oil (Kro). This disclosure describes methods, for example, computer-implemented methods, to determine a relative permeability ratio (Krr) directly from wellbore drilling data, in particular, without needing to separately determine Kro and Krw. This disclosure assumes an oil-water system with no gaseous or other phases. In some implementations, Krr can be determined directly by modifying flow equations, including Darcy's flow equations, as described below, to model flow through the subsurface reservoir rock and to predictively determine an expected flowrate of hydrocarbons through the wellbore.
In wellbore drilling situations that use a drilling rig, a drilling fluid circulation system circulates (or pumps) drilling fluid (for example, drilling mud) with one or more mud pumps. The drilling fluid circulation system moves drilling mud (fluid, F) down into the wellbore 102 through special pipe referred to in the art as drill pipe (for example, the drilling tools 104), and drill collars which are connected to the drill sting. The fluid exits through ports (jets) in the drill bit, picking up cuttings C and carrying the cuttings up the annulus of the wellbore 104. The mud pump takes suction from mud tanks and pumps mud F out discharge piping, up the stand pipe, through rotary hoses, through Kelly or top drive unit, and into a central bore of the drill pipe, drill collars, and bit. Mud F and cuttings C return to the surface up annulus. At the surface, the mud and cuttings leave the wellbore through an outlet, and are sent to a cuttings removal system via mud return line. At the end of the return lines, mud F and cutting C are flowed onto a vibrating screen known in the art as a Shale Shaker. Finer solids may be removed by a sand trap. The mud may be treated with chemicals stored in a chemical tank and then provided into the mud tank, where the process is repeated.
The drilling fluid circulation system delivers large volumes of mud flow under pressure for drilling rig operations. The circulation system delivers the mud to the drill stem to flow down the string of drill pipe and out through the drill bit appended to the lower end of the drill stem. In addition to cooling the drill bit, the mud hydraulically washes away the face of the wellbore through a set of openings in the drill bit. The mud additionally washes away debris, rock chips, and cuttings, which are generated as the drill bit advances. The circulation system flows the mud in an annular space on the outside of the drill stem and on the interior of the open hole formed by the drilling process. In this manner, the circulation system flows the mud through the drill bit and out of the wellbore.
The mud flows through the drill stem and the annular space at a sufficient velocity to move debris, chips and cuttings, which are heavier than the mud, to the surface. The velocity of the mud should also be sufficient to cool the drill bit. The wellhead pressures at the pump are sufficiently high to flow the mud at the desired velocity and also to overcome substantial flow pressure resistance along the flow path. In some situations, the circulation system can flow the mud through the drill bit and the wellbore at high volumetric flow rates (for example, 500 to 1,000 gallons per minute) and at pressures as high as 5,000 PSI. The circumstances under which the drilling rig is used can cause the drill string to experience a pack off, for example, when the cuttings or debris (or both) clog the flow path of the drilling mud in the annulus between the borehole and the drill string, drill collars, or drill bit, or combinations of them. Consequently, a downhole pressure can rapidly increase resulting in fracture of one or more downhole formations and possibly even loss of the wellbore.
The drilling system can include logging equipment 106 to measure resistivity of rock in a section of the wellbore, as described above. In some implementations, the logging equipment 106 can be included with other tools in the drilling assembly. The drilling system can be connected to a computer system 108. In particular, the logging equipment 106 can be connected to the computer system 108 to receive instructions and to transmit data, for example, resistivity data, to the computer system. In response to receiving the resistivity data, the computer system 108 can implement methods described in this disclosure.
At 304, a relevant suite of logs of the rock in the section of the wellbore is obtained. The relevant suite of logs including, for example, the resistivity log 200, can be obtained using techniques described earlier. The relevant suite of logs also include the density logs. Together, the resistivity logs and the density logs are used in Archie's equation to calculate water saturation. For example, water saturation can be calculated using Eqs. 1.i-1.iv.
In Eqs. 1.i-1.iv, Sw is water saturation (fraction), Rw is resistivity of formation brine, φ is formation porosity (fraction) and Rt is resistivity of hydrocarbon bearing formation.
The relevant suite of logs can be interpreted for water saturation (sw). Zones of constant water saturation (for example, zones 202, 204, 206) are then tested, and the relative amounts of oil and water flow are measured.
At 306, a relative permeability ratio of rock in the section is determined. For example, by computationally solving equations described later, the flow data are converted to a plot of relative permeability ratio as a function of average water saturation (Krr(sw)) and saturation dependent total mobility (Mt(sw)). In particular, Krr(sw) is determined directly by solving the equations described below and, in particular, without needing to separately determine Kro or Krw.
At 308, a flow rate of oil phase or water phase through the rock in the section is determined. For example, the flow rate can be determined predictively, that is, without needing to measure the flow rate. In sum, this disclosure describes techniques to develop equations that would be trained with measured oil and water flow-rate information and would then be able to predict the oil and water flow information in other rock with similar rock-types either in the current well or in adjacent future wells.
Conventional steady state and unsteady state relative permeability (Kr) experiments are carried out on restored cores having limited dimensions and whose initial water saturation and wettability may not be completely representative of in-situ conditions. The techniques described in this disclosure can enable acquiring Krr data at larger scale and at in-situ conditions of initial water saturation and wettability thereby making results more reliable. Steady state Kr experiment on a single core takes more time (for example, about four weeks), whereas Krr acquisition on entire pay interval can be done by implementing the techniques described here in significantly lesser time (for example, within hours). Steady state Kr measurement does not give reliable critical water saturation, while unsteady state Kr experiment do not provide Kr data for all saturations less than the breakthrough saturation. Implementation of the techniques described in this disclosure presents provides a more reliable estimate of critical water saturation and residual oil saturation.
In the following paragraphs, the theoretical bases for implementing the techniques described in this disclosure are presented. In some implementations, the theoretical bases, which includes multiple equations, can be implemented by a computer system, for example, the computer system 500 described with reference to
The original Darcy's flow equation Eq. 2 was derived for flow of single phase incompressible liquid, particularly the equation was derived for use in the field of hydrology to study the flow of water in the water table.
In Eq. 2, q is the fluid flow rate through porous media having a permeability (k), a cross-sectional area (A), viscosity (μ), formation volume factor (β) across a pressure drop (ΔP) and length (Δx). In hydrocarbon reservoir studies, single phase flow is an idealistic assumption, this is because the drainage process through which oil accumulates in originally water bearing sands does not completely eliminate the connate water. In addition, most reservoirs either experience aquifer support or some sort of fluid injection (for example, gas, water surfactants) for pressure support or improvement of sweep. Therefore a correction term is incorporated into Eq. 3 to account for the reduction in the flow of the main phase in the presence of other phase(s) within the rock pore system. This correction term is referred to as relative permeability.
In general, the equation for radial flow under semi-steady state conditions is given by revised Eq. 3.
Relative permeability is measured in the laboratory using the steady state approach or unsteady state approach.
Steady state techniques to measure relative permeability are known. Such techniques allow direct measurement of relative permeability data of core samples under reservoir conditions using live oil or synthetic formulation, for example, brine.
In certain known approaches, once the Kro and Krw data have been determined as a function of water saturation Sw, the flow of each phase can be independently determined using Eqs. 4 and 5.
In the approach described in this disclosure, an expression can be derived for the produced water-oil ratio at in-situ conditions by dividing Eq. 5 with Eq. 4 resulting in Eq. 6.
An expression for relative permeability ratio can be obtained from Eq. 6 as shown in Eq. 7.
Also an expression for the total liquid rate can be obtained by adding Eq. 4 and Eq. 5 as shown in Eq. 8.
Eq. 8 can be rewritten as Eqs. 9 and 10.
Over a moderate range of pressures, Mt can be sufficiently assumed as a sole function of saturation when reservoir fluids are of low compressibility and viscosibility. This condition would be sufficient for flow of liquid phase above bubble point pressure.
When a flow-test is performed on a known interval length of a reservoir at increasing ΔP, then the plot of qt vs ΔP will yield a slope R from which Mt can be determined as shown in Eq. 11.
In Eq. 11, h is the flow interval and k is the average interval permeability. From the foregoing equations, phase flow-rates at any saturation can be computed by rearranging Eq. 9 and Eq. 6 as shown in Eqs. 12 and 13.
Eqs. 12 and 13 can be solved simultaneously for each phase flow-rate to obtain flow rate for the oil phase (qo) and flow rate for the water phase (qw) as shown in Eqs. 14 and 15, respectively.
Any water saturation interval where the maximum ΔP (Pi-Pb) produces single phase oil is the operational critical water saturation Swcr* and any water saturation where the maximum ΔP produces single phase water is the operational residual oil saturation Sor*. In the foregoing equations, Pi is initial reservoir pressure, that is, reservoir pressure at the time of drilling the well. Pb is bubble point pressure, that is, the pressure below which dissolved gas would come out of solution. Because the disclosure assumes an oil water system without gas, the gas dissolved within the oil need not bubble out in the course of the tests. Swcr is critical water saturation which is that threshold water saturation at which water would become mobile in the presence of other fluids(s). This is experimentally determined from the steady and unsteady state experiments. An equivalent value determined based on proposed methodology is Swcr*. Sor is residual oil saturation, which is the threshold oil saturation that cannot be removed from the pores of the rock by primary and secondary production mechanisms. At Sor, Kro becomes zero and oil stops to flow (only with the use of tertiary recovery mechanisms like polymer/surfactant flooding can such oil be recovered). The equivalent determined by this proposed approach is Sor*.
Sor* is determined by implementing the techniques described here is more operationally reliable compared to the Sor determined from laboratory experiments because Sor* is based on the maximum expected displacement pressure rather than the arbitrarily large displacement pressures used in determining Sor in the laboratory. Sor* provides a more reliable estimate of mobile oil recoverable by primary and secondary recovery mechanisms.
At 404, a relevant suite of logs of the rock in the section of the wellbore is received. The relevant suite of logs, for example, the resistivity log 200, can be obtained using techniques described earlier. The relevant suite of logs can be interpreted for water saturation (Sw). Zones of constant water saturation (for example, zones 202, 204, 206) are then tested, and the relative amounts of oil and water flow are measured. For example, a drawdown of 100 psi is imposed over a 1 ft interval and the stabilized liquid flow rate is recorded. Then, the drawdown pressure is increased step-wise, for example, to 200 psi, 300 psi, 400 psi, 500 psi up, or by other steps, to a maximum ΔP such that the Pwf=Pb. Pwf is flowing bottom-hole pressure. Fluids flow towards the wellbore because the pressure in the wellbore is less than the pressure in the reservoir. However, in order to ensure that there is no dissolved gas released from the oil, the bottomhole pressure is kept higher or at most equal to the bubble point pressure Pb. The stabilized liquid flow rates (oil and water) are measured in all cases. In particular, the individual flow rates of water and oil (that is, the two phases of the system) are measured. For example, the flow rates and the relative amounts of the two phases can be determined either at the surface or downhole using instrumentation, such as multi-phase meters. Using PVT (pressure, volume, temperature) data of the fluid flowing through the drilled section of the wellbore responsive to the drawdown pressures, the formation volume factors of the two phases and the viscosities of the two phases can be determined.
At 406, a relative permeability ratio of fluids (oil and water) in the rock section is determined. For example, by computationally solving equations described later, the flow data are converted to a plot of relative permeability ratio as a function of average water saturation (Krr(sw)) and saturation dependent total mobility (Mr(sw)). For each drawdown flow period, the computer system 500 solves Eq. 7 to determine Krr. This value should be approximately identical for all drawdown pressure values assuming that the fluids have low compressibility and low viscosibility. The computer system 500 can repeat these steps for various log saturation intervals and generate a curve for Krr(sw) versus Sw and Mt(sw) versus Sw. In this manner, the relative permeability ratio is determined using data obtained from the wellbore drilling and without needing to separately determine Kro or Krw.
At 408, a flow rate of oil phase or water phase through the rock in the section is determined. For example, the flow rate can be determined predictively, that is, without needing to measure the flow rate. The computer system 500 can solve Eqs. 14 and 15 to predictively determine phase flow rates at any saturation and for any drawdown pressure.
The computer 502 can serve in a role as a client, network component, a server, a database or other persistency, or any other component (or a combination of roles) of a computer system for performing the subject matter described in the instant disclosure. The illustrated computer 502 is communicably coupled with a network 530. In some implementations, one or more components of the computer 502 may be configured to operate within environments, including cloud-computing-based, local, global, or other environment (or a combination of environments).
At a high level, the computer 502 is an electronic computing device operable to receive, transmit, process, store, or manage data and information associated with the described subject matter. According to some implementations, the computer 502 may also include or be communicably coupled with an application server, e-mail server, web server, caching server, streaming data server, business intelligence (BI) server, or other server (or a combination of servers).
The computer 502 can receive requests over network 530 from a client application (for example, executing on another computer 502) and responding to the received requests by processing the said requests in an appropriate software application. In addition, requests may also be sent to the computer 502 from internal users (for example, from a command console or by other appropriate access method), external or third-parties, other automated applications, as well as any other appropriate entities, individuals, systems, or computers.
Each of the components of the computer 502 can communicate using a system bus 503. In some implementations, any or all of the components of the computer 502, both hardware or software (or a combination of hardware and software), may interface with each other or the interface 504 (or a combination of both) over the system bus 503 using an application programming interface (API) 512 or a service layer 513 (or a combination of the API 512 and service layer 513). The API 512 may include specifications for routines, data structures, and object classes. The API 512 may be either computer-language independent or dependent and refer to a complete interface, a single function, or even a set of APIs. The service layer 513 provides software services to the computer 502 or other components (whether or not illustrated) that are communicably coupled to the computer 502. The functionality of the computer 502 may be accessible for all service consumers using this service layer. Software services, such as those provided by the service layer 513, provide reusable, defined business functionalities through a defined interface. For example, the interface may be software written in JAVA, C++, or other suitable language providing data in extensible markup language (XML) format or other suitable format. While illustrated as an integrated component of the computer 502, alternative implementations may illustrate the API 512 or the service layer 513 as stand-alone components in relation to other components of the computer 502 or other components (whether or not illustrated) that are communicably coupled to the computer 502. Moreover, any or all parts of the API 512 or the service layer 513 may be implemented as child or sub-modules of another software module, enterprise application, or hardware module without departing from the scope of this disclosure.
The computer 502 includes an interface 504. Although illustrated as a single interface 504 in
The computer 502 includes a processor 505. Although illustrated as a single processor 505 in
The computer 502 also includes a memory 506 that holds data for the computer 502 or other components (or a combination of both) that can be connected to the network 530 (whether illustrated or not). For example, memory 506 can be a database storing data consistent with this disclosure. Although illustrated as a single memory 506 in
The application 507 is an algorithmic software engine providing functionality according to particular needs, desires, or particular implementations of the computer 502, particularly with respect to functionality described in this disclosure. For example, application 507 can serve as one or more components, modules, applications, etc. Further, although illustrated as a single application 507, the application 507 may be implemented as multiple applications 507 on the computer 502. In addition, although illustrated as integral to the computer 502, in alternative implementations, the application 507 can be external to the computer 502.
There may be any number of computers 502 associated with, or external to, a computer system containing computer 502, each computer 502 communicating over network 530. Further, the term “client,” “user,” and other appropriate terminology may be used interchangeably as appropriate without departing from the scope of this disclosure. Moreover, this disclosure contemplates that many users may use one computer 502, or that one user may use multiple computers 502.
Implementations of the subject matter and the functional operations described in this specification can be implemented in digital electronic circuitry, in tangibly embodied computer software or firmware, in computer hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them. Implementations of the subject matter described in this specification can be implemented as one or more computer programs, that is, one or more modules of computer program instructions encoded on a tangible, non-transitory, computer-readable computer-storage medium for execution by, or to control the operation of, data processing apparatus. Alternatively, or additionally, the program instructions can be encoded in/on an artificially generated propagated signal, for example, a machine-generated electrical, optical, or electromagnetic signal that is generated to encode information for transmission to suitable receiver apparatus for execution by a data processing apparatus. The computer-storage medium can be a machine-readable storage device, a machine-readable storage substrate, a random or serial access memory device, or a combination of computer-storage mediums.
The term “real-time,” “real time,” “realtime,” “real (fast) time (RFT),” “near(ly) real-time (NRT),” “quasi real-time,” or similar terms (as understood by one of ordinary skill in the art), means that an action and a response are temporally proximate such that an individual perceives the action and the response occurring substantially simultaneously. For example, the time difference for a response to display (or for an initiation of a display) of data following the individual's action to access the data may be less than 1 ms, less than 1 sec., less than 5 secs., etc. While the requested data need not be displayed (or initiated for display) instantaneously, it is displayed (or initiated for display) without any intentional delay, taking into account processing limitations of a described computing system and time required to, for example, gather, accurately measure, analyze, process, store, or transmit the data.
The terms “data processing apparatus,” “computer,” or “electronic computer device” (or equivalent as understood by one of ordinary skill in the art) refer to data processing hardware and encompass all kinds of apparatus, devices, and machines for processing data, including by way of example, a programmable processor, a computer, or multiple processors or computers. The apparatus can also be or further include special purpose logic circuitry, for example, a central processing unit (CPU), an FPGA (field programmable gate array), or an ASIC (application-specific integrated circuit). In some implementations, the data processing apparatus or special purpose logic circuitry (or a combination of the data processing apparatus or special purpose logic circuitry) may be hardware- or software-based (or a combination of both hardware- and software-based). The apparatus can optionally include code that creates an execution environment for computer programs, for example, code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of execution environments. The present disclosure contemplates the use of data processing apparatuses with or without conventional operating systems, for example LINUX, UNIX, WINDOWS, MAC OS, ANDROID, IOS, or any other suitable conventional operating system.
A computer program, which may also be referred to or described as a program, software, a software application, a module, a software module, a script, or code can be written in any form of programming language, including compiled or interpreted languages, or declarative or procedural 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 may, but need not, correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data, for example, one or more scripts stored in a markup language document, in a single file dedicated to the program in question, or in multiple coordinated files, for example, files that store one or more modules, sub-programs, or portions of code. A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network. While portions of the programs illustrated in the various figures are shown as individual modules that implement the various features and functionality through various objects, methods, or other processes, the programs may instead include a number of sub-modules, third-party services, components, libraries, and such, as appropriate. Conversely, the features and functionality of various components can be combined into single components as appropriate. Thresholds used to make computational determinations can be statically, dynamically, or both statically and dynamically determined.
The methods, processes, logic flows, etc. described in this specification can be performed by one or more programmable computers executing one or more computer programs to perform functions by operating on input data and generating output. The methods, processes, logic flows, etc. can also be performed by, and apparatus can also be implemented as, special purpose logic circuitry, for example, a CPU, an FPGA, or an ASIC.
Computers suitable for the execution of a computer program can be based on general or special purpose microprocessors, both, or any other kind of CPU. Generally, a CPU will receive instructions and data from a read-only memory (ROM) or a random access memory (RAM), or both. The essential elements of a computer are a CPU, for performing or executing instructions, and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to, receive data from or transfer data to, or both, one or more mass storage devices for storing data, for example, magnetic, magneto-optical disks, or optical disks. However, a computer need not have such devices. Moreover, a computer can be embedded in another device, for example, a mobile telephone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a global positioning system (GPS) receiver, or a portable storage device, for example, a universal serial bus (USB) flash drive, to name just a few.
Computer-readable media (transitory or non-transitory, as appropriate) suitable for storing computer program instructions and data include all forms of non-volatile memory, media and memory devices, including by way of example semiconductor memory devices, for example, erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), and flash memory devices; magnetic disks, for example, internal hard disks or removable disks; magneto-optical disks; and CD-ROM, DVD+/−R, DVD-RAM, and DVD-ROM disks. The memory may store various objects or data, including caches, classes, frameworks, applications, backup data, jobs, web pages, web page templates, database tables, repositories storing dynamic information, and any other appropriate information including any parameters, variables, algorithms, instructions, rules, constraints, or references thereto. Additionally, the memory may include any other appropriate data, such as logs, policies, security or access data, reporting files, as well as others. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.
To provide for interaction with a user, implementations of the subject matter described in this specification can be implemented on a computer having a display device, for example, a CRT (cathode ray tube), LCD (liquid crystal display), LED (Light Emitting Diode), or plasma monitor, for displaying information to the user and a keyboard and a pointing device, for example, a mouse, trackball, or trackpad by which the user can provide input to the computer. Input may also be provided to the computer using a touchscreen, such as a tablet computer surface with pressure sensitivity, a multi-touch screen using capacitive or electric sensing, or other type of touchscreen. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback, for example, visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input. In addition, a computer can interact with a user by sending documents to and receiving documents from a device that is used by the user; for example, by sending web pages to a web browser on a user's client device in response to requests received from the web browser.
The term “graphical user interface,” or “GUI,” may be used in the singular or the plural to describe one or more graphical user interfaces and each of the displays of a particular graphical user interface. Therefore, a GUI may represent any graphical user interface, including but not limited to, a web browser, a touch screen, or a command line interface (CLI) that processes information and efficiently presents the information results to the user. In general, a GUI may include a plurality of user interface (UI) elements, some or all associated with a web browser, such as interactive fields, pull-down lists, and buttons. These and other UI elements may be related to or represent the functions of the web browser.
Implementations of the subject matter described in this specification can be implemented in a computing system that includes a back-end component, for example, as a data server, or that includes a middleware component, for example, an application server, or that includes a front-end component, for example, a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the subject matter described in this specification, or any combination of one or more such back-end, middleware, or front-end components. The components of the system can be interconnected by any form or medium of wireline or wireless digital data communication (or a combination of data communication), for example, a communication network. Examples of communication networks include a local area network (LAN), a radio access network (RAN), a metropolitan area network (MAN), a wide area network (WAN), Worldwide Interoperability for Microwave Access (WIMAX), a wireless local area network (WLAN) using, for example, 802.11 a/b/g/n or 802.20 (or a combination of 802.11x and 802.20 or other protocols consistent with this disclosure), all or a portion of the Internet, or any other communication system or systems at one or more locations (or a combination of communication networks). The network may communicate with, for example, Internet Protocol (IP) packets, Frame Relay frames, Asynchronous Transfer Mode (ATM) cells, voice, video, data, or other suitable information (or a combination of communication types) between network addresses.
The computing system can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
While this specification contains many specific implementation details, these should not be construed as limitations on the scope of any invention or on the scope of what may be claimed, but rather as descriptions of features that may be specific to particular implementations of particular inventions. Certain features that are described in this specification in the context of separate implementations can also be implemented, in combination, in a single implementation. Conversely, various features that are described in the context of a single implementation can also be implemented in multiple implementations, separately, or in any suitable sub-combination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can, in some cases, be excised from the combination, and the claimed combination may be directed to a sub-combination or variation of a sub-combination.
Particular implementations of the subject matter have been described. Other implementations, alterations, and permutations of the described implementations are within the scope of the following claims as will be apparent to those skilled in the art. While operations are depicted in the drawings or claims in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed (some operations may be considered optional), to achieve desirable results. In certain circumstances, multitasking or parallel processing (or a combination of multitasking and parallel processing) may be advantageous and performed as deemed appropriate.
Moreover, the separation or integration of various system modules and components in the implementations described above should not be understood as requiring such separation or integration in all implementations, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.
Accordingly, the above description of example implementations does not define or constrain this disclosure. Other changes, substitutions, and alterations are also possible without departing from the spirit and scope of this disclosure.
Furthermore, any claimed implementation below is considered to be applicable to at least a computer-implemented method; a non-transitory, computer-readable medium storing computer-readable instructions to perform the computer-implemented method; and a computer system comprising a computer memory interoperably coupled with a hardware processor configured to perform the computer-implemented method or the instructions stored on the non-transitory, computer-readable medium.
This application claims priority to U.S. Provisional Patent Application Ser. No. 62/760,596, filed on Nov. 13, 2018, the entire contents of which are hereby incorporated by reference.
Number | Date | Country | |
---|---|---|---|
62760596 | Nov 2018 | US |