CO2 I-BOTS FOR SEAL INTEGRITY MONITORING
20240176041 ยท 2024-05-30
Inventors
- Abdallah A. Alshehri (Dhahrah, SA)
- Klemens Katterbauer (Dhahran, SA)
- Abdulaziz S. Al-Qasim (Dammam, SA)
Cpc classification
E21B47/138
FIXED CONSTRUCTIONS
G16Y40/35
PHYSICS
E21B43/16
FIXED CONSTRUCTIONS
International classification
G01V11/00
PHYSICS
E21B47/12
FIXED CONSTRUCTIONS
Abstract
Systems and methods for monitoring a hydrocarbon reservoir for escaped CO.sub.2 are disclosed. The methods include deploying a plurality of CO.sub.2 i-Bot sensors downhole into an observation well located above a CO.sub.2 injection zone, establishing communication among the plurality of CO.sub.2 i-Bot sensors, between the plurality of CO.sub.2 i-Bot sensors and a base station, and between the base station and a central processing location. The methods also include collecting a plurality of environmental data and sensor data from the plurality of CO.sub.2 i-Bot sensors, and training a machine learning algorithm to predict the plurality of environmental data and sensor data of the plurality of CO.sub.2 i-Bot sensors. Furthermore, the methods include determining an optimized number of CO.sub.2 i-Bot sensors that minimizes a quantity of power consumption and maximizes an area of coverage of the hydrocarbon reservoir by the plurality of CO.sub.2 i-Bot sensors using the trained machine learning algorithm.
Claims
1. A method for monitoring a hydrocarbon reservoir for escaped CO.sub.2, comprising: deploying a plurality of CO.sub.2 i-Bot sensors downhole into an observation well located above a CO.sub.2 injection zone; establishing communication among the plurality of CO.sub.2 i-Bot sensors, between the plurality of CO.sub.2 i-Bot sensors and a base station, and between the base station and a central processing location; collecting a plurality of environmental data and sensor data from the plurality of CO.sub.2 i-Bot sensors; training a machine learning algorithm to predict the plurality of environmental data and sensor data of the plurality of CO.sub.2 i-Bot sensors; and determining an optimized number of CO.sub.2 i-Bot sensors that minimizes a quantity of power consumption and maximizes an area of coverage of the hydrocarbon reservoir by the plurality of CO.sub.2 i-Bot sensors using the trained machine learning algorithm.
2. The method of claim 1, wherein the plurality of environmental data comprises a CO.sub.2 concentration, a pressure, a temperature, and a location, and wherein the plurality of sensor data comprises a signal quality, a reliability, and a power utilization.
3. The method of claim 1, wherein the monitoring for escaped CO.sub.2 is for carbon sequestration or enhanced oil recovery (EOR).
4. The method of claim 1, wherein the machine learning algorithm is a long short-term memory (LSTM) network.
5. The method of claim 4, further comprising: integrating the LSTM network into an optimization framework configured for sensor selection to determine the optimized number of CO.sub.2 i-Bot sensors.
6. The method of claim 5, wherein the optimization framework is configured to minimize a number of active CO.sub.2 i-Bot sensors while ensuring that every producing part of the reservoir is covered by at least one CO.sub.2 i-Bot sensor.
7. The method of claim 1, wherein communication among CO.sub.2 i-Bot sensors is established using an Internet of Things (IoT) protocol.
8. A non-transitory computer readable medium storing instructions executable by a computer processor, the instructions comprising functionality for: deploying a plurality of CO.sub.2 i-Bot sensors downhole into an observation well located above a CO.sub.2 injection zone; establishing communication among the plurality of CO.sub.2 i-Bot sensors, between the plurality of CO.sub.2 i-Bot sensors and a base station, and between the base station and a central processing location; collecting a plurality of environmental data and sensor data from the plurality of CO.sub.2 i-Bot sensors; training a machine learning algorithm to predict the plurality of environmental data and sensor data of the plurality of CO.sub.2 i-Bot sensors; and determining an optimized number of CO.sub.2 i-Bot sensors that minimizes a quantity of power consumption and maximizes an area of coverage of a hydrocarbon reservoir by the plurality of CO.sub.2 i-Bot sensors using the trained machine learning algorithm.
9. The non-transitory computer readable medium of claim 8, wherein the plurality of environmental data comprises a CO.sub.2 concentration, a pressure, a temperature, and a location, and wherein the plurality of sensor data comprises a signal quality, a reliability, and a power utilization.
10. The non-transitory computer readable medium of claim 8, wherein the monitoring for escaped CO.sub.2 is for carbon sequestration or for enhanced oil recovery (EOR).
11. The non-transitory computer readable medium of claim 8, wherein the machine learning algorithm is a long short-term memory (LSTM) network.
12. The non-transitory computer readable medium of claim 11, wherein the instructions further comprise functionality for: integrating the LSTM network into an optimization framework configured for sensor selection to determine the optimized number of CO.sub.2 i-Bot sensors.
13. The non-transitory computer readable medium of claim 12, wherein the optimization framework is configured to minimize a number of active CO.sub.2 i-Bot sensors while ensuring that every producing part of the reservoir is covered by at least one CO.sub.2 i-Bot sensor.
14. The non-transitory computer readable medium of claim 8, wherein communication among CO.sub.2 i-Bot sensors is established using an Internet of Things (IoT) protocol.
15. A system optimizing an injection of CO.sub.2 down a borehole into a hydrocarbon reservoir and monitoring for escaped CO.sub.2, comprising: a plurality of CO.sub.2 i-Bot sensors configured to traverse the borehole and monitor CO.sub.2 in the hydrocarbon reservoir; a base station operatively connected to the plurality of CO.sub.2 i-Bot sensors; wherein the system is configured to establish communication among the plurality of CO.sub.2 i-Bot sensors, and between the plurality of CO.sub.2 i-Bot sensors and the base station; a control center having a computer processor operatively connected to the plurality of CO.sub.2 i-Bot sensors, the processor being configured to: collect a plurality of environmental data and sensor data from the plurality of CO.sub.2 i-Bot sensors; train a machine learning algorithm to predict the plurality of environmental data and sensor data of the plurality of CO.sub.2 i-Bot sensors using the collected environmental and sensor data; and determine an optimized number of CO.sub.2 i-Bot sensors that minimizes a quantity of power consumption and maximizes an area of coverage of the hydrocarbon reservoir by the plurality of CO.sub.2 i-Bot sensors using the trained machine learning algorithm.
16. The system of claim 15, wherein the plurality of environmental data comprises a CO.sub.2 concentration, a pressure, a temperature, and a location, and wherein the plurality of sensor data comprises a signal quality, a reliability, and a power utilization.
17. The system of claim 15, wherein the monitoring for escaped CO.sub.2 is for carbon sequestration or enhanced oil recovery (EOR).
18. The system of claim 15, wherein the machine learning algorithm is a long short-term memory (LSTM) network.
19. The system of claim 18, further comprising: an optimization framework into which the LSTM network is integrated, the optimization framework being configured for sensor selection and to determine the optimized number of CO.sub.2 i-Bot sensors.
20. The system of claim 15, wherein communication among CO.sub.2 i-Bot sensors is established using an Internet of Things (IoT) protocol.
Description
BRIEF DESCRIPTION OF DRAWINGS
[0008] Specific embodiments of the disclosed technology will now be described in detail with reference to the accompanying figures. Like elements in the various figures are denoted by like reference numerals for consistency.
[0009]
[0010]
[0011]
[0012]
[0013]
[0014]
[0015]
DETAILED DESCRIPTION
[0016] In the following detailed description of embodiments of the disclosure, numerous specific details are set forth in order to provide a more thorough understanding of the disclosure. However, it will be apparent to one of ordinary skill in the art that the disclosure may be practiced without these specific details. In other instances, well-known features have not been described in detail to avoid unnecessarily complicating the description.
[0017] Throughout the application, ordinal numbers (e.g., first, second, third, etc.) may be used as an adjective for an element (i.e., any noun in the application). The use of ordinal numbers is not to imply or create any particular ordering of the elements nor to limit any element to being only a single element unless expressly disclosed, such as using the terms before, after, single, and other such terminology. Rather, the use of ordinal numbers is to distinguish between the elements. By way of an example, a first element is distinct from a second element, and the first element may encompass more than one element and succeed (or precede) the second element in an ordering of elements.
[0018] Embodiments disclosed herein relate to an innovative Internet of Things (IoT) and data driven framework to enhance reservoir sustainability and improve CO.sub.2 sequestration via subsurface reservoir sensors (CO.sub.2 i-Bots) and optimize injection, utilizing artificial intelligence (AI) and robotics. The framework disclosed herein utilizes subsurface miniaturized sensors (CO.sub.2 i-Bots) for CO.sub.2 and fluid monitoring, where the sensor data are in real-time connected to an AI driven optimization module for the optimization of the CO.sub.2 storage in aquifers and CO.sub.2-EOR projects. In one or more embodiments, the specific technology disclosed herein focuses on the optimization of sensor utilization of sufficient reservoir sensing coverage. In one or more embodiments, the framework is based on a deep learning long short-term memory (LSTM) framework that first trains the LSTM network on a training set, and then subsequently utilizes the LSTM network in optimizing the number of sensors to maximize longevity and spatial coverage of reservoir sensing.
[0019]
[0020] According to one more embodiments,
[0021] CO.sub.2 i-Bots are miniaturized sensors that enable in situ CO.sub.2 and fluid monitoring, where the sensor data are received in real-time and the CO.sub.2 i-Bots (208) are connected to an AI module to optimize their power usage and spatial coverage. In one or more embodiments, the AI method used to optimize the CO.sub.2 i-Bots (208) is a form of machine learning (ML) known as an LSTM network (500), which uses deep neural network (400) to monitor the state of the CO.sub.2 i-Bots (208).
[0022] In one or more embodiments, the CO.sub.2 i-Bots (208) follow the IoT paradigm, where each sensor has its own independent software, power harvesting ability, and processing ability, thus allowing them to communicate in multi-hop fashion with each other and with a base station (210) wirelessly through a magnetic induction technique. More specifically, after they are placed inside the observation well (206), CO.sub.2 i-Bots (208) establish CO.sub.2 i-Bot to CO.sub.2 i-Bot connectivity using an IoT protocol, for example, to start communicating the sensed data, including location coordinates, amongst each other, until the information reaches the base station (210). The base station (210) consists of a large antenna connected to an aboveground gateway. The gateway transmits data to a central processing location (212), where information is recorded.
[0023] In one or more embodiments,
[0024] In one or more embodiments, the sensor data collected by the CO.sub.2 i-Bots (208) is used to monitor the integrity of cap rock layers (112), i.e., their ability to contain injected CO.sub.2, and detect any inadvertent leakages. For example, sensor data may include, but it not limited to: temperature measurements, location information, pressure measurements, and fluid phase data. Collected pressure and temperature data may also be used to generate lateral profile which will help to detect anomalies in the hydrocarbon reservoir (114). The recorded data are processed by a computing device, for example as shown in
[0025] After insertion into the observation well (206), the CO.sub.2 i-Bots (208) must be first be processed and outliers (malfunctioning sensors) must be removed. Inconsistent data must also be removed. Inconsistency may arise from erroneous measurements, such as extreme high signal quality that is very unlikely or ultra-high-power utilization which may indicate a broken power module. For the outlier removal, both moving window and z-score outlier removal methods are utilized.
[0026]
[0027] Nodes (402) and edges (404) carry additional associations. Namely, every edge is associated with a numerical value. The edge numerical values, or even the edges (404) themselves, are often referred to as weights or parameters. While training a neural network (400), numerical values are assigned to each edge (404). Additionally, every node (402) is associated with a numerical variable and an activation function. Activation functions are not limited to any functional class, but traditionally follow the form:
A=?(?.sub.i?(incoming)[(node value).sub.i(edge value).sub.i]),Equation (1)
where i is an index that spans the set of incoming nodes (402) and edges (404) and ? is a user-defined function. Incoming nodes (402) are those that, when viewed as a graph (as in
and rectified linear unit function ?(x)=max(0, x), however, many additional functions are commonly employed. Every node (402) in a neural network (400) may have a different associated activation function. Often, as a shorthand, activation functions are described by the function ? by which it is composed. That is, an activation function composed of a linear function ? may simply be referred to as a linear activation function without undue ambiguity.
[0028] When the neural network (400) receives an input, the input is propagated through the network according to the activation functions and incoming node (402) values and edge (404) values to compute a value for each node (402). That is, the numerical value for each node (402) may change for each received input. Occasionally, nodes (402) are assigned fixed numerical values, such as the value of 1, that are not affected by the input or altered according to edge (404) values and activation functions. Fixed nodes (402) are often referred to as biases or bias nodes (406), displayed in
[0029] In some implementations, the neural network (400) may contain specialized layers (405), such as a normalization layer, or additional connection procedures, like concatenation. One skilled in the art will appreciate that these alterations do not exceed the scope of this disclosure.
[0030] As noted, the training procedure for the neural network (400) comprises assigning values to the edges (404). To begin training, the edges (404) are assigned initial values. These values may be assigned randomly, assigned according to a prescribed distribution, assigned manually, or by some other assignment mechanism. Once edge (404) values have been initialized, the neural network (400) may act as a function, such that it may receive inputs and produce an output. As such, at least one input is propagated through the neural network (400) to produce an output. Recall, that a given data set will be composed of inputs and associated target(s), where the target(s) represent the ground truth, or the otherwise desired output. The neural network (400) output is compared to the associated input data target(s). The comparison of the neural network (400) output to the target(s) is typically performed by a so-called loss function; although other names for this comparison function such as error function and cost function are commonly employed. Many types of loss functions are available, such as the mean-squared-error function, however, the general characteristic of a loss function is that the loss function provides a numerical evaluation of the similarity between the neural network (400) output and the associated target(s). The loss function may also be constructed to impose additional constraints on the values assumed by the edges (404), for example, by adding a penalty term, which may be physics-based, or a regularization term. Generally, the goal of a training procedure is to alter the edge (404) values to promote similarity between the neural network (400) output and associated target(s) over the data set. Thus, the loss function is used to guide changes made to the edge (404) values, typically through a process called backpropagation.
[0031]
[0032] In this particular embodiment, data pertaining to CO.sub.2 concentration, temperature, pressure, location, signal quality, reliability, and power utilization from the CO.sub.2 i-Bots (208) are received at the central processing location (212) at a particular moment in time, t, and are represented by the vector x.sub.t (502). x.sub.t (502) must be processed through the LSTM network (500) to filter out noise and spurious measurements and update a memory cell vector, c.sub.t (514), which models the estimated current state of the CO.sub.2 concentration, temperature, and pressure that is being tracked by the CO.sub.2 i-Bots (208). The LSTM network (500) accomplishes this by first sending x.sub.t (502) through several networks in parallel and recombining the results into output c.sub.t (514), along with h.sub.t (516), a hidden state vector whose purpose is to retain information in the system from one time step to the next that aids the LSTM network (500) in the modeling process. ?.sub.t, i.sub.t, {tilde over (c)}.sub.t, and o.sub.t (506, 508, 510, 512) are intermediate vectors produced by the LSTM network (500) in order to update both c.sub.t (514) and h.sub.t (516) at each time step, t. ?.sub.t (506) is known as the forget gate's activation vector. It serves to forget information that leads to vanishing gradients in the backpropagation algorithm. i.sub.t (508) is called input gate's activation vector, e.sub.t (510) is called the cell input activation vector, and o.sub.t (512) is called the output gate's activation vector.
[0033] The implementation of the LSTM network (500) for processing the CO.sub.2 i-Bot (208) data for this particular embodiment is as follows: The input vector x.sub.t (502) is operated upon a set of matrices, W.sub.q (518), where q {?, i, {tilde over (c)}, o}. Similarly, h.sub.t (516) is operated upon by another set of matrices, U.sub.q (520). Each entry of these matrices corresponds to an edge (404) of a neural network, as illustrated in of
?.sub.t=?.sub.s(W.sub.?x.sub.t+U.sub.?h.sub.t-1+b.sub.?),
i.sub.t=?.sub.s(W.sub.ix.sub.t+U.sub.ih.sub.t-1+b.sub.i),
{tilde over (c)}.sub.t=?.sub.ht(W.sub.{tilde over (c)}x.sub.t+U.sub.{tilde over (c)}h.sub.t-1+b.sub.{tilde over (c)}),
o.sub.t=?.sub.s(W.sub.ox.sub.t+U.sub.oh.sub.t-1+b.sub.o),
[0034] where ?.sub.s (524) is the sigmoid nonlinear operation, ?.sub.ht (525) is the hyperbolic tangent nonlinear operation, and the vectors b.sub.q (526), where q:={?, i, {tilde over (c)}, o}, are bias nodes (406).
[0035] After applying the matrices W.sub.q (518) and U.sub.q (520) to the vectors x.sub.t (502) and h.sub.t-1 (504), the result is summed with the bias vector (522), and the nonlinear operations are applied (524, 525) to create the intermediate vectors, ?.sub.t, i.sub.t, {tilde over (c)}.sub.t, and o.sub.t (506, 508, 510, 512). The intermediate vectors (506, 508, 510, 512) are recombined in the following way to produce the cell vector c.sub.t (514) and hidden vector h.sub.t (516):
c.sub.t=?.sub.t.Math.c.sub.t-1+i.sub.t.Math.{tilde over (c)}.sub.t,
h.sub.t=o.sub.t.Math.?.sub.ht(c.sub.t), [0036] where .Math. denotes the Hadamard product, i.e., element-by-element multiplication.
[0037] The structure of LSTM networks has proven to be effective in many applications for modeling time-series data; it is capable of incorporating new measurements, while retaining memory of old measurements in the prediction of variables at a subsequent time step. This structure allows it to continually process CO.sub.2 i-Bot (208) data in real time, eliminating noise as it predicts the true state of CO.sub.2, temperature, pressure, and location in the observation wells (206) along with signal quality, reliability, and power utilization of the sensors themselves.
[0038] Similar to other neural networks, the LSTM network (500) must be trained on a training data set before application, using the backpropagation algorithm to minimize prediction error and thereby determine the weights in the matrices. This training is done first with a training set of CO.sub.2 i-Bot (208) sensor data obtained from CO.sub.2 i-Bot (208) in a laboratory setting that mimics borehole conditions. Next, the training is repeated in a well-studied test training site. The LSTM network (500) is periodically re-trained in the subsurface environment when reference information is available. Expert information is incorporated into the LSTM network (500) during training in order to improve its prediction capability. The expert information takes the form of knowledge in recognizing spurious/unrealistic readings and minimizing their impact on the output of the LSTM network (500). The LSTM network (500) is then used in an automated fashion to constantly process the signals transmitted to the central processing location (212) from the base station (210) and predict the state of the CO.sub.2 i-Bot (208) sensors. The quality of the LSTM network (500) is examined periodically, utilizing feature importance quantification techniques to evaluate its quality. Feature importance quantification utilizes Shapely or Lime values, which enable the quantification of the impact of each input feature on the quantities being estimated by the LSTM network (500). If the LSTM network (500) is not deemed to be performing satisfactorily, it is retrained.
[0039] Once the LSTM network (500) has predicted the environmental variables and the internal state of the sensors, the results may be fed into an optimization procedure that seeks to minimize the number of active sensors while simultaneously maximizing spatial coverage, sensor quality, and sensor reliability. Applying the results of the LSTM network (500) and the optimization framework for sensor selection to the management of the CO.sub.2 i-Bots (208) minimizes the number of active sensors subject to every part of the reservoir being covered by at least one sensor. It also ensures a reliability above 50% as well as a signal quality at least 70% of the best possible signal. Furthermore, high power-utilizing sensors with low battery state will be specifically targeted for deactivation. The application of the LSTM network (500) and the optimization framework to the CO.sub.2 i-Bots (208) is re-performed in periodic intervals in order to determine the number of sensors that should be active.
[0040]
[0041] In Step (602), CO.sub.2 i-Bot (208) sensors are deployed in an observation well (206) above the injection zone in a hydrocarbon reservoir (114). Deployment may include, for example, fluid carrying the CO.sub.2 i-Bot (208) to a desired location where the CO.sub.2 i-Bot (208) parks itself, dropping the CO.sub.2 i-Bots (208) into the borehole free form, or allowing the CO.sub.2 i-Bots (208) to mobilize themselves and traverse the borehole until a desired location is reached. Upon deployment, or shortly thereafter, communication is established among the CO.sub.2 i-Bots (208), between the CO.sub.2 i-Bots and the base station (210), and between the base station (210) and a central processing location (212). Communication between the various components may be done sequentially in a particular order, or simultaneously. In one or more embodiments, the CO.sub.2 i-Bots (208) employ IoT to communicate with each other after deployment.
[0042] The deployed CO.sub.2 i-Bots (208) collect and record environmental and sensor data (Step 604). Environmental data may include a CO.sub.2 concentration in the reservoir or a particular zone or region in the reservoir, a pressure, a temperature, and a location of the measurements. Sensor data may include a signal quality, a reliability, and a power utilization by the CO.sub.2 i-Bots (208). The data collected and recorded is pre-processed (Step 606) to remove outlier data, using for example, moving window and/or z-score outlier removal methods. At this stage, inconsistent data from sensors are also removed. This may be done by observing the data and removing data that is clearly inconsistent with the majority of the remaining data. In Step 608, the LSTM network (500) is configured to predict environmental (CO.sub.2 concentration, pressure, temperature, location) and sensor data (reliability, signal quality, power utilization). In order to configure the LSTM network (500), expert information is incorporated to improve prediction capability (Step 609). In one or more embodiments, the expert information may include information from human experts that analyzes data measurements, and compares formation properties with observed data. The expert information is used to determine/tune the adaptive weights of the LSTM network. For example, this information may lead to a lower weighting of data from sensors that are providing unreliable measurements and misleading information.
[0043] In Step 610, the LSTM network (500) is trained on a test set consisting of data collected from CO.sub.2 i-Bots (208) in a laboratory setting. Whereas Step 608 establishes the model and framework, along with input weights, Step 610 evaluates the performance of the framework. In Step 612, the quality of the prediction results is evaluated utilizing an importance quantification technique, and the LSTM network (500) is retrained, if necessary. The importance quantification technique is essential as it enables the incorporation of trust and certainty into estimated parameters for subsequent decision making. High uncertainty will require remedial steps via adding/replacing CO.sub.2 i-Bots (208) or additional survey techniques to have an accurate reservoir understanding. In Step 614, the predictions of the LSTM network (500) are integrated into an optimization framework that seeks to minimize the quantity of active CO.sub.2 i-Bots (208) while supplying adequate coverage of sensors around the hydrocarbon reservoir (114).
[0044] In Step 616, the results obtained from the optimization framework are applied to the CO.sub.2 i-Bots (208) to optimize the number of CO.sub.2 i-Bots (208) that are used to monitor activity in the hydrocarbon reservoir (114). For example, some sensors are disabled to minimize power use while those that continue to function simultaneously provide sufficient spatial coverage for monitoring the presence of CO.sub.2. Alternately, the optimization framework may indicate that sensors should be added to increase spatial coverage of the hydrocarbon reservoir (114). Optimization must be reperformed periodically to ensure that coverage of the reservoir is maximized while power usage is minimized.
[0045]
[0046] The computer (702) 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 (702) is communicably coupled with a network (730). In some implementations, one or more components of the computer (702) may be configured to operate within environments, including cloud-computing-based, local, global, or other environment (or a combination of environments).
[0047] At a high level, the computer (702) 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 (702) 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).
[0048] The computer (702) can receive requests over network (730) from a client application (for example, executing on another computer (702) 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 (702) 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.
[0049] Each of the components of the computer (702) can communicate using a system bus (703). In some implementations, any or all of the components of the computer (702), both hardware or software (or a combination of hardware and software), may interface with each other or the interface (704) (or a combination of both) over the system bus (703) using an application programming interface (API) (712) or a service layer (713) (or a combination of the API (712) and service layer (713). The API (712) may include specifications for routines, data structures, and object classes. The API (712) 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 (713) provides software services to the computer (702) or other components (whether or not illustrated) that are communicably coupled to the computer (702). The functionality of the computer (702) may be accessible for all service consumers using this service layer. Software services, such as those provided by the service layer (713), 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 another suitable format. While illustrated as an integrated component of the computer (702), alternative implementations may illustrate the API (712) or the service layer (713) as stand-alone components in relation to other components of the computer (702) or other components (whether or not illustrated) that are communicably coupled to the computer (702). Moreover, any or all parts of the API (712) or the service layer (713) 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.
[0050] The computer (702) includes an interface (704). Although illustrated as a single interface (704) in
[0051] The computer (702) includes at least one computer processor (705). Although illustrated as a single computer processor (705) in
[0052] The computer (702) also includes a memory (706) that holds data for the computer (702) or other components (or a combination of both) that can be connected to the network (730). For example, memory (706) can be a database storing data consistent with this disclosure. Although illustrated as a single memory (706) in
[0053] The application (707) is an algorithmic software engine providing functionality according to particular needs, desires, or particular implementations of the computer (702), particularly with respect to functionality described in this disclosure. For example, application (707) can serve as one or more components, modules, applications, etc. Further, although illustrated as a single application (707), the application (707) may be implemented as multiple applications (707) on the computer (702). In addition, although illustrated as integral to the computer (702), in alternative implementations, the application (707) can be external to the computer (702).
[0054] There may be any number of computers (702) associated with, or external to, a computer system containing computer (702), wherein each computer (702) communicates over network (730). 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 (702), or that one user may use multiple computers (702).
[0055] Although only a few example embodiments have been described in detail above, those skilled in the art will readily appreciate that many modifications are possible in the example embodiments without materially departing from this invention. Accordingly, all such modifications are intended to be included within the scope of this disclosure as defined in the following claims. In the claims, any means-plus-function clauses are intended to cover the structures described herein as performing the recited function(s) and equivalents of those structures. Similarly, any step-plus-function clauses in the claims are intended to cover the acts described here as performing the recited function(s) and equivalents of those acts. It is the express intention of the applicant not to invoke 35 U.S.C. ? 112(f) for any limitations of any of the claims herein, except for those in which the claim expressly uses the words means for or step for together with an associated function.