Oracle Database Tworzenie aplikacji internetowych w AJAX i PHP(1)


Oracle Database. Tworzenie
aplikacji internetowych
w AJAX i PHP
Autorzy: Lee Barney, Michael McLaughlin
Tłumaczenie: Andrzej Stefański
ISBN: 978-83-246-1977-1
Tytuł oryginału: Oracle Database Ajax
& PHP Web Application Development
Format: 168×237, stron: 408
Wykorzystaj możliwoSci najlepszych technologii!
" Jak wykorzystać obiekt XMLHttpRequest?
" Jak manipulować modelem DOM?
" Jakie możliwoSci kryje w sobie język PL/SQL?
Duet PHP i MySQL cieszy się niesłabnącą popularnoScią. Jednak na rynku rozwiązań
bazodanowych istnieje także wiele innych produktów. WSród nich znajdziesz również
bazę danych firmy Oracle. Przez znaczną częSć profesjonalistów uważana jest ona za
najlepszÄ…, najbezpieczniejszÄ… i najwydajniejszÄ… platformÄ™ do tworzenia zaawansowanych
rozwiązań. Dzięki tej książce dowiesz się, jak wykorzystać bazę Oracle w połączeniu
z PHP oraz dynamicznymi możliwoSciami technologii AJAX.
W pierwszej kolejnoSci zapoznasz się z możliwoSciami skalowania rozwiązań
korzystających z JavaScriptu i PHP. Następnie nauczysz się wykorzystywać obiekt
XMLHttpRequest, a stąd już tylko krok do opanowania technologii AJAX. Ponadto dowiesz
się, jak manipulować elementami w modelu DOM oraz pracować zdalnie z obiektami
PHP. Autorzy książki w wyczerpujący, a równoczeSnie przejrzysty i przyjazny sposób
wprowadzą Cię w tajniki administrowania bazami Oracle oraz posługiwania się składnią
języków SQL i PL/SQL, wykorzystywanych w tej bazie. Książka ta w umiejętny sposób
łączy wiedzę na temat projektowania przyjaznego i dynamicznego interfejsu użytkownika
oraz zastosowania najlepszych rozwiązań w dziedzinie baz danych.
" SkalowalnoSć JavaScriptu i PHP
" ObiektowoSć w tych językach
" MożliwoSci i sposoby wykorzystania obiektu XMLHttpRequest
" Manipulowanie modelem DOM za pomocÄ… JavaScriptu
" Zdalne wywołania w PHP i HTTP-RPC
" Obsługa przycisku  Cofnij w AJAX-ie
" Zalecenia przy tworzeniu skalowalnych i elastycznych aplikacji
" Udostępnianie VOIP oraz IM
" Wykaz znaczników HTML
" Podstawy języka PHP
" Administrowanie bazami danych Oracle
" Składnia i wykorzystanie języka SQL oraz PL/SQL
Projektuj skalowalne i elastyczne aplikacje!
Spis tre ci 5
Spis tre ci
O autorach .................................................................................................9
O redaktorze technicznym ........................................................................11
Wprowadzenie ..........................................................................................13
Cz I Tworzenie podstaw ............................................................... 17
Rozdzia 1. Skalowalno JavaScript i PHP .................................................................19
Skalowalno ...............................................................................................................................20
Redukcja obci enia procesora i pami ci ....................................................................................21
Skalowanie struktur kontrolnych .................................................................................................22
Skalowanie przetwarzania ci gów znaków ..................................................................................26
Skalowanie prostych operacji matematycznych ..........................................................................28
Wp yw obiektów i ich metod na skalowanie ...............................................................................33
Wp yw wielokrotnych da wydruku na skalowanie .................................................................35
Redukcja obci enia sieci ............................................................................................................36
Wykorzystanie AJAX do zmniejszenia obci enia sieci .......................................................36
Wykorzystanie kompresji do zmniejszenia obci enia .........................................................38
Podsumowanie .............................................................................................................................40
Rozdzia 2. Modularno PHP i JavaScript ..................................................................41
Modularno ................................................................................................................................41
Projektowanie w rzeczywistym wiecie ......................................................................................42
G ówny modu i kontrolery .........................................................................................................49
Kontroler aplikacji i odwzorowania ............................................................................................50
Modularno JavaScript z kontrolerami i odwzorowaniami ........................................................52
Podsumowanie .............................................................................................................................54
Rozdzia 3. Obiekty JavaScript i PHP ..........................................................................55
Definiowanie i tworzenie klas .....................................................................................................55
Dziedziczenie ..............................................................................................................................59
Konstruktory ................................................................................................................................61
Publiczne, chronione i prywatne ..................................................................................................63
Atrybuty i metody w JavaScript ..................................................................................................66
Obiekty modelu, kontrolera i obiekty kontrolne w PHP ..............................................................69
Obiekty modelu, kontrolera i obiekty kontrolne w JavaScript .....................................................74
Podsumowanie .............................................................................................................................76
6 Oracle Database. Tworzenie aplikacji internetowych w AJAX i PHP
Cz II Dynamiczna prezentacja: komunikacja
mi dzy interfejsem u ytkownika i serwerem .......................... 77
Rozdzia 4. Obiekt XMLHttpRequest ...........................................................................79
Tworzenie dania i obs uga jego rezultatów ..............................................................................79
Tworzenie modu u Server Access Object ....................................................................................83
Podsumowanie .............................................................................................................................90
Rozdzia 5. AJAX, zaawansowany HTML i komunikacja HTTP .......................................93
Tworzenie rozwijanych tabel HTML ...........................................................................................93
Nag ówki HTTP, b dy i komunikacja z serwerem ...................................................................102
Podsumowanie ...........................................................................................................................108
Rozdzia 6. Modyfikowanie DOM za pomoc JavaScript .............................................109
Obiektowy model dokumentu (DOM) .......................................................................................110
Przeci gnij i upu .....................................................................................................................112
Biblioteka ............................................................................................................................112
Obiekty kontrolne w PHP ....................................................................................................122
Obiekty kontrolne JavaScript ..............................................................................................125
Zapisywanie informacji z mechanizmu przeci gnij i upu w bazie danych .............................130
Podsumowanie ...........................................................................................................................133
Cz III Zaawansowane zagadnienia dynamicznej prezentacji
i komunikacji ..................................................................... 135
Rozdzia 7. Dost p do danych z innych aplikacji ........................................................137
Zdalne wywo ania w PHP i HTTP-RPC ....................................................................................138
Zdalne wywo ania za pomoc klientów i us ug XML-RPC z PEAR .........................................142
Podsumowanie ...........................................................................................................................152
Rozdzia 8. AJAX, tworzenie wykresów i proste przesy anie danych ............................155
Korzystanie z biblioteki SimplePlot ..........................................................................................155
Generowanie danych do wykresu ..............................................................................................159
Pobieranie danych za pomoc AJAX ........................................................................................162
Podsumowanie ...........................................................................................................................165
Rozdzia 9. Przycisk cofania w AJAX .........................................................................167
Dodawanie ledzenia historii .....................................................................................................167
Korzystanie z historii iframe .....................................................................................................175
Sesje po stronie klienta ..............................................................................................................177
Podsumowanie ...........................................................................................................................179
Cz IV Tworzenie bardzo elastycznych, skalowalnych aplikacji ........ 181
Rozdzia 10. Sesje po stronie klienta i po stronie serwera ...........................................183
ledzenie i wykorzystywanie stanu logowania po stronie klienta .............................................183
ledzenie i wykorzystywanie stanu logowania po stronie serwera ............................................192
Definiowanie i przechowywanie preferencji u ytkownika mi dzy sesjami ...............................197
Wykorzystanie preferencji zapisanych przez u ytkownika .......................................................201
JSON .........................................................................................................................................204
Podsumowanie ...........................................................................................................................205
Spis tre ci 7
Rozdzia 11. Tworzenie modyfikowanych przez u ytkowników serwisów typu mashup .... 207
Tworzenie prostej strony typu mashup ......................................................................................208
Wbudowanie mashupa do systemu obs ugi danych medycznych ..............................................211
Jak to dzia a ...............................................................................................................................214
Podsumowanie ...........................................................................................................................218
Rozdzia 12. Wielowymiarowa komunikacja: VOIP, IM oraz predefiniowane raporty ......219
Udost pnianie VOIP i IM ..........................................................................................................220
Rozproszone, ukierunkowane, raportowane ..............................................................................225
Podsumowanie ...........................................................................................................................243
Dodatki .............................................................................. 245
Dodatek A Indeks znaczników HTML ........................................................................247
Dodatek B Wprowadzenie do PHP ............................................................................255
Historia i t o ...............................................................................................................................256
Czym jest PHP? ...................................................................................................................256
Czym jest Zend? ..................................................................................................................257
Tworzenie aplikacji internetowych ............................................................................................257
Co z czym czy i dlaczego? ..............................................................................................257
Co Oracle wnosi do PHP? ...................................................................................................258
Dlaczego PHP 5 jest wa ny? ...............................................................................................259
Jak korzysta z PHP? ..........................................................................................................259
Jak za pomoc PHP i OCI8 korzysta z bazy danych Oracle? ............................................278
Podsumowanie ...........................................................................................................................299
Dodatek C Wprowadzenie do administracji baz danych Oracle .................................301
Architektura baz danych Oracle ................................................................................................302
Uruchamianie i wy czanie bazy danych Oracle .......................................................................307
Operacje w systemie Linux .................................................................................................307
Operacje w systemie Windows ...........................................................................................311
Uruchamianie i wy czanie procesu nas uchuj cego .................................................................314
Korzystanie z programu SQL*Plus ...........................................................................................319
Interfejs wiersza polece .....................................................................................................321
Zmienne cz ce ..................................................................................................................323
Podsumowanie ...........................................................................................................................323
Dodatek D Wprowadzenie do SQL ............................................................................325
Typy danych Oracle SQL ..........................................................................................................326
J zyk definicji danych (DDL) ...................................................................................................329
Zarz dzanie tabelami i ograniczeniami ...............................................................................330
Zarz dzanie widokami ........................................................................................................333
Zarz dzanie procedurami sk adowanymi ............................................................................334
Zarz dzanie sekwencjami ....................................................................................................335
Zarz dzanie w asnymi typami .............................................................................................336
J zyk pobierania danych (DQL) ................................................................................................338
Zapytania .............................................................................................................................338
J zyk modyfikacji danych (DML) .............................................................................................342
Polecenia INSERT ..............................................................................................................342
Polecenia UPDATE .............................................................................................................344
Polecenia DELETE .............................................................................................................345
J zyk sterowania danymi (DCL) ...............................................................................................345
Podsumowanie ...........................................................................................................................346
8 Oracle Database. Tworzenie aplikacji internetowych w AJAX i PHP
Dodatek E Wprowadzenie do PL/SQL ......................................................................347
Struktura bloków PL/SQL .........................................................................................................348
Zmienne, przypisania i operatory ..............................................................................................352
Struktury steruj ce .....................................................................................................................354
Instrukcje warunkowe .........................................................................................................355
P tle .....................................................................................................................................358
Procedury sk adowane, funkcje sk adowane oraz pakiety .........................................................360
Funkcje sk adowane ............................................................................................................361
Procedury ............................................................................................................................364
Pakiety .................................................................................................................................366
Wyzwalacze bazodanowe ..........................................................................................................369
Wyzwalacze DDL ...............................................................................................................370
Wyzwalacze DML ...............................................................................................................370
Wyzwalacze  zamiast ........................................................................................................372
Wyzwalacze systemowe lub bazodanowe ...........................................................................372
Kolekcje ....................................................................................................................................373
Typ danych VARRAY ........................................................................................................374
Typ danych NESTED TABLE ............................................................................................375
Tablica asocjacyjna .............................................................................................................376
Interfejs kolekcji ..................................................................................................................379
Wykorzystanie pakietu DBMS_LOB ........................................................................................379
Konfiguracja i weryfikacja rodowiska dla typów LOB .....................................................379
Zapis i odczyt typu danych CLOB ......................................................................................381
Podsumowanie ...........................................................................................................................386
Skorowidz ..............................................................................................387
Rozdzia 11.
Tworzenie modyfikowanych
przez u ytkowników
serwisów typu mashup
Gdy wydajne komputery sta y si popularniejsze, u ytkownicy zacz li postrzega je jako narz -
dzia do agregacji informacji. Wp yn o to bezpo rednio na rozwój funkcjonalno ci serwisów
web. Takie serwisy pozwalaj u ytkownikom wybiera informacje do przegl dania. Dzisiejsze
przegl darki umo liwiaj te wy wietlanie kana ów RSS w postaci odno ników na stronie lub
zak adek. E-mail ju dawno zosta po czony z przegl dark . Wszystko to, cznie z aplikacjami
AJAX, prowadzi u ytkownika do wniosku, e skoro przegl darka s u y do agregacji danych, to
takie jest te najwa niejsze zastosowanie komputera.
Poniewa u ytkownicy wymagaj coraz wi kszej elastyczno ci aplikacji internetowych, te
musz si dostosowa . Jednym ze sposobów na to jest wykorzystanie serwisów typu mashup
wy wietlaj cych kilka cz ci ró nych stron na jednej stronie. Przyk adow definicj tego, czym
jest mashup, mo na znale w angielskiej Wikipedii pod adresem http://en.wikipedia.org/wiki/
Mashup_ (web_application_hybrid).
Przeczytanie tego rozdzia u pozwoli tworzy strony umo liwiaj ce u ytkownikom po czenie
danych z ró nych zdalnych serwisów internetowych lub aplikacji w jedn , opart na AJAX apli-
kacj internetow . B d oni mogli zdefiniowa , jakie cz ci stron wy wietli i gdzie maj si
one znale na stronie.
W tym rozdziale zostan poruszone zagadnienia takie jak:
wykorzystanie JavaScript do definiowania i wy wietlania wielu fragmentów stron
internetowych na jednej stronie,
wykorzystanie JSON do zapisywania i pobierania danych,
API biblioteki mashup.
Dynamiczne us ugi typu mashup umo liwiaj u ytkownikowi dostosowanie aplikacji przy ma ym
wysi ku zarówno ze strony samego u ytkownika, jak i programisty.
208 Cz IV Tworzenie bardzo elastycznych, skalowalnych aplikacji
Tworzenie prostej strony typu mashup
Piel gniarze opiekuj cy si pacjentami w domu nie maj tak du ej kontroli nad otoczeniem swo-
ich pacjentów jak piel gniarze w szpitalu. Dlatego potrzebuj narz dzia do kontroli temperatu-
ry i jako ci powietrza w okolicy, w której mieszka pacjent. Cho istnieje wiele serwisów, które
mog dostarczy cz ci tych informacji dla dowolnej lokalizacji, niewiele z nich lub wr cz aden
nie dostarcza wszystkich. Aby mie aktualne informacje i dzia a profilaktycznie, piel gniarze
musieliby regularnie odwiedza kilka serwisów w ci gu dnia. Du e ograniczenia czasowe, jakie
ludzie ci maj w pracy, i potencjalne zagro enie zdrowia lub ycia pacjentów w wypadku igno-
rowania tego typu informacji powoduj , e potrzebny jest prosty sposób wybrania preferowa-
nych róde informacji i ich wy wietlania. Serwis typu mashup nadaje si do tego idealnie.
Serwis typu mashup sk ada si z fragmentów innych stron internetowych umieszczonych na
jednej stronie. W swojej najprostszej postaci mashup jest definiowany przez programist lub
in yniera i nie pozwala u ytkownikowi na dodawanie nowych stron. Plik mashupExample.html,
który mo na pobra z ftp://ftp.helion.pl/przyklady/ordatw.zip, pokazano na rysunku 11.1. Stano-
wi on przyk ad takiego prostego serwisu mashup i wy wietla informacje o parametrach powietrza
z obszaru Salt Lake City w ameryka skim stanie Utah.
Rysunek 11.1. Prosta strona typu mashup w przegl darce Firefox
Ramki mashupa sk adaj si z wy wietlanych stron i daj u ytkownikowi mo liwo zmiany
rozmiaru, wybrania cz ci strony ród owej do wy wietlenia, przesuni cia wy wietlanej ramki
i jej usuni cia. Strona mashupExample.html zawiera równie przycisk pozwalaj cy u ytkowni-
Rozdzia 11. Tworzenie modyfikowanych przez u ytkowników serwisów typu mashup 209
kowi na dodanie nowych ramek do mashupa. Wszystkie zmiany na tej stronie maj charakter
tymczasowy, poniewa nie s przesy ane do zapisania na serwerze. Sposób zapisywania tych
informacji w bazie danych Oracle zosta opisany w dalszej cz ci tego rozdzia u.
Poniewa ramki mashupa odwo uj si do ród owych stron przez sie , zawsze wy wietlaj
informacje z aktualnej strony zdalnego serwera. Dlatego gdy strona ród owa si zmienia, zmie-
nia si tak e zawarto ramki wy wietlanej w mashupie. Umo liwia to utrzymanie aktualno ci
danych. Z tego powodu jedyny czynnik do wzi cia pod uwag przy wybieraniu strony ród owej
dla ramki mashupa stanowi stabilno wygl du strony. Poniewa wy wietlany jest tylko wybrany
obszar strony ród owej, je li zmieni si uk ad tej strony w obszarze wybranym do wy wietlania,
w ramce mashupa b dzie znajdowa a si inna tre .
Opisane w tabeli 11.1 API wykorzystywane do tworzenia mashupów zawiera trzy funkcje i zale y
od biblioteki dostarczaj cej mechanizm przeci gnij i upu , opisanej w rozdziale 6. Te trzy funkcje
umo liwiaj programi cie zdefiniowanie ramek mashupa i pobranie opisu stanu ka dej z nich.
Biblioteka mashup znajduj ca si w pliku mashup.js do pobrania z ftp://ftp.helion.pl/przyklady/
ordatw.zip zosta a napisana w taki sposób, by obs ugiwa najnowsze wersje przegl darek Fire-
fox i Safari na OS X oraz Firefox i IE w Windows. Dopracowania wymaga wsparcie przegl -
darki Firefox dla systemu Linux.
Plik mashupExample.html korzysta z dwóch funkcji API opisanych w tabeli 11.1. Sk ada si on
z czterech ramek mashupa  rozmieszczonych w ró nych miejscach i maj cych ró ne roz-
miary  wy wietlaj cych aktualn temperatur i informacje o jako ci powietrza w Salt Lake
City w ameryka skim stanie Utah.
















210 Cz IV Tworzenie bardzo elastycznych, skalowalnych aplikacji
Tabela 11.1. API biblioteki mashup
Funkcja Opis
MashFrame (aURL, parentID, Ta funkcja konstruuje ramk mashupa. Wymaga podania dwóch parametrów,
xLoc, yLoc, width, height,
ale mo e przyjmowa sze dodatkowych parametrów opcjonalnych.
scrollDown, scrollRight)
Wymagane parametry:
aURL URL ród a strony. Nie musi zawiera prefiksu http://. Wszystkie
URL powinny korzysta z protoko u HTTP, a nie FTP czy innego.
parentID Identyfikator elementu HTML, który b dzie zawiera ramk
mashupa. Jest to zazwyczaj element div HTML.
Opcjonalne parametry:
xLoc Poziome przesuni cie lewej kraw dzi ramki mashupa od brzegu
zajmowanego elementu HTML. Domy lna warto to 0 pikseli.
yLoc Pionowe przesuni cie górnej kraw dzi ramki mashupa w stosunku
do górnej kraw dzi zajmowanego elementu HTML. Domy lna warto
to 0 pikseli.
width Szeroko wy wietlanej ramki mashupa w pikselach. Domy lna
warto to 300 pikseli.
height Wysoko wy wietlanej ramki mashupa w pikselach. Domy lna
warto to 294 piksele.
scrollDown Pionowe przesuni cie w dó widocznego obszaru strony
ród owej w pikselach. Domy lna warto to 0 pikseli.
scrollRight Poziome przesuni cie w prawo widocznego obszaru strony
ród owej w pikselach. Domy lna warto to 0 pikseli.
requestNewMashFrame(parentID) Ta funkcja opakowuje konstruktor MashFrame, korzystaj c z warto ci
domy lnych wszystkich opcjonalnych parametrów. Po uruchomieniu funkcja
ta pyta u ytkownika o URL strony ród owej. Wymaga podania jednego
parametru.
parentID Identyfikator elementu HTML, który b dzie zawiera ramk
mashupa. Jest to zazwyczaj element div HTML.
getMashupDescriptor() Ta funkcja zwraca tablic opisów ramek mashupów. Ka dy deskryptor
zawiera wszystkie aktualne warto ci ramki mashupa. Zwrócona tablica
jest wykorzystywana do zapisywania aktualnego stanu wszystkich ramek
mashupa na serwerze.
Nale y zauwa y , e element displayDiv ma ustawion du szeroko i wysoko . Jest to nie-
zb dne, poniewa gdy ramka mashupa jest przenoszona lub zmieniany jest jej rozmiar, czasem
kursor mo e opu ci szary pasek wykorzystywany do przeci gania lub zmiany rozmiarów
ramki mashupa. Jest to typowe zjawisko w przegl darkach z powodu ilo ci czasu potrzebnego
do interpretowania i wykonywania kodu JavaScript, a nast pnie rysowania zmian. Aby to pokona ,
biblioteka mashup, za pomoc biblioteki przeci gnij i upu util.js, dodaje funkcj obs uguj c
zdarzenia myszy do elementu nadrz dnego, co powoduje, e ramka mashupa  przechwytuje mysz.
Czasem ten sam problem wyst puje te w obszarze wy wietlania ramki mashupa. We wszystkich
przegl darkach oprócz IE ramka mashupa ponownie czy si z mysz . Przy przemieszczaniu
lub zmianie rozmiaru ramki mashupa w IE nale y zachowa ostro no i przesuwa mysz do
wolno, by nie wesz a w obszar wy wietlania ramki. Powodem tego jest fakt, e w IE wiele aktyw-
nych komponentów, takich jak odno niki, zawsze ma najwy szy priorytet w kolejno ci wy wie-
tlania, niezale ny od priorytetu deklarowanego dla nich przez elementy nadrz dne, i dlatego kod
przechwytuj cy nie mo e by zaimplementowany.
Rozdzia 11. Tworzenie modyfikowanych przez u ytkowników serwisów typu mashup 211
Poniewa biblioteka mashup.js korzysta z pustego, przykrywaj cego obszar wy wietlania znacz-
nika div, nazywanego te glass pane, mo e wykrywa opuszczone ruchy myszy i zatrzymy-
wa ramk mashupa. W IE obiekt glass pane zosta usuni ty, poniewa aktywne komponenty
wy wietlanej strony i tak by yby powy ej niego. Z powodu takiej implementacji priorytetów
kolejno ci wy wietlania w IE pojedyncze aktywne komponenty przechwytuj zdarzenia zwi -
zane z ruchem myszy i ramka mashupa nie jest przywi zywana do kursora myszy. Dla zacho-
wania spójno ci warstwa glass pane zosta a tutaj usuni ta. W bibliotece mashup pojawiaj si
te inne ograniczenia.
Je li wy wietlana strona zawiera Flash lub inne wbudowane interpretery, mo e si zdarzy , e
film lub inna zawarto tego typu b dzie widoczna nawet poza ramk mashupa. Problem ten
wyst puje cz ciej w Windows, zarówno w przegl darce Firefox, jak i IE, ni w OS X i nie zosta
przetestowany w systemie Linux. Wydaje si bardziej zale ny od wy wietlanej strony ni od
przegl darki, dlatego nale y ostro nie wybiera wy wietlane w mashupie strony.
Innym ograniczeniem s menu w JavaScript. Niektóre serwisy maj menu, które automatycznie
pojawiaj si po za adowaniu strony. Takie menu równie mog czasem si pojawia nawet
wtedy, gdy znajduj si poza obszarem wy wietlania ramki mashupa.
Istnieje równie ró nica w funkcjonalno ci pomi dzy tym, jak biblioteka mashup dzia a w sys-
temie Windows, i w innych systemach operacyjnych. Rysunek 11.1 pokazuje prosty przyk ad
w przegl darce Firefox pracuj cej pod kontrol systemu Linux. Nale y zauwa y , e okna mas-
hupów nie maj tam pasków przewijania. Przeci ganie zawarto ci w ramce mashupa zmienia
wy wietlany tam obszar strony ród owej. Przy takim podej ciu do wy wietlania strony ród o-
wej w Firefoksie i IE pod systemem Windows obie przegl darki le odrysowywa y wy wietlany
obszar i poza oknem wy wietlania pojawia y si widoczne pozosta o ci. Problem ten znik przy
u yciu pasków przewijania pokazanych na rysunku 11.2.
Te widoczne pozosta o ci nie pojawiaj si w przegl darkach Firefox i Safari dzia aj cych w sys-
temach OS X i Linux, dlatego wygl da na to, e problem dotyczy biblioteki MFC Windows wyko-
rzystywanej do wy wietlania grafiki w obu tych przegl darkach pod Windows.
Jest nadzieja, e z czasem biblioteka mashup zostanie usprawniona oraz rozbudowana, a pro-
blemy te zostan pokonane.
Wbudowanie mashupa do systemu
obs ugi danych medycznych
Jak ju wspomniano na pocz tku poprzedniego podrozdzia u, wykorzystanie mashupa bardzo
pomog oby piel gniarzom opiekuj cym si lud mi w ich w asnych domach. W tej sytuacji
wa ne jest, aby mashup by prosty w u yciu oraz pami ta ustawienia. Je li takie same kompo-
nenty interfejsu u ytkownika s stosowane w innych cz ciach systemu obs ugi danych medycz-
nych, u ytkownik mo e atwo wykorzysta t funkcjonalno . Wykorzystuj c takie samo podej-
cie projektowe jak w innych rozdzia ach tej ksi ki, programista mo e atwo do czy potrzebn
funkcjonalno . Rysunek 11.3 pokazuje ramki mashupa umieszczone na g ównej stronie.
212 Cz IV Tworzenie bardzo elastycznych, skalowalnych aplikacji
Rysunek 11.2. Prosta strona mashup wy wietlona w przegl darce Firefox pod Windows
W rozdziale 10. zosta o omówione, jak obiekty sesji po stronie klienta s zapisywane i pobierane
z bazy danych Oracle za pomoc AJAX. Poniewa ustawienia mashupa wprowadzone przez u yt-
kownika musz zosta zapisane, mo na je doda do obiektu sesji w taki sam sposób jak infor-
macj o wybranej stronie startowej w poprzednim rozdziale. Proces logowania z rozdzia u 10.
w tej sytuacji powinien pobra te ustawienia i umie ci je w obiekcie sesji, tak aby by y dost p-
ne, gdy u ytkownik za da wy wietlenia mashupa.
Aby wykorzysta kod s u cy do zapisywania obiektu sesji, musi by stworzone BCO wed ug
wzoru opisanego w rozdziale 3. Obiekt saveMashupBCO znajduje si w pliku CO.js, który mo na
pobra z ftp://ftp.helion.pl/przyklady/ordatw.zip.
function saveMashupBCO(){
//utwórz atrybut lub zast p nowym
session.addAttribute('mashupDesc', getMashupDescriptor());
//umie ci g opisuj cy sesj na serwerze bez korzystania z VCO
theSAO.makeCall('POST', null, 'Text', true, '',
'cmd=store&sessDef='+session.toJSONString());
}
Obiekt saveMashupBCO wstawia opisy wszystkich ramek zdefiniowanego przez u ytkownika
mashupa, dopisuj c rezultat dzia ania funkcji getMashupDescriptor API jako atrybut obiektu
Session. Nast pnie, wykorzystuj c funkcj , która s u y do zapisywania sesji klienta i któr
Rozdzia 11. Tworzenie modyfikowanych przez u ytkowników serwisów typu mashup 213
Rysunek 11.3. System obs ugi danych medycznych po wybraniu opcji Poka Mashup
stworzono w rozdziale 10., generuje widoczne tutaj danie HTTP POST. Spowoduje to, e opisy
zostan zapisane w polach bazy danych zawieraj cych sesj w postaci ci gu znaków JSON.
Wi cej o JSON mo na dowiedzie si z ostatniego podrozdzia u rozdzia u 10.
Jak widzieli my w poprzednich rozdzia ach, w sytuacji, gdy u ytkownik chce wy wietli mas-
hup, musi zosta wywo any BCO i odpowiadaj cy mu VCO. Obiekt mashupBCO pokazany w poni -
szym kodzie i w pliku CO.js ró ni si od wi kszo ci omawianych dotychczas obiektów BCO
w JavaScript tym, e nie pobiera danych z serwera. Gdy u ytkownik jest zalogowany, utworzony
obiekt Session zawiera wszystkie zapisane informacje na temat mashupa.
function mashupBCO(){
//nie jest potrzebne po czenie z serwerem, poniewa
//informacje o sesji zosta y pobrane przy logowaniu
var mashupDescriptorArray = session.getAttribute('mashupDescre');
var aVCO = new mashupVCO();
aVCO.notify(mashupDescriptorArray);
}
Z tego powodu BCO musi tylko pobra te informacje z obiektu sesji i wywo a bezpo rednio
odpowiedni VCO, przekazuj c dane jako parametr.
Oba te obiekty s bardzo proste. Obiekt mashupVCO znajduj cy si w CO.js jest równie bardzo
prosty dzi ki wykorzystaniu biblioteki mashup.
function mashupVCO(){
this.notify = function(data){
var displayString = "
";
214 Cz IV Tworzenie bardzo elastycznych, skalowalnych aplikacji
displayString += " onclick='requestNewMashFrame(\"mashupContainer\")' />";
displayString += " onclick='saveMashupBCO()' />";
displayString += "
";
document.getElementById('content').innerHTML = displayString;
MashFrame.mashCount = 0;
MashFrame.mashArray = new Array();
if(data != null){
var numFrames = data.length;
for(var i = 0; i < numFrames; i++){
var aDescription = data[i];
new MashFrame(aDescription.URL, 'mashupContainer', aDescription.left,
aDescription.top,
aDescription.width, aDescription.height,
aDescription.scrollDown, aDescription.scrollRight);
}
}
}
}
Obiekt mashupVCO powoduje wy wietlenie dwóch obiektów div. Pierwszy zawiera przyciski umo -
liwiaj ce dodawanie nowych ramek mashupa oraz zapisanie opisów mashupów na serwerze. Drugi
div zawiera same ramki mashupa. Dodatkowo ten VCO tworzy obiekt MashupFrame dla ka dego
zapisanego opisu i umieszcza go w odpowiednim miejscu.
Jak to dzia a
Biblioteka mashup znajduj ca si w pliku mashup.js do pobrania z ftp://ftp.helion.pl/przyklady/
ordatw.zip wymaga zrozumienia najwa niejszej koncepcji, modyfikowania elementów za po-
moc JavaScript, aby zmieni atrybuty stylów CSS. Aby nie odkrywa ko a na nowo, wiele
z tych modyfikacji jest wykonywanych za pomoc biblioteki obs uguj cej mechanizm przeci -
gnij i upu opisanej w rozdziale 6. Dzi ki wykorzystaniu gotowej biblioteki znajduj cej si
w pliku util.js dzia ania takie jak modyfikacja lokalizacji, szeroko ci i wysoko ci ramek mas-
hupa s obs ugiwane za pomoc gotowych funkcjonalno ci. Gdy klient jest uruchomiony w sys-
temie OS X, równie przesuwanie wy wietlanej strony w ramce mashupa jest wykonywane za
pomoc przeci gania i upuszczania, a nie za pomoc pasków przewijania jak w Windows.
Poza tym aby zrozumie , co dzieje si w bibliotece mashup, trzeba wiedzie , e ka da ramka
mashupa sk ada si z dwóch g ównych cz ci  ramki iframe wy wietlaj cej dan stron
oraz div przechowuj cego t ramk oraz maj cego styl CSS overflow ustawiony na hidden.
Aby pomóc w zrozumieniu, jak to dzia a, utworzono stron mashupBasics.html niekorzystaj ca
z biblioteki przeci gnij i upu . Strona ta, pokazana na rysunku 11.4, umo liwia u ytkownikowi
modyfikowanie tych samych atrybutów CSS co biblioteka przeci gnij i upu , ale za pomoc
pól do wprowadzania danych.
Rozdzia 11. Tworzenie modyfikowanych przez u ytkowników serwisów typu mashup 215
Rysunek 11.4.
Prosta strona
typu mashup
Na podstawie tego przyk adu, umo liwiaj cego bezpo rednie modyfikowanie atrybutów stylu
CSS zamiast u ycia biblioteki przeci gnij i upu , mo na zrozumie le c u podstaw prostot
wbudowywania ramek mashupa.
Plik mashupBasics.html pokazany w poni szym kodzie mo na pobra z ftp://ftp.helion.pl/
przyklady/ordatw.zip. Zawiera on g ównie kod HTML s u cy do definiowania wy wietlania.
Funkcjonalno JavaScript sk ada si z dwóch funkcji, updateEmbeddedPage oraz getUpperLeft
Point. Wa ne jest, by zrozumie , e funkcja updateEmbeddedPage nie jest wykorzystywana
w bibliotece mashup, ale zosta a utworzona, aby umo liwi takie same modyfikacje jak ta biblio-
teka za pomoc biblioteki przeci gnij i upu .


Podstawowy mashup














Rozdzia 11. Tworzenie modyfikowanych przez u ytkowników serwisów typu mashup 217












URL:
Wspó rz dna X: Wsp. widoku X:
Wspó rz dna Y: Wsp. widoku Y:
Szeroko : Wysoko :












Funkcja updateEmbeddedPage rozpoczyna si od pobrania wszystkich warto ci z wej cia strony
i zapisania ich w zmiennych wewn trz JavaScript. Je li u ytkownik nie wprowadzi odpowied-
nich warto ci, do zmiennych przypisywane s domy lne warto ci. Gdy zostanie to wykonane,
rozpoczyna si proces modyfikacji stylów CSS.
Jak zosta o powiedziane wcze niej, istniej dwa g ówne elementy: zawieraj cy ramk element
div nazwany maskDiv oraz ramka iframe nazwana display. Atrybut iframe src przechowuj cy
lokalizacj strony do wy wietlenia jest ustawiony na warto odnalezion w polu URL. Jak
w przypadku ka dej ramki iframe, po wprowadzeniu modyfikacji strona jest od wie ana.
Góra i lewy brzeg strony wy wietlanej w ramce iframe s ustawiane wzgl dem górnego, lewego
rogu ca ej strony. Umo liwia to umieszczanie maskDiv w dowolnym miejscu. Mo e to sugerowa ,
e zawarto przemieszczana jest w elemencie maskDiv, ale w rzeczywisto ci przesuwana jest po
ca ej stronie. Z tego powodu ramka umieszczona jest w maskDiv, z warto ci hidden ustawion
w atrybucie overflow stylu CSS elementu maskDiv. Dzi ki temu ca a zawarto iframe znajdu-
j ca si poza maskDiv jest ukrywana. Takie zachowanie powoduj ce, e zawarto strony poza
iframe jest ukrywana, daje ramce mashupa szczególne w a ciwo ci.
Plik mashupBasics.html umo liwia eksperymentowanie z pozycj i rozmiarami elementów, co
pozwala na zrozumienie, co komponenty biblioteki przeci gnij i upu zastosowane w biblio-
tece mashup musz robi . Przygotowuje to te do samodzielnego analizowania samej biblioteki
mashup.
218 Cz IV Tworzenie bardzo elastycznych, skalowalnych aplikacji
Podsumowanie
Dzi ki wykorzystaniu biblioteki mashup oraz obiektów sesji po stronie serwera i ich zapisywa-
nia z rozdzia u 10. wstawianie ramek mashupa do aplikacji obs uguj cej dane medyczne, jak
te i umieszczanie ich na innych stronach lub w innych aplikacjach jest atwe. Umo liwia to
u ytkownikowi do czanie dodatkowych danych, które s mu potrzebne, do aplikacji bez zmiany
jej kodu. Robi c to, u ytkownik staje si partnerem w wi kszym stopniu ni kiedykolwiek wcze-
niej w historii aplikacji sieciowych i uzyskuje pewnego rodzaju poczucie wspó uczestnictwa
w tworzeniu aplikacji bez konieczno ci zapoznawania si z kodem czy nawet po wi cania na
to minimalnej ilo ci czasu. Do czenie mashupów do aplikacji zmniejsza obci enie jej twórców
i wyra nie zwi ksza ilo pozytywnych do wiadcze u ytkowników.


Wyszukiwarka

Podobne podstrony:
Oracle?tabaseg Express?ition Tworzenie aplikacji internetowych w PHP or10tw
AJAX i PHP Tworzenie interaktywnych aplikacji internetowych
AJAX i PHP Tworzenie interaktywnych aplikacji internetowych Wydanie II ajpht2
PHP i Oracle Tworzenie aplikacji webowych od przetwarzania danych po Ajaksa
PHP i MySQL Tworzenie aplikacji WWW phmsap
helion php i mysql tworzenie sklepów internetowych
informatyka php web 2 0 tworzenie aplikacji typu mashup shu wai chow ebook

więcej podobnych podstron