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.
Partager