De nombreux auteurs d’applications fournissent aux programmeurs des composants pouvant être réutilisés dans d’autres programmes. Nous introduisons généralement ces composants tiers dans nos propres programmes et appelons des fonctions prêtes à l'emploi pour implémenter des fonctions relativement complexes. En fait, nous pouvons également publier des fonctions dans des composants tiers via le réseau pour fournir plus facilement des services à davantage d'utilisateurs.
Pour le développement .NET, les composants tiers peuvent être encapsulés via les technologies ASP.NET (pour les humains) ou Web Service (pour les machines). Ce qui suit utilise ASP.NET pour publier la fonction Execute dans le composant Matlab à titre d'exemple. Le principe est que Matlab a été installé sur le serveur.
Créez un nouveau site ASP.NET dans VS2005, cliquez avec le bouton droit sur le répertoire du site dans le volet Explorateur de solutions, sélectionnez Ajouter une référence et ajoutez le composant COM de Matlab : Bibliothèque de types d'application Matlab (version XX).
Ajoutez un contrôle TextBox, un Button et un Literal à la page Web. TextBox est utilisé pour saisir des expressions, Button confirme l'exécution et Literal génère les résultats. Ajoutez le code d'événement suivant pour appeler la fonction Execute dans le composant Matlab afin d'exécuter l'instruction 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
Exécutez ce site dans VS2005, entrez une expression dans la page Web qui apparaît, telle que "dsolve('Dx=x^2+5')", et les résultats seront s'affichera après avoir cliqué sur le bouton : "ans = 5^(1/2)*tan(5^(1/2)*t+5^(1/2)*C1)". Mais si vous utilisez IIS pour publier ce site, une erreur se produira lors de l'exécution. La raison en est qu'ASP.NET n'a pas l'autorisation de créer des composants. Selon le message d'erreur, nous devons ajouter une phrase au fichier web.config du site Web :
<identity impersonate="true" userName="xx" password="xx"/>
L'utilisateur spécifié ici doit être un utilisateur disposant des autorisations appropriées. du côté du serveur. Si non spécifié, l'authentification sera effectuée sur la page client. Bien entendu, il n'est pas sûr d'enregistrer les noms d'utilisateur et les mots de passe en texte brut dans web.config, et ils doivent être cryptés dans des applications réelles.
À cet égard, nous avons terminé la mise en ligne des fonctions d'évaluation d'expression Matlab. Vous pouvez demander à vos amis qui n'ont pas installé Matlab de se connecter à votre site Web pour utiliser les puissantes fonctions informatiques de Matlab. (Remarque : cet exemple est uniquement destiné à la démonstration. Les instructions puissantes et la boîte à outils de Matlab sont suffisantes pour permettre aux utilisateurs distants d'accéder à votre système de fichiers via cette page Web.)
En raison de la nature du protocole HTTP et des caractéristiques de l'exécution côté serveur, ceci type de conditionnement de composants tiers Convient généralement aux fonctions de traitement de données de publication, mais ne convient pas aux fonctions de contrôle de publication. Dans le même temps, cette méthode n'est pas adaptée aux services qui sont en temps réel ou nécessitent une préservation de l'état. Pour des raisons de sécurité, nous pouvons également réencapsuler des composants tiers et ajouter un filtrage des données et une gestion des exceptions.
Le principe est très simple. J'espère que vous pourrez discuter avec moi de la valeur de cette solution dans des applications pratiques.
Référence :
1. Li Honggen, application de l'algorithme MATLAB dans .NET
( http://www.microsoft.com/china/community/Column/25.mspx )
2. Matlab 7.1, documents d'aide liés au serveur Web Matlab