Protokoly Pro Komunikaci Klient ˚U Na Platformˇe Flash

Protokoly Pro Komunikaci Klient ˚U Na Platformˇe Flash

MASARYKOVA UNIVERZITA F}w¡¢£¤¥¦§¨ AKULTA INFORMATIKY !"#$%&'()+,-./012345<yA| Protokoly pro komunikaci klient ˚una platformˇeFlash BAKALÁRSKA PRÁCA Tomáš Mizerák Brno, jar 2010 Prehlásenie Prehlasujem, že táto bakalárska práca je mojím pôvodným autorským dielom, ktoré som vypracoval samostatne. Všetky zdroje, pramene a literatúru, ktoré som pri vypracovaní používal alebo z nich ˇcerpal,v práci riadne citujem s uvedením úplného odkazu na prís- lušný zdroj. Vedúci práce: RNDr. David Šafránek, Ph.D. ii Pod’akovanie Dakujemˇ svojmu vedúcemu bakalárskej práce RNDr. Davidovi Šafránkovi, Ph.D. za pomoc, ochotu a strpenie, ktoré mi venoval pri tvorbe tejto práce. Taktiež d’akujem svojej rodine za podporu poˇcascelého štúdia a všetkým, ktorí mi akýmkol’vek spôsobom pomohli pri spracovaní tejto bakalárskej práce. iii Zhrnutie Vd’aka vysokej rozšírenosti technológie Flash a výkonu dnešných poˇcítaˇcovmôžeme im- plementovat’ aplikácie a hry bez nutnosti inštalácie. Táto práca zh´rˇnaspôsoby komunikácie klientov Flash a prehl’ad dostupných protokolov. V rámci práce boli jednoduchým nástro- jom otestované dva najrozšírenejšie protokoly pre Flash – HTTP a RTMP. Súˇcast’ou práce je ukážková aplikácia využívajúca RTMP pre spojenie klient-server a RTMFP pre peer-to-peer komunikáciu. iv Abstract Because of the great expansion of Flash technology and thanks to the performance of mod- ern computers we’re able to implement applications and games without the necessity of installing them. This thesis includes various possibilities of communication between Flash clients and an overview of available protocols. As a part of this thesis two most common protocols for Flash – HTTP and RTMP – were tested by a simple custom tool. The practical part is a demo application which uses RTMP for a client-server and RTMFP for peer-to-peer communication. v Kl’úˇcovéslová Flash, ActionScript, Flex, HTTP, RTMP, RTMFP vi Obsah 1 Úvod ............................................. 3 2 Platforma Adobe Flash .................................. 4 2.1 ActionScript 3 ..................................... 4 2.1.1 Flash IDE a Flex SDK . 4 2.2 Flex framework .................................... 5 2.3 Adobe Flash Player .................................. 5 2.3.1 Javascript knižnica SWFObject . 6 2.3.2 Bezpeˇcnostnépolitiky cross-domain . 7 2.4 Adobe Air ....................................... 7 2.5 Nástroje na vývoj ................................... 8 3 Komunikaˇcnéprotokoly .................................. 9 3.1 Hypertext transfer protocol ............................. 9 Program telnet . 10 3.1.1 Požiadavka . 10 Metódy požiadaviek HTTP 1.1 . 10 Ukážka HTTP požiadavky POST . 11 3.1.2 Odpoved’ . 12 Ukážková odpoved’ na POST . 12 3.1.3 HTTP a Flash . 13 3.2 Socket a XMLSocket ................................. 13 3.2.1 Socket . 14 3.2.2 XMLSocket . 14 3.3 Real-Time Messaging Protocol ............................ 14 3.3.1 RTMPT . 15 3.3.2 Stream audia a videa . 15 3.3.3 NetConnection . 15 3.3.4 RemoteObject . 16 3.3.5 SharedObject . 16 3.4 Real-time media flow protocol ............................ 17 4 Serverové aplikácie ..................................... 20 4.1 AMF brána ....................................... 20 4.2 Komplexné riešenia .................................. 21 4.2.1 Flash Media Interactive Server . 21 4.2.2 BlazeDS . 21 1 4.2.3 WebORB for .NET . 21 4.2.4 Red5 . 21 4.2.5 Wowza Media Server . 22 4.2.6 LiveCycle Data Services . 22 4.3 RTMFP služby ..................................... 22 4.3.1 Adobe Labs Stratus . 22 4.3.2 LiveCycle Collaboration Services . 22 5 Porovnanie výkonu protokolov HTTP a RTMP .................... 24 5.0.3 Prostriedky na testovanie . 24 5.1 Algoritmus ....................................... 24 5.2 Serverová ˇcast’ ..................................... 25 5.3 Klientská ˇcast’ ..................................... 25 5.4 Výsledky ........................................ 26 6 Program BPChat ...................................... 28 6.1 Klientská ˇcast’ ..................................... 28 6.2 Serverová ˇcast’ ..................................... 29 6.2.1 Nasadenie serverovej ˇcastiaplikácie . 30 7 Záver ............................................. 32 2 Kapitola 1 Úvod Flash je svetovo vel’mi rozšírená technológia. Každý, kto používa internet, Flash pozná. Ciˇ už v podobe známeho video prehrávaˇcana YouTube alebo nepreberného množstva zobra- zovaných reklám. Možnosti jeho použitia sa však v poslednej dobe stále rozširujú. Flash prechádza aj do sféry aplikácií a hier. Táto práca pojednáva o možnostiach komunikácie aplikácií postavených na platforme Flash a okolia, spôsoby ako najlacnejšie komunikovat’ medzi Flash aplikáciou vloženou na internetovej stránke a serverom pripojeným na databázu a ako najlacnejšie vymieˇnat’ dáta priamo medzi dvoma Flash klientami pomocou peer-to-peer spojenia. Prvá kapitola predstavuje základné stavebné prvky platformy Flash. Na struˇcnýchukáž- kach zdrojového kódu v jazyku ActionScript ukazuje základnú štruktúru a syntax. Dalejˇ uvedie Flex framework pre tvorbu aplikácií deklaratívnym spôsobom. Nasleduje popis sa- motného prehrávaˇcaaplikácií Flash na internetových stránkach a zdrojové kódy ako správne Flash vložit’. V druhej kapitole sú zhrnuté možnosti ako komunikovat’ z Flash a predstavená je tech- nológia pre spojenie Flash aplikácií peer-to-peer. Kapitola zah´rˇnaprincípy najpoužívanejšie- ho internetového protokolu HTTP, ako aj možnosti využitia pre samotný Flash. Pre prenos digitálneho obsahu a výmenu iných údajov poukazuje na protokol RTMP a nový RTMFP, ako na ideálny spôsob komunikácie Flash klientov. Serverové riešenia, ktoré sú nutné pre klient-server komunikáciu, sú struˇcneopísané v tretia kapitole. Sú to jednoduché riešenia využívajúce HTTP a skriptovacie jazyky ale i komplexné serverové aplikácie, ktoré implementujú rýchly binárny prenos protokolom RTMP. Nové služby poskytujúce RTMFP spojenie ani samotný protokol nemajú otvorenú špecifikáciu a preto sa im venuje len malá ˇcast’ kapitoly. Porovnanie výkonu v dnešnej dobe dvoch najpoužívanejších protokolov HTTP a RTMP sú zaznamenané v štvrtej kapitole. Meranie je zamerané špecificky na rýchlost’ odozvy pri vel’kom poˇctezasielaných objektov, ˇcovyužívajú aplikácie nároˇcnéna prácu s databázou. V poslednej kapitole tejto práce je popísaná implementácia jednoduchej aplikácie, pomo- cou ktorej používatelia môžu medzi sebou komunikovat’. Základom je klientská a serverová ˇcast’ a použitie binárnych RTMP a RTMFP. 3 Kapitola 2 Platforma Adobe Flash Adobe Flash (skrátene Flash) je multimediálna platforma vyvinutá pôvodne spoloˇcnost’ou Macromedia. V dnešnej dobe sa Flash používa na zobrazovanie animácií a dynamického ob- sahu na webe. Sú to najmä reklamné banery, Flash hry, interaktívne webové prezentácie, no v poslednej dobe i Flex aplikácie. Silnou stránkou Flash je však i možnost’ prehrávat’ audio a video návštevníkom webových stránok simultánne s jeho st’ahovaním zo serveru (A/V streaming), kde príkladom je známa služba YouTube. Technológia Flash patrí medzi jednu z troch najvýznamnejších pre tvorbu RIA (Rich Internet Applications) [15]. Svoje uplatnenie nachádza aj v malých zariadeniach typu mobilné telefóny a PDA. 2.1 ActionScript 3 Hlavným programovacím jazykom technológie Flash je ActionScript 3. ActionScript je ob- jektovo orientovaný. Základná syntax je odvodená z ECMAScript. ActionScript 3 si však ponechal prvky svojich predchodcov ActionScript 1 a 2, ktoré boli skriptovacie, procedu- rálne jazyky s prvkami objektového programovania. ActionScript je vel’mi podobný jazyku Java a používa i podobné dátové typy. Primitívne dátové typy sú: Boolean, int, Null, Num- ber, String, uint, void. Základnou triedou je trieda typu Object. ActionScript 3 nie je silne ty- povaný jazyk a nevýhodou je slabá kontrola pri kompilácii. Slabé typovanie však umožˇnuje použit’ objekty typu Object ako slovník, ktorý má kl’úˇcetypu String a hodnoty akéhokol’vek typu. Zaujímavost’ou sú netypované premenné1 [1][4]. 2.1.1 Flash IDE a Flex SDK Ako kompilátor pre ActionScript 3 a Flash slúži software Adobe Flash Professional alebo kompilátor z Flex SDK (software development kit). Pôvodne bol Flash a SWF vytváraný iba v nástrojoch Adobe. Vo Flash IDE sa animuje na ˇcasovejosi a kompilácia prebieha pria- mo v tomto programe vstavaným kompilátorom. Vznikom Flex frameworku bol vydaný Flex SDK a vývoj aplikácií bol umožnený aj v Eclipse IDE s názvom Adobe Flex Builder, v súˇcastnotiAdobe Flash Builder. Flex SDK je aktuálne opensource a je spoloˇcnost’ou Adobe ponúkaný na stiahnutie z ich webových stránok pod licenciou Mozilla Public License. 1. netypovaný objekt môžme oznaˇcit’ ‘typom’ hviezdiˇcka: var untyped:*; 4 2.2. FLEX FRAMEWORK package com.mizerak { public class HelloWorld { public function sayHello():String { var greeting:String = "Hello World"; var untyped:*; var dict:Object = new Object(); dict.key1 = greeting; dict["key2"] = greeting; for (var key in dict) { dict[key] = greeting + "!"; } return greeting; } } } Obrázok 2.1: Helloworld a prvky jazyka ActionScript 3 2.2 Flex framework Flex framework vnáša do technológie Adobe Flash nové knižnice a funkcionalitu pre tvorbu rozsiahlych aplikácií. Rozširuje možnosti o deklaratívne programovanie pomocou jazyka MXML (dokument XML). Zdrojové kódy HelloWorld aplikácie naprogramovanej pre Flex sú na obr. 2.2 a 2.3. <?xml version="1.0"?> <Application xmlns="http://www.adobe.com/2006/mxml"> <Label text="Hello world!" /> </Application> Obrázok 2.2: HelloWorld v MXML, verzia Flex 3 2.3 Adobe Flash Player Adobe Flash používa pre

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    41 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us