Title: Biznes elektroniczny
1Biznes elektroniczny
W. Bartkiewicz
Wyklad 2. Przeglad metod prezentacji tresci i
architektur aplikacji e-biznesowych w sieci
Internet
2WWW 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.
3WWW Architektura
Zamówienia HTTP
Dokumenty
4Mosaic
1993 pierwsza przegladarka graficznych stron
internetowych Mosaic
Zródlo www.en.wikipedia.com
5Internet Explorer
6Mozilla Firefox
7WWW 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.
8WWW 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
9WWW 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).
10WWW Hipertekst
11WWW 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.).
12WWW 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
13WWW 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
14WWW 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
15WWW 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).
16WWW 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).
17WWW 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
18WWW 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 ""
19WWW 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.
20WWW 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
21WWW 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.
22WWW 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
23WWW 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
24Aplikacje 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
25Cienki 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.
26Przykladowy 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
27Cienki 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.
28Cienki 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.
29Klient 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.
30Klient 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
31Klient 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.
32Aplikacje 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.
33Aplikacje 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.
34Aplikacje 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.
35Program 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")
36Program 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")
37Aplikacje 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.
38Skrypty 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.
39Skrypty 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.
40Skrypt 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
41Obiekty 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.
42Page-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.
43AJAX
- 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.
44Serwisy 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
45Serwisy 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
46Rozproszone architektury Enterprise
- Najbardziej znane srodowiska typu Enterprise
- CORBA
- Enterprise Java Beans
- COM/DNA
- .NET
- Web Sphere
47Aplikacje 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.