| <!-- |
| This document is provided as a template along with some guidance for creating |
| your project proposal. This is just a template. Feel free to change it as |
| you see fit (add sections, remove section). We feel, however, that the |
| suggestions represented in this document represent the reasonable minimum |
| amount of information to move forward. |
| |
| Please keep the formatting in this document simple. Please do not edit |
| this document in Microsoft Word as it adds huge piles of markup that make |
| it difficult to restyle. |
| |
| More information is available here: |
| |
| http://wiki.eclipse.org/Development_Resources/HOWTO/Pre-Proposal_Phase |
| |
| Direct any questions about this template to emo@eclipse.org |
| --> |
| |
| <html> |
| <head> |
| |
| <!-- |
| Include the title here. We will parse it out of here and include it on the |
| rendered webpage. Do not duplicate the title within the text of your page. |
| --> |
| |
| <title>Eclipse SCADA</title> |
| <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
| </head> |
| |
| <!-- |
| We make use of the 'classic' HTML Definition List (dl) tag to specify |
| committers. I know... you haven't seen this tag in a long while... |
| --> |
| |
| <style type="text/css"> |
| dt { |
| display: list-item; |
| list-style-position: outside; |
| list-style-image: |
| url(/eclipse.org-common/themes/Phoenix/images/arrow.gif); |
| margin-left: 16px; |
| } |
| |
| dd { |
| margin-left: 25px; |
| margin-bottom: 5px; |
| } |
| </style> |
| |
| <body> |
| <p> |
| The Eclipse SCADA project is a proposed open source project under the |
| <a |
| href="http://www.eclipse.org/projects/project_summary.php?projectid=technology">Technology |
| Container Project</a>. |
| </p> |
| <!-- // an alternative top level project would be the m2m working group --> |
| |
| <!-- |
| The communication channel must be specified. Typically, this is the |
| "Proposals" forum. In general, you don't need to change this. |
| --> |
| <p> |
| 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 Eclipse |
| community. Please send all feedback to the <a |
| href="http://www.eclipse.org/forums/eclipse.proposals">Eclipse |
| Proposals</a> Forum. |
| </p> |
| |
| <h2>Background</h2> |
| |
| <!-- |
| Optionally provide the background that has lead you to creating this project. |
| --> |
| |
| <p> |
| In 2006 we started a series of projects which would at first require |
| some sort of connectivity to process control hardware and software. It |
| was obvious that with the upcoming projects more SCADA like |
| functionality would be required. The target platform had to be 64bit |
| Linux and a JEE environment. Since there was no room for a full blown |
| SCADA system and also existing solutions on the market did not seem to |
| fit (or were to expensive), development of a custom SCADA system was |
| started in these projects. It was clear from the beginning that it |
| would be hard to place this custom built solution as a commercial |
| product on the market. Therefore it was decided to create it as a an |
| open source project from the start. It is currently hosted at <a |
| href="http://openscada.org">http://openscada.org</a>. |
| </p> |
| |
| <h2>Scope</h2> |
| |
| <!-- |
| All projects must have a well-defined scope. Describe, concisely, what |
| is in-scope and (optionally) what is out-of-scope. An Eclipse project |
| cannot have an open-ended scope. |
| --> |
| |
| <p>EclipseSCADA provides a state of the art open source SCADA |
| system, including:</p> |
| <ul> |
| <li>A communication system |
| <ul> |
| <li>An internal communication bus</li> |
| <li>A framework for implementing driver modules/device adapters</li> |
| <li>A set of out-of-the-box drivers modules/device adapters</li> |
| </ul> |
| </li> |
| <li>A monitoring system, evaluating gathered data, storing |
| generated events</li> |
| <li>A data archive, storing gathered data</li> |
| <li>Create a reference implementation</li> |
| <li>A graphical user interface for gathered data, alarms & |
| events from the monitoring system, archived value data</li> |
| <li>A system to configure and document the system</li> |
| </ul> |
| |
| <p>Not part of the this project are:</p> |
| |
| <ul> |
| <li>An embedded systems platform (like PLCs or embedded control |
| systems)</li> |
| <li>A communication system that transports arbitrary complex data |
| structures</li> |
| </ul> |
| |
| |
| <h2>Description</h2> |
| |
| <!-- |
| Describe the project here. Be concise, but provide enough information that |
| somebody who doesn't already know very much about your project idea or domain |
| has at least a fighting chance of understanding its purpose. |
| --> |
| <p> |
| Definition from wikipedia: <a |
| href="https://en.wikipedia.org/wiki/SCADA">https://en.wikipedia.org/wiki/SCADA</a> |
| </p> |
| <blockquote cite="https://en.wikipedia.org/wiki/SCADA"> |
| <p>SCADA (supervisory control and data acquisition) is a type of |
| industrial control system (ICS). Industrial control systems are |
| computer controlled systems that monitor and control industrial |
| processes that exist in the physical world. SCADA systems |
| historically distinguish themselves from other ICS systems by being |
| large scale processes that can include multiple sites, and large |
| distances.</p> |
| </blockquote> |
| |
| <p>Simply speaking the primary target of Eclipse SCADA is a way to |
| connect different industrial devices to a common communication system |
| and post-process as well as visualize the data to operating personnel.</p> |
| |
| <p> |
| Since this scheme will also work with non-industrial devices and |
| devices do become more complex and tend to become software solutions |
| themselves the term “device” should be more considered as an “other |
| system”. |
| </p> |
| |
| <p>The idea of a SCADA system is to provide mostly scalar values |
| instead of complex data structures. Where necessary data structures |
| are split up into multiple scalar values. This is done in order to |
| process the data more quickly and allow common processing of data.</p> |
| |
| <!-- not sure if this example explains adequatly what SCADA is about, maybe it should be reformulated or just removed --> |
| <p>For example a meteo station is providing current weather |
| information. It can provide temperature and solar radiation. These are |
| two floating point values which are processed independently. Still the |
| same alarming schema (high level alarm) can be applied to both values. |
| The values can both be assigned a quality/alarm information (alarm |
| state) which can then be shown using the same user interface element |
| and the same visualization scheme (alarm is displayed with red |
| background). This way many different scalar values can be processed |
| exactly the same way.</p> |
| |
| <h2>Why Eclipse?</h2> |
| |
| <!-- |
| Answer these two questions: What value does this project bring to the Eclipse |
| community? What value do you expect to obtain from hosting your project at Eclipse? |
| |
| What value do you get by having your project at Eclipse over and above the value |
| of hosting at Eclipse Labs? |
| --> |
| <p>First of all this project uses several Eclipse technologies like |
| OSGi, RCP, EMF and a few more. This is the reason why the existing |
| openSCADA project is technologically already quite close to the |
| Eclipse project set. Also a lot of code already exists which could be |
| used by other projects in the Eclipse Foundation.</p> |
| |
| <p>We hope that bringing openSCADA into Eclipse as Eclipse SCADA |
| will increase the visibility of the open source SCADA system and |
| attract other contributors and companies to an open source SCADA |
| solution. An open source SCADA communication stack could be used by |
| system integrators and device manufactures to provide a default way of |
| communicating with devices, in an open source ecosystem. Due to the |
| connected nature of a SCADA system it is important to have an open |
| connection infrastructure. As ibh SYSTEMS GmbH we are not in the |
| position to provide an industry standard way, as an Eclipse project it |
| would be possible to set a standard together with other industrial |
| projects in that area. We also do not begin from scratch, since we |
| already have a working solution.</p> |
| |
| <p>We as ibh SYSTEMS GmbH of course hope to assist in realizing |
| such solutions and enhance Eclipse SCADA in future projects as we did |
| with openSCADA up to now. Yet the Eclipse Foundation provides a much |
| broader audience.</p> |
| |
| <p>openSCADA already has a small community and several users. It |
| has an open communication channel (google group), a wiki and bug |
| tracker at Atlassian, three publicly accessible git repositories. This |
| is why we don't see any additional value in migrating to Eclipse Labs. |
| </p> |
| |
| <h2>Initial Contribution</h2> |
| |
| <!-- |
| Projects are expected to arrive at Eclipse with existing code. |
| |
| Describe the existing code that will be contributed to the project. Please provide |
| a couple of paragraphs describing the code with modest detail, including important |
| information like code ownership (who holds the copyright?), and some consideration |
| of community that exists around the code. Include a listing of third-party libraries |
| and associated licenses. |
| --> |
| <p>As base for Eclipse SCADA we want to use the existing openSCADA |
| project source code. The code is currently hosted by ibh SYSTEMS GmbH. |
| The copyright owners are the proposed committers which already worked |
| as freelancer on the project as well the companies TH4 SYSTEMS GmbH |
| (formerly inavare GmbH) and ibh SYSTEMS GmbH.</p> |
| |
| <p>The source code was originally managed in several subversion |
| repositories which were converted to git repositories some time ago. |
| The openSCADA project itself is grouped into different sub-projects in |
| order to modularize it.</p> |
| |
| <!-- actually I am a fan of "dl" --> |
| <dl> |
| <dt>External</dt> |
| <dd>Contains all external libraries (except j-interop). This |
| project will not be contributed. Eclipse Orbit will be used instead.</dd> |
| |
| <dt>Aurora</dt> |
| <dd>Holds non-user interface utility components</dd> |
| |
| <dt>Utgard</dt> |
| <dd>The OPC driver implementation, based on j-interop</dd> |
| |
| <dt>Oxygen</dt> |
| <dd>Implementations of some protocols, mostly openSCADA internal</dd> |
| |
| <dt>Atlantis</dt> |
| <dd>Non-user interface components of the openSCADA system. |
| Including driver modules, alarming, archiving.</dd> |
| |
| <dt>Orilla</dt> |
| <dd>User interface components of the openSCADA system.</dd> |
| |
| <dt>Infinity</dt> |
| <dd>An SWT based time series chart widget.</dd> |
| |
| <dt>Dakara</dt> |
| <dd>The Draw2D based vector graphics visualization</dd> |
| |
| <dt>Othala</dt> |
| <dd> |
| An Eclipse RCP project build which provides the <q>OSTC</q> an |
| admin/test client for use with openSCADA. |
| </dd> |
| |
| <dt>Orion</dt> |
| <dd>Some additional user interface components used within the |
| Eclipse IDE</dd> |
| |
| <dt>Tau'ri</dt> |
| <dd>Some example projects and setups for demoing openSCADA</dd> |
| |
| <dt>Contrib</dt> |
| <dd>Some source code that can be used with openSCADA but does not |
| fit into the release version of openSCADA due to the lack of use, |
| testing or license issues.</dd> |
| </dl> |
| |
| <!-- |
| Describe any initial contributions of code that will be brought to the |
| project. If there is no existing code, just remove this section. |
| --> |
| |
| <p>The initial contribution of Eclipse SCADA would be the openSCADA |
| Git repositories which are currently replicated to:</p> |
| <ul> |
| <li><a href="http://git.openscada.org">http://git.openscada.org</a></li> |
| <li><a href="https://bitbucket.org/ctron">https://bitbucket.org/ctron</a></li> |
| <li><a href="https://github.com/ctron">https://github.com/ctron</a></li> |
| </ul> |
| |
| <p>The initial components we want to contribute are:</p> |
| <ul> |
| <li>Aurora</li> |
| <li>Oxgyen</li> |
| <li>Utgard (as the j-interop dependencies are resolved)</li> |
| <li>Atlantis</li> |
| <li>Orilla</li> |
| <li>Infinity</li> |
| <li>Othala</li> |
| <li>Dakara</li> |
| <li>Deploy</li> |
| <li>Orion</li> |
| </ul> |
| |
| <p> |
| Note that the <em>Orion</em> component will renamed to avoid confusion |
| with the Eclipse Orion project. |
| </p> |
| |
| <p>The following external libraries are used by openSCADA at the |
| moment:</p> |
| |
| <table> |
| <thead> |
| <tr> |
| <th>Library</th> |
| <th>License</th> |
| </tr> |
| </thead> |
| <tbody> |
| |
| <tr> |
| <td>Apache Mina 2.0.7</td> |
| <td>Apache License, Version 2.0</td> |
| </tr> |
| |
| <tr> |
| <td>SLF4J 1.6.4</td> |
| <td><a href="http://www.slf4j.org/license.html">MIT license</a> |
| </td> |
| </tr> |
| <tr> |
| <td>Logback 1.0.0</td> |
| <td>EPL v1.0 & LGPL 2.1</td> |
| </tr> |
| |
| <tr> |
| <td>jzlib 1.1.1</td> |
| <td>BSD-style</td> |
| </tr> |
| <tr> |
| <td>guava 10.0.1</td> |
| <td>Apache License, Version 2.0</td> |
| </tr> |
| <tr> |
| <td>antlr 3.1.3</td> |
| <td><a |
| href="https://github.com/antlr/antlr4/blob/master/LICENSE.txt">BSD |
| License, </a></td> |
| </tr> |
| <tr> |
| <td>commons-daemon 1.0.10</td> |
| <td>Apache License, Version 2.0</td> |
| </tr> |
| <tr> |
| <td>commons-dbcp 1.4</td> |
| <td>Apache License, Version 2.0</td> |
| </tr> |
| <tr> |
| <td>commons-io 2.3</td> |
| <td>Apache License, Version 2.0</td> |
| </tr> |
| <tr> |
| <td>commons-pool 1.6</td> |
| <td>Apache License, Version 2.0</td> |
| </tr> |
| <tr> |
| <td>javax.transaction 1.1.1</td> |
| <td>Apache License, Version 2.0</td> |
| </tr> |
| <tr> |
| <td>commons-beanutils 1.8.0</td> |
| <td>Apache License, Version 2.0</td> |
| </tr> |
| <tr> |
| <td>commons-collections 3.2.0</td> |
| <td>Apache License, Version 2.0</td> |
| </tr> |
| <tr> |
| <td>commons-lang 2.6.0</td> |
| <td>Apache License, Version 2.0</td> |
| </tr> |
| <tr> |
| <td>tomcat-apr 5.5.23</td> |
| <td>Apache License, Version 2.0</td> |
| </tr> |
| <tr> |
| <td>Apache Xerces 2.9.0</td> |
| <td>Apache License, Version 2.0</td> |
| </tr> |
| |
| <tr> |
| <td>J-Interop</td> |
| <td>LGPLv3</td> |
| <td>Need to check dependencies</td> |
| </tr> |
| <tr> |
| <td>JCIFS 1.2.25</td> |
| <td><a href="http://www.gnu.org/licenses/lgpl-2.1.txt">LGPLv2.1</a> |
| </td> |
| <td>Required for j-interop</td> |
| </tr> |
| <tr> |
| <td>GNU Crypto</td> |
| <td>GPLv2+</td> |
| <td>Required for j-interop, could be replaced with bouncycastle</td> |
| </tr> |
| <tr> |
| <td>jarapac</td> |
| <td>LGPLv3</td> |
| <td>Required for j-interop</td> |
| </tr> |
| <tr> |
| <td>JTDS JDBC Driver</td> |
| <td>LGPLv2.1</td> |
| <td>Required for j-interop</td> |
| </tr> |
| |
| <tr> |
| <td>iWombat</td> |
| <td><a href="http://www.iwombat.com/java/license.html">iWombat |
| License</a></td> |
| <td>Required for j-interop, Could be replaced by own |
| implementation, check with Hudson</td> |
| </tr> |
| <tr> |
| <td>Apache XML Beans</td> |
| <td>-</td> |
| <td>Will be removed before contributing</td> |
| </tr> |
| |
| <tr> |
| <td>Apache ODFDOM</td> |
| <td>Apache License, Version 2.0</td> |
| </tr> |
| <tr> |
| <td>Apache POI</td> |
| <td>Apache License, Version 2.0</td> |
| </tr> |
| |
| </tbody> |
| </table> |
| |
| <h2>Legal Issues</h2> |
| |
| <!-- |
| Please describe any potential legal issues in this section. Does somebody else |
| own the trademark to the project name? Is there some issue that prevents you |
| from licensing the project under the Eclipse Public License? Are parts of the |
| code available under some other license? Are there any LGPL/GPL bits that you |
| absolutely require? |
| --> |
| <p>The openSCADA project, which will be the source base for Eclipse |
| SCADA, is developed by the named contributors (see below). At the |
| moment the license is LGPLv3, but all contributors have agreed to |
| change the license to the EPL license for contributing the project |
| openSCADA to the Eclipse Foundation.</p> |
| |
| <p>There however several external libraries which openSCADA |
| requires at the moment which are not EPL. In order to reduce issues |
| with the upcoming contribution to Eclipse, dependencies were removed |
| or replaced with versions from the Eclipse Orbit repository. The plan |
| is to complete this transition for all required libraries for the |
| openSCADA release 1.2, which is planned to be the initial version |
| contributed to Eclipse (also see below).</p> |
| |
| <p> |
| One special case remaining is the library <q>j-interop</q>. This |
| library and its dependencies are required for one important driver |
| (OPC driver) of the openSCADA System. Although the system can work |
| without this driver module, it is a very useful component. Also is |
| this library used by the Eclipse Project <q>Hudson</q> for the |
| DCOM/Windows Slave plugin. Possible solutions are: either to remove |
| the module from Eclipse SCADA and leave it with the openSCADA <q>contrib</q> |
| repository, or to import j-interop (if not already done) into the |
| Eclipse Foundation in some way. Since the author of the j-interop |
| library (Vikram Roopchand) and us worked together in the past and also |
| contributed to the library, it should be an interesting contribution |
| to Eclipse in any way. j-interop includes some code from other |
| libraries (iWombat and GNU Crypto) with incompatible licensing, but |
| this is easily resolvable with a custom implementation and the use of |
| bouncycastle (which is licensed under a variant of the MIT X11 |
| License, <a href="http://www.bouncycastle.org/licence.html">http://www.bouncycastle.org/licence.html</a>). |
| </p> |
| |
| <h2>Committers</h2> |
| |
| <!-- |
| List any initial committers that should be provisioned along with the |
| new project. Include affiliation, but do not include email addresses at |
| this point. |
| --> |
| |
| <p>The following individuals are proposed as initial committers to |
| the project:</p> |
| |
| <dl> |
| <dt>Jens Reimann, ibh SYSTEMS GmbH (Project lead)</dt> |
| <dd>Jens Reimann is a commiter on the openSCADA project where he |
| has made significant contributions over many years.</dd> |
| |
| <dt>Jürgen Rose, ibh SYSTEMS GmbH</dt> |
| <dd>Jürgen Rose is a commiter on the openSCADA project where he |
| has made significant contributions over many years.</dd> |
| |
| <!-- |
| <dt>Committer 1, Affiliation</dt> |
| <dd>Committer 1 is a committer on the *** project where he has made significant contributions over |
| many years. S/he will be contribute to the *** functionality in this new project.</dd> |
| <dt>Committer 2, Affiliation</dt> |
| <dd>Committer 2 has provided significant contributions to the existing code base. S/he will contribute |
| to the *** functionality in this new project. |
| </dd> |
| --> |
| </dl> |
| |
| <p>We welcome additional committers and contributions.</p> |
| |
| <h2>Mentors</h2> |
| |
| <!-- |
| New Eclipse projects require a minimum of two mentors from the Architecture |
| Council. You need to identify two mentors before the project is created. The |
| proposal can be posted before this section is filled in (it's a little easier |
| to find a mentor when the proposal itself is public). |
| --> |
| |
| <p>The following Architecture Council members will mentor this |
| project:</p> |
| |
| <ul> |
| <li>Achim Loerke</li> |
| <li>Martin Oberhuber</li> |
| </ul> |
| |
| <h2>Interested Parties</h2> |
| |
| <!-- |
| Provide a list of individuals, organisations, companies, and other Eclipse |
| projects that are interested in this project. This list will provide some |
| insight into who your project's community will ultimately include. Where |
| possible, include affiliations. Do not include email addresses. |
| --> |
| |
| <p>The following individuals, organisations, companies and projects |
| have expressed interest in this project:</p> |
| |
| <ul> |
| <li>OMV Solutions, User of openSCADA</li> |
| <li>E.ON CR, User of openSCADA</li> |
| <li>XION AT, Integrator</li> |
| <li>eTrice, Eclipse Project</li> |
| <li>ScadaBR, another open source SCADA which uses parts of |
| openSCADA</li> |
| <li>4DIAC, an open source framework from fortiss GmbH for |
| distributed industrial automation and control</li> |
| <li>Werner Keil, Eclipse UOMo Project lead</li> |
| <li>Holger Siegel, HST GmbH Technische Entwicklungen</li> |
| <!-- |
| <li>…</li> |
| <li>Somebody, Affiliation</li> |
| <li>Somebody else, Affiliation</li> |
| --> |
| </ul> |
| |
| <h2>Project Scheduling</h2> |
| |
| <!-- |
| Describe, in rough terms, what the basic scheduling of the project will |
| be. You might, for example, include an indication of when an initial contribution |
| should be expected, when your first build will be ready, etc. Exact |
| dates are not required. |
| --> |
| <p>The project will be started by contributing the openSCADA source |
| code to the Eclipse Foundation. At the moment openSCADA is released as |
| version 1.1 and the version 1.2 is planned withing the next view |
| months. The idea is to clean up some parts and dependencies from 1.1 |
| to 1.2 before contributing version 1.2 to the Eclipse Foundation.</p> |
| |
| <h2>Changes to this Document</h2> |
| |
| <!-- |
| List any changes that have occurred in the document here. |
| You only need to document changes that have occurred after the document |
| has been posted live for the community to view and comment. |
| --> |
| |
| <table> |
| <tr> |
| <th>Date</th> |
| <th>Change</th> |
| </tr> |
| <tr> |
| <td>28-May-2013</td> |
| <td>Document created</td> |
| </tr> |
| <!-- |
| <tr> |
| <td>DD-Month-YYYY</td> |
| <td>Document created</td> |
| </tr> |
| --> |
| </table> |
| </body> |
| </html> |