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 PDF

Info

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
Application number
US15/985,127
Inventor
Benedikt Schmidt
Jeff Harding
Thomas Goldschmidt
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ABB Schweiz AG
Original Assignee
ABB Schweiz AG
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by ABB Schweiz AG filed Critical ABB Schweiz AG
Priority to US15/985,127 priority Critical patent/US20180336019A1/en
Publication of US20180336019A1 publication Critical patent/US20180336019A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/211Schema design and management
    • G06F16/212Schema design and management with details for data modelling support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2425Iterative querying; Query formulation based on the results of a preceding query
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24578Query processing with adaptation to user needs using ranking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2474Sequence data queries, e.g. querying versioned data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/248Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/252Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/29Geographical information databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/93Document management systems
    • G06F17/2765
    • G06F17/3053
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference 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

    BACKGROUND
  • 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.
  • SUMMARY
  • 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.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • 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.
  • DETAILED DESCRIPTION
  • 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 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.
  • 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. 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.
  • 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. In one embodiment, 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. In one embodiment, 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.
  • 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 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. By way of non-limiting example, 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. On the other hand, 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. In one form 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. 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 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. Although 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. In one embodiment, 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.
  • With reference to FIG. 1, 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. In an alternative and/or additional form, 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. 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 of applications 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 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.
  • With reference to FIG. 2, 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. As 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. As 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.
  • Referring now to FIG. 3 and step 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 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. In an alternative and/or additional form, 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. 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 the pattern 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 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. 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 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. 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, 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.
  • 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 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 104 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.
  • 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 in database 20. Such 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.
  • 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.
US15/985,127 2017-05-19 2018-05-21 Systems and methods for application re-use by type pattern matching Abandoned US20180336019A1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (8)

* Cited by examiner, † Cited by third party
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