Сетевой журнал: галерея ИТ-проектов


Digital Machines: открытость, гибкость и Excel



задача:
Там, где кончается ERP
другие решения:
Аплана: мы решаем проблемы бизнеса





 

Московская компания Digital Machines – системный интегратор широкого профиля – уже в третий раз участвует в нашей "Галерее". В N6/2002 она предлагала решение для банковского центра обработки данных, в N7-8/2002 – для интеграции лоскутной информационной системы предприятия.

Задачу об организации взаимодействия между мебельной фабрикой и ее партнерами Digital Machines предлагает решить с помощью своего продукта SXS (от Structured eXcel Solution, т.е. структурированное решение на основе Excel) – название предлагается читать как английское success – "успех". Развитие SXS началось от заказной разработки. Проектируя систему сбора статистики продаж для аналитического отдела крупной торговой фирмы, разработчики заложили в нее технологию, позволяющую решать достаточно широкий спектр задач. Эта технология и легла в основу SXS.

Зачем и как усовершенствовать Excel
Как поступает офисный работник, если ему надо подготовить ведомость и у него нет специализированной программы, которая позволила бы сделать это автоматически? В докомпьютерную эпоху он сел бы за пишущую машинку, сейчас открывает Excel. С помощью Excel выполняются чуть ли не все операции, попавшие в "дырку" между компонентами ERP-системы, или такие, для которых трудно построить модель (либо просто руки не доходят это сделать).

Конечно, табличный процессор – не просто "пишущая машинка", многие операции в нем автоматизированы, имеются возможности программирования. Но все же он предназначен для работы именно с таблицами, а не с данными, в них содержащимися. Данные в Excel объединены со своим представлением, которое зависит от предпочтений пользователя, готовившего таблицу. Объем их ограничен, они не могут использоваться другой программой (скажем, аналитической системой), коллективная работа с ними не поддерживается. Программирование операций с данными затруднено.

И коллективную работу, и выборку любых объемов данных, в том числе для последующего использования внешней программой, и гибкое программирование способна обеспечить реляционная СУБД, где данные хранятся централизованно и не зависят от формы представления. Если бы удалось каким-то образом совместить с ней Excel, пользователи смогли бы, оставаясь в рамках привычного инструмента, существенно эффективнее работать с данными. Именно это делает система SXS; как будет показано, ее возможностей вполне достаточно, чтобы построить решение для нашей условной мебельной фабрики.

Основной компонент SXS – это сервер приложений, который взаимодействует с реляционной базой данных. Существующая версия работает только с MS SQL Server, однако Digital Machines планирует в дальнейшем обеспечить и поддержку других СУБД; первой предполагается подключить одну из бесплатных систем, такую как MySQL.

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

В качестве клиентской программы для работы с отчетами выступает просто Excel. Кроме того, разработчики Digital Machines предусмотрели для SXS специализированное клиентское рабочее место с некоторыми дополнительными возможностями.

Как это работает
Опишем решение на основе SXS для мебельной фабрики и ее партнеров. В офисе у заказчика устанавливается сервер приложений, на котором будет происходить обработка – создание и накопление прайс-листов, консолидация заказов, заявок, статистических отчетов и т.д. Для сервера потребуется Intel-компьютер с ОС Windows NT или 2000 и MS SQL Server версии 7 или выше. Если у заказчика уже есть MS SQL Server и машина, на которой он работает, не слишком загружена, сервер SXS можно установить непосредственно на нее. Возможен также вариант с разнесением серверов приложений и баз данных по разным компьютерам, хотя при этом, естественно, возрастет нагрузка на локальную сеть.

Для мебельной фабрики это, скорее всего, не понадобится, но при значительных объемах данных, а также при большом числе пользователей системы, работающих с ней по локальной сети, SXS можно масштабировать. Для этого систему устанавливают на несколько компьютеров – обычно каждый со своим SQL-сервером. Один из серверов становится центральным, а собираемые данные распределяются между остальными серверами. На центральном сервере хранится базовая и общая информация – данные о пользователях, продуктах и т.п. – и он же определяет, где будут обрабатываться поступающие запросы. Такая распределенная установка дает дополнительный уровень защиты информации – чтобы завладеть данными, потенциальному злоумышленнику потребуется получить доступ ко всем серверам сразу, так как данные с одного сервера для него будут простым набором чисел или символов.

У партнеров в большинстве случаев устанавливать ничего не потребуется, поскольку они должны будут работать в Excel, а в наши дни там, где есть компьютер, чаще всего есть и Windows, и MS Office. Более того, прайс-листы, о которых идет речь, наверняка готовятся именно в Excel, и не исключено, что другие интересующие нас документы тоже. Для работы с SXS подходят версии Office начиная с 97.

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

Форму заявки, которая представляет собой файл Excel, партнер сможет получить по электронной почте или с внутреннего веб-сайта мебельной фабрики. Файл с заполненной формой отправляется как почтовое вложение на определенный адрес; на этом задача партнера выполнена, и он может переходить к очередным делам – ждать ответа сервера не нужно.

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

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

Сервер SXS обеспечивает также автоматическое выполнение различных операций по заданному графику. Эту функцию можно будет использовать, чтобы с определенной периодичностью генерировать прайс-листы и рассылать их по почте в торговые точки.

Для администрирования и программирования
Поскольку SQL-сервер требует обслуживания, системе понадобится администратор, который будет следить за ее серверной частью, – возможно, работающий с частичной загрузкой. Этот же администратор сможет модифицировать и развивать имеющееся решение.

Вообще идеология SXS исходит из максимальной открытости решений, из того, что в системе не должно быть ничего "зашитого" и что любой элемент прикладного решения должен позволять изменение с минимальной затратой ресурсов. Программисты Digital Machines построили базовый набор объектов, в терминах которых можно писать скрипты (вместо того, чтобы писать их в терминах баз данных), – универсальные таблицы и стандартные методы работы с ними. Эти объекты не имеют отношения к бизнесу – собственно прикладная логика полностью реализуется скриптами на одном из стандартных языков (JavaScript, VBScript), которые выполняются непосредственно на сервере с использованием технологии MS OpenScript. Исключение составляют только функции работы с организационной структурой предприятия: разработчики запрограммировали их жестко, чтобы обеспечить универсальный механизм раздачи прав.

Поскольку документация по библиотекам объектов SXS передается заказчику вместе с системой, он имеет полную возможность модифицировать имеющиеся скрипты и писать новые. Обучение программированию для SXS занимает две недели, включая, если нужно, освоение VBScript – оно не требует много времени, а основное, что нужно изучить, – это объекты и способы их использования.

Администрирование и редактирование скриптов выполняются со специального клиентского рабочего места. (Помимо этих двух операций и работы с отчетами SXS, оно обеспечивает также некоторые сервисные функции.) Работа по созданию или изменению отчета происходит следующим образом. На клиентском рабочем месте пользователь выбирает нужный шаблон и запускает программу-мастера из четырех шагов. На первом шаге задаются константы отчета, на втором – параметры и их типы, на третьем – "прямой скрипт", а на четвертом – "обратный скрипт". Прямым называется скрипт, который извлекает из базы данные, соответствующие значениям параметров, и записывает их в Excel-файл (открывая файл, пользователь получает соответствующие поля заполненными), обратным – скрипт, передающий данные из Excel-файла на сервер (он выполняется по команде сохранения файла). Сами скрипты хранятся в виде текста в базе данных SXS. Для их извлечения служат специальные команды рабочего места, а правка происходит в обычном текстовом редакторе. Измененный отчет сохраняется в базе. При следующем запуске он будет другим.

Разработка может быть и удаленной. При этом программист, создав отчет, присылает заказчику файл с ответами для программы-мастера. Заказчик запускает у себя мастер, и тот, автоматически подставив нужные ответы, записывает готовый отчет в базу.

Excel как общий язык
Удивительным образом SXS позволяет обойти классическую схему создания ПО – обследование, проектирование, разработка, тестирование, внедрение – и начать прямо с разработки. Данный способ не предлагается использовать вместо классической схемы: там, где возможен анализ задачи, разработка по правилам обеспечит заведомо лучший конечный результат. "Обходной путь" будет полезен в тех случаях, когда проанализировать задачу почему-либо не удается.

Суть здесь следующая. Основная сложность, с которой сталкиваются программист и заказчик при попытке поставить задачу, – это "языковой барьер": заказчик не понимает предложений программиста, программист – требований заказчика, и им очень трудно договориться. Многие фирмы-разработчики держат у себя штат аналитиков, функции которых заключаются как раз в том, чтобы помочь двум сторонам найти общий язык. А в SXS такой общий язык есть – это Excel. Заказчику достаточно описать, как будет выглядеть отчет и что должно стоять в его колонках, – в этих терминах он, вероятнее всего, умеет разговаривать – чтобы программисты могли взяться за дело и подготовить ему в точности такой отчет, как он просит.

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

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

Кому это может пригодиться
Пакет SXS сейчас находится в стадии дооформления: пишутся примеры скриптов, подробная документация и т.д. Кому же Digital Machines будет рекомендовать свой продукт?

Один пример мы только что разобрали – это была система удаленного взаимодействия с партнерами. Другое очевидное применение – для анкетирования в тех случаях, когда заполнение анкеты требует времени, – например, при найме на работу. Сейчас Digital Machines внедряет SXS-систему найма персонала в собственном офисе. Претендент на ту или иную должность получает с сайта компании анкету, которая представляет собой файл Excel, заполняет ее и отправляет в Digital Machines по электронной почте. С подключением SXS-системы эта процедура никак не изменится, но данные из всех анкет будут попадать в базу данных и отдел кадров получит возможность анализировать их, выполнять архив, запрашивать всевозможные сводные отчеты.

С помощью SXS можно также организовать учет затрат времени в консалтинговых компаниях (timesheets), поддержку “мобильных" сотрудников, которые работают с компьютером вне офиса или в полевых условиях (Excel существует и для КПК!), – одним словом, эта система может найти применение везде, где используется Excel, есть коллективная работа и желательна автоматизация. r

 
сетевой форум
архив
подписка на журнал
о сетевом

подписка на новости

подписка на журнал

архив номеров

архив новостей