US20180336019A1 - Systems and methods for application re-use by type pattern matching - Google Patents
Systems and methods for application re-use by type pattern matching Download PDFInfo
- Publication number
- US20180336019A1 US20180336019A1 US15/985,127 US201815985127A US2018336019A1 US 20180336019 A1 US20180336019 A1 US 20180336019A1 US 201815985127 A US201815985127 A US 201815985127A US 2018336019 A1 US2018336019 A1 US 2018336019A1
- Authority
- US
- United States
- Prior art keywords
- application
- pattern
- data
- applications
- asset
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and management
- G06F16/212—Schema design and management with details for data modelling support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2425—Iterative querying; Query formulation based on the results of a preceding query
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
- G06F16/24578—Query processing with adaptation to user needs using ranking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2474—Sequence data queries, e.g. querying versioned data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/248—Presentation of query results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/29—Geographical information databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/93—Document management systems
-
- G06F17/2765—
-
- G06F17/3053—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
Definitions
- Cloud applications and analytics for assets are developed in various sub-domains for activities such as monitoring, device management or predictive maintenance.
- the application code developed among the different applications teams often creates a heterogeneous landscape of solutions. Maintenance of the applications is performed on a case by case basis despite the fact that a variety of functionalities across the applications is similar.
- Exemplary embodiments for adapting program code for use in new applications for managing asset data are provided.
- a method for reuse of computer code in a new application with the following acts:
- Another form of the present application contemplates a system for re-using computer code from at least one existing application in a new application, has: a cloud gateway for receiving data from a plurality of assets; a time event processor for handling time series data of the assets; a time series data storage for storing time series data handed by the time event processor; an information model database for storing metadata describing a plurality of assets; a plurality of applications for querying the information model database for metadata describing at least one asset resulting in raw access data; an extractor for extracting patterns from the raw access data to generate patterns therefrom; a pattern database for storing the patterns of access generated by the plurality of applications accessing the information model database metadata; and an analysis engine for ranking patterns based on overlap of the applications accessing the same patterns as the new application.
- FIG. 1 is a schematic of a system for reuse of computer code in new applications and a plurality of applications performing queries on the information model database resulting in raw access data;
- FIG. 2 depicts a pattern database extractor and the generation of patterns from raw access data
- FIG. 3 depicts the creation of a new application and identification of common patterns shared between prior-developed applications and the new application
- FIG. 4 is a process flow diagram that depicts application querying, extraction of patterns and development of a new application using prior-developed code based on pattern matching;
- FIG. 5 shows one form of system architecture for reusing application code based on discovered patterns in the access data of computer applications to the asset metadata.
- Assets including but not limited to robots, drives, motors, pumps, valves, transformers and other equipment assets.
- assets used in the contemplated processes and systems include but are not limited mobile devices, servers, and gateways.
- Application programmers create computer code for a plurality of applications 40 including but not limited to applications 40 that track the assets to prevent failure and determine the remaining useful life of the assets in an enterprise.
- the plurality of applications 40 are executable on an operating system or consumed as a service such as a cloud application accessed through the internet.
- the plurality of applications 40 access data that describes the assets that are part of the industrial process or system being monitored.
- An application programmer has access to semantic data in an information model 20 describing the assets and prior use cases involving the asset data.
- FIG. 1 a schematic of a system that allows a programmer to utilize pre-existing code from an application or plurality of applications and implement the code in a new, in-development application is shown.
- the system 10 has an information model database 20 , a plurality of applications 40 that access the information model database 20 , an application programming interface (API) 24 , a pattern database 30 and an extractor 36 .
- API application programming interface
- the data in the information model database 20 is metadata that describes or represents other data in an enterprise.
- the metadata describes the assets in a system in a manner including but not limited to the general type of asset, specific type of asset, model, serial number, location of asset and the frequency with which the data arrives and is accessed by the applications 40 .
- the information model database 20 stores data that describes an installed base of assets, such as those assets managed by a process control system or an asset management system for monitoring, device management, and predictive maintenance in the form of structures, objects, and properties.
- the information model database 20 is accessed by queries from the plurality of applications 40 through the API 24 .
- the pattern database 30 stores the raw access data 32 generated by the queries of the plurality of applications 40 on the information model database 20 data.
- the raw access data 32 includes but is not limited to metadata described above but also the exact metadata and the frequency with which the applications 40 access the information model database 20 metadata.
- the raw access data 32 is abstracted by the extractor 36 expressing the data in terms corresponding to the domain of the plurality of applications 40 querying the information model.
- the patterns expressed in the extracted data are stored in the pattern database 30 as abstracted patterns 34 .
- the data access patterns by the plurality applications 40 overlap and only the common data accessed by the plurality of the applications 40 is represented in the abstracted pattern.
- the raw data, queries thereon, identified patterns and associated databases can be implemented on a cloud-based platform.
- An application may execute as a service on the cloud platform, enabling the discovery of asset data from a single facility or a plurality of industrial facilities that are geographically dispersed. Access to the asset data is available to users regardless of their location through the cloud delivery method and cloud computing security.
- the system whether implemented on a cloud platform, a networked computer system, or an embedded computer system, has a server, the information model and pattern databases 20 , 30 , a processor, an internal memory, an extractor component, event processors and a communication module for communicating with assets in the installed base as well as mobile devices for monitoring the assets and data storage 11 , 12 , 13 as depicted in FIG. 5 .
- the event processors 14 , 15 , 16 , data storage 11 , 12 , 13 , cloud gateway 18 , information model database 20 , pattern database 30 , an analysis engine 38 , graphical user interface 46 and applications 40 form the system 10 which in one embodiment is implemented as a cloud computing system.
- the devices, sensors and/or assets 22 that are independent or connected together in a system such as a process control system generate, transmit and/or broadcast data that is received by a field gateway 26 .
- the asset 22 data is either raw data or metadata, the raw data being transmitted to the cloud gateway and the metadata being transmitted to the information model database 20 .
- the field gateway 26 is resident in the cloud computing architecture of the system 10 or is alternatively an edge device that is located in proximity of the data source for analytics purposes.
- the raw data is time series data from signals or measurements of sensors/devices/assets 22 and is routed to an event processor depending on type. Data of types that are accessed with less frequency are routed through the cold data processor 14 to the cold data storage 11 which represents slower storage capabilities. Data of types that are accessed with greater frequency are routed through the hot path even processor 16 to the measurement state database 13 . Time series data, including but not limited to sensor measurements of pressure, temperature, vibration and other real-time values over a period of time are processed by the time event processor 15 for storage in a time series database 12 .
- the applications 40 have access to time series database 12 data on the cloud computing system.
- Cold data storage 11 is the product of the accessing of asset data 22 on demand.
- batch uploads of the asset data 22 can be processed from the device, sensors, or assets through the cold data processor 14 to the cold data storage 11 .
- data flow is continuous from devices 22 to field gateway 26 to cloud gateway 18 to time event and hot path event processors 15 , 16 to the respective time series and measurement state data storages 12 , 13 .
- the cold data storage 11 includes time series data but not metadata which can also be stored in the information database 20 .
- the asset information may be stored in a hierarchy or structure in the information model database 20 and utilize classifications and product descriptions.
- asset information is metadata associated with the equipment assets.
- the hierarchy for asset data in the information model database is, by way of non-limiting example, an asset such as a pump at the highest level, a type of pump such as a vacuum pump at a second level, a specific type of pump such as a rotary vane, diaphragm, or scroll pump at a third level, a model of pump within the class of vacuum pumps at a fourth level and the location of the pump in a country, region, or plant as yet another level in the hierarchy.
- the frequency with which each application in a domain accesses the information model 20 is tracked as a property within the raw access data 32 along with the asset types, models, and location of the assets.
- the objects, types and properties in the information model database 20 are hierarchically structured for storage in an object-oriented database as described above, the data may also be stored in a relational database, a business intelligence database or another type of information model database 20 .
- the plurality of applications 40 use classifications and product descriptions such as in the eCl@ss standard, which has the exemplary structural elements of class, property, value, unit, keyword, and synonym.
- a first application of the plurality of applications 40 queries the information model database 20 via an application programming interface (API) 24 which monitors access to the information model database and frequency of incoming operational data on each asset.
- API application programming interface
- information of the queries from the API 24 can be used to populate the pattern database 30 where such queries can be stored as raw access data 32 .
- the results of the information model database 20 query by the first application 40 are stored as raw access data 32 in the pattern database 30 .
- An example of the raw access data 32 stored in the pattern database 30 based on a query by a plurality of applications 40 is as follows.
- the information model 20 is queried by the first application of the plurality of applications 40 on at least one occasion to return programs that include the pattern of a drive of type ACS880-01, a motor of type Z1310A, and a pump of type RCE 50-250 that are interconnected in a process and/or capable of communicating to a process control system, asset management system, another type of application, mobile device, or gateway.
- a drive of type ACS880-01 a motor of type Z1310A
- a pump of type RCE 50-250 that are interconnected in a process and/or capable of communicating to a process control system, asset management system, another type of application, mobile device, or gateway.
- information model 20 data that is accessed by applications on a basis of 10 4 number of times is considered more relevant to a developer query than data that is accessed by applications on a basis of 10 3 number of times.
- the present disclosure contemplates frequency of access from one access to 10 6 number of times accessed.
- the second application of the plurality of applications 40 accesses the drive of type ACS880-01 and the pump of type RCE 50-250 on at least one occasion and the drive and pump are connected.
- a third application of the plurality of applications 40 accesses a drive of type ACS880-01, motor of type Z1310A, and a pump of type RCE 50-250 that are physically located in France and have been accessed on at least one occasion. While the motor, pump, and drive are all located in France, there is no connection between the assets in a single industrial process. Alternatively, the motor, pump, and drive may be located in a particular plant in France where the assets are connected either in a process or communicatively.
- the third application separately accesses a drive of type ACS880-01.
- Knowledge of the context in which the data is used allows for increased resolution such as the monitoring of assets in an industrial process that accesses a general type of asset such as an industrial drive, a specific type of drive such as the ABB ACS880-01 and a location for each asset.
- the query monitoring for queries by the plurality of applications 40 on the information model database 20 results in attribute sets and is cached.
- a generated pattern is the result of the query.
- the plurality of applications 40 utilize the resulting patterns along with the tracking of frequency of utilization for the determined patterns which is also stored with the raw access data 32 .
- the results of the plurality of application 40 queries, now raw access data 32 are acted on by an extractor 36 which generates a first pattern from the first and second application queries that includes, as an example, the drive of type ACS880-1 and pump of type RCE 50-250 that are connected in an industrial process.
- the motor of type Z1310A was not included in at least one of the queries on the information model database 20 by the first and second applications, the first abstracted pattern does not contain the motor of type Z1310A as the motor property is a difference as between the raw access data of the first and second application queries.
- a second abstracted pattern 34 generated by the extractor 36 from the raw access data 32 , contains drive type ACS880-01, motor type Z1310A, and pump type RCE 50-250 as the result of the first and third application queries.
- the second abstracted pattern 34 is the result of at least one query of assets that are not connected, the second abstracted pattern 34 does not have the property that describes the assets as being connected. Further, as the second abstracted pattern 34 is the result of at least one asset query that does not contain a location, the second abstracted pattern 34 does not include a location.
- the programmer develops a new application that accesses data on assets such as a particular drive and pump and searches for a second computer application that is already complete, involving the same drive and pump. Classification of the drive and pump data and semantic extensions of the data that is stored are taken into account when extracting patterns from the pattern database. The programmer accesses the stored patterns based on the search for the drive and pump and determines that a first pattern is relevant.
- a search is performed by the programmer based on semantic tags that are exact matches of patterns in certain instances but can also be based on semantic compatibility.
- the application programmer queries the information model database 20 on a set of properties forming a pattern describing a motor and the remaining useful life of that motor to apply to the application a programmer currently has under development.
- the application programmer queries the pattern database 30 on a set of properties forming a pattern describing a motor and the remaining useful life of that motor to apply to the application a programmer currently has under development.
- the system 10 identifies any previously accessed or stored pattern from a second application in the pattern database 30 that is similar to the needs of the programmer in the first application under development, and the programmer can reuse the code from the second application in which the pattern is matched as between the first and second applications with respect to the plurality of applications 40 accessing the information model database 20 .
- the system 10 identifies that the first and second applications that use the first pattern are relevant to the new application the programmer is creating.
- the programmer considers implementing program code associated with the first and second applications in the new application that the programmer is developing.
- the programmer decides whether the in-development application can utilize the entire code of the application or portions of the code.
- the frequency and quality of operational data is utilized in the querying and ranking of the patterns extracted.
- the operational data is analyzed to determine whether the value is a real-time measured value or has been stored for a period of time.
- the system is able to retrieve the most recent data that is available in the information model and pattern databases.
- the data retrieved that describes an industrial process and set of assets employed in the process is scored by most recent access, frequency of access and ranked to determine which processes and assets perform the best for the scenario that the particular programmer is seeking to reuse in the new application being developed.
- the patterns are then ranked based on relevance and importance to the application under development.
- the assigned score is correlated to the count of the number of times the application has accessed the raw data. A higher frequency of access by the plurality of applications 40 to the raw data results in a higher score and is highlighted or ranked in the results of the query of the pattern database 36 for ease of identification.
- step 5 the data is gathered and ingested through knowledge of the particular context in which the data is used.
- the previously described process may be a boiler feedwater operation and involve the tracking of drive, motor, and pump data during the process.
- the system 10 analyzes the frequency with which the data describing the boiler operation and the particular assets involved in the boiler operation is accessed, how the assets are connected together and/or communication between the assets.
- A/B tests are comparisons between versions of a program to determine which are more successful in relation to usage by a user community. For example, known A/B tests analyze the duration of user interaction in each version to determine which version should be implemented in a productive environment.
- A/B tests are performed by the programmer to compare the first and second applications that access common patterns to determine suitability of the program code for the industrial process so that the programmer can choose the code from the various applications that have accessed the same patterns of properties the programmer will access in the application under development.
- the ranking or highlighting of program code for reuse in a new application through an A/B test presents results to a user in the order of perceived relevance to the user query based on frequency of access to common sets of information model 20 data by the applications 40 .
- This logic is used by the analysis engine 38 to present at least one application 40 of interest to a user or otherwise indicate no suitable matches.
- the programmer based on the pattern matching and ranking as between the identified patterns of the first and second applications, implements code from the first application into the in-development application.
- the programmer may implement code from both of the first and second applications into the in-development application.
- the application reuse and pattern match system 10 addresses the tracking of current and historical asset location, such as prior physical location(s), current physical location, and the movement of assets from one geographical location to another.
- a plurality of applications 40 query the information model database 20 to generate patterns in the pattern database 30 for pump of type X (such as RCE 50-250) now in location Y (such as Germany). Once the pump of type RCE 50-250 moves to France, the information model 20 is updated with the second location and the application query and pattern database 30 will not capture the pump of type RCE 50-250 because the pump is no longer located in Germany.
- the geographical location may be a country, region, city, facility location and/or GPS coordinate set.
- the applications query the pattern database 30 in a second attempt for ‘pump type’ RCE 50-250 that ‘has ever been located in Germany.’ Once the pump moves to France, the information model 20 is updated with the pump type location in France. However, in the second query the moved pump is captured in the results and populated in the pattern database 30 because the query requested historical data on the pump location.
- the plurality of applications 40 on the information model database 20 for pump type RCE 50-250 that has ever been in location Y populates the pattern database 30 with patterns (in an additional and/or alternative embodiment, queries from the plurality of applications 40 are used to populate the pattern database 30 with raw access data 32 ).
- the application returns results e.g. the application reuse and pattern match system 10 returns results from the query of the pattern database 30 or results are returned from the abstracted patterns 34 produced by the extractor 36 ) such as every pump of type RCE 50-250 that has been located/checked in to location Y at the time of the query or any time preceding the query.
- the frequency of application queries on the aforementioned patterns allows the applications accessing the patterns to be ranked, with the highest frequency of access to the desired patterns being retrieved and/or presented prominently to the developer via the web graphical user interface, a command line query or a cloud service that generates data the developer can access directly or consume on demand as a service.
- a developer's query on the pattern database 30 for the above referenced pump types and/or locations returns a list and indicates the order of relevance for the applications accessing the desired patterns for use in the developer's in-development application that is used to track location of the asset(s) for various purposes, including but not limited to maintenance of the assets.
- the cabinet contains a controller, central processing unit, and an industrial computer that coordinates robot movement. Temperature sensors and fans monitor the environment inside the cabinet.
- a predictive maintenance application sends queries which are stored as raw data for the controller, central processing unit, industrial computer and associated monitored properties.
- a programmer developing a first application to detect a pattern leading to high temperatures over a set threshold in a robot cabinet during operation determines that there is a pattern that includes the controller, central processing unit, industrial computer, robot, and temperature sensor in an existing second application. The programmer selects the second application from which to repurpose the code based on the similarity and match with the identified pattern in the first application under development.
- time series data from the time series data storage 12 is the measurement of pressure values upstream and downstream of a filter in a pipe or water treatment system. If the time series measurements 12 indicate the pressure is increasing in the pipe, then the filter is getting clogged in the water treatment process.
- the developer is working on an application that can detect problems in a water treatment process that has a particular pump, filter and pressure sensor.
- the developer searches (e.g. the developer searches the pattern database 30 ) for the particular pump, filter and pressure sensor and finds a match on at least one application 40 for which the same pump, filter and pressure sensor data has been accessed at least 10 4 times.
- the system 10 presents the application 40 to the developer based on matches as between the pump, filter and pressure sensor being accessed in the in-development application.
- the programmer extracts selected code from the second application or the plurality of applications to build and complete a first, in-development application. It should be understood that common properties in a pattern as between the first and the second applications indicate compatibility of the computer code of the applications so that the development time is significantly reduced.
- various alternative and/or additional embodiments can include the ability to detect access of data in an information model database 20 , one ability of which is provided by one or more API's 24 associated with one or more of a plurality of applications accessing the data in database 20 .
- data can include time series data (e.g. time history information of temperature, type of asset, etc).
- the access of data from the information model database 20 can take the form of a program or other utility that, for example, is written to evaluate a temperature and perform a calculation upon it.
- a pattern database 30 can be created from the access of information from the information model database 20 .
- Such pattern database 30 can be created using any number of techniques, including via the same API(s) 24 that were used to access the data from database 20 .
- the pattern database 30 includes raw access data 32 from the individual API(s).
- An extractor 36 can be used to abstract the raw access data 32 to form abstracted patterns 34 from which a result can be returned which can be helpful in reusing application code.
- the present application provides a method for reuse of computer code in a new application, comprising: querying, by a first application via a processor, on data in an information model database; storing the query of the first application on the information model database as raw access data; extracting a pattern from the raw access data describing a set of assets accessed by the first application; storing the pattern in a pattern database; querying on the pattern database for a pattern accessed by the first application for use in a second application; determining a pattern match between the asset pattern data accessed by the first and second in-development application; and presenting to a user, the first application as an option for use in the second in-development application.
- One feature of the present application includes implementing code from the first application in the in-development application; and using the first application to monitor the operation of an asset described by the pattern data.
- One feature of the present application provide wherein the pattern match is based on frequency of access to asset pattern data by a plurality of applications.
- Another feature of the present application provides wherein the pattern match is based on the number of matched properties within a set of asset pattern data as between the pattern data accessed by the first and second applications.
- Yet another aspect of the present application provides a computer-implemented method for developing a first application by reusing program code from a second application, comprising: monitoring queries from a plurality of computer applications on data in an information model database; storing results of the queries as raw access data; extracting patterns from the raw access data to describe an asset and an operating characteristic of the asset; storing the patterns in a pattern database; determining that the second computer application describes the asset and operating characteristics of the asset based on a shared pattern between the first computer application and the second computer application; ranking the second computer application against other applications accessing the shared pattern based on the degree of overlap of the shared pattern.
- Another feature of the present application includes presenting the second application and other applications accessing the shared patterns in an order of relevance to the user.
- Another feature of the present application provides wherein the asset and operating characteristics are used to calculate a remaining useful life for the asset based on the most relevant application match on the pattern database query.
- Another feature of the present application provides wherein the first computer application is selected based on frequency of access to the shared pattern across a plurality of applications.
- Another aspect of the present application provides a system for re-using computer code from at least one existing application in a new application, comprising: a cloud gateway for receiving data from a plurality of assets; a time event processor for handling time series data of the assets; a time series data storage for storing time series data handed by the time event processor; an information model database for storing metadata describing a plurality of assets; a plurality of applications for querying the information model database for metadata describing at least one asset resulting in raw access data; an extractor for extracting patterns from the raw access data to generate patterns therefrom; a pattern database for storing the patterns of access generated by the plurality of applications accessing the information model database metadata; and an analysis engine for ranking patterns based on overlap of the applications accessing the same patterns as the new application.
- One feature of the present application includes a graphical user interface for presenting the ranked patterns to the user.
- Yet another aspect of the present application provides a method for reuse of computer code in a new application, comprising: querying, by a first application via a processor, on data in an information model database; storing, by the processor, the query of the first application on the information model database as raw access data; extracting, by the processor, a pattern from the raw access data describing an industrial asset accessed by the first application; storing, by the processor, the pattern in a pattern database; querying, by the processor, on the pattern database for a pattern accessed by the first application for use in a second application; determining, by the processor, a pattern match between the industrial asset pattern data accessed by the first and second applications; and presenting to a user, the first application as an option for use in the second in-development application.
- a feature of the present application includes implementing code from the first application in the in-development application; and using the first application to monitor the operation of the industrial asset described by the pattern data.
- Another feature of the present application includes using the first application to track the physical location of the industrial asset.
- Yet another feature of the present application includes using the first application to track the physical location of a plurality of industrial assets for maintenance.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- General Business, Economics & Management (AREA)
- Business, Economics & Management (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Probability & Statistics with Applications (AREA)
- Remote Sensing (AREA)
- Fuzzy Systems (AREA)
- Medical Informatics (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
A system for reusing program code from a first completed application in a second under-development application based on identified patterns matching between the types of data accessed by the first and second applications. The system has an information model database, a pattern database, an API and applications which query the information model through the API, resulting in stored raw access data. The raw access data is extracted and patterns are generated based on similarity of the abstracted patterns as between the first and second applications. Application programmers access the pattern database to create new programs and implement prior computer code in the new program based on a pattern match on data accessed by a prior-developed application.
Description
- Cloud applications and analytics for assets are developed in various sub-domains for activities such as monitoring, device management or predictive maintenance. However, as the development of these applications is done by geographically and functionally dispersed teams, the application code developed among the different applications teams often creates a heterogeneous landscape of solutions. Maintenance of the applications is performed on a case by case basis despite the fact that a variety of functionalities across the applications is similar.
- Exemplary embodiments for adapting program code for use in new applications for managing asset data are provided. In one form of the present application there is contemplated, a method for reuse of computer code in a new application with the following acts:
-
- querying, by a first application via the processor, on data in an information model database;
- storing, by the processor, the query of a first application on the information model database as raw access data;
- extracting, by the processor, a pattern from the raw access data describing a set of assets accessed by the first application;
- storing, by the processor, the pattern in a pattern database;
- querying, by the processor, on the pattern database for a pattern accessed by the first application for use in a second application;
- determining, by the processor, a pattern match between the asset pattern data accessed by the first and second applications; and
- presenting to a user, the first application as an option for use in the second in-development application;
- implementing code from the first application in the in-development application; and
- using the first application to monitor the operation of an asset described by the pattern data.
- Another form of the present application contemplates a system for re-using computer code from at least one existing application in a new application, has: a cloud gateway for receiving data from a plurality of assets; a time event processor for handling time series data of the assets; a time series data storage for storing time series data handed by the time event processor; an information model database for storing metadata describing a plurality of assets; a plurality of applications for querying the information model database for metadata describing at least one asset resulting in raw access data; an extractor for extracting patterns from the raw access data to generate patterns therefrom; a pattern database for storing the patterns of access generated by the plurality of applications accessing the information model database metadata; and an analysis engine for ranking patterns based on overlap of the applications accessing the same patterns as the new application.
- In the accompanying drawings, structural embodiments are illustrated that, together with the description provided below, describe exemplary embodiments of re-purposing computer application code for managing asset data. One of ordinary skill in the art will appreciate that a component may be designed as multiple components or that multiple components may be designed as a single component.
- Further, in the accompanying drawings and description that follow, like parts are indicated throughout the drawings and written description with the same reference numerals, respectively. The figures are not drawn to scale and the proportions of certain parts have been exaggerated for convenience of illustration, unless provided to the contrary.
-
FIG. 1 is a schematic of a system for reuse of computer code in new applications and a plurality of applications performing queries on the information model database resulting in raw access data; -
FIG. 2 depicts a pattern database extractor and the generation of patterns from raw access data; -
FIG. 3 depicts the creation of a new application and identification of common patterns shared between prior-developed applications and the new application; -
FIG. 4 is a process flow diagram that depicts application querying, extraction of patterns and development of a new application using prior-developed code based on pattern matching; and -
FIG. 5 shows one form of system architecture for reusing application code based on discovered patterns in the access data of computer applications to the asset metadata. - Commercial and industrial processes utilize assets including but not limited to robots, drives, motors, pumps, valves, transformers and other equipment assets. Examples of other assets used in the contemplated processes and systems include but are not limited mobile devices, servers, and gateways. Application programmers create computer code for a plurality of
applications 40 including but not limited toapplications 40 that track the assets to prevent failure and determine the remaining useful life of the assets in an enterprise. The plurality ofapplications 40 are executable on an operating system or consumed as a service such as a cloud application accessed through the internet. The plurality ofapplications 40 access data that describes the assets that are part of the industrial process or system being monitored. An application programmer has access to semantic data in aninformation model 20 describing the assets and prior use cases involving the asset data. - With reference to
FIG. 1 , a schematic of a system that allows a programmer to utilize pre-existing code from an application or plurality of applications and implement the code in a new, in-development application is shown. Thesystem 10 has aninformation model database 20, a plurality ofapplications 40 that access theinformation model database 20, an application programming interface (API) 24, apattern database 30 and anextractor 36. - The data in the
information model database 20 is metadata that describes or represents other data in an enterprise. The metadata describes the assets in a system in a manner including but not limited to the general type of asset, specific type of asset, model, serial number, location of asset and the frequency with which the data arrives and is accessed by theapplications 40. In one embodiment, theinformation model database 20 stores data that describes an installed base of assets, such as those assets managed by a process control system or an asset management system for monitoring, device management, and predictive maintenance in the form of structures, objects, and properties. Theinformation model database 20 is accessed by queries from the plurality ofapplications 40 through theAPI 24. - The
pattern database 30 stores theraw access data 32 generated by the queries of the plurality ofapplications 40 on theinformation model database 20 data. Theraw access data 32 includes but is not limited to metadata described above but also the exact metadata and the frequency with which theapplications 40 access theinformation model database 20 metadata. Theraw access data 32 is abstracted by theextractor 36 expressing the data in terms corresponding to the domain of the plurality ofapplications 40 querying the information model. The patterns expressed in the extracted data are stored in thepattern database 30 asabstracted patterns 34. In one embodiment, the data access patterns by theplurality applications 40 overlap and only the common data accessed by the plurality of theapplications 40 is represented in the abstracted pattern. - It should be understood that the raw data, queries thereon, identified patterns and associated databases can be implemented on a cloud-based platform. An application may execute as a service on the cloud platform, enabling the discovery of asset data from a single facility or a plurality of industrial facilities that are geographically dispersed. Access to the asset data is available to users regardless of their location through the cloud delivery method and cloud computing security.
- The system, whether implemented on a cloud platform, a networked computer system, or an embedded computer system, has a server, the information model and
pattern databases data storage FIG. 5 . - The
event processors data storage cloud gateway 18,information model database 20,pattern database 30, ananalysis engine 38,graphical user interface 46 andapplications 40 form thesystem 10 which in one embodiment is implemented as a cloud computing system. The devices, sensors and/orassets 22 that are independent or connected together in a system such as a process control system generate, transmit and/or broadcast data that is received by afield gateway 26. Theasset 22 data is either raw data or metadata, the raw data being transmitted to the cloud gateway and the metadata being transmitted to theinformation model database 20. Thefield gateway 26 is resident in the cloud computing architecture of thesystem 10 or is alternatively an edge device that is located in proximity of the data source for analytics purposes. - The raw data is time series data from signals or measurements of sensors/devices/
assets 22 and is routed to an event processor depending on type. Data of types that are accessed with less frequency are routed through thecold data processor 14 to thecold data storage 11 which represents slower storage capabilities. Data of types that are accessed with greater frequency are routed through the hot path evenprocessor 16 to themeasurement state database 13. Time series data, including but not limited to sensor measurements of pressure, temperature, vibration and other real-time values over a period of time are processed by thetime event processor 15 for storage in atime series database 12. Theapplications 40 have access totime series database 12 data on the cloud computing system. -
Cold data storage 11 is the product of the accessing ofasset data 22 on demand. By way of non-limiting example, batch uploads of theasset data 22 can be processed from the device, sensors, or assets through thecold data processor 14 to thecold data storage 11. On the other hand, data flow is continuous fromdevices 22 tofield gateway 26 tocloud gateway 18 to time event and hotpath event processors state data storages cold data storage 11 includes time series data but not metadata which can also be stored in theinformation database 20. - The asset information may be stored in a hierarchy or structure in the
information model database 20 and utilize classifications and product descriptions. One example of such asset information is metadata associated with the equipment assets. The hierarchy for asset data in the information model database is, by way of non-limiting example, an asset such as a pump at the highest level, a type of pump such as a vacuum pump at a second level, a specific type of pump such as a rotary vane, diaphragm, or scroll pump at a third level, a model of pump within the class of vacuum pumps at a fourth level and the location of the pump in a country, region, or plant as yet another level in the hierarchy. The frequency with which each application in a domain accesses theinformation model 20 is tracked as a property within theraw access data 32 along with the asset types, models, and location of the assets. Although the objects, types and properties in theinformation model database 20 are hierarchically structured for storage in an object-oriented database as described above, the data may also be stored in a relational database, a business intelligence database or another type ofinformation model database 20. In one embodiment, the plurality ofapplications 40 use classifications and product descriptions such as in the eCl@ss standard, which has the exemplary structural elements of class, property, value, unit, keyword, and synonym. - With reference to
FIG. 1 , a first application of the plurality ofapplications 40 queries theinformation model database 20 via an application programming interface (API) 24 which monitors access to the information model database and frequency of incoming operational data on each asset. In an alternative and/or additional form, information of the queries from theAPI 24 can be used to populate thepattern database 30 where such queries can be stored asraw access data 32. The results of theinformation model database 20 query by thefirst application 40 are stored asraw access data 32 in thepattern database 30. An example of theraw access data 32 stored in thepattern database 30 based on a query by a plurality ofapplications 40 is as follows. Theinformation model 20 is queried by the first application of the plurality ofapplications 40 on at least one occasion to return programs that include the pattern of a drive of type ACS880-01, a motor of type Z1310A, and a pump of type RCE 50-250 that are interconnected in a process and/or capable of communicating to a process control system, asset management system, another type of application, mobile device, or gateway. It should be understood that the frequency of data access is measured and analyzed by orders of magnitude rather than any specific frequency examples provided herein and that the frequency of applications accessing the data is provided by way of non-limiting example. For example,information model 20 data that is accessed by applications on a basis of 104 number of times is considered more relevant to a developer query than data that is accessed by applications on a basis of 103 number of times. The present disclosure contemplates frequency of access from one access to 106 number of times accessed. - The second application of the plurality of
applications 40 accesses the drive of type ACS880-01 and the pump of type RCE 50-250 on at least one occasion and the drive and pump are connected. A third application of the plurality ofapplications 40, by way of non-limiting example, accesses a drive of type ACS880-01, motor of type Z1310A, and a pump of type RCE 50-250 that are physically located in France and have been accessed on at least one occasion. While the motor, pump, and drive are all located in France, there is no connection between the assets in a single industrial process. Alternatively, the motor, pump, and drive may be located in a particular plant in France where the assets are connected either in a process or communicatively. The third application separately accesses a drive of type ACS880-01. Knowledge of the context in which the data is used allows for increased resolution such as the monitoring of assets in an industrial process that accesses a general type of asset such as an industrial drive, a specific type of drive such as the ABB ACS880-01 and a location for each asset. - The query monitoring for queries by the plurality of
applications 40 on theinformation model database 20 results in attribute sets and is cached. A generated pattern is the result of the query. The plurality ofapplications 40 utilize the resulting patterns along with the tracking of frequency of utilization for the determined patterns which is also stored with theraw access data 32. - With reference to
FIG. 2 , the results of the plurality ofapplication 40 queries, nowraw access data 32, are acted on by anextractor 36 which generates a first pattern from the first and second application queries that includes, as an example, the drive of type ACS880-1 and pump of type RCE 50-250 that are connected in an industrial process. As the motor of type Z1310A was not included in at least one of the queries on theinformation model database 20 by the first and second applications, the first abstracted pattern does not contain the motor of type Z1310A as the motor property is a difference as between the raw access data of the first and second application queries. A secondabstracted pattern 34, generated by theextractor 36 from theraw access data 32, contains drive type ACS880-01, motor type Z1310A, and pump type RCE 50-250 as the result of the first and third application queries. As the secondabstracted pattern 34 is the result of at least one query of assets that are not connected, the secondabstracted pattern 34 does not have the property that describes the assets as being connected. Further, as the secondabstracted pattern 34 is the result of at least one asset query that does not contain a location, the secondabstracted pattern 34 does not include a location. - Referring now to
FIG. 3 andstep 3, the programmer develops a new application that accesses data on assets such as a particular drive and pump and searches for a second computer application that is already complete, involving the same drive and pump. Classification of the drive and pump data and semantic extensions of the data that is stored are taken into account when extracting patterns from the pattern database. The programmer accesses the stored patterns based on the search for the drive and pump and determines that a first pattern is relevant. - With reference to
FIG. 4 , a search is performed by the programmer based on semantic tags that are exact matches of patterns in certain instances but can also be based on semantic compatibility. The application programmer queries theinformation model database 20 on a set of properties forming a pattern describing a motor and the remaining useful life of that motor to apply to the application a programmer currently has under development. In an alternative and/or additional form, the application programmer queries thepattern database 30 on a set of properties forming a pattern describing a motor and the remaining useful life of that motor to apply to the application a programmer currently has under development. Thesystem 10 identifies any previously accessed or stored pattern from a second application in thepattern database 30 that is similar to the needs of the programmer in the first application under development, and the programmer can reuse the code from the second application in which the pattern is matched as between the first and second applications with respect to the plurality ofapplications 40 accessing theinformation model database 20. Thesystem 10 identifies that the first and second applications that use the first pattern are relevant to the new application the programmer is creating. The programmer considers implementing program code associated with the first and second applications in the new application that the programmer is developing. The programmer decides whether the in-development application can utilize the entire code of the application or portions of the code. - The frequency and quality of operational data is utilized in the querying and ranking of the patterns extracted. The operational data is analyzed to determine whether the value is a real-time measured value or has been stored for a period of time. In this manner, the system is able to retrieve the most recent data that is available in the information model and pattern databases. The data retrieved that describes an industrial process and set of assets employed in the process is scored by most recent access, frequency of access and ranked to determine which processes and assets perform the best for the scenario that the particular programmer is seeking to reuse in the new application being developed. The patterns are then ranked based on relevance and importance to the application under development. In one embodiment, the assigned score is correlated to the count of the number of times the application has accessed the raw data. A higher frequency of access by the plurality of
applications 40 to the raw data results in a higher score and is highlighted or ranked in the results of the query of thepattern database 36 for ease of identification. - In step 5, the data is gathered and ingested through knowledge of the particular context in which the data is used. By way of non-limiting example, the previously described process may be a boiler feedwater operation and involve the tracking of drive, motor, and pump data during the process. The
system 10 analyzes the frequency with which the data describing the boiler operation and the particular assets involved in the boiler operation is accessed, how the assets are connected together and/or communication between the assets. - A/B tests are comparisons between versions of a program to determine which are more successful in relation to usage by a user community. For example, known A/B tests analyze the duration of user interaction in each version to determine which version should be implemented in a productive environment. In the present disclosure, A/B tests are performed by the programmer to compare the first and second applications that access common patterns to determine suitability of the program code for the industrial process so that the programmer can choose the code from the various applications that have accessed the same patterns of properties the programmer will access in the application under development. The ranking or highlighting of program code for reuse in a new application through an A/B test presents results to a user in the order of perceived relevance to the user query based on frequency of access to common sets of
information model 20 data by theapplications 40. This logic is used by theanalysis engine 38 to present at least oneapplication 40 of interest to a user or otherwise indicate no suitable matches. - The programmer, based on the pattern matching and ranking as between the identified patterns of the first and second applications, implements code from the first application into the in-development application. Alternatively, the programmer may implement code from both of the first and second applications into the in-development application.
- The application reuse and
pattern match system 10 addresses the tracking of current and historical asset location, such as prior physical location(s), current physical location, and the movement of assets from one geographical location to another. By way of non-limiting example, a plurality ofapplications 40 query theinformation model database 20 to generate patterns in thepattern database 30 for pump of type X (such as RCE 50-250) now in location Y (such as Germany). Once the pump of type RCE 50-250 moves to France, theinformation model 20 is updated with the second location and the application query andpattern database 30 will not capture the pump of type RCE 50-250 because the pump is no longer located in Germany. It should be understood that the geographical location may be a country, region, city, facility location and/or GPS coordinate set. - The applications query the
pattern database 30 in a second attempt for ‘pump type’ RCE 50-250 that ‘has ever been located in Germany.’ Once the pump moves to France, theinformation model 20 is updated with the pump type location in France. However, in the second query the moved pump is captured in the results and populated in thepattern database 30 because the query requested historical data on the pump location. - The plurality of
applications 40 on theinformation model database 20 for pump type RCE 50-250 that has ever been in location Y populates thepattern database 30 with patterns (in an additional and/or alternative embodiment, queries from the plurality ofapplications 40 are used to populate thepattern database 30 with raw access data 32). The application returns results (e.g. the application reuse andpattern match system 10 returns results from the query of thepattern database 30 or results are returned from theabstracted patterns 34 produced by the extractor 36) such as every pump of type RCE 50-250 that has been located/checked in to location Y at the time of the query or any time preceding the query. The frequency of application queries on the aforementioned patterns allows the applications accessing the patterns to be ranked, with the highest frequency of access to the desired patterns being retrieved and/or presented prominently to the developer via the web graphical user interface, a command line query or a cloud service that generates data the developer can access directly or consume on demand as a service. A developer's query on thepattern database 30 for the above referenced pump types and/or locations, returns a list and indicates the order of relevance for the applications accessing the desired patterns for use in the developer's in-development application that is used to track location of the asset(s) for various purposes, including but not limited to maintenance of the assets. - Another example of an industrial process the pattern extraction and reuse system and method addresses is the monitoring of sensor data for assets. For example, a developer can address the overheating of a robot control cabinet in a six-axis robot welding or painting application and repurpose code from other similar applications. The cabinet contains a controller, central processing unit, and an industrial computer that coordinates robot movement. Temperature sensors and fans monitor the environment inside the cabinet. A predictive maintenance application sends queries which are stored as raw data for the controller, central processing unit, industrial computer and associated monitored properties. A programmer developing a first application to detect a pattern leading to high temperatures over a set threshold in a robot cabinet during operation determines that there is a pattern that includes the controller, central processing unit, industrial computer, robot, and temperature sensor in an existing second application. The programmer selects the second application from which to repurpose the code based on the similarity and match with the identified pattern in the first application under development.
- Yet another example using time series data from the time
series data storage 12 is the measurement of pressure values upstream and downstream of a filter in a pipe or water treatment system. If thetime series measurements 12 indicate the pressure is increasing in the pipe, then the filter is getting clogged in the water treatment process. The developer is working on an application that can detect problems in a water treatment process that has a particular pump, filter and pressure sensor. The developer searches (e.g. the developer searches the pattern database 30) for the particular pump, filter and pressure sensor and finds a match on at least oneapplication 40 for which the same pump, filter and pressure sensor data has been accessed at least 104 times. Thesystem 10 presents theapplication 40 to the developer based on matches as between the pump, filter and pressure sensor being accessed in the in-development application. - The programmer extracts selected code from the second application or the plurality of applications to build and complete a first, in-development application. It should be understood that common properties in a pattern as between the first and the second applications indicate compatibility of the computer code of the applications so that the development time is significantly reduced.
- As will be appreciated given the discussion herein, various alternative and/or additional embodiments can include the ability to detect access of data in an
information model database 20, one ability of which is provided by one or more API's 24 associated with one or more of a plurality of applications accessing the data indatabase 20. Such data can include time series data (e.g. time history information of temperature, type of asset, etc). The access of data from theinformation model database 20 can take the form of a program or other utility that, for example, is written to evaluate a temperature and perform a calculation upon it. Apattern database 30 can be created from the access of information from theinformation model database 20.Such pattern database 30 can be created using any number of techniques, including via the same API(s) 24 that were used to access the data fromdatabase 20. Thepattern database 30 includesraw access data 32 from the individual API(s). Anextractor 36 can be used to abstract theraw access data 32 to formabstracted patterns 34 from which a result can be returned which can be helpful in reusing application code. - In one aspect the present application provides a method for reuse of computer code in a new application, comprising: querying, by a first application via a processor, on data in an information model database; storing the query of the first application on the information model database as raw access data; extracting a pattern from the raw access data describing a set of assets accessed by the first application; storing the pattern in a pattern database; querying on the pattern database for a pattern accessed by the first application for use in a second application; determining a pattern match between the asset pattern data accessed by the first and second in-development application; and presenting to a user, the first application as an option for use in the second in-development application.
- One feature of the present application includes implementing code from the first application in the in-development application; and using the first application to monitor the operation of an asset described by the pattern data.
- One feature of the present application provide wherein the pattern match is based on frequency of access to asset pattern data by a plurality of applications.
- Another feature of the present application provides wherein the pattern match is based on the number of matched properties within a set of asset pattern data as between the pattern data accessed by the first and second applications.
- Yet another aspect of the present application provides a computer-implemented method for developing a first application by reusing program code from a second application, comprising: monitoring queries from a plurality of computer applications on data in an information model database; storing results of the queries as raw access data; extracting patterns from the raw access data to describe an asset and an operating characteristic of the asset; storing the patterns in a pattern database; determining that the second computer application describes the asset and operating characteristics of the asset based on a shared pattern between the first computer application and the second computer application; ranking the second computer application against other applications accessing the shared pattern based on the degree of overlap of the shared pattern.
- Another feature of the present application includes presenting the second application and other applications accessing the shared patterns in an order of relevance to the user.
- Another feature of the present application provides wherein the asset and operating characteristics are used to calculate a remaining useful life for the asset based on the most relevant application match on the pattern database query.
- Another feature of the present application provides wherein the first computer application is selected based on frequency of access to the shared pattern across a plurality of applications.
- Another aspect of the present application provides a system for re-using computer code from at least one existing application in a new application, comprising: a cloud gateway for receiving data from a plurality of assets; a time event processor for handling time series data of the assets; a time series data storage for storing time series data handed by the time event processor; an information model database for storing metadata describing a plurality of assets; a plurality of applications for querying the information model database for metadata describing at least one asset resulting in raw access data; an extractor for extracting patterns from the raw access data to generate patterns therefrom; a pattern database for storing the patterns of access generated by the plurality of applications accessing the information model database metadata; and an analysis engine for ranking patterns based on overlap of the applications accessing the same patterns as the new application. One feature of the present application includes a graphical user interface for presenting the ranked patterns to the user.
- Yet another aspect of the present application provides a method for reuse of computer code in a new application, comprising: querying, by a first application via a processor, on data in an information model database; storing, by the processor, the query of the first application on the information model database as raw access data; extracting, by the processor, a pattern from the raw access data describing an industrial asset accessed by the first application; storing, by the processor, the pattern in a pattern database; querying, by the processor, on the pattern database for a pattern accessed by the first application for use in a second application; determining, by the processor, a pattern match between the industrial asset pattern data accessed by the first and second applications; and presenting to a user, the first application as an option for use in the second in-development application.
- A feature of the present application includes implementing code from the first application in the in-development application; and using the first application to monitor the operation of the industrial asset described by the pattern data.
- Another feature of the present application includes using the first application to track the physical location of the industrial asset.
- Yet another feature of the present application includes using the first application to track the physical location of a plurality of industrial assets for maintenance.
- While the present application illustrates various embodiments, and while these embodiments have been described in some detail, it is not the intention of the applicant to restrict or in any way limit the scope of the appended claims to such detail. Additional advantages and modifications will readily appear to those skilled in the art. Therefore, the invention, in its broader aspects, is not limited to the specific details, the representative embodiments, and illustrative examples shown and described. Accordingly, departures may be made from such details without departing from the spirit or scope of the applicant's general inventive concept.
Claims (12)
1. A method for reuse of computer code in a new application, comprising:
a. querying, by a first application via a processor, on data in an information model database;
b. storing, by the processor, the query of the first application on the information model database as raw access data;
c. extracting, by the processor, a pattern from the raw access data describing a set of assets accessed by the first application;
d. storing, by the processor, the pattern in a pattern database;
e. querying, by the processor, on the pattern database fora pattern accessed by the first application for use in a second application;
f. determining, by the processor, a pattern match between the asset pattern data accessed by the first and second applications; and
g. presenting to a user, the first application as an option for use in the second in-development application;
h. implementing code from the first application in the in-development application; and
i. Using the first application to monitor the operation of an asset described by the pattern data.
2. The method of claim 1 wherein the pattern match is based on frequency of access to asset pattern data by a plurality of applications.
3. The method of claim 1 wherein the pattern match is based on the number of matched properties within a set of asset pattern data as between the pattern data accessed by the first and second applications.
4. A computer-implemented method for developing a first application by reusing program code from a second application, comprising:
monitoring queries from a plurality of computer applications on data in an information model database;
storing results of the queries as raw access data;
extracting patterns from the raw access data to describe an asset and an operating characteristic of the asset;
storing the patterns in a pattern database;
determining that the second computer application describes the asset and operating characteristics of the asset based on a shared pattern between the first computer application and the second computer application;
ranking the second computer application against other applications accessing the shared pattern based on the degree of overlap of the shared pattern.
5. The computer-implemented method of claim 4 , further comprising: presenting the second application and other applications accessing the shared patterns in an order of relevance to the user.
6. The computer-implemented method of claim 4 , wherein the asset and operating characteristics are used to calculate a remaining useful life for the asset based on the most relevant application match on the pattern database query.
7. The computer-implemented method of claim 4 , wherein the first computer application is selected based on frequency of access to the shared pattern across a plurality of applications.
8. A system for re-using computer code from at least one existing application in a new application, comprising:
a cloud gateway for receiving data from a plurality of assets;
a time event processor for handling time series data of the assets;
a time series data storage for storing time series data handed by the time event processor;
an information model database for storing metadata describing a plurality of assets;
a plurality of applications for querying the information model database for metadata describing at least one asset resulting in raw access data;
an extractor for extracting patterns from the raw access data to generate patterns therefrom;
a pattern database for storing the patterns of access generated by the plurality of applications accessing the information model database metadata; and
an analysis engine for ranking patterns based on overlap of the applications accessing the same patterns as the new application.
9. The system of claim 8 , further comprising: a graphical user interface for presenting the ranked patterns to the user.
10. A method for reuse of computer code in a new application, comprising:
a. querying, by a first application via a processor, on data in an information model database;
b. storing, by the processor, the query of the first application on the information model database as raw access data;
c. extracting, by the processor, a pattern from the raw access data describing an industrial asset accessed by the first application;
d. storing, by the processor, the pattern in a pattern database;
e. querying, by the processor, on the pattern database fora pattern accessed by the first application for use in a second application;
f. determining, by the processor, a pattern match between the industrial asset pattern data accessed by the first and second applications; and
g. presenting to a user, the first application as an option for use in the second in-development application;
h. implementing code from the first application in the in-development application; and
i. Using the first application to monitor the operation of the industrial asset described by the pattern data.
11. The method of claim 10 , comprising:
i. using the first application to track the physical location of the industrial asset
12. The method of claim 11 , further comprising:
j. Using the first application to track the physical location of a plurality of industrial assets for maintenance.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/985,127 US20180336019A1 (en) | 2017-05-19 | 2018-05-21 | Systems and methods for application re-use by type pattern matching |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762508499P | 2017-05-19 | 2017-05-19 | |
US15/985,127 US20180336019A1 (en) | 2017-05-19 | 2018-05-21 | Systems and methods for application re-use by type pattern matching |
Publications (1)
Publication Number | Publication Date |
---|---|
US20180336019A1 true US20180336019A1 (en) | 2018-11-22 |
Family
ID=64271637
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/985,127 Abandoned US20180336019A1 (en) | 2017-05-19 | 2018-05-21 | Systems and methods for application re-use by type pattern matching |
US16/688,622 Active 2038-08-08 US11237804B2 (en) | 2017-05-19 | 2019-11-19 | Systems and methods for application re-use by type pattern matching |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/688,622 Active 2038-08-08 US11237804B2 (en) | 2017-05-19 | 2019-11-19 | Systems and methods for application re-use by type pattern matching |
Country Status (2)
Country | Link |
---|---|
US (2) | US20180336019A1 (en) |
WO (1) | WO2018213831A1 (en) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200356866A1 (en) * | 2019-05-08 | 2020-11-12 | International Business Machines Corporation | Operative enterprise application recommendation generated by cognitive services from unstructured requirements |
US10838952B2 (en) * | 2019-01-03 | 2020-11-17 | Bank Of America Corporation | Resource offloading process using machine learning for database |
US11082125B2 (en) * | 2019-01-29 | 2021-08-03 | Arizona Board Of Regents On Behalf Of Arizona State University | Systems and methods for expert guided rule based identification of relevant planetary images for downlinking over limited bandwidth |
US11088917B1 (en) * | 2018-09-07 | 2021-08-10 | Juniper Networks, Inc. | Lab resource platform |
US11163544B2 (en) * | 2020-03-23 | 2021-11-02 | David Lee | Vertical solution integrator |
US20210365479A1 (en) * | 2020-05-19 | 2021-11-25 | Hexagon Technology Center Gmbh | Method and system for advanced adaptive database matching |
US11474817B2 (en) * | 2019-05-02 | 2022-10-18 | EMC IP Holding Company LLC | Provenance-based reuse of software code |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11636401B2 (en) * | 2019-01-25 | 2023-04-25 | Noodle.ai | Artificial intelligence platform |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5991535A (en) * | 1996-07-03 | 1999-11-23 | Sun Microsystems, Inc. | Visual composition tool for constructing application programs using distributed objects on a distributed object network |
US20120296974A1 (en) | 1999-04-27 | 2012-11-22 | Joseph Akwo Tabe | Social network for media topics of information relating to the science of positivism |
US7900199B2 (en) * | 2004-05-21 | 2011-03-01 | Computer Associates Think, Inc. | Method and apparatus for reusing a computer software library |
US7761848B1 (en) * | 2005-03-15 | 2010-07-20 | Open Invention Network, Llc | Code generator tool for building software applications with reusable components |
AU2011283191A1 (en) * | 2010-07-29 | 2013-02-07 | Exxonmobil Upstream Research Company | Methods and systems for machine-learning based simulation of flow |
US9641643B2 (en) * | 2010-08-09 | 2017-05-02 | Servicenow, Inc. | System and method for storing a skeleton representation of an application in a computerized organization |
US8799869B2 (en) * | 2011-10-03 | 2014-08-05 | Accenture Global Services Limited | System for ensuring comprehensiveness of requirements testing of software applications |
US8768921B2 (en) * | 2011-10-20 | 2014-07-01 | International Business Machines Corporation | Computer-implemented information reuse |
US20150293512A1 (en) * | 2011-12-30 | 2015-10-15 | Nathan EGGE | Method and system for providing optimization in data-driven environments |
US8972372B2 (en) * | 2012-04-17 | 2015-03-03 | Nutech Ventures | Searching code by specifying its behavior |
US9665843B2 (en) * | 2013-06-03 | 2017-05-30 | Abb Schweiz Ag | Industrial asset health profile |
US9311062B2 (en) * | 2013-10-31 | 2016-04-12 | International Business Machines Corporation | Consolidating and reusing portal information |
CN107004172B (en) * | 2014-09-03 | 2020-09-29 | 云叶公司 | System, method and apparatus for asset status determination |
-
2018
- 2018-05-21 WO PCT/US2018/033682 patent/WO2018213831A1/en active Application Filing
- 2018-05-21 US US15/985,127 patent/US20180336019A1/en not_active Abandoned
-
2019
- 2019-11-19 US US16/688,622 patent/US11237804B2/en active Active
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11088917B1 (en) * | 2018-09-07 | 2021-08-10 | Juniper Networks, Inc. | Lab resource platform |
US10838952B2 (en) * | 2019-01-03 | 2020-11-17 | Bank Of America Corporation | Resource offloading process using machine learning for database |
US11082125B2 (en) * | 2019-01-29 | 2021-08-03 | Arizona Board Of Regents On Behalf Of Arizona State University | Systems and methods for expert guided rule based identification of relevant planetary images for downlinking over limited bandwidth |
US11474817B2 (en) * | 2019-05-02 | 2022-10-18 | EMC IP Holding Company LLC | Provenance-based reuse of software code |
US20200356866A1 (en) * | 2019-05-08 | 2020-11-12 | International Business Machines Corporation | Operative enterprise application recommendation generated by cognitive services from unstructured requirements |
US11163544B2 (en) * | 2020-03-23 | 2021-11-02 | David Lee | Vertical solution integrator |
US20210365479A1 (en) * | 2020-05-19 | 2021-11-25 | Hexagon Technology Center Gmbh | Method and system for advanced adaptive database matching |
US11704343B2 (en) * | 2020-05-19 | 2023-07-18 | Hexagon Technology Center Gmbh | Method and system for advanced adaptive database matching |
Also Published As
Publication number | Publication date |
---|---|
US20200159732A1 (en) | 2020-05-21 |
WO2018213831A1 (en) | 2018-11-22 |
US11237804B2 (en) | 2022-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11237804B2 (en) | Systems and methods for application re-use by type pattern matching | |
US10708120B2 (en) | Recommending server management actions for information processing systems | |
US10803394B2 (en) | Integrated monitoring and communications system using knowledge graph based explanatory equipment management | |
US20190163675A1 (en) | Identification of Relevant Data Events by Use of Clustering | |
Ferguson | Architecting a big data platform for analytics | |
Elgendy et al. | Big data analytics: a literature review paper | |
US10902381B2 (en) | Methods and systems for providing improved data access framework | |
US11734292B2 (en) | Cloud inference system | |
TWI710917B (en) | Data processing method and device | |
US10416661B2 (en) | Apparatuses, systems and methods of secure cloud-based monitoring of industrial plants | |
US9489379B1 (en) | Predicting data unavailability and data loss events in large database systems | |
JP6457777B2 (en) | Automated generation and dynamic update of rules | |
CN104077371B (en) | The method and system of monitor database abnormal data | |
Nouri et al. | Exploring the role of machine learning in scientific workflows: Opportunities and challenges | |
Bogatu et al. | Voyager: Data discovery and integration for data science | |
CN102902614A (en) | Dynamic monitoring and intelligent guide method | |
AU2019284618B2 (en) | Multi-source-type interoperability and/or information retrieval optimization | |
Scherbaum et al. | Spline: Spark lineage, not only for the banking industry | |
US20230055641A1 (en) | Real-time generation of digital twins based on input data captured by user device | |
CN116340527A (en) | Industrial knowledge graph and contextualization | |
US11475017B2 (en) | Asynchronous data enrichment for an append-only data store | |
EP3764243B1 (en) | An industrial information identification and retrieval system | |
Abdallah et al. | Towards a GML-Enabled Knowledge Graph Platform | |
Agárdi | Relontouml model of the archaeological findings | |
CN109542705A (en) | A kind of monitored item adding method and device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |