Многие авторы приложений предоставляют программистам компоненты, которые можно повторно использовать в других программах. Обычно мы вводим эти сторонние компоненты в свои собственные программы и вызываем готовые функции для реализации относительно сложных функций. Фактически, мы также можем публиковать функции в сторонних компонентах через сеть, чтобы удобнее предоставлять услуги большему количеству пользователей.
Для разработки .NET сторонние компоненты могут быть обернуты с помощью технологий ASP.NET (для людей) или веб-служб (для компьютеров). Ниже в качестве примера используется ASP.NET для публикации функции Execute в компоненте Matlab. Предполагается, что Matlab установлен на сервере.
Создайте новый сайт ASP.NET в VS2005, щелкните правой кнопкой мыши каталог сайта на панели обозревателя решений, выберите «Добавить ссылку» и добавьте COM-компонент Matlab: Библиотека типов приложения Matlab (версия XX).
Добавьте на веб-страницу TextBox, кнопку и элемент управления Literal. TextBox используется для ввода выражений, Button подтверждает выполнение, а Literal выводит результаты. Добавьте следующий код события для вызова функции Execute в компоненте Matlab для выполнения оператора Matlab:
Protected Sub Button1_Click(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles Button1.Click
Dim matlab As New MLApp.MLApp
Dim strMatLab As String
strMatLab = TextBox1.Text
Dim strResult As String = matlab.Execute(strMatLab)
strResult = strResult.Replace(Chr(10), "<br>")
strResult = strResult.Replace(" ", " ")
Me .Literal1. Text = strResult
matlab.Quit()
End Sub
Запустите этот сайт в VS2005, введите выражение на появившейся веб-странице, например «dsolve('Dx=x^2+5')», и результаты будут будет отображаться после нажатия кнопки: «ans = 5^(1/2)*tan(5^(1/2)*t+5^(1/2)*C1)». Но если вы используете IIS для публикации этого сайта, во время выполнения произойдет ошибка. Причина в том, что у ASP.NET нет разрешения на создание компонентов. Согласно сообщению об ошибке, нам нужно добавить предложение в файл web.config веб-сайта:
<identity impersonate="true" userName="xx" pass="xx"/>
Указанный здесь пользователь должен быть пользователем с соответствующими разрешениями. на стороне сервера. Если не указано, аутентификация будет осуществляться на странице клиента. Конечно, сохранять имена пользователей и пароли в виде обычного текста в web.config небезопасно, и в реальных приложениях они должны быть зашифрованы.
В связи с этим мы завершили онлайн-релиз функций оценки выражений Matlab. Вы можете попросить друзей, которые не установили Matlab, войти на ваш веб-сайт и использовать мощные вычислительные функции Matlab. (Примечание. Этот пример предназначен только для демонстрации. Мощных операторов и набора инструментов Matlab достаточно, чтобы позволить удаленным пользователям получить доступ к вашей файловой системе через эту веб-страницу.)
Из-за природы протокола HTTP и особенностей выполнения на стороне сервера это вид упаковки сторонних компонентов. Обычно подходит для публикации функций обработки данных, но не подходит для публикации функций управления. В то же время этот метод не подходит для сервисов, которые работают в режиме реального времени или требуют сохранения состояния. По соображениям безопасности мы также можем повторно инкапсулировать сторонние компоненты и добавить фильтрацию данных и обработку исключений.
Принцип очень прост. Надеюсь, вы сможете обсудить со мной ценность этого решения для практического применения.
Ссылка:
1. Ли Хунген, применение алгоритма MATLAB в .NET
( http://www.microsoft.com/china/community/Column/25.mspx ).
2. Matlab 7.1, справочные документы, связанные с веб-сервером Matlab.