S2OPC 1.7.0 release
The S2OPC team is proud to announce the 1.7.0 release of S2OPC.
This release introduces several improvements including:
- Security Audit: fires OPC UA events in case of cybersecurity related events
- Role Permission: to assign permissions to roles rather than individual users, simplifying management and improving security
- PubSub Extended Support: it is now available on Windows
- History Read: adds the capacity for the server to store previous values of nodes
- Node Management : completes the services to add and delete nodes run time
- Performance Improvement: improves performance of write/add nodes operations
- Zephyr 4.1 Support: compatible with the latest version of this real-time operating system
New features¶
- Ticket #1528: Server: add Audit support for AuditSecurity event types
- Ticket #1531: PubSub: implement DataSetMessage timestamp option
- Ticket #1539: PubSub: filter DataSetMessage emission at runtime and compilation time
- Ticket #1542: Server: implement a limited set of RolePermission features
- Ticket #1549: AddNodes service: Support adding a node of type Object
- Ticket #1568: Server: Implement service DeleteNodes
- Ticket #1596: Server : add multiple subscriptions feature
- Ticket #1603: AddNodes service: Support adding a node of type Method
- Ticket #1612: AddNodes service: support automatic creation of TypeDefinitionNode hierarchy for Variable/Object
- Ticket #1630: PubSub: add a callback for Publisher signature failure and Subscriber signature check failure
- Ticket #1632: PubSub Security Key Services: add a callback SK builder for SKS push model
- Ticket #1644: Server: add HistoryRead service first implementation
- Ticket #1664: Server: allow to overwrite client requests prior to treatment
Enhancements¶
Some notable enhancements are:
- Ticket #1343: Remove the extern const crypto profile
- Ticket #1357: NodeSet merge tool: Alias support is incomplete
- Ticket #1435: Add UDP support on Windows
- Ticket #1494: Use NamespaceArray from XML NodeSet (instead of server config) + NS1 URI shall be Application server URI
- Ticket #1535: Enable Sign security mode with publisherFixedSize optimisation
- Ticket #1547: AddressSpaceAccess functions should be tested in CI
- Ticket #1548: Minor fixes and enhancements
- Ticket #1551: Add handling permission ReceiveEvents
- Ticket #1552: Certificate ExtendedKeyUsages are not enforced when extension is absent from certificate
- Ticket #1555: Implement service translateBrowsePathToNodeId in addressSpaceAccess module
- Ticket #1558: Implement partial browse service in addressSpace access module
- Ticket #1560: Client request builder SOPC_EventFilter_SetSelectClause should allow empty browse path
- Ticket #1561: Server OPC UA events: provide a way to define an Event instance NodeId
- Ticket #1562: MethodCall manager becomes thread-safe
- Ticket #1563: LocalizedText write: authorize invariant locale and same locale on existing instance
- Ticket #1564: Add a monitoring of S2OPC event Queue size
- Ticket #1570: Custom OPC UA types: define a constant for the associated namespace index
- Ticket #1573: AddressSpace embedded loader: allow use of Node management services
- Ticket #1578: Server API: add custom callback for asynchronous local services
- Ticket #1579: Server API: TriggerEvent should also allow to restrict the session
- Ticket #1580: File Transfer Rework
- Ticket #1581: Simplify SOPC_NodeId_FromCString function
- Ticket #1584: B model: Improve provability of constants
- Ticket #1592: XML AddressSpace parser fails on Empty ExtendedObject Body subNodes
- Ticket #1594: Method Call: server doesn’t send output arguments when method return status is uncertain
- Ticket #1595: Client API: add custom callback for asynchronous services
- Ticket #1598: Access server endpoints through high level API
- Ticket #1602: B model: Improve provability of session_core
- Ticket #1605: Add multi subscription (client side)
- Ticket #1608: Get UserPolicyId from server
- Ticket #1613: Update to zephyr3.7.0
- Ticket #1621: Update to zephyr4.1.0
- Ticket #1629: Remove outdated servers registered using RegisterServers2
- Ticket #1631: PubSub Security Keys: manage security group id for security keys
- Ticket #1636: Make FreeRTOS sample compatible with NXP’s boards
- Ticket #1650: SOPC_CircularLogFile_Delete does not release pointer
- Ticket #1651: SOPC_Time_GetString crashes in case of invalid input
- Ticket #1654: WINDOWS socket cannot listen more than 63 sockets
- Ticket #1656: add an option to build.sh to change the number of CPU used for make jobs
- Ticket #1658: Client connections: allow to actually close secure channel / TCP connection
- Ticket #1662: Add option for disabling check of uniqueness of BrowseName in AddNodes
- Ticket #1663: Add the possibility to set CPU affinity on thread creation
- Ticket #1665: Check that Application URI is set ServerArray[1] and is equal to NamespaceArray[0]
- Ticket #1666: Provide connection context in user authorization callback mechanism
- Ticket #1672: Server: improve performance of write/add nodes operations
- Ticket #1678: Remove deprecated API for encodeable types and client API
- Ticket #1685: Session timeout: avoid closure of session in case of time reference going backward
- Ticket #1686: PyS2OPC (client): Add timeout on synchronous call + Add missing status codes
Bug fixed and known bugs¶
The list of fixed bugs and of known bugs is available in the 1.7.0 Gitlab release page.
What is S2OPC ?¶
S2OPC is a software solution for client-server and pub-sub communications using OPC UA standard.
- designed to target the cyber-security and real-time constraints of embedded products
- deployed on larger command-control or supervision systems
S2OPC has a security visa from ANSSI for the CSPN certification and a certificate of compliance with the OPC UA v1.04 standard from the OPC Foundation.
Multiplatform SDK, S2OPC is used in application scaling from IIoT modules to SCADA systems. It supports both Client/Server and PubSub. S2OPC is also ready for integration with TSN networks.
S2OPC is an open-source solution for OPC UA communications.
