ricou94
État :
Absent
|
Bonsoir dédé info ! Dans le sujet posé, les conflits liés au matériel, sont sencées être résolues puisque les nouveaux équipements et l'application ont fonctionnés pendant un mois à l'essai.
Si il y avait eu conflit matériel, le problème aurait tout de suite été visible et donc sollutionné par la maintenance informatique. De plus, le système se connecte bien à internet, il y a donc, que notre vieille application de comptabilité qui ne se connecte pas.
Dans notre cas, il s'agirait donc, d'une erreur d'exécution : (erreur survenue un beau jour, on ne sait pas pourquoi).
Les causes de ce type de plantage peuvent être multiples et classées en deux cathégories :
- 1. Les erreurs liées à l'utilisateur (ici le commis en comptabilité).
- Un utilisateur non informaticien, (ici, le commis en comptabilité), n'a peut-être pas eu la formation nécessaire, et de ce fait, n'a pas entré les bons paramètres ou n'a pas activé la bonne option.
Il est à noter, qu'un programme qui fonctionnait sur de vieux ordinateurs et donc, de vieux systèmes d'exploitation n'est pas forcément orienté objet.
De ce fait, ce programme est dit "statique", puisqu'il ne traite qu'un certain types d'évènements et surtout de façon "linéaire" et monotâche.
dans notre cas, l'utilisateur est sencé avoir saisi des données avant de se connecter.
Suposons que notre vieux programme (peut-être développé dans les années 90), ait un champ : "adresse internet de la maison mère", et que le commis possède un numéro d'identification pour se connecter à cette maison mère. Bêtement, le commis va compléter ces champs en entrant les données. Que se passe-t-il si notre commis, a accidentellement fait une erreur de saisie (adresse internet en majuscule, par exemple) ?
Dans le cas où le programmeur a bien fait son travail, chaque données saisies sera validée avec une fonction de type bolléen qui renverra "true" si il n'y a pas d'erreur. Notre vieux programme pourra ainsi continuer à fonctionner sans dommage puisque les données précédemments entrées par notre commis seront comment être traitées.
Dans le cas où cette fonction renverrait "false", le programme s'arrêterait et renverrait un message d'erreur qui inviterait le commis à resaisir les données erronnées en lui indiquant la cause de son erreur.
Si cette fonction n'a pas été définie (ou que, lors de la conception du dit programme, l'erreur n'a pas été "pensée" par le développeur,) le système va se "bloquer". En effet, dans un programme développé sous dos, les données saisies servent de paramètres à des fonctions / procédures. Dans notre exemple, on a besoin de l'adresse de la maison-mère, et du numéro d'identification pour se connecter.
Dans notre programme on aura les lignes suivantes :
input "entrez l'adresse internet de la maison mère : ",net_maison_mere
input "entrez le numéro d'identification : ",numero_identification
valide = testdonnees (net_maison_mere, numero_identification) : 'fonction définie par le programmeur
if valide = true then
connect (net_maison_mere, numero_identification) :
else
erreur_saisie ()
endif
Dans ce petit exemple on voit que les instructions sont traitées de façon linéaires. Et de surcroît, le programme ne connaît pas les données saisies. (le développeur n'a pas jugé bon de mettre par exemple l'adresse de la maison mère dans une constante, puisque cette adresse peut changer, et qu'il faudrait recompiler le programme pour qu'il fonctionne en cas de changement de cette adresse). Le programmeur va donc préférer intégrer ces données dans une base de données. Ainsi les données saisies, seront comparées avec les données de cette base puis validées. Si cette adresse n'est pas valide, le programmeur demandera à l'utilisateur si il veut définir cette adresse comme une nouvelle adresse. Si c'est oui, cette nouvelle adresse deviendra valide lors de sa prochaine utilisation puisqu'elle sera intégrée à la base. L'adresse étant validée, la connection va se faire, mais dans le vide puisque la maison mère n'a pas été appelée. Le programme va donc rester connecté mais en bloquant le système puisqu'il attend une valeur de retour. (sous dos, la pluspart des programmes ne se connectaient pas à internet. C'était un système intranet).
- - Dans une communication internet il y a au moins deux personnes :
Dans notre cas, il s'agit du commis en comptabilité et de la maison mère qui doit être interrogée de façon hebdomadaire. Rappelons que le programme a été écrit dans les années 90, et que les e-mails sont, à cette époque peut répandus. Pour des raisons de sécurités et de praticités, la maison-mère décide de modifier tout son site. Notre commis se connecte, le programme s'exécute mais ne récupère pas les données car elles ont été déplacées par la maison-mère. Si dans ces données, il y avait le signal pour arrêter la connection, le système peut être bloqué. Dans ce type d'erreur (lié à l'homme), il faut généralement pratiquer une formation. Tout d'abord, au niveau des utilisateurs du programme (ils doivent savoir quoi saisir, et où). Si le développeur du programme est un informaticien de l'entreprise utilisant ce programme, il faut le remettre à jour afin qu'il s'intègre aux derniers système d'exploitations.
2. Runtime errors.
Du point de vue informatique, le système peut se bloquer parce qu'il y a trop de données à traitées (problème entre les données émises et reçues). Notre vieux programme (qui fonctionne encore en 16 bits), ne gère pas bien la pile et donc, la mémoire de l'ordinateur du commis, deviendra instable, on va donc, vers un bloquage du système. Pour résoudre ce problème, il faut réduire les données à envoyer / recevoir, ce qui diminuera la taille de la mémoire tampon du modem, qui, ne perturbera plus la gestion des files d'attentes. En refaisant son programme sous windows, par exemple, le développeur n'aura plus ce type de problème, car, les processus de communications sont plus performants que les commandes de type "opencom" que l'on pouvaient trouver sous dos, et qui, envoyaient via le modem qu'une petite quantité de données(je crois, 256bits). Sous windows, on traite plusieurs évènements en même temps, chaque évènement est associé à un processus qui est spécialisé dans cette tâche. Pour comprendre, prenons un centre commercial de type carefour. Pour acheter un film, je vais à la fnac, mais je ne trouverai pas ce film, chez le frommager, qui se trouve dans ce même centre commercial. Et si, pour une cause ou pour une autre, notre fnac est fermée, je peux quand même aller chercher mon lait, puisque carefour sera tout de même ouvert.
Dans notre exemple, le modem peut envoyer / recevoir des données du commis en comptabilité sans bloquer son poste. (pour info, voir des sites traitant de l'api).
Ne voulant pas monopoliser trop de lignes, j'arrête-là mon bavardage, n'hésites pas à redemander de l'aide ; c'est avec plaisir que je réexpliquerai quelces notions !
à bientôt : Ricou !
|