POLISH

Google App Engine. Tworzenie wydajnych aplikacji w Javie

Book information

Publisher
Helion
Year
2012
ISBN
9788324648290, 032174263X
Language
polish
Format
PDF
Filesize
9 MB (9352498 bytes)
Pages
\306
Time added
2022-06-26 11:47:04

Description

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! Spis treści Wprowadzenie Analiza trendów internetowych Lata dziewięćdziesiąte Nowe millenium Aktualnie zachodzące zmiany Zastąpienie baz SQL przez NoSQL Przejście na NoSQL poprzez magazyn danych Google App Engine Odejście od mapowania obiektowo-relacyjnego Alternatywne rozwiązania NoSQL Obliczenia w chmurze Utrzymywanie systemów w chmurze Powiązanie z innymi chmurami HTML5 Bieżące trendy, które nie zostały opisane w tej książce Aplikacje na urządzenia mobilne Nowe języki działające na maszynie wirtualnej Javy Dla kogo jest ta książka? Przegląd książki Przykłady do pobrania Podziękowania O autorze I. Wprowadzenie do App Engine 1. Konfiguracja środowiska Praca z Eclipse Instalacja wtyczek Eclipse Utworzenie nowego projektu App Engine Uruchomienie serwera roboczego Wdrożenie aplikacji na serwerach Google Wdrażanie z linii poleceń Uruchamianie serwera roboczego z linii poleceń Wdrażanie aplikacji App Engine z linii poleceń Podsumowanie 2. Wydajność w środowisku AppEngine Wydajność w chmurze Porównanie App Engine z tradycyjnymi aplikacjami internetowymi Optymalizacja kosztów zasobów Pomiar kosztów ładowania klas Czas uruchomienia serwletu zawierającego zewnętrzną bibliotekę Czas uruchomienia serwletu niezawierającego zewnętrznej biblioteki Zmniejszenie objętości pliku web.xml Unikanie zimnych uruchomień Rezerwacja stale czynnych instancji Wstępne ładowanie klas przy użyciu żądań rozgrzewających Obsługa współbieżnych żądań w sposób bezpieczny dla wątków Obsługa żądań wymagających dużej ilości pamięci za pomocą instancji typu backend Ogólna poprawa wydajności Optymalizacja modelu danych pod kątem wydajności Unikanie nadmiarowych obliczeń przy użyciu cache Odraczanie długotrwałych zadań za pomocą kolejki zadań Poprawa szybkości ładowania stron w przeglądarce Asynchroniczne API Optymalizacja aplikacji przed jej wdrożeniem Podsumowanie II. Podstawy projektowania aplikacji 3. Anatomia aplikacji GoogleAppEngine Przesyłanie plików w celu wykonania dynamicznego wdrożenia Struktura katalogów Ustawianie parametrów wdrożenia Uruchamianie zadań okresowych Określenie indeksów w magazynie danych Blokowanie zakresów IP Konfiguracja poziomów logowania Konfiguracja kolejek zadań Zabezpieczanie URL Konfiguracja panelu administracyjnego Podstawy aplikacji Aktualna wersja Dodawanie użytkowników Naliczanie opłat Podsumowanie 4. Modelowanie danych napotrzebymagazynu GoogleApp Engine Datastore Odwrót od relacyjnych magazynów danych Denormalizacja danych Agregacja danych bez złączeń Projektowanie danych bezschematowych Modelowanie danych Projektowanie na poziomie mikro Wybór właściwości Rozdzielenie encji Tworzenie i utrzymywanie relacji pomiędzy encjami Relacje jeden do wielu i wiele do wielu Praca z danymi Transakcje Zapytania Tworzenie indeksów Aktualizacja wersji aplikacji korzystającej z Datastore Podsumowanie 5. Projektowanie aplikacji Zbieranie wymagań Wybór zestawu narzędzi Wybór frameworku Wybór systemu szablonów Wybór bibliotek Decyzje projektowe Modelowanie danych Modelowanie adresów URL Przechodzenie pomiędzy stronami Podsumowanie III. Podstawy projektowania interfejsu użytkownika 6. Tworzenie interfejsu użytkownikaw HTML5 Powitajmy HTML5 Stosowanie nowych znaczników HTML5 Rysowanie po płótnie Przeciąganie i upuszczanie na stronach Ciekawe elementy formularzy Wykrywanie lokalizacji użytkownika Przechowywanie danych po stronie klienta Przechowywanie danych pomiędzy sesjami Przechowywanie danych sesyjnych Odpytywanie ustrukturyzowanych danych z wykorzystaniem lokalnej bazy danych SQL Podsumowanie 7. Modyfikacja układu strony zapomocą CSS Wskazywanie elementów za pomocą CSS3 Obliczanie szczegółowości Identyfikatory Wskazywanie klas Wskazywanie pseudoklas Wskazywanie atrybutów Wskazywanie elementów Wskazywanie pseudoelementów Nowe efekty graficzne CSS3 Zaokrąglone krawędzie Animacje 2D Animacje 3D Podsumowanie 8. Statyczna interakcja z wykorzystaniem kodu JavaScript Uproszczony przykład Uporządkowanie kodu HTML dzięki zastosowaniu dyskretnego JavaScriptu Zmniejszenie zależności od JavaScriptu poprzez stopniowe rozszerzanie HTML-a Optymalizacja wydajności za pomocą delegacji zdarzeń Unikanie zmiennych globalnych Podsumowanie 9. Dynamiczna interakcja z wykorzystaniem technologii AJAX AJAX na sposób klasyczny, bez frameworków Komunikacja z serwerem za pomocą XML-a Komunikacja z serwerem za pomocą formatu JSON Komunikacja z serwerem za pomocą HTML-a Google App Engine Channel API Otwarcie kanału przez serwer Obsługa komunikatów po stronie klienta Podsumowanie IV. Korzystanie z popularnych API App Engine 10. Składowanie danych w magazynach Datastore i Blobstore Synchroniczne przetwarzanie danych Synchroniczne składowanie danych Synchroniczne odpytywanie danych Synchroniczne pobieranie danych Asynchroniczne przetwarzanie danych Asynchroniczne składowanie danych Asynchroniczne odpytywanie danych Asynchroniczne pobieranie danych Ustanawianie transakcji Wieloorganizacyjność i przestrzenie nazw Składowanie i pobieranie dużych plików Składowanie dużych plików w Blobstore Odpytywanie Blobstore Pobieranie plików z Blobstore Wysyłanie dużej ilości danych za pomocą Remote API Podsumowanie 11. Wysyłanie i odbieranie poczty elektronicznej Wysyłanie rozbudowanych wiadomości e-mail ze znacznikami HTML i załącznikami Parametryzacja ciała wiadomości Zabezpieczenie serwletu Logowanie wysłanych wiadomości na serwerze roboczym Alternatywa — JavaMail API Porównanie API niskopoziomowego z JavaMail Odbieranie poczty Konfiguracja serwletu odbierającego pocztę Zapisywanie odebranej poczty przez serwlet Odbieranie poczty elektronicznej bez JavaMail API Błędy Uwzględnienie wydajności oraz quoty Ile trwa wysłanie wiadomości e-mail? Jaki jest koszt zimnego uruchomienia? Czy odbieranie poczty jest wydajne? Podsumowanie 12. Wykonywanie zadań w tle za pomocą Task Queue APIoraz cron Kolejkowanie zadań Kolejkowanie wysyłania poczty Konfiguracja kolejek Kontrola limitów Dodatkowe opcje Jak najlepiej wykorzystać kolejki zadań? Planowanie zadań za pomocą cron Konfiguracja zadań za pomocą cron.xml Jak najlepiej wykorzystać zadania cron? Odczyt nagłówków HTTP Podsumowanie 13. Przetwarzanie obrazów zwykorzystaniem usługi AppEngine Image Service Oszczędne stosowanie Image API Odczyt i zapis obrazów Odczyt danych wprowadzonych przez użytkownika Zapis w magazynie danych Odczyt z magazynu danych Zwrócenie obrazu użytkownikowi Odczyt z pliku Proste przekształcenia Tworzenie miniatur Przycinanie obrazów Obracanie obrazów Przerzucanie obrazów Zaawansowane przekształcenia Podsumowanie 14. Optymalizacja wydajności za pomocą pamięci podręcznej cache Podstawowe zastosowanie API memcache Na co uważać, stosując pamięć cache? Pamięć cache i wartości typu String Strategia obsługi cache Redukcja obciążenia App Engine przy użyciu nagłówków ETag Drobnoziarnista pamięć cache Implementacja interfejsu Serializable Umieszczanie w cache obiektów w postaci surowej Zarządzanie cache Unieważnianie elementów w pamięci cache Opróżnianie cache Inne metody przydatne podczas korzystania z cache Wkładanie i wyjmowanie wielu wartości Rejestracja metod obsługi błędów Inkrementacja wartości JSR 107 jako alternatywa dla Memcache Service Podsumowanie 15. Pobieranie danych z zewnątrz zapomocą URL Fetch Pobieranie danych z URL za pomocą żądań GET Wykorzystanie standardowego URL Fetch API Wykorzystanie niskopoziomowego URL Fetch API Odczyt wyników Interpretacja wyników Zapis do memcache Zapis do magazynu danych Dodatkowe opcje URL Fetch Kontrola czasu wygaśnięcia Elegancka obsługa wyjątków Wysyłanie danych z formularza Asynchroniczne pobieranie danych Konsumpcja usług sieciowych Usługi REST Komunikacja z SOAP Bezpieczeństwo HTTPS Otwarte porty Podsumowanie 16. Zabezpieczanie aplikacji internetowych za pomocą kont Google, OpenID i OAuth Uwierzytelnianie użytkowników w oparciu o konta Google Uwierzytelnianie użytkowników za pomocą OpenID Dostęp z zewnątrz za pomocą OAuth Zabezpieczanie adresów URL w web.xml Wymuszenie uwierzytelnienia Wymuszenie bezpiecznych protokołów Zagadnienia związane z bezpieczeństwem Walidacja danych wejściowych Konfiguracja wieloorganizacyjności Przechowywanie danych osobowych Podsumowanie 17. Wysyłanie i odbieranie wiadomości za pomocą XMPP Wysyłanie komunikatów XMPP Odbieranie komunikatów XMPP Odbieranie powiadomień o subskrypcji Odbieranie powiadomień o obecności Podsumowanie V. Wdrażanie aplikacji 18. Usprawnienie procesu wytwarzaniaaplikacji Optymalizacja procesu wytwarzania aplikacji internetowych Wejście w skórę kierownika projektu Mniej prac pobocznych Wyznaczenie ostatecznego celu Rezygnacja ze zbędnych czynności Rozszerzanie funkcjonalności Określenie priorytetów Planowanie iteracji Programowanie sterowane eksperymentem Stopniowe wprowadzanie zmian Mierzenie jakości Optymalizacja produktywności programistów Rytuały Nowe języki programowania Zarządzanie czasem i otoczeniem Podsumowanie 19. Zapewnienie jakości za pomocą narzędzi pomiarowych Testowanie w środowisku produkcyjnym Racjonalna ocena wartości dodanej testów Testowanie zdroworozsądkowe Minimalizacja kosztów awarii Inne podejście do użyteczności Funkcjonalność przed wyglądem Optymalizacja użyteczności w oparciu o wyniki profilowania i analizy statystyk Sprawdzanie dostępności za pomocą Capabilities API Logowanie nieoczekiwanych zachowań Ciągłe profilowanie w środowisku produkcyjnym Badanie reakcji użytkownika na Twój interfejs Podsumowanie 20. Sprzedaż aplikacji Jak podejść do kwestii sprzedaży? Znajomość odbiorcy Dotarcie do odbiorcy Wiadomość w serwisie informacyjnym Pisanie artykułów Blogowanie Twitter Strony na Facebooku Aplikacje na Facebooku Reklamy w Google Apps Marketplace AdWords Optymalizacja aplikacji na potrzeby wyszukiwarek Zakładki społecznościowe Inne sklepy z aplikacjami mobilnymi Zamiana klientów potencjalnych w aktualnych Obsługa procesu płatności Podsumowanie Skorowidz

Similar books