SlideShare a Scribd company logo
open62541
Open Source OPC UA on
Steroids
Julius Pfrommer (KIT / Fraunhofer IOSB)
julius.pfrommer@kit.edu
julius.pfrommer@iosb.Fraunhofer.de
June 2016
open62541 originated at:
open62541 in a Nutshell
• Open Source OPC UA SDK (Stack + Server + Client)
• Written in C99 (builds with GCC / Clang / MSVC)
• Platform independent
• Endianness-agnostic
• No external dependencies of the core library (a few tiny .c
files in the /deps folder, e.g. a random number generator)
• Plugins for OS-dependent features with implementations for
the major platforms (networking, logging, clock, …)
• Distributed as a single open62541.c/.h pair
• License: LGPL + static linking exception. Can be linked
with commercial code, only changes to the library itself
need to be published
Goals of open62541
What?
OPC UA is great as a technology. Let’s make it easily
accessible to increase adoption.
How?
• Be the “Apache Server” of machine communication
• Allow tinkering/prototyping with the technology
• Provide a readable and concise implementation
(learn by reading the code along with the standard)
Not: Provide commercial support
open62541 is small
• Server binary down to 75kb / Client down to 40kb
• Server runs with 60kb RAM (mostly due to the large
information model loaded by default)
• Most code is generated from XML definitions
• Content of the /src and /include directories:
http://cloc.sourceforge.net v 1.64 T=0.17 s (277.8 files/s, 97617.7 lines/s)
-------------------------------------------------------------------------------
Language files blank comment code
-------------------------------------------------------------------------------
C 25 1201 744 10291
C/C++ Header 22 617 1183 2482
-------------------------------------------------------------------------------
SUM: 47 1818 1927 12773
-------------------------------------------------------------------------------
open62541 is fast
• Event-driven / Async server design
• Speed / cache efficiency considered from the start
• 16,000 req/sec measured with Posix sockets on a
single core
• Can be greatly improved by using epoll/kqueue or high-
throughput kernel-level mechanisms, such as DPDK
• 1,000,000 read req/sec without networking (request
decoding, processing, response encoding)
• 10,000 DataChange MonitoredItems with a 50ms
sampling rate  15% CPU load on a single core
• Continuous Integration for every commit
• Builds on GCC, MinGW, Clang, MSVC with very conservative
settings (-Wall -Wextra -Werror and more)
• Unit and integration tests (currently ca. 60% coverage)
• Static code analysis: Clang Analyzer, Coverity, Cppcheck
• Runtime sanitizers: Valgrind, Address Sanitizer, Memory
Sanitizer, Undefined Behaviour Sanitizer
• Conformance Testing Tools
• Very comprehensive set of tests
• Provided by the OPC Foundation
• Fuzzing of the network input (afl-fuzzer)
• Zero-known-bugs policy for releases
open62541 is high quality
open62541 is community-driven
The people who started everything in 2014 (the 5th is holding the camera)
• Development on Github (no infrequent code-dumps)
• Public Issue Tracker / Mailing List / IRC Channel
• 34 direct contributors to the code so far (statistics from
Github, June 2016)
Picture: OPC UA Workshop / open62541 User Meeting at RWTH Aachen (September 2015)
open62541 Roadmap
Currently Supported
• Micro-Embedded Profile
• OPC UA Binary Protocol
• Read/Write/etc.
• Subscriptions/DataChange
MonitoredItems
• Methods
• Runtime changes to the
information model (add/delete
nodes & references)
• Constructor / Destructor for
Object/Variant Instantiation
Mid-term Future
• Encryption
• MonitoredItem Filtering
• Events + Triggering
• Event-driven Client
• Async Services
• Subscriptions Handling in the
Background
Topics that are up for grabs
• User Access Levels
• Finish/Verify lockless multicore
server

More Related Content

PDF
OPC UA: Ready for realtime
PPTX
OPC UA Security: Native and Add-on Solutions
PDF
View Page Update Presentation Close Internet of Things Cologne 2015: OPC Uni...
PDF
OPC UA Connectivity with InduSoft and the OPC Foundation
PPTX
OPC Foundation and InduSoft
PPTX
Security in OPC UA ppt
PDF
IIB Manufacturing Pack v1001
PPTX
InduSoft OPC Webinar 2012
OPC UA: Ready for realtime
OPC UA Security: Native and Add-on Solutions
View Page Update Presentation Close Internet of Things Cologne 2015: OPC Uni...
OPC UA Connectivity with InduSoft and the OPC Foundation
OPC Foundation and InduSoft
Security in OPC UA ppt
IIB Manufacturing Pack v1001
InduSoft OPC Webinar 2012

What's hot (20)

PPTX
InduSoft Web Studio and OPC UA Connectivity
PDF
OPC UA Inside Out, Part 1 - Introduction and Playing Field
PDF
An Overview of OPC UA Security
PDF
OPC UA Inside Out Part 3 - Edge Devices
PPTX
Advancing IoT Communication Security with TLS and DTLS v1.3
PDF
BKK16-200 Designing Security into low cost IO T Systems
PPTX
The Role of Standards in IoT Security
PDF
Managing Your ROI & TCO In Automation Testing | V&V Webinar PPT
PDF
OPC UA for Embedded & Constrained Devices
PDF
System integration in offshore supply vessels – how we applied DDS and redefi...
PPTX
Software Defined networking (SDN)
PDF
Brocade Software Networking (SDN NFV Day ITB 2016)
PPTX
Akraino and Edge Computing
PDF
OVNC 2015-SDN 해외 활용사례 (일본): O3 Project : User-oriented SDN for WAN
PDF
Your Path to Edge Computing - Akraino Edge Stack Update
PDF
DPDK & Cloud Native
PDF
Time Sensitive Networks: How changes to standard Ethernet enable convergence ...
PDF
F5 perspective of nfv+sdn (SDN NFV Day ITB 2016)
PDF
OVNC 2015-THE NEW IP - Open Networking Architecture with SDN & NFV
PPTX
SDN Basics – What You Need to Know about Software-Defined Networking
InduSoft Web Studio and OPC UA Connectivity
OPC UA Inside Out, Part 1 - Introduction and Playing Field
An Overview of OPC UA Security
OPC UA Inside Out Part 3 - Edge Devices
Advancing IoT Communication Security with TLS and DTLS v1.3
BKK16-200 Designing Security into low cost IO T Systems
The Role of Standards in IoT Security
Managing Your ROI & TCO In Automation Testing | V&V Webinar PPT
OPC UA for Embedded & Constrained Devices
System integration in offshore supply vessels – how we applied DDS and redefi...
Software Defined networking (SDN)
Brocade Software Networking (SDN NFV Day ITB 2016)
Akraino and Edge Computing
OVNC 2015-SDN 해외 활용사례 (일본): O3 Project : User-oriented SDN for WAN
Your Path to Edge Computing - Akraino Edge Stack Update
DPDK & Cloud Native
Time Sensitive Networks: How changes to standard Ethernet enable convergence ...
F5 perspective of nfv+sdn (SDN NFV Day ITB 2016)
OVNC 2015-THE NEW IP - Open Networking Architecture with SDN & NFV
SDN Basics – What You Need to Know about Software-Defined Networking
Ad

Viewers also liked (10)

PPTX
InduSoft OPC UA Webinar with Genesis RTS
PPTX
The Inside Story: How OPC UA and DDS Can Work Together in Industrial Systems
PPT
OPC Unified Architecture
PDF
Hilscher netIOT - Industrial Cloud Communication
PDF
Manufacturing IoT - OPC UA Information Revolution
PPTX
How the fusion of time sensitive networking, time-triggered ethernet and data...
PPTX
Liquid Fuels Lectures (GIKI)
PPTX
OPC PPT
PPT
Rig Operations & Equipment
PPTX
Understanding DPDK
InduSoft OPC UA Webinar with Genesis RTS
The Inside Story: How OPC UA and DDS Can Work Together in Industrial Systems
OPC Unified Architecture
Hilscher netIOT - Industrial Cloud Communication
Manufacturing IoT - OPC UA Information Revolution
How the fusion of time sensitive networking, time-triggered ethernet and data...
Liquid Fuels Lectures (GIKI)
OPC PPT
Rig Operations & Equipment
Understanding DPDK
Ad

Similar to open62541 - Open Source OPC UA on Steroids (20)

PDF
OpenPOWER Acceleration of HPCC Systems
PPTX
Flexible compute
PPTX
Sanger, upcoming Openstack for Bio-informaticians
PDF
PLNOG 8: Piotr Gierz - Protokół OpenFlow
PDF
Runos OpenFlow Controller (eng)
PDF
How static analysis supports quality over 50 million lines of C++ code
PDF
Stacks and Layers: Integrating P4, C, OVS and OpenStack
PDF
LCA14: LCA14-209: ODP Project Update
PDF
Introductionto SDN
PDF
Introduction to Software Defined Networking (SDN)
PPTX
Ceph Day SF 2015 - Deploying flash storage for Ceph without compromising perf...
PPTX
DEVNET-1006 Getting Started with OpenDayLight
PDF
Tips Tricks and Tactics with Cells and Scaling OpenStack - May, 2015
PDF
Marcelo Perazolo, Lead Software Architect, IBM Corporation - Monitoring a Pow...
PDF
A Library for Emerging High-Performance Computing Clusters
PPTX
Docker Platform and Ecosystem Nov 2015
PDF
Open Ethernet: an open-source approach to modern network design
PDF
Introduction to SDN
PPT
Kafka Explainaton
PDF
OVS and DPDK - T.F. Herbert, K. Traynor, M. Gray
OpenPOWER Acceleration of HPCC Systems
Flexible compute
Sanger, upcoming Openstack for Bio-informaticians
PLNOG 8: Piotr Gierz - Protokół OpenFlow
Runos OpenFlow Controller (eng)
How static analysis supports quality over 50 million lines of C++ code
Stacks and Layers: Integrating P4, C, OVS and OpenStack
LCA14: LCA14-209: ODP Project Update
Introductionto SDN
Introduction to Software Defined Networking (SDN)
Ceph Day SF 2015 - Deploying flash storage for Ceph without compromising perf...
DEVNET-1006 Getting Started with OpenDayLight
Tips Tricks and Tactics with Cells and Scaling OpenStack - May, 2015
Marcelo Perazolo, Lead Software Architect, IBM Corporation - Monitoring a Pow...
A Library for Emerging High-Performance Computing Clusters
Docker Platform and Ecosystem Nov 2015
Open Ethernet: an open-source approach to modern network design
Introduction to SDN
Kafka Explainaton
OVS and DPDK - T.F. Herbert, K. Traynor, M. Gray

Recently uploaded (20)

PDF
Univ-Connecticut-ChatGPT-Presentaion.pdf
PDF
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PDF
Enhancing emotion recognition model for a student engagement use case through...
PDF
August Patch Tuesday
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Hybrid model detection and classification of lung cancer
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
1 - Historical Antecedents, Social Consideration.pdf
PDF
Getting Started with Data Integration: FME Form 101
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PPTX
Tartificialntelligence_presentation.pptx
PPTX
cloud_computing_Infrastucture_as_cloud_p
PDF
A comparative study of natural language inference in Swahili using monolingua...
PDF
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
PDF
Accuracy of neural networks in brain wave diagnosis of schizophrenia
PDF
A novel scalable deep ensemble learning framework for big data classification...
Univ-Connecticut-ChatGPT-Presentaion.pdf
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
MIND Revenue Release Quarter 2 2025 Press Release
gpt5_lecture_notes_comprehensive_20250812015547.pdf
Enhancing emotion recognition model for a student engagement use case through...
August Patch Tuesday
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Hybrid model detection and classification of lung cancer
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Unlocking AI with Model Context Protocol (MCP)
Assigned Numbers - 2025 - Bluetooth® Document
1 - Historical Antecedents, Social Consideration.pdf
Getting Started with Data Integration: FME Form 101
Digital-Transformation-Roadmap-for-Companies.pptx
Tartificialntelligence_presentation.pptx
cloud_computing_Infrastucture_as_cloud_p
A comparative study of natural language inference in Swahili using monolingua...
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
Accuracy of neural networks in brain wave diagnosis of schizophrenia
A novel scalable deep ensemble learning framework for big data classification...

open62541 - Open Source OPC UA on Steroids

  • 1. open62541 Open Source OPC UA on Steroids Julius Pfrommer (KIT / Fraunhofer IOSB) julius.pfrommer@kit.edu julius.pfrommer@iosb.Fraunhofer.de June 2016 open62541 originated at:
  • 2. open62541 in a Nutshell • Open Source OPC UA SDK (Stack + Server + Client) • Written in C99 (builds with GCC / Clang / MSVC) • Platform independent • Endianness-agnostic • No external dependencies of the core library (a few tiny .c files in the /deps folder, e.g. a random number generator) • Plugins for OS-dependent features with implementations for the major platforms (networking, logging, clock, …) • Distributed as a single open62541.c/.h pair • License: LGPL + static linking exception. Can be linked with commercial code, only changes to the library itself need to be published
  • 3. Goals of open62541 What? OPC UA is great as a technology. Let’s make it easily accessible to increase adoption. How? • Be the “Apache Server” of machine communication • Allow tinkering/prototyping with the technology • Provide a readable and concise implementation (learn by reading the code along with the standard) Not: Provide commercial support
  • 4. open62541 is small • Server binary down to 75kb / Client down to 40kb • Server runs with 60kb RAM (mostly due to the large information model loaded by default) • Most code is generated from XML definitions • Content of the /src and /include directories: http://cloc.sourceforge.net v 1.64 T=0.17 s (277.8 files/s, 97617.7 lines/s) ------------------------------------------------------------------------------- Language files blank comment code ------------------------------------------------------------------------------- C 25 1201 744 10291 C/C++ Header 22 617 1183 2482 ------------------------------------------------------------------------------- SUM: 47 1818 1927 12773 -------------------------------------------------------------------------------
  • 5. open62541 is fast • Event-driven / Async server design • Speed / cache efficiency considered from the start • 16,000 req/sec measured with Posix sockets on a single core • Can be greatly improved by using epoll/kqueue or high- throughput kernel-level mechanisms, such as DPDK • 1,000,000 read req/sec without networking (request decoding, processing, response encoding) • 10,000 DataChange MonitoredItems with a 50ms sampling rate  15% CPU load on a single core
  • 6. • Continuous Integration for every commit • Builds on GCC, MinGW, Clang, MSVC with very conservative settings (-Wall -Wextra -Werror and more) • Unit and integration tests (currently ca. 60% coverage) • Static code analysis: Clang Analyzer, Coverity, Cppcheck • Runtime sanitizers: Valgrind, Address Sanitizer, Memory Sanitizer, Undefined Behaviour Sanitizer • Conformance Testing Tools • Very comprehensive set of tests • Provided by the OPC Foundation • Fuzzing of the network input (afl-fuzzer) • Zero-known-bugs policy for releases open62541 is high quality
  • 7. open62541 is community-driven The people who started everything in 2014 (the 5th is holding the camera) • Development on Github (no infrequent code-dumps) • Public Issue Tracker / Mailing List / IRC Channel • 34 direct contributors to the code so far (statistics from Github, June 2016) Picture: OPC UA Workshop / open62541 User Meeting at RWTH Aachen (September 2015)
  • 8. open62541 Roadmap Currently Supported • Micro-Embedded Profile • OPC UA Binary Protocol • Read/Write/etc. • Subscriptions/DataChange MonitoredItems • Methods • Runtime changes to the information model (add/delete nodes & references) • Constructor / Destructor for Object/Variant Instantiation Mid-term Future • Encryption • MonitoredItem Filtering • Events + Triggering • Event-driven Client • Async Services • Subscriptions Handling in the Background Topics that are up for grabs • User Access Levels • Finish/Verify lockless multicore server