[ Pobierz całość w formacie PDF ]
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 Wydawnictwo Helion ul. Koľciuszki 1c 44-100 Gliwice tel. 032 230 98 63 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 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 [ Pobierz całość w formacie PDF ] |