Data Binding aneb taháme data ze serveru

Když se na trhu objevila finální verze IE 4.0 firmy Microsoft, přinesla uživateli některá nová vylepšení, z nich vš...


Když se na trhu objevila finální verze IE 4.0 firmy Microsoft, přinesla
uživateli některá nová vylepšení, z nich však mnohá nejsou doposud odborné
veřejnosti příliš známá. Microsoft se pochopitelně snaží, aby tato vylepšení
byla přijata za platný standard, a tím získal opět před svými soupeři nový
náskok. Musím přiznat, že některá rozšíření firmy Microsoft jsou velice
zajímavá. O jednom z nich, o technologii zvané Data Binding, bude tento článek
pojednávat.
Data Binding je velice užitečná technologie firmy Microsoft, která je již plně
obsažena v IE 4.0. Je založena na následující úvaze. Technologie na straně
serveru, např. ASP, nám umožňuje spojení s databází a vygenerování tabulky v
HTML, která je zaslána serverem klientu. Ale nebylo by lepší, kdyby přímo
klient obsahoval elementy, které se dokáží s danou databází spojit a pracovat s
ní? Vždyť s takovýmito elementy by pak nebylo nutné programovat skripty na
straně serveru, ale pouze navrhovat tyto elementy současně s návrhem stránky
HTML, která by přitom byla statická! Princip Data Binding pak vidíte na obrázku.
Z něj je patrné, že technologie Data Binding má 3 hlavní části, jsou to: Data
Consumers, Data Source Objects a Data Binding Agent. Všechny tyto části jsou
soustředěny nebo podporovány knihovnou mshtml.dll, která je součástí instalace
Microsoft Internet Exploreru verze 4.0 a vyšší. Tato knihovna v sobě zahrnuje
různá rozšíření firmy Microsoft pro zpracování DHTML. Data Consumers jsou
modifikované elementy HTML, které mohou využívat výhod technologie Data
Binding, Data Source Objects jsou "zástupné" zdroje dat (obsažené v HTML
stránce a spojené se vzdáleným či lokálním zdrojem dat) pro tyto elementy a
Data Binding Agent je označení pro tu část knihovny mshtml.dll, která
synchronizuje komunikaci mezi Data Consumers a Data Source Objects. Věnujme se
nyní podrobněji jednotlivým částem technologie Data Binding.
Data Consumers
Data Consumers neboli spotřebitelé dat jsou právě ty elementy HTML, které mohou
být spojeny s lokální i vzdálenou databází a umějí zobrazovat data v ní
obsažená. V materiálech firmy Microsoft se také mluví o Data Bound Elements
(DBE). Dají se rozdělit do 2 typů. Na elementy Single-valued consumers (SVC),
které umějí současně zobrazit data pouze z jediného záznamu (recordu, řádky), a
na elementy, které umějí zobrazit data z několika záznamů současně Tabular data
consumers (TDC) čili tabulkové elementy. Velice dobrý nápad byl ten, že do
definice HTML nebyly přidány žádné nové elementy, ale stávající byly obohaceny
o nové funkce! Je to možné pomocí nových atributů stávajících elementů, které
vidíte v tabulce na konci následující strany.
Příkladem SVC může být například element SPAN, který zobrazí data z tabulky
dsoComposer a položku (sloupeček) compsr_first právě vybraného záznamu.
<SPAN DATASRC=#dsoComposer DATAFLD=compsr_first></SPAN>
Příkladem TDC je element TABLE, který zobrazí všechny položky z jednoho
sloupečku jedné tabulky. Opět si uvedeme jednu ukázku.
<TABLE DATASRC=#dsoComposer>
<TR><TD><DIV DATAFLD=compsr_first> </DIV><TD><TR>
</TABLE>
Datové elementy se tedy spojují se zdrojem dat (tabulkou). Ale toto spojení
není přímé! Datové elementy se spojují s Data Source Objects (DSO), které jsou
umístěny na stránce, ve které se DBO vyskytují. Podívejme se nyní, jaké DSO
máme k dispozici.
Data Source Objects (DSO)
DSO jsou normální ActiveX objekty nebo javovské applety, které jsou do stránky
vloženy, ale nezobrazují se! Jejich účel je následující: DSO se umí spojit s
lokální i vzdálenou databází libovolným protokolem a sám poskytuje přenášená
data standardně, jako OLE DB nebo OLE DB Simple Provider. MSHTML pak rozšiřuje
objektový model DSO o standardní properties, methods a events, které jsou
použitelné pro skriptovací jazyky v rámci HTML stránky. Navíc prostřednictvím
Data Binding Agenta je umožněna vzájemná komunikace mezi Data Consumers a Data
Source Objects.
Firma Microsoft poskytuje několik základních DSO a také poskytuje jejich úplnou
specifikaci, aby si je vývojář intranetových aplikací mohl pro své potřeby sám
vyvinout.
Tabular Data Control
Tabular Data Control je jednoduchý DSO, který umí přistupovat k datové tabulce
ve formátu jednoduchého textu s oddělovači. Uveďme si příklad použití tohoto
elementu v rámci HTML tabulky:
<OBJECT CLASSID="clsid:333C7BC4-4607-11D0-0080C7055A83" ID=dsoComposer WIDTH=0
HEIGHT=0>
<PARAM NAME="DataURL" VALUE="composer.csv">
</OBJECT>
Na výše uvedeném příkladu je patrné, že Tabular Data Control objekt má pouze
jeden parametr: DataURL, který udává cestu k textovému souboru obsahujícímu
data tabulky. Atributy objektu jsou standardní, všimněte si však, že výška i
šířka objektu je rovna nule, protože samotný objekt se nikterak nezobrazuje.
Remote Data Service
Remote Data Service (RDS) je DSO již poněkud složitější. Umí totiž data získat
ze skutečné databáze prostřednictvím OLE-DB či ODBC. Ukažme si opět jeho
jednoduché použití:
<OBJECT classid="clsid:BD96C5556-65A3-11D0-983A-00C04FC29E33" ID=dsoComposer
HEIGHT=0 WIDTH=0>
<PARAM NAME="Server" VALUE=http://musicserver>
<PARAM NAME="Connect" VALUE="dsn=music;uid=guest;pwd=">
<PARAM NAME="SQL" VALUE="select compsr_first from composer">
</OBJECT>
Jak je patrné, RDS objekt má již více parametrů. Parametr Server je název
databázového serveru, se kterým se má spojit, parametr Connect je řetězec
použitý pro připojení na tento server a parametr SQL je řetězec obsahující SQL
příkaz, který vrátí data.
JDBC DataSource Applet
JDBC DataSource Applet je na rozdíl od předchozích dvou objektů applet, ale
jeho funkce je podobná. Pomocí datového rozhraní JDBC (Java Database
Connection) se dokáže připojit ke vzdálené databázi a získat z ní potřebná
data. Má však poněkud více parametrů:
XML Data Source
Tento DSO umožňuje pracovat s daty ve formátu XML (Extensible Markup Language).
Jedná se opět o applet a může sloužit k zobrazení dat, která mají hierarchickou
strukturu. Způsob začlenění XML Data Source do stránky HTML je následující:
<APPLET CODE="com.ms.xml.dso.XMLDSO.class" ID="xmldso" WIDTH="0" HEIGHT="0"
MAYSCRIPT="true">
<PARAM NAME="URL" VALUE="composer.xml">
</APPLET>
MSHTML Data Source
Posledním příkladem DSO je datový zdroj přímo začleněný do stránky HTML. Ukázka
takové databázové tabulky začleněné do HTML následuje:
<H1ID=COMPSR_FIRST>Hector</H1>
<MARQUEE ID=COMPSR_LAST>Berlioz</MARQUEE>
<DIV ID=COMPSR_BIRTH>1803</DIV>
<H2 ID=COMPSR_FIRST>Modest</H2>
<H3 ID=COMPSR_LAST>Moussorgsky</H3>
<BUTTON ID=COMPSR_BIRTH>1839</BUTTON>
<TEXTAREA ID=COMPSR_FIRST>Franz</TEXTAREA>
<XMP ID=COMPSR_LAST>Liszt</XMP>
<SPAN ID=COMPSR_BIRTH>1811</SPAN>
Vypadá to šíleně? Ano. Význam je následující: Pokud náš DBO přistupuje k
tabulce obsažené v této HTML stránce, jsou za hodnoty ve sloupečku compsr_first
považovány všechny hodnoty elementů označených ID=compsr_ first v pořadí od
počátku HTML stránky. První hodnota (na první řádce tabulky) je tedy v našem
případě Hector, druhá hodnota téhož sloupečku je potom Modest. Jak je vidět,
podstatné je označení HTML elementu pomocí atributu ID a nikoliv typ elementu.
Ukažme si nyní začlenění jednoduchého MSHTML Data Source do stránky HTML:
<OBJECT ID=htmlComposer DATA="compdata.htm" HEIGHT=0 WIDTH=0>
</OBJECT>
Jak je patrné, jediným významným parametrem je atribut DATA, který odkazuje na
HTML stránku, ve které je vložená tabulka s daty.
Pochopitelně by pouhé zobrazení tabulky nebo položek z jednoho řádku DSO nebylo
pro opravdovou aplikaci dostačující. Nejčastější požadavek uživatele bude, aby
se mohl posouvat po jednotlivých řádkách tabulky pomocí tlačítek na začátek,
zpět, vpřed a na konec s možným grafickým zobrazením.
Výše uvedený požadavek je možné splnit díky tomu, že DSO poskytuje standardní
object recordset a jeho obvyklé metody a property. Ukázka kódu, který realizuje
pohyb v datové tabulce pomocí čtyř tlačítek, následuje:
Závěr
Data Binding je technologie, která je v současné době dostupná pouze s
prohlížečem Internet Explorer. Není tedy vhodná pro internetové aplikace,
nicméně může být velice výhodná v prostředí intranetu. Nicméně podle některých
informací existuje snaha o začlenění této technologie do standardu nové verze
HTML specifikace. Přinejmenším by prozatím měly být názvy nových atributů
rezervovány. O vlastním osudu této technologie pak rozhodne čas.
0 0826 / als











Komentáře
K tomuto článku není připojena žádná diskuze, nebo byla zakázána.