Blog

Freundliche Eindringlinge auf dem Entwicklertag 2012

Entwicklertag LogoDieses Jahr wurde ich zum Karlsruher Entwicklertag auf dem Conference Day eingeladen, um den Teilnehmern mit dem Vortrag „Freundliche Eindringlinge – Moderne Web-Applikationen mit CDI“ eine Einführung in die Context und Dependency Injection im Java-Standard zu geben. Ich habe natürlich nicht nur meinem Vortrag gehalten, sondern mir auch Vorträge von anderen angehört.

Begrüßung

In der Begrüßung vermittelte Margret Mergen (Bürgermeisterin der Stadt Karlsruhe) viele interessante Fakten zu Karlsruhe. Sie bezeichnete die Stadt als das „Silicon Valley Deutschlands“ und nahm damit Bezug auf die räumliche Nähe der über 3.000 IT Firmen mit über 25.000 ITlern. Ebenfalls interessant war die Tatsache, dass jede vierte Informatiker aus Karlsruhe kommt.

Freundliche Eindringlinge – Moderne Web-Applikationen mit CDI

Wie den Teilnehmern des Entwicklertages versprochen, möchte ich an dieser Stelle die Tonspur und die Beispielapplikation zur Verfügung stellen. Da ich bereits darüber gebloggt habe, veröffentliche ich hier nur den Link zu meinem Beitrag Freundliche Eindringlinge – Moderne Web-Applikationen mit CDI.

Zum Vortrag kann ich nur sagen, dass es Spaß gemacht hat, ihn in den schönen Räumen der IHK Karlsruhe halten zu dürfen und dass ich auch das Glück einer aktiven Zuhörerschaft mit spannenden Fragen hatte.

Freundliche Eindringinge @ Entwicklertag 2012

Rechtliche Aspekte zu Cloud Computing

Prof. Dr. Rupert Vogel, Tobias Haar und Dr. Oliver Meyer-van Raay beleuchteten die rechtlichen Aspekte zum Thema Cloud. Nach der Definition des Cloud-Begriffs, den Ausprägungen (IaaS, PaaS, SaaS) und der Erkenntnis, dass es sich beim Thema Cloud Computing nicht um einen Rechtsbegriff handelt, wurden alle relevanten Rechtsbereiche erörtert.

IT-Recht

Sofern es sich um eine B2B-Beziehung handelt, kann die Rechtswahl selbst übernommen werden, d.h., ich kann mir ein Land aussuchen, gemäß dessen Rechtsprechung ich agieren möchte. Als Tipp wurde genannt, dass immer der Kunde auf Rechtswahl drängen sollte.

Handelt es sich jedoch um eine B2C-Beziehung, muss nach Recht des Verbrauchers verfahren werden, also nach dem Recht, das am günstigsten für den Verbraucher ist. Hier spielt in der Regel das Land, in dem der Verbraucher firmiert, eine Rolle. Ebenfalls interessant dazu ist, dass im Zweifelsfall das Recht des Landes, in dem der Schaden eintritt, gilt.
Zum Thema Vertragsgestaltung wurde erwähnt, dass es sich um Mietverträge nach deutschem Recht handelt, sodass der Vermieter für die Leistung verantwortlich ist. Um auf der sicheren Seite zu sein, müssen Service Level Agreements vereinbart werden. Spannend ist auch das Thema „Exit Management“. Wie wird mit Daten verfahren?

Zur Vertragsgestaltung wurde der Tipp gegeben, den Vetrag immer so zu gestalten, dass ein 60jähriger Richter diesen auch verstehen kann. Also nicht „Leistung 98% verfügbar“, sondern lieber alles detailliert beschreiben. Was ist denn beispielsweise „die Leistung“? Und was heißt „verfügbar“?

Ein Blick in das Amazon Web Services Customer Agreement zeigte, dass Amazon den Service einfach mal abschalten kann…

Urheberrecht

Beim Urheberrecht sind in der Regel drei Parteien betroffen. Der Kunde, der Cloud-Anbieter und das Software-Haus. Aufgepasst werden muss vor allem im Bereich des Software-Hauses. Wurde eine Lizenz für die Cloud erworben? Wie sieht es mit der Handhabung von Vervielfältigungen aus? Ist es nicht eine Vermietung, wenn ich die Software in der Cloud zur Verfügung stelle? All dies muss zwischen den Parteien vereinbart werden.

Wie steht es um Software, die ein Angestellter oder ein Freelancer für ein Unternehmen entwickelt hat? Kann diese einfach in die Cloud gehen? Beim Angestellten ist das recht einfach, hier hat der Arbeitgeber Verwertungsrechte. Bei Freelancern ist das ein wenig schwieriger, weil hier unter Umständen eine neue Nutzungsart hinzukommt.

Datenschutz/-sicherheit

Hier gilt das Territorialitätsprinzip, also die Rechtsprechung des Landes in dem die Daten verarbeitet werden. Problematisch wird das Ganze natürlich nur bei personenbezogenen Daten. Hier muss eine Anonymisierung stattfinden und optimalerweise auch noch eine Verschlüsselung, damit die Cloud-Anbieter diese Daten nicht im Zugriff haben. Spannend wird es auch beim Thema der Auftragsdatenverarbeitung: hier sollte man sich einen geeigneten Anbieter á la Microsoft oder Salesforce, die den Richtlinien der EU entsprechen, suchen.

Mehr dazu kann in den Vortragsfolien auf der Webseite des Entwicklertages 2012 nachgelesen werden.

In der Fragerunde zum Vortrag wurde noch erwähnt, dass man im rechtlichen Sinne nicht vom Besitz von Daten sprechen kann, sondern nur vom Zugriff.

Rechtliche Aspekte zu Cloud Computing @ Entwicklertag 2012

Software Engineering von Mobile Apps

Stefan Hellfeld zeigte sehr schön die Entwicklung der mobilen Endgeräte an seiner eigenen Handy-Historie auf. Danach machte er darauf aufmerksam, wer eigentlich aktuell die Software für mobile Endgeräte verkauft: Betriebssystem- und Gerätehersteller. Auch erfunden hat das Ganze nicht Apple mit dem App Store, sondern Nokia mit Symbian schon einige Jahre zuvor.

Was?

Was ist das größte Problem, wenn man eine Software in den App Store bringt? Die Konkurrenz! Wie kann man sich, abgesehen vom Preis, von seinen Konkurrenten absetzen? Durch Innovation! Wie diese Innovation vorangeschritten ist, zeigt die Gegenüberstellung einiger Features des Smartphones (GSM, GPRS, Kamera, Bewegungssender) gegenüber verschiedenen Features von Software (Virtuelle Realität, Wecker, Aufzeichnung, MP3-Player). Hier steht es 9:26 für die Software. Herr Hellfeld legte nahe, sich als Entwickler von Mobilen Apps als Integrator zu sehen und so mehrere Hardwarekomponenten für die Lösung eines Problems zu verknüpfen.

Wie?

Da wir jetzt wussten, was wir zu programmieren hatten, stellte sich natürlich die Frage nach dem Wie. Hier verglich Herr Hellfeld die mobile Entwicklung für iOS mit der klassischen Software-Entwicklung. Bei letzterer wurden in der Regel Lizenzen für IDEs gekauft und fertig war man, was die Ausgaben im Entwicklungsprozess anging. In der mobilen Entwicklung ist die IDE zwar kostenlos (sofern man einen Mac hat), aber man braucht Lizenzen für die Entwickler, muss auf externen Geräten testen und die Software dann auch noch im App Store zur Abnahme einreichen.

Zukunft iOS, Android, Windows Phone & JavaME

Es gibt schon jetzt mehr Smartphones als Handys. Android Apps sind im Schnitt teurer als iOS Apps, und JavaME liegt hinsichtlich des Marktanteils noch 15% hinter iOS und Android. Herr Hellfeld ist der Meinung, dass iOS weiter wachsen wird, Android auch – und zwar stärker – und Microsoft wird es zukünftig mit den beiden aufnehmen, da es noch keine richtige Office-Integration auf iOS oder Android gibt und es Windows Phone noch an Tablets fehlt.

Organisation

Was wird alles benötigt, um starten zu können? Eine Entwicklungsumgebung und ein SDK, ein Team, wobei sich die optimale Anzahl Mitarbeiter seiner Ansicht nach aus der Wurzel der Projektdauer in Personentagen ermittelt. Ferner benötigt man ein gutes Management, bei dem Enwickler 16 LOC (lines of code) pro Tag schaffen, die direkt in der Software verwendet werden, ein Vorgehensmodell und jede Menge Testgeräte. Es gibt zwar Simulatoren, aber diese ersetzen nicht die Tests auf Endgeräten.

Sicherlich neu in der mobilen Entwicklung ist die Rolle des Kunden, da man hier jetzt mit „Experten“ redet, die genau wissen, wie eine mobile App auszusehen und wie sie sich anzufühlen hat.

Nativ, WebApp oder Hybrid?

Die Abgrenzung der unterschiedlichen App-Typen ist ja mittlerweile in aller Munde. Interessant ist jedoch Herr Hellfelds Abgrenzung im Detail. Native Apps sind bei ihm Apps, die nativ programmiert wurden, bei denen sich jedoch auch alle Daten auf dem Smartphone befinden. Hybrid sind bei ihm einerseits die Lösungen, die via Titanium oder PhoneGap auf beliebig viele Plattformen gebracht werden können, als auch Apps, die nativ implementiert wurden, aber ihre Daten aus dem Internet beziehen.

Als Best-Practice-Beispiele nannte er die Apps von Facebook und N-tv, die beide auf eine hybride Lösung setzen. Die UI-Elemente sind nativ implementiert, da sie flüssig sein müssen; die Informationsdarstellung erfolgt in Webviews.

Als gutes Feature von iOS wurde erwähnt, dass man es geschafft habe, auch Apps elegant abstürzen zu lassen, so dass sich der Nutzer selbst hinterfragt, bevor er davon ausgeht, dass die App fehlerhaft ist.

Spannend war auch ein Vergleich der Effizienz der Entwicklung zwischen iOS (Xcode) und Windows Phone (Visual Studio mit Expression Blend). So bräuchte man in Xcode für die Entwicklung einer Taschenlampen-App 80 Sekunden und in Visual Studio nur 32 Sekunden.

Zukunft der Apps

Apps sind in der Zukunft agil, sie passen sich an Anwender, Kontext, Gerät und Informationskanal an, sie sind intelligent, denken mit und treffen banale Entscheidungen, und darüber hinaus bilden sie Menschen auf Informationssystemen ab.
Software Engineering von Mobile Apps @ Entwicklertag 2012

Entspannte Nebenläufigkeit – Aktoren in Scala und Java

Andi Scharfstein und Ben Romberg motivierten Aktoren mit dem „Northeast blackout of 2003“. Als Ursache wurde eine Race Condition identifiziert. Um Race Conditions zu vermeiden, sollen Aktoren eingesetzt werden. Es muss also, getreu dem Aktoren-Paradigma, Datenfluss nur in gekapselten Systemen agiert werden.

Aktoren haben dabei einen eindeutigen Namen (Adresse), ein Verhalten (Code), einen Zustand (Daten) sowie eine Mailbox. Aktoren können Nachrichten verschicken, den eigenen Zustand bzw. ihr Verhalten ändern und neue Aktoren erstellen. In der Theorie laufen Aktoren parallel zueinander; es gibt keine Aussage zum Nachrichtenverhalten, und somit können Nachrichten theoretisch verloren gehen oder auch ihre Reihenfolge verändern.

In einem Bespiel, in dessen Rahmen Spielstände von Mannschaften verändert wurden (ja, es ist ja bald EM), wurde das Akka-Framework vorgestellt.

Für den Einsatz wurde vorgeschlagen, dass über Nachrichten kommuniziert werden soll und Nachrichten nur als immutable Objekte verwendet werden sollen, um Race Conditions zu vermeiden.

Als Fazit machten die Vortragenden Werbung für den Einsatz von Aktoren, da der Einarbeitungsaufwand gering sei, man nur seine Herangehensweise ändern müsse und so sehr performante nebenläufige Applikationen ohne Race Conditions bauen könne.

Mich haben die Jungs überzeugt und ich werde den nächsten passenden Anwendungsfall mal mit Aktoren umsetzen.

Entspannte Nebenläufigkeit – Aktoren in Scala und Java @ Entwicklertag 2012

Subjektorientorierung

Albert Fleischmann hat ein neues Modell für den Softwareentwicklungsprozess entwickelt. Eingangs rief er den Zuhörern den deutschen Satzbau im Aktiv mit Subjekt, Prädikat und Objekt ins Gedächtnis (Wer macht was womit?) Im Vergleich dazu skizzierte er unterschiedliche Modelle der Softwareentwicklung (Flussdiagramm, ER-Diagramm, UML etc.), die im nicht ausreichenden Maße Subjekt, Prädikat und Objekt beschreiben. Sein Anliegen war es, Anwender für die Subjektorientierung zu motivieren. Als Fallbeispiel stellte er die Steuerung eines ferngesteuerten Vogels vor, die er später in ein Bespiel zu einem Transportunternehmen verwandelte. Spätestens hier hatte er mich leider komplett abgehängt. Als nach 40 Minuten Motivation innerhalb von fünf Minuten das Modell vorgestellt werden sollte, konnte ich leider nicht mehr das Konzept und den Nutzen der Subjektorientierung verstehen. Falls die Folien online gestellt werden, werde ich auf jeden Fall noch mal hineinschauen.

Subjektorientierung @ Entwicklertag 2012

Fazit

Für mich eine sehr gelungene Veranstaltung – von der Organisation über die Referenten bis hin zum Veranstaltungsort. Dafür möchte ich mich bei den Veranstaltern und Referenten herzlich bedanken, und vielleicht bin ich ja nächstes Jahr auch wieder dabei.

Holisticon AG — Teile diesen Artikel

Über den Autor

Mr Norman Erck M.Sc. started developing websites as a teen in 1999 driven by his fascination for the possibilities of the rising e-business technologies. He is now a certified ScrumMaster and Enterprise- Software-Architect who has worked on e-business projects for over seven years. He takes the role of a scrum master and architect for IT projects in large companies. He is a speaker on conferences about CDI as well.

Antwort hinterlassen