Technologie programowania systemów internetowych

Slides:



Advertisements
Podobne prezentacje
20041 Projektowanie dynamicznych witryn internetowych Paweł Górczyński ASP 3.0.
Advertisements

Serwery WWW Michał Kuciapski Uniwersytet Gdański Wyższa Szkoła Bankowa
Java Enterprise Ed. vs Spring Framework
Marcin Celiński grudzień 2000
J2EE vs .NET Próba porównania Krzysztof Sobiesiński Michał Słupski.
Decyzje projektowe w .NET Framework
Artur Jonak empolis Polska Sp. z o.o.
Projektowanie Aplikacji Komputerowych
Serwery aplikacji 2008/2009 KAMiTS WMiI UŁ
(Content Management System)
ROZWÓJ APLIKACJI PRZY WYKORZYSTANIU ZEND Jakub Lesiński IV EMII.
PHP vs. ASP PHP – lider wydajności wśród języków skryptowych.
Eclipse jako IDE III a.
Wykład 2. Wprowadzenie do architektur systemów rozproszonych
Proxy (WWW cache) Sieci Komputerowe
Platforma J2EE korporacyjny standard wytwarzania złożonych systemów informatycznych Autor: Jarosław Lis Warszawa, 2006r.
P I OTR SKOŁYSZ. POCHODZENIE I CELE CZYM JEST.NET ? CO IMPLEMENTUJE MONO ? ŚRODOWISKO PRACY [MONODEVELOP] SYTEMY OPERACYJNE CO PROGRAMOWAĆ ? JĘZYKI PRZYKŁADOWY.
Wzorce projektowe w J2EE
Microsoft Serwer - wprowadzenie
Współczesne systemy informacyjne
Systemy zarządzania treścią CMS
Paweł Fałat Katedra Informatyki Stosowanej
1/18 LOGO Profil zespołu. 2/18 O nas Produkcja autorskich rozwiązań informatycznych dla małych i średnich firm w zakresie systemów: Baz danych Aplikacji.
Architektura systemów wykorzystujących bazy danych (systemów bazodanowych) Wykład S. Kozielski.
System katalogowania. Opis i architektura.
Przemek Lewicki Piotr Linka Bartek Stasikowski
Rozwój aplikacji przy wykorzystaniu ASP.NET
Aplikacje Internetowe
Web Serwisy w praktyce Technologie internetowe ( )
Systemy zarządzania treścią Wykład 1
Architektura Systemu MunSOL
Wirtualna baza SQL zgodna z SQL Server SQL as a Service
Technologie tworzenia aplikacji internetowych Wykład 3
SYSTEM STEROWANIA NADRZĘDNEGO
Informatyczny system edukacyjny do przedmiotu „Multimedia”
Lokalne serwery www Serwer WWW - ang. Web server jest to oprogramowanie zainstalowane na serwerze podłączonym do sieci Internet. Używające technologii.
Systemy zarządzania treścią Content Management System
Arkadiusz Twardoń ZTiPSK
czyli prosty sposób na SSO
Autor: Kamil Szafranek
Technologie internetowe II
Systemy IPTV 2008 © Cyfrowe Systemy Telekomunikacyjne Sp. z o.o. Efektywna komunikacja ze światem.
Serwery aplikacji Zope Tomcat. Składniki Zopea: Serwer Management interface Databases.
Tworzenie aplikacji webowych w oparciu o framework ObjectLedge
Technologie tworzenia aplikacji internetowych
Aplikacje bazodanowe ADO.NET PHP i MySQL
Specjalizacja "Dziennikarstwo On-line„ asynchroniczny JavaScript i XML – AJAX Część 6 Prowadzący: Dariusz Jaruga
ZAKŁAD SYSTEMÓW KOMPUTEROWYCH
PARENTIS działa na rynku od 2001 roku. Dział Informatyki może poszczycić się wieloma wdrożeniami oraz specjalnie przygotowanymi rozwiązaniami dla firm.
SOS SYSTEM OBSŁUGI SZKOŁY
„Kalkulator zużycia oraz kosztu energii elektrycznej online „
Systemy zarządzania treścią Wykład 5
Autor: Marcin Polak Promotor: dr inż. Paweł Kasprowski
Projektowanie Aplikacji Internetowych
Temat 1: Ogólne cechy języka PHP
HTML (ang. HyperText Markup Language ) – język do tworzenia stron internetowych opierający się na znacznikach, czy inaczej je nazywając – tagach. Język.
Projektowanie Aplikacji Internetowych Artur Niewiarowski Wydział Fizyki, Matematyki i Informatyki Politechnika Krakowska.
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski 1 informatyka +
Podstawy języka skryptów
Programowanie w językach skryptowych
PHP. PHP obiektowy, skryptowy język programowania zaprojektowany do generowania stron internetowych w czasie rzeczywistym.
Temat: Porównanie technologii php,c# oraz javascript na przykładzie webaplikacji typu społecznościowy agregator treści Autor: Wojciech Ślawski.
Sławomir Staśkiewicz JBossAS i EJB 3.1 Sławomir Staśkiewicz
Języki i technologie wytwarzania stron WWW Autor: Michał Walkowski Referat.
IX Konferencja "Uniwersytet Wirtualny: model, narzędzia, praktyka" K. Anders, K. Madziar, M. Jusza, I. Burska, P. Witoński, R. Piramidowicz ĆWICZENIA LABORATORYJNE.
Wydział Matematyki, Informatyki i Architektury Krajobrazu
Podstawy programowania
Zapis prezentacji:

Technologie programowania systemów internetowych Piotr Czapiewski Wydział Informatyki ZUT Technologie programowania systemów internetowych Wykład 1

Aplikacje internetowe Systemy internetowe Systemy internetowe Aplikacje internetowe Witryny internetowe Strony internetowe Ewolucja: Strony internetowe -> strony dynamiczne -> witryny, aplikacje internetowe Systemy informatyczne -> monolityczne -> klient/serwer -> wielowarstwowe, rozproszone -> systemy internetowe Strony internetowe: HTML, CSS, JavaScript, design, Flash Witryny internetowe: Witryna to coś więcej, niż zbiór stron. Architektura informacji, web usability, projektowanie nawigacji, organizacja treści, budowa portali. Aplikacje internetowe: Aplikacja klient/serwer używająca przeglądarki jako klienta. Przetwarzanie danych, dostęp do zasobów i usług. CGI, PHP, ASP, JSP System internetowy: Coś więcej niż aplikacja internetowa. Dodatkowo: usługi sieciowe, przetwarzanie rozproszone, integracja aplikacji. Może mieć GUI, ale nie musi. Może mieć klienta webowego albo stanowiskowego. System internetowy jako część systemu korporacyjnego. Web-services, SOA, JavaEE, .NET. - Tworzenie systemów internetowych: nie webmastering/projektowanie witryn/grafika/css/flash – bliżej: inżynieria oprogramowania, architektura systemów. Obszar zainteresowań: Metodologia projektowania aplikacji – NIE Projektowanie warstwy prezentacji, webmastering, design graficzny – NIE Projektowanie architektury, nawigacji, web usability - NIE Technologie programowania – TAK Usługi sieciowe, komunikacja – TAK Interesuje nas przede wszystkim programowanie; języki programowania, platformy, wzorce projektowe.

Architektura systemów internetowych Architektura trójwarstwowa (3-tier) Interfejs użytkownika Prezentacja wyników Warstwa prezentacji Logika biznesowa Przetwarzanie danych Kontrola przepływu informacji Warstwa aplikacji Bazy danych Składowanie i pobieranie danych Warstwa danych

Architektura systemów internetowych Architektura trójwarstwowa (3-tier) Przeglądarka WWW HTML, CSS, JavaScript, Flash Warstwa prezentacji Serwer WWW, serwer aplikacji PHP, Java Servlets, JSP, EJB Warstwa aplikacji Serwer bazy danych PostgreSQL, MySQL, Oracle JDBC, ODBC, JDO, ADO.NET Warstwa danych

Architektura systemów internetowych Architektura wielowarstwowa (multi-tier, n-tier) Warstwa prezentacji JSP, Java Servlets Warstwa logiki prezentacji Enterprise Java Beans Warstwa logiki biznesowej Warstwa danych Web tier Business tier

Architektura systemów internetowych Architektura SOA (Service-Oriented Architecture) Grupowanie funkcjonalności wokół procesów biznesowych Udostępnianie funkcjonalności w postaci usług

Serwery WWW i serwery aplikacji Serwer WWW Obsługa żądań HTTP, udostępnianie dokumentów, komunikacja z przeglądarką WWW Uwierzytelnianie, kontrola dostępu Przykładowe serwery: Apache, IIS, lighttpd Serwer aplikacji Platforma uruchamiania warstwy aplikacji, logiki biznesowej, usług sieciowych Komunikacja z warstwą klienta i warstwą danych Przykładowe serwery: Tomcat, JBoss, Glassfish, .NET Framework, Zend Server, Zope

Technologie aplikacji internetowych Smarty, Zend, Symfony, Zoop, CodeIgniter… CGI, Perl, PHP, ColdFusion, ASP… JSP, JSF, Struts, Spring, Tapestry, GWT, Seam… Java, .NET, C#, VB, Ruby, RoR, Flex…

PHP PHP: Hypertext Preprocessor

PHP: Hypertext Preprocessor Język skryptowy ogólnego przeznaczenia Główne zastosowanie: dynamiczne strony internetowe, server-side scripting Powstanie i rozwój Pierwsza wersja: 1995 r. Twórca: Rasmus Lerdorf Obecnie rozwijany przez PHP Group, http://php.net Open source Zalety Dostępny dla większości platform Łatwy w użyciu Szybki w działaniu

Popularność PHP Źródło: Netcraft, http://news.netcraft.com/archives/2013/01/31/php-just-grows-grows.html

Historia PHP 1.0 – 4.4 5.0 – 5.6 6.0 7.0 5.0 – programowanie obiektowe 5.1 – PDO 5.3 – przestrzenie nazw, PHAR 5.4 – wbudowany serwer WWW 6.0 Anulowane 7.0 Planowane Początki: 1994 r. Rasmus Lerdorf. Prywatny projekt, wsparcie swojej strony domowej. Proste programy CGI w C, zastąpiły skrypty w Perlu. Potem dodał obsługę formularzy i baz danych – PHP/FI. Obiektowość: w wersji 3, prawdziwa w 5. PHP Data Objects w 5.

PHP: osadzanie w HTML <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>Example</title> </head> <body> <?php echo "Hi, I'm a PHP script!"; ?> </body> </html>

Proces generowania strony Działa jak filtr. Na wejściu: tekst przeplatany PHP. Na wyjściu: strumień danych/tekstu. Na początku: interpreter. Obecnie: kompilator, bytecode, Zend Engine służy za VM.

Proces generowania strony Zasada działania Początkowo: kod interpretowany Obecnie: Zend Engine - kompilacja w locie, możliwe cache’owanie kodu pośredniego; planowane przejście na JIT Działa jak filtr. Na wejściu: tekst przeplatany PHP. Na wyjściu: strumień danych/tekstu. Na początku: interpreter. Obecnie: kompilator, bytecode, Zend Engine służy za VM.

Jak zacząć? Serwer WWW Moduł PHP Baza danych Apache – http://www.apache.org Moduł PHP http://www.php.net Baza danych MySQL – http://www.mysql.com PostgreSQL – http://www.postgresql.org Paczuszka – wszystko w jednym XAMPP – http://www.apachefriends.org

Jak zacząć? Środowisko programistyczne (IDE) Netbeans + PHP plugin – http://www.netbeans.org Eclipse + PDT plugin – http://www.eclipse.org

Programowanie w PHP

Składnia PHP Przeplatanie PHP i HTML Blok kodu PHP może być ograniczony przez:

Przeplatanie PHP i HTML

Przeplatanie PHP i HTML

Komentarze Komentarze w stylu języka C Komentarze w stylu Perla Jednolinijkowe Blokowe Komentarze w stylu Perla

Zmienne Identyfikatory zmiennych Znak $ + nazwa zmiennej $x, $y, $username, $_A27 Rozróżniana wielkość liter $kartofel != $Kartofel != $KARTOFEL Dozwolone znaki: Litery, cyfry, znaki podkreślenia Nazwa zmiennej musi zaczynać się od litery lub podkreślenia

Przypisywanie zmiennych Domyślnie zmienne przypisywane są przez wartość: Przypisanie przez referencję:

Przypisywanie zmiennych Uwaga na referencje:

Inicjalizacja zmiennych Deklaracja i inicjalizacja zmiennych nie jest konieczna Zmienne inicjowane są wartością domyślną danego typu boolean: false, integer: 0, string: "" Niebezpieczeństwo: Sprawdzenie czy zmienna została zainicjowana: Brak błędu Wynik: 7 Niebezpieczeństwa polegania na niezainicjowany zmiennych: Includowanie skryptów korzystających z tych samych zmiennych Zmienne przekazane przez hackera GETem lub cookie

Typy zmiennych Typów zmiennych w PHP nie trzeba deklarować Typ zmiennej określany jest na podstawie kontekstu, w jakim zmienna została użyta Automatyczna konwersja typów

Łańcuchy tekstowe Łańcuch może być ograniczony: Apostrofami – 'Ala ma kota' Cudzysłowem – "Ala ma kota”

Łańcuchy ograniczone apostrofami Wewnątrz możemy umieszczać cudzysłów Aby w środku łańcucha umieścić apostrof, poprzedzamy go znakiem backslash: \' Aby umieścić backslash na końcu łańcucha lub przed znakiem apostrofu, wpisujemy dwa znaki backslash: \\ Backslash umieszczony przed innym znakiem zostanie wyświetlony normalnie Zmienne wewnątrz łańcucha nie są rozwijane Łańcuch może zawierać znaki nowej linii

Łańcuchy ograniczone apostrofami

Łańcuchy ograniczone cudzysłowem Więcej sekwencji specjalnych, np. \n, \r, \t, \$, \" Zagnieżdżanie cudzysłowu i apostrofu

Łańcuchy ograniczone cudzysłowem Rozwijanie zmiennych zawartych w łańcuchu

Operacje na łańcuchach tekstowych Operator konkatenacji – kropka Zmiana wielkości znaków

Operacje na łańcuchach tekstowych Dostęp do pojedynczych znaków Długość łańcucha Wyszukanie i zamiana ciągów znaków

Operacje na łańcuchach tekstowych Zamiana łańcucha na liczbę Automatyczna, typ zależny od kontekstu Jeśli łańcuch zawiera: kropkę, 'e' lub 'E'  typ float W przeciwnym wypadku  typ integer Zamieniana jest początkowa część łańcucha, tworząca liczbę Jeśli łańcuch nie zawiera liczby  wartość zero

Instrukcje sterujące Instrukcja warunkowa if

Instrukcje sterujące Instrukcja warunkowa if

Instrukcje sterujące Pętle while i do-while

Instrukcje sterujące Pętle for i foreach

Instrukcje sterujące Instrukcja wyboru switch

Tablice Tablica w PHP jest w rzeczywistości uporządkowaną mapą przechowuje pary klucz-wartość Tablicy można użyć jako: tablicy, listy, mapy, słownika, stosu, kolejki… Wielowymiarowe tablice tablice zawierające tablice

Tablice Tworzenie tablicy

Tablice Dopisywanie danych na końcu tablicy Usuwanie danych z tablicy 1 2 3 8 13 18

Tablice Iterowanie po tablicy – pętla foreach

Funkcje Definicja i wywołanie funkcji Funkcja może być zdefiniowana później, niż użyta Nazwa funkcji – reguły jak dla zmiennych Zawartość – dowolny kod, także inne funkcje i klasy Zwracanie wartości jest opcjonalne. Zwrócić można wszystko – także tablicę.

Funkcje warunkowe

Funkcje warunkowe

Argumenty funkcji Domyślnie argumenty przekazywane są przez wartość Przekazywanie przez referencję

Argumenty funkcji Argumenty z wartością domyślną Making a cup of cappuccino. Making a cup of . Making a cup of espresso.

Argumenty funkcji Argumenty z wartością domyślną – błędne użycie ŹLE DOBRZE

Aplikacje internetowe w PHP

rejestruj.php?imie=Jan&nazw=Kowalski Obsługa formularzy rejestruj.php <?php if(isset($_REQUEST['email'])) { $imie = filtruj($_REQUEST['imie']); $nazw = filtruj($_REQUEST['nazw']); $email = filtruj($_REQUEST['email']); $id = dodaj($imie, $nazw, $email); } else { wyswietlFormularz(); } function filtruj($s) { return trim(htmlspecialchars($s)); } ?> rejestruj.php?imie=Jan&nazw=Kowalski index.html <form action="rejestruj.php" method="get" > Imię: <input type="text" name="imie"> Nazwisko: <input type="text" name="nazw"> <input type="submit" value="Wyślij"> </form>

Obsługa formularzy Formularz HTML Tablice globalne: $_GET, $_POST

Obsługa formularzy Zabezpieczenie przed wstrzykiwaniem kodu HTML lub JavaScript Obsługa sesji Programowanie obiektowe Rozbudowany przykład

Obsługa sesji

Sesje Rozwiązanie problemu bezstanowości protokołu HTTP Generowany przy pierwszym żądaniu Przesyłany w URL lub zapamiętywany jako cookie Identyfikator sesji Serwer zapamiętuje stan sesji (stan uwierzytelnienia, pozycje w koszyku, itp.) Zmienne kojarzone są z danym identyfikatorem Tablica sesji Jawne zniszczenie sesji Wygaśnięcie sesji po upływie określonego czasu Usuwanie stanu sesji

Obsługa sesji Rozpoczynanie sesji Zmienne sesyjne Automatyczne – jeśli session.auto_start = 1 Ręczne – session_start(); Zmienne sesyjne $_SESSION['uzytkownik'] = 'Zdzichu'; Usunięcie zmiennej zapisanej w sesji unset($_SESSION['nazwa_zmiennej']) Usunięcie sesji session_destroy()

Logowanie za pomocą sesji <?php // Starting the session session_start(); if(isset($_SESSION['user'])) { // Code for Logged members // Identifying the user $user = $_SESSION['user']; // Information for the user. } else { // Code to show Guests } ?>

Logowanie za pomocą sesji <?php //Username Stored for logging define("USER", "user"); define("PASS", "123456"); // Normal user section - Not logged ------ if(isset($_REQUEST['username']) && isset($_REQUEST['password'])) { // Section for logging process ----------- $user = trim($_REQUEST['username']); $pass = trim($_REQUEST['password']); if($user == USER && $pass == PASS) { // Successful login ------------------ // Setting Session $_SESSION['user'] = USER; // Redirecting to the logged page. header("Location: index.php"); } else { // Wrong username or Password. Show error here. } }