192.168.2.1:8080 fileKakukkosóra multimédia alkalmazás rapid prototyping módszerrel történő...

Preview:

Citation preview

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 II.

Microsoft Robotics Studio

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.

Recommended