Юмор по выходным: системы массовой слежки через смартфоны

На фоне скандалов с “внезапным” обнаружением того, что особенно продвинутые смартфоны от Apple записывают информацию о собственном передвижении в пространстве (и, следовательно, позволяют следить за передвижением хозяев смартфонов), интересно прикинуть, как может быть реализована некоторая глобальная система слежки за населением. На правах технологического юмора.

Понятно, что такая система должна иметь интерфейс вроде как у Google Earth и показывать своим пользователям некоторые точки, передвигающиеся по карте – то есть, пользователей. Начнём прикидки по потребным вычислительным ресурсам. Пока, очень грубые. Пусть эта мегасистема, достойная фантастического фильма, следит за 500 млн пользователей. Оценка реалистичная. Предположим, что сохраняются только две координаты (географические) для каждого пользователя. Каждая координата, с высокой точностью, влезает в 8 байтов (ну, пусть так – опять же, разумная оценка). Плюс для индексирования потребуется ещё байта четыре. Получаем: 12*2*500*10^6 = 12*10^9, то есть, примерно 12 Гб данных нужно для хранения одной выборки местоположений всех объектов наблюдения. Двенадцать гигабайт – это мало. Предположим, что мы с дискретностью в одну минуту сохраняем все положения (очевидно, что можно всё упростить, но пока найдём максимальную оценку). Тогда сутки (1440 минут) потребят где-то 17 терабайт памяти. Архив за месяц уложится в 510 терабайт. Опять же, не фантастический показатель по современным меркам.

Да, для того, чтобы хранить и ворочать этими терабайтами потребуется специальное хранилище данных. Но разве сейчас таким хранилищем удивишь? Нет. Не удивишь. Даже скорость приёма данных в 12 Гб/минуту – не выглядит фантастической для такого хранилища. Около 200 мегабайт в секунду – это разве скорость, в наш век оптических линий связи? А если раскидать приём на сотню входных “порталов”, то объёмы вообще смехотворные получаются, можно успевать с лёгкостью проносить поступающую информацию в базу и ещё останется машинное время на поиграть в продвинутый 3D-шутер.

При этом, если проектировать сбор данных добротно, то окажется, что не нужно каждую минуту принимать координаты от всех объектов – ведь, в данную конкретную минуту многие обладатели смартфонов спят, никуда не перемещаясь. (Да, есть проблема, что некоторые из них спят в высокоскоростных поездах, совершающих в этот момент движение по маршруту – но, с другой стороны, это просто флуктуация в выборке.) Очевидно, не нужно вообще передавать координаты, если они не изменялись. Поэтому ежеминутный поток данных уменьшается. Оптимизируя процесс дальше можно догадаться, что не требуется передавать и точные координаты при каждом обновлении местоположения – достаточно передать в “упакованном” формате приращения координат (в единицах “гранулярности” действующей системы погрешностей). Таким образом, медленно передвигающиеся объекты будут ещё больше экономить место в потоке данных. (Ну и, конечно, есть куча методов сжатия информации о траекториях, которые пригодятся для создания оптимальных условий хранения информации в базе данных.) В итоге, месячный архив уложится где-то в 50 терабайт. Ну разве ж это объём?

Впрочем, самый правильный подход, это хранение информации непосредственно в смартфонах (как мы убедились, именно он и использовался). В таком варианте получаем размазанное по всем пользователям хранилище, при этом сами пользователи оплачивают его создание и поддержание в худо-бедно работоспособном состоянии. Для исключения потери данных нужно предусмотреть резервирование: то есть, при возможности перебрасывать часть сведения о конкретном пользователи в какой-то ещё смартфон (в зашифрованном виде, понятно).

Правда, при распределённом хранении на местах, возникает проблема с просмотром в режиме онлайн данных о перемещениях пользователей. Она может решаться следующим образом: каждый смартфон периодически передаёт в центр некий “пульс-сигнал”, содержащий лишь уникальный идентификатор и номер сектора, участка земной поверхности, в котором он находится. Карту Земли при этом придётся разбить на очень большие сектора, зато секторов таких будет мало. Например, миллион – тогда достаточно максимум 20 бит для записи идентификатора сектора (при использовании правильного кодирования, сильно меньше бит в среднем потребуется). При этом в базе данных, понятно, номера секторов для конкретных смартфонов сохранять не нужно – сохраняем только идентификаторы самих смартфонов, с разбивкой по таблицам секторов. Таким образом, при необходимости просмотра того или иного сектора – быстро опрашиваются смартфоны, находящиеся в них, а полученные данные используются для построения слепка перемещений пользователей. Просматривать всю Землю целиком и одновременно вряд ли потребуется.

И так далее. В распределённой модели можно придумать уйму всяких интересных запросов на извлечение данных о перемещении объектов. Тема занятная.

()

Похожие записки:



Далее - мнения и дискуссии

(Сообщения ниже добавляются читателями сайта, через форму, расположенную в конце страницы.)

Комментарии читателей блога: 11

  • 1. 2nd May 2011, 23:06 // Читатель зашел в гости написал:

    Сопоставив координаты наблюдаемого обьекта с картой Гугл (где обозначены магазины/кинотеатры/рестораны) можно много узнать об интересах наблюдаемого – где он бывал, сколько времени там проводил, и начать травить его соответствующей рекламой. Смех смехом, а это большие деньги. Провайдеры кабельного/спутникового ТВ уже давно составляют рекламу по набору просматриваемых программ (т.е. если вы много смотрите передач про автомобили, то на вашу коробку будут транслировать рекламу автомобильной продукции).
    Следующий шаг – то же самое, только еще более детально, и в реальном времени.

  • 2. 3rd May 2011, 14:19 // Читатель jno написал:

    Ну, читаем того же А.Андреева – недалёкое будущее с гиперинтерактивной персонализированной рекламой прописано весьма тщательно…

    Впрочем, фигня всё это – нет актуаторов в такой системе!

    Вот, кабы “смартфон” (сохраним пока это название за предполагаемым дивайсом) мог не только следить за юзером, но и понуждать того к определённым действиям (или удерживать от них), тогда – да, разговор был бы совсем другим :)
    Теоретически, для этого можно использовать, скажем, электрический высоковольтный разряд (ну, да – “никакой” мощности) для “укуса” юзера в нужный момент. Правильно подобранный момент – и последствия будут самыми замечательными (ДТП устроить, например).

  • 3. 3rd May 2011, 19:38 // Читатель Vlad написал:

    В добровольном порядке эта система уже есть и даже работает. Называется Google Latitude. Призван показывать на карте, когда друзья вошкаются где-то в пределах досягаемости. Разумеется, одновременно координаты становятся известны и Гуглю.

    https://www.google.ca/latitude/b/0

  • 4. 4th May 2011, 11:57 // Читатель jno написал:

    Да “добровольных” – туча: и форскваре, и соответствующие примочки фейсбука, и прямой аналог имени яндекса…

  • 5. 4th May 2011, 23:16 // Читатель kaschey написал:

    Упаковка таких смещений очень эффективна. Сам писал такой алгоритм. Коэффициент сжатия, естественно, уступает видеокомпресии, а вот JPEG даже проигрывает. Вот так. Причем алгоритм мне нужен был быстрый и с минимальными потерями, по этому достигнутый коэффициент сжатия 1/20 не предел, можно было догнать до 1/50, подожимав разными универсальными алгоритмами. И до 1/100 допустив “артефакты”, как в JPEG.

  • 6. 4th May 2011, 23:23 // Читатель kaschey написал:

    Добавлю по поводу движущейся машины и, особенно, поезда. Такие координаты сожмутся также эффективно, как и координаты пешехода, а для поезда и в 1000 раз то и лучше. Чем равномернее скорость и ровнее траектория, тем лучше сжатие, и даже увеличенные смещения на этом фоне “потонут” в 10-100 кратном увеличении коэффициента сжатия. Тем более, что тут можно и погрешность прибавить.

  • 7. 4th May 2011, 23:36 // Читатель kaschey написал:

    По моим подсчётам для снятых каждые 10 секунд координат для всех жителей Москвы (при поголовном вживлении смартфонов) потребуется всего 30-40 гигабайт в сутки! По 1-5 КБ на человека.

  • 8. 4th May 2011, 23:41 // Читатель kaschey написал:

    А сами данные я бы продавал ревнивым женам, злым начальникам, жадным гаишникам, судебным приставам, квартирным воришкам и др. нуждающимся и благородным людям :-)

  • 9. 4th May 2011, 23:41 // Читатель зашел в гости написал:

    а можно передавать два типа координат: по времени и по смещению.
    Если обьект стоит, или движется очень медленно (пешеход прогуливается по Арбату), то смартфон может передавать свое месторасположение, скажем, когда обьект переместился более чем на 10 метров. Тогда на 2 часа, просиженных в кафе будет только один сеанс связи и один набор координат(ну и timestamp, естественно).
    Быстродвижущиеся обьекты, например авбомобили, нужно отслеживать по времени – каждые N секунд, чтобы получить детальную картину перемещений.

  • 10. 5th May 2011, 12:43 // Читатель kaschey написал:

    Время вообще не хранить не надо, интервал замеров же известен. Равномерное прямолинейное движение и сидение на одном месте превращаются, грубо говоря, всего в три числа: dx, dy и “число отсчётов”.

  • 11. 5th May 2011, 12:43 // Читатель jno написал:

    Когда я был студентом, из нашего ВУЗа отчисляли за то, что студент находился рядом с Пушкинской площадью во время проведения там диссидентских мероприятий.
    Прошу заметить: не УЧАСТВОВАЛ, а просто НАХОДИЛСЯ РЯДОМ (был замечен, иначе говоря).
    Об этом (и не только) открыто и вполне официально заявлял соответствующий сотрудник при оформлении допуска.

    Это я так… к слову пришлось.