24.07.2013, 09:03 Uhr
Neue Software braucht die Schweiz
Trends wie Cloud, Mobility, Big Data und In-Memory durchdringen den Markt. Das bleibt nicht ohne Folgen. Die Software der Zukunft wird sich von heutigen Programmen grundlegend unterscheiden.
Den Schweizer Software-Entwicklern geht es gut. Ihr Umsatz wuchs im zweiten Halbjahr 2012 um durchschnittlich 9 Prozent. Die Mehrheit der Schweizer Programmierer arbeitet auf grund-solidem Terrain: 46 Prozent produzieren CRM-Software, 38 Prozent entwickeln im ERP-Software-Umfeld und etwa 30 Prozent programmieren Business-Intelligence- und Data-Warehouse-Lösungen (SSII: Swiss Software Industry Index 2013/1). Mit diesem Fokus wird ihnen auch in Zukunft die geldwerte Arbeit nicht ausgehen. Trotzdem beginnt sich der Schweizer Software-Markt zu verändern. Trends wie Cloud, Mobility, Big Data und In-Memory halten Einzug in Schweizer Unternehmen. Sie werden in den kommenden Jahren die Produktion von und das Geschäft mit Software nachhaltig verändern. Beispiel Mobility: Knapp die Hälfte der Schweizer Software-Entwickler hat bis Ende 2012 zumindest für ein Betriebssystem – bevorzugt Apple iOS – eine mobile App entwickelt und zwei Drittel wollen das bis Ende 2015 tun (vgl. SSII). Jeder zweite App-Entwickler betreibt sein Geschäft jedoch zurzeit noch unrentabel, zahlt also drauf. Erst jeder Fünfte verdient schon gutes Geld damit.
Software-Trend: Mobile Apps
App-Entwicklung ist heute noch ein hartes Brot. Stephan Wiesner, Head of Testing bei SwissQ Consulting, sieht die Branche jedoch im Aufwind. «Sicher, die Projekte im CRM- und ERP-Umfeld sind umfangreicher und daher für grosse Firmen wie Capgemini, Netcetera oder Zühlke attraktiver», sagt Wiesner. Aber auch mit App-Entwicklung könne man heute schon profitabel wirtschaften. Viele sehr kleine Schweizer Firmen sind auf diesem Markt unterwegs. «Ich kenne ein paar Zahlen und habe eine Vorstellung davon, was zum Beispiel die Apps der Migros oder der PostFinance gekostet haben», deutet Wiesner an. Zwar kaufe niemand einen Liter Milch mehr ein und wechsle auch nicht die Bank, nur weil er eine App des Unternehmens auf seinem Smartphone installiert habe. Apps seien inzwischen jedoch ein Hygienefaktor, der wichtig fürs Image sei, obwohl kein direkter Profit damit generiert werde. Die Entwicklung mobiler Applikationen unterscheidet sich in einigen wesentlichen Punkten von der klassischer Desktop-Anwendungen. Performance etwa wird von mobilen Anwendern viel kritischer beurteilt: Knapp 60 Prozent sind nicht bereit, länger als zwei Sekunden nach Touch-Klick auf den Start ihrer App zu warten, wie eine weltweite Studie mit 3534 Teilnehmern ergab (vgl. Mobile Apps: What Consumers really need and want). Das spricht gegen den Einsatz von Cross-Plattform-Entwicklungsumgebungen wie PhoneGap und für native Apps in Objective-C (Apple) oder Java (Android). Die zunehmende Marktdurchdringung von Mehrkernprozessoren auf Mobilgeräten wird das Performance-Problem jedoch entschärfen. Schmerzlicher als hohe Latenzzeiten stört jedoch, dass kleinere App-Entwicklerfirmen anscheinend das Software-Testing und die Qualitätskontrolle vernachlässigen. Immerhin 62 Prozent der App-Anwender hatte laut der selben Studie bereits mit Fehlermeldungen oder einem Totalausfall bzw. Crash zu kämpfen. Demgegenüber kritisierten «nur» 47 Prozent zu lange Wartezeiten. App-Entwicklung muss professioneller werden, lautet die Schlussfolgerung daraus. Viele Entwickler stecken hier – wohl auch aus Geld- und Personalmangel – noch in der Amateurphase. Im Gegensatz dazu ist der Cloud-Computing-Markt mittlerweile gereift. Mit Business-Applikationen für die Cloud werden sich Schweizer Software-Akrobaten in Zukunft also verstärkt auseinandersetzen müssen, denn ihr Kerngeschäft wandert in die Wolke. «Business-Applikationen wie CRM, ERP und BI sind weiterhin stark gefragt, diese Themen sind bei unseren Kunden besonders präsent», berichtet Nicolas Durville, CIO und Executive Director Software Engineering bei Zühlke. Zwar sei die Nachfrage abhängig von der Branche, in der sich der Kunde bewegt. Zurzeit boomt Versicherungs-IT. Generell aber beobachtet Durville eine starke Verschiebung von Business-Applikationen wie CRM, ERP und BI in Richtung Cloud. Lesen Sie auf der nächsten Seite: Software-Trend: Cloud-PaaS
Software-Trend: Cloud-PaaS
Für Software-Entwickler heisst das: Sie müssen sich für ein Cloud-Programmiermodell entscheiden. Der Kampf um die Köpfe ist entbrannt. Zwar wird mit Infrastructure as a Service (IaaS) und Software as a Service (SaaS) in der Cloud zurzeit das Geld verdient. Analystenhäuser wie Forrester messen jedoch den Platform-as-a-Service-Angeboten (PaaS), also den Programmierer-Frameworks, langfristig eine höhere strategische Bedeutung zu. Mit PaaS lassen sich SaaS-Lösungen erweitern, anpassen, oder neue, stark individualisierte Branchen-Software programmieren. Die grossen Cloud-Provider haben deshalb ihre fertig konfektionierte Cloud-Standard-Software durch PaaS-Angebote ergänzt: etwa Google mit seiner App Engine, Microsoft mit Windows Azure, Salesforce mit Force.com und Oracle mit Java. Um die Lösungen herum entstehen Ökosysteme, deren Grösse und Attraktivität langfristig über Erfolg oder Misserfolg in der Cloud entscheidet.
«Im Moment gibt es in der Programmierer-Cloud zwei Schulen», betont Donald Kossmann, Informatikprofessor an der ETH Zürich. Die erste, prominent von Microsoft vertretene Schule geht von der Annahme aus, dass Überlegungen zur Programmiersprache vollkommen unabhängig von Überlegungen zum Deployment in der Cloud erfolgen sollten. «Deswegen legt Microsoft so unendlich viel Wert darauf, dass Software, die zum Beispiel mit den Microsoft-Programmierer-Frameworks Visual Studio oder .Net entwickelt wird, genauso gut auf eigenen Inhouse-Rechnern wie in der Cloud läuft», erklärt Kossmann.
Die zweite, unter anderem von Google vertretene Schule vertritt die Ansicht, dass man schon einige Anpassungen vornehmen und bestimmte Programmier-Patterns vermeiden sollte, damit die Software effizient in der Cloud läuft. «Aus diesem Grund unterstützt die Google App Engine auch nur einen Subset von Java und SQL», erläutert Kossmann. Bei Software-Neuentwicklungen sei ein solches Vorgehen in der Regel akzeptabel. Die Migration bestehender On-premise-Software jedoch gelinge unter diesen Vorzeichen nicht. Im Klartext: Microsoft-Software lässt sich in die Windows-Azure-Cloud migrieren. Die Google Cloud (App Engine) aber gleicht eher einer geschlossenen Gesellschaft mit Türsteher. Google hat diese in Konsequenz proprietäre Strategie sicher mit voller Absicht eingeführt.
Die zweite, unter anderem von Google vertretene Schule vertritt die Ansicht, dass man schon einige Anpassungen vornehmen und bestimmte Programmier-Patterns vermeiden sollte, damit die Software effizient in der Cloud läuft. «Aus diesem Grund unterstützt die Google App Engine auch nur einen Subset von Java und SQL», erläutert Kossmann. Bei Software-Neuentwicklungen sei ein solches Vorgehen in der Regel akzeptabel. Die Migration bestehender On-premise-Software jedoch gelinge unter diesen Vorzeichen nicht. Im Klartext: Microsoft-Software lässt sich in die Windows-Azure-Cloud migrieren. Die Google Cloud (App Engine) aber gleicht eher einer geschlossenen Gesellschaft mit Türsteher. Google hat diese in Konsequenz proprietäre Strategie sicher mit voller Absicht eingeführt.
Software-Trend: Big Data
Big Data, der nächste grosse Hype, hat eine ganze Reihe neuer Produkte auf den Markt gespült. «In den nächsten Jahren werden sich alle grösseren Unternehmen, aber auch kleinere Firmen mit datenintensiven Geschäftsmodellen, mit Big Data befassen», ist Thomas Schräer, Geschäftsführer von Saracus Consulting, überzeugt. Eine besondere Herausforderung sei die Festlegung eines sinnvollen Business Cases, um erste Erfahrungen zu sammeln. Schweizer Unternehmen stehen dabei prinzipiell zwei Wege offen: Der erste sichere, aber auch kostenintensivere Weg führt über einen der etablierten Anbieter wie IBM, Teradata, Oracle oder SAP. Die zweite risikoreichere, aber auch bedeutend kostengünstigere Variante heisst Open Source. Zurzeit entscheiden sich vor allem New-Media-Unternehmen, deren Geschäftsmodell zum Grossteil auf dem Internet basiert, und Forschungseinrichtungen für Open-Source-Lösungen. Beispielsweise haben Unternehmen wie AutoScout24, 1&1 Internet, Axel Springer AG, DHL Express Germany, Groupon, Siemens, ProSiebenSat.1 Media, Zalando, Zanox, Otto und die Unister Holding in den vergangenen Wochen auf den Online-Stellenbörsen Mitarbeiter mit Hadoop-Fähigkeiten gesucht. Lesen Sie auf der nächsten Seite: NoSQL: schneller bei Analysen
NoSQL: schneller bei Analysen
Das grösste Einsatzpotenzial punkto Big Data Analytics bieten laut Schräer die sogenannten spaltenorientierten Datenbanken. Dieser No-SQL-Datenbanktyp spielt seine Stärken besonders bei analytischen Queries aus. Traditionelle, zeilenorientierte Datenbanken lesen immer den gesamten Datensatz (row) mit sämtlichen Attributen aus. Analytische Queries benötigen aber, um ihre Aufgabe zu erfüllen, gar nicht sämtliche Attribute. Row-Datenbanken liefern also zu viele Daten. In spaltenorientierten Systemen dagegen ist der gezielte Direktzugriff lediglich auf die benötigten Attribute (Spalten) möglich, was die Performance stark verbessert. Spaltenorientierte NoSQL-Systeme eignen sich durch diese architektonische Finesse besonders für Geschäftsszenarien wie Echtzeitstatistiken, Missbrauchserkennung und Risikoanalysen, Recommendation Engines, Netzwerk-, Überwachungs- und Kundenanalysen (Verhaltensanalytik), Stimmungsbarometer, wissenschaftliche Aufgaben und Werbeplatzierungen (vgl. White Paper Saracus: Big Data. NoSQL-Datenbanken, Motivation, Konzepte & Einsatzszenarien).
0,5 Sekunden statt 800
SAP-Co-Gründer Hasso Plattner hat in seinem Buch «The Inner Mechanics of In-Memory Databases» einmal durchgerechnet, was der Wechsel von einer zeilenorientierten (ZDB) auf eine spaltenorientierte Datenbankarchitektur (SDB) punkto Performance eigentlich bringt. Plattner hat in seinem Big-Data-Beispielszenario die gesamte Weltbevölkerung mit Namen, Geschlecht, Land, Stadt und Geburtstag in einer riesigen Datenbank abgespeichert. Die Datenbank enthält 8 Milliarden Einträge (Datensätze). Jeder Datensatz ist 200 Byte lang. Die Datenbank hat also eine Grösse von etwa 1,6 Terabyte (8 Milliarden mal 200 Byte).
Um nun die Frage zu beantworten, wie viel Frauen auf der Welt leben, muss das Query im zeilenorientierten Layout sämtliche 8 Milliarden Datensätze in voller Länge auslesen, insgesamt also 1,6 Terabyte. Bei einem angenommenen Datendurchsatz von 2 MB pro Millisekunde pro Prozessorkern kommt man auf eine Antwortzeit von 800 Sekunden (1,6 Terabyte dividiert durch 2 MB/Millisekunde). Das Query liesse sich, etwa durch den Einsatz von Kompressionsalgorithmen, noch optimieren. Die Latenzzeit beträgt aber in jedem Fall mehrere Minuten. In einem spaltenorientierten Datenbanklayout muss das Query lediglich das Attribut «Geschlecht» auslesen. Um Männlein und Weiblein zu codieren, reicht 1 Bit locker aus (M/F). Der Prozessorkern muss daher lediglich 8 Milliarden mal 1 Bit lesen: macht 1 Gigabyte. Bei einem angenommenen Prozessorkern-durchsatz von wiederum 2 MB/Millisekunde beträgt die Antwortzeit eine halbe Sekunde (1 GB dividiert durch 2 MB/Millisekunde). Lesen Sie auf der nächsten Seite: Software-Trend: In-Memory
Software-Trend: In-Memory
Plattners Rechenbeispiel gilt streng genommen nur für spaltenorientierte Datenbanken, die vollständig im Arbeitsspeicher laufen (beispielsweise SAP Hana). Nur dort beträgt der Datendurchsatz zwischen Prozessorcache und Memory 2 MB/Millisekunde. Auf Festplatten oder SSDs dauert das entsprechend länger. Ausserdem werden für analytische Queries meist nicht nur ein, sondern mehrere Attribute benötigt. Trotzdem zeigt Plattners Rechenbeispiel eindrücklich, zu welchen grossen Performancegewinnen spaltenorientierte Datenbanken in der Lage sind. Werden sie zusätzlich im Memory gelagert, multipliziert sich der Benefit. Wie beeinflussen Trends wie Big Data und In-Memory-Computing nun die Arbeit von Software-Entwicklern? «Entwickler-Tools können deutlich verbessert werden, weil der Zugriff auf Daten und Metadaten wesentlich schneller ist als bisher», stellt Franz Färber, Senior Vice President SAP Hana, in Aussicht. Die gesamte Software-Entwicklung werde in Zukunft «real-time» erfolgen, und nicht mehr wie heute in asynchrones Programmieren von Logik und nachgelagertes Testen auseinanderfallen. Zum Beispiel würden SQL-Befehlsketten oder Zugriffe auf Datenbanken ad hoc, also während des Programmierens, als Data Preview visualisiert. Der Entwickler sieht sofort, was sein Code produziert. Beim Schreiben des Sourcecodes würden definierte Testszenarien – also die Qualitätskontrolle – sofort ausgeführt. Codeanalysen zwecks Optimierung laufen bereits beim Schreiben des Codes und nicht erst als Batch-Prozess im Nachlauf. Der Unterschied ähnele dem zwischen Briefe schreiben und telefonieren. «Datenintensive Operationen werden in Zukunft nahe am Datamanagementlayer ausgeführt, der Anwendungslayer definiert nur noch die Applikationslogik», sagt Färber. Die Devise heisst an dieser Stelle: Funktionalität zu den Daten. Der Programmierstil werde sich von Zeilen- auf Setorientierung ändern. In-Memory-Computing, so prophezeit Färber, verändert den Programmierstil von Anwendungsentwicklern von Grund auf.