incubator-general mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Pierre Smits <pierre.sm...@gmail.com>
Subject Re: [VOTE] Accept PLC4X into the Apache Incubator
Date Fri, 15 Dec 2017 07:24:37 GMT
+1

Best regards

Pierre

On Fri, 15 Dec 2017 at 08:13 Luciano Resende <luckbr1975@gmail.com> wrote:

> +1
>
> On Thu, Dec 14, 2017 at 3:19 PM Justin Mclean <justin@classsoftware.com>
> wrote:
>
> > Hi All,
> >
> > I would like to start a VOTE to propose the PLC4X project as a podling
> > into the Apache incubator.
> >
> > The ASF voting rules are described:
> >
> > https://www.apache.org/foundation/voting.html <
> > https://www.apache.org/foundation/voting.html>
> >
> > A vote for accepting a new Apache Incubator podling is a majority vote
> for
> > which only Incubator PMC member votes are binding.
> >
> > This vote will run for at least 72 hours. Please VOTE as follows
> > [] +1 Accept PLC4X into the Apache Incubator
> > [] +0 Abstain.
> > [] -1 Do not accept PLC4X into the Apache Incubator because ...
> >
> > The proposal is listed below, but you can view it on the wiki:
> > https://wiki.apache.org/incubator/PLC4XProposal
> >
> > = PLC4XProposal =
> >
> > == Abstract ==
> >
> > PLC4X is intended to become a set of libraries for communicating with
> > industrial programmable logic controllers (PLCs) using a variety of
> > protocols
> > but with a shared API.
> >
> > For the most used of these protocols, PLC4X will provide implementations
> of
> > drivers. Each protocol driver is hereby provided by an individual
> artifact.
> >
> > In a first step, we are concentrating on Java but will be hoping to be
> > able to
> > port implementation to C and other languages.
> >
> > == Background ==
> >
> > Industrial machines have been controlled by PLCs for more than 30 years.
> In
> > simpler pieces of machinery these may operate autonomously, in more
> complex
> > ones several to hundreds of these industrial computers communicate with
> > each
> > other.
> >
> > == Rationale ==
> >
> > Currently software for communicating with PLCs is mainly proprietary
> > software
> > and a whole ecosystem of closed-source solutions exist. Usually this
> > software
> > is very expensive and licensing implies a lot of restrictions on its
> usage.
> > There is a small set of open-source libraries available, but
> unfortunately
> > most
> > of these are GPL licensed and hereby disqualify themselves from
> commercial
> > use.
> > Most of these are direct ports from C/C++ implementations and therefore
> > inherit
> > their API. Usually these are implemented blocking socket operations and
> > have
> > great problems with concurrency. Also, the APIs of these tools differ
> > quite a
> > lot, so porting a software from communicating with one type of PLC to
> > another
> > sometimes requires re-writing a great part of the software.
> >
> > There are multiple rationales behind this project:
> >
> >  1. By providing libraries with Apache license, it will be possible to
> > create
> > commercial applications which access PLCs
> >  2. By providing a universal API for different protocols, it reduces the
> > vendor
> > lock-in when creating software
> >  3. Most of the proprietary commercial solutions are based on Windows
> > systems,
> > especially the Siemens solutions, sometimes require maintaining
> un-patched
> > versions of older Windows version in order to run, this is a huge
> security
> > risk
> > (See Stuxnet)
> >  4. Most of the proprietary commercial solutions don't scale. Running
> them
> > in
> > public/private clouds and/or in containers is completely out of the
> > question.
> >
> > As a result of above, it would be possible to start writing secure,
> > scalable
> > and reliable software using the full stack of open-source solutions and
> > hereby
> > open a complete new market for developers. In order to make this even
> > easier,
> > we are planning on directly providing adapters and examples for using
> PLC4X
> > together with other Apache frameworks.
> >
> > == Initial Goals ==
> >
> > Develop a universal API for accessing industrial programmable logic
> > controllers
> > in a protocol-agnostic way. Also implement Java versions of drivers for
> the
> > most prominent protocols: S7, Modbus and OPC-UA - but not limited to
> > those. On
> > the side of the adapters, for existing OS solutions, we are currently
> > working
> > on adapters for: Apache Edgent (incubating), Apache Camel and eventually
> > even
> > Apache Brooklyn.
> >
> > Also, we will be providing a Scala wrapper to ease integration of PLC4X
> in
> > Scala based systems with an API Scala developers should easily adopt.
> >
> > As soon as a C version exists, we are planning on providing an Apache
> > Mynewt
> > adapter as we see great benefits on this combination.
> >
> > == Current Status ==
> >
> > === Meritocracy ===
> >
> > PLC4X was initially created by Christofer Dutz. He is an Apache Member
> and
> > also
> > involved in a variety of Apache and Non-Apache Open-Source projects.
> Being
> > PMC
> > of the Apache Flex, Apache Kibble and the Apache Travel Assistance he
> > definitely knows how Apache works and is a strong advocate of the Apache
> > Way.
> > He is also currently helping the Apache Edgent project as member of the
> > PPMC.
> > However, the team working on PLC4X also includes a diverse set of
> > additional
> > Apache Committers and Members as well as people, that are not yet
> > affiliated
> > with any Apache project. The team working on PLC4X are both working for
> > codecentric as well as other entities, such as commercial companies as
> > well as
> > universities.
> >
> > === Community ===
> >
> > Currently the PLC4X community exists out of a set of core developers
> > working on
> > a private code repository provided by codecentric (the company Christofer
> > Dutz
> > is working for). However, the set of developers, working on PLC4X is not
> > limited to codecentric employees as we are also inviting outside
> > contributors.
> >
> > The main reason for using a private repo instead of a public one, is that
> > we
> > were planning on starting incubation at Apache within a few weeks after
> > initiating the project. Therefore, we wanted to start writing everything
> > with
> > Apache package names and Apache Maven coordinates. Even our logo is
> > directly
> > designed including the Apache Feather and "Apache" inside the name. As
> only
> > real Apache projects are allowed to use "Apache", we decided to go down
> the
> > private repository path.
> >
> > === Core Developers ===
> >
> > (In alphabetical order)
> >
> >  * Benedikt Ritter (codecentric) (Apache Member)
> >  * Christofer Dutz (codecentric) (Apache Member)
> >  * Dale LaBossiere (IBM) (PPMC Member of the Apache Edgent incubator
> > podling)
> >  * Frank Stibane (codecentric)
> >  * Greg Trasuk (Web Age Solutions) (Apache Member)
> >  * Justin McLean (External) (Apache Member)
> >  * Kai Herings (codecentric)
> >  * Lukas Friedrichsen (Hochschule Bochum)
> >  * Mark Keinhörster (codecentric)
> >  * Rolf Felker (codecentric)
> >  * Sebastian Rühl (codecentric)
> >
> > === Alignment ===
> >
> > The build system is based on Apache Maven. Also, it uses Apache Edgent
> > (incubating) and Apache Camel libraries for providing adapters to these
> > systems. Being a full-blown Apache enthusiast, for Christofer there
> hasn't
> > been
> > any thought in bringing this project into any other collaboration
> platform
> > or
> > foundation. This idea is shared by a big majority of the core
> contributors.
> >
> > === Project Name ===
> >
> > As we know that renaming a codebase can be a huge pain, we have invested
> > quite
> > a lot of time into finding a suitable name. In the end, we came up with a
> > list
> > of about 20 project names, which we did the fully required background
> > checks
> > for. On the options surviving these checks, we internally voted on the
> > name. It
> > was a pretty close tie between PLC4J and PLC4X, but we decided to go for
> > the
> > later as we are planning on providing libraries for multiple languages
> > beyond
> > Java.
> >
> > PLC4X has no registered trademarks that we could find and the only
> > potential
> > problem would be a hardware LPT Breakout Board by a Russian Company
> called
> > Purelogic (https://purelogic.ru/doc/PDF/Controller/PLC4x.pdf) English
> > version
> > (http://www.zappautomation.co.uk/productattachments/index/download?id=99
> )
> > But we don't see any problems to arise from this. If there would be
> > problems,
> > we would probably fallback to using PLC4J, which had no conflicts at all
> > and
> > would eventually name our sub-products PLC4S (Scala) and PLC4C (C/C++).
> >
> > == Known Risks ==
> >
> > === Orphaned projects ===
> >
> > PLC4X is a new Project, which has just been started. The feedback from
> the
> > industry has been overwhelming so the risk of the project being orphaned
> is
> > minimal.
> >
> > === Inexperience with Open Source ===
> >
> > The set of core developers of this project consists of a large set of
> > experienced open-source developers, most of these even being Apache
> > Members.
> >
> > === Homogeneous Developers ===
> >
> > Even if a big part of the projects initial committer team is affiliated
> > with
> > codecentric, we have been successful and continuing to be in actively
> > recruiting people from other commercial and non-commercial entities.
> >
> > === Reliance on Salaried Developers ===
> >
> > Currently only Christofer Dutz is being paid to work on this project
> > exclusively.
> >
> > === Relationships with Other Apache Products ===
> >
> > PLC4X makes great used of Apache Maven for the build system and Apache
> > Commons
> > for providing a lot of basic functionality.
> >
> > Also does it currently have direct relations to the Apache Camel and
> Apache
> > Edgent projects as it provides modules for direct integration of PLC4X
> into
> > these frameworks.
> >
> > In the future we are planning on also adding such modules for Apache
> > Brooklyn
> > and as soon as a C-based version of PLC4X is available Apache Mynewt.
> >
> > Currently there is no competing project at the Apache Software
> Foundation.
> >
> > === An Excessive Fascination with the Apache Brand ===
> >
> > We are certain that PLC4X itself will profit from being an official
> Apache
> > project, in terms of attracting a community and establishing a solid
> group
> > of
> > developers and users, but also to ease the interaction with other Apache
> > projects, used in PLC4X or project PLC4X provides adapters for as all
> will
> > share the same base.
> >
> > Our general belief in the Apache way as well as the reasons mentioned
> > above are
> > the main reasons for us to send this proposal. We think that a good
> > community
> > is needed to build and maintain good software, such as PLC4X. Also do we
> > need a
> > big community to support a big variety of systems. However, even if PLC4X
> > would
> > not be accepted, development would definitely continue elsewhere. Apache
> is
> > just our primary foundation of choice. As such, there is no need to, or
> > reason
> > to, "abuse" the Apache Brand.
> >
> > === Possibility of legal actions ===
> >
> > Some of the protocols are not publicly defined. Existing open-source
> > implementations contain licensing restrictions. To avoid licensing issues
> > we
> > made sure the license of information used to implement drivers in PLC4X
> are
> > compatible with the Apache license and added references to these sources
> > in the
> > project documentation to prove this. This documentation is part of the
> > codebase. We are therefore not expecting any real problems on this side.
> >
> > === Test setup could require hardware ===
> >
> > A test-suite for PLC4X could involve tests run against virtual or real
> > hardware. It could be problematic to include these in automated builds
> run
> > on
> > build.apache.org, but Apache infra have already signaled that there
> > should be
> > options to work this out.
> >
> > == Documentation ==
> >
> > Currently all documentation and information is stored alongside the code
> > in a
> > private corporate GIT repository and is available as part of the website
> > which
> > is generated as part of the build.
> >
> > == Initial Source ==
> >
> > Development of PLC4X started at codecentric in October of 2017. The
> source
> > currently is located on a private corporate GIT repository. All the code
> is
> > available at https://gitlab.codecentric.de/iot/plc4x (Accounts can be
> > created
> > on a request basis)
> >
> > == Source and Intellectual Property Submission Plan ==
> >
> > PLC4X is currently mainly developed by, but not limited to, codecentric
> > employees. However, all code has been developed completely from scratch
> it
> > was
> > ensured from the start that each document is already fully licensed under
> > the
> > Apache 2.0 license. All source will be donated to Apache without any
> > exceptions.
> >
> > == External Dependencies ==
> >
> >  * Apache Commons-IO, Apache License 2.0
> >  * Apache Edgent, Apache License 2.0
> >  * Netty, Apache License 2.0
> >  * Metrics Core, Apache License 2.0
> >  * Google Gson, Apache License 2.0
> >
> > These sources can be included, according to
> > http://www.apache.org/legal/resolved.html
> >
> >  * Logback, EPL 1.0
> >
> > This source can NOT be included, according to
> > http://www.apache.org/legal/resolved.html
> >
> > == Cryptography ==
> >
> > Not applicable.
> >
> > == Required Resources ==
> >
> > === Mailing Lists ===
> >
> >  * plc4x-dev
> >  * plc4x-private
> >
> > === Git Repository ===
> >
> > https://gitbox.apache.org/repos/asf/incubator-plc4x.git
> >
> > === Issue Tracking ===
> >
> > JIRA PLC4X
> >
> > === Confluence Wiki ===
> >
> > To be able to provide help, documentation, faq etc, a wiki is needed.
> >
> > == Initial Committers ==
> >
> > (In alphabetical order)
> >
> >  * Benedikt Ritter (britter@apache.org)
> >  * Christofer Dutz (cdutz@apache.org)
> >  * Dale LaBossiere (dlaboss@apache.org)
> >  * Frank Stibane (frank.stibane@codecentric.de)
> >  * Greg Trasuk (gtrasuk@apache.org)
> >  * Justin McLean (jmclean@apache.org)
> >  * Kai Herings (kai.herings@codecentric.de)
> >  * Lukas Friedrichsen (friedrichsen.luk@googlemail.com)
> >  * Mark Keinhörster (mark.keinhoerster@codecentric.de)
> >  * Rolf Felker (rolf.felker@codecentric.de)
> >  * Sebastian Rühl (sebastian.ruehl@codecentric.de)
> >
> > == Affiliations ==
> >
> > Currently most of the initial committers are employees of codecentric.
> > Currently Christofer Dutz is the only contributor paid to work on PLC4X
> > full-time. The others participate as part of their so-called "+1 time"
> (At
> > codecentric employees get to spend 20% of their time to work on
> > open-source,
> > education, etc. and they invest a lot of this time on the project).
> >
> > Besides these we also have contributors from companies other than
> > codecentric
> > (Dale, Greg, Justin) as well as universities (Lukas).
> >
> > == Sponsors ==
> >
> > === Champion ===
> >
> >  * Justin McLean
> >
> > === Nominated Mentors ===
> >
> > (In alphabetical order)
> >
> >  * Greg Trasuk
> >  * Justin McLean
> >  * Luciano Resende
> >  * Stefan Bodewig
> >
> > === Sponsoring Entity ===
> >
> > PLC4X is a new project and proposed is to release to code under the
> > sponsorship
> > of the Incubator.
> >
> > Thanks,
> > Justin Mclean
>
> --
> Sent from my Mobile device
>
-- 
Pierre Smits

ORRTIZ.COM <http://www.orrtiz.com>
OFBiz based solutions & services

OEM - The OFBiz Extensions Marketplace1
http://oem.ofbizci.net/oci-2/
1 not affiliated to (and not endorsed by) the OFBiz project

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message