Biznes elektroniczny - PowerPoint PPT Presentation

1 / 47
About This Presentation
Title:

Biznes elektroniczny

Description:

Wynik jej dzia ania w formacie SOAP przesy any jest do klienta Rozproszone architektury Enterprise ... typu Enterprise: CORBA Enterprise Java Beans COM+ ... – PowerPoint PPT presentation

Number of Views:71
Avg rating:3.0/5.0
Slides: 48
Provided by: Witol8
Category:

less

Transcript and Presenter's Notes

Title: Biznes elektroniczny


1
Biznes elektroniczny
W. Bartkiewicz
Wyklad 2. Przeglad metod prezentacji tresci i
architektur aplikacji e-biznesowych w sieci
Internet
2
WWW Podstawowy model
  • WWW jest olbrzymim systemem klient-serwer,
    obejmujacym miliony serwerów rozproszonych po
    calym swiecie.
  • Kazdy serwer utrzymuje zbiór dokumentów,
    zapamietanych zazwyczaj w postaci plików.
    Dokumenty moga byc równiez generowane na zadanie.
  • Serwer przyjmuje zlecenia pobrania dokumentu i
    przesyla go do klienta. Ponadto moze on
    przyjmowac zlecenia przechowania nowych
    dokumentów.
  • Klient wspólpracuje z serwerami w sieci za
    posrednictwem specjalnej aplikacji nazywanej
    przegladarka (browser).
  • Przegladarka zamawia dokumenty z wykorzystaniem
    zamówien specyficznego protokolu HTTP, odbiera
    dokumenty i odpowiada za ich wlasciwe
    wyswietlenie.

3
WWW Architektura
Zamówienia HTTP
Dokumenty
4
Mosaic
1993 pierwsza przegladarka graficznych stron
internetowych Mosaic
Zródlo www.en.wikipedia.com
5
Internet Explorer
6
Mozilla Firefox
7
WWW Lokalizatory URL
  • Podstawowym sposobem wskazania w przegladarce
    dokumentów, które zostana nastepnie pobrane i
    wyswietlone, sa tzw. URL jednolite lokalizatory
    zasobów (Uniform Resource Locator).
  • Moga one okreslac
  • Nazwe schematu sposobu dotarcia do zasobu (np.
    http, ftp, file, telnet).
  • Serwer na którym zlokalizowany jest zasób
    (zazwyczaj nazwa DNS, ale moze byc równiez adres
    IP).
  • Numer portu na którym serwer nasluchuje zamówien.
    Jesli nie zostanie podany uzywa sie portu
    domyslnego.
  • Nazwa dokumentu, wraz ze sciezka w drzewie
    katalogów zarzadzanym przez serwer WWW.

8
WWW Lokalizatory URL
Schemat Nazwa serwera Nazwa sciezki
http // www.cs.pl /witek/distr
Schemat Nazwa serwera Port Nazwa sciezki
http // www.cs.pl 80 /witek/distr
Schemat Nazwa serwera Port Nazwa sciezki
http // 144.22.30.01 80 /witek/distr
9
WWW Hipertekst
  • Zasadnicze znaczenie w WWW ma fakt, ze wszystkie
    informacje sa reprezentowane za posrednictwem
    dokumentów.
  • Wiekszosc dokumentów nie ma prostej struktury
    liniowej, ale moze zawierac odniesienia laczace
    rózne czesci tego samego dokumentu, badz laczace
    rózne dokumenty. Odniesienia takie nazywane sa
    laczami badz hiperlaczami (links, hyperlinks).
  • Podczas wyswietlania dokumentu w przegladarce
    uzytkownik moze wybierac lacza, klikajac na jego
    wizerunku (opisie). Wybór lacza powoduje
    przejscie do innej czesci przegladanego
    dokumentu, albo wyslaniem do serwera zamówienia
    pobrania innego dokumentu.
  • Strukture tego typu okresla sie hipertekstem
    (hypertext), lub jesli powiazane dokumenty nie
    maja charakteru tekstowego hipermediami
    (hypermedia).

10
WWW Hipertekst
11
WWW HTML
  • Wiekszosc dokumentów w sieci WWW wyrazona jest w
    specjalnym jezyku redagowania hipertekstu
    (HyperText Markup Language), zwanym HTML.
  • Oprócz mozliwosci tworzenia laczy, jezyk HTML
    zawiera slowa kluczowe, umozliwiajace podzielenie
    dokumentu na rózne sekcje.
  • Kazdy dokument HTML podzielony jest na czesc
    naglówkowa i zasadnicza.
  • W jezyku HTML sa tez wyróznione naglówki,
    akapity, listy, tabele, formularze.
  • Jest tez mozliwe wstawianie w odpowiednie miejsca
    obrazów lub animacji.
  • Oprócz tych elementów strukturalnych, jezyk HTML
    zawiera liczne slowa kluczowe, które instruuja
    przegladarke co do sposobu prezentowania
    dokumentu (kroje i rozmiar pisma, przedstawiwanie
    tekstu kursywa, pogrubionego, wyrównywanie
    (justowanie) czesci tekstu, itp.).

12
WWW Przykladowa strona HTML
ltHTMLgt ltHEADgt ltTITLEgtMoja stronalt/TITLEgt lt/HEADgt lt
BODYgt ltH1gt Jakis naglóweklt/H1gt ltPgtTutaj
umieszczamy jakies teksty, które chcemy umiescic
na stronie webowejltBRgt pamietajmy o
podziale na linie i bialych
spacjach nbspnbspnbsp teraz dalszy
tekst lt/Pgt lt/BODYgt lt/HTMLgt
13
WWW Lacza hipertekstowe
ltHTMLgt ltHEADgt ltTITLEgtInformacje o
dyzurachlt/TITLEgt lt/HEADgt ltBODYgt ltH1gtltA
HREF"pubs.html"gtOstatnie publikacjelt/Agtlt/H1gt ltULgt
ltLIgtltA HREF"mfc.htm"gtProgramowanie
(MFC)lt/Agt ltLIgtltA HREF"www_prog.htm"gtProgramowanie
WWWlt/Agt ltLIgtltA HREF"cpp.htm"gtProgramowanie
obiektowe (C)lt/Agt lt/ULgt ltBRgtltBRgt ltPgtMój e-mail
lta href"mailtowbartkiewicz_at_wzmail.uni.lodz.pl"gt
wbartkiewicz_at_wzmail.uni.lodz.pl lt/agtlt/Pgt ltA
href"http//wz.uni.lodz.pl"gt ltIMG height28
src"02do_gory_off.gif" width85 border0
gt lt/Agt lt/BODYgt lt/HTMLgt
14
WWW HTML i JavaScript
  • HTML zawiera liczne srodki tworzenia bardziej
    wyrafinowanych dokumentów sieciowych, tzw. stron
    WWW. Jedna z najmocniejszych jest mozliwosc
    wyrazania czesci dokumentu w postaci skryptów
    napisanych zazwyczaj w opartym na Javie jezyku
    JavaScript (tzw. skryptów strony klienta
    client-side scripts).

ltHTMLgt ltHEADgt ltTITLEgtProsty skrypt
Javylt/TITLEgt lt/HEADgt ltBODYgt ltPgt ltSCRIPT
type"text/javascript"gt document.writeln("ltH1gtHe
llo worldlt/H1gt") lt/SCRIPTgt lt/Pgt lt/BODYgt lt/HTML
gt
15
WWW DOM HTML
  • Dokument podczas rozbioru przez przegladarke
    zostaje wewnetrznie zapamietany w postaci tzw.
    drzewa rozbioru, którego kazdy wezel reprezentuje
    jeden element (definiowany przez znacznik HTML).
  • Elementy odpowiadajace znacznikom HTML
    zdefiniowanym w obrebie innych znaczników,
    stanowia w drzewie wzgledem nich wezly potomne.
    Korzeniem drzewa jest wiec element odpowiadajacy
    znacznikowi ltHTMLgt, o nazwie document.
  • Ze wzgledu na przenosnosc reprezentacje drzewa
    rozbioru ustandaryzowano
  • Kazdy element musi byc jednym z predefiniowanego
    zestawu typów elementów.
  • Kazdy typ elementu ma standardowy interfejs z
    metodami dostepu do jego tresci, wezlów potomnych
    lub rodzicielskich, itp.
  • Z elementem kazdego typu zdefiniowany jest
    równiez standardowy zestaw zdarzen wysylanych
    przez przegladarke w reakcji na dzialania
    uzytkownika.
  • Ta standardowa implementacja nosi nazwe HTML DOM
    modelu obiektu dokumentu (Document Object
    Model).

16
WWW DHTML
  • DOM tworzy standardowy interfejs programowania
    dostepu do zawartosci poddanych rozbiorowi przez
    przegladarke dokumentów WWW.
  • Uzywaja go przede wszystkim skrypty osadzone w
    dokumencie, aby przechodzic drzewo rozbioru,
    dodawac, usuwac lub modyfikowac wezly.
  • Skrypty te moga wiec sluzyc do sprawdzania i
    zmieniania dokumentów, których sa czescia.
    Otwiera to mozliwosc dynamicznej adaptacji
    dokumentów. Dlatego jezyk HTML wzbogacony o
    skrypty JavaScript korzystajace z DOM okresla sie
    czesto jako dynamiczny HTML (DHTML).

17
WWW Przykladowa strona DHTML
ltHTMLgt ltHEADgt ltTITLEgtInformacja o
linkachlt/TITLEgt ltSCRIPTgt . . . lt/SCRIPTgt lt/HEADgt
ltBODYgt ltdiv id"InsertionPoint"gtnbsplt/divgt lta
href"http//www.uni.lodz.pl"gtUniwersystet
Lódzkilt/agtltbrgt lta href"http//wz.uni.lodz.pl"gtWyd
zial Zarzadzanialt/agtltbrgt lta href"http//www.ki.un
i.lodz.pl"gtKatedra Informatykilt/agtltbrgt ltbrgtltbrgt ltf
orm ID"Form1"gt ltINPUT TYPE"button" value"Pokaz
linki" onclick"ShowLinks()" ID"Button1"gt
ltINPUT TYPE"button" value"Ukryj linki"
onclick"HideLinks()" ID"Button2"gt lt/formgt lt/BODY
gt lt/HTMLgt
18
WWW Przykladowy skrypt DHTML
function ShowLinks() var table
document.createElement("lttablegt") table.setAttri
bute("id", "LinkTable", 0) table.setAttribute("b
order", 1, 0) for (i0 iltdocument.links.length
i) table.insertRow() table.rowsi.inse
rtCell() table.rowsi.cells0.innerHTML
document.linksi.innerText table.rowsi.inser
tCell() table.rowsi.cells1.innerHTML
document.linksi.href InsertionPoint.innerHT
ML "" InsertionPoint.appendChild(table)
function HideLinks() InsertionPoint.inn
erHTML ""
19
WWW XML
  • Dokumenty tworzone moga byc równiez w innych
    jezykach poza HTML. Jedna z najwazniejszych
    alternatyw jest XML rozszerzalny jezyk
    redagowania (Extensible Markup Language).
  • W odróznieniu od HTML jezyk XML uzywany jest
    tylko do strukturalizacji dokumentu. Nie zawiera
    on slów kluczowych dotyczacych formatowania
    dokumentu.
  • Rozszerzenia HTML, pozwalajace na laczenie z
    technikami wywodzacymi sie z XML, oraz tzw.
    arkuszami stylów, okreslamy jako XHTML.

20
WWW Przykladowy dokument XML
lt?xml version"1.0"?gt ltcustomer
type"current"gt ltnamegt ltfirstgtJohnlt/firstgt ltm
iddlegtSmithylt/middlegt ltlastgtDoelt/lastgt lt/namegt
ltcontactgt ltaddressgt ltstreetgt123 Some
Str.lt/streetgt ltcitygtAnytownlt/citygt ltstategtNC
lt/stategt ltzipgt11-111lt/zipgt lt/addressgt ltphon
egt lthomegt222 2222lt/homegt ltworkgt333
3333lt/workgt ltmobilegt22222 22222lt/mobilegt lt/ph
onegt lt/contactgt lt/customergt
21
WWW XML
  • XML jest raczej metajezykiem, dostarczajacym
    srodków do definiowania dowolnych struktur dla
    róznych typów dokumentów. XML definiuje tylko
    sposób sposób opisu danych i ogólne zaleznosci
    miedzy elementami dokumentu, tak by dokument byl
    poprawnie uformowany.
  • XML nie ma w zasadzie zadnej listy znaczników,
    których znaczenie byloby predefiniowane (tak jak
    w przypadku HTML). XML to model (logiczny i
    fizyczny) danych, a nie schemat danych. Schemat
    danych, czyli konkretne znaczniki definiuje sie
    dla konkretnej grupy dokumentów XML.
  • Istnieja dwa standardowe sposoby definiowania
    schematu dokumentu XML
  • Definicje Typu Dokumentu DTD (Document Type
    Definition) prosty sposób, czesciowo tylko
    oparty na modelu XML.
  • Schematy XML (XML Schema) w pelni oparte na
    modelu XML, znacznie precyzyjniej definiuja
    wykorzystywane typy danych.

22
WWW Przykladowy dokument DTD
lt?xml version"1.0" encoding"UTF-8" ?gt lt!ELEMENT
customer (name, contact)gt lt!ELEMENT name (first,
middle, last)gt lt!ELEMENT contact (address,
phone)gt lt!ELEMENT address (street, city, state,
zip)gt lt!ELEMENT phone (home, work,
mobile)gt lt!ELEMENT first (PCDATA)gt lt!ELEMENT
middle (PCDATA)gt lt!ELEMENT last
(PCDATA)gt lt!ELEMENT street (PCDATA)gt lt!ELEMENT
city (PCDATA)gt lt!ELEMENT state
(PCDATA)gt lt!ELEMENT zip (PCDATA)gt lt!ELEMENT
home (PCDATA)gt lt!ELEMENT work (PCDATA)gt lt!ELEMEN
T mobile (PCDATA)gt lt!ATTLIST customer type
(current past ) REQUIRED id ID IMPLIED
gt lt!ATTLIST mobile type CDATA IMPLIED gt
23
WWW Przykladowy dokument XML
lt?xml version"1.0"?gt lt!DOCTYPE customer SYSTEM
"customer.dtd"gt ltcustomer type"current"gt ltnamegt
ltfirstgtJohnlt/firstgt ltmiddlegtSmithylt/middlegt
ltlastgtDoelt/lastgt lt/namegt ltcontactgt ltaddressgt
ltstreetgt123 Some Str.lt/streetgt ltcitygtAnytownlt
/citygt ltstategtNClt/stategt ltzipgt11-111lt/zipgt
lt/addressgt ltphonegt lthomegt222
2222lt/homegt ltworkgt333 3333lt/workgt ltmobilegt22
222 22222lt/mobilegt lt/phonegt lt/contactgt lt/custom
ergt
24
Aplikacje e-biznesowe (Architektura trójwarstwowa)
  • Klient strony WWW, zawierajace interfejs
    uzytkownika (tzw. cienki klient) oraz
    (ewentualnie) proste operacje przetwarzania
    (klient wzbogacony).
  • Logika aplikacji umieszczona jest w warstwie
    posredniej miedzy serwerem danych i klientem
    (serwer aplikacji).
  • Dane aplikacji przechowywane sa na serwerze bazy
    danych.

Klienty
Serwer WWW
Serwer DBMS
Inne aplikacje
25
Cienki klient (HTML)
  • Aplikacje klientów, dzialajace w srodowisku HTTP
    moga byc tworzone w formie cienkiego klienta,
    korzystajacego z formularzy HTML, pozwalajacych
    zamiescic elementy interfejsu uzytkownika w
    dokumencie strony WWW.
  • Elementami formularza HTML, pozwalajacymi na
    implementacje dialogu z uzytkownikiem sa
    kontrolki HTML. Jezyk HTML zawiera znaczniki
    definiujace typowe kontrolki róznego typu, takie
    jak na przyklad pola edycji, przyciski, przyciski
    zaznaczane, pola kombo, itp.
  • Do opisu (etykietowania) kontrolek wykorzystuje
    sie zwykle teksty. Elementy wygladu formularza
    realizowane sa przez inne znaczniki HTML, np.
    pozycjonowanie kontrolek uzyskuje sie zazwyczaj z
    uzyciem tabel.
  • Pojedynczy dokument WWW moze zawierac kilka
    róznych formularzy, realizujacych rózne funkcje.

26
Przykladowy dokument formularza HTML
ltHTMLgt ltHEADgt ltTITLEgtRejestracja
zamówienlt/TITLEgt lt/HEADgt ltBODYgt ltH1gtDane
klientalt/H1gt ltFORM name"formularz"
action"01struktura.html" methodgetgt Nazwisko
klienta ltINPUT type"text" name"NazwEdit"
size25gtltBRgt Zarejestrowany ltINPUT
type"checkbox" name"RegCb"gt ltBRgt PlecltBRgt ltIN
PUT type"radio" name"PlecRd" value"M"gt
MezczyznaltBRgt ltINPUT type"radio" name"PlecRd"
value"K"gt KobietaltBRgt Miasto ltSELECT
NAME"MiastoSel" size"1" gt ltOPTION
SELECTEDgtLódz ltOPTIONgtWarszawa ltOPTIONgtKraków
lt/SELECTgtltBRgt ltINPUT type"submit"
name"sendBtn" value"Wyslij"gt lt/FORMgt lt/BODYgt lt/H
TMLgt
27
Cienki klient (HTML)
  • Formularze HTML sluza do tworzenia typowego
    cienkiego klienta. Ich zadaniem jest wylacznie
    dialog z uzytkownikiem. Pobrane dane wyslane
    musza byc do aplikacji serwerowej, która wykonuje
    cale przetwarzanie.
  • Dla formularza definiuje sie sposób wykonania
    zamówienia HTTP. Jednym z typów kontrolek HTML
    jest przycisk typu submit, powodujacy wykonanie
    odpowiedniego zamówienia HTTP.
  • Stan kontrolek przesylany jest w postaci lancucha
    tekstowego, zlozonego z szeregu par
    nazwa_kontrolkiwartosc, polaczonych znakami ,
    np.
  • NazwEditNowakRegCbonPlecRdMMiastoSelWarsza
    wa sendBtnWy9Clij.
  • Niektóre znaki tego tekstu musza zostac
    zakodowane tak by odpowiadaly one zbiorowi znaków
    w nazewnictwie URL (np. spacja kodowana jest w
    formie znaku , znaki specjalne takie jak
    przecinek, polskie litery, itp. w formie kod
    szesnastkowy).
  • W naszym przykladzie 9C to kod polskiej litery
    s w zestawie znaków ANSI strony kodowej 1252
    Windows.

28
Cienki klient (HTML)
ltFORM name"formularz" action"01struktura.html"
methodgetgt . . . ltINPUT type"submit"
name"sendBtn" value"Wyslij"gt lt/FORMgt
  • Aplikacje serwerowe traktowane sa przez serwer
    HTTP jako dokumenty. Nazwe dokumentu
    przechowujacego aplikacje, której zadaniem jest
    przetworzenie danych formularza, okreslamy w
    atrybucie action formularza.
  • Zamówienie przy pomocy którego dane formularza
    przeslane zostana do aplikacji serwerowe,
    okreslamy w atrybucie method formularza. Mozemy
    przy tym wykorzystac
  • Metode get. Nazwa aplikacji serwerowej sluzy jako
    nazwa zamawianego dokumentu w komunikacie HTTP
    get. Lancuch tekstowy wartosci kontrolek dodawany
    jest do tej nazwy jako parametr dokumentu.
  • Metode post. Lancuch tekstowy wartosci kontrolek
    przesylany jest w zamówieniu post jako dane
    dodawane do dokumentu aplikacji serwerowej.

29
Klient wzbogacony (DHTML)
  • Aplikacje klientów moga równiez realizowac model
    klienta wzbogaconego, wykonujac pewne
    przetwarzanie po swojej stronie. Nie moga one
    jednak wtedy korzystac wylacznie z formularzy
    HTML.
  • Typowym rozwiazaniem w takiej sytuacji jest
    wykorzystanie do stworzenia aplikacji klienta
    dynamicznego HTML (DHTML).
  • Klienty DHTML najczesciej budowane sa w oparciu o
    formularze HTML, wzbogacone o zastosowanie
    skryptów JavaScript odwolujacych sie do drzewa
    DOM dokumentu w reakcji na rózne zdarzenia
    zwiazane z kontrolkami.
  • Skrypty JavaSript wykorzystywane sa do realizacji
    bardziej skomplikowanych operacji dialogowych, a
    przede wszystkim do sprawdzania poprawnosci
    danych przed wyslaniem ich na serwer.
  • Klient wzbogacony pozwala usprawnic i
    przyspieszyc obsluge aplikacji. Dzieki uzyciu
    skryptów, uzytkownik nie musi za kazdym razem
    czekac na reakcje serwera.

30
Klient wzbogacony (DHTML)
ltHTMLgt ltHEADgt ltSCRIPT type"text/javascript" gt
function valSendBtnClick() if (
document.formularz.NazwEdit.value"" )
alert("Pole nazwisko musi byc
wypelnione") return
document.formularz.submit()
lt/SCRIPTgt lt/HEADgt ltBODYgt ltFORM name"formularz"
action"01struktura.html" method"get"gt Nazwisko
klienta ltINPUT type"text" name"NazwEdit"
size"25"gtltBRgt . . . ltINPUT type"button"
name"valSendBtn" value"Wyslij sprawdzone"
onclick"valSendBtnClick()"gt lt/FORMgt lt/BODYgt lt/H
TMLgt
31
Klient wzbogacony (DHTML)
  • Klient dzialajacy w srodowisku przegladarki WWW
    moze równiez wykorzystywac proste aplikacje
    sciagane z serwera WWW razem z dokumentem i
    wykonywane w przestrzeni adresowej procesu
    przegladarki.
  • Typowe przyklady takich aplikacji, to kontrolki
    Active-X, a przede wszystkim aplety skompilowane
    do kodu posredniego jezyka Java.

32
Aplikacje serwerowe
  • Aplikacje serwerowe w dzialajace srodowisku
    serwera HTTP tworzone moga byc jako rozszerzenia
    serwera lub aplikacje CGI.
  • Rozszerzenia serwera to biblioteki lub
    komponenty, których kod proces serwera HTTP
    laduje do swojej przestrzeni adresowej i wykonuje
    na zadanie klienta.
  • Rozszerzenia serwera wspóldzialaja z serwerem
    HTTP poprzez API udostepniane przez konkretne
    serwery. Aplikacje serwerowe zbudowane w tej
    postaci sa wiec silnie zwiazane z konkretnym
    serwerem HTTP.
  • Serwer HTTP nie musi tworzyc nowego procesu, przy
    kazdym odwolaniu do aplikacji dzialajacej w
    formie jego rozszerzenia. Tak wiec w tym trybie
    realizuje sie zazwyczaj narzedziowe aplikacje, do
    których odwoluje sie wiekszosc klientów, takie
    jak np. interpretery skryptów serwerowych.

33
Aplikacje CGI
  • Wspólnym interfejsem bramy (Common Gateway
    Interface CGI) nazywamy standard wedlug którego
    serwer HTTP moze wykonac zewnetrzny program,
    pobierajacy dane uzytkownika.
  • Dane uzytkownika pochodza na ogól z formularza
    (HTML lub DHTML), dla którego okresla sie
    program, który ma zostac uruchomiony dla
    przetworzenia danych
  • ltFORM name"..." action"nazwa_programu.exe"
    method"..."gt
  • Serwer gdy otrzyma zamówienie post lub get
    dotyczace dokumentu w formie pliku wykonalnego,
    rozpocznie program o podanej nazwie i przekaze mu
    dane towarzyszace temu zamówieniu.

34
Aplikacje CGI
  • CGI definiuje sposób przekazywania danych
    formularza do uruchamianego programu, zarówno dla
    przesylu operacja get, jak i post. Dane
    przesylane sa w formie omówionej wyzej lancucha
    tekstowego wartosci kontrolek formularza
  • na standardowe wejscie programu (dla metody
    post),
  • poprzez zmienna srodowiskowa "QUERY_STRING" (dla
    metody get),
  • dlugosc lancucha tekstowego w przypadku obu metod
    przekazywana jest w zmiennej srodowiskowej
    "CONTENT_LENGTH",
  • program CGI musi samodzielnie dekodowac odebrany
    tekst i wyodrebnic z niego wartosci zmiennych
    wyslanych przez kontrolki poszczególne
    formularza.
  • Program wykonuje swoje dzialania, zwracajac
    wyniki serwerowi HTTP w formie dokumentu HTML,
    generowanego na standardowe wyjscie programu.
  • Serwer HTTP wysyla dokument HTML, wygenerowany w
    locie przez program CGI, przegladarce, która
    wyswietla zawarte w nim wyniki.

35
Program CGI w jezyku C (get)
void main(void) char Content_Length
getenv("CONTENT_LENGTH") char inpBuf
getenv("QUERY_STRING")
printf("Content-type text/html\n")
printf("\n") printf("ltHTMLgt\n")
printf("ltHEADgtltTITLEgtKomunikacja
CGIlt/TITLEgtlt/HEADgt\n") printf("ltBODYgt\n")
printf("ltH1gtOdpowiedz od serweralt/H1gt\n")
printf("ltHRgt\n") printf("ltPgtLiczba
przeslanych bajtów slt/Pgt\n", Content_Length)
printf("ltPgtPrzeslany komunikat slt/Pgt\n",
inpBuf) printf("lt/BODYgt\n")
printf("lt/HTMLgt\n")
36
Program CGI w jezyku C (post)
void main(void) char Content_Length
getenv("CONTENT_LENGTH") int i, num
atoi(Content_Length) char inpBuf10000
for ( i0 iltnum i ) inpBufi getchar()
inpBufi '\0' printf("Content-type
text/html\n") printf("\n")
printf("ltHTMLgt\n") printf("ltHEADgtltTITLEgtKomun
ikacja CGIlt/TITLEgtlt/HEADgt\n")
printf("ltBODYgt\n") printf("ltH1gtOdpowiedz od
serweralt/H1gt\n") printf("ltHRgt\n")
printf("ltPgtLiczba przeslanych bajtów slt/Pgt\n",
Content_Length) printf("ltPgtPrzeslany
komunikat slt/Pgt\n", inpBuf)
printf("lt/BODYgt\n") printf("lt/HTMLgt\n")
37
Aplikacje CGI
  • Programy CGI stanowia wygodny sposób
    oprogramowania strony serwerowej aplikacji
    dzialajacej w srodowisku HTTP.
  • Programy CGI sa luzno powiazane z konkretnym
    serwerem HTTP, moga byc wiec wspólpracowac z
    róznymi serwerami. Interfejs komunikacyjny CGI ma
    charakter standardowy. Warunkiem jest wiec w
    zasadzie, aby plik wykonalny mógl zostac
    uruchomiony przez system operacyjny maszyny
    serwera.
  • Korzystanie z CGI niesie jednak ze soba pewne
    niedogodnosci
  • Programy CGI uruchamiane przez serwer HTTP jako
    nowe procesy, co moze niesc ze soba pewne
    problemy efektywnosciowe - uruchamianie i
    konczenie procesów wymaga zarzadzania wieloma
    zasobami systemowymi maszyny serwera.
  • Problemy z bezpieczenstwem aby serwer mógl
    uruchomic skrypt CGI, uzytkownik zdalny musi miec
    uprawnienia do wykonywania programów w folderze
    skryptu.
  • Programy CGI sa slabo zintegrowane ze
    srodowiskiem HTML. Pobieranie danych i
    generowanie dokumentów moze wiec byc dosyc zmudne.

38
Skrypty serwerowe
  • Strona serwerowa aplikacji HTML moze zostac
    zbudowana z wykorzystaniem skryptów serwerowych
    (server-side scripts).
  • HTML zawiera równiez polecenia (znaczniki),
    pozwalajace w dokumentach osadzic skrypty, które
    nie zostana przeslane do klienta i wykonane przez
    przegladarke, ale zostana bezposrednio wykonane
    przez serwer HTTP.
  • Jesli w dokumencie HTML, którego dotyczy
    zamówienie klienta, znajduje sie skrypt
    serwerowy, serwer przed wyslaniem takiego
    dokumentu uruchomi interpreter jezyka w jakim
    zostal napisany skrypt, który wykona program.
  • Kod skryptu serwerowego w wysylanym dokumencie
    zastapiony zostanie przez wynik dzialania
    skryptu. Kod ten nie jest wiec wysylany do
    klienta.

39
Skrypty serwerowe
  • Interpretery skryptów serwerowych moga byc
    dolaczane do serwera HTTP jako rozszerzenia, albo
    dzialac jako aplikacje CGI. Typowe, najczesciej
    stosowane jezyki skryptowe to PHP, JSP, ASP,
    ASP.NET.
  • W tym pierwszym przypadku interpreter moze
    optymalizowac zarzadzanie zasobami systemowych,
    wykonujac poszczególne programy jako watki w
    przestrzeni adresowej serwera.
  • Skrypty sa programami interpretowanymi. Przy
    pierwszym wywolaniu zazwyczaj kompilowane sa one
    do jakiejs formy kodu posredniego,
    przyspieszajacej ich interpretacje przy kolejnych
    wykonaniach.
  • Uzytkownik uruchamiajacy skrypt nie musi miec
    nadanych uprawnien do wykonywania programów w
    niektórych serwerach HTTP do uruchamiania
    skryptów.

40
Skrypt serwerowy w jezyku PHP
ltHTMLgt ltBODYgt ltH1gtCzesci samochodowe
Witkalt/H1gt ltH2gtZlozone zamówienielt/H2gt lt?PHP
OponyIl HTTP_GET_VARS"OponyIl" OlejIl
HTTP_GET_VARS"OlejIl" SwieceIl
HTTP_GET_VARS"SwieceIl" echo "ltBRgtLista
zamówionych towarówltBRgt\n" if ( OponyIl )
echo "Opony ".OponyIl."
".OponyIl100." PLNltBRgt\n" if ( OlejIl )
echo "Olej ".OlejIl."
".OlejIl10." PLNltBRgt\n" if ( SwieceIl )
echo "Swiece ".SwieceIl."
".SwieceIl4." PLNltBRgt\n" TotalAmount
OponyIl100 OlejIl10 SwieceIl4
TotalAmount number_format(TotalAmount, 2)
echo "ltBRgtLaczna kwota".TotalAmount."
PLNltBRgt\n" ?gt lt/BODYgt lt/HTMLgt
41
Obiekty serwerowe
  • Czesc serwerowa aplikacji moze byc realizowana
    równiez z wykorzystaniem obiektów serwerowych,
    takich jak serwlety Javy, czy komponenty ASP.NET.
  • Sa to wstepnie skompilowane do kodu posredniego
    komponenty programowe, wykonywane w srodowisku
    skryptowym w przestrzeni adresowej serwera HTTP.
  • Metody obiektu serwerowego laczone sa (zazwyczaj
    przez skrypty strony klienta) ze zdarzeniami
    kontrolek formularza HTML i wywolywane przez
    srodowisko serwerowe w reakcji na wystapienie
    tych zdarzen.

42
Page-By-Page
  • W standardowym podejsciu do dzialania aplikacji
    WWW czesc serwerowa w reakcji na dzialania
    uzytkownika generuje dokument (zazwyczaj strone
    HTML) z odpowiedzia, która przesylana jest do
    klienta i wyswietlana w przegladarce jako nowy
    dokument.
  • Podejscie takie okreslane jest strona-za-strona
    (Page-By-Page).
  • Rozwiazania typu strona-za-strona posiadaja
    jednak szereg wad, stanowiacych istotna bariere
    rozwojowa dla aplikacji WWW
  • W celu reakcji na dzialania uzytkownika niezbedne
    jest przeslanie przez serwer calej strony WWW,
    nawet w sytuacji gdy modyfikowany jest jedynie
    pewien element interfejsu uzytkownika.
  • Powoduje to niska efektywnosc komunikacji w
    aplikacji rozproszonej.
  • W sytuacji gdy strony sa powaznie obciazone
    elementami graficznymi, skryptami strony klienta
    jakie trzeba przeslac razem ze strona, itp., czas
    przeladowania strony i reakcji systemu moze byc
    dlugi.
  • Przegladarki daja mozliwosc przejscia (nawigacji)
    do strony poprzedniej, nastepnej, itd.. W
    niektórych sytuacjach, przy bardziej zlozonym
    dialogu z uzytkownikiem moze to powodowac
    problemy w zarzadzaniu dialogiem.

43
AJAX
  • Nowa koncepcja w projektowaniu aplikacji
    rozproszonych, dzialajacych w srodowisku HTTP
    jest tzw. AJAX (Asynchronous Javascript And XML).
  • Nowoczesne przegladarki posiadaja wbudowane
    obiekty, pozwalajace skryptom strony klienta
    wykonywac asynchroniczne zamówienia HTTP.
  • Odpowiedzi na takie zamówienie przesylane sa
    przez serwer nie calej przegladarce, ale danemu
    skryptowi. Przyjecie odpowiedzi nie wymaga wiec
    wyswietlenia przez przegladarke nowej strony
    caly czas pozostajemy w obrebie starej.
  • Serwer w reakcji na zamówienie moze odeslac dane
    w formacie XML lub kawalek kodu HTML.
  • Skrypt klienta odbiera transmisje od serwera i
    przy jej uzyciu (i ewentualnym wykonaniu operacji
    formatujacych) modyfikuje DOM biezacej strony
    (np. zmienia stan kontrolek, fragmenty HTML,
    itp.) odpowiednio do dzialan uzytkownika.

44
Serwisy webowe
  • Standardowe aplikacje webowe komunikuja sie z
    klientem poprzez komunikaty HTML (np. generuja i
    przesylaja do klienta strony HTML)
  • Komunikaty HTML moga byc odbierane równiez przez
    klienty aplikacyjne wymaga to jednak analizy
    przeslanej strony i wydlubania danych
  • Web serwisy rodzaj komponentów serwerowych
    komunikujacych sie z klientem aplikacyjnym
    poprzez komunikaty SOAP

45
Serwisy webowe
  • SOAP (Simple Object Access Protocol) oparty na
    XML-u sposób kodowania wywolan zdalnych
    podprogramów
  • SOAP umozliwia realizacje RPC (Remote Procedure
    Call)
  • klient wywoluje funkcje
  • jej nazwa parametry wywolania kodowane sa w
    formacie SOAP i przesylane do serwera HTTP
  • serwer uruchamia komponent (web serwis), który
    wykonuje zakodowana funkcje. Wynik jej dzialania
    w formacie SOAP przesylany jest do klienta

46
Rozproszone architektury Enterprise
  • Najbardziej znane srodowiska typu Enterprise
  • CORBA
  • Enterprise Java Beans
  • COM/DNA
  • .NET
  • Web Sphere

47
Aplikacje peer to peer
  • W niektórych przypadkach komputery pracujace w
    sieci Internet nie korzystaja ze srodowiska WWW.
  • Komputery korzystaja z polaczen niskiego poziomu
    w sieci Internet, poprzez tzw. interfejs gniazd.
  • Komputery pelnia zarówno funkcje klientów, ale
    równiez serwerów (wysylaja, ale takze obsluguja
    zamówienia innych uzytkowników).
  • Poniewaz komputery polaczone sa ze soba
    niezaleznie i nie korzystaja ze wspólnych
    serwerów, architekture taka okreslamy jako peer
    to peer.
  • Architektura ta popularna jest przede wszystkim w
    sieciach wymiany danych i dokumentów miedzy
    uzytkownikami (czesto o charakterze pirackim) i
    rzadko sluzy do zastosowan w biznesie
    elektronicznym.
Write a Comment
User Comments (0)
About PowerShow.com