2008-11-18 5 views
1

Je développe une application client/serveur industriel (C++) avec de fortes exigences en temps réel. Je pense qu'il est temps de changer l'apparence de l'interface client - qui est développée dans MFC - mais je me demande quel serait le bon choix. Si je vais pour un client Web est-il un moyen d'échanger des données entre C++ et javascript autre que AJAX < -> Web service < -> COM? Les conditions requises pour le client Web sont les suivantes: actualisation des statuts rapides, commandes utilisateur, tablesComment conserver une application de serveur temps réel C++ avec une interface client Web moderne?

Répondre

0

Vous souhaiterez peut-être prendre en compte l'emplacement de vos données. Si votre application alimente une base de données back-end, vous pouvez écrire une application web en laissant votre code C++ intact - l'application web serait indépendante et offrirait des pages aux utilisateurs du web et parlerait directement à la base de données - Dans ce cas vous avez autant d'options, et plus, comme vous l'avez indiqué.

2

Mon équipe a dû prendre cette même décision il y a quelques mois ...

La chose cool de faire une application web serait que ce serait très facile à modifier par la suite. Même l'utilisateur de l'interface (avec un peu de savoir-faire) pourrait le modifier en fonction de ses besoins. Le logiciel personnalisé devient tellement plus facile.

Nous sommes allés avec une interface web et ajax semble le chemin à parcourir, c'était très réactif. D'autre part, en fonction de la force de vos besoins en temps réel, cela peut s'avérer difficile. Nous avons eu le défi de tracer des données en temps réel via un navigateur, nous avons fini par aller avec un plugin firefox pour dessiner l'intrigue. Si vous essayez simplement d'afficher des données texte en temps réel, cela ne devrait pas être un problème aussi important.

Exécutez quelques tests pour votre application spécifique et voyez à quoi il ressemble. Autre chose à considérer, si vous avez une page web comme interface avec votre serveur, gardez à l'esprit que vous devrez trouver un moyen de mettre à jour un client quand un autre change l'état du serveur si vous envisagez d'autoriser plusieurs interfaces à votre serveur.

1

Ecrivez un serveur HTTP sur votre serveur pour gérer les commentaires AJAX. Si vous ne souhaitez pas diffuser de fichiers, créez votre serveur sur un port non standard (par exemple, 8081) et utilisez un serveur Web standard pour la diffusion de la page Web. Maintenant, votre moteur AJAX communiquer avec le serveur sur le port Bizarro au lieu du port 80.

Mais ce n'est pas si difficile d'écrire la partie serveur de fichiers, aussi. Si vous faites cela, vous obtenez également de générer des pages Web à la volée avec vos données pré-remplies, si vous le souhaitez.

Google Desktop Search fait cela maintenant. Quand je recherche mon bureau pour 'foobar', l'URL qui ouvre est la suivante:

http://127.0.0.1:4664/search?q=foobar&flags=68&num=10

Dans ce cas, le 4664 est le port Bizarro. (Google Desktop dessert toutes les données ici, il utilise uniquement le port Bizarro pour éviter les conflits avec tout serveur web je pourrais être en cours d'exécution.)

1

Je construis habituellement mes applications 2 plié:

  1. Avoir le vrai lourd application-CLI seulement.Le protocole utilisé est généralement basé sur le texte, composé de demandes et de réponses.
  2. Enveloppez une interface graphique autour comme un autre processus qui parle au backend CLI.

L'interface Web est alors juste une autre interface graphique à enrouler. Il est également beaucoup plus facile d'intégrer une API basée sur REST/JSON sur l'interface CLI (traduire automatiquement les messages). Le débogage est également très facile à faire, car vous pouvez simplement vider les requêtes entre les 2 éléments et reproduire les bugs beaucoup plus facilement.

Questions connexes