Vertscend Automation

TIMESSCRIBE HISTORIAN INFLUXDB IMPLEMENTATION

Backend Design

TimesScribe

  • Language: DotNet for data collection and processing, SQL for data querying.
  • Framework: MVC for web services,
  • Database: SQL for configuration and meta-data storage. 
  • Integration: Uses libraries like Paho MQTT, OPC-UA client, and REST APIs for integration with different data sources

InfluxDB

  • Time-Series Storage: InfluxDB for efficient time-stamped data storage.
  • Language: Go for core functionalities, TICK stack (Telegraf, InfluxDB, Chronograf, Kapacitor) for data handling.
  • Data Input: Telegraf for data collection from various sources.

Architecture

High-Level Architecture

  1. Data Sources: OPC UA, OSI Pi, Zabbix, MQTT brokers.
  2.  Data Collection: Telegraf agents for collecting data.
  3. Data Storage: InfluxDB for time-series data, MS-SQL for metadata.
  4. Processing Layer: Kapacitor for data processing and alerting.
  5. Visualization: Chronograf for dashboards and visualization.
  6. Web Services: MVC applications for interfacing with users and external systems.

Detailed Architecture Diagram

Data Flow Mechanism

Data Collection:

  • Data from OPC UA, OSI Pi, and Zabbix is collected by Telegraf agents.
  • MQTT messages are captured directly by Telegraf plugins.

Data Ingestion:

  • Telegraf pushes the collected data to InfluxDB in a predefined time-series format.

Data Processing:

  • Kapacitor processes data for alerts, anomaly detection, and other analyses.

Data Visualization:

  • Chronograf visualizes processed data for user-friendly dashboards.

Data Access Mechanism

  • API Access: RESTful APIs via MVC for querying and manipulating data.
  • Query Language: InfluxQL for time-series data, SQL for metadata.
  • Web Interface: User interfaces built with React.js or Angular for interactive data access. 
  • Authentication: OAuth 2.0 and JWT for securing API access.

IP Requirement

  • Static IPs for all servers to ensure reliable communication and easier management.
  • Internal IPs for InfluxDB, Telegraf agents, and Kapacitor to maintain security within the
    network.

Authentication Mechanism

  • User Authentication: OAuth 2.0 for secure user authentication.
  • API Authentication: JWT tokens for API security. 
  • Database Security: Role-based access control (RBAC) in PostgreSQL and InfluxDB.
  • Encryption: SSL/TLS for all communication channels to ensure data integrity and confidentiality.

Integrations

  • OPC UA: Integration via dedicated OPC UA clients.
  • OSI Pi: Integration using the PI Web API for data access.
  • Zabbix: Integration through Zabbix API and data export scripts.
  • MQTT: Direct integration using Telegraf MQTT plugin.
  • REST APIs: Integration with external systems through custom REST endpoints.

Cybersecurity

  • Network Security: Firewalls and network segmentation to protect against unauthorized access. 
  • Data Encryption: SSL/TLS encryption for data in transit. 
  • Access Controls: RBAC to ensure that users only have access to data relevant to their role. 
  • Monitoring and Auditing: Continuous monitoring and logging of access and activity. 

Web Hosting

  • Hosting Environment: Linux servers (Windows/Ubuntu/CentOS) for reliability and performance. 
  • Containerization: Use of Docker for easy deployment and scalability. 
  • Web Server: Nginx as a reverse proxy and load balancer.

Prerequisite

a) Provision of Static IP to System

  • Allocate static IPs to all critical components including InfluxDB, Telegraf agents, Kapacitor, and web servers.

b) Provision of FQDN to Application for Easy Accessibility 

  • Use DNS services to map static IPs to Fully Qualified Domain Names (FQDN) for easier access and management.

c) Provision of SSL Certificate to Host Application inside JSW Network 

  • Obtain and install SSL certificates from a trusted Certificate Authority (CA) to secure communication within the JSW network.

d) Provision of DNS Entry in Network for Redirecting to Application Based on FQDN – 

  • Configure DNS entries to redirect user requests to the appropriate IPs using FQDN, ensuring seamless access and failover support. 

System Requirements

Operating System

Timescribe supports the following operating systems:

  • Windows: Version 10 or later
  • Linux: Ubuntu 20.04 LTS or later

Hardware Specifications

Processor

  • Minimum Requirements: Intel Core i7 12th Gen, 8 cores
    • Timescribe utilizes multi-core processors effectively for parallel processing of audio and text data.
  • Recommended: Intel Core i9 12th Gen or equivalent, 8 cores
    • This provides enhanced performance for real-time transcription and advanced text processing tasks.

Memory (RAM)

  • Minimum: 16 GB DDR4 RAM
    • Adequate RAM ensures smooth operation of Timescribe, allowing it to handle large files and multiple tasks simultaneously.
  • Recommended: 32 GB DDR4 RAM
    • Recommended for optimal performance, especially when processing extensive audio recordings or working with large datasets.

Storage

  • Minimum:
    • Solid State Drive (SSD): 256 GB
      • SSDs offer faster data access speeds, improving the responsiveness of Timescribe during transcription and data retrieval.
    • Hard Disk Drive (HDD): 1 TB
      • HDDs provide ample storage space for saving transcribed files and audio recordings.
  • Recommended:
    • SSD: 512 GB
      • Larger SSD capacity enhances performance, reducing loading times and improving overall system responsiveness.
    • HDD: 2 TB
      • Recommended for users with extensive storage needs, such as managing large volumes of audio recordings and transcribed files.

Virtual Machines

  • Required: 2 virtual machines (VMs)
    • Timescribe may utilize virtualization technology to optimize resource allocation and scalability. Each VM should meet or exceed the minimum hardware specifications outlined above.

Display

  • Resolution: 1920 x 1080 pixels or higher
    • Timescribe interfaces and visualization tools are optimized for Full HD resolution displays or higher.
  • Graphics Card: Integrated graphics or dedicated GPU with OpenGL 3.2 support
    • Graphics capabilities support smooth rendering of graphical user interfaces and visual data representations.

Network

  • Internet Connection: Required for software updates and integration with cloud-based services.
    • Timescribe periodically updates to improve performance and add new features, necessitating a stable internet connection.

Additional Requirements

  • Input Devices: Keyboard and mouse or compatible pointing device
    • Standard input devices ensure smooth interaction with Timescribe’s user interface and feature controls.
  • Audio Output: Sound card and speakers/headphones
    • Essential for listening to transcribed audio playback and monitoring real-time transcription sessions.

Performance Considerations

Timescribe is designed to deliver efficient performance across a range of computing environments. The recommended specifications ensure optimal functionality, even during resource-intensive tasks such as batch processing or real-time transcription of multiple audio streams.