reklama - zainteresowany?

Google App Engine. Tworzenie wydajnych aplikacji w Javie - Helion

Google App Engine. Tworzenie wydajnych aplikacji w Javie
Autor: Adriaan de Jonge
Tytuł oryginału: Essential App Engine: Building High-Performance Java Apps with Google App Engine
TÅ‚umaczenie: Justyna Walkowska
ISBN: 978-83-246-4689-0
stron: 304, Format: 170x230 , okładka: miękka
Data wydania: 2012-09-10
Księgarnia: Helion

Cena książki: 54,90 zł

Dodaj do koszyka Google App Engine. Tworzenie wydajnych aplikacji w Javie

Tagi: Java - Programowanie | programowanie-kupon

Od projektu do wdrożenia!

Google App Engine to idealny przykład usługi PaaS (ang. Platform as a Service). W tym modelu płaci się wyłącznie za wykorzystane zasoby dostawcy. Pozwala to na budowanie niezwykle elastycznych rozwiązań informatycznych. Jednak największą zaletą z perspektywy użytkownika tego rozwiązania jest brak konieczności utrzymywania własnej infrastruktury. Niezależnie od sytuacji, będziesz zawsze przygotowany na obsłużenie dowolnie dużego ruchu, a to naprawdę się opłaca!

Dzięki tej książce błyskawicznie rozpoczniesz przygodę z platformą Google App Engine. Autor pokaże Ci, jak szybko tworzyć złożone i wydajne aplikacje w chmurze Google. Zaprezentuje przełomowe techniki, pozwalające na skonstruowanie aplikacji, które są w stanie odpowiedzieć na żądanie w ciągu dwóch sekund przy tzw. zimnym uruchomieniu i w ciągu co najwyżej setek milisekund podczas normalnego działania w pozostałej części sesji. W trakcie lektury dowiesz się, jak uniknąć najczęstszych błędów, które dramatycznie pogarszają wydajność i skalowalność aplikacji w chmurze, oraz poznasz najświeższe technologie do tworzenia interfejsów użytkownika. Proces powstawania aplikacji omówiony został od podstaw - od projektowania i modelowania danych, przez bezpieczeństwo i testowanie, aż po wdrożenie.

Po lekturze tej książki:

  • swobodnie zainstalujesz aplikacjÄ™ na platformie Google App Engine
  • skorzystasz z dodatkowych możliwoÅ›ci platformy
  • bÄ™dziesz przechowywać dane w Datastore’ach
  • stworzysz w peÅ‚ni bezpieczne rozwiÄ…zanie
  • zagwarantujesz Twojej aplikacji najlepszÄ… infrastrukturÄ™!

Zagwarantuj najlepszą wydajność Twojej aplikacji w każdych warunkach!

Dodaj do koszyka Google App Engine. Tworzenie wydajnych aplikacji w Javie

 

Osoby które kupowały "Google App Engine. Tworzenie wydajnych aplikacji w Javie", wybierały także:

  • Zrozum struktury danych. Algorytmy i praca na danych w Javie
  • Wprowadzenie do Javy. Programowanie i struktury danych. Wydanie XII
  • Java. Najlepsze rozwiÄ…zania zadaÅ„ programistycznych. Receptury. Wydanie IV
  • Programowanie w Javie. Solidna wiedza w praktyce. Wydanie XI
  • JavaFX. Kurs video. Wzorce oraz typy generyczne

Dodaj do koszyka Google App Engine. Tworzenie wydajnych aplikacji w Javie

Spis treści

Google App Engine. Tworzenie wydajnych aplikacji w Javie -- spis treści

Wprowadzenie (13)

Podziękowania (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)
    • Wdrożenie aplikacji na serwerach Google (36)
  • Wdrażanie z linii poleceÅ„ (39)
    • Uruchamianie serwera roboczego z linii poleceÅ„ (40)
    • Wdrażanie 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 zawierajÄ…cego zewnÄ™trznÄ… bibliotekÄ™ (43)
    • Czas uruchomienia serwletu niezawierajÄ…cego zewnÄ™trznej biblioteki (44)
    • Zmniejszenie objÄ™toÅ›ci pliku web.xml (45)
  • Unikanie zimnych uruchomieÅ„ (47)
    • Rezerwacja stale czynnych instancji (47)
    • WstÄ™pne Å‚adowanie klas przy użyciu żądaÅ„ rozgrzewajÄ…cych (48)
    • ObsÅ‚uga współbieżnych żądaÅ„ w sposób bezpieczny dla wÄ…tków (48)
    • ObsÅ‚uga żądaÅ„ wymagajÄ…cych dużej iloÅ›ci pamiÄ™ci za pomocÄ… instancji typu backend (48)
  • Ogólna poprawa wydajnoÅ›ci (49)
    • Optymalizacja modelu danych pod kÄ…tem wydajnoÅ›ci (49)
    • Unikanie nadmiarowych obliczeÅ„ przy użyciu cache (49)
    • Odraczanie dÅ‚ugotrwaÅ‚ych zadaÅ„ za pomocÄ… kolejki zadaÅ„ (49)
    • Poprawa szybkoÅ›ci Å‚adowania stron w przeglÄ…darce (50)
    • Asynchroniczne API (50)
    • Optymalizacja aplikacji przed jej wdrożeniem (50)
  • Podsumowanie (51)

II Podstawy projektowania aplikacji (53)

3. Anatomia aplikacji Google App Engine (55)

  • PrzesyÅ‚anie plików w celu wykonania dynamicznego wdrożenia (55)
  • Struktura katalogów (56)
    • Ustawianie parametrów wdrożenia (58)
    • Uruchamianie zadaÅ„ okresowych (61)
    • OkreÅ›lenie 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 użytkowników (66)
    • Naliczanie opÅ‚at (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 zÅ‚Ä…czeÅ„ (70)
    • Projektowanie danych bezschematowych (71)
  • Modelowanie danych (71)
    • Projektowanie na poziomie mikro (71)
    • Wybór wÅ‚aÅ›ciwoÅ›ci (73)
    • Rozdzielenie encji (73)
    • Tworzenie i utrzymywanie relacji pomiÄ™dzy 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 korzystajÄ…cej z Datastore (78)
  • Podsumowanie (79)

5. Projektowanie aplikacji (81)

  • Zbieranie wymagaÅ„ (81)
  • Wybór zestawu narzÄ™dzi (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 pomiÄ™dzy stronami (89)
  • Podsumowanie (89)

III Podstawy projektowania interfejsu użytkownika (91)

6. Tworzenie interfejsu użytkownika w HTML5 (93)

  • Powitajmy HTML5 (93)
  • Stosowanie nowych znaczników HTML5 (94)
  • Rysowanie po płótnie (96)
  • PrzeciÄ…ganie i upuszczanie na stronach (97)
  • Ciekawe elementy formularzy (99)
  • Wykrywanie lokalizacji użytkownika (100)
  • Przechowywanie danych po stronie klienta (101)
    • Przechowywanie danych pomiÄ™dzy sesjami (102)
    • Przechowywanie danych sesyjnych (103)
    • Odpytywanie ustrukturyzowanych danych z wykorzystaniem lokalnej bazy danych SQL (104)
  • Podsumowanie (106)

7. Modyfikacja układu strony za pomocą CSS (107)

  • Wskazywanie elementów za pomocÄ… CSS3 (107)
    • Obliczanie szczegółowoÅ›ci (108)
    • Identyfikatory (108)
    • Wskazywanie klas (110)
    • Wskazywanie pseudoklas (110)
    • Wskazywanie atrybutów (111)
    • Wskazywanie elementów (112)
    • Wskazywanie pseudoelementów (112)
  • Nowe efekty graficzne CSS3 (113)
    • ZaokrÄ…glone krawÄ™dzie (115)
    • Animacje 2D (116)
    • Animacje 3D (118)
  • Podsumowanie (119)

8. Statyczna interakcja z wykorzystaniem kodu JavaScript (121)

  • Uproszczony przykÅ‚ad (121)
  • UporzÄ…dkowanie kodu HTML dziÄ™ki zastosowaniu dyskretnego JavaScriptu (124)
  • Zmniejszenie zależnoÅ›ci od JavaScriptu poprzez stopniowe rozszerzanie HTML-a (128)
  • Optymalizacja wydajnoÅ›ci 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 kanaÅ‚u przez serwer (142)
    • ObsÅ‚uga komunikatów po stronie klienta (144)
  • Podsumowanie (146)

IV Korzystanie z popularnych API App Engine (147)

10. Składowanie danych w magazynach Datastore i Blobstore (149)

  • Synchroniczne przetwarzanie danych (149)
    • Synchroniczne skÅ‚adowanie danych (150)
    • Synchroniczne odpytywanie danych (153)
    • Synchroniczne pobieranie danych (154)
  • Asynchroniczne przetwarzanie danych (156)
    • Asynchroniczne skÅ‚adowanie danych (156)
    • Asynchroniczne odpytywanie danych (158)
    • Asynchroniczne pobieranie danych (159)
  • Ustanawianie transakcji (160)
    • Wieloorganizacyjność i przestrzenie nazw (162)
  • SkÅ‚adowanie i pobieranie dużych plików (164)
    • SkÅ‚adowanie dużych plików w Blobstore (164)
    • Odpytywanie Blobstore (166)
    • Pobieranie plików z Blobstore (168)
  • WysyÅ‚anie dużej iloÅ›ci danych za pomocÄ… Remote API (169)
  • Podsumowanie (170)

11. Wysyłanie i odbieranie poczty elektronicznej (173)

  • WysyÅ‚anie rozbudowanych wiadomoÅ›ci e-mail ze znacznikami HTML i zaÅ‚Ä…cznikami (173)
    • Parametryzacja ciaÅ‚a wiadomoÅ›ci (176)
    • Zabezpieczenie serwletu (176)
    • Logowanie wysÅ‚anych wiadomoÅ›ci na serwerze roboczym (177)
    • Alternatywa - JavaMail API (177)
    • Porównanie API niskopoziomowego z JavaMail (178)
  • Odbieranie poczty (179)
    • Konfiguracja serwletu odbierajÄ…cego pocztÄ™ (179)
    • Zapisywanie odebranej poczty przez serwlet (180)
    • Odbieranie poczty elektronicznej bez JavaMail API (182)
    • BÅ‚Ä™dy (184)
  • UwzglÄ™dnienie wydajnoÅ›ci oraz quoty (184)
    • Ile trwa wysÅ‚anie wiadomoÅ›ci e-mail? (184)
    • Jaki jest koszt zimnego uruchomienia? (185)
    • Czy odbieranie poczty jest wydajne? (186)
  • Podsumowanie (186)

12. Wykonywanie zadań w tle za pomocą Task Queue API oraz cron (187)

  • Kolejkowanie zadaÅ„ (187)
    • Kolejkowanie wysyÅ‚ania poczty (188)
    • Konfiguracja kolejek (189)
    • Kontrola limitów (190)
    • Dodatkowe opcje (191)
    • Jak najlepiej wykorzystać kolejki zadaÅ„? (194)
  • Planowanie zadaÅ„ za pomocÄ… cron (195)
    • Konfiguracja zadaÅ„ za pomocÄ… cron.xml (195)
    • Jak najlepiej wykorzystać zadania cron? (197)
  • Odczyt nagłówków HTTP (197)
  • Podsumowanie (199)

13. Przetwarzanie obrazów z wykorzystaniem usługi App Engine Image Service (201)

  • OszczÄ™dne stosowanie Image API (201)
  • Odczyt i zapis obrazów (202)
    • Odczyt danych wprowadzonych przez użytkownika (202)
    • Zapis w magazynie danych (204)
    • Odczyt z magazynu danych (205)
    • Zwrócenie obrazu użytkownikowi (206)
    • Odczyt z pliku (207)
  • Proste przeksztaÅ‚cenia (208)
    • Tworzenie miniatur (208)
    • Przycinanie obrazów (210)
    • Obracanie obrazów (211)
    • Przerzucanie obrazów (211)
  • Zaawansowane przeksztaÅ‚cenia (211)
  • Podsumowanie (214)

14. Optymalizacja wydajności za pomocą pamięci podręcznej cache (215)

  • Podstawowe zastosowanie API memcache (215)
    • Na co uważać, stosujÄ…c pamięć cache? (215)
    • Pamięć cache i wartoÅ›ci typu String (216)
  • Strategia obsÅ‚ugi cache (218)
    • Redukcja obciążenia App Engine przy użyciu nagłówków ETag (218)
  • Drobnoziarnista pamięć cache (220)
    • Implementacja interfejsu Serializable (221)
    • Umieszczanie w cache obiektów w postaci surowej (222)
  • ZarzÄ…dzanie cache (222)
    • Unieważnianie elementów w pamiÄ™ci cache (223)
    • Opróżnianie cache (224)
  • Inne metody przydatne podczas korzystania z cache (225)
    • WkÅ‚adanie i wyjmowanie wielu wartoÅ›ci (225)
    • Rejestracja metod obsÅ‚ugi bÅ‚Ä™dów (225)
    • Inkrementacja wartoÅ›ci (225)
  • JSR 107 jako alternatywa dla Memcache Service (226)
  • Podsumowanie (226)

15. Pobieranie danych z zewnÄ…trz za pomocÄ… URL Fetch (227)

  • Pobieranie danych z URL za pomocÄ… żądaÅ„ GET (227)
    • Wykorzystanie standardowego URL Fetch API (228)
    • Wykorzystanie niskopoziomowego URL Fetch API (229)
  • Odczyt wyników (230)
    • Interpretacja wyników (230)
    • Zapis do memcache (230)
    • Zapis do magazynu danych (231)
  • Dodatkowe opcje URL Fetch (231)
    • Kontrola czasu wygaÅ›niÄ™cia (231)
    • Elegancka obsÅ‚uga wyjÄ…tków (233)
  • WysyÅ‚anie danych z formularza (234)
  • Asynchroniczne pobieranie danych (235)
  • Konsumpcja usÅ‚ug sieciowych (237)
    • UsÅ‚ugi REST (237)
    • Komunikacja z SOAP (238)
  • BezpieczeÅ„stwo (238)
    • HTTPS (238)
    • Otwarte porty (238)
  • Podsumowanie (239)

16. Zabezpieczanie aplikacji internetowych za pomocÄ… kont Google, OpenID i OAuth (241)

  • Uwierzytelnianie użytkowników w oparciu o konta Google (241)
  • Uwierzytelnianie użytkowników za pomocÄ… OpenID (244)
  • DostÄ™p z zewnÄ…trz za pomocÄ… OAuth (246)
  • Zabezpieczanie adresów URL w web.xml (248)
    • Wymuszenie uwierzytelnienia (248)
    • Wymuszenie bezpiecznych protokołów (249)
  • Zagadnienia zwiÄ…zane z bezpieczeÅ„stwem (249)
    • Walidacja danych wejÅ›ciowych (250)
    • Konfiguracja wieloorganizacyjnoÅ›ci (250)
    • Przechowywanie danych osobowych (250)
  • Podsumowanie (251)

17. Wysyłanie i odbieranie wiadomości za pomocą XMPP (253)

  • WysyÅ‚anie komunikatów XMPP (253)
  • Odbieranie komunikatów XMPP (255)
  • Odbieranie powiadomieÅ„ o subskrypcji (257)
  • Odbieranie powiadomieÅ„ o obecnoÅ›ci (260)
  • Podsumowanie (262)

V Wdrażanie aplikacji (263)

18. Usprawnienie procesu wytwarzania aplikacji (265)

  • Optymalizacja procesu wytwarzania aplikacji internetowych (265)
  • WejÅ›cie w skórÄ™ kierownika projektu (266)
  • Mniej prac pobocznych (266)
    • Wyznaczenie ostatecznego celu (266)
    • Rezygnacja ze zbÄ™dnych czynnoÅ›ci (267)
  • Rozszerzanie funkcjonalnoÅ›ci (269)
    • OkreÅ›lenie priorytetów (269)
    • Planowanie iteracji (269)
    • Programowanie sterowane eksperymentem (270)
    • Stopniowe wprowadzanie zmian (271)
  • Mierzenie jakoÅ›ci (271)
  • Optymalizacja produktywnoÅ›ci programistów (271)
    • RytuaÅ‚y (272)
    • Nowe jÄ™zyki programowania (272)
    • ZarzÄ…dzanie czasem i otoczeniem (272)
  • Podsumowanie (273)

19. Zapewnienie jakości za pomocą narzędzi pomiarowych (275)

  • Testowanie w Å›rodowisku produkcyjnym (275)
    • Racjonalna ocena wartoÅ›ci dodanej testów (276)
    • Testowanie zdroworozsÄ…dkowe (276)
    • Minimalizacja kosztów awarii (276)
  • Inne podejÅ›cie do użytecznoÅ›ci (277)
    • Funkcjonalność przed wyglÄ…dem (277)
    • Optymalizacja użytecznoÅ›ci w oparciu o wyniki profilowania i analizy statystyk (278)
  • Sprawdzanie dostÄ™pnoÅ›ci za pomocÄ… Capabilities API (278)
  • Logowanie nieoczekiwanych zachowaÅ„ (280)
  • CiÄ…gÅ‚e profilowanie w Å›rodowisku produkcyjnym (282)
  • Badanie reakcji użytkownika na Twój interfejs (285)
  • Podsumowanie (287)

20. Sprzedaż aplikacji (289)

  • Jak podejść do kwestii sprzedaży? (289)
  • Znajomość odbiorcy (290)
  • Dotarcie do odbiorcy (290)
    • Wiadomość w serwisie informacyjnym (290)
    • Pisanie artykułów (291)
    • Blogowanie (291)
    • Twitter (291)
    • Strony na Facebooku (293)
    • Aplikacje na Facebooku (294)
    • Reklamy w Google Apps Marketplace (295)
    • AdWords (296)
    • Optymalizacja aplikacji na potrzeby wyszukiwarek (297)
    • ZakÅ‚adki spoÅ‚ecznoÅ›ciowe (298)
    • Inne sklepy z aplikacjami mobilnymi (298)
  • Zamiana klientów potencjalnych w aktualnych (299)
  • ObsÅ‚uga procesu pÅ‚atnoÅ›ci (299)
  • Podsumowanie (300)

Skorowidz (301)

Dodaj do koszyka Google App Engine. Tworzenie wydajnych aplikacji w Javie

Code, Publish & WebDesing by CATALIST.com.pl



(c) 2005-2024 CATALIST agencja interaktywna, znaki firmowe należą do wydawnictwa Helion S.A.