IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Architecture Discussion :

Architecture client serveur avec taches critiques et gros calculs


Sujet :

Architecture

  1. #1
    Futur Membre du Club
    Inscrit en
    Mars 2009
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 23
    Points : 7
    Points
    7
    Par défaut Architecture client serveur avec taches critiques et gros calculs
    Bonjour,

    je dois réaliser un projet assez important aussi je me tourne vers vous pour avoir votre opinion/des conseils.

    Ma problématique concerne les languages avec lesquels programmer et les OS à choisir, et comment faire marcher tout ensemble.

    Je dois développer une architecture client-serveur(s), et je préfèrerais (par habitude) que le client tourne sous windows, avec fort probablement du c#. Mais si cela est trop problématique, je changerai.

    En quelques mots:
    - l'ensemble a pour objectif d'effectuer des calculs lourds, ainsi que faire tourner des taches critiques qui exigent fiabilité
    - client et serveur(s) savent effectuer les memes taches, les serveurs permettant juste de délocaliser les calculs sur d'autres ordinateurs, mais avec un rendu sur le client.
    - les serveurs hébergent aussi des taches critiques monitorées à distances par le client, voire pilotées par le client.

    Pour cela, je pensais mettre les serveurs sous linux, afin de diminuer les probabilités de plantage windows pour les taches critiques. L'objectif serait aussi, vu que client et serveurs vont faire les memes calculs, que le code soit déployable sur les 2 avec le maximum de compatibilité.

    A ce jour, je bute sur le fait que culturellement, j'ai toujours developpé sous windows et jamais sous linux; mais le caractère critique de certaines taches du serveur me font douter... Y aurait il un moyen de faire cohabiter tout ca facilement? Puis avoir assez confiance en windows et c# pour mettre aussi le serveur avec cette configuration? Quel serait le moyen le plus simple pour piloter/monitorer a distance des taches sur des serveurs... du ssh depuis le client?

    Qu'en pensez vous?

    Merci pour votre aide.

  2. #2
    Membre confirmé
    Avatar de teddyalbina
    Homme Profil pro
    Développeur .Net,C++
    Inscrit en
    Janvier 2008
    Messages
    466
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .Net,C++

    Informations forums :
    Inscription : Janvier 2008
    Messages : 466
    Points : 568
    Points
    568
    Par défaut
    Heu windows est très fiable . Après bon si c'est windows server 2000 c'est tendu.

    Pour le reste je ferais les libs qui font les calculs en C++, Avec par dessus une wrapper C++/CLI, et l'application serveur en C# (dotnet 3.0 min) en utilisant WCF pour la fiabilité et surtout la vitesse.

    En gros tu aurais le schéma suivant

    [serveur c#]
    [Wrapper C++/cli]
    [code natif]

    Cette configuration permet d'avoir la vitesse de C++ pour la calcul, la fiabilité de C# et WCF , le wrapper C++/CLi lui supprime l'utilisation de p/invoke et donc permet de garder la vitesse de calcul.

    Bref ce chainage est optimal. Je l'utilise sur une de mes applications qui utilise berkeleydb et je n'ai aucune perte de performance par rapport à la même application en C++ pure .

    Quel serait le moyen le plus simple pour piloter/monitorer a distance des taches sur des serveurs... du ssh depuis le client?
    WMI tout simplement, windows est le seul os a avoir une instrumentation normalisé donc il ne faut pas hésiter. Un petit lien rapide :
    http://fr.wikipedia.org/wiki/Windows...nstrumentation

    Tu peux même créer des scripts powershell

  3. #3
    Futur Membre du Club
    Inscrit en
    Mars 2009
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 23
    Points : 7
    Points
    7
    Par défaut
    merci pour ces éléments de réponse...

    Quid de la fiabilité pour les taches critiques qui exigent un systeme qui ne plante pas?

  4. #4
    Membre confirmé
    Avatar de teddyalbina
    Homme Profil pro
    Développeur .Net,C++
    Inscrit en
    Janvier 2008
    Messages
    466
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .Net,C++

    Informations forums :
    Inscription : Janvier 2008
    Messages : 466
    Points : 568
    Points
    568
    Par défaut
    Citation Envoyé par marsupcs Voir le message
    merci pour ces éléments de réponse...

    Quid de la fiabilité pour les taches critiques qui exigent un systeme qui ne plante pas?
    Pourquoi l'os planterais ? Le serveur w2k3 de ma boite fait tourner des applications critique et sa ne bronche pas d'un poil. Du moment que tes applications sont fiable, et que tu code correctement c-a-d pas en faisant nawak dans l'os alors que sa sert a rien dans 99.99% des cas y'a aucune raison pour que sa plante.

    A noter que pour des perfs optimal pense une fois ton application prête a etre déployé a désactiver le gui de winserv et les services qui servent à rien. Bon si tu utilise w2k8 core le coup du gui tu t'en fout y'en a pas

  5. #5
    Futur Membre du Club
    Inscrit en
    Mars 2009
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 23
    Points : 7
    Points
    7
    Par défaut
    ok, merci pour ces infos.

    tu aurais des suggestions sur comment piloter les serveurs, sans passer par Remote Desktop Control?

  6. #6
    Membre confirmé
    Avatar de teddyalbina
    Homme Profil pro
    Développeur .Net,C++
    Inscrit en
    Janvier 2008
    Messages
    466
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .Net,C++

    Informations forums :
    Inscription : Janvier 2008
    Messages : 466
    Points : 568
    Points
    568
    Par défaut
    Citation Envoyé par marsupcs Voir le message
    ok, merci pour ces infos.

    tu aurais des suggestions sur comment piloter les serveurs, sans passer par Remote Desktop Control?
    Powershell, la v2 est d'ailleurs assez bien foutut a ce niveau. Faudrait que je te trouve l'article que j'ai lu à ce sujet.

  7. #7
    Futur Membre du Club
    Inscrit en
    Mars 2009
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 23
    Points : 7
    Points
    7
    Par défaut
    Merci teddyalbina pour tes elements de reponses...

    En fait mon probleme est le suivant: j'ai assez peu d'experience en termes d'architecture systeme car je n'ai pas trop suivi les evolutions techniques des dernieres annees; je programme plutot tout ce qui est code de calcul et proprietaire, mais pas tout le reste...

    Ma problematique serait de pouvoir facilement delocaliser l'execution de code de calcul depuis un client ou on saisi un script de calcul... Quel serait technologiquement le moyen le plus simple?

  8. #8
    Membre confirmé
    Avatar de teddyalbina
    Homme Profil pro
    Développeur .Net,C++
    Inscrit en
    Janvier 2008
    Messages
    466
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .Net,C++

    Informations forums :
    Inscription : Janvier 2008
    Messages : 466
    Points : 568
    Points
    568
    Par défaut
    Citation Envoyé par marsupcs Voir le message
    Merci teddyalbina pour tes elements de reponses...

    En fait mon probleme est le suivant: j'ai assez peu d'experience en termes d'architecture systeme car je n'ai pas trop suivi les evolutions techniques des dernieres annees; je programme plutot tout ce qui est code de calcul et proprietaire, mais pas tout le reste...

    Ma problematique serait de pouvoir facilement delocaliser l'execution de code de calcul depuis un client ou on saisi un script de calcul... Quel serait technologiquement le moyen le plus simple?
    Sur le client tu saisie du code?

  9. #9
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Points : 2 336
    Points
    2 336
    Par défaut
    Je vois pas l'intérêt de développer une sur couche inutile de wrapper en bas niveau (c++) mise à part si tu dois faire de vrais appels à des interactions de bas niveau tels que parallélisations (et encore il me semble que .NET fournit des API de haut niveau pour gérer les cas les plus complexes de synchronisation)

    Et je vois pas vraiment ce que tu veux faire avec du remoting si ce n'est qu'accéder à de simples tâches de stop - resume - start de processus

    Tu peux le faire au travers d'une simple interface web qui te permettra de gérer tes serveurs pour le faire.

  10. #10
    Membre confirmé
    Avatar de teddyalbina
    Homme Profil pro
    Développeur .Net,C++
    Inscrit en
    Janvier 2008
    Messages
    466
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .Net,C++

    Informations forums :
    Inscription : Janvier 2008
    Messages : 466
    Points : 568
    Points
    568
    Par défaut
    Le but de ma couche wrapper c'est juste pour quand tu as besoin de toute la vitesse de C.. je n'ai pas dis que c'était la meilleur solution, dans le cas que j'ai eu oui mais faut pas généraliser.

    Pareil pour le remoting c'est une idée maintenant oui la coup de l'interface web est aussi pertinent a voir en fonction du context

  11. #11
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 330
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 330
    Points : 36 849
    Points
    36 849
    Par défaut Grid computing
    Bonjour,

    Un certain nombre de standards existent pour différents modèles/spécialisation de ce qu'on appelle "grille de calcul".

    Il n'est pas nécessaire d'avoir à faire travailler des milliers de calculateurs ensemble, une petite dizaine suffit...
    Ni même de mettre en œuvre l'ensemble des fonctionnalités...

    Par contre l'existant vous offre un canevas dans lequel reformuler vos besoins et mesurer l'effort entre refaire en spécifique, canibaliser ou utiliser tel que.

    L'URL The Grid EcoSystem pourrait être un bon point de départ
    Cordialement,

  12. #12
    Futur Membre du Club
    Inscrit en
    Mars 2009
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 23
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    en fait, je pense que le concept de script n'est pas adapte a mon besoin car c'est plutot du code vraiment oriente objet et assez lourd que l'utilisateur doit saisir . Je pense plutot utiliser un principe de plugin (genre dll), que le client peut soit executer, soit transferer a un serveur pour effectuer le meme calcul.

  13. #13
    Membre confirmé
    Avatar de teddyalbina
    Homme Profil pro
    Développeur .Net,C++
    Inscrit en
    Janvier 2008
    Messages
    466
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .Net,C++

    Informations forums :
    Inscription : Janvier 2008
    Messages : 466
    Points : 568
    Points
    568
    Par défaut
    Citation Envoyé par marsupcs Voir le message
    Bonjour,

    en fait, je pense que le concept de script n'est pas adapte a mon besoin car c'est plutot du code vraiment oriente objet et assez lourd que l'utilisateur doit saisir . Je pense plutot utiliser un principe de plugin (genre dll), que le client peut soit executer, soit transferer a un serveur pour effectuer le meme calcul.
    Ton client saisit du code C# ? que tu envoie sur ton serveur qui compile, execute et renvoie le résultat ?

    En gros ton client a une interface il saisit du code c#, puis il choisit execution locale ou distante, si distante le code est envoyé au serveur compilé, exécuter puis le résultat est envoyé

  14. #14
    Futur Membre du Club
    Inscrit en
    Mars 2009
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 23
    Points : 7
    Points
    7
    Par défaut
    c'est l'idee... comment le realiser le plus facilement possible?

    Merci pour l'aide

  15. #15
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Points : 2 336
    Points
    2 336
    Par défaut
    as tu réellement besoin de transférer du code qui serait compilé et executé par la suite ?????

    pourquoi ne pas utilisé des webservices ? ou alors développé ton propre protocole qui permetterait l'exécution de commande à distance (même si les web services le font mieux ...)

  16. #16
    Futur Membre du Club
    Inscrit en
    Mars 2009
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 23
    Points : 7
    Points
    7
    Par défaut
    non, la compilation peut se faire en local; je voudrais juste que l'execution se fasse a distance...
    un peu comme sous linux ou on peut se logger sur une machine distante et lui faire executer un programme!
    La meme chose en windows, ca serait le reve... Est-ce que ca existe?

  17. #17
    Membre confirmé
    Avatar de teddyalbina
    Homme Profil pro
    Développeur .Net,C++
    Inscrit en
    Janvier 2008
    Messages
    466
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .Net,C++

    Informations forums :
    Inscription : Janvier 2008
    Messages : 466
    Points : 568
    Points
    568
    Par défaut
    Ah donc si je comprend bien ton client tape du code, qui est compilé en local le programme (donc pas une dll ?) est envoyé sur le serveur puis exécuter, le client lui peut se connecter à un service et appeler le programme quand il veut en lui passant des paramètres .

    J'ai bon ?

    Si c'est ça tu dois simplement avoir une application que les clients peuvent appeler à distance et qui executera leur code (en fait execute leur appli) cette application peut exposer la liste des appli qu'elle gère via un service web (je te conseil wcf pour le réseau) disont. C'est pas sorcier à mettre en place .

  18. #18
    Futur Membre du Club
    Inscrit en
    Mars 2009
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 23
    Points : 7
    Points
    7
    Par défaut
    en fait, l'idee que je m'en fais evolue au fur et a mesure de vos suggestions... Que ce soit une dll ou un executable, ca revient a peu pres a la meme chose si le serveur load la dll au sein d'un programme standart.

    Tu as des noms a me donner pour le type de programme dont tu me parles, avec un webservice?

    merci !

  19. #19
    Futur Membre du Club
    Inscrit en
    Mars 2009
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 23
    Points : 7
    Points
    7
    Par défaut
    j'ai trouve psexec... Y en a t-il de plus evolues?

Discussions similaires

  1. Architecture Client/Serveur en java avec les sockets
    Par ram-0000 dans le forum Réseaux
    Réponses: 0
    Dernier message: 03/04/2013, 10h44
  2. Architecture Client/Serveur avec les SOCKET
    Par Zodiark dans le forum Langage
    Réponses: 2
    Dernier message: 26/05/2011, 14h11
  3. Réponses: 1
    Dernier message: 22/12/2009, 14h06
  4. Application avec architecture client/serveur
    Par loreleï85 dans le forum Développement
    Réponses: 4
    Dernier message: 09/05/2007, 08h16
  5. [SOCKET] connexion client serveur avec applet
    Par kaiser2003 dans le forum Applets
    Réponses: 2
    Dernier message: 06/10/2004, 22h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo