SlideShare uma empresa Scribd logo
1 de 28
Elastische Skalierbarkeit für Web-Anwendungen
    Das Play!-Framework




1                                               msg systems ag, 20.09.2012
Agenda



        1. Anforderungen an moderne Web-Anwendungen

        2. Das Play!-Framework

        3. Beispiel Preisberechnungen

        4. Zusammenfassung




2                                                     msg systems ag, 20.09.2012
Anforderungen an moderne Web-Anwendungen




        Für moderne Web-Anwendungen sind die Nutzungsszenarien von
        größerer Bedeutung als eine umfassende Dialogsteuerung

                                               Betrieb
                                               • IaaS / PaaS
                                               • schwankende
                                                 Nutzung




                                          Akka




                          Skalierbarkeit                            Integration
                          • fluktuierende            Play           • Apps
                            Nutzung                                 • Mash-Ups
                          • Wechselnder
                            Bedarf




3                          Autor/Datum über „Einfügen“ -> „Kopf-/Fußzeile“ anpassen   msg systems ag, tt.mm.jj
Der Typesafe-Stack




                                Play
        Fokus
                                Akka


                                Scala


                         Java Virtual Machine




4                                               msg systems ag, 20.09.2012
Das Play!-Framework



         •   Basiert auf



         •   Implementiert in




         •   Bietet
                 Enge Integration mit dem Aktoren-Framework Akka
                 JPA Persistenz
                 Schlanke, gekapselte Laufzeit-Umgebung


         •   Ermöglicht
                 Horizontale, elastische Skalierbarkeit




5                                                                  msg systems ag, 20.09.2012
Das Play!-Framework



                          •   Convention over Configuration

                          •   play new
                          •   play start

                          •   Einheitliches Projekt-Layout

                          •   Kurze Roundtrip-Zyklen (automatische
                              Übernahme von Code-Änderungen)




6                                                             msg systems ag, 20.09.2012
Ein Play!-Projekt




                           Quelltext und
                           Test-Klassen


                        Konfiguration für
                         die Applikation


                        Konfiguration für
                               den Build


                             öffentliche
                            Ressourcen




7                                msg systems ag, 20.09.2012
Ein Beispiel - Preisberechnungen




          Szenario
                            Use-Cases




                                        Vorgehen



                                                   Ergebnis




8                                                  msg systems ag, 20.09.2012
Preisberechnung – das Szenario

      Szenario


                          •   Pflege von Produkten, Komponenten und deren
                              Preise

                          •   Produktpreise hängen maßgeblich von
        funktional            Komponentenpreisen ab

                          •   Neuer Preis für eine Komponente 
                              Preisaktualisierung für alle betroffenen Produkte



                          •   Regelmäßige, schwankende Abfrage von
                              Produktpreisen

        nicht-funktional • Unregelmäßige Aktualisierung von
                              Komponentenpreisen im Batch




9                                                                                 msg systems ag, 20.09.2012
Preisberechnung – ein paar Anwendungsfälle




          •   Abfrage von Produktpreisen

          •   Abfrage von aktuellen Komponentenpreisen

          •   Aktualisieren eines Komponentenpreises

          •   …




10                                                       msg systems ag, 20.09.2012
Preisberechnung – das Vorgehen




          •   Vorstellung der Gesamt-Architektur

          •   Definition der API

          •   Durchführung der Berechnung




11                                                 msg systems ag, 20.09.2012
Preisberechnung – das Vorgehen




          •   Vorstellung der Gesamt-Architektur

          Nur URL Design        HTML, JavaScript, etc.
          keine GUI

                                       Controller
                Fokus
                                    Aktoren / Akka


               ausgespart                JPA



                                      Persistenz


12                                                       msg systems ag, 20.09.2012
Preisberechnung – das Vorgehen



          •   Definition der API – das Routing




13                                               msg systems ag, 20.09.2012
Preisberechnung – das Vorgehen



          •   Definition der API – das Routing




14                                               msg systems ag, 20.09.2012
Preisberechnung – das Vorgehen



          •   Definition der API – das Routing




               Die URL inklusive dynamischer
               Parameter
                    /product/:name/price

                 /product/Rasenmaeher/price

15                                               msg systems ag, 20.09.2012
Preisberechnung – das Vorgehen


                                                 die zugeordnete Handler-
          •   Definition der API – der Handler   Methode




16                                                                     msg systems ag, 20.09.2012
Preisberechnung – das Vorgehen


                                                 die zugeordnete Handler-
          •   Definition der API – der Handler   Methode




17                                                                     msg systems ag, 20.09.2012
Skalierbarkeit mit Play



           •   keine umfangreichen Sessions  dafür Caching

           •   Wiederverwendung instanziierter Klassen für beliebige Aufrufe 
               keine lokalen Variablen oder ähnliches

            Shared Nothing Ansatz
                 Beliebige Anzahl von Play-Instanzen können nebeneinander betrieben
                  werden




18                                                                                     msg systems ag, 20.09.2012
Preisberechnung – das Vorgehen




          •   Vorstellung der Gesamt-Architektur


          Nur URL Design        HTML, JavaScript, etc.
                                                         OK
                                       Controller
                Fokus
                                    Aktoren / Akka


               ausgespart                JPA



                                      Persistenz


19                                                            msg systems ag, 20.09.2012
Preisberechnung – das Vorgehen




          •   Durchführung der Berechnung

          •   Verwendung von Aktoren
                 Aktor repräsentiert eine Produkt-/Komponenteninstanz
                 Aktor wird über Nachrichten angesprochen (vgl. Messaging/JMS)
                 Aktor arbeitet gleichzeitig nur eine Nachricht ab


          •   Es kann pro Objekt-Instanz eine Aktor-Instanz geben mit einer
              eigenen Message-Queue

          •   Skalierbarkeit wird über Intra-JVM
              und Inter-JVM Verteilung erreicht




20                                                                               msg systems ag, 20.09.2012
Preisberechnung – das Vorgehen



          •   Durchführung der Berechnung

          Component                            Asynchron!
           Controller
                                             Recalculate

                            Component
                                                            ProductActor
                                                             ProductActor
                          Actor (Instance)
                                                               ProductActor
                                                                   Product
          Update
                                                               Actor (Instance)
        Asynchron!




                                                                 Persistenz



21                                                                     msg systems ag, 20.09.2012
Skalierbarkeit mit Aktoren



          •   Verwendung von Akka in einer JVM
          •   Verteilung über mehrere JVM




          •   Verwendung von Messaging (ZeroMQ)




          •   Verwendung von Akka Cluster




22                                                msg systems ag, 20.09.2012
Preisberechnung – Gesamtübersicht




                Lesender Teil                         Schreibender Teil


          Product     Component



                                Asynchron!
                                                   ComponentActor
                                                                       Asynchron!




                Synchron!
                                                                ProductActor
                                      Persistenz



23                                                                         msg systems ag, 20.09.2012
Preisberechnung – Deployment


                              Ist die Domäne isoliert
                                 fängt man klein an …




                                      Persistenz


24                                                      msg systems ag, 20.09.2012
Preisberechnung – Deployment


                              Ist die Domäne isoliert
                                 … und wächst




      Elastizität durch Hinzufügen
      von Play-Instanzen.
      Jede weitere Instanz über-
      nimmt Last.
      Einsatz eines zentralen Caches   Persistenz
      möglich.

25                                                      msg systems ag, 20.09.2012
Preisberechnung – Deployment


                               Gibt es Restriktionen
                          … werden Teile zusammengefasst




      Bei sehr vielen Aktoren können
      diese zentralisiert werden.
      Play bedient die Clients und
      interagiert mit den (verteilten)
      Aktoren.                           Persistenz


26                                                         msg systems ag, 20.09.2012
Zusammenfassung




         •   Das Play!-Framework bietet eine solide Basis für moderne Web-
             Anwendungen
                 „Shared Nothing“ Ansatz
                 Fokus auf API-Design anstelle von GUI
                 Integration mit Akka


         •   Sehr kompakte und elegante Möglichkeit, Anwendungen auf
             verschiedene Cloud-Szenarien zu deployen




                                         Projekt-Beispiel und Folien:
                                         https://github.com/axelirriger/Informatik2012
27                                                                           msg systems ag, 20.09.2012
Vielen Dank für Ihre Aufmerksamkeit




     Axel Irriger

     GB Telecommunications & Media
     Lead IT Consultant

     Telefon: +49 6196 7750-5418
     axel.irriger@msg-systems.com


     www.msg-systems.com




                                     www.msg-systems.com




28                                                         msg systems ag, 20.09.2012

Mais conteúdo relacionado

Destaque

ITU Letter to the President of Indonesia (IM2 Case)
ITU Letter to the President of Indonesia (IM2 Case)ITU Letter to the President of Indonesia (IM2 Case)
ITU Letter to the President of Indonesia (IM2 Case)ICT Watch
 
Ejecucion presupuesto 2012_2014
Ejecucion presupuesto 2012_2014Ejecucion presupuesto 2012_2014
Ejecucion presupuesto 2012_2014Vrac Unfv
 
Janhit Humanitarian Magazine 2013 - Raj Saubhag Ashram, Sayla
Janhit Humanitarian Magazine 2013 - Raj Saubhag Ashram, SaylaJanhit Humanitarian Magazine 2013 - Raj Saubhag Ashram, Sayla
Janhit Humanitarian Magazine 2013 - Raj Saubhag Ashram, SaylaRaj Saubhag
 
Poly Clip Zertificate
Poly Clip ZertificatePoly Clip Zertificate
Poly Clip ZertificateRamon Ortega
 
Portafolio de Cultura Neuroactiva
Portafolio de Cultura NeuroactivaPortafolio de Cultura Neuroactiva
Portafolio de Cultura NeuroactivaCultura Neuroactiva
 
Zanox se instala en España. Sep2003. Revista Estrategias.
Zanox se instala en España. Sep2003. Revista Estrategias. Zanox se instala en España. Sep2003. Revista Estrategias.
Zanox se instala en España. Sep2003. Revista Estrategias. Retelur Marketing
 
brochure ck line
brochure ck linebrochure ck line
brochure ck lineDinda Artya
 
Spring MVC 3 Restful
Spring MVC 3 RestfulSpring MVC 3 Restful
Spring MVC 3 Restfulknight1128
 
Bits arte y formas geométricas
Bits arte y formas geométricasBits arte y formas geométricas
Bits arte y formas geométricasMiriam Sedes López
 
Factor 10. Recursos Físicos y Financieros
Factor 10. Recursos Físicos y FinancierosFactor 10. Recursos Físicos y Financieros
Factor 10. Recursos Físicos y Financierossisauq
 
Panasonic kx t206 ag manual de instalacion
Panasonic kx t206 ag manual de instalacionPanasonic kx t206 ag manual de instalacion
Panasonic kx t206 ag manual de instalacionDaniel Paz
 

Destaque (19)

ITU Letter to the President of Indonesia (IM2 Case)
ITU Letter to the President of Indonesia (IM2 Case)ITU Letter to the President of Indonesia (IM2 Case)
ITU Letter to the President of Indonesia (IM2 Case)
 
Ejecucion presupuesto 2012_2014
Ejecucion presupuesto 2012_2014Ejecucion presupuesto 2012_2014
Ejecucion presupuesto 2012_2014
 
Aplicando lo aprendido con las tic
Aplicando lo aprendido con las ticAplicando lo aprendido con las tic
Aplicando lo aprendido con las tic
 
PAFonteyne_ExtendedCV_2015
PAFonteyne_ExtendedCV_2015PAFonteyne_ExtendedCV_2015
PAFonteyne_ExtendedCV_2015
 
Info mipa p85 lang
Info mipa p85 langInfo mipa p85 lang
Info mipa p85 lang
 
Janhit Humanitarian Magazine 2013 - Raj Saubhag Ashram, Sayla
Janhit Humanitarian Magazine 2013 - Raj Saubhag Ashram, SaylaJanhit Humanitarian Magazine 2013 - Raj Saubhag Ashram, Sayla
Janhit Humanitarian Magazine 2013 - Raj Saubhag Ashram, Sayla
 
Musica
MusicaMusica
Musica
 
Poly Clip Zertificate
Poly Clip ZertificatePoly Clip Zertificate
Poly Clip Zertificate
 
Portafolio de Cultura Neuroactiva
Portafolio de Cultura NeuroactivaPortafolio de Cultura Neuroactiva
Portafolio de Cultura Neuroactiva
 
Zanox se instala en España. Sep2003. Revista Estrategias.
Zanox se instala en España. Sep2003. Revista Estrategias. Zanox se instala en España. Sep2003. Revista Estrategias.
Zanox se instala en España. Sep2003. Revista Estrategias.
 
brochure ck line
brochure ck linebrochure ck line
brochure ck line
 
Spring MVC 3 Restful
Spring MVC 3 RestfulSpring MVC 3 Restful
Spring MVC 3 Restful
 
GKA deel 1 college 9
GKA deel 1 college 9GKA deel 1 college 9
GKA deel 1 college 9
 
Bits arte y formas geométricas
Bits arte y formas geométricasBits arte y formas geométricas
Bits arte y formas geométricas
 
Calendario de Actividades en Acapulco
Calendario de Actividades en AcapulcoCalendario de Actividades en Acapulco
Calendario de Actividades en Acapulco
 
Factor 10. Recursos Físicos y Financieros
Factor 10. Recursos Físicos y FinancierosFactor 10. Recursos Físicos y Financieros
Factor 10. Recursos Físicos y Financieros
 
Panasonic kx t206 ag manual de instalacion
Panasonic kx t206 ag manual de instalacionPanasonic kx t206 ag manual de instalacion
Panasonic kx t206 ag manual de instalacion
 
Lce nº59
Lce nº59Lce nº59
Lce nº59
 
Arbitraje popular
Arbitraje popularArbitraje popular
Arbitraje popular
 

Semelhante a Elastische Skalierbarkeit für Web-Anwendungen

bccon-2014 adm01 tipps-und-skripts-aus-dem-leben-eines-ibm-connections-admins
bccon-2014 adm01 tipps-und-skripts-aus-dem-leben-eines-ibm-connections-adminsbccon-2014 adm01 tipps-und-skripts-aus-dem-leben-eines-ibm-connections-admins
bccon-2014 adm01 tipps-und-skripts-aus-dem-leben-eines-ibm-connections-adminsICS User Group
 
Tipps und Skripts aus dem Leben eines Connections Admins
Tipps und Skripts aus dem Leben eines Connections AdminsTipps und Skripts aus dem Leben eines Connections Admins
Tipps und Skripts aus dem Leben eines Connections AdminsKlaus Bild
 
Java für eingebettete Systeme
Java für eingebettete SystemeJava für eingebettete Systeme
Java für eingebettete Systemerdmeyer
 
Server Revolutions- Der Spring Source DM Server
Server Revolutions- Der Spring Source DM ServerServer Revolutions- Der Spring Source DM Server
Server Revolutions- Der Spring Source DM ServerSandro Sonntag
 
AWR und ASH lizenzfrei für alle Editionen der Oracle-DB
AWR und ASH lizenzfrei für alle Editionen der Oracle-DBAWR und ASH lizenzfrei für alle Editionen der Oracle-DB
AWR und ASH lizenzfrei für alle Editionen der Oracle-DBPeter Ramm
 
Google Web Toolkit
Google Web ToolkitGoogle Web Toolkit
Google Web ToolkitTorben Brodt
 
Icsug conf 14_tipps-und-skripts-fuer-ibm-connections-administratoren
Icsug conf 14_tipps-und-skripts-fuer-ibm-connections-administratorenIcsug conf 14_tipps-und-skripts-fuer-ibm-connections-administratoren
Icsug conf 14_tipps-und-skripts-fuer-ibm-connections-administratorenICS User Group
 
Microservices - Was EAs zu Microservices wissen sollten
Microservices - Was EAs zu Microservices wissen solltenMicroservices - Was EAs zu Microservices wissen sollten
Microservices - Was EAs zu Microservices wissen solltenJan Thielscher
 
2010, susan schwarze
2010, susan schwarze2010, susan schwarze
2010, susan schwarzeOSGi Alliance
 
Ruby on Rails - Eine kurze Einführung
Ruby on Rails - Eine kurze EinführungRuby on Rails - Eine kurze Einführung
Ruby on Rails - Eine kurze EinführungThomas R. Koll
 
Microservices mit Java EE - am Beispiel von IBM Liberty
Microservices mit Java EE - am Beispiel von IBM LibertyMicroservices mit Java EE - am Beispiel von IBM Liberty
Microservices mit Java EE - am Beispiel von IBM LibertyMichael Hofmann
 
Serverless Application Framework
Serverless Application FrameworkServerless Application Framework
Serverless Application FrameworkBATbern
 
Do´s and Dont´s mit Oracle RDS
Do´s and Dont´s mit Oracle RDS Do´s and Dont´s mit Oracle RDS
Do´s and Dont´s mit Oracle RDS esentri AG
 
Real Application Testing - DOAG SIG Database 2010 - Simon Dickmeiß
Real Application Testing - DOAG SIG Database 2010 - Simon DickmeißReal Application Testing - DOAG SIG Database 2010 - Simon Dickmeiß
Real Application Testing - DOAG SIG Database 2010 - Simon DickmeißOPITZ CONSULTING Deutschland
 
Jax 2012-activiti-und-camel-presentation
Jax 2012-activiti-und-camel-presentationJax 2012-activiti-und-camel-presentation
Jax 2012-activiti-und-camel-presentationcamunda services GmbH
 
Microservices and Container Management with Mesosphere DC/OS
Microservices and Container Management with Mesosphere DC/OSMicroservices and Container Management with Mesosphere DC/OS
Microservices and Container Management with Mesosphere DC/OSRalf Ernst
 

Semelhante a Elastische Skalierbarkeit für Web-Anwendungen (20)

imatics FormEngine
imatics FormEngineimatics FormEngine
imatics FormEngine
 
bccon-2014 adm01 tipps-und-skripts-aus-dem-leben-eines-ibm-connections-admins
bccon-2014 adm01 tipps-und-skripts-aus-dem-leben-eines-ibm-connections-adminsbccon-2014 adm01 tipps-und-skripts-aus-dem-leben-eines-ibm-connections-admins
bccon-2014 adm01 tipps-und-skripts-aus-dem-leben-eines-ibm-connections-admins
 
Tipps und Skripts aus dem Leben eines Connections Admins
Tipps und Skripts aus dem Leben eines Connections AdminsTipps und Skripts aus dem Leben eines Connections Admins
Tipps und Skripts aus dem Leben eines Connections Admins
 
Java für eingebettete Systeme
Java für eingebettete SystemeJava für eingebettete Systeme
Java für eingebettete Systeme
 
2011 09-09 activiti
2011 09-09 activiti2011 09-09 activiti
2011 09-09 activiti
 
Server Revolutions- Der Spring Source DM Server
Server Revolutions- Der Spring Source DM ServerServer Revolutions- Der Spring Source DM Server
Server Revolutions- Der Spring Source DM Server
 
AWR und ASH lizenzfrei für alle Editionen der Oracle-DB
AWR und ASH lizenzfrei für alle Editionen der Oracle-DBAWR und ASH lizenzfrei für alle Editionen der Oracle-DB
AWR und ASH lizenzfrei für alle Editionen der Oracle-DB
 
Google Web Toolkit
Google Web ToolkitGoogle Web Toolkit
Google Web Toolkit
 
Icsug conf 14_tipps-und-skripts-fuer-ibm-connections-administratoren
Icsug conf 14_tipps-und-skripts-fuer-ibm-connections-administratorenIcsug conf 14_tipps-und-skripts-fuer-ibm-connections-administratoren
Icsug conf 14_tipps-und-skripts-fuer-ibm-connections-administratoren
 
Microservices - Was EAs zu Microservices wissen sollten
Microservices - Was EAs zu Microservices wissen solltenMicroservices - Was EAs zu Microservices wissen sollten
Microservices - Was EAs zu Microservices wissen sollten
 
2010, susan schwarze
2010, susan schwarze2010, susan schwarze
2010, susan schwarze
 
20110119 activiti jughh
20110119 activiti jughh20110119 activiti jughh
20110119 activiti jughh
 
Ruby on Rails - Eine kurze Einführung
Ruby on Rails - Eine kurze EinführungRuby on Rails - Eine kurze Einführung
Ruby on Rails - Eine kurze Einführung
 
20110223 agiles bpm
20110223 agiles bpm20110223 agiles bpm
20110223 agiles bpm
 
Microservices mit Java EE - am Beispiel von IBM Liberty
Microservices mit Java EE - am Beispiel von IBM LibertyMicroservices mit Java EE - am Beispiel von IBM Liberty
Microservices mit Java EE - am Beispiel von IBM Liberty
 
Serverless Application Framework
Serverless Application FrameworkServerless Application Framework
Serverless Application Framework
 
Do´s and Dont´s mit Oracle RDS
Do´s and Dont´s mit Oracle RDS Do´s and Dont´s mit Oracle RDS
Do´s and Dont´s mit Oracle RDS
 
Real Application Testing - DOAG SIG Database 2010 - Simon Dickmeiß
Real Application Testing - DOAG SIG Database 2010 - Simon DickmeißReal Application Testing - DOAG SIG Database 2010 - Simon Dickmeiß
Real Application Testing - DOAG SIG Database 2010 - Simon Dickmeiß
 
Jax 2012-activiti-und-camel-presentation
Jax 2012-activiti-und-camel-presentationJax 2012-activiti-und-camel-presentation
Jax 2012-activiti-und-camel-presentation
 
Microservices and Container Management with Mesosphere DC/OS
Microservices and Container Management with Mesosphere DC/OSMicroservices and Container Management with Mesosphere DC/OS
Microservices and Container Management with Mesosphere DC/OS
 

Elastische Skalierbarkeit für Web-Anwendungen

  • 1. Elastische Skalierbarkeit für Web-Anwendungen Das Play!-Framework 1 msg systems ag, 20.09.2012
  • 2. Agenda 1. Anforderungen an moderne Web-Anwendungen 2. Das Play!-Framework 3. Beispiel Preisberechnungen 4. Zusammenfassung 2 msg systems ag, 20.09.2012
  • 3. Anforderungen an moderne Web-Anwendungen Für moderne Web-Anwendungen sind die Nutzungsszenarien von größerer Bedeutung als eine umfassende Dialogsteuerung Betrieb • IaaS / PaaS • schwankende Nutzung Akka Skalierbarkeit Integration • fluktuierende Play • Apps Nutzung • Mash-Ups • Wechselnder Bedarf 3 Autor/Datum über „Einfügen“ -> „Kopf-/Fußzeile“ anpassen msg systems ag, tt.mm.jj
  • 4. Der Typesafe-Stack Play Fokus Akka Scala Java Virtual Machine 4 msg systems ag, 20.09.2012
  • 5. Das Play!-Framework • Basiert auf • Implementiert in • Bietet Enge Integration mit dem Aktoren-Framework Akka JPA Persistenz Schlanke, gekapselte Laufzeit-Umgebung • Ermöglicht Horizontale, elastische Skalierbarkeit 5 msg systems ag, 20.09.2012
  • 6. Das Play!-Framework • Convention over Configuration • play new • play start • Einheitliches Projekt-Layout • Kurze Roundtrip-Zyklen (automatische Übernahme von Code-Änderungen) 6 msg systems ag, 20.09.2012
  • 7. Ein Play!-Projekt Quelltext und Test-Klassen Konfiguration für die Applikation Konfiguration für den Build öffentliche Ressourcen 7 msg systems ag, 20.09.2012
  • 8. Ein Beispiel - Preisberechnungen Szenario Use-Cases Vorgehen Ergebnis 8 msg systems ag, 20.09.2012
  • 9. Preisberechnung – das Szenario Szenario • Pflege von Produkten, Komponenten und deren Preise • Produktpreise hängen maßgeblich von funktional Komponentenpreisen ab • Neuer Preis für eine Komponente  Preisaktualisierung für alle betroffenen Produkte • Regelmäßige, schwankende Abfrage von Produktpreisen nicht-funktional • Unregelmäßige Aktualisierung von Komponentenpreisen im Batch 9 msg systems ag, 20.09.2012
  • 10. Preisberechnung – ein paar Anwendungsfälle • Abfrage von Produktpreisen • Abfrage von aktuellen Komponentenpreisen • Aktualisieren eines Komponentenpreises • … 10 msg systems ag, 20.09.2012
  • 11. Preisberechnung – das Vorgehen • Vorstellung der Gesamt-Architektur • Definition der API • Durchführung der Berechnung 11 msg systems ag, 20.09.2012
  • 12. Preisberechnung – das Vorgehen • Vorstellung der Gesamt-Architektur Nur URL Design HTML, JavaScript, etc. keine GUI Controller Fokus Aktoren / Akka ausgespart JPA Persistenz 12 msg systems ag, 20.09.2012
  • 13. Preisberechnung – das Vorgehen • Definition der API – das Routing 13 msg systems ag, 20.09.2012
  • 14. Preisberechnung – das Vorgehen • Definition der API – das Routing 14 msg systems ag, 20.09.2012
  • 15. Preisberechnung – das Vorgehen • Definition der API – das Routing Die URL inklusive dynamischer Parameter /product/:name/price /product/Rasenmaeher/price 15 msg systems ag, 20.09.2012
  • 16. Preisberechnung – das Vorgehen die zugeordnete Handler- • Definition der API – der Handler Methode 16 msg systems ag, 20.09.2012
  • 17. Preisberechnung – das Vorgehen die zugeordnete Handler- • Definition der API – der Handler Methode 17 msg systems ag, 20.09.2012
  • 18. Skalierbarkeit mit Play • keine umfangreichen Sessions  dafür Caching • Wiederverwendung instanziierter Klassen für beliebige Aufrufe  keine lokalen Variablen oder ähnliches  Shared Nothing Ansatz  Beliebige Anzahl von Play-Instanzen können nebeneinander betrieben werden 18 msg systems ag, 20.09.2012
  • 19. Preisberechnung – das Vorgehen • Vorstellung der Gesamt-Architektur Nur URL Design HTML, JavaScript, etc. OK Controller Fokus Aktoren / Akka ausgespart JPA Persistenz 19 msg systems ag, 20.09.2012
  • 20. Preisberechnung – das Vorgehen • Durchführung der Berechnung • Verwendung von Aktoren Aktor repräsentiert eine Produkt-/Komponenteninstanz Aktor wird über Nachrichten angesprochen (vgl. Messaging/JMS) Aktor arbeitet gleichzeitig nur eine Nachricht ab • Es kann pro Objekt-Instanz eine Aktor-Instanz geben mit einer eigenen Message-Queue • Skalierbarkeit wird über Intra-JVM und Inter-JVM Verteilung erreicht 20 msg systems ag, 20.09.2012
  • 21. Preisberechnung – das Vorgehen • Durchführung der Berechnung Component Asynchron! Controller Recalculate Component ProductActor ProductActor Actor (Instance) ProductActor Product Update Actor (Instance) Asynchron! Persistenz 21 msg systems ag, 20.09.2012
  • 22. Skalierbarkeit mit Aktoren • Verwendung von Akka in einer JVM • Verteilung über mehrere JVM • Verwendung von Messaging (ZeroMQ) • Verwendung von Akka Cluster 22 msg systems ag, 20.09.2012
  • 23. Preisberechnung – Gesamtübersicht Lesender Teil Schreibender Teil Product Component Asynchron! ComponentActor Asynchron! Synchron! ProductActor Persistenz 23 msg systems ag, 20.09.2012
  • 24. Preisberechnung – Deployment Ist die Domäne isoliert fängt man klein an … Persistenz 24 msg systems ag, 20.09.2012
  • 25. Preisberechnung – Deployment Ist die Domäne isoliert … und wächst Elastizität durch Hinzufügen von Play-Instanzen. Jede weitere Instanz über- nimmt Last. Einsatz eines zentralen Caches Persistenz möglich. 25 msg systems ag, 20.09.2012
  • 26. Preisberechnung – Deployment Gibt es Restriktionen … werden Teile zusammengefasst Bei sehr vielen Aktoren können diese zentralisiert werden. Play bedient die Clients und interagiert mit den (verteilten) Aktoren. Persistenz 26 msg systems ag, 20.09.2012
  • 27. Zusammenfassung • Das Play!-Framework bietet eine solide Basis für moderne Web- Anwendungen „Shared Nothing“ Ansatz Fokus auf API-Design anstelle von GUI Integration mit Akka • Sehr kompakte und elegante Möglichkeit, Anwendungen auf verschiedene Cloud-Szenarien zu deployen Projekt-Beispiel und Folien: https://github.com/axelirriger/Informatik2012 27 msg systems ag, 20.09.2012
  • 28. Vielen Dank für Ihre Aufmerksamkeit Axel Irriger GB Telecommunications & Media Lead IT Consultant Telefon: +49 6196 7750-5418 axel.irriger@msg-systems.com www.msg-systems.com www.msg-systems.com 28 msg systems ag, 20.09.2012