Service Types
Overview
Image RemovedThree distinct services extend FrameworX capabilities while maintaining unified architecture:
Service Type | Purpose | Key Benefit | Example Use |
---|
Tag Discovery | Connect external tags without mapping | Runtime-managed communications | MQTT, OPC UA, ControlLogix |
Historian Storage | Use external historians as storage | Storage location flexibility | Canary, OSIsoft PI, InfluxDB |
Module Extension | Embed third-party modules | Native UNS integration | Sorba.AI, custom analytics |
Tag Discovery Service
The most comprehensive
of the UNS
ServicesService, enabling three
distinct patterns for connecting external data
without traditional device mapping.Key Capabilities
- Dynamic discovery of external tags
- Runtime-managed communications
- Three connection patterns (Local Tags, Linked Tags, Smart-Binding)
- Auto-activation based on usage
Quick Reference
. The runtime creates actual tags in the real-time database (RTDB) to ensure all modules (alarms, displays, historians) can access the data uniformly.
Connection Patterns
Pattern | When Created | Access Method | Governance |
---|
Local Tags | Configuration time |
Pattern | When to Use | Access Method |
---|
Local Tags & Device Points | Explicit control needed | Tag.TagName | Solution-defined |
Linked Tags |
Flexible sources, stable modelConfiguration time | Tag.TagName |
Smart-Binding | Dynamic/temporary connectionsSolution structure, external source |
Dynamic Tags | Runtime on-demand | Asset("path") |
[Full Tag Discovery Service Documentation →]Runtime Management
- Auto-discovery of external namespaces
- Dynamic tag creation in RTDB when accessed
- Automatic cleanup when no longer needed
- No pre-configuration required
- Resource optimization through on-demand activation
Governance Models
The choice between tag management approaches depends primarily on where namespace governance resides:
Local UNS Governance
- Tags defined in solution configuration
- Manual mapping to external sources
- Full control over namespace structure
- Traditional SCADA workflow
- Applies to: Local Tags and Linked Tags
Dynamic External Governance
- Zero-configuration at runtime
- Adapts to external source namespaces
- Automatic discovery and creation
- Reduced engineering time
- Applies to: Dynamic Tags
Historian Storage Service
Extends the Historian Module to
use any third-party historian as a storage location while maintaining the same configuration interface and runtime behavior.How It Works
The Historian Module in FrameworX is be "storage location agnostic" - the same configuration and runtime logic works regardless of where data is stored:
Historian Configuration
??? Historian Tags: what to store. Group tags to a Historian Table
??? Historian Tables: when to store (Triggers). The where is a link to Storage Location object.
??? Storage Location: where to store. ← UNS Service extends this
??? Default: SQLite
??? SQL Databases: SQL Server, PostgreSQL
??? UNS Service: Canary, PI, InfluxDB, Custom
Architecture
- Historian Tags - What to store (tag selection)
- Historian Tables - When to store (triggers and grouping)
- Storage Location - Where to store:
- Default: SQLite
- SQL Databases: SQL Server, PostgreSQL
- UNS Service: Canary, PI, InfluxDB, Custom
Configuration Comparison
ConfigurationStandard SQL Storage | UNS Service Storage |
---|
Configure Historian Tables
|
Configure Historian Tags grouping into the tables
Keep the Storage Location to Group tags into tables Use Dataset.DB. |
TagHistorian TagHistorian Customize |
the TagHistorian SQL connection |
as needed | Create |
a Storage Location using UNS ServicesDefine Historian Tables to use that UNS Service location Tables reference service location Add |
Historian Tags tags to |
those tables
|
Storage managed by external systemExternal system manages storage |
Benefits
infrastructure - Use already deployed - Different groups can use different storage locations- strategies per table
- Seamless migration
- Change storage without reconfiguring groupsNative integration - External historians appear as standard options- between storage types
- Native integration with external systems
Supported External Historians
- Canary Historian
- OSIsoft PI
- InfluxDB
- Custom implementations via API
Module Extension Service
Enables third-party modules to integrate
directly into the UNS, appearing as native FrameworX components with full Designer support
.Use Cases
This service addresses scenarios where:
Third-party integration requires custom configuration beyond standard connectorsThe module needs to appear in the UNS tree with custom propertiesIntegration
should feel native to FrameworX usersConfiguration and execution should remain within FrameworXHow It Works
ac:layout <ac:layout-section ac:type="single"> ac:layout-cell
Integration Process
:- Partner creates XML descriptor and .NET DLL
- Files placed in FrameworX extensions folder
- Module appears in Designer under UNS → Service Connections
User configures - Configure connection settings
Module - Add module elements
can be added - to Asset Tree
</ac:layout-cell> </ac:layout-section> </ac:layout>
Example: Sorba.AI Integration
Once configured, the Sorba.AI module
extension allowselements appear in the Asset Tree:
Code Block |
---|
UNS Asset Tree
??? Plant
? ??? Area1
? ? ??? SorbaModel (Module Extension)
? ? ??? Predictions
? ? ??? Anomalies
? ? ??? Parameters
? ? ??? ModelStatus |
- Plant
- Area1
- SorbaModel (Module Extension)
- Predictions
- Anomalies
- Parameters
- ModelStatus
The module exposes all properties through standard UNS access patterns, accessible via namespaces like any native module.
Common Characteristics
All Services Share:
- Auto-discovery - Resources discovered at runtime
The SorbaModel object exposes all necessary properties and methods to interact with Sorba.AI directly through the UNS, including:
- Model predictions as tag values
- Anomaly detection results
- Configuration parameters
- Performance metrics
Benefits
- Native feel - Third-party modules appear as built-in components
- Unified configuration - All settings in Designer
- Standard access - Use Tag.Path syntax for module data
- Full integration - Alarms, historian, displays work normally
Common Characteristics
All UNS Services share fundamental behaviors:
Runtime Management
Auto-discovery - Services discover available resourcesEnable service in UNS → Service ConnectionsConfigure connection parametersService auto-populates available resourcesUse resources through standard FrameworX methods- On-demand activation - Resources allocated only when needed
- Unified interface - Consistent configuration approach
- Performance optimization - Automatic resource management
Configuration Approach
- RTDB integration - All data flows through real-time database
Protocol Requirements
Service |
Type |
Protocol RequirementsRequired Capability |
---|
Tag Discovery |
Must support browsingBrowsing/discovery protocol (MQTT, OPC UA |
, etc.) |
Historian Storage |
Must implement storage Storage API interface implementation |
Module Extension |
Must provide .NET |
integration assembly or REST |
API API |
Implementation Considerations
When to Use
UNS ServicesEach Approach
Approach When:Configuration | Use UNS Services |
---|
- |
communication is Working with legacy - Legacy protocols without discovery - Regulatory compliance demands |
explicit configuration is Use UNS Services When:
- External systems support discovery protocols
- Storage infrastructure already exists
- Third-party modules need deep integration
- Dynamic connectivity is beneficial
- Tag Discovery: Minimal overhead, on-demand activation
- Historian Storage: Performance depends on external system
- Module Extension: Varies by implementation
- Namespace governance internal | - Discovery protocols supported - Existing storage infrastructure - Third-party integration needed - Dynamic connectivity beneficial - External namespace governance |
Service | Impact | Optimization Strategy |
---|
Tag Discovery | Minimal overhead | On-demand tag creation, automatic cleanup |
Historian Storage | Depends on external | Batch operations, connection pooling |
Module Extension | Varies by implementation | Resource pooling, lazy loading |
Security Architecture
Security Considerations- Services inherit FrameworX security model
- External connections use service-specific authentication
- Access control applies uniformly to all
service - data
- Audit trail includes service operations
Best Practices
Service Selection
- Evaluate each data source independently
- Consider long-term maintenance requirements
- Assess existing infrastructure
- Plan for mixed configurations
Common Configurations
- Dynamic tags respect same security as local tags
Deployment Patterns
Enterprise System
Enterprise System:- Local Tags for control logic
Tag Discovery - and setpoints
- Linked Tags for equipment with multiple sources
- Dynamic Tags for enterprise/MES data
- Historian Storage to corporate
historian- infrastructure
- Module Extensions for analytics and AI
Edge Device
:- Local Tags for field devices
Smart-Binding for diagnostics- Dynamic Tags for diagnostic access
- Local historian storage (SQLite)
- Minimal external services
Migration Strategy
Hybrid Architecture
- Mix governance models per subsystem
- Critical control: Local Tags
- Enterprise data: Dynamic Tags
- Flexible equipment: Linked Tags
Decision Strategy
- Assessment - Identify data governance requirements
- Pilot - Test
- Identify candidates - Which data fits service model?
Pilot testing - Start - with non-critical
data- subsystem
Performance validation - Validation - Verify performance meets requirements
Gradual rollout - Rollout - Expand
usage - systematically
Terminology Evolution
- by area or function
- Optimization - Tune resource allocation
<ac:structured-macro ac:name="info"> <ac:parameter ac:name="title">Terminology Evolution</ac:parameter> ac:rich-text-body
Historical Context:
Info |
---|
title | TagProvider terminology |
---|
|
Historical Context- Legacy Term: "TagProvider" or "Dynamic TagProvider"
- Current Term: "UNS Services" (FrameworX 10.1+)
, specifically the Tag Discovery Service.- Key Patterns: Dynamic Tags (runtime-created in RTDB)
The terminology evolved as functionality expanded
Functionality: Expanded beyond simple tag provisioning
The new terminology better reflects the comprehensive nature of these services, which now include storage, modules, and discovery capabilities.
Next Steps
Detailed Documentation
- [Tag Discovery Service →] - Complete guide to three connection patterns
- [Historian Configuration →] - Storage setup procedures
- [Module Development →] - Creating extensions
- [P1: UNS Foundation →] - Core UNS concepts
- [Devices Module →] - Traditional mapping approach
- [Runtime Execution →] - How services execute
UNS Services represent the extensibility layer of FrameworX, enabling seamless integration with external systems while maintaining the platform's unified architecture and ease of use. Choose services based on your infrastructure and operational requirementsto include storage services and module extensions.