niedziela, 26 lutego 2012

PT (wykład 1)




11 lutego 2012
09:21

Tomasz D.

Egzamin w sesji egzaminacyjnej
Po 50pkt do zdobycia z wykładu i laboratorium
Zalicza suma większa od 50% (bez progów z teorii czy laboratorium)




Platformy technologiczne
  • Definicja [Technologia, Platforma] - sposób jak coś zrobić (inżynieria, Technologia) - szczegóły inżynierskie (na czym to zrobić) - to są platformy;
  • Rys historyczny
    • Przetwarzanie w chmurach - wiemy tylko jak coś zrobić (brak platform)

       
  • Porównanie technologii - schemat
    • Czemu nie ma PHP? - to zwykły program (interpreter nie kompilator), można go uruchomić w konsoli na maszynie - nie otrzebuje serwera WWW;
    • Serwer aplikacyjny aplikacji Windows to windows server! (IIS to tylko serwer WWW)
    • Warstwa runtime - po to aby aplikacja była przenośna (CLR i Java runtime);
      • CLR - przenośny ale tylko na windowsach!
      • Java - jvm (kilkanaście wersji)
    • Warstwa obsługi bazy danych (JDBC,JPA, ADO.NET);
      • Mapowanie obiektowo - relacyjne (wcześniej LINQ teraz entity …);
    • Komponenty(biblioteki) prezentacji danych (Servlets,JSP,JSF,ASP.NET)
      • JSF - ściągnieta technologia z Microsoft ASP.NET - w tej chwili na wymarciu obie bo zbyt zamulają
    • Na końcu aplikacje najwyższego poziomu


      [cała godzina na jednym slajdzie!!!]










      Ostatnia modyfikacja: 2012-02-11; 10:13
      Po przerwie

  • Środowiska wykonawcze - tytuł slajdu
  • Bytecode dla javy
    • Microsoft ściągnął to i stworzył MSIL - są bardzo podobne do siebie
  • PHP - Zend Server - moduł od wersji 5 - zapamiętuje się pierwszą interpretację i w następnej wersji jest wykorzystywany (zamieniony kod na bytecode) - mechanizm cache'owania - na razie zarzucone - ma być włączone w wersji 6.
  • Porównanie maszyn wirtualnych JVM i CLR
    • JVM - bierze bytecode i tłumaczy
    • CLR - mechanizm cache'owania przetłumaczonych kodów (z MSIL )
    • JIT a ENGEN
  • Interpreter PHP spowalnia środowisko;


    Obsługa żadania w PHP
  • Konfiguracja krok po kroku
    • Instalacja serwer WWW
    • Biblioteki


    Współpraca Apache - Tomcat
  • Java
  • Też jest serwer WWW - Apache
  • Dodany Tomcat (wymaga JVM) - kontener
  • Załadować trzeba moduły mod_jserv
  • Komunikacja między nimi oparta o sockety


    Obsługa żądania JSP
  • Żądanie http (klient-server)
  • Serwer wysyła żądanie do kontenera (Serwer - java engine)
  • W razie potrzeby JVM odczytuje plik .jsp (java engine - kompilator)
  • JSP jest parsowane na kod serwletu
  • Serwlet zostaje uruchomiony i generuje HTML (w sliniku Java)
  • Kontener wysyła HTML do serwera


    Mechanizm wolny przy pierwszym uruchomieniu
    Przy kolejnych bardzo szybko (gotowe serwlety)


    HTTP Runtime

     
  • Przeglądarka - html - IIS
    • IIS zwraca HTML
  • Przeglądarka - aspx -IIS
    • IIS ładuje bibilotekę aspnet_isapi.dll
    • Przy użyciu aplikacji Inetinfo.exe ….

       
    Cykl życia strony ASP.NET

     
  • Po kompilacji otrzymamy plik dll (w przypadku javy był to class);
  • Obiekt po wygenerowaniu dll zostaje usunięty z pamięci (w javie był cache'owany)


    Czas życia obiektów
  • Najszybszy JSP, ASP na drugim miejscu, i php na końcu


    Przetwarzanie żądań w potoku HTTP(na przykładzie APS.NET)
  • Cały mechanizm ukryty przed programistą
  • Aplikacja skalowalna - ten sam kod posadzony na wielu serwerach
  • HttpRuntime pobiera jedną z instancji aplikacji serwera - wybiera wolną instancję
  • Żądanie po obróbce trafia do fabryki obiektów usługi - rozpoznaje po rozszerzeniach
    • Stronie aspx - fabryka sięga do bibliotek standardowo przypisanych do strony 9np. Page)
  • Po obróbce przez moduły wylatuje to do klienta
  • Przed tym w HttpContext przechowywana jest informacja o stanie sesji
  • Podobny mechanizm jest w Javie (moduły nazywają się filtrami)


    Czas życia obiektów
  • ASP.NET - zapisywany stan obiektu przed usunięciem


    Kontrolki serwerowe
  • Znajduje się tablica kontrolek w klasie Page
  • W kodzie znajduje nazwę kontrolki i przepytuje tablicę
    • Po znalezieniu jej w tablicy kontrolek wywoływana jest metoda render tworząca kod html
    • Po przepytaniu całej tablicy wszystko zbierane jest w całość i wyjściowo tworzy się strona html


    ??


    Utrzymanie stanu kontrolek






    Ostatnia modyfikacja: 2012-02-11; 11:15
    Mechanizm sesji

     
  • Sam serwer aplikacji nie potrafi zapewnić sesji;
  • W ramach sesji: utrzymanie (wymiana inf między klientem a serwerem że one wiedzą że maj asię ze sobą komunikować) i śledzenie (obiekty przechowywania sesji);

    • Śledzenie sesji
    • ID sesji przechowywane po obu stronach (klient - serwer)
    • ID sesji po stronie serwera przechowywane są w pamięci, pliku, lub bazie danych - wyboru dokonuje administrator serwera;
    • 3 rodzaje utrzymania sesji: cookies, przepisywanie url , ukryte formsy
    • Wyboru konfiguracji sesji dokonuje administrator serwera
    • W jaki sposób serwer wykonuje wyboru metody?
      • Użyć wszystkiego!
        • Użyj cookies
        • Jeśli odpowie cookies i url to serwer wie że mają być cookies
        • Jeśli tylko url to musi szukać dalej (bo klient nie obsługuje cookies)



    [Schemat komunikacji klient - serwer]
  • Ustawiany zegar sesji przez administratora serwera
  • Ważne jest zamknięcie sesji - można spreparować cookies przy nie zamkniętej sesji


    [pare slajdów ominięto]


    Wnioski
  • Współdzielony dostęp do danych
  • Skalowalność aplikacji - sesja w pamięci -> nie da się - po dodaniu serwerów nowe nie będą miały dostępu do pamięci (trzeba zastosować pliki lub bazę)


    Przechowywanie stanu sesji
  • InProc
  • Out-of_proc
    • Serwer stanu (coś jak aplikacyjny)
    • Dane sesji w bazie danych (InstallSqlState.sql, InstallPersistantSqlState.sql)
    • Rozwiązanie najwolniejsze ale najmniej zawodne



    [dużo slajdów pominiętych][…]


    WZORCE PROJEKTOWE


    Wzorzec MVC
  • Model ustawia wartości obiektu
  • Kotroler wybiera widok


    JSP
  • W widoku osadzane są obiekty
    • Klasa kontrolera - serwlet
    • Klasa widoku JSP
    • Klasa modelu - bean (bean ma obecnie prawo przetwarzania danych do obiektów - może być użyte przez serwlet i widok - kiedyś model to tylko baza danych)


    PHP
  • Wadą bałaganiarstwo (brak uporządkowania standardów)
  • Nowe frameworki wymuszają wzorzec mvc
  • [Mało opisu php]


    ASP
  • Stary asp wykorzystywał viewState (który java ukradła do JSF), który zamulał i zdecydowano wyciąć to
  • Powstał ASP.NET MVC - który nawiązuje do rowiązań Javy (pierwotnej) i PHP;


    […]pominięt slajdy - mówi że za dużo chciał powoedzieć - nie wyrobi się


    Aplikacje webowe


    Konfiguracja web.config


    Konfiguracja global.asax


    Co to jest serwer aplikacji ?
    • Obsługa komunikatów
    • Komunikacja z bazą danych
    • Obsługa poczty
    • Obsługa dostępu do katalogów
    • Utrzymywanie puli połączeń






      Ostatnia modyfikacja: 2012-02-11; 12:10


    PRZETWARZANIE W CHMURACH


    Przetwarzanie w chmurach
  • Modele chmury


    • Kolokacja (historycznie)
      Hoteling, kolokacja – usługa (zwykle informatyczna) polegająca na ulokowaniu sprzętu klienta w siedzibie (serwerowni) dostawcy, który zobowiązuje się do utrzymania tego sprzętu.
      Usługa świadczona przez ISP polegająca na udostępnieniu zasobów serwerowni. W ramach usługi klient może otrzymywać miejsce w szafie serwerowej, dostęp do sieci, zasilanie i wsparcie administratorów, samemu dostarczając serwer(y), czym różni się ta usługa od hostingu.
    • IaaS - zapewnienie infrastuktury
    • PaaS - zapewnienie platformy
    • SaaS - jak google docs, lub sklep inter netowy (zapewnienie aplikacji)

       
  • Dostępne platformy:
    • NET - MS Azure
    • Java - Google Apps Engine, Amazon…
    • PHP - MS Azure


    Windows AZURE


    Zasadność stosowania
  • Chwilowe zapotrzebowanie na większą moc obliczeniową (np.. Sklep internetowy w okresie świątecznym)




    [Cennik]
  • Koszty- najmniej ok. 280 zł, optymalnie 1000 zł/ miesiąc (windows Azure)
    • Z Home.pl ok. 850 zł;
  • Możliwość rozliczenia godzinowego (windows azure i amazon);


    \Windows Azure składa się z trzech elementów:
  • aplikacje(wgrywanie),
  • baza danych(storage - pamięci folderowe/plikowe,
    • struktura płaska,
    • Baza danych
    • Struktura kolejek
  • Moduł diagnostyczny
    • Azure Fabric

       

Brak komentarzy:

Prześlij komentarz