192.168.2.1:8080 filekakukkosóra multimédia alkalmazás rapid prototyping módszerrel történő...
TRANSCRIPT
Kakukkosóra multimédia alkalmazás rapid prototyping módszerrel történő összeállítása dataflow programozási architektúra alapokon, elosztott rendszerű heterogén kialakítású alacsony energiafelvételű nyílt forráskódú server környezetre, AJAX felhasználói felülettel
http://192.168.2.1:8080access point: homeaut.com
AP: homeaut.com http://192.168.2.1:8080
Dataflow alapok – definíció
Applikáció: hálózat előgyártott komponensekbőlProgramozás: komponensek kiválasztása, paraméterezése, hálózat kialakítása
AP: homeaut.com http://192.168.2.1:8080
Dataflow alapok – komponens, portok
• consumer (input)• property• producer (output)
Komponens library:lehetőségek, “nyelv”
AP: homeaut.com http://192.168.2.1:8080
Dataflow alapok – adattípusok
• Trigger• Integer• Packet (pár byte)• kép• hang• szövegsorok (Unix pipe)• összetett packet
AP: homeaut.com http://192.168.2.1:8080
Dataflow alapok – üzenettovábbítás
Dispathcer típusok: szinkron, aszinkron...
Párhuzamos futtatás: t öbbprocesszoros, többgépes rendszerek támogatása...
Az üzenetek ténylegesen vagy kvázi egyszerre továbbítódnak...
AP: homeaut.com http://192.168.2.1:8080
A fejlesztés szétválik
• rendszer (dispatcher, fejlesztői környezet)adott, sok beleszólásunk nincs, hacsak nem magunk írjuk
• komponensfejlesztésnem mindig lehetséges, hagyományos programozás, kisebb feladatok, rendszerszemlélet szükségeltetik
• applikációfejlesztés“több mint konfigurálás, kevesebb mint programozás”,érettségi kell hozzá, no meg persze a domain ismerete
AP: homeaut.com http://192.168.2.1:8080
Komponensfejlesztés
1. Natív komponens (homeaut.com: C++)2. Kompozit komponens – Blinker:
kompozit komponensek tetszőleges mélységig egymásba ágyazhatók
AP: homeaut.com http://192.168.2.1:8080
Kakukkosóra specifikáció
Master: • 6 kakukk dolgozik szakadatlan• heartbeat IP-n• lámpás játék• webes megjelenítés
Slave:• elsődleges gép kiesésekor
átveszi a fő funkciót
AP: homeaut.com http://192.168.2.1:8080
Pulsar komponens
Pulsar komponens: megadott időközönként (ms) Triggert küld ki.
Egy ilyen komponens fogja megnoszogatni a kakukkokat 10 másodpercenként.
AP: homeaut.com http://192.168.2.1:8080
Cuckoo komponens
Cuckoo komponens: 6-ot rakunk le belőle.
Paraméterei:• melyik webes widgethez van
hozzárendelve,• melyik hangot játssza le.
AP: homeaut.com http://192.168.2.1:8080
Összekötés fail
Így minden kakukkegyszerre szólal meg.
(Az üzenetekegyszerre továbbítódnak)
AP: homeaut.com http://192.168.2.1:8080
Carousel komponens
Carousel komponens: különleges message továbbítás az out producer porton, nem egyszerre küldi el, hanem egyesével,körbe-karikába
AP: homeaut.com http://192.168.2.1:8080
Kakukkosóra kakukkoló kész
A Pulsar 10 s időközönkénttriggereli a Carousel-t,aki egyesével továbbítjaazt a cuckoo1..cuckoo6-nak.
AP: homeaut.com http://192.168.2.1:8080
Kakukkosóra Master, Heartbeat I.
Heartbeat küldése: egy másik Pulsar
Blinker: olyan webeswidget, amely Triggerérkezésekor felvillan
AP: homeaut.com http://192.168.2.1:8080
Kakukkosóra Master, Heartbeat II.
Remote: bejövő értékek Packet-be csomagolásaUdpSend: Packet küldése IP-n, másik gépre
AP: homeaut.com http://192.168.2.1:8080
Kakukkosóra Master áttekintés
heartbeat küldése
kakukkok sorban
AP: homeaut.com http://192.168.2.1:8080
Ismertebb dataflow rendszerek I.
Unix shell pipes• komponens: parancsok felparaméterezve• adattípus: csak egyféle, szöveg soronként• kapcsolat: korlátozott, 1 in (stdin), 2 out
(stdout, stderr)• futás: párhuzamos (MS-DOS: egymás után, file)• érdekesség: minden cli program helyből
komponens/usr/bin/tee
AP: homeaut.com http://192.168.2.1:8080
Ismertebb dataflow rendszerek II.
Spreadsheet (pl. Excel)• komponens: képlet (kár, hogy nincs library!)• adattípus: szám, szöveg• kapcsolat: hivatkozási hálózat• futás: csak komponens módosításkor• érdekesség: komponensekre hivatkozás címmel
És most legalább megtudtuk azt is, hogy spreadsheetek készítése programozás-e vagy sem: határeset(Egy HTML oldal elkészítése viszont nem az, ha már itt tartunk.)
AP: homeaut.com http://192.168.2.1:8080
Ismertebb dataflow rendszerek III.
Make• komponens: egyes elemek fordítása (job)• adattípus: csak egyféle, “megváltozott” trigger• kapcsolat: dependency-tree• futás: kézi indításkor minden üzenet lefut• érdekesség: párhuzamos rendszer
make -j
AP: homeaut.com http://192.168.2.1:8080
Szép visual programming I.
Quartz Composer
Terület: grafika
Mac-hez adják
AP: homeaut.com http://192.168.2.1:8080
Szép visual programming III.
Rane Drag Net
Terület: audio rendszer
AP: homeaut.com http://192.168.2.1:8080
Szép visual programming IV.
Blender
Terület: video, img proc
opensource
AP: homeaut.com http://192.168.2.1:8080
Szép visual programming V.
Clavia Nord Modular
Win32 és Maceditor
AP: homeaut.com http://192.168.2.1:8080
Köszönjük a figyelmet!
Amíg a kérdezőkfelkészülnek,leállítjuk a master applikációt.
Innentől a slave gép veszi át afeladatot, ha minden összejön.
AP: homeaut.com http://192.168.2.1:8080
Kérdések I.
Miért jó ez?• REUSE helyett USE, azonnal bevethető kódok• kétféle fejlesztő: komponens- és applikáció-• gyorsan összedobáljuk a prototípust, gyorsan
módosítunk• hirtelen lefejlesztjük a bétás komponenst,
később ráérünk tökéletesíteni• többszálúság anélkül, hogy a komponensnek
ezzel törődni kéne (make: a gcc nem többszálú)
AP: homeaut.com http://192.168.2.1:8080
Kérdések II.
Házautomatizáláshoz miért jó?• minden ház egyedi applikáció, egyedi logikák,
egyedi felület• mindig vannak kivételek, fura kívánságok, nincs
az a konfigurációs séma, ami ne dőlne be• driver architektúra: protocol és transport
komponensek• nagyobb épületekhez többszerveres
architektúra
AP: homeaut.com http://192.168.2.1:8080
Néznivaló – Kakukkosóra Slave
Röviden: a blockert 7000 ms-onként áteresztőre állítja az enabler, 4444 ms-onként blokkolóra a heartbeat (udprecv, remote felől érkezik a master gépről). A heartbeat reseteli az enablert is, így amíg jön heartbeat, a blocker zárva marad. Ha nem jön, enabler kinyitja, és 10000 ms-onként kakukkoltat a cuckoo_clock Pulsar.