Страничка Мастера

Следующий шаг социальных сетей. Манифест выхода в метасистему

Я помню, как выглядело программирование в эпоху «до Windows». Даже после революции языков программирования (которая шла в несколько этапов, из них я видел только последний – переход к ООП) оно было крайне низкопродуктивным. В первую очередь, из-за необходимости в каждом проекте тратить значительное время на разработку велосипедов пользовательского интерфейса – графического ли, текстового ли – не столь важно в данном контексте.

А потом появился Windows API, и стало возможно тратить время не на отладку поведения курсора, нажатия кнопки и прочих деталей синтаксического, а то и лексического уровня, а на осмысление и проектирование User Experience. Уровень пользовательских интерфейсов революционно вырос, порог вхождения наивного пользователя в возможность сделать что-то для себя полезное с помощью наших программных продуктов – упал.

Результатом стало внедрение информационных технологий во все возможные сферы деятельности и возможность использования программных средств всеми – от детсадовского ребёнка до армейского интенданта. В информационную отрасль пришло огромное количество денег и людей, в результате чего рост возможностей железа непрерывно поддерживался со стороны индустрии разработки софта и обеспечивался массовым спросом.

Со времени данной революции в разработке прошло более 20 лет, некоторые рубежи были достигнуты эволюционно, некоторые концепции оказались отторгнуты. В результате, разработка не стала менее ресурсоёмким делом – но позволила тратить ресурсы на более осмысленные вещи и обращать внимание на более тонкие материи взаимодействия.

Но за прошедшее время выявился новый комплекс типовых проблем, решение которых занимает традиционно значительное время, но, при этом, имеет единообразный характер и приводит к сходным результатам просто в силу семантического подобия.

Представляется, что революционных результатов можно достичь, выделив типовые конструкции семантического уровня, присутствующие в значительной части разрабатываемых в настоящее время программных продуктов, систематизировав и стандартизировав их, и «обернув» в открытые интерфейсы прикладного программирования. Отдельные попытки сделать шаг в данном направлении делались, однако для того, чтобы произвести полноценную революцию, сопоставимую с революцией интерфейсных API в 90е годы, таким попыткам, очевидно, недоставало комплексности.

В качестве основного набора типовых подсистем, которые предлагается стандартизировать и вынести в открытый API, представляются пакеты «пользовательской» и «межпользовательской» функциональности:

  • регистрация/авторизация;
  • обмен сообщениями;
  • тэгирование и классификация (например, интересы пользователя);
  • контакты пользователя;
  • объединение пользователей в группы;
  • напоминания и оповещения с трансляцией в различные каналы доставки;
  • оплата/биллинг (со вводом и выводом);
  • мероприятия (включая приглашения и запросы на участие);
  • публикация коротких материалов с текстом, фотографиями и видео;
  • перепубликация.

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

Средством продвижения революционного API в прошлый раз стала специально под него созданная операционная система. Из того, что в предлагаемой системе через API должны происходить взаимодействия пользователей, «носителем» нового API должна являться социальная сеть. В 2011-2012 году можно было предположить, что по данному пути будет развиваться Facebook, но они полностью дискредитировали свой API в качестве универсальной платформы приложений ещё до того, как получили массовую поддержку независимых разработчиков, и упустили свой шанс.

Вместе с тем, в последующие годы новых попыток не делалось, и, более того, представляется весьма ограниченным набор акторов, ментально способных выдержать подобную концепцию – очевидно, что в силу существования у них собственных операционных систем, на неё не способны Apple и Google. Microsoft уже являлся автором революции подобного масштаба в прошлом и, потому, вряд ли сможет что-то подобное делать ещё раз, Facebook истратил свою попытку.

В связи с тем, что в настоящее время Facebook ощутимо теряет популярность и в качестве традиционной социальной сети, и единой альтернативы ему нет, как представляется сейчас крайне удачное время попытаться развернуть альтернативную социальную сеть, используя в качестве «разгонного модуля», например, один из популярных мессенджеров, либо одну из глобальных торговых систем.
Как представляется, пользовательский интерфейс собственно приложения социальной сети должен строиться по модульному принципу с возможность замены большинства пользовательских функций сторонними приложениями по желанию пользователя. То есть, если пользователю не нравится, например, «штатная» лента – он может найти ленту от альтернативных разработчиков (например, с более гибким дизайном, дополнительными возможностями фильтрации, управляемым набором «лайков», и тому подобным), использующую тот же набор данных и, скорее всего, реализованную на тех же технических принципах.

Принципиальным ограничением для независимых разработчиков, по-видимому, будет являться возможность публиковать только рекламу, получаемую от «штатного» диспетчера рекламы, либо от сторонних сертифицированных диспетчеров.

Также требует осмысления вопрос персональных данных в экосистеме. К нему возможны, как минимум, два подхода («если уж новый мир всё равно прозрачен, давайте не будем всё усложнять» или «существует централизованный оператор хранения персональных данных и репутации, который может на определённых условиях их делегировать»), и выбор между ними будет требовать дополнительного обсуждения и взвешенного подхода.

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

  • корпоративные приложения (расширенные возможности публикации, системы взаимодействия, презентации, геопозиционирование/картография, возможно - тасктрекер);
  • образовательные системы (план мероприятий, видеоконференции, постановка-приём заданий, учебный план);
  • финансовые приложения (блокчейн-хэширование, токенизация, конвертация, краудфандинг, возможно - микро-ICO…);
  • игры (таблицы достижений, игровые чаты, сценарии, гексагональные карты – однако позиционирование данной платформы для игр должно быть отложено на более поздний период относительно деловых систем).

Предполагаемая технологическая платформа структурно должна иметь три уровня программных средств и два слоя протоколов, представленных на прилагаемой схеме:
1. Базовый уровень: ядро и сервисные функции (содержащий ключевые и общеупотребительные сервисные функции платформы)
2. Уровень приложений (содержащий «штатные» и альтернативные приложения)
3. Прикладной уровень (уровень, с которым взаимодействуют пользователи).

Приложения для использования их пользователем либо агрегируются в «штатных» пользовательских средствах, либо «обёртываются» и используются в составе программных средств или даже сайтов сторонней разработки. Правила использования («обёртывания») приложений регулируются протоколами встраивания. Одной из типовых «обёрток» должен являться интерфейс встраивания приложения в сторонний сайт по принципу виджета.

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

Монетизация экосистемы возможна по двум основным каналам:

  • реклама (основным ограничением для использования является требование, что рекламу можно ставить только из единого диспетчера рекламы, либо платное лицензирование этой функции);
  • комиссия с операций в системе биллинга.

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

Кроме того, есть наработки по пользовательскому интерфейсу базовых приложений экосистемы, при наличии заинтересованности они также могут быть представлены.

Как представляется, в настоящий момент разработка и развёртывание экосистемы социальной сети нового поколения является крайне своевременным мероприятием и при разумной политике продвижения она должна найти поддержку как пользователей, так и независимых разработчиков.

30 марта 2020 года

Примечания и приложения

Упоминание в схемах именно телеграма объясняется тем, что, по некоторым соображениям, концепция писалась под углублённое взаимодействие именно с Телеграмом. По факту следует читать "мессенджер". Схемы можно посмотреть подробнее.

приложение 3 - пояснения к схемам

Показать полный набор взаимосвязей в архитектуре подобного масштаба на такой схеме затруднительно в виду их обилия и ситуативности. Потому, для примера, выбрано одно из приложений распространённого назначения, реализующее фреймворк учебного заведения локального уровня, условно именуемое «Школа», под которым может пониматься и собственно школа, и что-то из области внешкольного образования, и какие-нибудь курсы фотографии или английского языка. Условно говоря, предполагаем, что приложение, работающее в контексте Социальной сети, реализует примерно следующие функции:

  • расписание;
  • журнал/дневник;
  • запись в группу;
  • форумы;
  • приём заданий;
  • объявления/анонсы мероприятий;
  • оповещение;
  • прохождение тестов;
  • рейтинг/статистика/отчёты.

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

На схеме голубым показаны модули, контролируемые администрацией Соцсети, другими цветами – сторонние модули, в частности, густым зелёным – модули, контролируемые разработчиками стороннего приложения, приводимого в пример.

Кодирование связей цветом:

  • синим – для конфигурации пользователя, использующего штатное приложение;
  • зелёным – для конфигурации пользователя, использующего стороннее приложение;
  • фиолетовым – работающие в любой из двух конфигураций;
  • оранжевым – работающие вне контекста пользовательских конфигураций

© Алексей Долматов 2008
Написать письмо