Upload
belarus-state-university
View
836
Download
5
Embed Size (px)
DESCRIPTION
Андрей Богомолов Автоматизация дистрибуции информации о наличии и цене товара для различных каналов генерации лидов в сегменте B2C
Citation preview
Автоматизация дистрибуции информациио наличии и цене товара для различных каналов генерации лидов в сегменте B2C
Андрей Богомолов, основатель проекта ERPVault.comАндрей Коротких, PI-consult.by, ведущий разработчик
Минск, 2011
обеспечить масштабируемость доставки информации о наличии, цене и характеристиках товара;обеспечить своевременность, точность, полноту, различное представление информации;SLA 99.9%, 4 ч., 24/7/365
БИЗНЕС-ЗАДАЧИ
веб сайт компании;веб сайты дочерних компаний (до 8);поисковые системы на порталах рекламных партнеров (до 64);веб-сайты компаний-партнеров с самостоятельным формированием цены, сроков поставки и ассортимента по условным группам (до 64);мобильное приложение Android;мобильное приложение iOS;online API для настольных систем дилеров.
КАНАЛЫ ГЕНЕРАЦИИ ЛИДОВ|| требования к масштабируемости
Время обновления информации <60 минутПериод обновления: 2 раза / 24 чАссортимент: ~200 тыс. наименований товараКоличество запросов: 2*10^6 / 24ч, Uniform DistributionИсполнение запроса: 0.1-4 с
ДОП. ТЕХНИЧЕСКИЕ ТРЕБОВАНИЯ
классическая распределенная система
=> наследует общепринятые требования по:performance, scalability, simplicity, modifiability, visibility, portability,reliability
ДАНО
Scalability of component interactionsGenerality of interfacesIndependent deployment of componentsIntermediary components to reduce latency, enforce security and encapsulate legacy systems
ТЕХНИЧЕСКИЕ ЦЕЛИ
SOA
vs
Client/Server
vs
Пакетный обмен
АРХИТЕКТУРА РЕАЛИЗАЦИИ
SOAP?CORBA?COM/DCOM?ReST (Representational State Transfer)????
ВЫБОР ПРОТОКОЛОВ ВЗАИМОДЕЙСТВИЯ
Client–serverStatelessCacheableLayered systemUniform interfaceHTTP-based
СВОЙСТВА ReST
Идентификация ресурсовУправление ресурсами через представлениеSelf-descriptive сообщенияHypermedia как "движок" стостояний
ПРИНЦИПЫ ПОСТРОЕНИЯ ИНТЕРФЕЙСА
POSTGETPUTDELETE
???
RESTful Web Service HTTP методы
XMLJSONGoogle Protocol BuffersTXT/CSVXHTML
???
ОБМЕН ДАННЫМИ
LAMP
vs
J2EE
???
ТЕХНИЧЕСКАЯ РЕАЛИЗАЦИЯ
веб сайт компании, веб сайты дочерних компаний – автоматическая и ручная репликация из ERP системы с различными параметрами по ассортименту, формированию цен, расположению товара;поисковые системы на порталах рекламных партнеров, веб-сайты компаний партнеров с самостоятельным формированием цены, сроков поставки и ассортимента по условным группам – виджеты с авторизацией и настройками для каждого из партнеров (ассортимент, цены, доставка и т.д.);мобильное приложение Android, мобильное приложение iOS – отображение информации через точку входа для мобильных устройств;online API для настольных систем дилеров – запрос к специальной точке доступа при помощи POST и GET, получение результата в удобном виде (XML, CSV, текст и т.д.).
ПРИМЕР ВНЕДРЕНИЯ: Моторлэнд
Все необходимые методы для отображения формы поиска, отправки запросов, получения результатов,находятся в подключаемом JavaScript-классе API.
Используется механизм AJAX, который отправляет данные поисковой формы методом GET и получает данные в виде JSON. Эти данные обрабатываются и отображаются клиенту в виде HTML.
Примеры запросов
Функция JavaScript для отправки данных поисковой формы и обработки результатов:
this.submit = function() {// Получение данных формы
var myargs = this.getFormData( 'erpvault_ucp_searchform' );
// Инициализация класса JsHttpRequest для отправки AJAX запросаvar req = new JsHttpRequest();
// Функция для обработки результатов
req.onreadystatechange = function() {if ( req.readyState == 4 ) {// Обработка ошибок и вывод результатов// …
}}
// Отправка запроса
req.open( 'GET', this.url, true );req.send( myargs );
}
Примеры запросов
Данные отправляется методом GET, массив имеет вид:
Array( [auto_brand] => 6 [auto_model] => 160 [part_type] => 5...)
Заданы параметры для поиска запчастей по марке, модели и названию запчасти (индексы берутся из элементов SELECT поисковой формы).
Примеры передачи данных
Данные ответов генерируются на серверных компонентах системы дистрибуции контента (PHP). В соответствии с полученными параметрами делается выборка из базы данных MySQL, полученные данные обрабатываются, преобразуются в JSON и передаются во Frontend.Пример кода PHP (утрировано для облегчения восприятия):// Инициализация класса JsHttpRequest$JsHttpRequest = new JsHttpRequest( );// Обработка параметров GET, идентификация партнера, получение параметров…// Запрос к БД$sql = "SELECT parts.* FROM parts WHERE true";$sql .= " AND auto_brand =".$db->escape( $_GET['auto_brand'] ).";$sql .= " AND auto_model =".$db->escape( $_GET[auto_model'] ).";$sql .= " AND part_type =".$db->escape( $_GET['part_type'] ).";if ( $tbl = $db -> Exec ( $sql ) )while ( $res = $tbl -> FetchAssoc() ) {
// Обработка данных// ..
}}
// Преобразование результатов в JSON и отправка во Frontend//..
На выходе мы имеем данные в формате JSON, которые класс JavaScript получает, обрабатывает и выводит клиенту.
Примеры ответов
ПРИМЕР ИМПЛЕМЕНТАЦИИ: виджет
Для вызова виджета используется JavaScript-код на странице клиента. Также можно задать индивидуальные CSS-стили для отображения формы поиска и результатов и элемент HTML, в котором будет отображаться содержимое виджета.
При вызове виджета можно указать уникальный ключ идентификации партнера, кодировку для генерации контента и т.д.
ПРИМЕР ИМПЛЕМЕНТАЦИИ: виджет
Для вызова виджета используется JavaScript-код на странице клиента. Также можно задать индивидуальные CSS-стили для отображения формы поиска и результатов и элемент HTML, в котором будет отображаться содержимое виджета.
При вызове виджета можно указать уникальный ключ идентификации партнера, кодировку для генерации контента и т.д.
ПРИМЕР ИМПЛЕМЕНТАЦИИ: виджет<style>.erpvault_ucp_hidden{ display: none; }.erpvault_ucp_parts_title{ margin: 0px 0px 15px 0px; }.erpvault_ucp_searchform_table{ background-color: #deebfb; }.erpvault_ucp_searchform_td1{ padding: 5px; }.erpvault_ucp_searchform_td2{ padding: 5px; }.erpvault_ucp_searchform_footer{ padding: 5px; }.erpvault_ucp_searchform_submit{ font-size: 12px; }.erpvault_ucp_searchform_cancel{ font-size: 12px; }.erpvault_ucp_search_results_div{ margin: 15px 0px 20px 0px; }.erpvault_ucp_err{ color: red;}.erpvault_ucp_parts_table{ width: 100%; border-collapse: collapse; }.erpvault_ucp_parts_th{ border: 1px solid #dddddd; padding: 2px; background-color: #f2f2f2; }.erpvault_ucp_parts_td{ border: 1px solid #dddddd; padding: 2px; }.erpvault_ucp_loading_img { margin: 0px 3px 0px 3px; vertical-align: middle; }.erpvault_ucp_footer { margin: 15px 0px 15px 0px; color: #666666; }
</style>
<div id="erpvaultUcpSearchDiv"></div>
<script language="JavaScript" src="http://www.motorland.by/search_api/" type="text/javascript"></script>
Примеры GUI
Примеры GUI
Примеры каталога уникальных URL
Примеры каталога уникальных URL
ПРИМЕР МОБИЛЬНОГО ПРИЛОЖЕНИЯПлатформа: Android
Motorland – мобильное приложение для поиска автозапчастей и двигателей б/у
Актуальная информация о наличии и цене
Более 180 000 ассортиментных позиций в наличии на складах в г. Минске и в товаропроводящей сети в Республике Беларусь
Ассортимент обновляется 2 раза в день из системы планирования ресурсов предприятия ERPVault™
Функциональные возможности:Поиск запчастей
Публичный стол заказов
Запрос в стол заказов
Где купить? – Интерактивная карта
Технические особенности
Интерфейсы приложения оптимизированы для работы на современныхмобильных устройствах на базе ОС Android версии 1.6 с HVGA (320x480), что позволяет охватить наибольшее количество пользователейВозможна работа приложения с другими версиями ОС Android (1.5+) и распространенными разрешениями экрана с оптической плотностью ldpi (120), mdpi (160), hdpi (240)Размещение элементов управления, скорость обработки и представление информации позволяет за минимальное время получать необходимую информацию о наличии и цене автозапчастей б/у, интерактивно устранять информационную асимметрию, исторически обусловленную свойствами товара и обычаями делового оборота в данном сегменте рынкаПрименяется эффективная технология обмена данныхСерверная часть приложения позволяет держать высокую нагрузку, построена на собственной архитектуре "облачных" вычисленийПриложение использует такие технологические особенности мобильных устройств, как: сенсорный дисплей, GPS-приемникТщательно тестировано и рекомендовано для работы в 3G|3G+ сетях Velcom
ПРИЛОЖЕНИЕ В РАБОТЕ
Результаты поиска
Показываются только запчасти в наличииПодробные сведения о запчастиЦена (при наличии >5 единиц)Прямой телефон продавцаВозможность сделать звонок прямо из приложения при нажатии на номер телефонаУдобный скроллинг списка, ориентированный на возможности сенсорного экранаУдобная навигация для частого и быстрого использования
ПРИМЕР МОБИЛЬНОГО ПРИЛОЖЕНИЯ iOS
ЭКОНОМИЧЕСКИЙ ЭФФЕКТ
увеличение количества лидов с2 тыс. до 30-100 тыс. /24 часаAVG Цена 1 лида < 0.005$ при стоимости высокочастотной контекстной рекламы в yandex > 0.1$отсутствие роста постоянных затрат, связанных с поддержкой инфраструктуры и персоналом
TODO
Уровень универсальной абстракции дескрипторов товараВозможность масштабируемой записи, не только получение контентаВстроенные средства для SEO и интернет-маркетинга
ВОПРОСЫ?
СПАСИБО ЗА ВНИМАНИЕ