Code Monkey home page Code Monkey logo

logisland.historian's People

Contributors

amarziali avatar mathieu-rossignol avatar miniplayer avatar oalam avatar worldwildweb avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

logisland.historian's Issues

Zoom (in/out) on charts

USER STORY

As a user, I want to be able to zoom in/out on each chart type so that I can select a time interval of data accordingly to my mouse selection

ACCEPTANCE CRITERIA

DEFINITION OF DONE

  • Code builds without warnings (technical task)
  • Code unit tested (technical task)
  • Documentation updated (user story)
  • Build pushed to demo server (user story)

Front-end framework and architecture for reusable components

Ensure that the UI is component-based and that the components developed meet the following criterias :

  • They can be reused outside of the historian
  • They can use multiple widget libraries
  • They support reactive design (support mobiles, tablets, PC)
  • Support latest version of all common browsers (including IE 11), with focus on Firefox, Chrome, Edge.
  • Have an open-source license

Also investigate:

  • choice of build tools
  • js vs. typescript

Bulk CSV tags importer

USER STORY

As a user, I want to be able to import historical tags data in the form of CSV files so that I can easily
bulk load some existing tags

ACCEPTANCE CRITERIA

DEFINITION OF DONE

  • Code builds without warnings (technical task)
  • Code unit tested (technical task)
  • Documentation updated (user story)
  • Build pushed to demo server (user story)

Adaptative sampling

USER STORY

As an operator, I want the data collection to be smart enough to adapt sample rate accordingly to data change rate so that I saturate my database neither the network bandwith

It is used to:

  • adjust the data sampling rate according to the current real time process state,
  • keep the bandwidth and costs on the preset level,
  • avoid transmitting unnecessary data.

According to the OPC specification, the scanner module is responsible for keeping the cached data fresh, but it is worth stressing that “freshness” of the data depends on the process state and can change in time drastically. The communication server (in order to optimize the data transfer costs) should adapt the sampling rate to current process control needs.

OPC DA server

Logisland Historian must provide an OPC gateway

Logisland.Historian follows the requirements of the OPC specification to provide data access to OPC clients. It implements OPC Data Access (DA) version 2.0a and 3.0. of the OPC custom interface. Furthermore, Logisland.Historian is optimized for high performance and uses multithreaded technology to provide efficient response to client requests. This approach allows multiple clients to connect to and effectively use resources of the server.

Technical concern here : OPC DA is a Windows only feature based on DCOM, how do we make the bridge with JAVA cross platform world ?

frameworks and tools can be found here : http://www.opcconnect.com

data source browser front end

USER STORY

As a user, I want to add a data source or multiple data sources so that when i have selected a or multiple data source i can select tags. I want to be able to edit or remove a data source

ACCEPTANCE CRITERIA

DEFINITION OF DONE

  • Code builds without warnings (technical task)
  • Code unit tested (technical task)
  • Documentation updated (user story)
  • Build pushed to demo server (user story)

Schedule transfer

USER STORY

As a use, I want to schedule daily, hourly, minutely data pipeline transfer from one datasource to another so that I can backup or move data from the historian to another target

ACCEPTANCE CRITERIA

DEFINITION OF DONE

  • Code builds without warnings (technical task)
  • Code unit tested (technical task)
  • Documentation updated (user story)
  • Build pushed to demo server (user story)

Email if no data has been recorded since x'

USER STORY

As an admin, I want to be warned by email if no data has been recorded since n minutes so that I check if something went wrong or not

ACCEPTANCE CRITERIA

  1. Cut off a previously working OPC server polling stream for more than threshold time
  2. check that we received an email

DEFINITION OF DONE

  • Code builds without warnings (technical task)
  • Code unit tested (technical task)
  • Documentation updated (user story)
  • Build pushed to demo server (user story)

Tags manager

USER STORY

As a user, I want to be able to browse all the tags offered by an OPC server so that I can search, filter on groups/tag name and save a selection of item values to be regularlry polled into the historian.

ACCEPTANCE CRITERIA

DEFINITION OF DONE

  • Code builds without warnings (technical task)
  • Code unit tested (technical task)
  • Documentation updated (user story)
  • Build pushed to demo server (user story)

Datasources manager

USER STORY

As a user, I want to setup a connection to an existing datasource such as on OPC server, an MQTT broker, a kafka topic, an ftp site, a filesystem so that in can browse available tags, retrieve or inject data

ACCEPTANCE CRITERIA

DEFINITION OF DONE

  • Code builds without warnings (technical task)
  • Code unit tested (technical task)
  • Documentation updated (user story)
  • Build pushed to demo server (user story)

share content

USER STORY

As a user i want to be able to share a graph or part of a graph so that a colleague can see what i'm talking about

ACCEPTANCE CRITERIA

DEFINITION OF DONE

  • Code builds without warnings (technical task)
  • Code unit tested (technical task)
  • Documentation updated (user story)
  • Build pushed to demo server (user story)

History replay

USER STORY

As a user, I want to replay the history of event changes for selected tags in my dashboard so that I can be helped to understand what happened right before a threshold has been crossed for example

I also want the alarms sets for example on thresholds (all of them) to be generated in a simulation window to show through alarms what went wrong at which time etc. The use case is diagnosis on data that we import to understand "what happened".

ACCEPTANCE CRITERIA

DEFINITION OF DONE

  • Code builds without warnings (technical task)
  • Code unit tested (technical task)
  • Documentation updated (user story)
  • Build pushed to demo server (user story)

Access rights on time series data is supported

Not sure on which granularity the access rights should be set, but a minimum access rights must be provided on time series data ? on dashboards in the future ? etc. if the time serie is an heart beat from a patient in an hospital not all should be able to see this heart beat ? same if the tool is used to monitor hundreds of private homes in the future ...

Standalone web server

USER STORY

As a user, I want to browse or query data through a standalone server, not a SolrEmbeded one.
This server must provide REST API as well as grapher html files

ACCEPTANCE CRITERIA

DEFINITION OF DONE

  • Code builds without warnings (technical task)
  • Code unit tested (technical task)
  • Documentation updated (user story)
  • Build pushed to demo server (user story)

Smooth charts

USER STORY

As a user I want to able to smooth (moving average) my data points so that I can visualise more clearly highly oscillating values

ACCEPTANCE CRITERIA

DEFINITION OF DONE

  • Code builds without warnings (technical task)
  • Code unit tested (technical task)
  • Documentation updated (user story)
  • Build pushed to demo server (user story)

LDAP is supported for authentication

It is possible to connect the data historian to an LDAP directory (normally vert.x supports this) to authenticate people. A default should also be supported (simple files ?).

Support for SQL

The data historian data must be allow access through SQL from the U to be able to drill down on particular issues.

Report generator in Word, Excel, PDF, HTML, etc.

It is possible to create PDF reports from specific sensors data / dashboards so as to create documents that an auditor can give to a customer (ex. Vincent).
Automate the generation of reports and deliver them in multiple at custom intervals (e.g. hourly, daily, weekly, or monthly). Deliver reports as Word or Excel documents, PDFs, and HTML files or even sent directly to a networked printer

Trending tools

USER STORY

As a user, I want to see trends on historical values so that I ca detect weak signals, or predict system behaviour before it actually happens

ACCEPTANCE CRITERIA

  1. visually display trends on my line charts

DEFINITION OF DONE

  • Code builds without warnings (technical task)
  • Code unit tested (technical task)
  • Documentation updated (user story)
  • Build pushed to demo server (user story)

plug the date range

USER STORY

As a < type of user >, I want < some goal > so that < some reason >. (ex:As a user, I can backup my entire hard drive.)
as a user i want to be able to filter by date range

ACCEPTANCE CRITERIA

DEFINITION OF DONE

  • Code builds without warnings (technical task)
  • Code unit tested (technical task)
  • Documentation updated (user story)
  • Build pushed to demo server (user story)

Tags aliasing

USER STORY

As a user, I want to create basic or calculation tags so that I can manage alias or formula based dynamic tags

ACCEPTANCE CRITERIA

DEFINITION OF DONE

  • Code builds without warnings (technical task)
  • Code unit tested (technical task)
  • Documentation updated (user story)
  • Build pushed to demo server (user story)

User documentation

USER STORY

As a user, I want to read a good documentation so that I don't waste my time finding out how to make it work

ACCEPTANCE CRITERIA

DEFINITION OF DONE

  • Code builds without warnings (technical task)
  • Code unit tested (technical task)
  • Documentation updated (user story)
  • Build pushed to demo server (user story)

Dynamic thresholds

Thresholds must not only support to be a triggered when crossing a hardcoded value, but should also support to be configured to be crossed when being (for example) twice as much as the value of another time serie or the difference between two time series.

Thresholds can be set from a dynamic tag value

To support that, we need an expression language to express formulas => this can be done via aliasing

Complex objects description like machines, floors etc.

It is possible to embed vectorial designs (3D from CAD tools etc.) and position sensors on them and have this act as a map of problems (with colored points appearing on the designs when problems arise showing where the problem is...). Will serve to model floors, machines, pieces, and to locate sensors and therefore defects...

thresholds must support actions

When a threshold is crossed, it should be able to trigger an action.
the supported actions must be :

  • send an email
  • send an SMS
  • send a REST call (configurable)
  • execute an external binary/script

It must be possible to attach to the email or the SMS an graph with the latest values of the sensor

Excel export

It is possible to extract data in Excel format as to be able to build reports/analysis/graphs outside of the data historian to give to customers

I18N : Separate all user visible strings into resource files for localization

USER STORY

As a user, I want be able to select the language of the interface so that I can understand the product even if I do not speak english.

ACCEPTANCE CRITERIA

  1. Use of Java ResourceBundle
  2. Support of 2 languages (en, fr)

With the I18N support, we will be able to address the Localization into many languages

DEFINITION OF DONE

  • Use of Internationalization framework (I18N) provided by Java
  • Code unit tested (technical task)
  • Documentation updated (user story)
  • Build pushed to demo server (user story)

support for JDBC

The data historian must support access to the data from third party tools using JDBC.
some use cases can be :

  • monitoring using third party console
  • data scientists accessing the data from R
  • ...

support for threshold / alarms standard

ODBC driver

USER STORY

As a windows user, I want to connect my BI tools to the historian so that I can easily switch to this tool

ACCEPTANCE CRITERIA

DEFINITION OF DONE

  • Code builds without warnings (technical task)
  • Code unit tested (technical task)
  • Documentation updated (user story)
  • Build pushed to demo server (user story)

Engineering unit conversion

USER STORY

As a user, I want my data to be automatically displayed with the correct unit so that I don't have to convert the values myself

ACCEPTANCE CRITERIA

DEFINITION OF DONE

  • Code builds without warnings (technical task)
  • Code unit tested (technical task)
  • Documentation updated (user story)
  • Build pushed to demo server (user story)

Instant datable

As a user I want to visualise last current value of each selected tags as auto-updatable compact datable with threshold color code.

this widget should be realtime oriented (websocket on redis ?)

Event manager

USER STORY

As a user, I want to manage all my events so that I can list, search, filter, define firering rules

ACCEPTANCE CRITERIA

DEFINITION OF DONE

  • Code builds without warnings (technical task)
  • Code unit tested (technical task)
  • Documentation updated (user story)
  • Build pushed to demo server (user story)

Benchmarking

USER STORY

As a user, I want to know how scalable is that tool so that I know what are the read/write throughput, and how many data a single node can handle.

I also want to know the compression ratio of the time series data

ACCEPTANCE CRITERIA

DEFINITION OF DONE

  • Code builds without warnings (technical task)
  • Code unit tested (technical task)
  • Documentation updated (user story)
  • Build pushed to demo server (user story)

Advanced Data Retrieval Modes

USER STORY

As a user, I want to be provided with built-in advanced data retrieval modes so that I can analyse my data more in§depth

ACCEPTANCE CRITERIA

The following functions must be available for the selected tags

  • Maximum
  • Minimum
  • Average
  • Standard Deviation
  • Percentiles
  • Count
  • Sum
  • Range
  • First/Last
  • Bottom/Top
  • Derivative
  • Non Negative Derivative
  • Difference
  • Signed Difference
  • Scale
  • Divide
  • Time window based Moving Average
  • Samples based Moving Average
  • Add
  • Subtract
  • A linear trend detection
  • Outlier detection
  • Frequency detection
  • Time series similarity search
  • Timeshift
  • Distinct
  • Integral
  • SAX

DEFINITION OF DONE

  • Code builds without warnings (technical task)
  • Code unit tested (technical task)
  • Documentation updated (user story)
  • Build pushed to demo server (user story)

Alarms journal export

USER STORY

As an expert in diagnosis and to explain what happened (in replay mode on in live mode), I want to export the journal of alarms and actions so that it becomes a document that can be provided for legal issues.

ACCEPTANCE CRITERIA

DEFINITION OF DONE

  • Code builds without warnings (technical task)
  • Code unit tested (technical task)
  • Documentation updated (user story)
  • Build pushed to demo server (user story)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.