This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
git_mobilni-gis [2018/05/27 12:05] efox |
git_mobilni-gis [2018/05/27 13:44] (current) efox |
||
---|---|---|---|
Line 74: | Line 74: | ||
* přenos hlasu i dat zároveň | * přenos hlasu i dat zároveň | ||
* tento systém umožnil rozvoj LBS | * tento systém umožnil rozvoj LBS | ||
- | ===== příklady | + | ===== příklady |
* PocketGIS | * PocketGIS | ||
* pro geodetz | * pro geodetz | ||
Line 140: | Line 140: | ||
* aplikace pro BI, ESRI Maps for office, operations dashboard for arcgis, | * aplikace pro BI, ESRI Maps for office, operations dashboard for arcgis, | ||
+ | ====== přenos a synchronizace dat mezi mobilními zařízeními ====== | ||
+ | * synchronizace | ||
+ | * proces konzistence a jednotnosti instancí dat ve více systémech | ||
+ | * zajišťuje stejné kopie nebo verze dat v různých zařízeních | ||
+ | * využívá se k udržení stejné datové základny v jednotkách distribučního počítačového systému | ||
+ | * replikace | ||
+ | * hlídá databázový systém, jestli tam nedošlo ke změně. Jestli jo, tak spustí přenos dat. | ||
+ | * uzel (node) = je to každá databázová jednotka v distribučním počítačovém systému (clusteru) a má jednu ze dvou rolí: | ||
+ | * 1. master (rodič) - data se dají zapisovat a i číst | ||
+ | * 2. potomek (slave) - data jenom číst | ||
+ | * data se přenášejí pouze jednosměrně | ||
+ | ====== datové struktury pro přenos dat ====== | ||
+ | * přenáší se média (binární soubory, tvořící obrazovou a video dokumentaci), | ||
+ | * záleží na datovém modelu a na uložení | ||
+ | |||
+ | * JSON / GeoJSON | ||
+ | * YAML Aint Markup Language | ||
+ | * umí ukládat i komentáře | ||
+ | * XML formáty | ||
+ | * SFA - WKT (textové formáty) | ||
+ | * WKB (binární formát) | ||
+ | |||
+ | ====== algoritmy využitelné při synchronizaci dat ====== | ||
+ | |||
+ | * lamport timestamps | ||
+ | * pro zajištění globálního času v distribuovaných počítačových systémech | ||
+ | * každý uzel má vlastní logické hodiny a inkrementálně si čísluje operace | ||
+ | * při procesu synchronizace spolu systémy komunikují pomocí zasílání zpráv -> časová značka se porovnává se značkou v uzlu -> porovnání jestli se událost stala před nebo po (dvě události nenastanou ve stejný čas totiž) | ||
+ | * vector clock | ||
+ | * update těch předchozích | ||
+ | * místo jednoho inkrementálního čítače obsahují tolik čísel, kolik je uzlů | ||
+ | * každý uzel si pak drží údaje o ostatních uzlech a ty pak tvoří vektor | ||
+ | * optimistic concurrency control | ||
+ | * řízení souběžných systémů užívaných v transakčních systémech (relační databáze ...) | ||
+ | * po zahájení transakce se nezamykají zdrojová data | ||
+ | * transakce probíhá a po změnách jsou data přenesena zase zpět | ||
+ | * pessimistic offline locking | ||
+ | * rozdíl: po otevření záznamu jedním klientem záznam zamkne a znemožní editaci dalším klientům (editace tedy nesmí být prováděna příliš dlouho) | ||
+ | * operational transformation | ||
+ | * systém, který umožňoje řešit mnoho kolizí v jeden moment | ||
+ | * v nástrojích pro hromadnou editaci dat (Google Docs) | ||
+ | * princip: editace dokumentu probíhá v lokálním úložišti -> transakční přenos zpět do centrální databáze | ||
+ | * byzantine fault tolerance | ||
+ | * snaží se vyřešit problém dvou generálů (při doručování zprávy ve dvou systémech se špatným spojením) | ||
+ | * systém předpokládá, | ||