На главную
Обо мне
Меня зовут: Николай Воронков
Email: job@voronkov.org
Skype: nik-voronkov
Работаю: Freelancer
Мое портфолио (по категориям)
MS SQL / Oracle / mySQL
ASP.NET / Silverlight
C# / PHP
Adobe InDesign (client/server)
SSRS / SSAS
Wordpress

Проект OMS

Заказчик: Компания “НАДОМ”, член OTTO Group Россия
Тип проекта: Внутренний корпоративный проект для департамента маркетинга
Моя позиция в проекте:
  • Архитектор баз данных
  • Руководитель разработки ПО
  • Архитектор программных решений
  • Операционные системы: Windows, Mac OS
    Базы данных: mySQL, Oracle
    Языки: C#, PHP, SQL, Adobe JavaScript, XML
    Технологии: Silverlight, Adobe InDesign (client, server), SOAP, PHP image libraries, Microsoft Reporting Services
    Язык интерфейса: Английский

    [+]
    Более подробно о моем участии в проекте для российских работодателей …

    OMS (Offer Management System) система для создания каталогов товаров в формате для печати (Adobe InDesign).
    Разработан в виде двух клиентских приложений для броузера и издательского продукта Adobe InDesign, и двух обслуживающих их серверных частей: базы данных mySQL (взаимодействие через PHP) и сервера Adobe InDesign (взаимодействие через SOAP и Adobe JavaScript).

    Включает в себя:

  • Графический редактор, позволяющий создавать презентации, состоящие из изображений, текстовых блоков, внутренних переменных и других презентаций.
  • Базу данных (mySQL) для хранения предложений (offers) и товаров, входящих в них, которая обновляется из базы данных CRM-системы компании (Oracle). Также в базе данных хранятся сведения о каталогах и презентациях.
  • Систему построения шаблонов каталогов и сами каталоги, которые могут быть реплицированы на сервер Adobe InDesign с помощью технологии SOAP (PHP – Adobe JavaScript).
  • Набор скриптов для клиентских программ Adobe InDesign (Adobe JavaScript), которые позволяют подключаться к базе данных товаров и производить обновление цен и описаний с помощью внутренних переменных.

    Уважаемые господа, все копии экрана, которые вы видите на этой странице относятся к тестовой версии проекта.

    Проект состоит из двух логических частей: интерактивной и пакетной.

    Пакетная часть отвечает за автоматическую обработку данных и объектов проекта:

  • Обслуживание хранилища каталогов и шаблонов для них(snippets Adobe InDesign)
  • Обмен данными с CRM системой компании для обновления информации о товарных предложениях (offers)
  • Обновление базы данных каталогов с целью получения их previews для отображения в интерфейсах клиентской части
  • Репликация изображений товаров из общих папок в папки с каталогами и регистрацию их в базе данных
  • Формирование файлов в формате Adobe InDesign на основе презентаций, сформированных на клиентской части
    Основным компонентом пакетной части является набор PHP программ, которые запускаются под операционной системой по расписанию. Они выполняют все действия, которые описаны выше. В процессе работы они устанавливают соединения с базой проекта (mySQL) и с базой CRM системы компании (Oracle).

    Вторым компонентом пакетной части является сервер Adobe InDesign, который управляется с помощью протокола SOAP из пакетных PHP программ. На стороне сервера используется язык Adobe JavaScript. Большая часть заданий выполняется по расписанию. Сервер умеет выполнять с документами в формате InDesign практически все операции, которые существуют в десктопоном приложении. Приложения Adobe InDesign оперируют документами с помощью развитой объектной модели, которая включает в себя представление в формате XML. Сервер InDesign в пакетной части используется для преобразования файлов в формате InDesign (IDMS, INDD) в формат JPEG, которые используются в графическом редакторе проекта для создания презентаций.

    Интерактивный блок проекта состоит из двух частей:

  • Интерфейса проекта для броузера (Silverlight)
  • Набора скриптов (JavaScript) для десктопной издательской системы Adobe InDesign
    Обе эти части используют базу данных проекта (mySQL), доступ к которой обеспечивают программы PHP на стороне веб-сервера Apache. База данных спроектирована с помощью инструмента mySQL Workbench. Проект оперирует терабайтами изображений товаров и файлами в форматах Adobe InDesign, база данных хранит только ссылки на них. Кроме этого в базе данных хранятся previews изображений товаров (уменьшенные копии) и презентации – наборы изображений, текстовых блоков и други презентаций.
    Модули проекта для броузера

    Одним из компонентов проекта является графический редактор. Он позволяет создавать презентации, которые потом сохраняются в базе данных и параллельно создаются файлы в форматах Adobe InDesign. Презентация всегда привязывается к какому-то товару в каталоге. Она может состоять из изображений, текстовых блоков и других презентаций. Редактор обладает широким набором функций. Можно выбрать размеры страницы, ее ориентацию, разрешение документа, отступы от края холста, для изображений доступно множество опций по расположению и ориентации, для текстовых блоков возможно внедрение внутренних переменных, которые при записи преобразуются в тэги XML документов InDesign.
    В момент записи документа, его копия помещается в базу данных, если затребовано создание документа InDesign, из PHP-программы производится обращение к серверу InDesign, ему передается инструкция по сборке документа через протокол SOAP. Сервер собирает документ и формирует его копию в формате JPEG, PHP-модуль создает уменьшенную копию этого изображения и помещает в базу данных, ассоциируя с созданной презентацией.
    Проект имеет развитую систему управления презентациями. Каталоги могут состоять из единичных товаров и наборов. К каждому элементу можно привязать несколько презентаций, презентации могут иметь любое количество уровней вложенности. Предусмотрено больщое количество фильтров и аналитических механизмов.
    Для более эффективного управления каталогами проект содержит их шаблоны. Имеется возможность собрать каталог из презентаций и сформировать готовый документ в формате Adobe InDesign (INDD), это можно назвать черновиком. Дизайнер может использовать эти файлы только для коррекции внешнего вида каталога, минуя стадию разметки.
    Проект имеет сотни настроек, которые применяются к разным его частям и которые можно разделить на три типа:

  • Настройки, которые могут быть применены к различным объектам и сохранены в базе данных. Эти настройки могут иметь различные форматы: простое значение, пункт выбора меню и список.
  • Выбор пункта меню или нескольких пунктов.
  • Константы, которые используются для вычислений, пути доступа, пароли и многое другое.
  • Проект имеет на клиентской части систему защиты, реализованную с помощью ролей. Большинство элементов интерфейса (пункты меню, окна, кнопки, поля ввода) имеют идентификаторы, они занесены в базу данных. Существует набор ролей, каждой роли ставится в соответствие набор элементов. Каждому пользователю может быть присвоено любое количество ролей. Когда пользователь авторизуется, для доступных ему ролей строится массив ссылок на разрешенные элементы интерфейса. После этого в интерфейсе отображаются только разрешенные пользователю элементы.
    Модули проекта для десктопного приложения Adobe InDesign

    Оставьте комментарий: