An increasing number of tool providers are considering to offer their rich-client tools as a service in the Cloud, but not too many got already started. New technologies and platforms, such as the language server protocol (LSP), the Monaco Editor, Eclipse Theia, Eclipse Che, and Eclipse Graphical Language Server Platform (GLSP) are key enablers for achieving this goal. In this talk, we want to share our experiences made in an early Cloud migration project of a real industrial tool using those technologies.
At logi.cals GmbH, we began our journey towards a Cloud IDE with logi.CAD3, a commercial, Eclipse-based engineering tool for industrial automation that enables users to conveniently develop industrial automation applications for Programmable Logic Controllers (PLCs). Alongside many other functionalities, logi.CAD3 provides feature-rich editing support for the programming languages defined in the IEC 61131-3 standard. This industry norm not only includes textual programming languages, such as Structured Text (ST), but also graphical languages, such as Function Block Diagrams (FBD).
The path towards migrating the editing support for the textual IEC languages into a Cloud IDE was pretty clear and very successful indeed: the language support had to be packaged into a language server and, shortly after, Monaco shined as a new editor for IEC Structured Text, etc.. For Function Block Diagrams, being a graphical language, the path was less obvious at first; that is, until we became involved with Eclipse GLSP, which we used to implement an industrial-grade Function Block Diagram editor.
In this talk, we report on our general experiences in migrating an industrial automation tool to the Cloud using Eclipse technologies. We provide details on the used components such as LSP, GLSP or Theia and discuss the architectural considerations which were required to achieve our goal of developing a Cloud-based IDE.
Last but not least, we will give plenty of live demos to demonstrate several aspects of the migration.
Note: logi.CAD3 is a commercial tool, but this talk is not about advertising it. We want to share an experience report on how to migrate an IDE built on Eclipse to the Cloud using new Eclipse technologies. Therefore, we will focus on how we built and migrated the tool.