Végre érkezik a Google Nearby Connections
Nem kötődik Android-főverzióhoz a platform egyik legnagyobb új dobása, a Nearby Connections API élesedése. A Google Play Services keretében implementált új lokáció-alapú megoldás nagyon izgalmas új fejlesztéseknek ágyaz meg.
Megérkezett a napokban az Google Play Services 11-es kiadása s vele a régóta várt Nearby Connections API, erre immár a fejlesztők is építhetnek alkalmazásokat, amelyeket a Play Store-ban publikálhatnak is. De mi is ez az új technológia és hogyan hoz új színt a fejlesztők és felhasználók életébe?
A Nearby Connections lehetővé teszi, hogy a telefonunkkal vagy más androidos eszközünkkel a közelben lévő, szintén a technológiát használó eszközökhöz kapcsolódjunk és azokkal adatot cseréljünk közvetlenül a technológiát használó alkalmazásokon keresztül. Ez roppant egyszerűen (sőt: triviálisan) hangzik 2017-ben, a Google új megoldása azonban egyszerre takarékos az akkuval, gyors, és mind a fejlesztők, mind pedig a felhasználók elől elrejti a hálózatkezelés komplexitását.
Elrejteni a komplexitást
A Nearby Connections lényege és igazi újítása tehát, hogy mind a fejlesztő, mind a felhasználó szempontjából teljesen transzparensen működik, mindenféle beállítás, kapcsolgatás nélkül teszi a dolgát. Például működéséhez nem kell ki-be kapcsolni a Wi-Fi és a Bluetooth kapcsolatot, azt megteszi a rendszer saját hatáskörben (ez persze le is tiltható, ehhez a Nearby-t külön ki kell kapcsolni) - a kapcsolat bontását követően pedig visszaállítja az eredeti állapotot.
Az implementáció tehát okosan képes összefogni a Bluetooth LE, a "sima" Bluetooth, és a Wi-Fi szabványokat, és elfedve gyengeségeiket kihasználni azok egyedi erősségeit - a BLE például nagyon alacsony fogyasztása miatt hasznos, míg a Wi-Fi magas átviteli sebességet nyújt a keverékben, ezek között pedig automatikusan váltanak az eszközök az igénynek és a kapcsolat státuszának megfelelően. A különböző szabványokat felhasználva a Nearby Connections fel tud építeni igény szerint, ad-hoc módon hálózati kapcsolatokat, az Android beépített hotspot funkciójára alapozva. Ez utóbbi azt jelenti, hogy a rendszer nem kizárólag pont-pont kapcsolatokra vethető be, az egyik eszközből központi szereplő is lehet, így egy egész Wi-Fi alapú (infrastruktúra-szerű) hálózat kiépíthető. Az implementáció a fejlesztőknek "egyszerű, megbízható és magas teljesítményű" kommunikációt ígér, az már csak hab a tortán, hogy mindez természetesen titkosított adatátvitellel párosul.
Ünnepi mix a bértranszparenciától a kódoló vezetőkig Négy IT karrierrel kapcsolatos, érdekes témát csomagoltunk a karácsonyfa alá.
Maga az API "hirdetőkre" és "felfedezőkre" osztja az eszközöket: előbbiek aktívan hirdetik a kapcsolat lehetőségét utóbbiak számára a kapcsolat előtti fázisban. Amennyiben a felfedező kapcsolatot kezdeményez, beindul egy szimmetrikus hitelesítési folyamat, amely során a felek ellenőrzik egymást és elfogadják (vagy elutasítják) a kapcsolódást. Amennyiben létrejön a kapcsolat, indulhat az adatfolyam a két fél között.
A Google kimondott célja volt elfedni a hálózatkezelés komplexitását, ennek megfelelően az API nagyon egyszerű elemekből épül fel. A küldött-fogadott üzenetek típusa például három típusú lehet: a "bytes" 32 kilobájtos csomagot jelent, ami tipikusan metaadatok vagy vezérlésre használt üzenetek átadására alkalmas. Átvihető ezen felül "file", vagyis egy állomány, az ezzel járó szokásos komplexitás (és folyamatok közötti másolás) nélkül. A harmadik típus a "stream", kimondottan olyan adatfolyamokhoz, amelyek hossza nem ismert - például játékok vagy audiovizuális streaming használná ezt.
De mire jó?
A nagy sávszélességű p2p (peer-to-peer) hálózati kapcsolat egészen változatos feladatokra befogható, itt tényleg csak a fejlesztők ötletei szabnak határt, hogy mire vetnék be ezt a kapcsolatot. A Google első körben (természetesen) reklámokban gondolkodik, például boltok, reklámtáblák tudják megszólítani a kezünkben lévő telefont, anélkül, hogy mobilhálózati forgalmat generálnának.
Kapcsolat inicializálása - tényleg nem bonyolult.
A Google néhány példája: kollaboratív virtuális rajztábla, amelyre mindenki saját telefonjáról rajzolhat, helyi multiplayer játék, képernyőmegosztás különböző eszközök (például tévé) felé, vagy fájlok másolása eszközök között. Ahogy korábban említettük, mindez anélkül működik, hogy a hálózatra egyenként kellene kapcsolódniuk az eszközöknek, az app fejlesztője az API segítségével egyszerűen összekötheti például a játékosok telefonjait.
Az API korábbi verziói is kipróbálhatóak voltak, a tulajdonképpeni implementáció azonban a Play Services 11.0.55-ös (a cikk írásakor aktuálisnak számító) verziójával érkezett meg: mostantól elérhető a teljesen offline (mobiladat-mentes) működés, a titkosított kapcsolatok, a nagy állományok küldése és az új, egyszerűsített, szimmetrikus API. Szintén újdonság, hogy egy eszköz egyszerre képes felfedező és hirdető módban is működni, de eltűnt a megbízható és nem-megbízható küldés közötti különbség is, utóbbit egyszerűen kivezette a Google a végső verzióban.
A Nearby Connections API dokumentációja a Google oldalán érhető el.