Bonjour à tous !
je me permets de créer ce post, car j'ai un projet à rendre pour ma licence info pour la matière "Linux - programmation système et réseau" et j'avoue que je ne sais pas du tout quoi faire.
Si quelqu'un peut me donner des pistes...j'ai beau avoir réviser mes cours plusieurs fois, cette matière est toujours pour moi aussi obscur et abstraite.
Merci d'avance.
Pour la question 1, je pense qu'il faut décrire les mécanismes logicielles du système qui sont utilisés.
Pour la qestion 2, c'est plus de la programmation système, là je n'y connait pas grand chose...en cours on voit beaucoup la partie système avec des fonctions de temps en temps...sinon jamais de code C...Nada !
Voici le sujet donné :
"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.
Travail demandé
Obligatoire noté sur 5
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.
Facultatif
- Codez un client de l’application, le service Consultation et le service Virement en C
sous Linux. "
Partager