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

Windows Communication Foundation .NET Discussion :

Architecture WCF à revamper


Sujet :

Windows Communication Foundation .NET

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5
    Points : 6
    Points
    6
    Par défaut Architecture WCF à revamper
    Bonjour,

    J'ai construit un projet client-serveur en .Net 3.5, en utilisant les couches WCF et MEF (System.ComponentModel.Composition).
    Mon architecture ressemble au graph (pièce jointe Existant.png).

    J'ai l’impression que la DLL est instanciée à chaque Appel du client par WCF. Du coup, le plug-in également, qui contient des connexions ODBC.
    Malgré l’utilisation d’objets « static », je maitrise difficilement l’optimisation des connexions.

    La partie serveur devra être redondante en production. De ce fait, une troisième couche WCF va faire son apparition pour une communication entre les hosts.
    Je pense faire évoluer notre architecture selon le graph (pièce jointe Cible.png)

    Question : Pensez-vous que WCF soit la meilleure solution pour une communication entre un service Windows (Host) et un programme fenêtré (Exécutable + Dll).
    Si oui, les performances sont-elles meilleures avec un TCP local, Named Pipes ou MsgQueue ?
    Images attachées Images attachées   

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par maqfab Voir le message
    J'ai l’impression que la DLL est instanciée à chaque Appel du client par WCF. Du coup, le plug-in également, qui contient des connexions ODBC.
    Malgré l’utilisation d’objets « static », je maitrise difficilement l’optimisation des connexions.
    Tout dépend de comment tu instancies le service. Tu as deux possibilités :
    • faire en sorte que ton service soit un singleton : InstanceContextMode.Singleton
    • activer les sessions et du coup mettre InstanceContextMode.PerSession


    Je te propose d'utiliser la deuxième solution. La première peut devenir un calvaire si tu as plusieurs clients qui communiquent avec les services WCf de façon simultanée.

    Citation Envoyé par maqfab Voir le message
    La partie serveur devra être redondante en production. De ce fait, une troisième couche WCF va faire son apparition pour une communication entre les hosts.
    Je pense faire évoluer notre architecture selon le graph (pièce jointe Cible.png)
    Qu'entends-tu par "redondante" ? Il devra exister plusieurs instances de ton service ? Ton service sera hébergé plusieurs fois par des applications différentes ? Dans tous les cas si ton service WCF est bien implémenté et qu'il respecte les bonnes pratiques alors tu devras avoir deux DLL : une pour ton contrat de service et les contrats de données et la deuxième DLL devra contenir l'implémentation de ton contrat de service.

    Citation Envoyé par maqfab Voir le message
    Pensez-vous que WCF soit la meilleure solution pour une communication entre un service Windows (Host) et un programme fenêtré (Exécutable + Dll).
    Si oui, les performances sont-elles meilleures avec un TCP local, Named Pipes ou MsgQueue ?
    Si tu as affaire à une architecture SOA (Service Oriented Architecture - Architecture Orientée Service) alors WCF est la meilleure solution quand tu es dans le monde .Net Pour les performances si :
    • si le client et le service WCF se trouvent sur la même machine alors il est fortement recommandé d'utiliser les Named Pipes.
    • si le client et le service WCF se trouvent sur le même réseau et sont tous les deux faits avec la plateforme .Net alors TCP est fortement recommandé.
    • Pour ce qui concerne les Message Queue, tu en auras besoin uniquement si les clients doivent pouvoir communiquer avec le service même si ce dernier n'est plus actif du coup les requêtes (messages) sont mises en file d'attente en attendant que le service soit actif et donc traité les messages reçus.


    Sinon pour ne pas avoir à te casser la tête avec l'évolution du service WCF dans le futur je te recommande vivement d'utiliser la méthode utilisée par Sacha Barber dans son article ici. Cet même article montre aussi comment utiliser l'IoC avec WCF chose que tu veux faire avec MEF.
    Dernière modification par Invité ; 15/02/2013 à 21h51.

Discussions similaires

  1. N-Tier Architecture & WCF
    Par Heimerdi dans le forum C#
    Réponses: 4
    Dernier message: 22/10/2013, 14h03
  2. Architecture WCF - WPF
    Par CaptainChoc dans le forum Windows Presentation Foundation
    Réponses: 0
    Dernier message: 13/06/2012, 13h20
  3. Question d'architecture WCF.
    Par cedric.daniel dans le forum Windows Communication Foundation
    Réponses: 7
    Dernier message: 11/03/2009, 16h25
  4. [linq to SQL/WCF/Silverlight] Architecture
    Par anthyme dans le forum Général Dotnet
    Réponses: 11
    Dernier message: 28/02/2008, 11h10
  5. [Architecture] WCF Services
    Par leMarseillais dans le forum Windows Communication Foundation
    Réponses: 8
    Dernier message: 08/03/2007, 13h08

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