Top Banner
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:8080 access point: homeaut.com
28

192.168.2.1:8080 fileKakukkosóra multimédia alkalmazás rapid prototyping módszerrel történő összeállítása dataflow programozási architektúra alapokon,

Sep 23, 2019

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 192.168.2.1:8080 fileKakukkosóra multimédia alkalmazás rapid prototyping módszerrel történő összeállítása dataflow programozási architektúra alapokon,

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

Page 2: 192.168.2.1:8080 fileKakukkosóra multimédia alkalmazás rapid prototyping módszerrel történő összeállítása dataflow programozási architektúra alapokon,

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

Page 3: 192.168.2.1:8080 fileKakukkosóra multimédia alkalmazás rapid prototyping módszerrel történő összeállítása dataflow programozási architektúra alapokon,

AP: homeaut.com http://192.168.2.1:8080

Dataflow alapok – komponens, portok

• consumer (input)• property• producer (output)

Komponens library:lehetőségek, “nyelv”

Page 4: 192.168.2.1:8080 fileKakukkosóra multimédia alkalmazás rapid prototyping módszerrel történő összeállítása dataflow programozási architektúra alapokon,

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

Page 5: 192.168.2.1:8080 fileKakukkosóra multimédia alkalmazás rapid prototyping módszerrel történő összeállítása dataflow programozási architektúra alapokon,

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

Page 6: 192.168.2.1:8080 fileKakukkosóra multimédia alkalmazás rapid prototyping módszerrel történő összeállítása dataflow programozási architektúra alapokon,

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

Page 7: 192.168.2.1:8080 fileKakukkosóra multimédia alkalmazás rapid prototyping módszerrel történő összeállítása dataflow programozási architektúra alapokon,

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

Page 8: 192.168.2.1:8080 fileKakukkosóra multimédia alkalmazás rapid prototyping módszerrel történő összeállítása dataflow programozási architektúra alapokon,

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

Page 9: 192.168.2.1:8080 fileKakukkosóra multimédia alkalmazás rapid prototyping módszerrel történő összeállítása dataflow programozási architektúra alapokon,

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.

Page 10: 192.168.2.1:8080 fileKakukkosóra multimédia alkalmazás rapid prototyping módszerrel történő összeállítása dataflow programozási architektúra alapokon,

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.

Page 11: 192.168.2.1:8080 fileKakukkosóra multimédia alkalmazás rapid prototyping módszerrel történő összeállítása dataflow programozási architektúra alapokon,

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)

Page 12: 192.168.2.1:8080 fileKakukkosóra multimédia alkalmazás rapid prototyping módszerrel történő összeállítása dataflow programozási architektúra alapokon,

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

Page 13: 192.168.2.1:8080 fileKakukkosóra multimédia alkalmazás rapid prototyping módszerrel történő összeállítása dataflow programozási architektúra alapokon,

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.

Page 14: 192.168.2.1:8080 fileKakukkosóra multimédia alkalmazás rapid prototyping módszerrel történő összeállítása dataflow programozási architektúra alapokon,

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

Page 15: 192.168.2.1:8080 fileKakukkosóra multimédia alkalmazás rapid prototyping módszerrel történő összeállítása dataflow programozási architektúra alapokon,

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

Page 16: 192.168.2.1:8080 fileKakukkosóra multimédia alkalmazás rapid prototyping módszerrel történő összeállítása dataflow programozási architektúra alapokon,

AP: homeaut.com http://192.168.2.1:8080

Kakukkosóra Master áttekintés

heartbeat küldése

kakukkok sorban

Page 17: 192.168.2.1:8080 fileKakukkosóra multimédia alkalmazás rapid prototyping módszerrel történő összeállítása dataflow programozási architektúra alapokon,

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

Page 18: 192.168.2.1:8080 fileKakukkosóra multimédia alkalmazás rapid prototyping módszerrel történő összeállítása dataflow programozási architektúra alapokon,

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

Page 19: 192.168.2.1:8080 fileKakukkosóra multimédia alkalmazás rapid prototyping módszerrel történő összeállítása dataflow programozási architektúra alapokon,

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

Page 20: 192.168.2.1:8080 fileKakukkosóra multimédia alkalmazás rapid prototyping módszerrel történő összeállítása dataflow programozási architektúra alapokon,

AP: homeaut.com http://192.168.2.1:8080

Szép visual programming I.

Quartz Composer

Terület: grafika

Mac-hez adják

Page 21: 192.168.2.1:8080 fileKakukkosóra multimédia alkalmazás rapid prototyping módszerrel történő összeállítása dataflow programozási architektúra alapokon,

AP: homeaut.com http://192.168.2.1:8080

Szép visual programming II.

Microsoft Robotics Studio

Page 22: 192.168.2.1:8080 fileKakukkosóra multimédia alkalmazás rapid prototyping módszerrel történő összeállítása dataflow programozási architektúra alapokon,

AP: homeaut.com http://192.168.2.1:8080

Szép visual programming III.

Rane Drag Net

Terület: audio rendszer

Page 23: 192.168.2.1:8080 fileKakukkosóra multimédia alkalmazás rapid prototyping módszerrel történő összeállítása dataflow programozási architektúra alapokon,

AP: homeaut.com http://192.168.2.1:8080

Szép visual programming IV.

Blender

Terület: video, img proc

opensource

Page 24: 192.168.2.1:8080 fileKakukkosóra multimédia alkalmazás rapid prototyping módszerrel történő összeállítása dataflow programozási architektúra alapokon,

AP: homeaut.com http://192.168.2.1:8080

Szép visual programming V.

Clavia Nord Modular

Win32 és Maceditor

Page 25: 192.168.2.1:8080 fileKakukkosóra multimédia alkalmazás rapid prototyping módszerrel történő összeállítása dataflow programozási architektúra alapokon,

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.

Page 26: 192.168.2.1:8080 fileKakukkosóra multimédia alkalmazás rapid prototyping módszerrel történő összeállítása dataflow programozási architektúra alapokon,

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ú)

Page 27: 192.168.2.1:8080 fileKakukkosóra multimédia alkalmazás rapid prototyping módszerrel történő összeállítása dataflow programozási architektúra alapokon,

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

Page 28: 192.168.2.1:8080 fileKakukkosóra multimédia alkalmazás rapid prototyping módszerrel történő összeállítása dataflow programozási architektúra alapokon,

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.