A comprehensive manufacturing intelligence platform implementing the I3X (Industrial Internet Information eXchange) standard for unified data access across enterprise systems.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Exploratory Client β
β (Interactive Console Interface) β
βββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββ
β HTTP/REST
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β I3X Aggregator Service β
β (Port: 7000) β
β β’ Dynamic Graph Discovery β
β β’ Context Building β
β β’ Unified API β
ββββββββ¬βββββββββββββββββββ¬βββββββββββββββββββ¬βββββββββββββββββ
β β β
βΌ βΌ βΌ
ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ
β ERP Service β β MES Service β β SCADA Serviceβ
β (Port: 7001) β β (Port: 7002) β β (Port: 7003) β
ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ
- .NET 9.0 SDK
- Windows PowerShell (for automated startup)
# From the solution root directory
.\Start-AllServices.ps1This will:
- Start all four I3X services (Aggregator, ERP, MES, SCADA) in separate windows
- Prompt to launch the Interactive Exploratory Client
- Display all service URLs and endpoints
The Exploratory Client is an interactive console application that provides visual exploration of the manufacturing intelligence graph through the aggregator service.
- π Discover Namespaces - View all available namespaces across ERP, MES, and SCADA services
- π Browse Object Types - Explore hierarchical view of all object types in the system
- π¦ List All Objects - Display all instances grouped by their type
- π Search for Object - Find objects by ID, name, or type with partial matching
- π Build Manufacturing Context - Construct complete manufacturing context from any entity
- π Visualize Object Graph - Tree visualization showing relationships and hierarchy
- π Explore Relationships - Navigate and understand object relationships
- π View Object History - Display historical data with configurable time ranges
- π― Interactive Object Navigator - Navigate through the graph interactively
-
Launch the Client
- Run
Start-AllServices.ps1and select 'Y' when prompted for the Exploratory Client - Or manually:
cd Manufactron.ExploratoryClient && dotnet run
- Run
-
Navigation
- Use arrow keys to navigate menu options
- Press Enter to select
- Follow on-screen prompts for input
-
Example Workflows
Exploring Manufacturing Context:
1. Select "π Search for Object" 2. Enter search term: "filler" 3. Note the element ID (e.g., "scada-equipment-filler-1") 4. Select "π Build Manufacturing Context" 5. Enter the element ID 6. View complete context including Equipment, Line, Job, Order, Material, and OperatorInteractive Navigation:
1. Select "π― Interactive Object Navigator" 2. Enter starting element: "scada-line-1" 3. Navigate to children, parent, or follow relationships 4. Build context or visualize graph at any point
The client reads its configuration from appsettings.json:
{
"AggregatorService": {
"BaseUrl": "http://localhost:7000"
}
}The Aggregator Service is the heart of the system, providing unified access to all manufacturing data sources.
- Automatically discovers the manufacturing system structure
- Builds a comprehensive graph of all objects and relationships
- Caches the graph for 30 minutes for performance
- No hardcoded types or relationships
- Constructs complete manufacturing context from ANY starting entity
- Uses graph traversal algorithms (BFS/DFS) to find related entities
- Pattern matching for automatic type recognition
- Handles complex multi-hop relationships
| Endpoint | Description |
|---|---|
GET /api/i3x/namespaces |
Get all namespaces from all services |
GET /api/i3x/types |
Get all object types |
GET /api/i3x/objects |
Get all objects (with optional metadata) |
GET /api/i3x/objects/{id} |
Get specific object |
GET /api/i3x/objects/{id}/parent |
Get parent object |
GET /api/i3x/objects/{id}/children |
Get child objects |
GET /api/i3x/objects/{id}/relationships/{type} |
Get related objects |
GET /api/i3x/context/{id} |
Build complete manufacturing context |
GET /api/i3x/history/{id} |
Get historical values |
GET /api/i3x/values/{id} |
Get current values |
POST /api/i3x/values/{id} |
Update values |
-
Service Discovery
- Queries all three services (ERP, MES, SCADA) for their capabilities
- Merges namespaces and types into unified view
-
Graph Construction
- Fetches all objects from all services
- Builds nodes from objects with attributes
- Creates edges from relationships
- Maintains bidirectional adjacency lists
-
Context Building Process
Starting Entity β Graph Discovery β Path Finding β Context Population- Identifies entity type through pattern matching
- Traverses graph to find related entities (Order, Job, Line, Equipment, etc.)
- Uses relationship semantics (ForOrder, ExecutedOn, HasChildren, etc.)
- Aggregates all relationships across entities
Manages enterprise-level data:
- Orders - Customer orders with products and quantities
- Customers - Customer information and relationships
- Products - Product definitions and specifications
Handles production execution:
- Jobs - Production jobs with planned quantities and schedules
- Operators - Worker assignments and shifts
- Material Batches - Raw material tracking
Controls equipment and lines:
- Production Lines - Line status and performance (OEE)
- Equipment - Mixers, Fillers, Cappers with real-time status
- Sensors - Temperature, pressure, flow rate monitoring
Manufactron/
βββ Manufactron.I3X.Shared/ # Shared models and interfaces
βββ Manufactron.I3X.ERP/ # ERP service implementation
βββ Manufactron.I3X.MES/ # MES service implementation
βββ Manufactron.I3X.SCADA/ # SCADA service implementation
βββ Manufactron.I3X.Aggregator/ # Aggregator service with graph discovery
β βββ Services/
β β βββ I3XAggregatorService.cs # Main aggregation logic
β β βββ GraphDiscoveryService.cs # Dynamic graph discovery
β β βββ ContextBuilderService.cs # Context building with graph traversal
β βββ Models/
β βββ GraphModels.cs # Graph structures
βββ Manufactron.ExploratoryClient/ # Interactive console client
βββ Manufactron.Client/ # Basic client implementation
# Build all projects
dotnet build
# Run individual services
cd Manufactron.I3X.Aggregator && dotnet run
cd Manufactron.I3X.ERP && dotnet run
cd Manufactron.I3X.MES && dotnet run
cd Manufactron.I3X.SCADA && dotnet run
# Run the exploratory client
cd Manufactron.ExploratoryClient && dotnet runA complete view of the manufacturing state including:
- Equipment - The primary equipment involved
- Line - The production line
- Job - Current production job
- Order - Customer order being fulfilled
- Material Batch - Raw materials being used
- Operator - Worker operating the equipment
- All Relationships - Complete relationship graph
The system uses advanced graph algorithms to:
- Discover system topology without configuration
- Find shortest paths between entities
- Build context from any starting point
- Handle complex multi-service relationships
Intelligent type detection through:
- Type ID patterns (e.g., "equipment-type", "order-type")
- Element ID patterns (e.g., "scada-equipment-mixer")
- Attribute analysis (e.g., presence of "customerId" indicates Order)
- Relationship semantics (e.g., "ForOrder", "ExecutedOn")
- Start from equipment showing error
- Build context to see current job, order, and operator
- Check material batch quality certificate
- View historical sensor data
- Navigate to upstream/downstream equipment
- Search for order by customer name
- Build context to see associated jobs
- Navigate to production lines executing jobs
- Check equipment status and OEE
- View operator assignments
- Start from quality alert
- Navigate to material batch
- Check supplier and certificate
- Find all jobs using the batch
- Identify affected equipment and lines
- Services run on localhost only by default
- No authentication implemented (development version)
- CORS enabled for development
- Production deployment requires:
- Authentication/authorization
- HTTPS endpoints
- Network security
- Access control
This is a demonstration implementation of the I3X standard for educational purposes.
This project demonstrates I3X implementation patterns. For production use:
- Add authentication and authorization
- Implement data persistence
- Add error handling and retry logic
- Configure for your specific equipment and systems
- Add monitoring and logging
For questions about the I3X standard and implementation patterns, refer to the industrial standards documentation.
Built with .NET 9.0 and the I3X Industrial Standard