Mathcad Calculation/Application Server:
опыт трехлетней эксплуатации в России

(www.vpu.ru/mas и www.mas.mpei.exponenta.ru)

В. Очков http://twt.mpei.ac.ru/ochkov

Осенью 2003 года автор этих строк получил электронное письмо от одного из европейских дилеров фирмы Mathsoft с предложением опробовать и протестировать новинку Mathsoft – пакет Mathcad Application Server (MAS), информация о котором была размещена на сайте http://mas.mathsoft.com/MAS.

Что это такое MAS?!

Историю использования компьютеров для инженерно-технических расчетов условно можно разбить на три исторических этапа:

В список пакетов не попали электронные таблицы Excel , которые по-прежнему остаются самым популярным средством ведения расчетов на компьютере. И не только бухгалтерских, но и инженерно-технических. Excel занимает промежуточную позицию между языками программирования и математическими программами.

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

Кроме того, здесь необходимо отметить еще один важный аспект проблемы "исследователь-программист" ("человек-компьютер"). Языки программирования не терпят "дилетантства" со стороны исследователя. Это означает, что программирование требует от человека максимальной отдачи, что часто влечет за собой частичную или даже полную потерю квалификации в основной специальности, "подсаживание на иглу" компьютера . Математические же пакеты в особенности Mathcad не вызывают у человека такого "болезненного привыкания". Можно не работать с Mathcad полгода, год, но основные навыки общения с этим пакетом не утеряются и, если потребуется, то возникшая задача тут же будет быстро и качественно решена, без привлечения сторонних программистов.

Можно также выделить три исторических этапа в режимах использования компьютеров для решения научно-технических задач:

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

Да, работа с пакетом Mathcad в несколько раз (на порядок) ускоряет процесс постановки и решения задачи. Такой же рывок наблюдался, когда переходили от работы в машинных кодах к работе с языками программирования высокого уровня (Fortran, Pascal, BASIC и т.д.). При переходе от работы с этими языками к работе в среде Mathcad между специалистом и компьютером не возникает лишнего звена в образе программиста.

Но даже если работающий на компьютере достаточно хорошо знаком с языками программирования, стоит использовать Mathcad хотя бы на стадии становления и отладки математической модели. Коллектив разработчиков, которым руководит автор этой книги, создал и довольно успешно продвигает на рынке сертифицированный пакет программ WaterSteamPro™ (www.wsp.ru), предназначенный для расчета теплофизических свойств теплоносителей электростанций, систем теплоснабжения городов и поселков. Окончательный вариант пакета был написан и откомпилирован на языке Visual C++ , но без предварительного анализа формул и алгоритмов в среде Mathcad с его удобными средствами визуализации чисел и формул ничего бы из этого проекта не вы вышло.

"Нет роз без шипов". Главный недостаток математических пакетов состоял в том, что они, как правило, не могли генерировать так называемые exe-файлы , которые можно запускать без программы-прародительницы. Это, в частности, существенно мешало такому прогрессивному явлению, как разделение сидящих за компьютером на пользователей и разработчиков. Люди, работающие с математическими пакетами – с тем же Mathcad, как правило, ведут "натуральное хозяйство" – разрабатывают расчетные методики сугубо для личного употребления либо для узкого круга коллег, умеющих работать с Mathcad. Передать свои наработки можно было только тому, у кого на компьютере стоит Mathcad. А этот человек покупать файл не будет, а постарается (норовит, как скажет потенциальный продавец) воссоздать нужный расчет сам. (Речь тут, конечно, идет о небольших расчетных программах, где время их создания и отладки сопоставимо со временем поиска их готового варианта, установки на компьютер и освоения новой программы. Но и объемные расчеты с трудом пробивают себе путь на рынке, т.к. собственный расчет всегда можно расширить и модернизировать, чего не скажешь о чужих программах. Здесь можно провести аналогию с другой, уже "внутриматкадовской" проблемой. Иногда бывает проще самому создать пользовательскую функцию, чем искать ее готовый вариант в дебрях встроенных функций Mathcad или в электронных учебниках, прилагаемых к нему.)

Передать же (продать) файл тому, кто не знаком с пакетом Mathcad и не имеет его на компьютере, можно было только с большой «нагрузкой» – с условием установки на компьютере пользователя самого пакета Mathcad нужной версии и изучения хоты бы азов этой программы, что часто влечет за собой необходимость обновления не только операционной системы Windows, но и аппаратного обеспечения или даже покупки нового компьютера. Да и, повторяем, поучиться обращаться c Mathcad тоже необходимо… Все это выливалось в большую «головную боль» или «геморрой», как выражаются студенты автора.

Фирма Mathsoft предпринимала ряд действий для исправления этого ненормального положения.

Во-первых, была попытка запуска с очередным (восьмым, если быть точным) релизом пакета Mathcad его бесплатной  и укороченной версии — Mathcad Explorer, которая позволяла открывать Mathcad-файлы и считать по ним, но не редактировать и не сохранять на дисках документы (так называемая read-only версия Mathcad). Сама же программа Mathcad Explorer свободно скачивалась из Сети.

Во-вторых, интенсивно развивались средства публикации Mathcad-документов в локальных (корпоративных и особенно в университетских) сетях или в Интернете. Ведь основной потребитель математических программ – это сфера образования, где важен не сам результат расчета, а путь к результату, изучение расчетных методик, заложенных в расчет. На это была нацелена, в частности, версия Mathcad 2001i, где буква i означала "интерактивный" (interactive).

Но все это были неполные решения. Довольно объемную программу Mathcad Explorer, как уже было отмечено, нужно было скачивать из Сети и устанавливать на свой компьютер. А тут уж лучше поставить сам пакет Mathcad, а не его укороченную версию (мы здесь пока не затрагиваем финансовую сторону проблемы — не говорим о том, сколько стоят сами математические пакеты в их легальных и, пардон, нелегальных версиях). С другой стороны, Mathcad-документы, вернее их html-или MathML-копии (слепки), открытые в Сети, хочется не только разглядывать, но и "потрогать" — изменить исходные данные и увидеть (распечатать, сохранить на диске) новый ответ.

Решение этой проблемы, но уже не частичное, а почти полное опять пришло со стороны Интернета. И это решение называется Mathcad Application Server.

Технология MAS, позволяющая запускать на серверах Mathcad-документы и обращаться к ним дистанционно через Интернет, полностью или частично решила вышеописанную проблему. В частности:

Нет необходимости ставить на компьютер пользователя саму программу Mathcad нужной версии, где-то искать, проверять на отсутствие вирусов и запускать прикладные mcd-файлы – достаточно подключить компьютер к Интернету и обратиться к MAS-серверу через браузер Internet Explorer (версия 5.5 и выше) . При этом сохраняется полная иллюзия, что на компьютере открыт Mathcad-документ, в котором можно изменить исходные данные и считать (распечатать, сохранить на диске) ответ. Сама же расчетная методика (набор формул в традиционной математической нотации, а не в виде компьютерных программ — особенность, за которую так любят Mathcad), а также промежуточные данные могут быть либо открыты, либо закрыты полностью или частично (продажа результата расчета, а не самого расчета).

Новые расчетные методики становятся моментально доступны всем членам интернет-сообщества. Достаточно только сообщить будущим пользователям соответствующие интернет-адреса. Чтобы эти расчеты стали «товаром» (см. выше), можно администрировать доступ к сайту, сделать его платным (умеренно платным, частично платным), окружить ссылки на них баннерами и т.д.

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

Технология MAS не исключает традиционной возможности скачивания с сервера самих Mathcad-документов для их расширения и модернизации. Для этого достаточно в расчете сделать соответствующую ссылку на FTP-сервер. Так, например, на сайте книги «Mathcad для студентов и инженеров» (BHV, 2005 – http://twt.mpei.ac.ru/ochkov/Mathcad_12) размещены ссылки на рисунки (pic), Mathcad-файлы (mcd) и MAS-документы (mas) книги. С mcd-файлами поступить можно опять же двояко. Можно передавать их только для счета на рабочей станции с установленным пакетом Mathcad, закрыв и запоролив сами расчеты. А можно отдавать безвозмездно или платно для работы без ограничений.

Технология MAS позволяет экономит денежные средства на приобретение математического обеспечения для компьютеров корпорации. Нет необходимости ставить всем сотрудникам программу Mathcad для ведения рутинных расчетов. Достаточно поставить ее только тем, кто создает расчеты. Остальные могут вести расчеты через корпоративный или какой-либо интернетовский MAS-сервер.

Технология MAS открывает возможность решения проблемы лицензирования работы с программой: пользователю нет необходимости покупать дорогостоящую программу Mathcad или кривить душой и ставить на компьютер ее "пиратскую" копию, а также постоянно обновлять их и дополнительно заменять и/или обновлять саму операционную систему Windows, осуществлять модернизацию компьютера — достаточно только обратиться к MAS. Покупать дорогостоящие программы должен будет только разработчик – создатель расчетных методик, размещаемых на MAS-серверах.

Не нужно также учиться обращаться с Mathcad-документами, открытыми в Сети, бояться испортить их. Изменение исходных данных в MAS-документе ведется приемами, которые люди давно уже освоили, засвечиваясь на различных сетевых форумах, болтая на чатах, играя в сетевые и несетевые компьютерные игры и т.д. Следует также отметить, что в будущем, когда будет реализована соответствующую технология (а такая работа ведется), расчет на MAS-сервере может вестись намного быстрее, чем на рабочей станции за счет распараллеливания расчетов.

Но вернемся на три года назад.

Автор, согласился на тестирование MAS, подписал (при посредничестве фирмы Софтлайн (www.softline.ru), российского представителя Mathsoft) лицензионное соглашение и получил соответствующий CD-ROM диск. После тестирования автор, вернее, его вуз – Московский энергетический институт (ТУ – www.mpei.ru) приобрел пакет.

Пару слов и рассуждений о стоимости MAS. Это довольно дорогая штука – 15 000$ платишь сразу и 2 500$ ежегодно. Но для вузов есть 50% скидка, которой автор не преминул воспользоваться. Потом, правда, один из сотрудников Mathsoft сообщил автору по секрету, что фирма немного просчиталась, установив такую высокую цену. При более низкой цене могло бы быть намного больше продаж. Тут просматривается типичная задача линейного программирования с переменными поиска, ограничениями и целевыми функциями, с которой часто приходится сталкиваться в экономических расчетах, и какую можно успешно решить в том же пакете Mathcad – какую цену нужно установить на Mathcad для одного PC, на Mathcad для локальной сети и на версию для глобальной сети (Internet и Intranet – см. цены в конце этого каталога), чтобы суммарный доход от продаж был максимальным. Пользователи же Mathcad должны в свою очередь решать другую оптимизационную задачу – купить ли для всех сотрудников (рабочих станции) сам пакет Mathcad («одиночные» версии или версии для локальной сети) или купить один-два пакета Mathcad для создателей/редакторов расчетов и Mathcad Application Server для остальных пользователей. Еще одно решение – разместить свои расчеты на чужом MAS-сервере и оплачивать его аренду.

От ежегодной платы (1 500$ для вузов) автора освободили в том числе и за то, что тестирование MAS фактически продолжалось все эти три года: автор передал разработчикам список пожеланий и претензий к пакету, который разработчики обещают реализовать в 14-й версии Mathcad

На MAS-сервере автора за прошедшие три года было размещено и открыто в Сети более 10 000 расчетов различного плана, как самого автора, так и его коллег . В этом автору помогали и помогают его студенты, которые на семинарах по информатике переводят бумажные страницы справочников и книг в сайты Интернета. Так они совмещают полезное (изучение основ информатики на примерах энергетики) с приятным (возможность сразу увидеть свою работу в Интернете). Заодно были разработаны и открыты в Сети подробные инструкции по подготовке Mathcad-документов к публикации (от WorkSheet к WebSheet).

Сетевые MAS-документы затрагивают следующие проблемы:

Набор WebControls – элементов интерфейса, через которые можно менять данные в открытом в сети Mathcad-документе, был не очень богат. Но многие недоработки автору удалось ну если не исправить, то как-то обойти. Заодно были решены такие «внештатные» проблемы и задачи:

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

Автор этих строк, столкнувшись с необходимостью ввода выражений в текстовое окошко, прежде всего попытался узнать, не решил ли уже кто-то другой эту проблему, и «повесил» соответствующее объявление на «главном» форуме Mathcad (http://collab.mathsoft.com) в разделе Mathcad Application Server. На этот запрос откликнулся Том Гутман (Tom Gutman). Он дал решение этой проблемы – довольно громоздкое и не очень удобное, но вполне работоспособное в 11-й версии Mathcad. Неудобство решения Тома Гутмана заключалось в том, что в выражении, вводимом в текстовое окно, допустимы только четыре переменные и константы (х, y, e и π) и ограниченное число встроенных функций (sin, cos, ln и др. элементарные функции). Подключение к вводимым через текстовое окошко выражениям других переменных, констант и функций требовало довольно сложного редактирования набора пользовательских функций и операторов, составлявших решение Тома Гутмана. Кроме того, такие выражения не работали в символьной математике Mathcad и, более того, решение Тома Гутмана перестало работать в Mathcad 12/13/14. Другое решение проблемы ввода выражений через текстовое окошко было предложено уже на русскоязычном форуме Mathcad Вячеславом Мезенцевым.

Это решение основано на недокументированном вызове в среде Mathcad 11 некоторых функций пакета Maple, символьное ядро которого применяется в Mathcad. Это нестандартное решение не только возвращало символьную математику в введенное через текстовое окошко выражение, но и делало возможным вызов в среде Mathcad огромного количества функции Maple. Образно выражаясь, эту ситуацию можно обрисовать так: человек купил на рынке уздечку (фирма Mathsoft купила «немножко» символьной математики от Maple), принес ее домой, а оказалось, что к уздечке… привязана чужая лошадь (вся символьная математика Maple, правда, довольно старой версии). Этот невольный «увод лошади» в версиях Mathcad 12 и 13 был пресечен – в средах этих версий «фокус» В. Мезенцева «почти» перестал работать. Почему «почти». Один разработчик MAS-документов в Италии (Massimo Priano), пытаясь доработать программу Тома Гутмана для 12 и 13 версий Mathcad, нашел решение опять же через недокументированный вызов еще одной из функций Maple, но с невозможностью вызова Maple-функций, о которых упоминалось выше. Это решение помещено на MAS Экспоненты в разделе Примитивы

Отдельные расчеты на MAS были сертифицированы двумя способами. Во-первых, на некоторые расчеты была поставлена «печать» годности, где была сделана ссылка на письмо организации, авторитетной в данной проблеме. Во-вторых, на некоторые сетевые расчеты были сделаны ссылки из сайтов «авторитетных» организаций. Например из сайта Международной ассоциации по свойствам воды и водяного пара (International Association on Property Water and Steamwww.iapsw.org) сделана ссылка на расчеты свойств воды и пара, открытые в Сети автором по технологии MAS.

Но и тут остаются проблемы. Ведь, «сертифицированные» вышеописанными способами сетевые расчеты остаются открытыми для редактирования (совершенствования!) и… порчи, вольной или невольной. Одним из решений тут может быть перенос самого MAS на собственные сайты (сервера) «авторитетных» организаций.

Летом 2006 года автор со своим MAS-сервером наконец-то перестал быть одиноким в России. Появилось еще два MAS-сервера в проекте www.exponenta.ru.

Какие задачи стоят перед MAS-сообществом.

Расширенный вариант доклада открыт по адресу http://twt.mpei.ac.ru/ochkov/3MAS.

Литература >>>>>>>