русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Web-интерфейс к пакету Mathematica в информационно-образовательной среде


Дата добавления: 2015-07-23; просмотров: 1346; Нарушение авторских прав


В работе рассматривается разработка многопользовательского интерфейса к пакету Mathematica версии 4.0 и реализация его в информационно-образовательной среде высшего учебного заведения.

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

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

Первое направление опирается на идеи программированного обучения. В его рамках разрабатываются и эксплуатируются автоматизированные обучающие системы по различным учебным дисциплинам.

Второе направление компьютеризации обучения является как бы вторичным приложением компьютеризации различных отраслей человеческой деятельности (науки, техники, экономики и др.). Это отдельные программы, пакеты программ, элементы автоматизированных систем, предназначенные для автоматизации трудоемких расчетов, оптимизации, исследования свойств объектов и процессов на математических моделях и т.п.

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

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

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



Пакет Mathematica [1] создан компанией Wolfram Research для выполнения необходимых математических вычислений. При этом сложность вычислений практически не ограничена, т.к. пакет включает специальный язык программирования, с помощью которого можно реализовать необходимые для расчетов, но отсутствующие в пакете функции. В дополнение к встроенному языку программирования, существует возможность использования внешних процедур, которые могут быть написаны на разных языках программирования (Си, С++, Java) и выполнены в виде специального исполняемого модуля.

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

  1. Для проведения расчетов Вам не нужно приобретать пакет Mathematica, который имеет для граждан России очень внушительную стоимость.
  2. Для комфортной работы с пакетом Вам не нужен мощный компьютер, т.к. все вычисления выполняются на сервере. Удобно работать можно даже на «тонком клиенте» - компьютере, имеющем небольшую производительность, но способном работать с сервером.
  3. Написав соответствующим образом Web-интерфейс можно сильно упростить взаимодействие с ядром, тем самым, облегчив и ускорив работу пользователей. Данный вариант очень удобно использовать при создании каких-либо работ в рамках самостоятельной работы студентов.

Основой построения взаимодействия между модулями является интерфейс MathLink. Изначально MathLink был реализован для использования программами на языке Си, но затем появились его варианты для С++ и Java (интерфейс JLink), что расширяет возможности и распространение этой технологии реализации расчетного модуля программы. При создании собственного программного продукта Вам не нужно заботиться о написании расчетного модуля – очень удобно использовать расчетное ядро Mathematica, при помощи MathLink. При этом нет необходимости тестировать работу ядра, т.к. оно уже прошло всевозможные тесты и показало свою отличную работоспособность, и Вы сэкономите много времени и сил.

С помощью этой технологии можно реализовать удаленное использование пакета Mathematica через сеть Интернет. Пользовательским интерфейсом в такой реализации будет Web-браузер на клиентском компьютере, расчетной частью будет ядро Mathematica. Взаимодействие между пользовательским интерфейсом и ядром будет происходить посредством Web-сервера и работающего под его управлением CGI-модуля, как наиболее гибкой и эффективной в настоящее время технологии. CGI-модуль может быть реализован на любом языке программирования, но лучшим, с точки зрения скорости работы, является использование языка Си, что хорошо укладывается в вопрос сопряжения модуля с ядром Mathematica при помощи интерфейса MathLink.


Рис.1 Схема взаимодействия клиента и сервера при работе с Web-интерфейсом

Опишем вкратце процесс взаимодействия пользователя с пакетом Mathematica через сеть Интернет, изображенный на рис.1. Пользователь получает с Web-сервера HTML-документ, содержащий поле ввода команд на языке Mathematica. Вводит в это поле команды, описывающие расчеты, которые должна выполнить Mathematica; ввод завершается нажатием на кнопку «Выполнить». При этом Web-браузер посылает введенные пользователем данные Web-серверу по протоколу HTTP, который, в свою очередь, передает их CGI-модулю, используя интерфейс CGI. CGI-модуль обрабатывает полученные данные и передает их ядру при помощи интерфейса MathLink. Ядро производит синтаксический разбор полученной информации и производит необходимые расчеты. Результаты и сообщения об ошибках посредством интерфейса MathLink передаются CGI-модулю, который на их основе создает динамический HTML-документ и через интерфейс CGI передает его Web-серверу. Web-сервер посылает документ по протоколу HTTP Web-браузеру, который отображает его на экране клиентского компьютера.

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

Любая программа должна начинать работу с ядром пакета Mathematica с вызова функции MLInitialize. При работоспособном ядре функция возвращает структура типа MLEnvironment, в противном случае результатом будет NULL:

Mlenvironment env;
Env = MLInitialize(NULL);
if(env == NULL) clean_up_and_exit(); //проверка работоспособности ядра

Работа с расчетным ядром начинается с создания соединения. MathLink позволяет при создании соединения указать, каким образом планируется осуществлять взаимодействие. В нашем случае каждый раз будет запускаться новый экземпляр ядра на том же компьютере, на котором функционирует Web-сервер. Для создания соединения используется функция MLOpen:

MLINK lp;
int argc=4;
Char *argv[5] = {“-linkname”, “c:\\Mathematica\math -mathlink”, “-linkmode”, “launch”, NULL);
lp = MLOpen(argc, argv);

После создания соединения можно передавать ядру выражения. Все данные между ядром и прикладной программой передаются посредством разнообразных пакетов. Каждый тип пакетов ориентирован на свою область использования. Например, можно передавать выражения для расчета с использованием функции MLPutFunction и указанием имени математической функции, скажем, «Plus».

Наиболее удобным для нас способом является передача выражений на внутреннем языке пакета Mathematica в виде текстовых строк:

char *expr;
expr = “Solve[x^3 + a x + b == 0, x]”;
MLPutFunction(MathLink, "EvaluatePacket", 1);
MLPutFunction(MathLink, "ToString", 1);
MLPutFunction(MathLink, "ToExpression", 1);
MLPutString (MathLink, expr);
MLEndPacket(MathLink);

Переданные ядру данные будут обработаны. Результатом обработки станут те или иные пакеты (с результатами, либо кодами ошибок), которые программа должна правильно интерпретировать. Для работы с пакетами, посылаемыми ядром необходимо создать цикл обработки полученных пакетов. Об окончании сеанса свидетельствует получение пакета ReturnPacket, при получении которого необходимо вызвать функцию, обрабатывающую результат – MLGetString:

while (MLNextPacket(MathLink)!=RETURNPKT) MLNewPacket(MathLink);

MLGetString(MathLink, &Result);

Финальной стадией является разрыв установленного соединения вызовом функции MLClose и завершение работы с расчетным ядром при помощи функции MLDeinitialize:

MLClose(MathLink);
MLDeinitialize(env);

Существенную сложность при разработке интерфейса вызвала необходимость использования команд вывода графики. Внутренний язык пакета Mathematica позволяет вывести результаты расчетов в графическом (двух- и трехмерном) виде. Для этого существует около десятка различных команд. Ядро Mathematica при использовании этих команд выдает изображения в формате PostScript, обработка которого сложна и в данный момент не применяется. Вместо этого используется преобразование средствами самого пакета Mathematica изображений в формат GIF. Этот формат является основным для графики в сети Интернет. Полученные графические файлы без дополнительных преобразований передаются пользователю.

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

Описанная выше технология позволяет пользователям производить удаленные вычисления с использованием пакета Mathematica. При каждом обращении к CGI-модулю производится запуск нового экземпляра расчетного ядра Mathematica. Это обстоятельство обуславливает невозможность осуществить нормальный сеанс работы, возможно лишь проведение одноразовых вычислений. В то же время запуск отдельных экземпляров ядра позволяет осуществить независимую работу нескольких пользователей. Максимальное значение одновременно работающих пользователей ограничено вычислительной мощностью сервера.

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

С работой разработанного интерфейса можно познакомиться по адресу http://rtuis.miem.edu.ru/alex/math/index.htm

 



<== предыдущая лекция | следующая лекция ==>
Расчет характеристик коротких и длинных линий с помощью пакета Mathematica | Этапы решения задачи на ЭВМ


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.137 сек.