Tworzenie aplikacji bazodanowych

Podobne dokumenty
Opis wdrożenia Platformy Technologicznej epodreczniki.pl na zasobach Poznańskiego Centrum Superkomputerowo-Sieciowego

Projektowanie i implementacja wysokowydajnych aplikacji w języku

Skalowalne aplikacje internetowe wysokiej dostępności

Problemy niezawodnego przetwarzania w systemach zorientowanych na usługi

Klastrowe architektury serwera aplikacji Oracle Application Server 10g

Bazy danych 2. Wykład 1

Opis Przedmiotu Zamówienia

System generacji raportów

Wybrane działy Informatyki Stosowanej

Pojęcie systemu baz danych

Wydajny Linux. Jakub Woźniak KN Sieci Komputerowych i Systemów Rozproszonych Tenesys

Autorytatywne serwery DNS w technologii Anycast + IPv6 DNS NOVA. Dlaczego DNS jest tak ważny?

Need for speed. Kliknij, aby edytować style wzorca tekstu jak sobie radzić z dużą ilością użytkowników i danych

Projektowanie zabezpieczeń Centrów Danych oraz innych systemów informatycznych o podwyższonych wymaganiach bezpieczeństwa

ActiveXperts SMS Messaging Server

Jarosław Kuchta Administrowanie Systemami Komputerowymi. Internetowe Usługi Informacyjne

Zdalne logowanie do serwerów

Czym jest jpalio? jpalio jpalio jpalio jpalio jpalio jpalio jpalio jpalio

Wprowadzenie SYSTEMY SIECIOWE. Michał Simiński

Od czego zacząć przy budowaniu środowisk wysokiej dostępności?

Wybrane działy Informatyki Stosowanej

KARTA KURSU. Administracja serwerami WWW

Sposoby klastrowania aplikacji webowych w oparciu o rozwiązania OpenSource. Piotr Klimek. piko@piko.homelinux.net

Parametry wydajnościowe systemów internetowych. Tomasz Rak, KIA

WINDOWS Instalacja serwera WWW na systemie Windows XP, 7, 8.

Architektura systemów webowych wysokiej przepustowości. na przykładzie Wikia

Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java

Organizacyjnie. Prowadzący: dr Mariusz Rafało (hasło: BIG)

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

Przepełnienie bufora. SQL Injection Załączenie zewnętrznego kodu XSS. Nabycie uprawnień innego użytkownika/klienta/administratora

PureSystems zautomatyzowane środowisko aplikacyjne. Emilia Smółko Software IT Architect

Wstęp. Historia i przykłady przetwarzania współbieżnego, równoległego i rozproszonego. Przetwarzanie współbieżne, równoległe i rozproszone

ZiMSK. VLAN, trunk, intervlan-routing 1

Tworzenie aplikacji Web Alicja Zwiewka. Page 1

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

System kontroli wersji - wprowadzenie. Rzeszów,2 XII 2010

Wprowadzenie. Co to jest klaster? Podział ze względu na przeznaczenie. Architektury klastrów. Cechy dobrego klastra.

Tomasz Grześ. Systemy zarządzania treścią

Referat pracy dyplomowej

Szczegółowy harmonogram rzeczowy realizacji prac systemu B2B

Prestige MJM Case Study

Red Hat Network Satellite Server

Wybrane działy Informatyki Stosowanej

Opis Architektury Systemu Galileo

Jarosław Kuchta. Administrowanie Systemami Komputerowymi. Klastry serwerów

Klient SmartMedia Sp. z o.o., Dziennikus Sp. z o.o. Branża. IT, software. Okres realizacji. Lipiec nadal. Rodzaj usługi:

ZPKSoft WDoradca. 1. Wstęp 2. Architektura 3. Instalacja 4. Konfiguracja 5. Jak to działa 6. Licencja

CZĘŚĆ I. WARSTWA PRZETWARZANIA WSADOWEGO

Szczegółowy opis przedmiotu zamówienia:

Projektowanie architektury systemu rozproszonego. Jarosław Kuchta Projektowanie Aplikacji Internetowych

MAMP: Można to pobrać i zainstalować z XAMPP: Można go pobrać i zainstalować z

Instalacja SQL Server Express. Logowanie na stronie Microsoftu

LANDINGI.COM. Case Study. Klient Landingi.com. Branża IT, marketing i PR. Okres realizacji od grudnia 2013 do chwili obecnej.

Sprawozdanie nr 4. Ewa Wojtanowska

dziennik Instrukcja obsługi

Plan wykładu. Domain Name System. Hierarchiczna budowa nazw. Definicja DNS. Obszary i ich obsługa Zapytania Właściwości.

Charakterystyka sieci klient-serwer i sieci równorzędnej

AppSense - wirtualizacja użytkownika

Welcome to the waitless world. Inteligentna infrastruktura systemów Power S812LC i S822LC

Wyposażenie szkoły/placówki/pracodawcy do przeprowadzenia części pisemnej egzaminu w formie elektronicznej

Rozwiązania bazodanowe EnterpriseDB

Nieustanny rozwój. Tomasz Leśniewski

Wybrane działy Informatyki Stosowanej

PHP: bazy danych, SQL, AJAX i JSON

Informatyka I. Programowanie aplikacji bazodanowych w języku Java. Standard JDBC.

Systemy GIS Systemy baz danych

MASKI SIECIOWE W IPv4

INFORMATYKA Pytania ogólne na egzamin dyplomowy

Skalowalność obliczeń równoległych. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1

U M L. System operacyjny Linux zagnieżdżony w zewnętrznym systemie operacyjnym (Linux)

Zagadnienia egzaminacyjne INFORMATYKA. Stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ

Zapewnienie wysokiej dostępności baz danych. Marcin Szeliga MVP SQL Server MCT

Wskazane jest przygotowanie minimum10 indywidualnych stanowisk egzaminacyjnych.

Wykład 5: Najważniejsze usługi sieciowe: DNS, SSH, HTTP, . A. Kisiel,Protokoły DNS, SSH, HTTP,

Wybrane działy Informatyki Stosowanej

Przetwarzanie danych w chmurze

PBS. Wykład Zabezpieczenie przełączników i dostępu do sieci LAN

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Sieci równorzędne, oraz klient - serwer

Software RAID funkcje dostarcza zaimplementowane oprogramowanie, bez wykorzystania z dedykowanych kontrolerów.

Inżynieria oprogramowania- Grupa dra inż. Leszka Grocholskiego II UWr 2009/2010. Aleksandra Kloc, Adam Grycner, Mateusz Łyczek. Wasza-fota.

Bezpieczeństwo dla wszystkich środowisk wirtualnych

SPECYFIKACJA WYMAGAŃ. w zakresie migracji i uruchomienia nowego serwisu WWW na potrzeby PKP S.A.

Nr: 12. Tytuł: UDOSTĘPNIANIE DANYCH O SPRAWACH KLIENTOM KANCELARII NA ZEWNĘTRZNYCH SERWERACH WWW. Data modyfikacji:

Serwer druku w Windows Server

Zaawansowane Techniki WWW (HTML, CSS i NODE.JS)

Popularne dostępne rozwiązania. Najpopularniejsze środowiska programistyczne:

Zagadnienia egzaminacyjne INFORMATYKA. stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ

Zapytanie ofertowe nr 03/05/2014. Zakup licencji na oprogramowanie do wirtualizacji Działanie POIG 8.2

Instrukcja instalacji serwera bazy danych Microsoft SQL Server Express 2014

System Kancelaris. Zdalny dostęp do danych

I. Informacje ogólne. Jednym z takich systemów jest Mambo.

Spis treści. Dzień 1. I Wprowadzenie (wersja 0906) II Dostęp do danych bieżących specyfikacja OPC Data Access (wersja 0906) Kurs OPC S7

Działanie komputera i sieci komputerowej.

Systemy Rozproszone. Zagadnienia do egzaminu.

NIS/YP co to takiego?

Szczegółowy opis zamówienia:

Systemy rozproszone. na użytkownikach systemu rozproszonego wrażenie pojedynczego i zintegrowanego systemu.

Web Application Firewall - potrzeba, rozwiązania, kryteria ewaluacji.

Transkrypt:

Tworzenie aplikacji bazodanowych wykład Joanna Kołodziejczyk 2016 Joanna Kołodziejczyk Tworzenie aplikacji bazodanowych 2016 1 / 36

Klasyfikacja baz danych Plan wykładu 1 Klasyfikacja baz danych 2 Architektura jak wybrać 3 Web serwis z bazą danych 4 Literatura Joanna Kołodziejczyk Tworzenie aplikacji bazodanowych 2016 2 / 36

Klasyfikacja baz danych Liczba użytkowników Jeden użytkownik DBMS znajduje się na jednym komputerze i jest przeznaczona dla jednego użytkownika. Wykorzystywane do celów prywatnych i małych firm. Tylko jedna osoba może korzystać z bazy danych w czasie. Jeśli jeden użytkownik korzysta z bazy danych inni użytkownicy, muszą czekać, aż sesja zostanie zakończona. Wielu użytkowników Stosowane dla większych firm. Jest to baza danych, która jest dostępna za pośrednictwem sieci. Więcej niż jedna osoba może uzyskać dostęp i zmieniać dane w systemie. Większość używa rodzaj zamka w bazie danych, tak, że nie ma żadnych konfliktów między użytkownikami w trakcie dokonywania zmian. Dostęp z jednego lub wielu komputerów. Joanna Kołodziejczyk Tworzenie aplikacji bazodanowych 2016 3 / 36

Klasyfikacja baz danych Systemy klient-serwer i bazy danych n-tier (wielowarstwowa architektura) Architektura klient-serwer Zasadniczo systemy baz danych klient-serwer to serwery, które przechowują i udostępniają zasoby innym komputerom. Gdy klient wysyła żądanie usługi do serwera, ten realizuje usługę. Klient jest określany jako front-end a serwer bazy danych jest określany jako back-end. Architektura wielowarstwowa Niektóre systemy baz danych klient-serwer mają nie tylko front-end i back-end, ale także pośrednie części nazywane warstwami. W tych rozwiązaniach klient i baza danych nigdy nie komunikują się bezpośrednio, wszystkie dane są przekazywane za pośrednictwem warstwy środkowej. Joanna Kołodziejczyk Tworzenie aplikacji bazodanowych 2016 4 / 36

Klasyfikacja baz danych Systemy klient-serwer i bazy danych n-tier (wielowarstwowa architektura) Joanna Kołodziejczyk Tworzenie aplikacji bazodanowych 2016 5 / 36

Klasyfikacja baz danych Systemy klient-serwer i bazy danych n-tier (wielowarstwowa architektura) Joanna Kołodziejczyk Tworzenie aplikacji bazodanowych 2016 6 / 36

Klasyfikacja baz danych Bazy danych n-tier (wielowarstwowa architektura) zalety Warstwa środkowa zapewnia warstwę abstrakcji, w ten sposób można zmienić części back-endu bez konieczności zmiany front-endu. Dobry sposób, aby rozdzielić odpowiedzialność. Mogą też być bardziej efektywne. Możliwość tworzenia efektywnych aplikacji w sieci do rozwiązań biznesowych. Middleware to istotna część pozwalająca aplikacjom po stronie klienta rozmawiać z serwerem, np. klient pocztowy. Joanna Kołodziejczyk Tworzenie aplikacji bazodanowych 2016 7 / 36

Klasyfikacja baz danych Systemy scentralizowane i rozproszone Systemy scentralizowane Znajdują się na jednym serwerze/mainframe. Zaletą scentralizowanego systemu bazy danych jest to, że wszystkie informacje są w jednym miejscu. Wadą może być pojawienie się wąskiego gardła. Mając wszystkie informacje na jednym komputerze ułatwia się dostęp tylko niektórym użytkownikom, ale utrudnia innym, którzy chcą uzyskać dostęp do plików. Systemy rozproszone Dane podzielone pomiędzy wiele komputerów w sieci. Jedną z zalet systemów rozproszonych baz danych jest to, że dostęp do bazy danych można uzyskać z dowolnego komputera w sieci, nawet jeśli wszystkie informacje, nie są na jednym komputerze. Jest to preferowany typ, ponieważ informacje można łatwo znaleźć. Zapewnia również, że prawie niemożliwa jest utrata wszystkich danych. Joanna Kołodziejczyk Tworzenie aplikacji bazodanowych 2016 8 / 36

Klasyfikacja baz danych In-memory database Baza danych w pamięci (IMDB) to baza danych, której dane są przechowywane w pamięci głównej, aby ułatwić szybsze czasy reakcji. In-memory database są również czasami określane jako Main Memory Data Base lub MMDBs i stają się coraz bardziej popularne i wykorzystywane do obliczania wysokiej wydajności (HPC) i aplikacji Big Data. Aplikacje, z urządzeń sieci telekomunikacyjnych i sieci reklam mobilnych, często korzystają z IMDB. Joanna Kołodziejczyk Tworzenie aplikacji bazodanowych 2016 9 / 36

Klasyfikacja baz danych In-memory database co przyczynia się do popularności 64-bitowe obliczenia wielordzeniowe procesory ceny RAMu Bazy przechowywane są w formie skompresowanej i nierelacyjnej. Szybciej przetwarzają zapytania. Mają wewnętrzne algorytmy optymalizacji i wykonują mniej instrukcji procesora. Ułatwiają też analizę danych, gdyż wszystkie dane przechowywane są w jednej bazie. Joanna Kołodziejczyk Tworzenie aplikacji bazodanowych 2016 10 / 36

Plan wykładu 1 Klasyfikacja baz danych 2 Architektura jak wybrać 3 Web serwis z bazą danych 4 Literatura Joanna Kołodziejczyk Tworzenie aplikacji bazodanowych 2016 11 / 36

Definicja problemu Budując aplikację webową należy podjąć decyzję, jaka architektura serwerów jest najlepsza dla środowiska. Czynniki, które mają wpływ na decyzję to: wydajność, skalowalność, dostępność, niezawodność, koszty, łatwość zarządzania. Joanna Kołodziejczyk Tworzenie aplikacji bazodanowych 2016 12 / 36

Rozwiązanie jednoserwerowe Całe środowisko znajduje się na pojedynczym serwerze. Dla typowej aplikacji internetowej, która zawiera serwer WWW, serwer aplikacji i serwer bazy danych. Typowym przykładem tej konfiguracji jest stos LAMP, co oznacza Linux, Apache, MySQL, PHP na jednym serwerze. Przypadek użycia: dobry do tworzenia szybkich aplikacji, jest to najprostsza możliwa konfiguracja, ale oferuje niewielkie możliwości skalowalności i oddzielenia komponentów. Joanna Kołodziejczyk Tworzenie aplikacji bazodanowych 2016 13 / 36

Rozwiązanie jednoserwerowe Joanna Kołodziejczyk Tworzenie aplikacji bazodanowych 2016 14 / 36

Rozwiązanie jednoserwerowe Zalety Wady Prosty Aplikacje i baza danych walczą o te samych zasobów serwera (procesor, pamięć, I / O, etc.), które, oprócz możliwych słabych osiągów, mogą sprawić, że trudno będzie określić źródło niskiej wydajności (aplikacja lub bazy danych). Niemożliwe skalowanie poziome. Joanna Kołodziejczyk Tworzenie aplikacji bazodanowych 2016 15 / 36

Rozwiązanie: niezależny serwer bazy danych System zarządzania bazą danych (DBMS) można oddzielić od reszty środowiska by wyeliminować dzielenie zasobów między aplikacją a bazą danych, oraz do zwiększenia bezpieczeństwa poprzez usunięcie bazy danych z DMZ (strefa zdemilitaryzowana bądź ograniczonego zaufania) lub publicznym internecie. Przypadek użycia: Dobry do szybkiego tworzenia aplikacji, ale baza danych oddzielona od aplikacji nie walczy o te same zasoby systemowe. Joanna Kołodziejczyk Tworzenie aplikacji bazodanowych 2016 16 / 36

Rozwiązanie: niezależny serwer bazy danych Joanna Kołodziejczyk Tworzenie aplikacji bazodanowych 2016 17 / 36

Rozwiązanie: niezależny serwer bazy danych Zalety Wady Aplikacje i bazy danych nie walczą o te same zasoby serwera (procesor, pamięć, I / O, itd.). Możliwość pionowego skalowania każdej elementu oddzielnie, poprzez dodanie większej ilości zasobów na dowolny serwer, który potrzebuje zwiększonej pojemności. W zależności od konfiguracji, może zwiększyć bezpieczeństwo poprzez usunięcie bazy danych z DMZ. Nieco bardziej skomplikowane rozwiązanie niż jednoserwerowa konfiguracja. Możliwe problemy z wydajnością, gdy połączenie sieciowe pomiędzy dwoma serwerami jest wysokiej latencji (czyli serwery są geograficznie odległe od siebie), lub przepustowość jest zbyt niska dla ilości przesyłanych danych. Joanna Kołodziejczyk Tworzenie aplikacji bazodanowych 2016 18 / 36

Rozwiązanie: równoważenie obciążenia reverse proxy Równoważenie obciążenia może być dodawane do środowiska serwera, aby poprawić wydajność i niezawodność poprzez dystrybucję obciążenia na wiele serwerów. Jeśli jeden z serwerów zostanie wyłączony, pozostałe serwery będą obsługiwać ruch przychodzący, dopóki serwer nie zostanie uzdrowiony. Może on być również stosowany do obsługi wielu aplikacji w tej samej domenie i na tym samym porcie, za pomocą warstwy 7 (warstwy aplikacji) reverse proxy. Przykłady oprogramowania zdolnego do równoważenia obciążenia reverse proxy : HAProxy, Nginx, i Varnish. Przypadek użycia: Przydatne w środowisku, które wymaga skalowania poprzez dodawanie większej liczby serwerów, znany również jako poziome skalowanie. http://blogs.technet.com/b/plitpromicrosoftcom/archive/2013/05/14/reverse-proxy-w-iis.aspx Joanna Kołodziejczyk Tworzenie aplikacji bazodanowych 2016 19 / 36

Rozwiązanie: równoważenie obciążenia reverse proxy Joanna Kołodziejczyk Tworzenie aplikacji bazodanowych 2016 20 / 36

Rozwiązanie: równoważenie obciążenia reverse proxy Zalety Wady Umożliwia skalowanie poziome, czyli zwiększenie pojemności środowiska poprzez dodanie większej liczby serwerów. Może chronić przed atakami DDoS poprzez ograniczenie połączeń klientów do rozsądnej ilości i częstotliwości. Równoważenie obciążenia może stać się wąskim gardłem wydajności, jeśli nie ma wystarczających środków, lub jeśli jest słabo skonfigurowany. Może wprowadzać złożoność w systemie, która wymaga dodatkowych decyzji, takich jak, gdzie wykonywać kodowanie SSL w połączeniach szyfrowanych i jak obsługiwać aplikacje wymagające sticky session (przekierowanie zapytania do tego samego fizycznie urządzenia, które rozpoczęło sesję). Joanna Kołodziejczyk Tworzenie aplikacji bazodanowych 2016 21 / 36

Rozwiązanie: HTTP Accelerator (buforowanie reverse proxy) Akcelerator HTTP lub buforowanie reverse proxy, może być stosowane w celu zmniejszenia czasu potrzebnego do przekazania zawartości do użytkownika za pomocą różnych technik. Główną techniką przyjętą przez akcelerator HTTP jest buforowanie odpowiedzi z serwera WWW lub serwera aplikacji w pamięci, więc przyszłe zapytania o tej samej treści mogą być obsługiwane bardzo szybko. Realizuje się mniej zapytań z web serwerów lub serwerów aplikacji. Przykłady oprogramowania zdolnego do akceleracji HTTP: Vernish, Squid, Nginx. Przypadek użycia: Przydatne w środowisku dynamicznych aplikacjach WWW z dużą treścią, lub z wieloma powszechnie używanymi plikami. Joanna Kołodziejczyk Tworzenie aplikacji bazodanowych 2016 22 / 36

Rozwiązanie: HTTP Accelerator (buforowanie reverse proxy) Joanna Kołodziejczyk Tworzenie aplikacji bazodanowych 2016 23 / 36

Rozwiązanie: HTTP Accelerator (buforowanie reverse proxy) Zalety Wady Zwiększenie wydajności witryny poprzez zmniejszenie obciążenia procesora na serwerze WWW, poprzez buforowanie i kompresję, co zwiększa możliwości użytkownika. Może być użyty jako równoważenie obciążeń reverse proxy. Niektóre programy buforowania mogą chronić przed atakami DDoS. Wymaga dostrojenia, aby uzyskać najlepszą wydajność. Jeśli wskaźnik cache-hit jest niski, może to zmniejszyć wydajność. Joanna Kołodziejczyk Tworzenie aplikacji bazodanowych 2016 24 / 36

Rozwiązanie: replikacja bazy danych w architekturze master-slave Jednym ze sposobów poprawy wydajności systemu bazy danych, która wykonuje wiele czytań w porównaniu do liczby zapisów, takich jak CMS, jest użycie replikacji bazy danych w architekturze master-slave. Replikacja master-slave wymaga jednego węzła głównego oraz jednego lub więcej węzłów podrzędnych. W tej konfiguracji, wszystkie aktualizacje są wysyłane do węzła głównego i odczyty mogą być rozłożone na wszystkie węzły. Przypadek użycia: dobry dla zwiększenia wydajności odczytu bazy danych w warstwie aplikacji. Joanna Kołodziejczyk Tworzenie aplikacji bazodanowych 2016 25 / 36

Rozwiązanie: replikacja bazy danych w architekturze master-slave Rozwiązanie z pojedynczym węzłem typu slave Joanna Kołodziejczyk Tworzenie aplikacji bazodanowych 2016 26 / 36

Rozwiązanie: replikacja bazy danych w architekturze master-slave Zalety Wady Poprawia wydajność odczytu bazy danych poprzez rozproszenie odczytu w węzłach slave. Może poprawić wydajność zapisu poprzez wyłącznie węzła master tylko do aktualizacji/zapisu (nie spędza czasu na obsługiwaniu żądań odczytu). Aplikacja korzystająca z bazy danych musi mieć mechanizm określający, które węzły służą do zapisu, a które do odczytu. Aktualizacje węzłów slave są asynchroniczne, więc istnieje ryzyko, że ich zawartość nie będzie aktualna. Jeśli węzeł główny ulegnie awarii, nie można wykonywać wpisów do bazy danych, aż problem nie zostanie rozwiązany. Joanna Nie mają Kołodziejczyk wbudowanegotworzenie przełączania aplikacji awaryjnego bazodanowych w przypadku awarii 2016węzła 27 / 36

Przykład złożonego rozwiązania Możliwe jest równoważenie obciążenia serwerów buforujących, oprócz serwerów aplikacyjnych i używanie replikacji bazy danych w pojedynczym środowisku. Celem jest połączenie tych technik, aby czerpać korzyści z każdej bez wprowadzania zbytniej złożoności. Załóżmy, że równoważenie obciążenia jest skonfigurowane do obsługi żądań statycznych (takich jak obrazy, CSS, JavaScript, itp) i wysyła te zapytania bezpośrednio do serwerów buforowania a inne żądania wysyła do serwerów aplikacji. Joanna Kołodziejczyk Tworzenie aplikacji bazodanowych 2016 28 / 36

Przykład złożonego rozwiązania Joanna Kołodziejczyk Tworzenie aplikacji bazodanowych 2016 29 / 36

Jak obsługuje się zapytanie użytkownika przykład 1 Użytkownik żąda dynamicznej zawartości z http://example.com/ (load balancer). 2 Load balancer przesyła zapytanie do do app-backend 3 App-backend czyta z bazy danych i zwraca zawartość do load balancer. 4 Load balancer zwraca wymagane dane dla użytkownika Joanna Kołodziejczyk Tworzenie aplikacji bazodanowych 2016 30 / 36

Jak obsługuje się zapytanie użytkownika o zawartość statyczną przykład 1 Load balancer sprawdza cache-backend aby zobaczyć, czy żądana zawartość jest w pamięci podręcznej (cache-hit), czy nie (cache-miss). 2 Jeśli cache-hit: zwrócenie żądanej treści do load balancer i przejść do kroku 7. Jeśli cache-miss: serwer cache przekazuje żądanie do app-backend, przez load balancer. 3 Load balancer przekazuje żądanie aż do app-backend 4 App-backend odczytuje z bazy danych, a następnie zwraca zawartość do load balancer. 5 Load balancer przesyła odpowiedź do cache-backend 6 Cache-backend buforuje zawartość i zwraca go do load balancer. 7 Load balancer zwraca wymagane dane dla użytkownika Joanna Kołodziejczyk Tworzenie aplikacji bazodanowych 2016 31 / 36

Przykład złożonego rozwiązania wady To środowisko ma jeszcze dwa słabe punkty (równoważenie obciążenia i serwer baz danych jako master), ale oferuje wszystkie inne korzyści, niezawodność i wydajności, które zostały opisane przy niezależnych rozwiązaniach. Joanna Kołodziejczyk Tworzenie aplikacji bazodanowych 2016 32 / 36

Web serwis z bazą danych Plan wykładu 1 Klasyfikacja baz danych 2 Architektura jak wybrać 3 Web serwis z bazą danych 4 Literatura Joanna Kołodziejczyk Tworzenie aplikacji bazodanowych 2016 33 / 36

Web serwis z bazą danych Opracowanie strony internetowej z bazą danych online Strony internetowe mogą zacząć swoje istnienie jako statyczna strona informacyjna, dopóki właściciel strony nie zda sobie sprawy, że trzeba umieścić kilka danych strukturalnych. Dane te mogą być proste w konstrukcji, lub złożone. Tak czy inaczej dane można pozyskać online i zintegrowane ze stroną. Joanna Kołodziejczyk Tworzenie aplikacji bazodanowych 2016 34 / 36

Literatura Plan wykładu 1 Klasyfikacja baz danych 2 Architektura jak wybrać 3 Web serwis z bazą danych 4 Literatura Joanna Kołodziejczyk Tworzenie aplikacji bazodanowych 2016 35 / 36

Literatura Do opracowania tej części wykładu wykorzystano 1 5 Common Server Setups For Your Web Application by Mitchell Anicas https://www.digitalocean.com/community/tutorials/ 5-common-server-setups-for-your-web-application 2 Wprowadzenie do baz danych https://en.wikibooks.org/wiki/ Introduction_to_Computer_Information_Systems/Database Joanna Kołodziejczyk Tworzenie aplikacji bazodanowych 2016 36 / 36