Interview mit Jamie Ayre, AdaCore

'Mehr Augen sehen mehr Fehler': Open Source und Sicherheit im IoT

Redaktion JAXenter
© Nürnberg Messe/Frank Boxler

Auf der embedded world 2014 trafen wir Jamie Ayre von AdaCore, einem Unternehmen, das sich auf die Entwicklung der Open-Source-Programmiersprache Ada und des Software-Toolsets GNAT Pro spezialisiert hat. Ayre ist überzeugt, dass die Open-Source-Kultur dem Internet der Dinge guttut – besonders, wenn es um das Thema Sicherheit geht. 

JAXenter: Wann und wie ist AdaCore entstanden?

Jamie Ayre: AdaCore entstand vor etwa 20 Jahren, genauer gesagt im September 1994. Das Unternehmen ging aus einem Uni-Projekt hervor, das sich mit der Programmierung eines Toolsets für die Programmiersprache Ada 95 beschäftigte. Das Projekt selbst wurde vom Verteidigungsministerium der USA gesponsert, das festlegte, dass das Toolset so frei wie nur möglich und für alle zugänglich sein sollte. Dabei wurde jedoch nicht vereinbart, ob das Toolset als Open Source oder Free Software öffentlich zugänglich gemacht sein sollte. Wir kamen daraufhin auf die Idee einer Vertriebslizenz, wodurch Interessierte auf die Technologie zugreifen und sie herunterladen konnten und im Grunde tun und lassen konnten, was sie wollten, ohne dafür zu zahlen. Seit Beginn unserer Firma hatten wir stets eine öffentliche Version. Zum professionellen Toolset, das nächtlich ein Testverfahren durchläuft, gibt es einen Support sowie gewisse Lizenzierungsarten. Im Grunde aber ist die Version des Programms auch die, die von unseren Industrieentwicklern, den Ada-Entwicklern, genutzt wird.

Jamie Ayre, AdaCoreJamie Ayre ist Marketing-Chef bei AdaCore. Er ist ein leidenschaftlicher Verfechter des FLOSS-Community-Modells, von dessen positivem Einfluss auf Geschäftspraktiken und das Verhältnis zum Kunden er überzeugt ist. Ayre ist engagiert sich beruflich und privat in mehreren Communities und Vereinen. Seit seinem Abschluss in International Business war er für verschiedene Unternehmen in Großbritannien und Frankreich tätig. (Bild: AdaCore)

JAXenter: Was ist der Ursprung von Ada? Im Vergleich zu Java, C++ usw. ist es eine sehr alte Sprache, nicht wahr?

Ayre: In den 1970er Jahren begutachtete das Verteidigungsministerium sein vorliegendes System und entdeckte dabei, dass es in etwa 200 Programmiersprachen oder Teilsprachen umfasste – ein wartungstechnischer Albtraum. Das Ministerium beschloss daraufhin, eine Programmiersprache zu suchen, die sämtliche anstehende Anforderungen erfüllen könne. Es wurde ein Wettbewerb veranstaltet und dabei drei Vorschläge eingereicht. Gewonnen hat letztlich Jean Ichbiah, ein Franzose, der bedauerlicherweise vor wenigen Jahren gestorben ist. Er hatte die Idee zu Ada. Zu der Zeit gab es keinen wirklichen Compiler-Markt. Es gab zwei, drei Firmen, die sich den Markt untereinander aufteilten. Das Verteidigungsministerium wandte sich an einen Professor der NYU und übertrug ihm die Aufgabe. Sie sagten ihm, er solle einen Compiler entwickeln, der für so viele Menschen wie nur möglich zugänglich sein soll. Jeder solle Ada nutzen können. Infolgedessen wurde der Compiler gebaut.

JAXenter: Was geschah dann?       

Ayre: Ada wurde zu einer ISO-standardisierten Sprache. Seitdem wird alle fünf bis zehn Jahre eine neue Version veröffentlicht. Ada ist jedoch keine einfach zu erlernende Sprache, denn sie wirft Fehler im Programm schon vor der Compile-Zeit auf. In der professionellen Softwareentwicklung ist das natürlich von Vorteil, denn gerade die Bugs und Probleme will man herausfinden. Entdeckt man sie zu spät, kann die Behebung ganz schön kostenintensiv werden.  
Von Anfang an war Ada eine Sprache, die sich besonders für Systeme eignete, wo ein gewisses Maß an Zuverlässigkeit zwingend notwendig ist, beispielsweise unternehmenskritische oder  sicherheitskritische Systeme. Deshalb finden Sie Ada oftmals in Flugzeugen oder Straßenbahnen. Ada ist auch sehr gut lesbar. Betrachtet man Code, der vor 15 oder 20 Jahren geschrieben wurde, erkennt man trotz des Alters, was der Entwickler damit erreichen wollte.

Internet of Things ConferenceHappy IoT Day! Vom 1.-3. September findet in Berlin erstmalig die Internet of Things Conference statt. Im dreitägigen Programm dreht sich alles um eingebettete Software-Entwicklung, M2M-Kommunikation und das Internet der Dinge. Noch bis 22. April können unter http://iotcon.de/2014/cfp Konferenz-Talks eingereicht werden.

JAXenter: Wie groß ist die Ada-Community?

Ayre: Schwierige Frage. AdaCore hat derzeit über 450 aktive Kundenkonten. Es gibt eine Ada-Programmierer-Gruppe auf LinkedIn, die fast 2000 Mitglieder umfasst. Aber klar, Ada ist eine Nischensprache und nicht zu vergleichen mit C oder Java. 

JAXenter: Wie sehr hat Ada vom Open-Source Modell profitiert?

Ayre: Aus dem Blickwinkel einer Free Software betrachtet ist es ziemlich interessant zu sehen, wie Ada im Laufe der Zeit als Open-Source-Geschäftsmodell gewachsen ist. Die Tatsache, dass unsere Technologie zum Download bereitsteht und Menschen sie testen, damit experimentieren, sie teilen, verbessern – die üblichen Eigenschaften einer Open-Source Software – führte zu gewaltigen Ersparnissen im Marketing-Bereich. Um ehrlich zu sein wäre Ada ohne ihren Status als Open-Source-Software niemals so populär geworden, wie es sie heute ist.

Wir sind seit langer Zeit Teil der GCC-Community, und wenn wir einmal pro Jahr eine neue Version veröffentlichen, dann teilen wir sämtliche Quellcodes, die wir entwickelt haben, mit der Community. Alle Technologien, die wir entwickeln, geben wir auf diesem Wege der Community zurück. Natürlich haben wir enorm von der GCC-Community profitiert, denn dort finden sich zahlreiche Features, die für andere Sprach-Compiler gebaut wurden und die wir auch für Ada verwenden können. Es ist eine wirklich stabile Art von Technologie, die wir für unsere industriellen Zwecke nutzen können.   

JAXenter: Was ist mit Modularität? Gibt es die in Ada?

Ayre: Ja. Es gibt aber auch zahlreiche andere Eigenschaften und einige sehr interessante Features wie beispielsweise Contract-basierte Programmierung, die mit Ada 2012 eingeführt wurden. 

JAXenter: Wie groß ist AdaCore heute? 

Ayre: Weltweit sind wir etwa 80 Mitarbeiter mit einem Umsatz von 15 bis 20 Millionen Dollar jährlich. Wir sind eines der ältesten europäischen Unternehmen, das von Anfang an ein Free-Software-Geschäftsmodell verfolgt hat. Ich bin mir nicht sicher, ob es noch weitere Unternehmen gibt, die eine ähnliche Historie aufweisen können.  

JAXenter: War das von Anfang an so geplant? Oder hat sich alles ganz natürlich entwickelt?

Ayre: Ich glaube, wir hatten ziemliches Glück, dass die Gründer der Firma, die im übrigen immer noch mit dem Unternehmen verbunden sind, lange und intensiv darüber nachgedacht haben, was der beste Weg ist, um die Anforderungen des Verteidigungsministeriums, eine möglichst offene Technologie zu entwickeln, zu erfüllen. Mit der gleichen Intensität haben sie sich zudem damit auseinandergesetzt, wie dieses Geschäftsmodell profitabel sein kann. In der Tat ist es sehr positiv für die Community, denn das, was wir verkaufen, ist eine Jahresmitgliedschaft. Unsere Kunden können also jederzeit kündigen. Unsere Technologie ist GPL-lizenziert. Es gibt somit keine Blockaden oder Begrenzungen im Umgang mit ihr. Man könnte also als Kunde sagen: „Ich kündige meine Mitgliedschaft, benutze aber weiterhin die Technologie, und ihr bekommt keinen Cent dafür“. Von daher müssen wir sehr innovativ sein, wenn wir betriebswirtschaftlich agieren möchten.

Deshalb bieten wir einen starken Support an. Unsere Kunden entwickeln zumeist Programme, die langlebig sein müssen, so wie in den Bereichen, in denen Ada in der Regel verwendet wird: Militär-, Luft- und Raumfahrt- oder Satellitensysteme. Systeme, die sowohl zuverlässig als auch langfristig funktionieren sollen. Mit unserem Support bieten wir unseren Kunden somit eine gewisse Sicherheit. Wenn etwas schief geht, können sie sich jederzeit an AdaCore wenden und um Hilfe bitten, die wir ihnen auf jeden Fall bereitstellen.

„Einer unserer größten Konkurrenten ist unsere eigene öffentliche Version.“

So sind wir quasi dazu gezwungen, innovativ zu sein. Wir können uns nicht einfach zurücklehnen und sagen: „Okay, hier ist die Technologie, wir verbringen die nächsten erstmal Jahre mit Nichtstun.“ Wir wissen sehr genau, dass es zum einen kein allzu großer Anreiz für den Kunden ist, allein wegen der Updates weiterhin Mitglied zu bleiben. Dadurch, dass jeder auf den Quellcode zurückgreifen kann und jedes Feature, das nicht in der AdaCore-Technologie vorhanden ist, so mit einbauen kann, sind wir dazu angehalten, jährlich große Features einzubauen und den Kunden dadurch zu überzeugen, auch weiterhin uns treu zu bleiben.   

JAXenter: Gibt es ernsthafte Konkurrenz für Sie im Ada-Markt?

Ayre: Ich würde sagen, einer unserer größten Konkurrenten ist unsere eigene öffentliche Version [lacht]. In der Branche gibt es wohl drei oder vier Firmen, die Lösungen für Ada-Problematiken anbieten. Unsere größten Konkurrenten sind wohl eher andere Programmiersprachen wie C, C++ und andere.

[ header = Open Source und IoT-Sicherheit ]

JAXenter: Es überrascht mich, dass ich bislang noch nie auf Ada gestoßen bin. Es wird viel über C, C++, Java usw. geredet, aber nicht über Ada.

Ayre: Nein, vor allem auf dieser Konferenz [der embedded world, Anm. d. Red.] sind die meisten eher C- oder C++-affin. Wir beobachten aber, dass mehr und mehr Kunden aus nicht-traditionellen Sektoren kommen. Das ist für AdaCore äußerst interessant ist, da wir versuchen, die Sprache bekannter zu machen. Software wird für viele Embedded-Systeme heutzutage immer wichtiger.

JAXenter: Sie nimmt die Welt ein, wie man so schön sagt…

Ayre: …und das ist das Internet der Dinge. Aber Software wird nicht nur immer bedeutsamer – sie muss auch funktionieren. Wenn früher dein Handy runtergefallen ist, hast es aufgehoben, kurz den Akku gesäubert, und es ging wieder. Wenn du aber das Handy dazu nutzt, deine Konten zu regeln, einen Krankenwagen zu rufen oder jemanden damit durch die Umgebung zu navigieren, dann muss die Software, die das abwickelt, jederzeit funktionieren.

Vor einigen Jahren traf ich hier einen Mann, der darauf spezialisiert war, Anwendungen für eine Molkerei zu bauen. Er sagte zu mir: Wenn unser System ausfällt, kann es sein, dass eine der Flaschen umkippt. Wenn das passiert und dabei Milch verschüttet wird, müssen Teile der Anlage für eine Woche stillgelegt und gereinigt zu werden. So ein Spaß kann eine Million Euro kosten.
Immer mehr Unternehmen investieren in industrielle Automatisierung. Unsere Kunden sind auf diese Zuverlässigkeit angewiesen. Einer unserer langjährigen Kunden hat einen großes Echtzeit-Trading-System. Wenn das ausfällt, stirbt niemand, aber man verliert riesige Mengen an Geld.

Software wird nicht nur immer bedeutsamer – sie muss auch funktionieren.

JAXenter: Wie sieht es mit Adas Interoperabilität mit anderen Sprachen aus?

Ayre: Wir wissen sehr wohl, dass in einer Vielzahl von Systemen, in denen Ada verwendet wird, ein großer Teil nicht in Ada implementiert ist, sondern nur die sicherheitskritischen Teile davon. Ein konkretes Beispiel: Wenn auf einem Flug nach New York der Bildschirm an Ihrem Platz einfriert, dann wahrscheinlich deshalb, weil sich dahinter Java verbirgt 😉

JAXenter: Schon klar 😉

Ayre: Was ich damit sagen will: Ada funktioniert sehr gut in mehrsprachigen Umgebungen. Wir wissen, dass es bestimmte Teile gibt, die weniger sicherheitskritisch sind. Die benötigen nicht das gleiche Niveau an Zuverlässigkeit, die Ada bietet und können in anderen Sprachen geschrieben werden. Wir haben übrigens ein Schnittstellen-Tool für Ada und Java.

JAXenter: Prima. Was sind momentan die größten Herausforderungen für das Internet der Dinge?

Ayre: Ich denke, eine der größten Herausforderungen ist die Sicherheit. Viele Systeme, die sich anschicken, Teil des Internets der Dinge zu werden, lassen zu wünschen übrig, was Zuverlässigkeit und Sicherheit angeht. Das ist meine größte Angst. In vielen Branchen kann die Software unglaubliche Dinge zu tun. Aber wenn wir einmal ernsthaft darüber nachdenken, wollen wir das alles wirklich? Und wie will man sich sicher sein, dass die Software auch genau das tun, was sie verspricht? Ein Beispiel ist die Drohnen-Industrie. Wir können die Vorteile sehen, und damit meine ich nicht die militärischen, sondern die Amazon-Drohne usw. Sie können viel Gutes bewirken. Aber das Problem ist, dass diese Systeme im öffentlichen Luftraum fliegen. Das bedeutet zum einen, dass sie abstürzen und Menschen erschlagen können. Zum anderen können sie auch mit anderen Objekten in diesen öffentlichen Lufträumen kollidieren. Wenn die Software nicht verlässlich oder zumindest von einer gewissen Qualität ist, kann das ziemlich beängstigend sein.

JAXenter: Ist das ein Problem, das durch Standards oder Zertifikate lösen lässt oder muss jeder Hersteller seine eigenen Antworten darauf finden?

Ayre: Ich kann diese Frage nicht beantworten. Nur soviel: In einigen der Branchen, in denen Standards bzw. eine Zertifizierung erforderlich sind, gibt es ziemlich sichere Software. Wenn man sich die Luftfahrtindustrie anschaut, ich glaube darin gibt es bis heute keinen einzigen Todesfall infolge eines Softwarefehlers. Um Missverständnissen vorzubeugen: Softwarefehler gab und gibt es, aber keine tödlichen, und das ist zu einem großen Teil den sehr strengen DO-178C-Softwarerichtlinien für die zivile Luftfahrtindustrie zu verdanken.
Dass in der Bahnindustrie eine Unmenge an Verifikationen erforderlich ist, ist kein Zufall. Diese Systeme müssen funktionieren, und die katastrophalen Auswirkungen eines Systemausfalls sind bekannt. Je mehr Fortschritte wir erzielen, desto mehr Verantwortung wird von Einzelpersonen an das System übertragen. Die Automobilindustrie verbreitet diese fantastische Werbung für selbstparkende Autos. Wenn ich das sehe, denke ich sofort: Was passiert nur, wenn ein kleines Kind vor ein Auto läuft? Wurde das System für diesen Fall hinreichend getestet? Ich will es hoffen, aber gibt es eine Zertifizierung, die nachweist, dass die Software bis zu einem bestimmten Grad getestet wurde und das tun wird, was sie tun soll?

JAXenter: Ist das Open Source-Modell mit solchen Sicherheitsanforderungen vereinbar?

Ayre: Wir sind an einer Reihe von zertifizierten Projekten beteiligt und verfolgen die Entwicklung der Open-Source-Community mit. Als Unternehmen sind wir der Meinung, dass für bestimmte Software-Projekte die Open Source-Community sehr stark in Betracht gezogen werden sollte, wenn nicht sogar vorgeschrieben. Aus Gründen. Wir beteiligen uns an Forschungsprojekten von Hauptpartnern in der zivilen Luftfahrtindustrie. Dort profitiert man von der gemeinsamen Erstellung bestimmter Tools. Die Beteiligten arbeiten an einem Forschungsprojekt einer Community mit, die Open-Source- Lösungen erarbeitet. Natürlich machen auch Wettbewerber mit, und kleinere Unternehmen wie AdaCore. Aber letztendlich zählt das gemeinsam Erarbeitete, von dem jedes Community-Mitglied profitiert. Man hat ja gesehen, was die GCC für viele Unternehmen bedeutet, und ehrlich gesagt glaube ich, dass so etwas vielen, die um den Aufbau sicherer Systeme bemüht sind, zugute kommen wird.
Um Sicherheits-Zertifizierung zu erhalten, müssen Sie oft einen Teil der Software herausgreifen und anhand dieses Beispiels garantieren, dass die Software das tut, was sie tun soll. Dass man entsprechende Tests durchgeführt hat.

Und was passiert zwei Jahre später, wenn Sie Ihre Plattform, Ihre Prozesse ändern wollen? Ist es mit Open-Source-Komponenten nicht einfacher, neue Hardware zu integrieren und dabei die Zertifizierung des Gesamtsystems zu bewahren? Wir sind der Ansicht, dass das der Fall ist. Bei uns wird das der „Big Freeze“ genannt.

Mehr Augen sehen mehr Fehler.

Das zweite Problem ist die Sicherheit („safety“, Anm. d. Red.). Mehr Augen sehen mehr Fehler. Es gibt immer wieder Fälle, in denen der Quellcode des Systems zur Verfügung gestellt wird und eine Vielzahl von Beteiligten auf diese Weise Sicherheitslücken aufdecken kann. Ein gutes Beispiel ist der Wahlskandal in Florida: Niemand weiß, was passiert ist, weil die Software proprietär war. Also konnte niemand vor unberechtigten Zugriffen auf die Software warnen. So langsam verbreitet sich [ein Open-Source-Modell] unter Industriekunden, das für sie wirtschaftlich tragbar ist, weil es ihnen die Möglichkeit gibt, sich auf ihr Kerngeschäft zu konzentrieren.

Das Interview wurde zuerst auf JAXenter.com veröffentlicht. Aus dem Englischen von Mohammed Hübsch und Diana Kupfer.

Aufmacherbild: Embedded World 2014/Urheberrecht: Nürnberg Messe/Frank Boxler

 

Geschrieben von
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: