Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!
Zadejte Vaši e-mailovou adresu:
Kamarád fotí rád?
Přihlas ho k odběru fotomagazínu!
Zadejte e-mailovou adresu kamaráda:
-
5. září 2024
Matrixmedia - Obsluha a tisk na velkoformátových digitálních tiskárnách
-
30. září 2024
-
4. října 2024
-
14. listopadu 2024
Apple
Apple keynote naživo a naplno
18. července 2002, 00.00 | Přestože je to již po čtvrté, co jsme měli možnost naživo sledovat zahajovací vystoupení Steva Jobse na veletrhu MacWorld, i tentokrát nás překvapil a pohltil. Jaké jsou bezprostřední pocity z keynote a jaké byly reakce shrnujeme v exkluzivní reportáži.
Sotva se webdesigneři pracující s Flashem začali setkávat s hlasitými námitkami typu "Tohle by přece šlo udělat i pomocí dynamického HTML a SVG!", aby neméně hlasitě reagovali "Ano, ale za desetkrát delší dobu a s chatrným výsledkem", Macromedia se rozhodla opět udeřit a posunula možnosti Flashe do oblastí, ve kterých si nadlouho nikdo netroufne hledat konkurenci. Tou oblastí je komunikace klient/server – komunikace obousměrná, komunikace streamovaná, komunikace dat, zvuku i videa, zkrátka komunikace všeho druhu. A zdá se, že takovou komunikaci chce skutečně dopracovat k dokonalosti.
Nejprve však trochu historie.
Chceme dynamický obsah
Původní ambicí Flashe nebylo nic víc než přinést na web vektorovou grafiku a chytře řešené animace, v době kdy mu kralovaly bitmapy a archaický animovaný GIF. Není divu, že jakmile se dostavil úspěch nové technologie, vývojáři se začali ptát: Jak to bude s dynamickým obsahem? Macromedia přišla s řešením naprosto logickým a zapadajícím do tehdejšího uvažování webových vývojářů: Pro HTML máme PHP, ASP a podobné technologie, pro Flash budeme mít Macromedia Generator. Namísto statických souborů SWF bylo tedy možné vytvářet šablony (SWT), do kterých Generator dle požadavku klienta dynamicky vkládal živá data, obvykle z databáze, nebo dokonce poskládal výsledný soubor SWF z několika dílčích a výsledek zaslal klientovi.
Že jste se s Generatorem nikdy nesetkali a přesto tvoříte flashové animace s dynamickým obsahem? To je dost možné, protože dnes už můžeme konstatovat, že Generator byl produkt s jepičím životem. Macromedia předběhla sama sebe, když už ve Flashi verze 4 přišla s výrazným posílením skriptování na straně klienta a hlavně s příkazem, který odstartoval malou komunikační revoluci: loadVariables. Nyní bylo možné načítat do běžící animace data ze serveru a komunikovat se serverem bez nutnosti znovunačtení celé HTML stránky. Připočítáme-li možnost sestavování animací z více dílčích souborů také za běhu na klientovi (což bylo možné již od verze 3), popularita Generatoru začala klesat. Proč sestavovat dynamický obsah na serveru, když je možné to provést v klientském prohlížeči? Protože to je tradiční postup známý z HTML? Odpoutejte se od konvencí, Flash je samostatný svět a v něm platí, že mezi klienta a server je možné činnosti rozdělit rozumnějším způsobem. Když v roce 2000 přišel Flash 5 a s ním ještě výraznější pokrok jazyka ActionScript a především příjemná komunikace se serverem pomocí jazyka XML, na Generator se rychle zapomínalo.
Kouzlo obousměrného kanálu
Tou nejdůležitější novinkou Flashe 5 z hlediska našeho historického ohlédnutí byl ovšem tzv. XML Socket. Komunikace flashové aplikace se serverem se poprvé obešla bez protokolu HTTP. Ten má totiž nepřekonatelná omezení, která se projeví u aplikací jako jsou chat nebo víceuživatelské on-line hry. XML Socket umožňuje vytvořit trvalý komunikační kanál mezi klientem a serverem, kterým proudí data oběma směry. Vyvíjíme-li například chat, není nutné periodicky zatěžovat server dotazy, zda se v diskusi objevily nějaké nové zprávy – server může sám iniciovat komunikaci a klientský program pouze zareaguje, jakmile obdrží nová data.
Macromedia však nenabídla vývojářům žádné speciální řešení serverové strany aplikací, a tak se pro mnohé z nich stalo reálné využití XML Socketu tvrdým oříškem. Při tvorbě aplikací na bázi protokolu HTTP vystačíme s jednoduchým skriptem, napsaným např. v PHP, který nám zajistí rozhraní mezi Flashem a databází či dalšími serverovými komponentami. Ovšem v případě XML Socketu je nutné napsat si program např. v Javě, který neustále poběží a bude sloužit coby komunikační server pro flashové klienty, případně je možné využít některý z obecných serverů, které začaly vznikat převážně jako produkty menších firem a nadšenců (jedním z nich je např. server Unity známého experta na ActionScript Colina Moocka).
Macromedia 2002: Zaostřeno na server
Teprve nyní se Macromedia rozhodla přehodnotit svou strategii v oblasti serverových produktů a rok 2002 se tak stává klíčovým pro další směřování Flashe. Generator je neperspektivní produkt, proto byl jeho vývoj zastaven. Naopak je zde poptávka po komunikačním serveru, či ještě lépe po nějakém elegantním řešení serverové strany moderních flashových aplikací. Macromedia nezklamala, nejenže splnila očekávání vývojářů (snad s výjimkou ceny), ale dokonce přišla s novými možnostmi v oblasti multimediální komunikace. A tak letos na jaře spatřilo světlo světa vývojové prostředí Flash MX, nedávno následované produkty pro stranu serveru: Flash Remoting a především Flash Communication Server MX.
Technologie Flash Remoting zjednodušuje tvorbu aplikací tím, že umožňuje objektově orientovaný přístup ke vzdáleným webovým službám. Pomocí objektů na straně serveru, jako jsou javové objekty nebo komponenty ColdFusion, je možné například snadno propojit výstup z databáze s flashovými komponentami, aniž bychom se pohybovali na úrovni komunikace přes XML. V produktech společnosti Macromedia (ColdFusion a JRun) je Flash Remoting obsažen přímo, pro jiné serverové produkty je nebo bude dodáván samostatně.
Zajímá-li nás ovšem obousměrná komunikace v reálném čase, je třeba se podívat na Flash Communication Server MX.
Komunikace všeho druhu
Kdo se domníval, že nic lepšího než XML Socket ve Flashi nelze vymyslet, ten se nyní nestačí divit. Představme si, že vyvíjíme hru pro dva hráče, kde každý hráč posunuje svou figurkou. Ve Flashi 5 bychom komunikaci pomocí XML Socketu řešili takto: Poté, co jeden z hráčů posune figurku, zakódujeme novou polohu figurky do podoby XML dat a odešleme na socket. Na serveru musí běžet program, který data ze socketu přijme a postará se o jejich odeslání na klienta druhého hráče. Ten zareaguje na přijatá data posunutím protihráčovy figurky. Jak elegantněji by to bylo možné vyřešit? Co třeba takto: oba klientské programy i program na serveru jsou napsány stejným jazykem, tedy ActionScriptem. Na všech třech místech vytvoříme instanci figurky, definujeme jejich vzájemné propojení a ... hotovo! Jakmile první hráč posune figurku, díky zcela automatické synchronizaci se "posune" i pomyslná figurka uvnitř programu běžícího na serveru a následně se opět zcela automaticky posune i odpovídající figurka u druhého hráče. Žádné programování samotné komunikace, vývojář si může síť téměř odmyslet. Že to je princip dobře známý z teorie distribuované architektury systémů? Však se také nyní Flash stává jakýmsi "výhonkem" distribuovaných systémů zasahujícím až do vašeho koncového zařízení!
Klíče k tomuto řešení jsou především tyto dva: Protokol RTMP a Server-side ActionScript. RTMP (Real Time Messaging Protocol) zajišťuje onu zmíněnou automatickou synchronizaci sdílených objektů (a to jak mezi klientem a serverem, tak třeba i mezi různými servery nebo mezi několika aplikacemi běžícími na jednom klientovi). Server-side ActionScript je stejný jazyk jako ten, na který jsou již od verze 5 zvyklí vývojáři flashových aplikací (klientská a serverová verze jazyka se samozřejmě liší vestavěnými knihovnami), takže nyní nic nebrání tomu, aby pokročilou víceuživatelskou aplikaci kompletně zvládl vytvořit vývojář, který měl dosud zkušenosti pouze s ActionScriptem na straně klienta.
Macromedia jde ovšem svým serverem ještě dál: Kromě komunikace obecných dat formou popisované synchronizace objektů nabízí obousměrný streamovaný přenos zvuku a videa. Flash Player verze 6 obsahuje podporu mikrofonu a kamery, nic nám tedy nebrání pustit se do tvorby aplikací jako jsou videokonference nebo třeba audiovizuální návštěvní kniha, ve které mohou uživatelé například zanechat zvukové vzkazy.
Pro zběžné seznámení s tím, co všechno tento produkt nabízí, doporučuji prohlédnout si tuto animovanou prezentaci.
Jako většina komerčních produktů pro stranu serveru, je bohužel i Flash Communication Server MX velmi nákladnou záležitostí. Doufejme, že se časem objeví konkurenční řešení, a také cenově dostupný webhosting s podporou této technologie. Jakmile byly naznačeny perspektivy, jak může vypadat budoucnost Flashe, věřím, že realita nezůstane příliš pozadu.
-
14. května 2014
Jak vkládat snímky do galerií a soutěží? Stručný obrazový průvodce
-
23. dubna 2014
Konica Minolta přenesla výhody velkých zařízení do kompaktních modelů
-
12. června 2012
-
9. dubna 2014
-
29. listopadu 2013
-
6. září 2004
OKI snižuje ceny barevných laserových tiskáren C3100 a C5200n
-
13. května 2004
-
19. ledna 2004
QuarkXPress Passport 6: předvedení nové verze na konferenci Apple Forum 27.1.2004
-
6. února 2001
-
30. listopadu 2014
Nový fotoaparát α7 II: první plnoformát s pětiosou optickou stabilizací obrazu na světě
-
8. září 2024
-
14. října 2024
-
5. listopadu 2024
-
14. listopadu 2024