IngeniBridge Tutorial

A model-driven approach

IngeniBridge relies on a model-driven paradigm to describe the whole context information associated to each IOT Time Series.

The business point of view

When the IOT sensors collect information from complex industrial assets, one success key is to involve the field people in the building of the IT functional architecture design.

The best way to communicate and exchange with the non-IT people is to use friendly UML representations. More on this following.

Graphical Notation

The notation here is:

  1. Black arrow is class inheritance
  2. Single orange arrow is single directed association
  3. Multiple orange arrow is multiple directed association

The foundation of Times Series Contextualisation Modeling

The starting assumption is that any IOT Time Series is held by an Asset, be it real (pump...) or virtual (influence zone...).

That approach differs from the traditional "post-it" methodology. Please note that the "post-it" way of doing is constantly being proposed by the IOT Time Series database editors (see Azure IOT as an example where the "post-it" here is called a property : https://docs.microsoft.com/fr-fr/rest/api/time-series-insights/preview-model#model-settings-api).

  1. An Asset object that represents any of your assets (be it industrial such as a pump or conceptual such as an industrial functional unit).
  2. An Asset has a multiple relation to the Time Series object.
  3. Please note the TimeSeries.TimeSeriesExternalReference attribute used to track the actual Time Series ID as stored into the remote TSDB such as Azure IOT.

The Industrial ecosystem as the example for this tutorial

This is the global view of the UML model built for the specific needs of my virtual industry.

Please note that this deliverable is built using the functional specifications and is validated by the business/field people.

Describing the Assets

Explanation:

  1. The "MyCompanyRootAsset" object is mandatory to hold the whole tree (the actual name is free to choose).
  2. The "InfluenceZone" object will be used to track on a specific industrial activity influenced by industrial equipments that will need either alerting, optimization reporting, ... That can be gas pressure, water pressure, water chloration each time in a specific zone.
  3. The "IOT" object is abstract and is here represent any kind of sensor (be it "PressureSensor" or "MultifunctionSensor" in ths example), of course it will be possible to request on any kind of IOT event the abstract "IOT". These IOT objects are commonly represented on a GIS system and IngeniBridge will have all Time Series associated with them. Any GIS IOT is uniquely determined by its Code.
  4. The "ProductionSite" holds a tree of Equipments and sits on an "InfluenceZone". So it is possible to correlate between the "InfluenceZone" and (for example) the "ChlorineInjector" so as to monitor or servo control the chloration actions.
  5. There are also "City" and "Sector" classifications.
  6. The Equipment object is abstract and corresponds to nothing in the real life
  7. Is specialized as chlorine injector, water pump, group of pumps
  8. Can have sub equipments (SubEquipments attribute)

Describing the Time Series

Explanation:

  1. Each Time Series is specialized from the MyCompanyData object.
  2. The Time Series has a TypeOfMeasure (in a nomenclature).
  3. The Time Series may be consolidated or not.
  4. The Time Series may either be acquired or computed.

The nomenclatures

Alongside the asset and time series, we need to handle with flat nomenclatures. They hold code+label information. Here are the ones in the current data model.

Consuming the metadata to retrieve the Time Series

This chapter should normally be the last one.

But, joining the business Data Model to the requesting universe is the hottest topic about IngeniBridge. Also, it should drive any effort to invest in metadata for the time series.

So now, let’s apply all the functional topics presented in the above UML diagrams and see the live results:

  1. Get all the assets of type ProductionSite : as you can see, the data is transferred using JSON representation (according to the Swagger contract). The criteria is the following: ENTITY_TARGET_TYPE=ProductionSite.
  2. Get all the assets of type ProductionSite on the sector West: you see there are less results. The new criteria is ProductionSite.Sector.Code=W. The value of the sector is inside a nomenclature.

You now see that there is something common between the first requests above. They use elements that are declared inside the business data model. Indeed, the search engine automatically aligns against the model, that’s why the truth set by (with) the business peoples smoothly penetrates the IT without any modification.

  1. Get All IOTs: all the IOTs whatever their type (as designed in the business data model).
  2. Get all IOTs of type pressure sensor : less results are returned, of course.
  3. Now, get all the time series : all the time series are returned with their full metadata.
  4. The time series with phone number = “1234567890” : that may be useful to find the correct time series identifier when an SMS frame is being received.
  5. The time series of type electricity consumption on group of pumps : that may be used for a dashboard.
  6. The time series of type electricity consumption in production site : that may be used for a dashboard.

A bit of technology

As you have seen, the envelopes of information are retrieved in the JSON format.

The full contract is published as swagger.

All this stuff is architected upon the .Net Core Standard 2.0. That means you can use the Windows, Linux or Mac OS platforms to create your own meta model and database.

Also, the tooling used can either be Visual Studio Code (Windows, Linux or Mac OS platforms) or Visual Studio (Windows and MAC platforms).

Please note that the bidirectional UML diagramming is natively integrated into Visual Studio, no need for a costly data modelling tool.

Designing your own model – let’s start

Now that you have read the document down to this point, you are eager to do all that but using your own metadata universe.

First, git clone the repo stored in the github.com database. That will give an example to follow and/or customize.

Then open the solution (SLN) named “IngeniBridge.Samples.MyCompany”.

 

Setting up the project properly

When opening the solution, the “MyCompanyDataModel” project holds the model.

  1.  The project must be .Net standard 2.0 type.
  2.  One Asset class must be flagged “root”.
  3.  Then, simply declare the classes by using inheritance.

 

Initializing the IngeniBridge database

The IngeniBridge database is comparable to Master Data Management of type “consolidation”. That means the data is not governed inside IngeniBridge. But the data must be collected from within the existing repositories to me reassembled inside the IngeniBridge meta model.

Please note that the next major version of IngeniBridge will support data governance and entity historization.

When looking at the previously opened solution, the other project is that used for initializing the database.

The script for initializing the database is made of several parts.

Just open the sections and adapt to your IT system. Please note that the initializing project should not necessarily be .Net Standard. It may as well be of type .Net Framework because that scenario can be necessary to access resources incompatible with .Net Core (such as the Osisoft PI system for example).

When you are finished, just launch and the script wich will generate the database file.

At the end, you get an IBDB file created on disk. That database must not be staged on the IngeniBridge server.

Deploying the IngeniBridge database

A light free environment is available in the private Deagital On Premises infrastructures at https://demo.ingenibridge.com/PublicDemo/TryIngeniBridge/. No service quality is guaranteed, no opening hours are guaranteed.

BEWARE TO PUT ANY SENSITIVE DATA, THIS IS AN OPEN ENVIRONMENT. USE ONLY OPEN DATA.

To test your own meta data environment, just follow the procedure described here.

  1. Go to the Staging tab.
  2. Click on "Browse" button to select your local IBDB file then on "Updload" button.
  3. After, use the “Unpark” button to mode to move the file in the staging zone.
  4. Mount and bring the database online.

 

Exploring and Smart Requesting

Go on on like this:

  1. Go to the "View" tab for content exploration.
  2. Select the database and click "Display" button.
  3. The visual tree is expandable and clickable.
  4. The nomenclatures may be viewed as well.

Smart requesting

Then you are ready to request upon your own meta data which is ultimately what we are looking for.

While the REST interface will always be the same, the correlation criterias will be aligned against your own meta model.

In fact, IngeniBridge shall produce what it calls functional axis. To discover those functional axis, you may request them through JSON API and/or viewing them.

Requesting involves a couple of axis+value. While the axis are generated for you, the values are those staged in the contents of the IngeniBridge database (for example ELEC for a measure of type electricity). Is this manner I immediately can compose that very request using the right axis+the right value which gives us MyCompanyData.TypeOfMeasure.Code=ELEC. And actually it works !

Enabling DATAVIZ search

You may enable full text search. To do so, just implement a single function in your meta model .Net Core assembly.

You will be able to test on your own data.

The benefits for my digital industrial project

Improves time to market

Using IngeniBridge saves you time and costs to exploit/configure/feed components such as Elastic Search, meta data NoSql repository, HTTP REST servers…

Collaborating with the field/business people

But more important than time to market, collaborating with the field people using standard UML support will ensure successfullness of your industry digital transformation.

Reassembling the Industrial referential data

Scattered small-perimeter referentials tend to produce diverging consolidated dashboards. That's not sustainable when embracing Insustry 4.0-like ambitions.

Enabling strong correlation algorithms

With meta data enabled in your digital roadmap, your system will be able to operate efficient correlations on alert information (at real time pace) and help your industry performance.

Agile methodology

IngeniBridge referential data is done within sprints. Every new iteration is secured using the integrated regression-control facilities. And so, the digital transformation is under control at every agile sprint.

Providing metadata to empower Data Science

Meta data will bring more accurateness on data extraction and correlation to discover new cause and effect patterns.

Deagital is an IT services company that's specialized in IT systems architectures. We propose an industrial methodology to build the contexualization data in an agile manner compatible with your IOT digital transformation. Feel free to contact us.