pelna-wersja-skalowalne-witryny-internetowe-budowa-skalowanie-i-optymalizacja-aplikacji-internetowych-nowej-generacji_skalow.pdf

(3848 KB) Pobierz
656592358 UNPDF
Wydawnictwo Helion
ul. Koľciuszki 1c
44-100 Gliwice
tel. 032 230 98 63
Skalowalne witryny internetowe.
Budowa, skalowanie i optymalizacja
aplikacji internetowych nowej generacji
Autor: Cal Henderson
TĀumaczenie: MikoĀaj Szczepaniak
ISBN: 978-83-246-0723-5
Building, scaling, and optimizing the next
generation of web applications
Format: B5, stron: 400
Naucz siķ tworzyě aplikacje internetowe nowej generacji
i doĀĴcz do nurtu Web 2.0
¤ Chcesz tworzyě bardziej wydajne aplikacje internetowe?
¤ Chcesz poznaě zasady projektowania skalowalnych architektur?
¤ Chcesz efektywnie zarzĴdzaě danymi w aplikacjach internetowych?
Oblicze internetu podlega nieustannym zmianom. Obecnie coraz czķľciej obok
klasycznych witryn internetowych pojawiajĴ siķ aplikacje internetowe, ktre
charakteryzujĴ siķ odseparowaniem warstwy danych od warstwy prezentacji. Zmiana
modelu programowania wymaga przygotowania odpowiedniej platformy sprzķtowej
i programowej oraz zaprojektowania nowego systemu obsĀugi danych. Zastosowanie
przy wykonywaniu tych zadaĺ sprawdzonych strategii wykorzystywanych przez
pionierw tworzĴcych aplikacje internetowe nowej generacji pozwoli Ci zaoszczķdziě
czas i koszty.
KsiĴŃka â Skalowalne witryny internetoweÈ Ò to zaawansowany i wszechstronny
przeglĴd zagadnieĺ zwiĴzanych z budowaniem takich wĀaľnie aplikacji internetowych.
PomoŃe Ci ona w rozwiĴzaniu problemw i unikniķciu puĀapek czyhajĴcych na
programistw witryn internetowych nowej generacji. Poznasz sprawdzone strategie
projektowania architektury oprogramowania, przygotowywania ľrodowiska
programistycznego, zapewniania niezawodnoľci aplikacji czy wydajnego zarzĴdzania
informacjami. Dowiesz siķ takŃe, jak tworzyě skalowalne i Āatwe w konserwacji witryny,
ktre bķdĴ zapewniaě komfort pracy niezaleŃnie od upĀywu czasu i wzrostu liczby
uŃytkownikw.
¤ Projektowanie architektury aplikacji internetowych
¤ Przygotowywanie ľrodowiska programistycznego
¤ Tworzenie aplikacji wielojķzycznych
¤ ZarzĴdzanie bazami danych
¤ Integrowanie poczty elektronicznej z witrynami
¤ Stosowanie usĀug zdalnych
¤ Wykrywanie i rozwiĴzywanie problemw z wydajnoľciĴ
¤ Skalowanie aplikacji internetowych
¤ Monitorowanie funkcjonowania aplikacji
¤ Korzystanie z interfejsw API
656592358.004.png 656592358.005.png 656592358.006.png 656592358.007.png 656592358.001.png
Spis treści
Przedmowa ...................................................................................................................... 7
1. Wprowadzenie .............................................................................................................. 15
Czym jest aplikacja internetowa?
15
Jak budujemy aplikacje internetowe?
16
Czym jest architektura?
17
Od czego należy zacząć?
18
2. Architektura aplikacji internetowej ............................................................................. 21
Wielowarstwowa architektura oprogramowania
21
Technologie wielowarstwowe
24
Projektowanie interfejsów programowych
27
Droga od punktu A do punktu B
29
Podział na oprogramowanie i sprzęt
31
Platformy sprzętowe
31
Rozwój platformy sprzętowej
36
Nadmiarowość sprzętu
39
Sieć
40
Języki, technologie i bazy danych
43
3. Środowiska wytwarzania oprogramowania ...............................................................45
Trzy naczelne zasady
45
Kontrola kodu źródłowego
46
Kompilacja w jednym kroku
66
Śledzenie błędów
77
Skalowanie modelu wytwarzania aplikacji
85
Standardy kodowania
86
Testowanie
89
3
656592358.002.png
4. i18n, L10n i Unicode........................................................................................................93
Umiędzynarodowienie i lokalizacja oprogramowania 94
Unicode w pigułce 98
Schemat kodowania UTF-8 104
Schemat kodowania UTF-8 w aplikacjach internetowych 105
Stosowanie schematu kodowania UTF-8 w języku PHP 107
Stosowanie schematu kodowania UTF-8 w pozostałych językach programowania 108
Stosowanie schematu kodowania UTF-8 w bazach danych MySQL 109
Stosowanie schematu kodowania UTF-8 w wiadomościach poczty elektronicznej 111
Stosowanie schematu kodowania UTF-8 w skryptach języka JavaScript
113
Stosowanie schematu kodowania UTF-8 w interfejsach API
115
5. Integralność danych i bezpieczeństwo ....................................................................... 117
Strategie zapewniania integralności danych
117
Dobre, prawidłowe i nieprawidłowe
119
Filtrowanie sekwencji UTF-8
120
Filtrowanie znaków sterujących
126
Filtrowanie kodu HTML
127
Ataki XSS
131
Wstrzykiwanie kodu języka SQL
140
6. Poczta elektroniczna ................................................................................................... 147
Otrzymywanie wiadomości poczty elektronicznej
147
Ryzyko wstrzykiwania wiadomości poczty elektronicznej do naszej aplikacji
150
Format MIME
152
Analiza składniowa prostych wiadomości MIME
154
Analiza składniowa załączników zakodowanych w trybie UU
156
Załączniki w formacie TNEF
157
Dlaczego technologie bezprzewodowe nie lubią programistów?
159
Zbiory znaków i schematy kodowania
162
Rozpoznawanie użytkowników
164
Testy jednostkowe
167
7. Usługi zdalne................................................................................................................ 169
Klub usług zdalnych
169
Gniazda
170
Stosowanie protokołu HTTP
173
Nadmiarowość usług zdalnych
179
Systemy asynchroniczne
182
Wymiana danych w formacie XML
187
Lekkie protokoły
192
4 | Spis treści
8. Wąskie gardła .............................................................................................................. 197
Identyfikowanie wąskich gardeł
197
Operacje wejścia-wyjścia
212
Usługi zewnętrzne i czarne skrzynki
225
9. Skalowanie aplikacji internetowych .......................................................................... 241
Mit skalowania
241
Skalowanie sieci
253
Równoważenie obciążeń
256
Skalowanie bazy danych MySQL
272
Replikacja baz danych MySQL
278
Partycjonowanie bazy danych
287
Skalowanie wielkich baz danych
292
Skalowanie pamięci masowej
294
Pamięć podręczna
302
Skalowanie w pigułce
305
10. Statystyki, monitorowanie i wykrywanie usterek ....................................................307
Śledzenie statystyk aplikacji internetowej
307
Monitorowanie aplikacji
318
Alarmowanie
336
11. Interfejsy API................................................................................................................339
Kanały danych
339
Technologie mobilne
352
Usługi sieciowe
356
Warstwy transportowe interfejsów API
359
Nadużywanie interfejsów API
367
Uwierzytelnianie
371
Przyszłość
375
Skorowidz .................................................................................................................... 377
Spis treści | 5
ROZDZIAŁ 1.
Wprowadzenie
Zanim przystąpimy do projektowania i kodowania naszych przykładów, musimy zrobić krok
wstecz i zdefiniować najważniejsze terminy. Warto się zastanowić, jaki jest cel naszych rozważań
i czym ten cel się różni od tego, co robiliśmy do tej pory. Czytelnicy, którzy budowali już jakieś
aplikacje internetowe, mogą pominąć kolejny rozdział, ponieważ prezentowany tam materiał
będzie obejmował wiedzę podstawową. Z drugiej strony, czytelnicy zainteresowani ogólnym
kontekstem naszych rozważań koniecznie powinni się zapoznać także ze wspomnianym roz-
działem 2.
Czym jest aplikacja internetowa?
Większość czytelników tej książki najprawdopodobniej doskonale zdaje sobie sprawę z tego,
czym jest aplikacja internetowa, co wcale nie oznacza, że próba precyzyjnego zdefiniowania
tego terminu jest bezcelowa, ponieważ etykieta aplikacji internetowej bardzo często jest przypi-
sywana różnym rozwiązaniom w sposób błędy. Aplikacja internetowa nie jest ani witryną
internetową, ani aplikacją w rozumieniu typowego użytkownika systemu operacyjnego.
Aplikacja internetowa plasuje się gdzieś pomiędzy tymi dwoma rozwiązaniami i me pewne
cechy zarówno witryny internetowej, jak i autonomicznej aplikacji.
O ile witryna internetowa zawiera strony z danymi, o tyle aplikacja internetowa składa się
zarówno z danych, jak i odrębnego mechanizmu ich dostarczania do przeglądarki. Podobnie
jak entuzjaści dużej dostępności witryn internetowych zachwycają się możliwością oddzielania
znaczników od stylów za pomocą plików CSS, również projektanci aplikacji internetowych
szczycą się możliwością faktycznego oddzielania danych od warstwy prezentacji — dane aplikacji
internetowej nie mają nic wspólnego ze znacznikami (choć same mogą tego rodzaju elementy
zawierać). Komunikaty składające się na komponent aplikacji internetowej są odseparowane
od znaczników. Oznacza to, że w razie konieczności wyświetlenia tych danych użytkownikowi
należy wyodrębnić odpowiednie komunikaty z miejsca ich składowania (najczęściej z bazy
danych), po czym dostarczyć użytkownikowi w określonym formacie i za pośrednictwem jakie-
goś medium (najczęściej w formacie HTML i za pośrednictwem protokołu HTTP). Najciekawsze
jest jednak to, że nie musimy dostarczać danych w formacie HTML — równie dobrze mogli-
byśmy je wysyłać w pliku PDF za pośrednictwem np. poczty elektronicznej.
Aplikacje internetowe nie zawierają stron w rozumieniu znanym z witryn internetowych, które
z natury rzeczy składają się ze stron internetowych. O ile aplikacja internetowa może prezentować
swoje dane np. za pośrednictwem dziesięciu stron internetowych, dodawanie kolejnych danych
15
656592358.003.png
Zgłoś jeśli naruszono regulamin