2009-03-25 14 views
0

J'ai un système que je conçois où nous utilisons 4 PC spécialisés que nous fabriquons en interne qui ont 16 ports série (db-9 RS232) J'ai besoin de communiquer avec 64 unités près simultanément (4x16) et gérer les communications. Voici le modèle que je suis venu avec et je suis sollicitant leurs commentairesmodèle d'application distribuée, serveur et plusieurs clients (le client peut fonctionner sur le serveur)

serveur: Runs sur un seul système et coordonne les applications clientes. Maintient une machine d'état maître et s'assure que les clients sont en phase de verrouillage avec cette machine d'état. (Par exemple, toutes les unités font la tâche A, quand la dernière est terminée, toutes les unités font la tâche B).

Communique via .net remoting? WCF?

Client: Peut fonctionner sur le même système que le serveur. Gère tous les IO. Gère la logique métier pour l'exécution réelle de la tâche (mauvaise idée?) Signale l'état via Remoting/WCF via des événements de notification (par exemple INotifyPropertyChanged).

Je n'ai jamais travaillé avec .net remoting ou n'importe quel genre d'applications distribuées donc je suis un novice total à cela, mais j'apprends vite. La documentation et les conseils communautaires seraient grandement appréciés à ce stade.

Répondre

1

Si je vous je lirait sur la conception du système distribué. Généralement, c'est une mauvaise idée d'avoir un seul point de défaillance dans un système (un PC spécial est le "serveur" et tous les autres doivent communiquer avec lui.)

Mais dans votre cas, il pourrait très bien être n'a pas d'importance.

Lire sur la conception de systèmes distribués.

L'API que vous choisissez n'est pas la chose la plus importante, je dirais. Vous devez d'abord planifier l'architecture et le comportement que vous souhaitez obtenir dans différents scénarios (comme l'un des PC devient AWOL). Juste une réaction rapide à la lecture de vos demandes, je voudrais regarder dans un système de pub/sous distribué. Comment vous implémentez le pub/sous vous appartient. Vous pouvez utiliser MSMQ, ou WCF et WS-Eventing, ou ....

+0

C'était une réponse très utile et informative, merci. C'est très bien le cas ici, si l'on descend, ce n'est pas grave. – Firoso

Questions connexes