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



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

Co to jest NODE.JS? Nowoczesne środowisko programistyczne

Aplikacje webowe z wykorzystaniem Node.js oraz Express

PROJEKTOWANIE APLIKACJI INTERNETOWYCH

Wybrane działy Informatyki Stosowanej

Aplikacje WWW i PHP - opis przedmiotu

PRZEWODNIK PO PRZEDMIOCIE

Techniki WWW. (HTML, CSS, JavaScript) Dr inż. Marcin Zieliński WYKŁAD 1. Środa 15:30-17:00 sala: A-1-04

Przygotowanie do nowoczesnego programowania po stronie przeglądarki. (HTML5, CSS3, JS, wzorce, architektura, narzędzia)

Nowoczesny dział IT w chmurze

Języki i narzędzia programowania III. Łukasz Kamiński Wykład II

PROJEKTOWANIE APLIKACJI INTERNETOWYCH

Generated by Foxit PDF Creator Foxit Software For evaluation only. System Szablonów

PRZEWODNIK PO PRZEDMIOCIE

AJAX. Wykonał: Marcin Ziółkowski, AGH Kraków, AiR rok 5.

Dokumentacja techniczna. Młodzieżowe Pośrednictwo Pracy

Budowanie interfejsów do baz danych

która metoda jest najlepsza

PROJEKTOWANIE APLIKACJI INTERNETOWYCH

Tworzenie stron internetowych z wykorzystaniem HTM5, JavaScript, CSS3 i jquery. Łukasz Bartczuk

OpenLaszlo. OpenLaszlo

Jadro monolityczne vs. mikrojadro. Mikrojadro. Olga Kowalczuk. 9 grudnia 2008

Paweł Rajba,

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

Exulto Software House

Twisted. Silnik Twojego Internetu. Jan Urbański Ducksboard. PyWaw #25, Warszawa, 10 czerwca 2013

SignalR. Komunikacja w czasie rzeczywistym z SignalR. Mateusz Nostitz-Jackowski

Szczegółowy opis zamówienia:

Wprowadzenie. 1. Terminal WebRTC. LABORATORIUM 5: WebRTC komunikacja między terminalami.

System Zarządzania Treścią

Efektywne tworzenie aplikacji webowych z wykorzystaniem AngularJS, HTML5 i JavaScript

Wybrane działy Informatyki Stosowanej

ANGULARJS TWORZENIE APLIKACJI INTERNETOWYCH

PHP: bloki kodu, tablice, obiekty i formularze

Dotacje na innowacje. Inwestujemy w waszą przyszłość.

Tytuł szkolenia: Angular 4 - budowanie nowoczesnych i wydajnych aplikacji przeglądarkowych

Zakres tematyczny dotyczący kursu PHP i MySQL - Podstawy pracy z dynamicznymi stronami internetowymi

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

Akademia Techniczno-Humanistyczna w Bielsku-Białej

Zaawansowane aplikacje internetowe

Wybrane działy Informatyki Stosowanej

Wybrane działy Informatyki Stosowanej

Wykorzystanie Node.js w tworzeniu aplikacjach sterowanych zdarzeniami. Using of Node.js in creating application based on event-driven architecture

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

KARTA MODUŁU KSZTAŁCENIA

O sobie. Adam Kowalski. Absolwent informatyki Uniwersytetu Wrocławskiego Full-stack Developer w firmie Synergy Codes.

CMS, CRM, sklepy internetowe, aplikacje Web

Serwer komunikacyjny SIP dla firm

Programowanie Komponentowe WebAPI

Bardzo szybkie wprowadzenie do Node.js

Program szkolenia: REST i Microservices w PHP

Patryk Jar Meet.js, Gdańsk 11 marca 2013 r. MODULARNY JAVASCRIPT

Projekt Fstorage. Łukasz Podkalicki Bartosz Kropiewnicki

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

Interfejs do potwierdzania produkcji w SAP ze skanerem ELZAB

REFERAT O PRACY DYPLOMOWEJ

HTML, CSS i JavaScript / Laura Lemay, Rafe Colburn, Jennifer Kyrnin. Gliwice, cop Spis treści

Ajax. 1. Wprowadzenie. 2. Aplikacja serwerowa

Programowanie urządzeń mobilnych. projekt 6 ( )

Referat z przedmiotu Technologie Internetowe SPIS TREŚCI

PHP: bazy danych, SQL, AJAX i JSON

Dokumentacja aplikacji Szachy online

ActiveXperts SMS Messaging Server

Aplikacje Internetowe

Dokumentacja końcowa projektu z ZPR

Podstawy programowania w języku JavaScript

REFERAT O PRACY DYPLOMOWEJ

REFERAT PRACY DYPLOMOWEJ

Wprowadzenie SYSTEMY SIECIOWE. Michał Simiński

Bazy danych i strony WWW

Technologie sieciowe Sprawozdanie z labolatorium. Lista 5

Koncepcja wirtualnej pracowni GIS w oparciu o oprogramowanie open source

Witryny, które nie spełniają tych wymagań, nie są użyteczne dla klientów i powodują tendencję do wyjścia ze sklepu.

Dokumentacja techniczna

JQuery. $('#pierwszy').css('color','red').hide('slow').show(3000); $(document).ready(function() { //... tutaj nasze skrypty jquery //...

Mechanizmy pracy równoległej. Jarosław Kuchta

Kompresja stron internetowych

Tworzenie witryn internetowych PHP/Java. (mgr inż. Marek Downar)

Instalacja SQL Server Express. Logowanie na stronie Microsoftu

WYKŁAD 1 ANGULARJS CZĘŚĆ 1

REFERAT O PRACY DYPLOMOWEJ

Nowa usługa Centrum Komputerowego PŁ. Pliki w Chmurze. Serwis przechowywania i udostępniania danych. Prezentacja wprowadzająca

Skalowalne aplikacje internetowe wysokiej dostępności

Zrąb JavascriptMVC. Krzysztof Płocharz. 6 kwiecień Uniwersytet Warszawski

Java w Internecie - czy to ma sens? ;)

Krótka Historia. Co to jest NetBeans? Historia. NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły. Paczki do NetBeans.

Wprowadzenie. Narzędzia i środowiska programistyczne. Laboratorium 1. Prowadzący: Kierunek: Semestr: Rok: Tomasz Gądek Informatyka Zimowy 2

Web frameworks do budowy aplikacji zgodnych z J2EE

Wymagania edukacyjne z przedmiotu Witryny i aplikacje internetowe klasa 2iA. tworzenia stron. animację - multimedia

Krakowska Akademia im. Andrzeja Frycza Modrzewskiego. Karta przedmiotu. obowiązuje studentów, którzy rozpoczęli studia w roku akademickim 2013/2014

Odseparowanie kodu PHP i warstwy prezentacji od dawna było celem

FUNKCJONALNOŚ C PORTAL B2B KAMELEON.ŚQL

Języki programowania wysokiego poziomu WWW

Jak okiełznać frontend w Django? Piotr Maliński

Ataki na aplikacje WWW. Łomem, czy wytrychem? Jak dobrać się do aplikacji WWW

System CMS do obsługi intranetu korporacyjnego z modułem rezerwacji sal konferencyjnych, rzutników, samochodów

Transkrypt:

Zaawansowane Techniki WWW (HTML, CSS i NODE.JS) Dr inż. Marcin Zieliński Środa 15:30-17:00 sala: A-1-04 WYKŁAD 8 Wykład dla kierunku: Informatyka Stosowana II rok Rok akademicki: 2014/2015 - semestr zimowy

Przypomnienie z poprzedniego wykładu Wprowadzenie do obiektowości Asynchroniczność Dziedziczenie klas oraz prototypowanie

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

Popularne dostępne rozwiązania Najpopularniejsze środowiska programistyczne: oraz systemy CMS (Content Menager System):

Dlaczego NODE.JS a nie PHP vs. Obecnie PHP jest wykorzystywane na około 75% wszystkich stron internetowych.

Dlaczego NODE.JS a nie PHP vs. Obecnie PHP jest wykorzystywane na około 75% wszystkich stron internetowych. Wiele nowych projektów odchodzi od PHP na rzecz NODE.JS jako rozwiązania bardziej wydajnego, elastycznego i niezależnego.

Dlaczego NODE.JS a nie PHP vs. Obecnie PHP jest wykorzystywane na około 75% wszystkich stron internetowych. Wiele nowych projektów odchodzi od PHP na rzecz NODE.JS jako rozwiązania bardziej wydajnego, elastycznego i niezależnego. Daje możliwości tworzenia łatwo skalowalnych aplikacji internetowych, których działanie jest sterowane zdarzeniowo wykorzystując żądania asynchroniczne czyli bez konieczności przeładowania danego zasobu.

Node.js

Node.js http://nodejs.org/

Node.js Co to jest NODE.JS?

Node.js Co to jest NODE.JS? Nowoczesne środowisko programistyczne Środowisko programistyczne w sensie zestawu gotowych klas i metod których można używać do przygotowania własnych skalowalnych i wydajnych aplikacji internetowych.

Krótka historia Node.js Środowisko Node.js zostało stworzone w 2009 roku, przez Ryana Dahla, który w tamtym czasie pracował w firmie Joyent. Ryan Dahl

Krótka historia Node.js Środowisko Node.js zostało stworzone w 2009 roku, przez Ryana Dahla, który w tamtym czasie pracował w firmie Joyent. Oficjalna premiera i prezentacja pakietu odbyła się podczas wykładu na konferencji JSConf EU 2009 Ryan Dahl

Krótka historia Node.js Node.js jest środowiskiem programistycznym napisanym w języku JavaScript. Aplikacje stworzone w środowisku Node.js są sterowane zdarzeniami wykorzystując system wejścia/wyjścia (I/O) który jest asynchroniczny. Ryan Dahl

Krótka historia Node.js Node.js jest środowiskiem programistycznym napisanym w języku JavaScript. Aplikacje stworzone w środowisku Node.js są sterowane zdarzeniami wykorzystując system wejścia/wyjścia (I/O) który jest asynchroniczny. Ryan Dahl http://nodejs.org/

Krótka historia Node.js Node.js jest środowiskiem programistycznym napisanym w języku JavaScript. Aplikacje stworzone w środowisku Node.js są sterowane zdarzeniami wykorzystując system wejścia/wyjścia (I/O) który jest asynchroniczny. Ryan Dahl http://nodejs.org/ Najnowsza wersja: v.0.10.33

Przypomnienie: asynchroniczność lan prz esy dan łanie ych ie łan esy prz anych d prze sył dan anie ych wie t wie wyś ście ście przetwarzanie wy ś tlan ie ie aktywność użytkownika wej wej SERWER nie syła prze ych dan CZAS ście SILNIK AJAX wej KLIENT (PRZEGLĄDARKA) przetwarzanie

Przypomnienie: asynchroniczność lan prz esy dan łanie ych ie łan esy prz anych d prze sył dan anie ych wie t wie wyś ście ście przetwarzanie wy ś tlan ie ie aktywność użytkownika wej wej SERWER nie syła prze ych dan CZAS ście SILNIK AJAX wej KLIENT (PRZEGLĄDARKA) przetwarzanie Jest to model asynchronicznej komunikacji HTTP, gdzie klient (przeglądarka) nie czeka na przyjście odpowiedzi na żądanie serwera, a wykonuje dalsze żądania. W takim modelu nie ma konieczności przeładowania strony przy każdej operacji klineta, wystarczy, że zostaną doczytane brakujące dane, a dzięki odpowiednim narzędziom zmodyfikowana zostanie zawartość strony.

Krótka historia Node.js Powstanie Node.js było zainspirowane przez funkcjonalności push jakie oferuje np. poczta GMAIL... Co to jest push?

Krótka historia Node.js Powstanie Node.js było zainspirowane przez funkcjonalności push jakie oferuje np. poczta GMAIL... Co to jest push? Usługi push działają w oparciu o przekazane przez klienta wcześniej informacje, na podstawie których serwer dostarcza klientowi nowych danych w zależności od tego czy są one dostępne.

Krótka historia Node.js Powstanie Node.js było zainspirowane przez funkcjonalności push jakie oferuje np. poczta GMAIL... Co to jest push? Usługi push działają w oparciu o przekazane przez klienta wcześniej informacje, na podstawie których serwer dostarcza klientowi nowych danych w zależności od tego czy są one dostępne. Przykład: Przykładem usługi push jest synchroniczny chat.

Krótka historia Node.js Node. jest czysto JavaScriptowym środowiskiem tworzenia stron internetowych działającym po stronie serwera. Do tej pory uczyliśmy się że...

Krótka historia Node.js Node. jest czysto JavaScriptowym środowiskiem tworzenia stron internetowych działającym po stronie serwera. Do tej pory uczyliśmy się że... JavaScript jest wykonywany po stronie klineta (przeglądarki)!

Krótka historia Node.js Node. jest czysto JavaScriptowym środowiskiem tworzenia stron internetowych działającym po stronie serwera. Do tej pory uczyliśmy się że... JavaScript jest wykonywany po stronie klineta (przeglądarki)! Jak zatem jest możliwe że Node.js działa na serwerze?

Google V8 Jak zatem jest możliwe że Node.js działą na serwerze?

Google V8 Jak zatem jest możliwe że Node.js działą na serwerze? Silnik V8 został stworzony na potrzeby przeglądarki Chrome, do obsługi skryptów napisanych w języku JavaScript.

Google V8 Silnik V8 został stworzony przez firmę Google na potrzeby przeglądarki Chrome, do obsługi skryptów napisanych w języku JavaScript.

Google V8 Silnik V8 został stworzony przez firmę Google na potrzeby przeglądarki Chrome, do obsługi skryptów napisanych w języku JavaScript. Jest to program napisany w języku C++, który kompiluje skrypty do kodu maszynowego, a dopiero następnie wykonuje. Dzięki takiej procedurze uzyskano wzrost wydajności i szybkości wykonywania skryptów JS.

JavaScript po stronie serwera Dzięki zastosowaniu silnika V8 wprowadzono zupełnie nowe podejście w myśleniu o wykonywaniu kodu JavaScript

JavaScript po stronie serwera Dzięki zastosowaniu silnika V8 wprowadzono zupełnie nowe podejście w myśleniu o wykonywaniu kodu JavaScript

JavaScript po stronie serwera Dzięki zastosowaniu silnika V8 wprowadzono zupełnie nowe podejście w myśleniu o wykonywaniu kodu JavaScript

JavaScript po stronie serwera Musimy odwrócić sposób myślenia jeśli chodzi wykonywanie JavaScriptu.

JavaScript po stronie serwera SERVER SIDE CLIENT SIDE

JavaScript po stronie serwera SERVER SIDE CLIENT SIDE

JavaScript po stronie serwera SERVER SIDE CLIENT SIDE

JavaScript po stronie serwera SERVER SIDE CLIENT SIDE

JavaScript po stronie serwera SERVER SIDE CLIENT SIDE HTTP

JavaScript po stronie serwera SERVER SIDE CLIENT SIDE HTTP

JavaScript po stronie serwera SERVER SIDE CLIENT SIDE HTTP

Obsługa żądań MODEL TRADYCYJNY KLIENCI SERWER

Obsługa żądań MODEL TRADYCYJNY KLIENCI SERWER Wątek

Obsługa żądań MODEL TRADYCYJNY KLIENCI SERWER Wątek Wątek

Obsługa żądań MODEL TRADYCYJNY KLIENCI SERWER Wątek Wątek Wątek

Obsługa żądań MODEL TRADYCYJNY KLIENCI... SERWER Wątek Wątek Wątek Oczekiwanie

Obsługa żądań MODEL TRADYCYJNY KLIENCI... SERWER Wątek Wątek Wątek Oczekiwanie Wątek W tym modelu serwer do obsługi każdego żadania musi stworzyć osobny wątek z ograniczonej puli jaką może obsłużyć CPU. Powoduje to że przy dużej ilości żądań niektóre z nich muszą czekać w kolejce na zrealizowanie. W wyniku czego serwer zaczyna zaczyna wolniej działać co wydłuża czas oczekiwania na odpowiedź.

Obsługa żądań MODEL TRADYCYJNY KLIENCI... SERWER Wątek Wątek Wątek Oczekiwanie Wątek Przykład: Dla systemu z 8GB pamięci RAM przydzialającego 2MB pamięci na wątek możemy obsłużyć maksymalnie w tym samym czasie 4000 żądań (w rzeczywistości jest to mniej ponieważ zużywamy jeszcze pamięć na inne operacje).

Obsługa żądań MODEL ZDARZENIOWY KLIENCI SERWER

Obsługa żądań MODEL ZDARZENIOWY KLIENCI SERWER Wątek

Obsługa żądań MODEL ZDARZENIOWY KLIENCI SERWER Wątek

Obsługa żądań MODEL ZDARZENIOWY KLIENCI SERWER Wątek

Obsługa żądań MODEL ZDARZENIOWY KLIENCI SERWER Wątek

Obsługa żądań MODEL ZDARZENIOWY KLIENCI SERWER Wątek...

Obsługa żądań MODEL ZDARZENIOWY KLIENCI... SERWER Wątek W modelu zdarzeniowym Node.js wykorzystuje tylko jeden wątek do obsługi wielu żadąń, oraz pętlę zdarzeń co powoduje że aplikacja taka jest bardzo wydajna i skalowalna. W praktyce przy żadaniach które nie wymagają złożonych operacji obliczeniowych można obsłużyć nawet do 1 miliona żądań jednocześnie.

Pętla zdarzeń (Event loop)...

Pętla zdarzeń (Event loop)...

Pętla zdarzeń (Event loop)... Pętla zdarzeń (Event Loop) Pojedyńczy wątek

Pętla zdarzeń (Event loop)... Rejestracja funkcji zwrotnej (callback) Pętla zdarzeń (Event Loop) Pojedyńczy wątek Request (req)

Pętla zdarzeń (Event loop)... Rejestracja funkcji zwrotnej (callback) Pętla zdarzeń (Event Loop) Pojedyńczy wątek Request (req) Serwer wykonuje np. : - operacje na plikach, - operacje bazodanowe, - obliczenia

Pętla zdarzeń (Event loop)... Rejestracja funkcji zwrotnej (callback) Pętla zdarzeń (Event Loop) Pojedyńczy wątek Request (req) Zakończenie wykonania żądanej operacji przez serwer Serwer wykonuje np. : - operacje na plikach, - operacje bazodanowe, - obliczenia

Pętla zdarzeń (Event loop)... Rejestracja funkcji zwrotnej (callback) Pętla zdarzeń (Event Loop) Pojedyńczy wątek Request (req) Response (res) Wysłanie odpowiedzi w postaci wcześniej zarejestrowanej funkcji zwrotnej (callback). Zakończenie wykonania żądanej operacji przez serwer Serwer wykonuje np. : - operacje na plikach, - operacje bazodanowe, - obliczenia

Zalety wykorzystania Node.js 1. Wbudowana asynchroniczność. 2. Sterowany zdarzeniami. 3. non-blocking I/O (wykorzystanie jednego wątku). 4. Praca w czasie rzeczywistym. 5. Skalowalność. 6. Duża biblioteka gotowych modułów (NPM). 7. Jezyk JavaScript.

Liderzy wykorzystujący Node.js

Przykład prostego kodu (z strony nodejs.org) var http = require('http'); http.createserver(function (req, res) { res.writehead(200, {'Content-Type': 'text/plain'}); res.end('hello World\n'); }).listen(1337, '127.0.0.1'); console.log('server running at http://127.0.0.1:1337/'); Prosty serwer przyjmujący żądania http

KONIEC WYKŁADU 8