Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
Über mich
Bernhard Wick

29 Jahre jung
!
Seit 2013 bei TechDivision GmbH
Softwarearchitekt für appserver.io
Heute mal nich...
Agenda
Agenda
• Was ist appserver.io?
• Vorstellung und Idee
!
• Wozu das alles?
• Vorteile und Nutzen
!
• Wie nutze ich a...
Vorstellung | Nutzen | Anwendungsentwicklung
!
!
!
!
Was ist ?
Vorstellung | Nutzen | Anwendungsentwicklung
Ziel"
Application Server für PHP, in PHP
!
• Alternative zu bestehender Infra...
Vorstellung | Nutzen | Anwendungsentwicklung
!
!
Ein Application Server ist eine Plattform die Anwendungen
über ein Netzwe...
Vorstellung | Nutzen | Anwendungsentwicklung
• Webserver liefern statische Inhalte aus
• Nutzen Drittprogramme für dynamis...
Vorstellung | Nutzen | Anwendungsentwicklung
• Market share von ~81%
• Rasant ansteigende Beliebtheit seit 2000
!
!
!
!
!
...
Vorstellung | Nutzen | Anwendungsentwicklung
Projekthistorie"
• Idee besteht seit 2005
!
• Erster Prototyp 2011
• Für inte...
Vorstellung | Nutzen | Anwendungsentwicklung
Seit August 2012: Threading"
• Als Extension pthreads by Joe Watkins
• Erlaub...
Vorstellung | Nutzen | Anwendungsentwicklung
• Erstes Produktivprojekt am 12.6.2014
• Nur Webserver
• Anwendungslogik in W...
Vorstellung | Nutzen | Anwendungsentwicklung
Aktueller Produktumfang
!
• 24 Jahre Entwicklungszeit (COCOMO Model)

• Ca. 9...
Vorstellung | Nutzen | Anwendungsentwicklung
!
!
!
Wozu das alles?
Vorstellung | Nutzen | Anwendungsentwicklung
Infrastruktur in der Zielsprache"
!
• Erleichtert das Verstehen von Abläufen
...
Vorstellung | Nutzen | Anwendungsentwicklung
• „I am a Teapot“ Module
Vorstellung | Nutzen | Anwendungsentwicklung
Beispiel
• Rewrite Modul für Anwendung
• 3,2 Milliarden Rewrites in Server ve...
Vorstellung | Nutzen | Anwendungsentwicklung
Alles aus einem Guss"
!
• Infrastruktur
!
• Framework
!
• Laufzeitumgebung
Vorstellung | Nutzen | Anwendungsentwicklung
Technologische Sicherheit
• PSRs sind super Idee
!
• Wir pflegen 10 eigene PSR...
Vorstellung | Nutzen | Anwendungsentwicklung
!
• Komplett Open Source
!
• Community Support per GitHub und Gitter
Vorstellung | Nutzen | Anwendungsentwicklung
!
!
!
Wie nutze ich ?
Vorstellung | Nutzen | Anwendungsentwicklung
Installation"
Installierbare Pakete verfügbar für:
!
!
+ homebrew cask
!
!
!
...
Vorstellung | Nutzen | Anwendungsentwicklung
Zusätzlich
Vorstellung | Nutzen | Anwendungsentwicklung
Konfiguration
Vorstellung | Nutzen | Anwendungsentwicklung
Vorstellung | Nutzen | Anwendungsentwicklung
Problem"
Aufwändiges Bootstrapping (Framework, etc.)
!
Lösung"
!
Servlets
Ser...
Vorstellung | Nutzen | Anwendungsentwicklung
• Lifecycle Management und Routing durch Servlet
Engine
• Erlaubt Bootstrappi...
Vorstellung | Nutzen | Anwendungsentwicklung
• Mapping über Annotation oder XML
Vorstellung | Nutzen | Anwendungsentwicklung
• Implementieren Methoden für HTTP Operationen
• doGet(), doPost(), …
• Erhal...
Vorstellung | Nutzen | Anwendungsentwicklung
Problem"
Stateless Server, Stateful Client
!
Lösung"
!
Session Beans!
Session...
Vorstellung | Nutzen | Anwendungsentwicklung
Verschiedene Arten
• Stateless: Neue Instanz für jede Anfrage
• Stateful: Per...
Vorstellung | Nutzen | Anwendungsentwicklung
Vorstellung | Nutzen | Anwendungsentwicklung
Beispiel
• Einkaufswagen als Stateful Bean
!
• Repliziert State eines statefu...
Vorstellung | Nutzen | Anwendungsentwicklung
Hat jemand persistent gesagt?"
Konzept von DataSources:
!
!
!
!
!
• Per XML k...
Vorstellung | Nutzen | Anwendungsentwicklung
Problem"
Threading und Frameworks
!
Lösung"
!
appserver.io Funktionalität
app...
Vorstellung | Nutzen | Anwendungsentwicklung
AOP
Vorstellung | Nutzen | Anwendungsentwicklung
Dependency Injection
Vorstellung | Nutzen | Anwendungsentwicklung
Design by Contract und Typsicherheit
Fragen / Questions
Fazit
!
!
• PHP sollte sich weiter entwickeln
!
• Es macht Sinn in Infrastruktur zu investieren
!
• Sta...
Fragen / Questions
!?
Thanks!
appserver.io is a registered
trademark of TechDivision GmbH



Spinnereiinsel 3a

83059 Kolbermoor
Tel. +49 8031 /...
Further readings
http://appserver.io/
https://github.com/appserver-io/appserver
https://www.techdivision.com/
https://gitt...
Bildernachweis
"Tux" by lewing@isc.tamu.edu and The GIMP. Licensed under Attribution via Wikimedia Commons -
https://commo...
 Bernhard Wick - appserver.io - code.talks 2015
Nächste SlideShare
Wird geladen in …5
×

Bernhard Wick - appserver.io - code.talks 2015

587 Aufrufe

Veröffentlicht am

code.talks 2015 hosted by ABOUT YOU

Veröffentlicht in: Internet
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Bernhard Wick - appserver.io - code.talks 2015

  1. 1. Über mich Bernhard Wick
 29 Jahre jung ! Seit 2013 bei TechDivision GmbH Softwarearchitekt für appserver.io Heute mal nicht in Lederhosen
  2. 2. Agenda Agenda • Was ist appserver.io? • Vorstellung und Idee ! • Wozu das alles? • Vorteile und Nutzen ! • Wie nutze ich appserver.io • Anwendungsentwicklung und Beispiel
  3. 3. Vorstellung | Nutzen | Anwendungsentwicklung ! ! ! ! Was ist ?
  4. 4. Vorstellung | Nutzen | Anwendungsentwicklung Ziel" Application Server für PHP, in PHP ! • Alternative zu bestehender Infrastruktur • Konzept von Application Server verfügbar machen • Infrastruktur in der Zielsprache • Alles Open Source
  5. 5. Vorstellung | Nutzen | Anwendungsentwicklung ! ! Ein Application Server ist eine Plattform die Anwendungen über ein Netzwerk bereitstellt und über definierte Schnittstellen ansprechbare Zusatzdienste bietet.
  6. 6. Vorstellung | Nutzen | Anwendungsentwicklung • Webserver liefern statische Inhalte aus • Nutzen Drittprogramme für dynamische Inhalte • Interne Sub-requests ([Fast]CGI) • Selbst keinen Bezug zur Anwendung
  7. 7. Vorstellung | Nutzen | Anwendungsentwicklung • Market share von ~81% • Rasant ansteigende Beliebtheit seit 2000 ! ! ! ! ! • Aber: Schritt in die Enterprise Welt fällt schwer W3Techs, 2015 Netcraft, 2013
  8. 8. Vorstellung | Nutzen | Anwendungsentwicklung Projekthistorie" • Idee besteht seit 2005 ! • Erster Prototyp 2011 • Für interne Projekte ! • Erster commit am 1.7.2013
  9. 9. Vorstellung | Nutzen | Anwendungsentwicklung Seit August 2012: Threading" • Als Extension pthreads by Joe Watkins • Erlaubt echte parallele Verarbeitung • Bietet Inter-Thread Daten Container auf Objektebene ! ! • Aber: Sehr aufwändiger Umbau am PHP Core
  10. 10. Vorstellung | Nutzen | Anwendungsentwicklung • Erstes Produktivprojekt am 12.6.2014 • Nur Webserver • Anwendungslogik in Webserver Module ! • Erstes Webservice Projekt am 10.11.2014 ! • Release 1.0.0 „Iron Horse“ am 16.2.2015 !
  11. 11. Vorstellung | Nutzen | Anwendungsentwicklung Aktueller Produktumfang ! • 24 Jahre Entwicklungszeit (COCOMO Model) • Ca. 96.000 Zeilen Code • 40+ Repositories ! • 8 Produktivprojekte • 2 Partnerfirmen
  12. 12. Vorstellung | Nutzen | Anwendungsentwicklung ! ! ! Wozu das alles?
  13. 13. Vorstellung | Nutzen | Anwendungsentwicklung Infrastruktur in der Zielsprache" ! • Erleichtert das Verstehen von Abläufen ! • Homogenisiert den Technologie-Stack ! • Befähigt zu Infrastrukturveränderung und -erweiterung
  14. 14. Vorstellung | Nutzen | Anwendungsentwicklung • „I am a Teapot“ Module
  15. 15. Vorstellung | Nutzen | Anwendungsentwicklung Beispiel • Rewrite Modul für Anwendung • 3,2 Milliarden Rewrites in Server verlagert ! • Backend API Analytics • Analytics für RESTful API Aufrufe
  16. 16. Vorstellung | Nutzen | Anwendungsentwicklung Alles aus einem Guss" ! • Infrastruktur ! • Framework ! • Laufzeitumgebung
  17. 17. Vorstellung | Nutzen | Anwendungsentwicklung Technologische Sicherheit • PSRs sind super Idee ! • Wir pflegen 10 eigene PSRs • Decken alle Aspekte der Anwendungsentwicklung ab ! • Nutzen semantic Versioning • Feste APIs bis Version 2.0.0!
  18. 18. Vorstellung | Nutzen | Anwendungsentwicklung ! • Komplett Open Source ! • Community Support per GitHub und Gitter
  19. 19. Vorstellung | Nutzen | Anwendungsentwicklung ! ! ! Wie nutze ich ?
  20. 20. Vorstellung | Nutzen | Anwendungsentwicklung Installation" Installierbare Pakete verfügbar für: ! ! + homebrew cask ! ! ! ! + Repository
  21. 21. Vorstellung | Nutzen | Anwendungsentwicklung Zusätzlich
  22. 22. Vorstellung | Nutzen | Anwendungsentwicklung Konfiguration
  23. 23. Vorstellung | Nutzen | Anwendungsentwicklung
  24. 24. Vorstellung | Nutzen | Anwendungsentwicklung Problem" Aufwändiges Bootstrapping (Framework, etc.) ! Lösung" ! Servlets Servlets sind Klassen, deren vorgeladene Instanzen die Request- und Response Verarbeiten auf Seite des Servers übernehmen. —> Controller
  25. 25. Vorstellung | Nutzen | Anwendungsentwicklung • Lifecycle Management und Routing durch Servlet Engine • Erlaubt Bootstrapping noch vor dem ersten Request ! !
  26. 26. Vorstellung | Nutzen | Anwendungsentwicklung • Mapping über Annotation oder XML
  27. 27. Vorstellung | Nutzen | Anwendungsentwicklung • Implementieren Methoden für HTTP Operationen • doGet(), doPost(), … • Erhalten Request und Response Objekte
  28. 28. Vorstellung | Nutzen | Anwendungsentwicklung Problem" Stateless Server, Stateful Client ! Lösung" ! Session Beans! Session- und andere Beans sind serverseitige Klassen, die die Business Logik einer Anwendung beinhalten. Sie werden zentral verwaltet und stehen meist als fertige Instanz bereit.
  29. 29. Vorstellung | Nutzen | Anwendungsentwicklung Verschiedene Arten • Stateless: Neue Instanz für jede Anfrage • Stateful: Persistente Instanz, gebunden an Nutzersession • Singleton: Persistente Instanz, unabhängig von Session immer gleich • MessageDriven: Zur asynchronen Verarbeitung von MQ Nachrichten
  30. 30. Vorstellung | Nutzen | Anwendungsentwicklung
  31. 31. Vorstellung | Nutzen | Anwendungsentwicklung Beispiel • Einkaufswagen als Stateful Bean ! • Repliziert State eines stateful Clients • Hält z.B. Nutzerdaten sicher im Speicher • Erlaubt Caching von komplexen Abfrageergebnissen
  32. 32. Vorstellung | Nutzen | Anwendungsentwicklung Hat jemand persistent gesagt?" Konzept von DataSources: ! ! ! ! ! • Per XML konfigurierbare Datenquellen
  33. 33. Vorstellung | Nutzen | Anwendungsentwicklung Problem" Threading und Frameworks ! Lösung" ! appserver.io Funktionalität appserver.io bringt viel Funktionalität eines modernen Frameworks mit, aber erlaubt Multithreading und feste Integration in die Infrastruktur
  34. 34. Vorstellung | Nutzen | Anwendungsentwicklung AOP
  35. 35. Vorstellung | Nutzen | Anwendungsentwicklung Dependency Injection
  36. 36. Vorstellung | Nutzen | Anwendungsentwicklung Design by Contract und Typsicherheit
  37. 37. Fragen / Questions Fazit ! ! • PHP sollte sich weiter entwickeln ! • Es macht Sinn in Infrastruktur zu investieren ! • Standardisierung ist ein Muss
  38. 38. Fragen / Questions !?
  39. 39. Thanks! appserver.io is a registered trademark of TechDivision GmbH
 
 Spinnereiinsel 3a
 83059 Kolbermoor Tel. +49 8031 / 221055-0
 Fax +49 8031 / 221055-22 info@appserver.io
 Bernhard Wick
 Softwarearchitect bw@appserver.io ! ! !
  40. 40. Further readings http://appserver.io/ https://github.com/appserver-io/appserver https://www.techdivision.com/ https://gitter.im/appserver-io/appserver
  41. 41. Bildernachweis "Tux" by lewing@isc.tamu.edu and The GIMP. Licensed under Attribution via Wikimedia Commons - https://commons.wikimedia.org/wiki/File:Tux.png#/media/File:Tux.png! ! "Fedora logo" by Wondigoma - Own work. Licensed under Public Domain via Wikimedia Commons - https://commons.wikimedia.org/wiki/File:Fedora_logo.svg#/media/File:Fedora_logo.svg! ! "Openlogo-debianV2" by Debian Project - www.debian.org/logos/. Licensed under CC BY-SA 3.0 via Wikimedia Commons - https://commons.wikimedia.org/wiki/File:Openlogo-debianV2.svg#/media/ File:Openlogo-debianV2.svg! ! „Docker (container engine) logo“ von dotCloud, Inc. - http://www.docker.io/static/img/docker-top-logo.png. Lizenziert unter Apache License 2.0 über Wikimedia Commons - https://commons.wikimedia.org/wiki/ File:Docker_(container_engine)_logo.png#/media/File:Docker_(container_engine)_logo.png! ! „Vagrant“ von Fco.plj - Eigenes Werk. Lizenziert unter CC BY-SA 3.0 über Wikimedia Commons - https:// commons.wikimedia.org/wiki/File:Vagrant.png#/media/File:Vagrant.png

×