Muitos autores de aplicativos fornecem aos programadores componentes que podem ser reutilizados em outros programas. Geralmente introduzimos esses componentes de terceiros em nossos próprios programas e chamamos funções prontas para implementar funções relativamente complexas. Na verdade, também podemos publicar funções em componentes de terceiros através da rede para fornecer serviços a mais usuários de forma mais conveniente.
Para desenvolvimento .NET, componentes de terceiros podem ser agrupados por meio de tecnologias ASP.NET (para humanos) ou Web Service (para máquinas). A seguir, usamos ASP.NET para publicar a função Execute no componente Matlab como exemplo. A premissa é que o Matlab esteja instalado no servidor.
Crie um novo site ASP.NET no VS2005, clique com o botão direito no diretório do site no painel Solution Explorer, selecione Adicionar Referência e adicione o componente COM do Matlab: Matlab Application (versão XX) Type Library.
Adicione um TextBox, um Button e um controle Literal à página da web. TextBox é usado para inserir expressões, Button confirma a execução e Literal gera resultados. Adicione o seguinte código de evento para chamar a função Execute no componente Matlab para executar a instrução 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
Execute este site no VS2005, insira uma expressão na página da web que aparece, como "dsolve('Dx=x^2+5')", e os resultados serão será exibido após clicar no botão: "ans = 5^(1/2)*tan(5^(1/2)*t+5^(1/2)*C1)". Mas se você usar o IIS para publicar este site, ocorrerá um erro durante o tempo de execução. O motivo é que o ASP.NET não tem permissão para criar componentes. De acordo com a mensagem de erro, precisamos adicionar uma frase ao arquivo web.config do site:
<identity impersonate="true" userName="xx" password="xx"/>
O usuário especificado aqui deve ser um usuário com permissões relevantes no lado do servidor. Se não for especificado, a autenticação será realizada na página do cliente. Obviamente, não é seguro salvar nomes de usuário e senhas em texto simples no web.config e eles devem ser criptografados em aplicativos reais.
Nesse sentido, concluímos o lançamento online das funções de avaliação de expressão do Matlab. Você pode notificar amigos que não instalaram o Matlab para fazer login no seu site para usar as poderosas funções de computação do Matlab. (Nota: Este exemplo é apenas para demonstração. As instruções poderosas e a caixa de ferramentas do Matlab são suficientes para permitir que usuários remotos acessem seu sistema de arquivos através desta página da web.)
Devido à natureza do protocolo HTTP e às características da execução no lado do servidor, isso tipo de embalagem de componentes de terceiros Geralmente adequado para funções de processamento de dados de publicação, mas não adequado para funções de controle de publicação. Ao mesmo tempo, este método não é adequado para serviços que sejam altamente em tempo real ou que exijam preservação do estado. Por motivos de segurança, também podemos reencapsular componentes de terceiros e adicionar filtragem de dados e tratamento de exceções.
O princípio é muito simples. Espero que você possa discutir comigo o valor desta solução em aplicações práticas.
Referência:
1. Li Honggen, aplicando o algoritmo MATLAB em .NET
( http://www.microsoft.com/china/community/Column/25.mspx )
2. Matlab 7.1, documentos de ajuda relacionados ao Matlab Web Server