This proposal has been approved and the Eclipse Milo project has been created.
Visit the project page for the latest information and development.


Friday, February 26, 2016 - 20:30 by Kevin Herron
This proposal is in the Project Proposal Phase (as defined in the Eclipse Development Process) and is written to declare its intent and scope. We solicit additional participation and input from the community. Please login and add your feedback in the comments section.
Parent Project
Working Group
Proposal State

The Industrial Internet of Things (IIoT) often refers to the idea of connectivity and interoperability between machinery found in the manufacturing industry. IIoT represents a significant opportunity to improve the efficiency of industrial automation processes and in other industries in general. A key challenge for IIoT is the wide and diverse nature of the devices, equipment, software and vendors that comprise the industrial ecosystem.

OPC-UA is an important standard in the industrial automation industry, ensuring interoperability between the many different types of machinery and software. OPC was initially release in 1996 but has evolved over time to become a flexibile and open standard called OPC-UA. OPC-UA has become one of the key standards behind the Industry 4.0 initiative in Europe and more specifically in Germany. It's also beginning to see traction in the United States.


This project provides all the tools necessary to implement OPC Unified Architecture (UA) client and/or server functionality in any JVM-based project.

The project provides:

  • a stack implementation, compatible with the latest version (1.03) of the UA specifications.
  • a SDK built on the stack that enables development of compliant UA client and server applications.

The separation between stack and SDK may seem arbitrary at first, but the distinction is common within the OPC-UA community and vendors as it allows SDKs that serve different needs to be built upon a common stack.


OPC Unified Architecture is an interoperability standard that enables the secure and reliable exchange of industrial automation data while remaining cross-platform and vendor neutral. The specification, currently version 1.03, is developed and maintained by the OPC Foundation with the guidance of individual software developers, industry vendors, and end-users. It defines the interface between Clients and Servers, including access to real-time data, monitoring of alarms and events, historical data access, and data modeling.

Why Here?

The OPC Foundation has been positioning OPC-UA as a contending protocol in the IIoT space, and seeing successful adoption, making it a natural fit for the Eclipse IoT ecosystem.

Project Scheduling

The initial contribution is ready.

I expect that a production ready "1.0" release of all projects could be ready in either Q2 or Q3 of 2016.

Project Leads
Interested Parties
  • Dominic Storey
  • Eurotech
  • Bosch Software Innovations GmbH
Initial Contribution

The initial contribution includes a fully functional stack, client, and server SDK, however the server SDK is missing certain functionality and API stability that has kept it from seeing a "1.0" release.

This missing functionality would be implemented during the incubation phase.

Source Repository Type

Hi Kevin,

great to see an "open" implementation of UPC-UA coming to Eclipse :-)

Could you please add "Bosch Software Innovations GmbH" as an interested party to your project?




This project looks very exciting! Please add Eurotech to the list of interested parties.





also coming from Bosch SI, we are currently using the commercial Prosys SDK and I think your contribution is very valuable to the community.

I would be interested in:

  • What are the feature of Milo compared to the Prosys lib? Are you planning on a comparison chart?
  • How much effort (measured in complexity, not time) would it be to switch from Prosys to Milo in the future (Ranging from drop-in replacement to completely different architecture)?



In reply to by Jan Wedel


I think building a comparison chart is a good idea. I'm going to look at the Prosys SDK again, but I imagine there should be fairly good feature parity. 

As far as effort for switching - it won't be drop in and the effort to swtich will depend on if you're talking about a client or server implementation. The client will be much easier to port. The server a little more work. I am not very familiar with the abtraction they've chosen to manage and expose nodes, so I don't know what effort will be involved yet.

If possible, I'd like to work with you to make sure Milo has the necessary functionality for you to make the transition (if that's something you decide to do) in its '1.0' release.

I've added you all as interested parties.

Hi Kevin,

just found you in this project.

I'd also like to be added as interested party.

I'f also like to state that we use Kevin implementation (fresh from github)  in our eclipse plugin (  and are quite happy with it !





Hi Kevin

As others have commented, it's great to see the project appear.

Could you please add "Myriad Group AG" as an interested party please?

Best regards

Bruce Jackson

Hi Kevin,

I'm happy to find the project. I tried the server example and  it's very promising.

Could you please add "Achtwerk GmbH" as an interested party please?

What I'm looking for is to generate events and alarms from an OPC UA server application. Will this become part of the project in near future?

Best regards

Stefan Busch