PIPELINE CONTROL SYSTEM

Disclosed are methods, systems, and computer-readable medium to perform operations including: calculating a rate of flow change per minute in a pipeline of the hydrocarbon production system; determining that the rate of flow change is at least ten percent greater than a predetermined flow change threshold; based on a difference between the rate of flow change and the predetermined flow change threshold, triggering one of a high alarm workflow, a high-high alarm workflow, and a high-high-high alarm workflow; detecting, using the triggered one of the high alarm workflow, the high-high alarm workflow, and the high-high-high alarm workflow, a potential or actual break in the pipeline; and in response, performing a corrective action to avoid the potential break or mitigate the actual break in the pipeline.

TECHNICAL FIELD

This description relates to methods and systems for a pipeline control system.

BACKGROUND

Pipelines are used in the oil and gas industry to transport hydrocarbons from oil fields on land and offshore locations to oil and gas processing facilities, refineries, and distribution and shipping terminals. The pipelines are often buried underground and can be very long. Sometimes they can be 1,000 km in length in total with intermediate pump/compressor stations at typical 50-100 km sections, but it is not uncommon to be less than or greater than these lengths. Some sections of the pipeline are underground and some sections are above ground. In addition, the pipelines are subject to high pressures and temperature variations. The temperature variations cause thermal expansion of the pipeline and stress to the pipeline and the pipeline's connections. Due to these factors, the structural integrity of pipelines can fail, resulting in a pipeline bursting or failing (e.g., cracking, losing pressure, or leaking).

SUMMARY

The present disclosure describes methods and systems, including computer-implemented methods, computer program products, and computer systems for controlling a pipeline system. Aspects of the subject matter described in this specification may be embodied in methods that include: calculating a rate of flow change per minute in a pipeline of the hydrocarbon production system; determining that the rate of flow change is at least ten percent greater than a predetermined flow change threshold; based on a difference between the rate of flow change and the predetermined flow change threshold, triggering one of a high alarm workflow, a high-high alarm workflow, and a high-high-high alarm workflow; detecting, using the triggered one of the high alarm workflow, the high-high alarm workflow, and the high-high-high alarm workflow, a potential or actual break in the pipeline; and in response, performing a corrective action to avoid the potential break or mitigate the actual break in the pipeline.

The previously described implementation is implementable using a computer-implemented method; a non-transitory, computer-readable medium storing computer-readable instructions to perform the computer-implemented method; and a computer system including 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. These and other embodiments may each optionally include one or more of the following features.

In some implementations, based on the difference, triggering one of the high alarm workflow, the high-high alarm workflow, and the high-high-high alarm workflow involves determining that the difference is less than twenty percent; and in response, triggering the high alarm workflow.

In some implementations, the high alarm workflow includes determining whether a pressure in the pipeline is less than or equal to a pressure emergency shutdown (ESD) value, and detecting, using the triggered one of the high alarm workflow, the high-high alarm workflow, and the high-high-high alarm workflow, the potential or actual break in the pipeline involves in response to determining that the pressure in the pipeline is less than or equal to the pressure ESD value, detecting the potential break in the pipeline.

In some implementations, based on the difference, triggering one of the high alarm workflow, the high-high alarm workflow, and the high-high-high alarm workflow involves determining that the difference is greater than or equal to twenty percent and less than thirty percent; and in response, triggering the high-high alarm workflow.

In some implementations, the high-high alarm workflow involves: determining that a rate of pressure change per minute in the pipeline is a decrease equal to or more than five percent from a predetermined pressure change threshold; in response, determining that a flow in the pipeline is greater than five percent of a line break shutdown value; and in response, determining that a pressure in the pipeline is greater than five percent of a line break shutdown value.

In some implementations, detecting, using the triggered one of the high alarm workflow, the high-high alarm workflow, and the high-high-high alarm workflow, the potential or actual break in the pipeline involves in response to detecting that the pressure in the pipeline is greater than five percent of the line break shutdown value, detecting the potential break in the pipeline.

In some implementations, based on the difference, triggering one of the high alarm workflow, the high-high alarm workflow, and the high-high-high alarm workflow involves determining that the difference is greater than thirty percent; and in response, triggering the high-high-high alarm workflow.

In some implementations, the high-high alarm workflow involves: determining that a rate of pressure change per minute in the pipeline is a decrease equal to or more than five percent from a predetermined pressure change threshold; in response, determining that a flow in the pipeline is greater than five percent of a line break shutdown value; and in response, determining that a pressure in the pipeline is greater than five percent of a line break shutdown value.

In some implementations, detecting, using the triggered one of the high alarm workflow, the high-high alarm workflow, and the high-high-high alarm workflow, the potential or actual break in the pipeline involves in response to detecting that the pressure in the pipeline is greater than five percent of the line break shutdown value, detecting the actual break in the pipeline.

In some implementations, the corrective action involves starting a countdown timer of a predetermined length; and outputting a notification to an operator of the hydrocarbon production system indicating the actual break.

In some implementations, the corrective action involves one or more of causing an export pump shutdown, causing an emergency isolation valve to close, or a causing a plantwide alarm.

The subject matter described in this specification can be implemented to realize one or more of the following advantages. The described methods and system generate multiple levels of pre-alarms based on pipeline flow and pressure conditions. These alarms allow the described methods and systems to proactively detect a potential pipeline break condition before the break actually occurs.

The details of one or more embodiments of these systems and methods are set forth in the accompanying drawings and description below. Other features, objects, and advantages of these systems and methods will be apparent from the description, drawings, and claims.

DETAILED DESCRIPTION

Existing hydrocarbon production systems include a pipeline break detection alarm that triggers an alarm in case a pipeline in the system breaks. The alarm detects pipeline breaks based on a high pipeline flow value and a low pipeline pressure value. The values may vary based on site or process condition, and are typically set based on the maximum operating conditions of flow and pressure in the production systems (e.g., design operating conditions of the pipelines). In part because the values are based on maximum operating conditions, the alarm can fail to detect pipeline breaks that occur at conditions below the set values. This may occur when the production systems operate at lower rates than the maximum capacity (e.g., within the operating envelope of the pipelines) or when there is a change in the water cut (e.g., a sudden water cut change inside a pipeline will change the density of total flow, and it will proportionally increase surge pressure contributing pipeline break condition). Moreover, existing alarms are reactive to pipeline breaks and do not proactively avoid breaks. For example, existing alarms can be reactively programmed to protect against a condition that results in a pipeline break only after that condition has occurred.

This disclosure describes methods and systems for providing a pipeline control system. The pipeline control system proactively utilizes flow and pressure data to identify pipeline break symptoms and conditions. Additionally, unlike existing systems, the pipeline control system does not use fixed setting values. Rather, the pipeline control system uses dynamic values and rate of pressure and/or flow changes per specific period, the detailed setting values of which can be defined depending on site conditions or processes. As described in more detail below, the pipeline control system is configured to generate multiple levels of alarms such as a pre-warning alarm (also called “high alarm”), an intermediate alarm (also called “high-high alarm”), and a pipeline break alarm (also called “high-high-high alarm”). Each of these alarms is triggered in response to detecting respective pipeline break conditions or symptoms. Furthermore, the pipeline control system is configured to perform emergency shutdown actions for actual pipeline break condition(s) in order to avoid a potential pipeline or to mitigate a break that has occurred.

FIG.1illustrates a pipeline control system100, according to some implementations. The pipeline control system100includes a high alarm102, a high-high alarm104, a high-high-high alarm106, and a controller108. The pipeline control system100is configured to dynamically detect pipeline breaks, e.g., potential breaks before they occur or actual breaks after they occur. Specifically, the pipeline control system100is configured to generate dynamic variables based on historical and measured data. The pipeline control system100is configured to detect pipeline breaks based on the dynamic variables. Additionally, the pipeline control system100is configured to proactively address a potential pipeline break or respond to an actual pipeline break. In particular, the pipeline control system100is configured to control a room console110to perform remedial or corrective actions. The room console110can be a distributed control system (DCS).

In some implementations, modules of the pipeline control system100can be implemented in hardware, software, or both. In some implementations, the term “module” includes software applications/programs or a computer that executes one or more software programs (e.g., program code) that causes the processing unit(s) of the computer to execute one or more functions. The term “computer” is intended to include any data processing device, such as a desktop computer, a laptop computer, a mainframe computer, an electronic notebook device, a computing server, a smart handheld device, or other related device able to process data.

In some implementations, the controller108can be implemented in hardware, software, or both. A computing device representing the controller108can be a special-purpose hardware integrated circuit, and which includes one or more processor microchips. The computing device can also be included in a computer system700, which is described later with reference toFIG.7. The special-purpose circuitry can be used to implement machine-learning algorithms corresponding to learning or inference techniques that are implemented using, for example, neural networks or support vector machines. In general, the computing device can include processors, for example, a central processing unit (CPU) and a graphics-processing unit (GPU), memory, and data storage devices that collectively form one or more computing devices.

In some implementations, the controller108is configured to perform automatic acquisition of production data corresponding to input data112. The input data112can include historical and/or measured pressure and hydrocarbon flow data in a hydrocarbon production system that includes pipelines. The hydrocarbon production system can be the same system in which the pipeline control system100is implemented or can be similar to the system in which the pipeline control system100is implemented. In some implementations, the controller108is configured to acquire measured data in real-time. The controller108can acquire the data at a dynamic or user-defined rate, such as hourly, daily, or weekly.

In some implementations, the controller108is configured generate a rate of change of flow (RCF) threshold and a rate of change of pressure (RCP) threshold. As explained in more detail below, these thresholds can be used for detecting a potential pipeline break or detecting an actual pipeline break. In particular, the controller108is configured to generate the RCF threshold and the RCP threshold based on the historical and/or measured pressure and flow data. In an example, the controller108is configured to use machine learning to generate the RCF threshold and the RCP threshold. In this example, the controller108is configured to generate a machine learning model that is trained using data from a past period. The past period may be specified by a user, determined dynamically, or both. The training data includes values for historical and/or measured pressure and hydrocarbon flow data. In some examples, the training data is data that is selected automatically (e.g., by the controller108) or manually (e.g., by a user).

In some implementations, the controller108is configured to use one or more machine learning algorithms to train the model. Generally, machine-learning can encompass a wide variety of different techniques that are used to train a machine to perform specific tasks without being specifically programmed to perform those tasks. The machine can be trained using different machine-learning techniques, including, for example, supervised learning. In supervised learning, inputs and corresponding outputs of interest are provided to the machine. The machine adjusts its functions in order to provide the desired output when the inputs are provided. Supervised learning is generally used to teach a computer to solve problems in which are outcome determinative. In one example, the machine learning algorithm is the Random Forest algorithm. This algorithm generally accounts for the high variance in reservoir pressure data. However, other example algorithms are also possible.

In some implementations, the trained learning model may be embodied as an artificial neural network. Artificial neural networks (ANNs) or connectionist systems are computing systems inspired by the biological neural networks that constitute animal brains. An ANN is based on a collection of connected units or nodes, called artificial. Each connection, like the synapses in a biological brain, can transmit a signal from one artificial neuron to another. An artificial neuron that receives a signal can process it and then signal additional artificial neurons connected to it. In common ANN implementations, the signal at a connection between artificial neurons is a real number, and the output of each artificial neuron is computed by some non-linear function of the sum of its inputs. The connections between artificial neurons are called ‘edges.’ Artificial neurons and edges may have a weight that adjusts as learning proceeds (for example, each input to an artificial neuron may be separately weighted). The weight increases or decreases the strength of the signal at a connection. Artificial neurons may have a threshold such that the signal is only sent if the aggregate signal crosses that threshold. The transfer functions along the edges usually have a sigmoid shape, but they may also take the form of other non-linear functions, piecewise linear functions, or step functions. Typically, artificial neurons are aggregated into layers. Different layers may perform different kinds of transformations on their inputs. Signals travel from the first layer (the input layer) to the last layer (the output layer), possibly after traversing the layers multiple times.

In some implementations, a plant operation, referred to as “ASL batch operation,” involves periodically (e.g., approximately once a month) diverts a crude export line from an export pipeline to a crude storage tank. During the ASL batch period, the pipeline condition experiences a high rate of changes in flow and pressure conditions. Based on the average values of these rate of changes data, the threshold value for RCF and RCP can be generated using machine learning. In some examples, an additional margin (e.g., 60%) can be applied in real line break case.

Consider as an example a ASL batch operation where the greatest rate of flow change is measured as 17.64%. In this example, the additional margin value is added to rate of flow rate change. As such, the threshold value is 17.64×1.6≈30%. Hence, 30% can be used for the pipeline break condition set point. If a higher rate of change value is detected during another ASL batch, then the newly detected value (plus the predetermined marginal percentage) can be used as pipeline break condition set point. Alternatively, an average of the two values can be used as the value that is added to the predetermined marginal percentage.

In some implementations, the controller108is configured to use a new process variable (PV) to calculate a rate of change of flow (RCF) and rate of change of pressure (RCP). In one example, the controller108is configured to calculate RCP and RCF on a per minute basis. Hence, in order to calculate RCF and RCP, the following new PVs are used:CFV=Current Flow ValuePFV=Previous Flow Value (e.g., 1 minute before)CPV=Current Pressure ValuePPV=Previous Pressure Value (e.g., 1 minute before)

From above, the RCF and RCP can be calculated as follows:

In some implementations, the pipeline control system100is configured to use the calculated RCF and RCP to dynamically detect pipeline breaks. More specifically, the high alarm102, the high-high alarm104, and the high-high-high alarm106monitor the calculated RCF and/or RCP values. Each of the alarms102-106is triggered in certain conditions. When an alarm is triggered, that alarm is configured to provide instructions to the controller108. In some examples, the alarms102-106are configured to perform respective workflows for monitoring the RCF and RCP. The workflows also specify actions to be performed based on the monitoring. The workflows are shown inFIGS.2-4.FIG.2illustrates a workflow performed by the high alarm102,FIG.3illustrates a workflow performed by the high-high alarm104, andFIG.4illustrates a workflow performed by the high-high-high alarm106. In these examples, the RCF and RCP values are percentages. In other examples, the RCF and RCP values can be other fractions, ratios, or other representative values.

FIG.2illustrates a high alarm workflow200, according to some implementations. As shown in step202, the high alarm102monitors the RCF (per minute) to detect if the rate is greater than or equal to a positive 10% difference from the RCF threshold generated by the pipeline control system100. If that rate is detected, the high alarm102moves to step204. At step204, the high alarm102determines if the pressure value is less than or equal to an existing pressure emergency shutdown (ESD) value. The ESD set value can be determined based on a process simulation during an engineering design of the project. If that pressure value is detected, the high alarm102moves to step206. At step206, the high alarm102controls the room console110, e.g., by using the controller108. In an example, the high alarm controls the room console110to emit an alarm or other notification. In another example, the high alarm provides a notification to an operator computing device to thoroughly check the pipeline system to see whether or not any abnormal process operation conditions exist.

FIG.3illustrates a high-high alarm workflow300, according to some implementations. As shown in step302, the high-high alarm104monitors the RCF (per minute) to detect if the rate is greater than or equal to a positive 20% difference from the RCF threshold. If that rate is detected, the high-high alarm104moves to step304. At step304, the high-high alarm104determines whether the rate of pressure changes (per minute) is less than or equal to negative 5% from the RCP threshold. If that rate is detected, the high-high alarm104moves to step306. At step306, the high-high alarm104determines whether the flow is greater than 5% of an existing line break flow value. If that flow is detected, the high-high alarm104moves to step308. At step308, the high-high alarm104determines whether the pressure is greater than 5% of existing line break pressure value (e.g., the ESD value). If that pressure is detected, the high-high alarm104moves to step310. At step310, the high-high alarm104controls the room console110, e.g., by using the controller108. In an example, the high-high alarm104controls the room console110to emit an alarm or other notification. In another example, the high-high alarm104provides a notification to an operator computing device to thoroughly check the pipeline system to see whether or not any abnormal process operation conditions exist.

FIG.4illustrates a high-high-high alarm workflow400, according to some implementations. At step402, the high-high-high alarm106monitors the rate of flow change (per minute) to detect if the rate is greater than or equal to a positive 30% difference from the RCF threshold. If that rate is detected, the high-high-high alarm106moves to step404. At step404, the high-high-high alarm106determines whether the rate of pressure changes (per minute) is less than or equal to negative 5% from the RCP threshold. If that rate is detected, the high-high-high alarm106moves to step406. At step406, the high-high-high alarm106determines whether the flow is greater than 5% of existing line break flow value. If that flow is detected, the high-high-high alarm106moves to step408. At step408, the high-high-high alarm106determines whether the pressure is greater than 5% of existing line break pressure value. If that pressure is detected, the high-high-high alarm106moves to step410. At step410, the high-high-high alarm106controls the room console110, e.g., by using the controller108.

Additionally, as shown by step412, the controller108provides instructions to the room console110to start the timer. The length of the timer may be provided by the controller108or predetermined. In an example, the timer is 15 minutes. Additionally, the controller108provides instructions to the room console110to output an alarm on a computing device of an operator. The alarm can be a visual graphic displayed on a display of the computing device, an audible alarm output by a speaker of the computing device, haptic feedback output by the computing device, or any combination of these. In response to the alarm, the high-high-high alarm106, at step414, determines whether the operator has acknowledged the alarm before the timer has expired. For example, the operator can either activate pipeline break emergency shutdown system if it is identified as a real pipeline break condition or deactivate the pipeline break action if it is identified as a false alarm. If the operator addresses the alarm, then the high-high-high alarm106stops and resets the timer, as shown by step416. Moreover, if the operator(s) does not address the pipeline break alarm before the timer expires, then the room console110will autonomously activate the pipeline break action, as shown by418. The pipeline break action can include one or more of an Export Pump(s) shutdown, an Emergency Isolation Valve(s) Auto closing, and a Plantwide Alarm.

FIG.5illustrates an example graphical user interface (GUI)500, according to some implementations. As shown inFIG.5, the GUI500includes a timer502that indicates how much time is remaining from the 15 minute timer. Additionally, the GUI500includes a graphical feature504(e.g., a button) that, when selected or clicked, provides an operator with a menu that includes a list of ESD actions. The ESD actions can include one or more of an Export Pump(s) shutdown, an Emergency Isolation Valve(s) Auto closing, and a Plantwide Alarm.

FIG.6illustrates a flowchart of an example method600, according to some implementations. For clarity of presentation, the description that follows generally describes method600in the context of the other figures in this description. For example, method600can be performed by the pipeline control system100FIG.1. It will be understood that method600can be performed, for example, by any suitable system, environment, software, hardware, or a combination of systems, environments, software, and hardware, as appropriate. In some implementations, various steps of method600can be run in parallel, in combination, in loops, or in any order.

At602, method600involves calculating a rate of flow change per minute in a pipeline of a hydrocarbon production system.

At604, method600involves determining that the rate of flow change is at least ten percent greater than a predetermined flow change threshold.

At606, method600involves based on a difference between the rate of flow change and the predetermined flow change threshold, triggering one of a high alarm workflow, a high-high alarm workflow, and a high-high-high alarm workflow.

At608, method600involves detecting, using the triggered one of the high alarm workflow, the high-high alarm workflow, and the high-high-high alarm workflow, a potential or actual break in the pipeline.

At610, method600involves in response, performing a corrective action to avoid the potential break or mitigate the actual break in the pipeline.

In some implementations, based on the difference, triggering one of the high alarm workflow, the high-high alarm workflow, and the high-high-high alarm workflow involves determining that the difference is less than twenty percent; and in response, triggering the high alarm workflow.

In some implementations, the high alarm workflow includes determining whether a pressure in the pipeline is less than or equal to a pressure emergency shutdown (ESD) value, and detecting, using the triggered one of the high alarm workflow, the high-high alarm workflow, and the high-high-high alarm workflow, the potential or actual break in the pipeline involves in response to determining that the pressure in the pipeline is less than or equal to the pressure ESD value, detecting the potential break in the pipeline.

In some implementations, based on the difference, triggering one of the high alarm workflow, the high-high alarm workflow, and the high-high-high alarm workflow involves determining that the difference is greater than or equal to twenty percent and less than thirty percent; and in response, triggering the high-high alarm workflow.

In some implementations, the high-high alarm workflow involves: determining that a rate of pressure change per minute in the pipeline is a decrease equal to or more than five percent from a predetermined pressure change threshold; in response, determining that a flow in the pipeline is greater than five percent of a line break shutdown value; and in response, determining that a pressure in the pipeline is greater than five percent of a line break shutdown value.

In some implementations, detecting, using the triggered one of the high alarm workflow, the high-high alarm workflow, and the high-high-high alarm workflow, the potential or actual break in the pipeline involves in response to detecting that the pressure in the pipeline is greater than five percent of the line break shutdown value, detecting the potential break in the pipeline.

In some implementations, based on the difference, triggering one of the high alarm workflow, the high-high alarm workflow, and the high-high-high alarm workflow involves determining that the difference is greater than thirty percent; and in response, triggering the high-high-high alarm workflow.

In some implementations, the high-high alarm workflow involves: determining that a rate of pressure change per minute in the pipeline is a decrease equal to or more than five percent from a predetermined pressure change threshold; in response, determining that a flow in the pipeline is greater than five percent of a line break shutdown value; and in response, determining that a pressure in the pipeline is greater than five percent of a line break shutdown value.

In some implementations, detecting, using the triggered one of the high alarm workflow, the high-high alarm workflow, and the high-high-high alarm workflow, the potential or actual break in the pipeline involves in response to detecting that the pressure in the pipeline is greater than five percent of the line break shutdown value, detecting the actual break in the pipeline.

In some implementations, the corrective action involves starting a countdown timer of a predetermined length; and outputting a notification to an operator of the hydrocarbon production system indicating the actual break.

In some implementations, the corrective action involves one or more of causing an export pump shutdown, causing an emergency isolation valve to close, or a causing a plantwide alarm.

FIG.7is a block diagram of an example computer system700that can be used to provide computational functionalities associated with described algorithms, methods, functions, processes, flows, and procedures, according to some implementations of the present disclosure. In some implementations, the pipeline control system100can be the computer system700, include the computer system700, or the pipeline control system100can communicate with the computer system700.

The illustrated computer702is intended to encompass any computing device such as a server, a desktop computer, an embedded computer, a laptop/notebook computer, a wireless data port, a smart phone, a personal data assistant (PDA), a tablet computing device, or one or more processors within these devices, including physical instances, virtual instances, or both. The computer702can include input devices such as keypads, keyboards, and touch screens that can accept user information. Also, the computer702can include output devices that can convey information associated with the operation of the computer702. The information can include digital data, visual data, audio information, or a combination of information. The information can be presented in a graphical user interface (UI) (or GUI). In some implementations, the inputs and outputs include display ports (such as DVI-I+2× display ports), USB 3.0, GbE ports, isolated DI/O, SATA-III (6.0 Gb/s) ports, mPCIe slots, a combination of these, or other ports. In instances of an edge gateway, the computer702can include a Smart Embedded Management Agent (SEMA), such as a built-in ADLINK SEMA 2.2, and a video sync technology, such as Quick Sync Video technology supported by ADLINK MSDK+. In some examples, the computer702can include the MXE-5400 Series processor-based fanless embedded computer by ADLINK, though the computer702can take other forms or include other components.

The computer702can serve in a role as a client, a network component, a server, a database, a persistency, or components of a computer system for performing the subject matter described in the present disclosure. The illustrated computer702is communicably coupled with a network730. In some implementations, one or more components of the computer702can be configured to operate within different environments, including cloud-computing-based environments, local environments, global environments, and combinations of environments.

The computer702can receive requests over network730from a client application (for example, executing on another computer702). The computer702can respond to the received requests by processing the received requests using software applications. Requests can also be sent to the computer702from internal users (for example, from a command console), external (or third) parties, automated applications, entities, individuals, systems, and computers.

Each of the components of the computer702can communicate using a system bus703. In some implementations, any or all of the components of the computer702, including hardware or software components, can interface with each other or the interface704(or a combination of both), over the system bus. Interfaces can use an application programming interface (API)712, a service layer713, or a combination of the API712and service layer713. The API712can include specifications for routines, data structures, and object classes. The API712can be either computer-language independent or dependent. The API712can refer to a complete interface, a single function, or a set of APIs712.

The service layer713can provide software services to the computer702and other components (whether illustrated or not) that are communicably coupled to the computer702. The functionality of the computer702can be accessible for all service consumers using this service layer713. Software services, such as those provided by the service layer713, can provide reusable, defined functionalities through a defined interface. For example, the interface can be software written in JAVA, C++, or a language providing data in extensible markup language (XML) format. While illustrated as an integrated component of the computer702, in alternative implementations, the API712or the service layer713can be stand-alone components in relation to other components of the computer702and other components communicably coupled to the computer702. Moreover, any or all parts of the API712or the service layer713can be implemented as child or sub-modules of another software module, enterprise application, or hardware module without departing from the scope of the present disclosure.

The computer702can include an interface704. Although illustrated as a single interface704inFIG.7, two or more interfaces704can be used according to particular needs, desires, or particular implementations of the computer702and the described functionality. The interface704can be used by the computer702for communicating with other systems that are connected to the network730(whether illustrated or not) in a distributed environment. Generally, the interface704can include, or be implemented using, logic encoded in software or hardware (or a combination of software and hardware) operable to communicate with the network730. More specifically, the interface704can include software supporting one or more communication protocols associated with communications. As such, the network730or the interface's hardware can be operable to communicate physical signals within and outside of the illustrated computer702.

The computer702includes a processor705. Although illustrated as a single processor705inFIG.7, two or more processors705can be used according to particular needs, desires, or particular implementations of the computer702and the described functionality. Generally, the processor705can execute instructions and manipulate data to perform the operations of the computer702, including operations using algorithms, methods, functions, processes, flows, and procedures as described in the present disclosure.

The computer702can also include a database706that can hold data for the computer702and other components connected to the network730(whether illustrated or not). For example, database706can be an in-memory, conventional, or a database storing data consistent with the present disclosure. In some implementations, the database706can be a combination of two or more different database types (for example, hybrid in-memory and conventional databases) according to particular needs, desires, or particular implementations of the computer702and the described functionality. Although illustrated as a single database706inFIG.7, two or more databases (of the same, different, or combination of types) can be used according to particular needs, desires, or particular implementations of the computer702and the described functionality. While database706is illustrated as an internal component of the computer702, in alternative implementations, database706can be external to the computer702.

The computer702also includes a memory707that can hold data for the computer702or a combination of components connected to the network730(whether illustrated or not). Memory707can store any data consistent with the present disclosure. In some implementations, memory707can be a combination of two or more different types of memory (for example, a combination of semiconductor and magnetic storage) according to particular needs, desires, or particular implementations of the computer702and the described functionality. Although illustrated as a single memory707inFIG.7, two or more memories707(of the same, different, or combination of types) can be used according to particular needs, desires, or particular implementations of the computer702and the described functionality. While memory707is illustrated as an internal component of the computer702, in alternative implementations, memory707can be external to the computer702.

An application708can be an algorithmic software engine providing functionality according to particular needs, desires, or particular implementations of the computer702and the described functionality. For example, an application708can serve as one or more components, modules, or applications708. Multiple applications708can be implemented on the computer702. Each application708can be internal or external to the computer702.

The computer702can also include a power supply714. The power supply714can include a rechargeable or non-rechargeable battery that can be configured to be either user- or non-user-replaceable. In some implementations, the power supply714can include power-conversion and management circuits, including recharging, standby, and power management functionalities. In some implementations, the power-supply714can include a power plug to allow the computer702to be plugged into a wall socket or a power source to, for example, power the computer702or recharge a rechargeable battery.

There can be any number of computers702associated with, or external to, a computer system including computer702, with each computer702communicating over network730. Further, the terms “client”, “user”, and other appropriate terminology can be used interchangeably without departing from the scope of the present disclosure. Moreover, the present disclosure contemplates that many users can use one computer702and one user can use multiple computers702.