Pull to refresh

Autopics (версия 2.0)

Reading time7 min
Views787
Представляем вашему вниманию вторую версию проекта Autopics, выпущенную три месяца назад и на данный момент прошедшую первичную обкатку.




Содержание

  1. Общая информация
  2. Техническая и программная реализация
  3. Интерфейсные решения
  4. Аренда платформы
  5. Сотрудничество

Общая информация


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

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

Немного статистики:
  • Количество альбомов ~ 3600
  • Количество фотографий ~73000
  • Количество модификаций с ттх ~ 25000

Основной новый добавленный функционал по сравнению с предыдущей версией сайта
  1. Англоязычная версия проекта, по сути это отдельный независимый проект для глобального рынка.
  2. Введены индикаторы и контрольные лампы (аналогично приборной панели автомобиля).
  3. Поиск с мгновенными результатами.
  4. Возможность самостоятельного ресайза картинки для получения нужного размера и ссылки на нее.
  5. Представление таблицы с техническими характеристиками в виде картинки для удобства вставки ее на сторонние ресурсы.
  6. Введены группы одноклассников для модельных рядов. Группы сформированы с учетом размерных классов автомобилей, их цены и престижности.
  7. Радио. Работает аналогично магнитоле в автомобиле. Имеет функции автоматического поиска, сохранения радиостанции на нужной кнопке, регулировки звука. Репертуар представлен российскими радиостанциями в виде обновляемого топа 100 композиций, играющих на этих станциях. Для глобальной версии подключены популярные онлайн радиостанции.

Планы на ближайшее время
  1. Мобильные приложения для основных платформ (в работе).
  2. Избранные альбомы пользователей.
  3. Собственные альбомы пользователей.
  4. Нормальные профайлы пользователей.
  5. Комментарии к альбомам.
  6. Выставление оценок альбомам.
  7. Сообщества пользователей.
  8. Альтернативный вид отображения галерей.
  9. Сравнение автомобилей (фотографии, ттх).
  10. Расширенный параметрический поиск.
  11. Официальные дилеры с привязкой к местоположению пользователя.
  12. Средние цены на автомобили в виде справочной информации с привязкой к местоположению пользователя.

Техническая и программная реализация


Система спроектирована по сервис-ориентированной архитектуре (SOA) и нацелена на возможность работы по B2B схеме. При реализации использованы преимущественно программные продукты Microsoft, весь код написан с использованием Microsoft .NET Framework 4 на языке C#. Отдельное внимание уделено вопросам отказоустойчивости и распределения нагрузки. На рисунке ниже представлена блок-схема системы.

Центральным компонентом системы является XML SOAP сервис каталога, обеспечивающий многопользовательский доступ с авторизацией к иерархически-структурированным данным произвольного типа. Дополнительно каталог имеет средства синхронизации с другими экземплярами каталога в режиме реального времени, что позволяет использовать его в составе NLB кластера. Исходный код каталога позволяет использовать его как на стороне сервера, так и на стороне клиента (как Windows, так и Silverlight), отличие лишь в том, что на стороне сервера провайдером данных является SQL сервер, а на стороне клиента – сервис каталога. Все это дает возможность использовать модуль каталога в качестве основного кэша данных во всех приложениях.

Другим немаловажным модулем является модуль безопасности, который, по сути, является Http модулем IIS и используется во всех компонентах с доступом по http(s). Этот модуль обеспечивает аутентификацию, авторизацию, реврайтинг http запросов, а также их логирование и обработку ошибок. Настройки модуля (политики авторизации) для всех компонентов независимы и хранятся в каталоге безопасности. Для доступа к сервисам каталогов используется HTTPS транспорт с аутентификацией по сертификату клиента. Для этой цели в системе развернут Certification Authority. Авторизация доступа осуществляется в соответствии с настраиваемыми политиками авторизации и ACL тех ветвей дерева каталога, к которым осуществляется доступ.

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

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

Дополнительно в системе имеется XML REST сервис определения местонахождения по IP адресу, построенный на основе свободно распространяемых баз данных (geobaza.ru, ipgeobase.ru, www.maxmind.com (Lite)). Сервис обеспечивает автоматическое обновление из указанных источников. Используется в некоторых политиках безопасности, при логировании статистики запросов и при автоматическом определении единиц измерения (метры/дюймы).

Все веб-сайты (autopics.ru, auto-pics.com, сайт администрирования и сайт подготовки контента) используют ASP.NET 4.0 и AJAX Control Toolkit для управления рендерингом XHTML страниц и клиентских javascript контролов. Доступ к данным, осуществляется посредством клиентского модуля каталога, подключающегося к сервису каталога. В целях обеспечения работы в NLB кластере в ASP.NET приложениях используется SQL провайдер сессионного контекста.

Все сервисы и сайты работают под управлением IIS7. Для обеспечения надежности и распределения нагрузки используется NLB кластер с двумя серверами Aplication Request Routing (ARR) и веб-фермой из двух серверов приложений (см. рисунок ниже).

Для постоянного хранения данных используется три MS SQL сервера, включенных по схеме зеркалирования в режиме “Synchronous high safety with automatic failover”.

Вся система располагается на серверах под управлением MS Server 2008 Hyper-V, активно используется виртуализация. Есть мысли по частичному переходу в Azure, подготовка для этого проведена.


Интерфейсные решения


Быстрый предпросмотр альбома


При наведении курсора на превью альбома, в виде анимации происходит смена изображений, содержащихся в этом альбоме.

Мгновенные результаты поиска


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

Наглядный выбор размеров изображений


При нажатии на стрелку вправо, становятся доступны для выбора все размеры для данного изображения, сгруппированные по соотношению сторон.

Ресайз фотографий на лету


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

Вертикальные закладки


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

Приборная панель


Некоторые функции сайта мы попробовали стилизовать под приборную панель, находящуюся в каждом реальном автомобиле. Одометр “крутится” от вашей активности на сайте. В дальнейшем на него будут влиять множество факторов, и он будет являться своего рода мерой лояльности и доверия к пользователю. Индикатор кол-ва топлива наглядно показывает оставшееся количество фотографий, которое вы можете посмотреть без ограничений. Еще есть сигнальные пиктограммы, но они пока еще не все задействованы. В дальнейшем функционал приборной панели будет расширяться.

Радио


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


Аренда платформы


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

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

Стоимость

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


Сотрудничество


Мы стремимся к сотрудничеству с другими проектами и сервисами. У нас уже есть API для работы с нашим каталогом (правда пока он практически недокументирован). Если у вас есть мысли по использованию нашего каталога в свои проектах, то мы с радостью их выслушаем и, возможно, договоримся о сотрудничестве. На начальных этапах, возможна безвозмездная работа с сервисом, далее рассматриваются варианты с ежемесячной оплатой в зависимости от интенсивности использования, бартер, ссылки на нас и т.п.

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




Профита у нас пока что нет, зато есть большое удовлетворение от проделанной работы и желание развиваться дальше.

Спасибо всем за внимание!
Tags:
Hubs:
Total votes 52: ↑50 and ↓2+48
Comments107

Articles