разработка информационных систем
Banner  
О нас О нас
Наши продукты Наши продукты
Clip CLIP
R2D2 R2D2
Статьи Статьи
Контакты Контакты
Карта
English English
R2D2 - ОО КИС платформа

Cчетчик

Архитектура,базовые решения


Архитектура
Архитектура может быть в нескольких вариантах:
  • web браузер + web сервер + приложение в CGI скриптах. Это решение уже практически реализовано в виде модуля Mozill`а в качестве клиента.
    Не надо пугаться слов "web-браузер" и предполагать что работать через браузер очень неудобно. Мозилла очень мощный инструмент для отображения XML ( а не только HTML) документов и в частности формы в формате XUL обеспечивают пользовательский интерфейс любой сложности.
    По мере появления других web-браузеров с качественным XML движком (FireBird,Conguerr,IE) - будет появлятся их поддержка в R2D2.
    В качестве web сервера можно использовать любой, который поддерживает выполнение CGI скриптов. Не мудрствуя лукаво - используйте apache.
    Все остальные действия находятся в CGI скриптах. Скрипты обеспечивают исполнение запросов к ОБД и преобразование ответов в вид приемлемый для web браузера: XML,RDF,XUL,XHTML. Никакой Бизнес-логики в скриптах НЕТ, только расшифровка CGI запроса от клиента, обращение к ОБД и формирование ответа.
  • трехзвенка: спецклиент + сервер приложений + ОБД. Этот вариант в данный момент находится в разработке совместно с проектом E/AS.
    Требования к клиенту и серверу уменьшаться, потому-что не будет необходимости постоянно парсить XML и работать посредством CGI.
  • монолит: один исполняемый модуль, в котором слинкованы все компоненты: клиент+сервер+ОБД+логика. Этот вариант будет разрабатываться только после разработки пользовательского интерфейса для трехзвенки.
Платформы
Мозилла имеется для множества платформ и в частности Win,MAC,Linux. Пользователь и системный администратор может самостоятельно выбрать платформу для конечного пользователя.
Серверная часть в данный момент в основном тестируется в операционной системе Linux на платформе I386. Скорее всего будет работать и на freeBsd. Остальные платформы можете пробовать на свой страх и риск, в данный момент никто не тестировал.
Так как вся разработка ведется на языке CLIP, то разрабатываемое ПО сможет работать везде где протестирован CLIP. В настоящий момент таких платформ не очень много, но мы ведем работы по переносу CLIP на WIN32, SPARC/Solaris, OpenBsd, BeOs. Следите за новостями.
Требования к аппаратной части
Вполне достаточно Cel400/64М как для Windows так и для Linux станций. Так же можно использовать X-терминалы на базе бездисковых станций, для которых достаточно 486/66/32М. Или можно использвать технологию "змей-горыныч", когда к одному системному блоку подключаются три монитора и нужное кол-во клавиатур и мышей.
Требования к железу на сервере тоже невысокие. Мы тестируем рабоспособность на машине Cel400/128M. Такая машина вполне выдерживает 8-10 клиентов, а может и больше при условии что она не загружена прожорливыми процессами или несколькими Мозиллами на X-терминалах.
Бизнес-логика
Вся бизнес-логика загружена в CODB в виде метаданных. Для полноценного понимания работы CODB необходимо прочитать документацию .
в настоящий момент вся ОБД разделена на несколько частей/словарей:
  • GBL01 - внешние справочники. Предназначен для хранения справочной информации из внешних источников, таких как: ГНИ, ПФ, ГосКомСтат, ЦентроБанк и другие. Эти справочники редко изменяются и в дальнейшем планируется что эти справочники будут автоматически обновлятся с какого-нибудь общедоступного сервера. В настоящий момент таких справочников около 50 и их кол-во будет расти по мере надобности примерно до 300-500.
    У словаря может быть несколько депозитариев, мы их проектировали для хранения данных разных стран или регионов: Россия,Украина,Казахстан, Татарстан, Удмуртия, Мордовия и т.п.
  • GBL02 - внутренние справочники. Предназначен для хранения справочной информации предприятий, таких как: план счетов, контрагенты, подразделения, товары, константы, настройки, и т.п. Кол-во справочников не ограничено и зависит только от особенностей учета предприятий.
  • ACC00 - малоизменяемые учетные данные. Предназначен для хранения учетной информации с небольшим кол-во изменений, таких как: отдел кадров, основные средства, контракты, бюджеты, и т.п.
    Разные депозитарии позволяют хранить данные нескольких предприятий холдинга.
  • ACC01 - оперативные данные. Предназначен для хранения оперативных данных, таких как: документы, проводки, регистры, аналитическая информация.
    Разные депозитарии позволяют хранить данные нескольких предприятий холдинга и при необходимости данные можно разделить например по годам для уменьшения нагрузки на ОБД.
  • Находятся в разработке еще несколько словарей: склад, зарплата, ... По мере развития словарей может стать столько сколько нужно, хоть миллион :).
Краткий принцип работы
Клиент (браузер или спец клиент) обеспечивает ввод данных в экранные формы, передает эти данные на сервер. Сервер расшифровывает запрос клиента и производит действия с объектами в ОБД. При наступлении события с объектами (добавление, изменение, удаление) ОБД на основании метаданных исполняет методы/триггера, которые и обеспечивают все остальное. Например при добавлении документа могут автоматически сформированы проводки. Проводки имеют несколько аналитических признаков разные по дебету и кредиту (настраиваются через планы счетов). На основании этих данных происходит перерасчет данных в OLAP. В дальнейшем вся аналитическая информация достается из этого OLAP что обеспечивает высокую скорость работы с учетной информацией.

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

Благодаря такой схеме обеспечивается актуальность балансов и аналитической информации почти в реальном времени. Скорость обработки проводок примерно 2/сек при БД до 50000 проводок и примерно 1/сек при БД до 500000 проводок на железе Cel400/128. Согласитесь, что если баланс и аналитика готовы через 1 секунду после проведения проводки - для бухучета это вполне можно считать реальным временем. Причем проводки могут быть и прошедшей датой, а баланс всегда готов на любую дату и за любой период.
© ООО "Инженерно-Техническая Компания" (ИТК) 2006
426072, Удмуртская республика, Ижевск а/я 1247, uri at itk dot ru