Server Implementation Guide - Overview
Introduction
This draft guide is proposed for platform vendors and server implementers who want to expose their manufacturing information systems through the i3X API. By implementing this standardized interface, you enable application developers to build portable applications that work across multiple platforms.
Purpose and Goals
i3X defines a common set of server primitives that manufacturing information platforms can implement to:
- Commoditize data access: Standardize how applications access manufacturing data
- Enable application portability: Allow applications to run on any compliant platform
- Promote ecosystem growth: Foster a marketplace of interoperable manufacturing applications
- Reduce integration costs: Minimize custom integration work for both platform vendors and application developers
Target Platforms
This API is designed for implementation by both individual platforms, or combinations of platforms that work together against a unified information model, to provide the required capabilities. Examples include:
- Historians (e.g., OSI Pi, Rockwell Automation platforms)
- SCADA System (e.g., Inductive Automation Ignition)
- Manufacturing Execution Systems (MES)
- Manufacturing Operations Management (MOM) systems
- Enterprise Manufacturing Intelligence (EMI) platforms
- Data brokers and MQTT/Sparkplug-B servers, when augmented with other capabilities
- Data Ops Manufacturing Integration Platforms (e.g. HighByte Intelligence Hub, ThinkIQ)
- Custom manufacturing information systems
Architecture Overview
System Context
┌──────────────────────────────────────────┐
│ Application Layer │
│ (Client Applications - Analytics, │
│ Visualization, ML, etc.) │
└──────────────────────────────────────────┘
↓ ↑
[i3x API]
↓ ↑
┌──────────────────────────────────────────┐
│ Your Platform Implementation │
│ ┌────────────────────────────────┐ │
│ │ API Layer (Your Code) │ │
│ ├────────────────────────────────┤ │
│ │ Business Logic │ │
│ ├────────────────────────────────┤ │
│ │ Data Contextualization │ │
│ ├────────────────────────────────┤ │
│ │ Data Store / Historian │ │
│ └────────────────────────────────┘ │
└──────────────────────────────────────────┘
↓ ↑
┌──────────────────────────────────────────┐
│ Edge Layer (PLCs, Sensors, etc.) │
└──────────────────────────────────────────┘
Key Assumptions
The API assumes that your platform (or combination of platforms):
- Has already contextualized raw manufacturing data
- Has unified the information model and Namespaces across data stores
- Can map internal data structures to the API's object model in a Type-safe fashion
- Supports time-series data storage and retrieval
- Support at least hierarchical relationships between well Typed objects
- Implements appropriate security and access control
- Can handle concurrent client connections
Documentation Structure
This server implementation guide is organized into the following categories:
- Requirements - Core capabilities and compliance requirements
- Data Models - Object model and time-series data structures
- Implementation Patterns - Code examples and best practices
- Documentation - OpenAPI specification generation
Getting Started
- Review the Requirements to understand what your implementation must support
- Study the Data Models to understand the API's object model and time-series structures
- Explore the Implementation Patterns for code examples
Quick Links
- RFC Specification: https://github.com/cesmii/i3X
- Demo Server: https://api.i3x.dev/v0
- Issue Tracker: https://github.com/cesmii/i3X/issues
- Community Email: rfc@cesmii.org