Disclosure of Invention
In order to solve the technical problem, the present disclosure provides a management operation and maintenance platform and a data processing method, which can implement unified storage and management of various data in an oil field and unified integration of various service application interfaces by constructing a management operation and maintenance platform system.
The embodiment of the present disclosure provides a management operation and maintenance platform, where the management operation and maintenance platform is constructed based on a PaaS cloud system, and the management operation and maintenance platform includes: the system comprises a micro-service architecture and a business application interface integration module, wherein the micro-service architecture comprises a data storage, control and service module; the business application interface integration module is a module for integrating various business application interfaces to the management operation and maintenance platform; wherein:
the data storage, control and service module is used for preprocessing data collected by various data sources of the oilfield ground system, storing the data into various databases according to different data types in a classified manner, retrieving data required by service application of the oilfield ground system to be executed from the databases and sending the data to corresponding service application;
the business application interface integration module is used for receiving corresponding data retrieved by the data storage, control and service module, executing corresponding business processing by using the data, feeding back and storing a result obtained after the business processing to the data storage, control and service module, and issuing the result to a corresponding terminal user.
In an exemplary embodiment, the data storage, management and service module includes: data lakes and data service units;
the data service unit is used for transmitting different types of data through a plurality of data interfaces, carrying out data preprocessing operation on the received acquired data and sending the preprocessed data to the data lake; the data service comprises a plurality of data interfaces, and the collected data received by different interfaces are different types of data;
the data lake is used for maintaining databases of multiple data types, and respectively storing the data of different data types received from the data service unit into the databases of corresponding data types; the database of the plurality of data types includes: structured databases, unstructured databases, time series databases, and spatial databases.
In an exemplary embodiment, the storing the data of different data types into the database of corresponding types by the data lake comprises:
if the data is of a structured data type, storing main data number information of the structured data in a main database, and storing other oilfield business related structured data except the main data number information in a business database; wherein, the structured database comprises a main database and a business database, and the main data number information comprises: station number and equipment number;
if the data is unstructured data, storing an index of the unstructured data in an index database, and storing the unstructured data in the unstructured database, wherein the index of the unstructured data is main data number information corresponding to the unstructured data, and the main data number information corresponds to main data number information stored in a main database;
if the data is time sequence data, storing the time sequence data and main data number information corresponding to the time sequence data in a time sequence database; the main data number information corresponds to main data number information stored in a main database;
if the data is spatial data, storing the spatial data and main data number information corresponding to the spatial data in a spatial database; and the main data number information corresponds to the main data number information stored in the main database.
In an exemplary embodiment, the management operation platform further includes: middleware and container clouds;
the micro-service architecture is also used for carrying out standardized encapsulation on various service applications supporting the operation of the platform in a micro-service form;
the container cloud is used for storing service applications which are packaged in a micro-service form in the management operation and maintenance platform in a standardized way;
the middleware is used for temporarily storing data in the management operation and maintenance platform, transmitting interactive messages between the container cloud and the micro-service architecture and monitoring the operation state of the management operation and maintenance platform.
In an exemplary embodiment, the microservice architecture further comprises: a system service module and an application service module;
the system service module is used for verifying the received user login information and performing authority matching on the user passing the verification;
the application service module is used for deploying and distributing the resources of the management operation and maintenance platform.
The embodiment of the present disclosure further provides a data processing method, where the method applies any one of the management operation and maintenance platforms in the foregoing embodiments, and the method includes:
data collected by various data sources of the oil field ground system are preprocessed and classified and stored in various databases according to different data types;
retrieving corresponding data from the database according to the data required by the service application of the oilfield ground system to be executed;
and sending the retrieved data to a corresponding service application, wherein the service application receives the retrieved data, executes corresponding service processing by using the data, and feeds back a result obtained after the service processing.
In an exemplary embodiment, the preprocessing data collected from various data sources of the oilfield surface system and storing the preprocessed data into various databases according to different data types includes:
transmitting different types of data through a plurality of data interfaces, and performing data preprocessing operation on the received acquired data; the data service comprises a plurality of data interfaces, and the collected data received by different interfaces are different types of data;
respectively storing the preprocessed data of different data types into databases of corresponding data types; wherein the database comprises: structured databases, unstructured databases, time series databases, and spatial databases.
In an exemplary embodiment, the storing the preprocessed data of different data types into databases of corresponding data types respectively includes:
if the data is of a structured data type, storing main data number information of the structured data in a main database, and storing other oilfield business related structured data except the main data number information in a business database; wherein, the structured database comprises a main database and a business database, and the main data number information comprises: station number and equipment number;
if the data is unstructured data, storing an index of the unstructured data in an index database, and storing the unstructured data in the unstructured database, wherein the index of the unstructured data is main data number information corresponding to the unstructured data, and the main data number information corresponds to main data number information stored in a main database;
if the data is time sequence data, storing the time sequence data and main data number information corresponding to the time sequence data in a time sequence database; the main data number information corresponds to main data number information stored in a main database;
if the data is spatial data, storing the spatial data and main data number information corresponding to the spatial data in a spatial database; and the main data number information corresponds to the main data number information stored in the main database.
In an exemplary embodiment, various service applications which support the platform to run are packaged in a micro-service form in a standardized way, and the service applications packaged in the micro-service form in the standardized way are stored.
In an exemplary embodiment, the management operation and maintenance platform stores data in the management operation and maintenance platform, transmits interactive messages among modules, and monitors the operation state of the management operation and maintenance platform.
Compared with the prior art, the invention provides a management operation and maintenance platform, which is constructed based on a PaaS cloud system and comprises the following steps: the system comprises a micro-service architecture and a business application interface integration module, wherein the micro-service architecture comprises a data storage, control and service module; the service application interface integration module is a module for integrating various service application interfaces to the management operation and maintenance platform; wherein: the data storage, control and service module is used for preprocessing data acquired by various data sources of the oilfield ground system, storing the data into various databases according to different data types in a classified manner, retrieving data required by service application of the oilfield ground system to be executed from the databases and sending the data to corresponding service application; the service application interface integration module is used for receiving corresponding data retrieved by the data storage, control and service module, executing corresponding service processing by using the data, feeding back and storing a result obtained after the service processing to the data storage, control and service module, and issuing the result to a corresponding terminal user. The scheme disclosed by the invention realizes the unified storage and management of various data in the oil field and the unified integration of various service application interfaces.
Additional features and advantages of the invention will be set forth in the description which follows, and in part will be obvious from the description, or may be learned by practice of the invention. The objectives and other advantages of the invention will be realized and attained by the structure particularly pointed out in the written description and claims hereof as well as the appended drawings.
Detailed Description
In order to make the objects, technical solutions and advantages of the present invention more apparent, embodiments of the present invention will be described in detail below with reference to the accompanying drawings. It should be noted that the embodiments and features of the embodiments in the present application may be arbitrarily combined with each other without conflict.
The steps illustrated in the flow charts of the figures may be performed in a computer system such as a set of computer-executable instructions. Also, while a logical order is shown in the flow diagrams, in some cases, the steps shown or described may be performed in an order different than here.
Fig. 1 is a schematic diagram of an operation and maintenance management platform device according to an embodiment of the present disclosure, including: a micro-service architecture 100 and a service application interface integration module 101; wherein: the micro-service architecture 100 includes the data storage, management and service module;
the data storage, control and service module is used for preprocessing data collected by various data sources of the oilfield ground system, storing the data into various databases according to different data types in a classified manner, retrieving data required by service application of the oilfield ground system to be executed from the databases and sending the data to corresponding service application;
the service application interface integration module 101 is configured to integrate various service application interfaces into a platform visual service scene in a unified manner, and publish the platform unified service scene interface to various terminal devices. And various service applications integrated by the service application interface integration module receive corresponding data retrieved by the data storage, control and service module, execute corresponding service processing by using the data, feed back and store a result obtained after the service processing to the data storage, control and service module, and issue the result to corresponding terminal users through a platform unified visual service scene. For example: various business applications receive data retrieved by the data storage, control and service module, execute corresponding business processing by using the data, and feed back and store results obtained after the business processing to the data storage, control and service module; the service application interface integration module 101 is configured to integrate various service application interfaces into a platform visual service scene in a unified manner, and distribute the platform unified service scene interface to various terminal devices.
A user can access the unified service scene interface of the platform through the terminal equipment, further access various oilfield service applications integrated to the platform, check required data and realize digital and intelligent production, management and operation and maintenance of the oilfield ground system.
In this embodiment, the management operation and maintenance platform is based on a PaaS cloud system construction, deployment and operation environment. PaaS (Platform as a Service). A business model in which a server platform is provided as a service, and a corresponding server platform or development environment in the cloud computing era is provided as a service, which becomes PaaS.
The data storage, control and service module is used for preprocessing data collected by various data sources (including a process control system, an electric power system, a video monitoring system, an inspection system, manual input data and the like) of the oilfield ground system, storing the data into a data lake comprising various databases according to different data types in a classified manner, providing services such as data retrieval, data interaction and the like, retrieving data required by the oilfield ground system service application to be executed from the data lake and sending the data to the service application, meanwhile, storing the service data generated by the service application into the corresponding database of the data lake again according to different data types after the data preprocessing, and using the service data for other service applications, thereby realizing the efficient data interaction between the data lake and the service application and the data sharing between various service applications.
In an exemplary embodiment, the data storage, management and service module includes: data lakes and data service units; the data service unit is used for transmitting different types of data through various data interfaces, carrying out data preprocessing operation on the received acquired data and sending the preprocessed data to the data lake; the data service comprises a plurality of data interfaces, and the collected data received by different interfaces are different types of data; the data lake is used for maintaining databases of various data types and respectively storing the data of different data types received from the data service unit into the databases of corresponding data types; the database of the plurality of data types includes: structured databases, unstructured databases, time series databases, and spatial databases.
In an exemplary embodiment, the storing the data of different data types into the database of corresponding types by the data lake comprises: if the data is of a structured data type, storing main data number information of the structured data in a main database, and storing other oilfield business related structured data except the main data number information in a business database; wherein, the structured database comprises a main database and a business database, and the main data number information comprises: station number and equipment number; if the data is unstructured data, storing an index of the unstructured data in an index database, and storing the unstructured data in the unstructured database, wherein the index of the unstructured data is main data number information corresponding to the unstructured data, and the main data number information corresponds to main data number information stored in a main database; if the data is time sequence data, storing the time sequence data and main data number information corresponding to the time sequence data in a time sequence database; the main data number information corresponds to main data number information stored in a main database; if the data is spatial data, storing the spatial data and main data number information corresponding to the spatial data in a spatial database; and the main data number information corresponds to the main data number information stored in the main database.
In an exemplary embodiment, the management operation platform further includes: middleware and container clouds; the micro-service architecture is also used for carrying out standardized encapsulation on various service applications supporting the operation of the platform in a micro-service form; the container cloud is used for storing the service application which is packaged in a micro-service form in the management operation and maintenance platform in a standardized way; the middleware is used for temporarily storing the data in the management operation and maintenance platform, transmitting interactive messages between the container cloud and the micro-service architecture and monitoring the operation state of the management operation and maintenance platform.
In an exemplary embodiment, the microservice architecture further comprises: a system service module and an application service module; wherein the system service module comprises: the system comprises an identity authentication unit, a right management unit, a system configuration unit, a micro-service management unit and a gateway management unit;
the identity verification unit is used for receiving login information and authenticating the login information according to the existing user identity information;
the authority management unit is used for matching the operation authority of the authenticated login information and determining the operation authority of the login user;
the system configuration unit is used for configuring users and operation authorities in the platform system;
the micro-service management unit is used for platform developers to perform unified management and control on various micro-services in the platform, including service splitting, service deployment, service management and the like.
And the gateway management unit is used for developing and maintaining the related functions of the platform network access.
The application service module comprises: the system comprises a resource management unit, an application scheduling unit, a front-end service unit and a back-end service unit;
the resource management unit is used for uniformly deploying and distributing the hardware resources of the platform;
the application scheduling unit is used for uniformly managing and controlling resource occupation, user allocation and data interaction of various service applications on the upper layer of the platform;
the front-end service unit is used for developing and calling a front-end user interface of the platform;
and the back-end service unit is used for developing and calling the back-end functional logic of the platform.
As shown in fig. 2, an embodiment of the present disclosure further provides a data processing method, where the data processing method applies any one of the management operation and maintenance platforms in the foregoing embodiments and includes steps 200 to 203.
Step 200, preprocessing data acquired by various data sources of the oil field ground system and storing the data into various databases in a classified manner according to different data types;
step 201, retrieving corresponding data from the database according to the data required by the service application of the oil field ground system to be executed;
step 202, sending the retrieved data to a corresponding service application to execute data processing;
and 203, feeding back and storing the result obtained after the service processing to a data storage, control and service module.
In step 200, corresponding data is retrieved from the database according to data required for a service application of the oilfield surface system to be executed.
In an exemplary embodiment, the data collected by various data sources of the oilfield surface system is preprocessed and classified and stored in various databases according to different data types, and the method includes: transmitting different types of data through a plurality of data interfaces, and performing data preprocessing operation on the received acquired data; the data service comprises a plurality of data interfaces, and the collected data received by different interfaces are different types of data; respectively storing the preprocessed data of different data types into databases of corresponding data types; wherein the database comprises: structured databases, unstructured databases, time series databases, and spatial databases.
In an exemplary embodiment, storing the preprocessed data of different data types into databases of corresponding data types respectively includes: if the data is of a structured data type, storing main data number information of the structured data in a main database, and storing other oilfield business related structured data except the main data number information in a business database; wherein, the structured database comprises a main database and a business database, and the main data number information comprises: station number and equipment number; if the data is unstructured data, storing an index of the unstructured data in an index database, and storing the unstructured data in the unstructured database, wherein the index of the unstructured data is main data number information corresponding to the unstructured data, and the main data number information corresponds to main data number information stored in a main database; if the data is time sequence data, storing the time sequence data and main data number information corresponding to the time sequence data in a time sequence database; the main data number information corresponds to main data number information stored in a main database; if the data is spatial data, storing the spatial data and main data number information corresponding to the spatial data in a spatial database; and the main data number information corresponds to the main data number information stored in the main database.
In an exemplary embodiment, various service applications which support the platform to run are packaged in a micro-service form in a standardized way, and the service applications packaged in the micro-service form in the standardized way are stored.
In an exemplary embodiment, the management operation and maintenance platform stores data in the management operation and maintenance platform, transmits interactive messages among modules, and monitors the operation state of the management operation and maintenance platform.
As shown in fig. 3, an exemplary embodiment of an operation and maintenance management platform provided in an embodiment of the present disclosure includes: the system comprises a service application integration module and a PaaS cloud system, wherein: the PaaS cloud system comprises: microservice architectures, middleware, and containers;
the micro-service architecture is divided into three units: data storage, management and control and storage service, system service and application service; the data storage, control and storage service unit comprises a data service and a data lake; the data service includes: data services, data retrieval and data interaction. The business application integration module comprises: production operation monitoring, intelligent inspection, intelligent security, process simulation optimization and equipment management.
The container cloud is used for storing the service application which is packaged in the management operation and maintenance platform in a micro-service form in a standardized mode.
The middleware is used for temporarily storing the data in the management operation and maintenance platform, transmitting interactive messages between the container cloud and the micro-service architecture and monitoring the operation state of the management operation and maintenance platform.
The middleware technology implementation includes caching, messaging, and logging. The cache can adopt distributed cache service, the data interaction pressure in the system can be relieved through the distributed cache service, and the response speed and the overall performance of the management operation and maintenance platform are improved. The message service provides a message transmission function for each component, service and application of the platform, and asynchronously processes requests through a message queue under a high-concurrency distributed environment, so that the system pressure is relieved. The log service can provide uniform collection, transmission, storage and access of logs of all nodes of the system and monitor the running state of the platform. The smooth operation of the platform can be ensured through the middleware. The container cloud is used for storing various service applications which are packaged in a micro-service mode in the management operation and maintenance platform in a standardized mode by adopting a virtualization container.
The service application integration module is used for receiving the data retrieved by the data storage, control and service module, executing corresponding service processing by using the data, integrating the result obtained after the service processing into the platform user interface, and transmitting the platform user interface to the client through the data interface. Fig. 4 shows a basic architecture of a business application integration module. In the basic framework, the management operation and maintenance platform carries out unified virtual deployment on a plurality of oilfield business applications such as production operation monitoring, intelligent routing inspection, intelligent security, equipment management, process simulation optimization and the like on a background server, integrates various business application interfaces into the platform in a unified manner, and then releases the business application interfaces to various terminals through an oilfield private cloud. Various services in the management operation and maintenance platform are uniformly deployed and maintained on the platform side, and a client does not need to independently install application software. And the terminal user can realize the interaction with the service application only by accessing the platform uniform interactive interface. Meanwhile, the platform carries out unified management on users of various service applications, and avoids repeated storage and processing of the same user information in multiple applications.
All services operated by the internal support platform of the management operation and maintenance platform can be roughly divided into three types according to functions, namely: data services are data storage, management and control and storage services, system services and application services. The microservice architecture, comprising: data services and data lakes. The system service module comprises: the system comprises an identity authentication unit, a right management unit, a system configuration unit, a micro-service management unit and a gateway management unit; the application service module comprises: the system comprises a resource management unit, an application scheduling unit, a front-end service unit and a back-end service unit.
Wherein, the system service module is used for receiving platform user identity information, such as: the platform comprises a user name, a login password, a user platform operation authority, a user data lake operation authority and the like, wherein the user identity information of the platform can be stored in a structured database of the data lake in a manual input or static import mode. And the user login information, the user platform operation authority and the data lake operation authority are managed through a user management unit and an authority management unit of the system service module. For example: the terminal user inputs login information through a terminal platform interface, and an identity authentication unit of the system service module performs user identity authentication and operation authority matching on the login user based on the platform user identity information of the stored data lake, so that the platform system management safety and the data lake management safety are guaranteed.
The system configuration unit is used for the platform developer to configure the platform system menu, the internal function logic and the like. The micro-service management unit is used for platform developers to perform unified management and control on various micro-services in the platform, including service splitting, service deployment, service management and the like. The gateway management unit is used for platform developers to develop and maintain the related functions of platform network access.
The application service module comprises: the system comprises a resource management unit, an application scheduling unit, a front-end service unit and a back-end service unit. The resource management unit is used for platform developers to uniformly deploy and distribute platform hardware resources according to the deployment condition of the platform software. The application scheduling unit is used for the platform developer to carry out unified management and control on resource occupation, user allocation, data interaction and the like of various service applications on the upper layer of the platform. The front-end service unit and the back-end service unit are used for platform developers to develop and call a front-end user interface and back-end functional logic of the platform.
The data service unit is used for transmitting different types of data through various data interfaces, carrying out data preprocessing operation on the received acquired data and sending the preprocessed data to the data lake; the data service comprises a plurality of data interfaces, and the collected data received by different interfaces are different types of data. The platform constructs a data lake comprising a plurality of different types of databases aiming at various data collected by different data collection systems of an oil field, provides various standardized data interfaces such as OPC (OLE for Process control), REST (representational State transfer), JDBC (Java Database connectivity) and the like, supports access of various data sources, performs data storage planning uniformly, implements safe and efficient one-stop data services such as data management, data retrieval, data interaction and the like on the basis of data storage, and provides uniform data support for various business applications of the platform. According to the actual conditions of production, operation and management of the oil field, data sources are mainly divided into structured data (mainly comprising various basic information logically expressed by a two-dimensional table structure such as engineering design, construction, material purchasing, enterprise management, basic information of production equipment and the like), unstructured data (mainly comprising various drawings, reports, pictures, videos, digital delivery source files, three-dimensional model source files and other data structures which are irregular or incomplete and have no data of a predefined data model), time sequence data (mainly comprising data which change according to time and comprise real-time production, real-time equipment monitoring, real-time early warning and tracking information in image identification and the like) and spatial data (mainly comprising data which are used for indicating the shape, size, position and distribution characteristics of a space entity such as surveying and mapping, station geographical information, inspection places, paths and the like). The data lake plans corresponding databases according to the various data sources, and connects the data in the various databases in series through unified main data number information such as equipment numbers, station numbers and the like, so as to realize unified management and sharing of the data.
The data lake is used for maintaining databases of various data types, and respectively storing the data of different data types received from the data service unit into the databases of corresponding data types; the database of the plurality of data types includes: structured databases, unstructured databases, time series databases, and spatial databases. The overall architecture of the data lake is given as shown in fig. 5.
The data lake is used for storing data of different data types into the corresponding type of database and comprises the following steps: if the data is of a structured data type, storing main data number information of the structured data in a main database, and storing other oilfield business related structured data except the main data number information in a business database; wherein, the structured database comprises a main database and a business database, and the main data number information comprises: station number and equipment number; if the data is unstructured data, storing an index of the unstructured data in an index database, and storing the unstructured data in the unstructured database, wherein the index of the unstructured data is main data number information corresponding to the unstructured data, and the main data number information corresponds to main data number information stored in a main database; if the data is time sequence data, storing the time sequence data and main data number information corresponding to the time sequence data in a time sequence database; the main data number information corresponds to main data number information stored in a main database; if the data is spatial data, storing the spatial data and main data number information corresponding to the spatial data in a spatial database; and the main data number information corresponds to the main data number information stored in the main database. In this embodiment, the data collection library is designed for structured data storage, and various types of structured data collected by the platform are uniformly stored. In addition, the structured data in the data acquisition database is further divided into a main database and a business database in consideration of high-speed query and effective management of massive structured data. The main database is used for storing basic information such as main data numbers (including station numbers, equipment numbers and the like), organizations, personnel and the like. The service database is used for storing the historical data of various monitoring systems, the structural data generated in the production, operation, maintenance and management processes such as equipment maintenance and repair records, inspection records and the like. And automatically establishing an index through data preprocessing after the unstructured data enters the lake. The unstructured file body is stored to an unstructured database through a file management microservice. And the main data number information such as station numbers, equipment numbers and the like corresponding to the unstructured data is used as corresponding indexes of each unstructured file body, is stored in an index database and corresponds to the corresponding number information in the main database, so that the data files are quickly positioned in the unstructured database, and services such as document list query, document attribute query, document uploading, previewing, downloading and the like are provided for the outside. And the time sequence data is stored into a time sequence database through the platform data stream micro-service, and main data numbers such as equipment numbers, station numbers and the like of the stored data correspond to corresponding information of the main database so as to realize data services such as inquiry, extraction and the like of the time sequence data. And the spatial data is stored in a spatial database in a geometric object format through a spatial data acquisition microservice, and a spatial data universal search tree is established. The main data numbers of the stored space data, such as the equipment number, the station yard number and the like, correspond to the corresponding information of the main database so as to realize services of space data query and the like.
The database security management system carries out account identification on registered users, carries out identity authentication and authority configuration of different levels on the users logging in the database, and strictly controls database operation of different users. According to the security management requirements of the database, system management level permissions (including account management, service management and the like), database management level permissions (including creation, deletion, modification and the like of the database), and database access level permissions (including query, insertion, deletion, modification and the like of data) are respectively set.
The platform designs unified data services such as data governance, data retrieval and data interaction aiming at various data. Based on a data management system conforming to oilfield services, mass data acquired by various systems are cleaned and mapped before entering a lake through a data management micro-service, so that the quality and reliability of the data in the data lake are ensured. The search service engine such as the ElasticSearch is adopted to realize the query and cataloging index of the Geographic Information System (GIS) of the oil field. GIS inquiry is that geographic information such as well heads, stations, pipelines, large-scale equipment and the like are quickly positioned on an oil field GIS map according to the main data serial numbers of the spatial data, and related production parameters, personnel management information and the like are quickly associated through main data mapping of corresponding structured data and unstructured data. The cataloging index is to divide and catalog the platform data facing to various service topics of the oil field to form a service data set, so that classified data of different services can be efficiently retrieved. The platform provides various standardized data interfaces aiming at various service application requirements of an oil field, releases required data to service applications, controls the data generated by the service applications, then enters a lake, and releases the data to other service applications according to the requirements, and realizes efficient data interaction between the data lake and the service applications and data sharing between various service applications.
By adopting the management operation and maintenance platform, effective fusion of various data of the oil field is realized, data storage planning and management are uniformly carried out, and data services such as data management, high-speed retrieval, data interaction and the like are provided by considering the data requirements of various terminal service applications. The digital oilfield management operation and maintenance platform system realizes effective integration of various terminal service applications, realizes sharing of data in a plurality of functional software in the digital oilfield, simplifies use and operation steps and improves user experience. The problems that most of existing oil field data acquisition systems operate independently, the acquired various data are not subjected to unified storage planning, efficient data sharing and exchange cannot be carried out, and a large amount of software and hardware resources are wasted due to repeated data processing are solved.
It will be understood by those of ordinary skill in the art that all or some of the steps of the methods, systems, functional modules/units in the devices disclosed above may be implemented as software, firmware, hardware, and suitable combinations thereof. In a hardware implementation, the division between functional modules/units mentioned in the above description does not necessarily correspond to the division of physical components; for example, one physical component may have multiple functions, or one function or step may be performed by several physical components in cooperation. Some or all of the components may be implemented as software executed by a processor, such as a digital signal processor or microprocessor, or as hardware, or as an integrated circuit, such as an application specific integrated circuit. Such software may be distributed on computer readable media, which may include computer storage media (or non-transitory media) and communication media (or transitory media). The term computer storage media includes volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data, as is well known to those of ordinary skill in the art. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, Digital Versatile Disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can accessed by a computer. In addition, communication media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media as known to those skilled in the art.