Что такое Docsvision и наши четыре принципа его разработки

Мы, разработчики Docsvision, называем этот продукт платформой. Именно платформой, на базе которой можно создавать различные проектные решения.Чтобы эти решения было удобнее и быстрее создавать, а в дальнейшем и изменять, для платформы Docsvision мы сделали различные инструменты (конструкторы, модули, шлюзы), которые позволяют за счет настройки смоделировать на платформе решение под конкретного Заказчика, с учетом его требований.

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

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

Открытость. Гибкость. Модульность. Производительность. Далее мы бы хотели раскрыть эти принципы и заодно более подробнее рассказать про каждый слой пирамиды в структуре Docsvision. Итак: Принцип №1: Открытость.Платформа Docsvision должна быть открыта для разработки на ней.Поэтому серверная часть платформы Docsvision написана на базе .NET технологий. Сервер представляет собой web\WCF сервис. Существует механизм расширения функциональности сервера при помощи подключаемых серверных расширений, которые могут быть написаны с применением .NET. Эти серверные расширения могут быть использованы из клиентской части при помощи доступного API. Клиентская же часть платформы Docsvision написана с применением .NET и COM-технологий.

Существует ряд публичных API и интерфейсов, при помощи которых можно модифицировать клиентскую часть Docsvision, причем для этого можно использовать как широко распространённые современные языки программирования (C#, VB.NET), так и популярные в прошлом Visual Basic 6.0 и C++.

Более детальнее про архитектуру платформы Docsvision (в том числе про ядро, объектную модель, системные модули, «движок» обработки процессов и т.д.) мы расскажем в нашем одном из наших следующих постов.

Принцип №2: Гибкость. В платформе Docsvision все должно настраиваться «под себя», и должны быть инструменты, позволяющие делать это без программирования.Для этого в последней версии Docsvision мы разработали целых десять конструкторов:

Конструктор карточек. Конструктор процессов. Конструктор справочников. Конструктор состояний. Конструктор ролей. Конструктор отчетов. Конструктор поисковых запросов. Конструктор скриптов. Конструктор согласований. Конструктор нумераторов. imageКонструктор карточек.imageКонструктор процессов.

imageКонструктор ролей.

Все эти конструкторы нашим партнерам-интеграторам мы предоставляем бесплатно, чтобы они могли создавать различные проектные решения для своих Заказчиков. Эксплуатация же готового решения, созданного на платформе Docsvision, не требует от Заказчика приобретения этих конструкторов, — только если Заказчик захочет самостоятельно модифицировать решение своими силами.

Мы сейчас не будем подробно раскрывать возможности каждого конструктора, но даже их количество дает представление о том, насколько гибкая платформа Docsvision, и что многие изменения в ней можно сделать просто за счет «выставления нужных галочек».

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

Принцип №3: Модульность. Архитектура платформы Docsvision должна быть модульной, чтобы Заказчик приобретал только те компоненты, которые ему необходимы.На данный момент для платформы Docsvision нами разработаны следующие, так называемые, готовые модули, из которых Заказчик может выбрать то, что ему необходимо и использовать это:

1. Набор готовых приложений Это, например, такие приложения, как «Договоры», «Управление совещаниями», «Управление документами». Это все независимые готовые продукты, которые добавляют к платформе Docsvision соответствующие объекты — формы карточек (например, карточка «Договор»), справочники (например, справочник «Валюты»), роли (например, «Согласующий», «Подписант»). Как уже говорилось выше, все наши приложения мы делаем с использованием средств конструирования платформы Docsvision, а, значит, в проектном решении эти приложения можно адаптировать под требования Заказчика.2. Набор интеграционных шлюзов. На данный момент мы разработали шлюзы к почте (SMTP/POP3), к 1С: Предприятие, к SharePoint и к SAP B1. Это своего рода готовые коннекторы, которые за счет их настройки позволяют Docsvision интегрировать с внешними системами. Основные функции всех шлюзов — это мониторинг объектов внешней системы, а также чтение и запись данных.image3. Набор рабочих мест пользователей. Для платформы Docsvision мы разработали ряд рабочих мест для разных групп пользователей. Вот их краткое описание: «Навигатор» — приложение, разработанное с использованием технологий WPF/WinForms, принцип работы которого аналогичен принципу работы Проводника в Windows, где в левой части отражается дерево папок, а в правой — файлы карточки. Это основное рабочее место, обеспечивающее доступ ко всех пользовательской функциональности Docsvision.Как выглядит «Навигатор»? image «Клиент для SharePoint» — веб-части, которые мы разработали для SharePoint, позволяющие работать с функциями Docsvision напрямую через портал. Веб-части отображают такие элементы Docsvision, как лента инструментов, структура папок, содержимое папок в разных представлениях, поисковые формы.Как выглядит «Клиент для SharePoint»? image «Легкий клиент» — web-клиент, который позволяет работать с Docsvision без установки какого-либо программного обеспечения на клиентское рабочее место. Легкий клиент представляет собой web-приложение и работает как Single Page Application на технологии ASP.NET MVC 4 с использованием HTML5, CSS3 и JQuery. В это рабочее место мы перенесли не весь функционал Навигатор, чтобы не перегружать его и сделать действительно легким, а только основные функции, которые необходимы рядовому менеджеру или руководителю.Как выглядит «Легкий клиент»? image «Менеджер для Outlook» — это Microsoft Outlook Add-in целиком переписанный на C#, который позволяет в Outlook работать с заданиями Docsvision. Для отображения заданий Docsvision используется собственный класс задачи MS Outlook, форма подменяется через механизм Form Regions.Как выглядит «Менеджер для Outlook»? image «Топ-Менеджер» — приложение для iPad и iPhone, реализующее сценарии работы руководителей. Может работать как в онлайн, так и в оффлайн режиме. Взаимодействие с системой Docsvision организовано с использованием специального коннектора, выполняющего обмен данными.Как выглядит «Топ-менеджер»? image «Ассистент для Android» — приложение для ОС Android, которое уведомляет о назначенных в Docsvision заданиях. Архитектура представляет собой клиент-серверное приложение, где сервер представляет собой WCF-сервис, который получает доступ к серверной части платформы Docsvision и выполняет обработку команд клиента, а клиент — это обычное приложение для платформы Android.Как выглядит «Ассистент для Android»? image Принцип №4: Производительность. Платформа Docsvision должна быть отказоустойчивой и производительной под нагрузкой до нескольких десятков тысяч пользователей.Именно для проверки и подтверждения этого мы развернули у себя специальную инфраструктуру из нескольких серверов, предназначенную для нагрузочного тестирования системы, которое мы выполняем с помощью программной эмуляции действий пользователей в среде Visual Studio Load Test.

image

Но подробнее об этом стенде, а также о нашей методике тестирования продуктов, мы уже расскажем в нашем следующем посте.

© Habrahabr.ru