SlideShare ist ein Scribd-Unternehmen logo
1 von 42
Downloaden Sie, um offline zu lesen
Zváračský kurz na BlazeDS


            Slovakia FUG
              Bratislava
              4.6. 2010

         Mgr. Juraj Michálek
             SinusGear

 Twitter: http://twitter.com/georgiksk
 Blog: http://georgik.sinusgear.com
Upozornenie!



Prezentované riešenia nie sú silver bullet
         ani magický lektvar.

        Časť problémov vyriešia.
         Nejaké nové prinesú.
Časti kurzu



Ako sa vyvíjú klient-server aplikácie?

     Prínos Google App Enginu.

Zvýšenie účinnosti pomocou BlazeDS.
Máme nápad!



Vytvoríme skvelú aplikáciu!
Klasický model


  Navrhnúť databázu.

Navrhúť dátovú vrstvu.

Navrhúť vrstvu s logikou
    a kontrolérmi.

 ... ešte sme neskončili
Klasický model - klient


   Navrhnúť rozhranie služby.
     (Web services, REST)

Navrhnúť serializáciu na klientovi.

Navhrnúť volanie serverového API.

   Ešte stále sme neskončili...
Klasický model - UI



Navrhnúť logiku na klientovi.

Navrhnúť GUI na klientovi.

      Máme hotovo?
Klasický model - nasadenie

             Nie, nie je hotovo!

            Nájsť/kúpiť hosting.

           Umiestniť na server.

      Testovacia a produkčná verzia.

     Zber logov a chybových hlásení.

A aplikácia nám doteraz nezarobila ani groš.
Náklady na klasický model


        Náklady - server.

         Náklady - klient.

 Náklady – komunikácia a hosting.

  Postupný nárast používateľov
Time to market



                Čo prosím?

     Nerozumiem syntaxi vášho kmeňa!

                  Vývojár:
„Ešte nemáme vyladený komunikačný protokol.“
Moment! To ešte nie je všetko!

      Zmeníme schému v DB?

         Musíme zmeniť:

              logiku

          serverové API

       dátovú vrstvu klienta

              klienta
Ako spieva Queens


Too much (love) features
 will kill you in the end.




 Pattern: Feature soup.
Hm?



      Položme si základnú otázku.



Prečo vlastne vôbec niekto vyvíja softvér?
Skúsme to veselšie a radostnejšie




Je vôbec možné zjednodušiť niektoré kroky?

        A tým znížiť cenu vývoja?
Príklad z priemyslu



      Automatizovať.

   Potrebujeme systém.

A hlavne: Potom potrebujeme
      ešte lepší systém.
Google App Engine
Bonusy


       Free hosting (až 10 app).

        Škálováteľnosť (nútená).

         Podpora Python/Java.

Deployment, integrácia s IDE, verzovanie
  aplikácií, SSL cert, sledovanie app,
             meranie výkonu.
GAE + Eclipse
GAE admin console
Log report
Ok, vyrišený hosting




Čo môžeme optimalizovať ďalej?

Databáza a mapovanie na objekty.
Podpora GAE (*.jar)


        Spring

      JPA, JDO

 DataNucleus Enhancer

          ...
JPA




    Anotácia z enterprise aplikácii.

   DB sa vytvára na základe kódu.
http://code.google.com/intl/sk-SK/appengine/docs/java/datastore/usingjpa.html
Zmena v App




JPA replikuje zmenu
  schémy do DB.

      Milé :-)
Klient / server


       API.

       Au.

  Zmena API?

 Ste sa zbláznili!
Super API na prvý krát?




    Jedine Chuck Norris!
Flash Builder?


Pripojenie na web aplikáciu?

     Service discovery.
Zadám adresu a...
Zázrak




Funguje aj drag-n-drop
    do datagridu.
No, ale zmením adresu



A všetky parametre operácie povedia

             pápá :-(

           Evil Wizard?
Remote Discovery Service




Podpora pre PHP, LiveCycle a BlazeDS.

       Zadám URL serveru a...
Zázrak




       Mám operácie.

Dokonca funguje aj update API!
Tralálá



        Funguje to!

A teraz to dostať na server.

 Vlastný Tomcat? Hmhm.
BlazeDS na GAE

Vytvoríme server aplikáciu.
Google App Engine project.


      Skopírujeme
        JARy z
       BlazeDS.

     Pridáme trochu
      XML omáčky.
Spustíme!



           Jetty server.

Ako to tak chodí u vývojára to ide.

           A v cloude?
Ale veď to poznáte...



          Error!

  Duplicated Session....


           :-O
Drobná úprava




   Patchneme a prekompilujeme BlazeDS.

(ak niekto potrebujete hotový JAR, dajte vedieť)
A všetko krásne chodí




         :-)
Gartner Hype Cycle - zamyslenie



          GAE a FB?
            Asi tu.




           Zdroj: Wikipedia.org
Software Engineering Radio

   Model driven development




     http://www.se-radio.net
Priestor na otázky.



        Mgr. Juraj Michálek
            SinusGear

Twitter: http://twitter.com/georgiksk
Blog: http://georgik.sinusgear.com
Ďakujem za pozornosť


           Slovakia FUG
             Bratislava
             4.6. 2010

        Mgr. Juraj Michálek
            SinusGear

Twitter: http://twitter.com/georgiksk
Blog: http://georgik.sinusgear.com

Weitere ähnliche Inhalte

Ähnlich wie Zváračský kurz na BlazeDS a Google App Engine

Require.JS & Backbone.JS
Require.JS & Backbone.JSRequire.JS & Backbone.JS
Require.JS & Backbone.JSsrigi
 
Návrh a realizácia web stránky skriptovacím jazykom PHP vrátane administračné...
Návrh a realizácia web stránky skriptovacím jazykom PHP vrátane administračné...Návrh a realizácia web stránky skriptovacím jazykom PHP vrátane administračné...
Návrh a realizácia web stránky skriptovacím jazykom PHP vrátane administračné...Catana0605
 
Počítačová podpora procesného modelovania s pomocou BPMN
Počítačová podpora procesného modelovania s pomocou BPMNPočítačová podpora procesného modelovania s pomocou BPMN
Počítačová podpora procesného modelovania s pomocou BPMNMiroslav Reiter
 
AppMonitor Insight Edition
AppMonitor Insight EditionAppMonitor Insight Edition
AppMonitor Insight EditionAdam Lieskovsky
 
Wordcamp 2015, Juraj Hanták - Ako zvládnúť rast webu
Wordcamp 2015, Juraj Hanták - Ako zvládnúť rast webuWordcamp 2015, Juraj Hanták - Ako zvládnúť rast webu
Wordcamp 2015, Juraj Hanták - Ako zvládnúť rast webuWebglobe - Yegon
 
Posun od Microsoft Exchange ku Google Apps
Posun od Microsoft Exchange ku Google AppsPosun od Microsoft Exchange ku Google Apps
Posun od Microsoft Exchange ku Google AppsInnova Apps
 
Design mobilnych aplikacii
Design mobilnych aplikaciiDesign mobilnych aplikacii
Design mobilnych aplikaciiSCR®
 
Deltacloud Presentation OpenHouse 2010
Deltacloud Presentation OpenHouse 2010Deltacloud Presentation OpenHouse 2010
Deltacloud Presentation OpenHouse 2010Michal Fojtik
 
Prezentácia: Diplomový seminár 2
Prezentácia: Diplomový seminár 2Prezentácia: Diplomový seminár 2
Prezentácia: Diplomový seminár 2guest3604661
 
Uvod do shaderov v UE4 [ sk ]
Uvod do shaderov v UE4 [ sk ]Uvod do shaderov v UE4 [ sk ]
Uvod do shaderov v UE4 [ sk ]UnrealUGSK
 
Možnosti využívania metód analýzy časových radov na úrovni podniku
Možnosti využívania metód analýzy časových radov na úrovni podnikuMožnosti využívania metód analýzy časových radov na úrovni podniku
Možnosti využívania metód analýzy časových radov na úrovni podnikuMiroslav Reiter
 
Ako si vybrať programovací jazyk a framework?
Ako si vybrať programovací jazyk a framework?Ako si vybrať programovací jazyk a framework?
Ako si vybrať programovací jazyk a framework?Jano Suchal
 
Drupal a OOP [DrupalCamp SK 2013]
Drupal a OOP [DrupalCamp SK 2013]Drupal a OOP [DrupalCamp SK 2013]
Drupal a OOP [DrupalCamp SK 2013]David Lukac
 
Drupal a OOP [DrupalCamp SK 2013]
Drupal a OOP [DrupalCamp SK 2013]Drupal a OOP [DrupalCamp SK 2013]
Drupal a OOP [DrupalCamp SK 2013]David Lukac
 
Drupal ako nízkonákladová platforma pre business web aplikácie
Drupal ako nízkonákladová platforma pre business web aplikácieDrupal ako nízkonákladová platforma pre business web aplikácie
Drupal ako nízkonákladová platforma pre business web aplikácieJozef Toth
 
Junior Internet 2015 - PHP moderne a správne
Junior Internet 2015 - PHP moderne a správneJunior Internet 2015 - PHP moderne a správne
Junior Internet 2015 - PHP moderne a správneTomáš Tatarko
 
Co umí špičkové technologie pro e-mailing
Co umí špičkové technologie pro e-mailing Co umí špičkové technologie pro e-mailing
Co umí špičkové technologie pro e-mailing Colpirio.com s.r.o.
 
Node.js @ Rubyslava
Node.js @ RubyslavaNode.js @ Rubyslava
Node.js @ RubyslavaIvan Srba
 

Ähnlich wie Zváračský kurz na BlazeDS a Google App Engine (20)

Cv_sk
Cv_skCv_sk
Cv_sk
 
Require.JS & Backbone.JS
Require.JS & Backbone.JSRequire.JS & Backbone.JS
Require.JS & Backbone.JS
 
Návrh a realizácia web stránky skriptovacím jazykom PHP vrátane administračné...
Návrh a realizácia web stránky skriptovacím jazykom PHP vrátane administračné...Návrh a realizácia web stránky skriptovacím jazykom PHP vrátane administračné...
Návrh a realizácia web stránky skriptovacím jazykom PHP vrátane administračné...
 
Počítačová podpora procesného modelovania s pomocou BPMN
Počítačová podpora procesného modelovania s pomocou BPMNPočítačová podpora procesného modelovania s pomocou BPMN
Počítačová podpora procesného modelovania s pomocou BPMN
 
AppMonitor Insight Edition
AppMonitor Insight EditionAppMonitor Insight Edition
AppMonitor Insight Edition
 
Flask vs django
Flask vs djangoFlask vs django
Flask vs django
 
Wordcamp 2015, Juraj Hanták - Ako zvládnúť rast webu
Wordcamp 2015, Juraj Hanták - Ako zvládnúť rast webuWordcamp 2015, Juraj Hanták - Ako zvládnúť rast webu
Wordcamp 2015, Juraj Hanták - Ako zvládnúť rast webu
 
Posun od Microsoft Exchange ku Google Apps
Posun od Microsoft Exchange ku Google AppsPosun od Microsoft Exchange ku Google Apps
Posun od Microsoft Exchange ku Google Apps
 
Design mobilnych aplikacii
Design mobilnych aplikaciiDesign mobilnych aplikacii
Design mobilnych aplikacii
 
Deltacloud Presentation OpenHouse 2010
Deltacloud Presentation OpenHouse 2010Deltacloud Presentation OpenHouse 2010
Deltacloud Presentation OpenHouse 2010
 
Prezentácia: Diplomový seminár 2
Prezentácia: Diplomový seminár 2Prezentácia: Diplomový seminár 2
Prezentácia: Diplomový seminár 2
 
Uvod do shaderov v UE4 [ sk ]
Uvod do shaderov v UE4 [ sk ]Uvod do shaderov v UE4 [ sk ]
Uvod do shaderov v UE4 [ sk ]
 
Možnosti využívania metód analýzy časových radov na úrovni podniku
Možnosti využívania metód analýzy časových radov na úrovni podnikuMožnosti využívania metód analýzy časových radov na úrovni podniku
Možnosti využívania metód analýzy časových radov na úrovni podniku
 
Ako si vybrať programovací jazyk a framework?
Ako si vybrať programovací jazyk a framework?Ako si vybrať programovací jazyk a framework?
Ako si vybrať programovací jazyk a framework?
 
Drupal a OOP [DrupalCamp SK 2013]
Drupal a OOP [DrupalCamp SK 2013]Drupal a OOP [DrupalCamp SK 2013]
Drupal a OOP [DrupalCamp SK 2013]
 
Drupal a OOP [DrupalCamp SK 2013]
Drupal a OOP [DrupalCamp SK 2013]Drupal a OOP [DrupalCamp SK 2013]
Drupal a OOP [DrupalCamp SK 2013]
 
Drupal ako nízkonákladová platforma pre business web aplikácie
Drupal ako nízkonákladová platforma pre business web aplikácieDrupal ako nízkonákladová platforma pre business web aplikácie
Drupal ako nízkonákladová platforma pre business web aplikácie
 
Junior Internet 2015 - PHP moderne a správne
Junior Internet 2015 - PHP moderne a správneJunior Internet 2015 - PHP moderne a správne
Junior Internet 2015 - PHP moderne a správne
 
Co umí špičkové technologie pro e-mailing
Co umí špičkové technologie pro e-mailing Co umí špičkové technologie pro e-mailing
Co umí špičkové technologie pro e-mailing
 
Node.js @ Rubyslava
Node.js @ RubyslavaNode.js @ Rubyslava
Node.js @ Rubyslava
 

Mehr von Juraj Michálek

Rust Embedded Development on ESP32 and basics of Async with Embassy
Rust Embedded Development on ESP32 and basics of Async with EmbassyRust Embedded Development on ESP32 and basics of Async with Embassy
Rust Embedded Development on ESP32 and basics of Async with EmbassyJuraj Michálek
 
Embedded Development on ESP32 - FEKT VUT - UREL
Embedded Development on ESP32 - FEKT VUT - URELEmbedded Development on ESP32 - FEKT VUT - UREL
Embedded Development on ESP32 - FEKT VUT - URELJuraj Michálek
 
Embedded Rust on ESP2 - Rust Linz
Embedded Rust on ESP2 - Rust LinzEmbedded Rust on ESP2 - Rust Linz
Embedded Rust on ESP2 - Rust LinzJuraj Michálek
 
How Open Source Community and Espressif made it possible to use Rust language...
How Open Source Community and Espressif made it possible to use Rust language...How Open Source Community and Espressif made it possible to use Rust language...
How Open Source Community and Espressif made it possible to use Rust language...Juraj Michálek
 
C language in our world 2019
C language in our world 2019C language in our world 2019
C language in our world 2019Juraj Michálek
 
C language in our world 2017
C language in our world 2017C language in our world 2017
C language in our world 2017Juraj Michálek
 
Continuous Delivery - FIT VUT
Continuous Delivery - FIT VUTContinuous Delivery - FIT VUT
Continuous Delivery - FIT VUTJuraj Michálek
 
C language in our world 2016
C language in our world 2016C language in our world 2016
C language in our world 2016Juraj Michálek
 
C++ and Software Engineering 2015
C++ and Software Engineering 2015C++ and Software Engineering 2015
C++ and Software Engineering 2015Juraj Michálek
 
C language in our world 2015
C language in our world 2015C language in our world 2015
C language in our world 2015Juraj Michálek
 
Bigger & Better RnD - GeeCON.cz 2014
Bigger & Better RnD - GeeCON.cz 2014Bigger & Better RnD - GeeCON.cz 2014
Bigger & Better RnD - GeeCON.cz 2014Juraj Michálek
 
Gradle and build systems for C language
Gradle and build systems for C languageGradle and build systems for C language
Gradle and build systems for C languageJuraj Michálek
 
The story behind PF2014 - Cordova
The story behind PF2014 - CordovaThe story behind PF2014 - Cordova
The story behind PF2014 - CordovaJuraj Michálek
 
PowerShell from *nix user perspective
PowerShell from *nix user perspectivePowerShell from *nix user perspective
PowerShell from *nix user perspectiveJuraj Michálek
 
Ať se z kódu nepráší! 2013
Ať se z kódu nepráší! 2013Ať se z kódu nepráší! 2013
Ať se z kódu nepráší! 2013Juraj Michálek
 
Libraries and tools for C++
Libraries and tools for C++Libraries and tools for C++
Libraries and tools for C++Juraj Michálek
 

Mehr von Juraj Michálek (20)

Rust Embedded Development on ESP32 and basics of Async with Embassy
Rust Embedded Development on ESP32 and basics of Async with EmbassyRust Embedded Development on ESP32 and basics of Async with Embassy
Rust Embedded Development on ESP32 and basics of Async with Embassy
 
Embedded Development on ESP32 - FEKT VUT - UREL
Embedded Development on ESP32 - FEKT VUT - URELEmbedded Development on ESP32 - FEKT VUT - UREL
Embedded Development on ESP32 - FEKT VUT - UREL
 
Embedded Rust on ESP2 - Rust Linz
Embedded Rust on ESP2 - Rust LinzEmbedded Rust on ESP2 - Rust Linz
Embedded Rust on ESP2 - Rust Linz
 
How Open Source Community and Espressif made it possible to use Rust language...
How Open Source Community and Espressif made it possible to use Rust language...How Open Source Community and Espressif made it possible to use Rust language...
How Open Source Community and Espressif made it possible to use Rust language...
 
C language in our world 2019
C language in our world 2019C language in our world 2019
C language in our world 2019
 
C language in our world 2017
C language in our world 2017C language in our world 2017
C language in our world 2017
 
Continuous Delivery - FIT VUT
Continuous Delivery - FIT VUTContinuous Delivery - FIT VUT
Continuous Delivery - FIT VUT
 
C language in our world 2016
C language in our world 2016C language in our world 2016
C language in our world 2016
 
Story behind PF 2016
Story behind PF 2016Story behind PF 2016
Story behind PF 2016
 
C++ and Software Engineering 2015
C++ and Software Engineering 2015C++ and Software Engineering 2015
C++ and Software Engineering 2015
 
C language in our world 2015
C language in our world 2015C language in our world 2015
C language in our world 2015
 
C++ in our world
C++ in our worldC++ in our world
C++ in our world
 
Bigger & Better RnD - GeeCON.cz 2014
Bigger & Better RnD - GeeCON.cz 2014Bigger & Better RnD - GeeCON.cz 2014
Bigger & Better RnD - GeeCON.cz 2014
 
Gradle and build systems for C language
Gradle and build systems for C languageGradle and build systems for C language
Gradle and build systems for C language
 
The story behind PF2014 - Cordova
The story behind PF2014 - CordovaThe story behind PF2014 - Cordova
The story behind PF2014 - Cordova
 
There is more to C 2013
There is more to C 2013There is more to C 2013
There is more to C 2013
 
PowerShell UIAtomation
PowerShell UIAtomationPowerShell UIAtomation
PowerShell UIAtomation
 
PowerShell from *nix user perspective
PowerShell from *nix user perspectivePowerShell from *nix user perspective
PowerShell from *nix user perspective
 
Ať se z kódu nepráší! 2013
Ať se z kódu nepráší! 2013Ať se z kódu nepráší! 2013
Ať se z kódu nepráší! 2013
 
Libraries and tools for C++
Libraries and tools for C++Libraries and tools for C++
Libraries and tools for C++
 

Zváračský kurz na BlazeDS a Google App Engine

  • 1. Zváračský kurz na BlazeDS Slovakia FUG Bratislava 4.6. 2010 Mgr. Juraj Michálek SinusGear Twitter: http://twitter.com/georgiksk Blog: http://georgik.sinusgear.com
  • 2. Upozornenie! Prezentované riešenia nie sú silver bullet ani magický lektvar. Časť problémov vyriešia. Nejaké nové prinesú.
  • 3. Časti kurzu Ako sa vyvíjú klient-server aplikácie? Prínos Google App Enginu. Zvýšenie účinnosti pomocou BlazeDS.
  • 5. Klasický model Navrhnúť databázu. Navrhúť dátovú vrstvu. Navrhúť vrstvu s logikou a kontrolérmi. ... ešte sme neskončili
  • 6. Klasický model - klient Navrhnúť rozhranie služby. (Web services, REST) Navrhnúť serializáciu na klientovi. Navhrnúť volanie serverového API. Ešte stále sme neskončili...
  • 7. Klasický model - UI Navrhnúť logiku na klientovi. Navrhnúť GUI na klientovi. Máme hotovo?
  • 8. Klasický model - nasadenie Nie, nie je hotovo! Nájsť/kúpiť hosting. Umiestniť na server. Testovacia a produkčná verzia. Zber logov a chybových hlásení. A aplikácia nám doteraz nezarobila ani groš.
  • 9. Náklady na klasický model Náklady - server. Náklady - klient. Náklady – komunikácia a hosting. Postupný nárast používateľov
  • 10. Time to market Čo prosím? Nerozumiem syntaxi vášho kmeňa! Vývojár: „Ešte nemáme vyladený komunikačný protokol.“
  • 11. Moment! To ešte nie je všetko! Zmeníme schému v DB? Musíme zmeniť: logiku serverové API dátovú vrstvu klienta klienta
  • 12. Ako spieva Queens Too much (love) features will kill you in the end. Pattern: Feature soup.
  • 13. Hm? Položme si základnú otázku. Prečo vlastne vôbec niekto vyvíja softvér?
  • 14. Skúsme to veselšie a radostnejšie Je vôbec možné zjednodušiť niektoré kroky? A tým znížiť cenu vývoja?
  • 15. Príklad z priemyslu Automatizovať. Potrebujeme systém. A hlavne: Potom potrebujeme ešte lepší systém.
  • 17. Bonusy Free hosting (až 10 app). Škálováteľnosť (nútená). Podpora Python/Java. Deployment, integrácia s IDE, verzovanie aplikácií, SSL cert, sledovanie app, meranie výkonu.
  • 21. Ok, vyrišený hosting Čo môžeme optimalizovať ďalej? Databáza a mapovanie na objekty.
  • 22. Podpora GAE (*.jar) Spring JPA, JDO DataNucleus Enhancer ...
  • 23. JPA Anotácia z enterprise aplikácii. DB sa vytvára na základe kódu. http://code.google.com/intl/sk-SK/appengine/docs/java/datastore/usingjpa.html
  • 24. Zmena v App JPA replikuje zmenu schémy do DB. Milé :-)
  • 25. Klient / server API. Au. Zmena API? Ste sa zbláznili!
  • 26. Super API na prvý krát? Jedine Chuck Norris!
  • 27. Flash Builder? Pripojenie na web aplikáciu? Service discovery.
  • 30. No, ale zmením adresu A všetky parametre operácie povedia pápá :-( Evil Wizard?
  • 31. Remote Discovery Service Podpora pre PHP, LiveCycle a BlazeDS. Zadám URL serveru a...
  • 32. Zázrak Mám operácie. Dokonca funguje aj update API!
  • 33. Tralálá Funguje to! A teraz to dostať na server. Vlastný Tomcat? Hmhm.
  • 34. BlazeDS na GAE Vytvoríme server aplikáciu. Google App Engine project. Skopírujeme JARy z BlazeDS. Pridáme trochu XML omáčky.
  • 35. Spustíme! Jetty server. Ako to tak chodí u vývojára to ide. A v cloude?
  • 36. Ale veď to poznáte... Error! Duplicated Session.... :-O
  • 37. Drobná úprava Patchneme a prekompilujeme BlazeDS. (ak niekto potrebujete hotový JAR, dajte vedieť)
  • 38. A všetko krásne chodí :-)
  • 39. Gartner Hype Cycle - zamyslenie GAE a FB? Asi tu. Zdroj: Wikipedia.org
  • 40. Software Engineering Radio Model driven development http://www.se-radio.net
  • 41. Priestor na otázky. Mgr. Juraj Michálek SinusGear Twitter: http://twitter.com/georgiksk Blog: http://georgik.sinusgear.com
  • 42. Ďakujem za pozornosť Slovakia FUG Bratislava 4.6. 2010 Mgr. Juraj Michálek SinusGear Twitter: http://twitter.com/georgiksk Blog: http://georgik.sinusgear.com