Материал: Разработка сервиса агрегации открытых данных и данных из социальных сетей

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

В результате работы сервиса необходимо адаптировать каждый источник данных в универсальный формат. Во-первых, необходимо корректно конвертировать время публикации сообщения. Самым распространенным форматом времени в интернете является «Unix Timestamp», который представляет собой число секунд, прошедших с 1 января 1970 года. Его широкое распространение обуславливает простота формата, так как время выражено одним числом. Тем не менее, он не учитывает часовые пояса в явном виде, поэтому среди разработчиков принято указывать время по Гринвичу, то есть с нулевым сдвигом. Однако социальная сеть Twitter не поддерживает такой формат и передает время в текстовом формате UTC [18]. В сообщении от социальной сети можно получить следующее:

"created_at":"Wed Apr 08 13:08:45 +0000 2017"

В результате сервис должен автоматически приводить время публикации сообщения из разных социальных сетей к общему виду формата Unix Timestamp. Также у всех социальных сетей разные форматы отображения геолокации пользователя. На примере Twitter можно показать, какой вид имеет сообщение от этой сети [18]:

"place":

{

"attributes":{},

"bounding_box":

{

"coordinates":

[[

[-77.119759,38.791645],

[-76.909393,38.791645],

[-76.909393,38.995548],

[-77.119759,38.995548]

]],

"type":"Polygon"

},

"country":"United States",

"country_code":"US",

"full_name":"Washington, DC",

"id":"01fbe706f872cb32",

"name":"Washington",

"place_type":"city",

"url": "#"897146.files/image001.jpg">

Рисунок 1. Архитектура системы

ГЛАВА 3. РЕЗУЛЬТАТЫ


3.1 ОПИСАНИЕ И АНАЛИЗ ПОЛУЧЕННЫХ РЕЗУЛЬТАТОВ


После проведенного анализа предметной области и реализации системы, был разработан сервис агрегации открытых данных и данных из социальных сетей. В его основе легла техника визуализации данных с помощью тепловой карты. Сервис имеет микросервисную архитектуру, что означает наличие нескольких независимых программных модулей, работающих параллельно и составляющих единую систему.

Общий вид сервиса представляет собой веб-сайт, центральной сущностью которого является тепловая карта активности пользователей социальных сетей. Стоит отметить, что практическую значимость сервиса сложно переоценить. Карта может показывать, какие участки города Москвы чаще всего оказываются в центре внимания среди пользователей социальных сетей. Глядя на карту, можно сказать, какие достопримечательности и объекты всегда пользуются спросом, по количеству сообщений и постов с меткой о расположении, сделанных в этих местах. Еще одним применением сервиса может быть выявление явных статистических отклонений от среднего количества сообщений в каждом конкретном объекте из набора открытых данных. Разберем подробнее этот способ на примере праздника Дня победы 9 мая. На этом случае стоит остановиться, поскольку он является наглядным примером того, как визуализация данных помогает выявлять резкие всплески активности пользователей. На рис. 3 изображена активность пользователей социальных сетей 9 мая 2017 года в период с 22:00 до 23:59. На изображении четко видно, что в «Парке Победы» на Поклонной горе было сделано множество постов в социальных сетях. Это объясняется тем, что городские власти в честь праздника устраивали салют в нескольких точках Москвы, в частности в этом месте.

Скорее всего, данный всплеск активности связан с тем, что люди хотели запечатлеть салют в честь Дня Победы и поделиться своим постом со своими друзьями в сети. Тем не менее, это стоит проверить. На следующий день, 10 мая, ровно в точно такой же временной период было установлено, что количество сообщений с географической меткой из этого места было в 17 раз меньше. Дело в том, что, судя по собранным данным, это обычная активность в это время суток в этом месте. Количество постов здесь колеблется в среднем от 30 до 50 единиц. Вероятнее всего, москвичи и гости столицы делятся здесь впечатлениями непосредственно о самом парке. В случае же салюта, такое событие собирает множество людей, но интерес для них представляет не сам парк, а именно особенное событие в нем.

Еще одним способом применения данного сервиса является тот факт, что его можно использовать для выявления корреляции активности пользователей с месторасположением объектов из набора открытых данных. Это можно объяснить на примере парков и скверов. В Москве существуют более 650 официальных парковых территорий. Из них лишь несколько являются действительно крупными и популярными среди посетителей. В частности, к ним можно отнести ЦПКиО им. Горького и Измайловский парк, которые ежедневно собирают в себе тысячи людей. Тем не менее, для проявления пользовательской активности важен не размер парковых территорий, а то, какие впечатления можно оттуда вынести. Так, парк Царицыно ежедневно открыт для всех посетителей. Судя по тепловой карте сервиса и среднему значению количества сообщений, он вызывает больше эмоций, нежели Измайловский парк. Скорее всего, это вызвано тем, что там располагается красивый и ухоженный пруд, а также Большой дворец, который изначально был спроектирован для царицы в 18 веке, а сейчас является музеем. Очевидно, наличие таких отличительных особенностью привлекает посетителей, а также вызывает у них желание поделиться своими фотографиями или мыслями на этот счет. В этом случае сервис даст понять, какие парки и скверы люди находя наиболее интересными. С другой стороны, это также дает понимание менее популярным паркам, что для того, чтобы там было больше посетителей и пользовательской активности, необходимо завлекать людей с помощью необычных арт-объектов, памятников и прочих заслуживающих внимания вещей.

Более того, разработанный сервис позволяет изучать такое понятие, как сезонность. Дело в том, что пользователи проявляют свою активность в социальных сетях крайне неравномерно по времени и по месторасположению. Разберем этот случай на примере тех же парков и скверов. Рассматривая суточную сезонность на тепловой карте, можно заметить, что количество постов в парках в ночное и утреннее время крайне мало. В то время как это количество постепенно возрастает в течение дня, вечером оно достигает своего суточного максимального значения и к ночи опять идет на спад. Тем не менее, существует еще и недельная сезонность, которая во многом появляется из-за наличия будних и выходных дней. Стоит отметить, что пользовательская активность в выходные дни значительно превышает в остальные дни. Такая сезонность обусловлена тем, что множество людей в свободные от работы или учебы дни посещают различного рода заведения или парки, где можно отдохнуть и весело провести время. Таким образом, можно сказать, что сервис способен также и выявлять сезонность пользовательской активности среди объектов из набора открытых данных.

3.2 ОБОБЩЕНИЕ РЕЗУЛЬТАТОВ И ПРАКТИЧЕСКИЕ РЕКОМЕНДАЦИИ


Помимо выполнения всех поставленных задач, попутно были решены также и задачи, которые не были поставлены изначально. К ним относятся такие результаты, которые вытекают из выбора гибких и современных технологий, которым сейчас стараются придерживаться многие передовые корпорации. Речь идет о кроссплатформенной разработке, а именно о языке программирования Java. За счет использования этого языка в создании сервиса, удалось достичь независимости от платформы, на котором необходимо развертывать приложения. Благодаря этому, становится возможным запускать сервис на любой операционной системе, где была предустановлена виртуальная машина JRE (Java Runtime Environment). Помимо этого, микросервисная архитектура позволяет выделять отдельные независимые программные компоненты. Из этого следует, что каждый программный модуль может быть запущен более чем в одном экземпляре. Таким образом, становится возможным горизонтальное масштабирование системы. Другими словами, с ростом количества посетителей на сайт или с ростом количества сообщений из социальных сетей можно почти линейно увеличивать вычислительные мощности. Более того, из-за того, что в системе выделены отдельные модули, становится простым процесс их контейнеризации. В качестве этой технологии можно выбрать самый популярный фреймворк для создания и запуска контейнером - Docker. Все это сделало данных сервис более гибким к развертыванию и устойчивым к нагрузкам, что является важной деталью для систем мониторинга в реальном времени.

На данный момент в сервисе реализованы клиенты для двух социальных сетей: Twitter и Instagram. Это одни из самых популярных на сегодняшний день платформ в мире. Они имеют развитый и технически сложный программный интерфейс, позволяющие выстраивать гибкие запросы к своим базам данных. Интеграция с другими сетями была осложнена рядом факторов, которые ранее уже были описаны в данной работе. Тем не менее, ограничение клиентов было вызвано только ограничением по времени написания сервиса. Стоит отметить, что количество клиентов под разные социальные сети является хорошей точкой роста и развития для сервиса. Дело в том, что чем больше сообщений будет обрабатывать и сервис агрегации, тем точнее должна получаться визуализация активности пользователей. В последствие можно будет добавить другие социальные сети, например, мирового лидера в лице Facebook и более успешного игрока на российском рынке - Вконтакте.

Использование современных технологий разработки оставляет возможность для расширения функционала. Есть масса идей, которые позволят качественно улучшить сервис и развить в нем свой потенциал. Каждый день или любой другой отрезок времени отслеживать, где пользователи наиболее активно себя проявляют в социальных сетях. Далее с помощью загруженных наборов открытых данных можно сопоставлять их географическое положение и определять, какой объект является самым популярным на это время. Это может послужить своего рода рекомендательной системой для отслеживания трендов посещений пользователями различных заведений, музеев или выставок.

3.3 НОВИЗНА И ПРАКТИЧЕСКАЯ ЗНАЧИМОСТЬ ИССЛЕДОВАНИЯ


Отличительной особенностью среди всех сервисов на основе открытых данных является тот факт, что визуализация информации является динамической. Это достигается за счет агрегации потоков данных из социальных сетей в реальном времени. Недостатком сервисов, которые основываются только лишь на открытых данных, является их редкое обновление на порталах. Как правило, такие наборы данных статические и модифицируются крайне редко. Это влечет за собой такие последствия, как проблемы с удержанием интернет аудитории у веб-ресурса. Большинство пользователей, которые заходят на подобные сайты, редко возвращаются или пользуются им повторно. Это объясняется тем, что сервис был спроектирован таким образом, чтобы обратить внимание на какую-либо проблему или явление. После того, как люди, пришедшие на интернет портал, изучили поднятый вопрос, необходимость в нем сразу отпадает. Примером может послужить проект, участвовавший в хакатоне по открытым данным. Проект заключается в том, чтобы показать общественности и властям, что некоторые велодорожки были проложены не там, где движутся велосипедисты в реальной жизни. Такие проекты можно считать одноразовыми, поскольку они полностью статичны. После посещения такого сайта интерес к данной теме теряется, а в случае повторного посещения ресурса пользователь не обнаружит ничего нового.

Иначе дело обстоит с сервисом агрегации данных. Дело в том, что сама природа социальных сетей автоматически избавляет данный сервис от подобных недостатков. Благодаря тому, что все наполнение сетей целиком и полностью генерируется пользователями, такая экосистема сразу становится динамической. Соответственно, все сервисы, которые используют пользовательскую активность в своей работе, также становятся динамическими. Все это ведет к тому, что в каждый момент времени состояние сервиса уникально. Именно это и дает преимущество перед статическими веб ресурсами, ограниченных определенным набором открытых данных. Дело в том, что с точки зрения пользователей гораздо выше вероятность повторного посещения подобного рода сайтов, поскольку они не знают наверняка, что там увидят. Изучение активности пользователей в привязке к наборам открытых данных теперь может быть растянуто по времени. Другими словами, можно выявлять значимые тренды поведения пользователей в социальных сетях, определять связь между местами скопления пользователей и объектами города, такими как парки, скверы, места общественного питания и прочие. На момент написания работы разработанный сервис не имеет аналогов.


ЗАКЛЮЧЕНИЕ


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

Главной особенностью данного проекта является тот факт, что с помощью сервиса можно выявлять зависимости между географическим положением пользовательской активности, ее интенсивностью и объектами из набора открытых данных. Так, благодаря интуитивно понятной визуализации вышеперечисленных данных, можно анализировать места скопления людей, которые являются пользователями социальных сетей. С помощью данного сервиса можно выявлять закономерности в расположении объектов города, например парков и музеев, и пользовательской активностью. Благодаря ему можно понять, какие места пользуются спросом у людей, а какие являются непопулярными. Например, каким паркам, помимо ухода за территорией, стоит обратить внимание на наполнение запоминающимися объектами. К ним можно отнести арт-объекты или памятники. Все это будет вести к повышению вовлеченности посетителей, что в свою очередь приведет к их желанию поделиться своими впечатлениями со своими друзьями и знакомыми в социальных сетях. Более того, данный сервис поможет выявить такое явление как сезонность. Такая информация может быть полезна во многих сферах жизни, например, представителям рекламных агентств или сетей общественного питания.

Также следует обратить внимание, что в связи с использованием самых современных инструментов и технологий индустрии разработки программного обеспечения, разработанный сервис получился очень гибким в плане поддержки и развертывания. Дело в том, что система является независимой от платформы. Другими словами, она может выполняться на любой операционной системе, где есть виртуальная машина Java. Также в виду использования микросервисной архитектуры, отдельные независимые сервисы легко поддаются контейнеризации. Такой подход сейчас стараются поддерживать все передовые корпорации, занимающиеся разработкой программного обеспечения и облачными технологиями. Самым распространенным способом является использование технологии Docker, позволяющей без проблем производить горизонтальное масштабирование приложений и удобное администрирование систем.

Несмотря на то, что сервис представляет собой готовый к использованию программный продукт, существует несколько способов для его улучшения. В первую очередь, в систему может быть добавлена автоматическая рекомендательная система, которая способна распознавать тренды активности пользователей в социальных сетях, сопоставлять с наборами открытых данных и делать выводы о том, какие места в данный момент пользуются популярностью. Также стоит отметить, что с помощью добавления в систему новых клиентов для других социальны сетей, точность работы сервиса должна увеличиться. Это можно объяснить тем, что такая тепловая карта будет еще более показательная, а визуализация даст наиболее полную картину. Таким образом, у проекта существует потенциал для развития и роста.

СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ


1.   Boyd D., Ellison N.B. Social Network sites: Definition, history and scholarship // Journal of Computer-Mediated Communication, 2011, №11.