google app engine. tworzenie wydajnych aplikacji w javie cała książka.pdf

(10743 KB) Pobierz
1248850602.001.png
Spis treści
Wprowadzenie ............................................................................................................... 13
Podzikowania .............................................................................................................. 21
O autorze ....................................................................................................................... 23
I
Wprowadzenie do App Engine ......................................................................... 25
1 Konfiguracja rodowiska ............................................................................................... 27
Praca z Eclipse .............................................................................................................................. 27
Instalacja wtyczek Eclipse ....................................................................................................... 28
Utworzenie nowego projektu App Engine ............................................................................... 31
Uruchomienie serwera roboczego .......................................................................................... 33
Wdroenie aplikacji na serwerach Google .............................................................................. 36
Wdraanie z linii polece ............................................................................................................... 39
Uruchamianie serwera roboczego z linii polece ................................................................... 40
Wdraanie aplikacji App Engine z linii polece ....................................................................... 40
Podsumowanie .............................................................................................................................. 40
2 Wydajno w rodowisku App Engine ............................................................................. 41
Wydajno w chmurze .................................................................................................................. 41
Porównanie App Engine z tradycyjnymi aplikacjami internetowymi ....................................... 42
Optymalizacja kosztów zasobów ............................................................................................ 42
Pomiar kosztów adowania klas .................................................................................................... 42
Czas uruchomienia serwletu zawierajcego zewntrzn bibliotek ....................................... 43
Czas uruchomienia serwletu niezawierajcego zewntrznej biblioteki ................................... 44
Zmniejszenie objtoci pliku web.xml ..................................................................................... 45
 
6
Spis treci
Unikanie zimnych uruchomie ...................................................................................................... 47
Rezerwacja stale czynnych instancji ....................................................................................... 47
Wstpne adowanie klas przy uyciu da rozgrzewajcych ................................................ 48
Obsuga wspóbienych da w sposób bezpieczny dla wtków ............................................ 48
Obsuga da wymagajcych duej iloci pamici za pomoc instancji typu backend ...... 48
Ogólna poprawa wydajnoci ......................................................................................................... 49
Optymalizacja modelu danych pod ktem wydajnoci .......................................................... 49
Unikanie nadmiarowych oblicze przy uyciu cache .............................................................. 49
Odraczanie dugotrwaych zada za pomoc kolejki zada .................................................. 49
Poprawa szybkoci adowania stron w przegldarce ............................................................. 50
Asynchroniczne API ................................................................................................................. 50
Optymalizacja aplikacji przed jej wdroeniem ........................................................................ 50
Podsumowanie .............................................................................................................................. 51
II Podstawy projektowania aplikacji ................................................................... 53
3 Anatomia aplikacji Google App Engine ........................................................................... 55
Przesyanie plików w celu wykonania dynamicznego wdroenia ................................................. 55
Struktura katalogów ....................................................................................................................... 56
Ustawianie parametrów wdroenia ......................................................................................... 58
Uruchamianie zada okresowych ........................................................................................... 61
Okrelenie indeksów w magazynie danych ............................................................................ 61
Blokowanie zakresów IP .......................................................................................................... 62
Konfiguracja poziomów logowania ......................................................................................... 63
Konfiguracja kolejek zada .....................................................................................................63
Zabezpieczanie URL ............................................................................................................... 63
Konfiguracja panelu administracyjnego ........................................................................................ 64
Podstawy aplikacji ................................................................................................................... 65
Aktualna wersja ....................................................................................................................... 65
Dodawanie uytkowników ....................................................................................................... 66
Naliczanie opat ....................................................................................................................... 67
Podsumowanie .............................................................................................................................. 67
4 Modelowanie danych na potrzeby magazynu Google App Engine Datastore .................... 69
Odwrót od relacyjnych magazynów danych ................................................................................. 69
Denormalizacja danych ........................................................................................................... 70
Agregacja danych bez zcze ............................................................................................... 70
Projektowanie danych bezschematowych .............................................................................. 71
Modelowanie danych .................................................................................................................... 71
Projektowanie na poziomie mikro ........................................................................................... 71
Wybór waciwoci .................................................................................................................. 73
Rozdzielenie encji .................................................................................................................... 73
Spis treci
7
Tworzenie i utrzymywanie relacji pomidzy encjami ............................................................... 74
Relacje jeden do wielu i wiele do wielu ................................................................................... 75
Praca z danymi .............................................................................................................................. 76
Transakcje ............................................................................................................................... 76
Zapytania ................................................................................................................................. 77
Tworzenie indeksów ................................................................................................................ 78
Aktualizacja wersji aplikacji korzystajcej z Datastore ............................................................ 78
Podsumowanie .............................................................................................................................. 79
5 Projektowanie aplikacji ................................................................................................. 81
Zbieranie wymaga ....................................................................................................................... 81
Wybór zestawu narzdzi ............................................................................................................... 82
Wybór frameworku .................................................................................................................. 82
Wybór systemu szablonów ..................................................................................................... 84
Wybór bibliotek ........................................................................................................................ 85
Decyzje projektowe ....................................................................................................................... 86
Modelowanie danych .............................................................................................................. 86
Modelowanie adresów URL .................................................................................................... 88
Przechodzenie pomidzy stronami ......................................................................................... 89
Podsumowanie .............................................................................................................................. 89
III Podstawy projektowania interfejsu uytkownika ............................................. 91
6 Tworzenie interfejsu uytkownika w HTML5 ................................................................... 93
Powitajmy HTML5 .......................................................................................................................... 93
Stosowanie nowych znaczników HTML5 ...................................................................................... 94
Rysowanie po pótnie .................................................................................................................... 96
Przeciganie i upuszczanie na stronach ....................................................................................... 97
Ciekawe elementy formularzy ....................................................................................................... 99
Wykrywanie lokalizacji uytkownika ............................................................................................ 100
Przechowywanie danych po stronie klienta ................................................................................ 101
Przechowywanie danych pomidzy sesjami ......................................................................... 102
Przechowywanie danych sesyjnych ...................................................................................... 103
Odpytywanie ustrukturyzowanych danych z wykorzystaniem lokalnej bazy danych SQL ... 104
Podsumowanie ............................................................................................................................ 106
7 Modyfikacja ukadu strony za pomoc CSS .................................................................. 107
Wskazywanie elementów za pomoc CSS3 ............................................................................... 107
Obliczanie szczegóowoci ................................................................................................... 108
Identyfikatory ......................................................................................................................... 108
Wskazywanie klas .................................................................................................................. 110
Wskazywanie pseudoklas ..................................................................................................... 110
Wskazywanie atrybutów ........................................................................................................ 111
8
Spis treci
Wskazywanie elementów ...................................................................................................... 112
Wskazywanie pseudoelementów .......................................................................................... 112
Nowe efekty graficzne CSS3 ....................................................................................................... 113
Zaokrglone krawdzie ......................................................................................................... 115
Animacje 2D .......................................................................................................................... 116
Animacje 3D .......................................................................................................................... 118
Podsumowanie ............................................................................................................................ 119
8 Statyczna interakcja z wykorzystaniem kodu JavaScript .............................................. 121
Uproszczony przykad ................................................................................................................. 121
Uporzdkowanie kodu HTML dziki zastosowaniu dyskretnego JavaScriptu ........................... 124
Zmniejszenie zalenoci od JavaScriptu poprzez stopniowe rozszerzanie HTML-a .................. 128
Optymalizacja wydajnoci za pomoc delegacji zdarze .............................................................. 130
Unikanie zmiennych globalnych .................................................................................................. 132
Podsumowanie ............................................................................................................................ 134
9 Dynamiczna interakcja z wykorzystaniem technologii AJAX ......................................... 135
AJAX na sposób klasyczny, bez frameworków ........................................................................... 135
Komunikacja z serwerem za pomoc XML-a ........................................................................ 136
Komunikacja z serwerem za pomoc formatu JSON ........................................................... 138
Komunikacja z serwerem za pomoc HTML-a ..................................................................... 140
Google App Engine Channel API ................................................................................................ 141
Otwarcie kanau przez serwer ............................................................................................... 142
Obsuga komunikatów po stronie klienta .............................................................................. 144
Podsumowanie ............................................................................................................................ 146
IV Korzystanie z popularnych API App Engine ................................................... 147
10 Skadowanie danych w magazynach Datastore i Blobstore ........................................... 149
Synchroniczne przetwarzanie danych ......................................................................................... 149
Synchroniczne skadowanie danych ..................................................................................... 150
Synchroniczne odpytywanie danych ..................................................................................... 153
Synchroniczne pobieranie danych ........................................................................................ 154
Asynchroniczne przetwarzanie danych ....................................................................................... 156
Asynchroniczne skadowanie danych ................................................................................... 156
Asynchroniczne odpytywanie danych ................................................................................... 158
Asynchroniczne pobieranie danych ...................................................................................... 159
Ustanawianie transakcji ............................................................................................................... 160
Wieloorganizacyjno i przestrzenie nazw ............................................................................ 162
Skadowanie i pobieranie duych plików .................................................................................... 164
Skadowanie duych plików w Blobstore .............................................................................. 164
Odpytywanie Blobstore ......................................................................................................... 166
Pobieranie plików z Blobstore ............................................................................................... 168
Zgłoś jeśli naruszono regulamin