|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : janvier 2007 Messages : 2 ![]() |
bonjour
quelqu'un pourait m'aider à resoudre ce probleme en programmtion ,car je connais pas bien le c. je vous remercie d'avnce Enoncé du projet On considère une application client-serveur pour laquelle les processus clients et les processus serveurs s’exécutent sur des machines différentes. L’application serveur est une application de type serveur bancaire. 1/ Les clients Des processus clients émettent deux types de requêtes à destination du serveur bancaire: - la requête de consultation permet à un client identifié par son nom, son prénom et un mot de passe, de consulter le solde du compte dont il précise l’identifiant A. - la requête de virement permet à un client identifié par son nom, son prénom et un mot de passe, de virer une somme depuis un compte A vers un autre compte B, A et B étant les deux identifiants des comptes. 2/ Le serveur Le serveur bancaire est composé de deux services et d’un traitement périodique. Il gère les comptes des clients dans une table placée en mémoire centrale. Il est accessible 24 heures sur 24. Les services Le service Consultation prend en compte les requêtes de consultation. Pour chacune d’elle, il vérifie à l’aide du nom, du prénom et du mot de passe, que le client peut bien accéder au compte dont l’identifiant A est fourni dans la requête. Si tel est le cas, il renvoie au client, le solde du compte. Sinon, il renvoie un message d’erreur. Le service Virement prend en compte les requêtes de virement. Pour chacune d’elle, il vérifie à l’aide du nom, du prénom et du mot de passe, que le client peut bien accéder aux deux comptes dont les identifiants A et B sont fournis. Si tel est le cas, il effectue le virement demandé et renvoie au client, les nouveaux soldes des comptes A et B. Si le client n’a pas accès à l’un des deux comptes ou aux deux comptes, le serveur renvoie un message d’erreur. Si le virement rend le solde du compte débité négatif, le serveur n’effectue pas le virement et renvoie un message d’erreur. Le traitement périodique Toutes les nuits, à minuit, un traitement périodique est déclenché. Ce traitement lit depuis une file de messages, un ensemble de requêtes déposées depuis sa dernière exécution, par différents organismes financiers. Chaque requête spécifie un nom, un prénom, un numéro de compte et une somme à créditer ou à débiter sur le montant du compte. Le traitement lit chaque requête et exécute l’opération qu’elle contient. La table des comptes Les informations concernant les comptes des clients sont stockées dans une table en mémoire centrale. Cette table est chargée au moment du démarrage du serveur. Une entrée de la table contient les informations suivantes : identifiant du compte, nom, prénom et mot de passe du détenteur du compte, solde du compte. Chaque compte a un identifiant différent. C’est une chaîne de caractères composée d’une lettre, 5 chiffres et une lettre. Chaque client a un mot de passe différent. Un mot de passe est une chaîne de caractères composée de un chiffre, 3 lettres et un chiffre. 1/ Proposez une architecture logicielle pour la partie serveur. Vous spécifierez notamment le nombre de ports de communication utilisés pour la communication, le type de protocole de communication choisi avec les clients, l’utilisation de processus lourd ou de processus légers. Vous argumenterez vos choix. 2/ Donnez un pseudo code détaillé, faisant apparaî tre les primitives de communication et appels système Linux, pour - un processus client ; - le processus serveur comprenant le service Consultation, le service Virement et le traitement périodique. |
|
|
00
|
|
|
#2 | |
![]() Inscription : mars 2004 Messages : 1 298 ![]() |
Citation:
il est a rendre pour quand l'exercice ? qu'as tu deja fait ? |
|
|
|
00
|
|
|
#3 | |
|
Invité de passage
![]() Inscription : janvier 2007 Messages : 2 ![]() |
bonjour
en fait je suis bloque sur l'architecture logicielle pour la partie serveur je sai que il faut utiliser tcp pour la connnexion. merci Citation:
|
|
|
|
00
|
|
|
#4 |
![]() Inscription : mars 2004 Messages : 1 298 ![]() |
si tu es bloqué sur la partie serveur et quie tu sais qu'il faut utiliser TCP, je pense que tu es bloqué un peut partout .
Alors plusieuyrs choix se propose a un peut tout les stade . Principe d'un serveur : ouverture d'une socket en ecoute sur un port X (TCP plutot que UDP car TCP "garantie" l'integrité de l'information) lorsqu'un client effectue une demande de connection : - Authentification du client - puis soit - lancement d'une thread (processus leger) avec "report" de la connection client ou lancement d'un process (fork ou exec.. , process lourd) avec report de la connection - ce "report permet a la socket d'ecoute d'etre liberé de sute et d'attendre une autre connection. cela c'est un principe "de base", on peut apres celon le choix d'architecture : - soit avoir autant de port que de type de client (consultation, virement, ....), peut obtimisé mais plus simple - soit 1 seul port pour tout type de client, mais un "message tcp" comportant le type de demande (beaucup plus obtimisé mais nécéssite le developpement d'un protocole au niveau du contenue du message TCP (ENTETE avec type de demande, action, ......) cette implementation peut necessité d'être mise au niveau de la premiere connection, avant les fork ou thread afin de choisir le processus ou thread destinataire de la demande . voila, ceci est juste un shema tres global. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com