
#365 – rainy #365 #hdr

A Kolab project kapcsán eszembe jutott, hogy le kell porolnom a saját életem architecture capability-jének megvalósítását célzó törekvéseimet.
Elmagyarázom. (És ha eddig nem volt világos: kőkemény geek, illetve architecture post következik.)
Adott ugye egy ember, aki idejének jelentős részét tölti a neten, ennek során különféle webes appokat használ. Ezek tipikusan egy kialakult core körül mozognak, de szintén tipikusan vannak „szatelit” webappok, amiket váltogatunk — ki többet (pl. aki félévente átáll blog.hu-ról Tumblr-re, onnan Postr-re, majd amikor az bezár, valami másra stb.), ki kevesebbet (pl. én, aki 2002 óta blogol és 2, azaz kettő platformot használt ezalatt; és egy domaint).
A probléma: a szolgáltatások jelentős része átfedésben van, mármint ami a funkcionalitást, és főleg a tárolt/átvitt adatot illeti. Az Instagramról átkerül a fotó a blogra, onnan Facebookra és Google+-ra, meg Twitterre, és kész a baj, egyrészt három helyen van meg a fotó ami architekturálisan ugye botrány, másrészt három külön like- és kommentfolyam van, ami szintén.
A probléma persze az, hogy a fenti jelenség a jelenlegi világrendből fakad: a walled garden szolgáltatásoknak nyilván pontosan az a célja, hogy minél több adatot magánál tartson, sőt, minél több adat „mastere” legyen. A Facebook nem fog Google+-nak kiadni kommentfolyamot, mert az az ő üzletüket rontja, pedig lehetne. („Minden adat metaadat” — lehetne.) A vesztes természetesen a felhasználó, nem csak az, aki létrehozza a tartalmat, hanem az is, aki fogyasztaná, de egyszerre csak egy bizonyos vetületét látja. Írtam erről a problémáról már a Miért Firefox OS? posztomban is, talán látható, hogy több aspektusból is foglalkoztat, hovatovább: zavar a jelenség.
A probléma tehát adott, viszont több síkon létezik:
Attól függetlenül (persze majd erre is kitérek), hogy adott feladatra felhő- vagy „vasalapú” szolgáltatást használunk (vagyis pl. levelezésre Gmail vagy saját szerver), és talán itt következik a posztom témamondata:
Fontos, hogy feltérképezzük az online életünket felépítő komponenseket, építőkockákat, és meghatározzuk ezek magasszintű architektúráját.
A Kolab projektben felmerült egyik probléma kapcsán jöttem rá, mennyire fontos ez: bár a levelezésem Kolabon van, a Gmailemmel (korábbi levelezés megoldás ugye) együtt jött a Hangouts, amit jelenleg Kolabon nem tudok duplikálni. Miért fordult ez elő? Mert eszembe se jutott. Miért? Mert nem voltam felkészülve a létem adatmodelljével, amikor belevágtam a projektbe! Az ember nem is látja, hogy mennyire függ egyik adata a másiktól, amíg el nem kezdené őket szétválasztani valami mentén.
Ennek kiküszöbölésére hétköznapiasan fogalmazva a következő lépcsőket kell végigjárni:
Ha ezzel megvagyunk, kész van életünk adat entitás/komponens katalógusa, és kezdődhet az érdemi munka:
Azt hiszed ez pikk-pakk megvan? Nos, akkor vágj bele! Én legalábbis ezt fogom tenni, aztán haladok tovább: meghatározom az alapelveket, a komponens interakciókat, létrehozok mátrixokat, mely kaland végén egy jól definiált szolgáltatáskészletet fogok tudni használni mindenféle adatigényem kielégítésére. Épül-szépül a capability!