Muchos autores de aplicaciones proporcionan a los programadores componentes que pueden reutilizarse en otros programas. Por lo general, introducimos estos componentes de terceros en nuestros propios programas y llamamos a funciones listas para usar para implementar funciones relativamente complejas. De hecho, también podemos publicar funciones en componentes de terceros a través de la red para brindar servicios a más usuarios de manera más conveniente.
Para el desarrollo de .NET, los componentes de terceros se pueden empaquetar a través de tecnologías ASP.NET (para humanos) o de servicios web (para máquinas). A continuación se utiliza ASP.NET para publicar la función Ejecutar en el componente Matlab como ejemplo. La premisa es que Matlab se ha instalado en el servidor.
Cree un nuevo sitio ASP.NET en VS2005, haga clic derecho en el directorio del sitio en el panel Explorador de soluciones, seleccione Agregar referencia y agregue el componente COM de Matlab: Biblioteca de tipos de aplicación Matlab (versión XX).
Agregue un TextBox, un Button y un control Literal a la página web. TextBox se utiliza para ingresar expresiones, Button confirma la ejecución y Literal genera los resultados. Agregue el siguiente código de evento para llamar a la función Ejecutar en el componente Matlab para ejecutar la instrucción 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 Como String
strMatLab = TextBox1.Text
Dim strResult As String = matlab.Execute(strMatLab)
strResult = strResult.Replace(Chr(10), "<br>")
strResult = strResult.Replace(" ", " ")
Yo .Literal1. Text = strResult
matlab.Quit()
End Sub
Ejecute este sitio en VS2005, ingrese una expresión en la página web que aparece, como "dsolve('Dx=x^2+5')", y los resultados se mostrará después de hacer clic en el botón: "ans = 5^(1/2)*tan(5^(1/2)*t+5^(1/2)*C1)". Pero si utiliza IIS para publicar este sitio, se producirá un error durante el tiempo de ejecución. El motivo es que ASP.NET no tiene permiso para crear componentes. Según el mensaje de error, debemos agregar una oración al archivo web.config del sitio web:
<identity impersonate="true" userName="xx" contraseña="xx"/>
El usuario especificado aquí debe ser un usuario con permisos relevantes en el lado del servidor. Si no se especifica, la autenticación se realizará en la página del cliente. Por supuesto, no es seguro guardar nombres de usuario y contraseñas en texto plano en web.config y deben estar cifrados en aplicaciones reales.
En este sentido, hemos completado el lanzamiento en línea de las funciones de evaluación de expresiones de Matlab. Puede notificar a sus amigos que no han instalado Matlab que inicien sesión en su sitio web para utilizar las potentes funciones informáticas de Matlab. (Nota: este ejemplo es solo para demostración. Las poderosas declaraciones y la caja de herramientas de Matlab son suficientes para permitir que usuarios remotos accedan a su sistema de archivos a través de esta página web).
Debido a la naturaleza del protocolo HTTP y las características de ejecución del lado del servidor, esto tipo de embalaje de componentes de terceros Generalmente adecuado para publicar funciones de procesamiento de datos, pero no adecuado para publicar funciones de control. Al mismo tiempo, este método no es adecuado para servicios que funcionan en gran medida en tiempo real o que requieren preservación del estado. Por razones de seguridad, también podemos volver a encapsular componentes de terceros y agregar filtrado de datos y manejo de excepciones.
El principio es muy simple. Espero que pueda discutir conmigo el valor de esta solución en aplicaciones prácticas.
Referencia:
1. Li Honggen, aplicando el algoritmo MATLAB en .NET
( http://www.microsoft.com/china/community/Column/25.mspx )
2. Matlab 7.1, documentos de ayuda relacionados con Matlab Web Server