Глава 7

Mathcad Application Server

7.1. Продолжение предисловия книги или заключение по предыдущим главам

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

r    работа с машинными кодами;

r    программирование на языках высокого уровня;

r    использование математических пакетов типа Mathcad, Maple, MatLab, Mathematica и др.

Примечание

В список пакетов не попали электронные таблицы Excel[1], которые по-прежнему остаются самым популярным средством ведения расчетов на компьютере. Excel занимает промежуточную позицию между языками программирования и математическими программами. В данной книге автор очень часто проводит аналоги между Mathcad и Excel (см. рис. 1.1 и 1.3, 1.25 и 1.26, 2.17 и 2.18, 6.26 и 6.27).

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

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

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

r    пакетный режим, когда одна ЭВМ (знаменитая БЭСМ-6, например, установленная в вычислительном центре) обслуживала многих пользователей, которые подносили к ней свои задачи, записанные в пакете перфокарт[4] и на прочих уже забытых (бумажных) носителях информации[5];

r    режим (времена) персональных компьютеров;

r    режим глобальной и локальных сетей, который по своей сути возвращает нас к пакетному режиму, но на ином, более качественном уровне; исходные данные и результаты расчетов передаются уже не на бумаге, а в электронном виде по сети. Сами же расчеты при необходимости могут быть распараллелены (кластерные, распределенные расчеты и т. д.).

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

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

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

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

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

Примечание

Речь идет, конечно, о небольших расчетных программах, где время их создания и отладки сопоставимо со временем поиска их готового варианта, установки на компьютер и освоения новой программы. Но и объемные расчеты с трудом пробивают себе путь на рынке, т. к. собственный расчет всегда можно расширить и модернизировать, чего не скажешь о чужих программах. Здесь можно провести аналогию с другой, уже "внутриматкадовской" проблемой. Иногда бывает проще самому создать пользовательскую функцию, чем искать ее готовый вариант в дебрях встроенных функций Mathcad. Этот тезис иллюстрируется Mathcad-документом на рис. 7.16 (http://twt.mpei.ac.ru/mas/worksheets/Comp_procent.mcd), где сложный банковский процент рассчитывается не по встроенной функции, запрятанной "в дебрях" группы  функций Finance (Финансовые), а по созданному алгоритму. Другой пример. Функция нормального распределения на рис. 3.30 дана как пользовательская функция (ea*(bx)^2), а на рис. 5.20 — как встроенная (dnorm). Во втором случае автор сообразил (вспомнил), что такая готовая функция уже есть и нечего "городить" ее снова.

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

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

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

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

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

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

В конце 2003 г. фирма Mathsoft запустила в эксплуатацию[14] так называемый Mathcad Application Server (MAS) — домашняя страничка http://mas.mathsoft.com/mas — сервер, позволяющий запускать на нем Mathcad-документы и обращаться к ним дистанционно через Интернет.

Технология MAS позволяет решить следующие проблемы.

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

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

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

r    Технология MAS не исключает традиционной возможности скачивания с сервера самих Mathcad-документов для их расширения и модернизации. Для этого достаточно в расчете сделать соответствующие ссылки. Так, на сайте данной книги, как было уже сказано в Предисловии, размещены ссылки на рисунки (pic), Mathcad-файлы (mcd) и MAS-документы (mas) книги. С mcd-файлами поступить можно опять же двояко. Можно передавать их только для счета на рабочей станции с установленным пакетом Mathcad, закрыв и запоролив сами расчеты. А можно отдавать безвозмездно или платно для работы без ограничений.

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

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

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

В этой главе будет рассказано о том, как готовые Mathcad-документы подстроить для публикации в Интернете и какие приемы нужно использовать при создании расчетов, чтобы они сразу были пригодны к работе как на рабочей станции (WorkSheets), так и в Сети (WebSheets).

7.2. Подготовка Mathcad-документа к публикации в Интернете или От WorkSheet к WebSheet

(см. книгу)



[1] Были, а где-то еще есть и другие электронные таблицы (табличные процессоры): SuperCalc, VisiCalc, Quadro Pro… Но всех "задавил" Excel (Microsoft). Mathcad, кстати (см. начало гл. 1), «ведет свою родословную» не от Excel, а от SuperCalc.

[2]   С другой стороны, автор, знает много примеров, когда специалисты-некомпьютерщики становились высококлассными компьютерщиками, создающими успешные программные продукты не только прикладного, но и общекомпьютерного (системного) плана. Можно привести и другой ряд примеров, когда люди, получившие основное компьютерное образование, ничего толком не создали, оставаясь только "на подхвате" задач, формируемых другими специалистами (некомпьютерщиками). Но самый эффективный способ стать гениальным программистом — это получить хорошее классическое математическое образование. И еще. Чуть не забыл. Нужно, чтобы «боженька человека в темечко поцеловал» — нужно иметь талант.

[3]   Три — красивое число. Автор собрал "прекрасные тройки" из области вычислительной техники и разметки их на сайте http://twt.mpei.ac.ru/ochkov/333/333.htm.

[4]   На перфолентах, например. В советские времена на уличных плакатах рисовали рабочего, колхозницу и интеллигента. Последнего можно было узнать (идентифицировать) по очкам и перфоленте в руках. На перфолентах хранились системные программы — компилятор языка программирования, например, а на перфокартах прикладные программ и исходные данные для расчета, которые можно было менять, в том числе и заменой отдельных перфокарт. Были мастера, которые могли исправить дефектную программу заклеиванием одной дырочки в перфокарте и пробиванием («перфорированием») другой.

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

[6]   В частности, с сожалением приходится отмечать, что в исходной "бумажной" информации (наборе таблиц, формул и коэффициентов, опубликованных в монографиях, справочниках и журналах) содержится много ошибок и опечаток ("очепяток"), которые очень трудно выявить при "ручной" работе редакторов, корректоров и самих авторов, но которые "как шило из мешка" вылезают при их анализе с помощью математических пакетов (см. интернетовское продолжение к гл. 4 на сайте книги, где приведены примеры таких ошибок и даны рекомендации по их выявлению).

[7]   Такой "exe-файл" мы пытались создавать средствами анимации (см. рис. 1.72).

[8]   Мы здесь не затрагиваем финансовую сторону проблемы — не говорим о том, сколько стоят сами математические пакеты в их легальных и нелегальных версиях. См. статью автора "Открытое письмо пирата в адрес компьютерных изданий" (http://twt.mpei.ac.ru/ochkov/mc8Pro.book/6_text.htm#pirat), где тема нелегального копирования программ раскрывается в философско-религиозном, общекультурном, милицейском, моральном и др. аспектах.

[9]   Студенты автора обходили это ограничения, записывая новые или отредактированные файлы не на свой компьютер, а на… один из форумов Mathcad. Эти файлы до сих пор где-то "болтаются".

[10]   Это и сейчас можно сделать, обратившись к серверу — http://twt.mpei.ac.ru/ochkov/Mathcad_12/mcexp802.exe.

[11]   В данной книге автор почти не затрачивает темы создания в среде Mathcad электронных книг с заголовками, оглавлениями, развитой навигационной системой (гиперссылками) и т.д., готовых к публикации, в том числе и в Интернете. Инструменты и подробные описания этой работы есть в Mathcad.

[12]   См. сноску 5 в Предисловии (стр. 3).

[13]   Эта тенденция затронула и многие политехнические музеи, где посетителям разрешается и трогать экспонаты, работать с ними.

[14]   Здесь можно было бы сказать «выбросила на рынок», но тут есть один нюанс. Дело в том, что на MAS была назначена слишком высокая цена: 15000 $US + 2500 $US/год. Выбрасывают на рынок ходовой товар, а MAS — это штучное изделие.

[15]   Под словом "нужный" подразумевается не только последняя версия Mathcad, но и старые ("древние") версии, необходимые именно для данного файла. Есть много примеров файлов, которые прекрасно работают в 8-й, например, версии Mathcad, но дают сбой в 12-й версии из-за того, что в некоторые инструменты счета внесены изменения (пример — рис. 1.57 с программой, которая работает в Mathcad 11, но стопорится в Mathcad 12). Это типичная иллюстрация поговорки: «Лучшее — враг хорошего».

[16]    Когда-то, лет 20 назад считалось, что персональный компьютер (ПК) без винчестера (накопителя на жестких дисках) — это не ПК. Теперь же можно считать, что ПК без Интернета — это тоже не ПК, не полноценный инструмент решения практических задач, а тем более организации досуга или учебы. Более того, автор заметил, что он не может работать на ПК без Интернета, даже в тех случаях, когда сам Интернет не нужен и даже вреден — отвлекает на просмотр пришедшей почты, на справки, без которых вполне можно обойтись, на посещение форумов и т. д. Такое чувство, что тебя на время заперли в комнате — выходить никуда не нужно, но работа тем не менее не идет. Автор опасался, что это начало какой-то новой формы нервного расстройства, пока не узнал, что это уже давно известный факт.

[17] Годятся и другие браузеры и другие компьютеры — карманные, встроенные в сотовые телефоны и др.

[18]   Повторяем, почти полная. Что стоит за этим "почти", будет рассказано в данной главе книги.

[19]   Можно также положиться на то, что о вашем расчете тут же "пронюхают" разного рода Интернет-поисковики (www.yandex.ru, www.google.ru и т. д.) и будут сообщать о нем потенциальным пользователям при формировании запросов. Хорошо также поработать с этими поисковиками и дополнить их базу ссылок информацией о новых расчетах.

[20]   "Незаметно" — это не совсем хорошо. Тут "пахнет" неким обманом, подлогом. Можно и нужно вносить в расчет изменения и, например, фиксировать их в отдельном документе, доступном посетителю сайта.

[21] Типичная (компромиссная) ситуация — покупается лицензия на установку Mathcad только на один компьютер, а ставится пакет на многие — в учебный класс, например.


 [VFO1]С нумерацией сносок у нас беда…