Correction de l'examen - desvigne.org

Correction de l'examen du 01/07/2006 .... Dans ce schéma, vu du programmeur,
quelle est la différence entre l'appel aux .... La note de synthèse est un exercice
de style où souvent, la forme a presque autant d'importance que le fond.

Part of the document


NSY 107 : Intégration des systèmes client-serveur
Correction de l'examen du 01/07/2006 Partie I : QCM
1) Il est impossible de concevoir un programme client et un serveur
mélangeant le mode « datagramme » et le mode « connecté » (ces deux modes
étant incompatibles) Vrai ( Faux ( Commentaire : en effet, il est tout à fait possible de créer un serveur
qui :
. offre le même service en UDP et en TCP sur le même numéro de port,
. ou encore, d'inventer un protocole client/serveur qui dialogue en UDP,
et qui ouvre de temps en temps des liaisons TCP pour transmettre de
longs flux ; ou inversement, qui ouvrent un canal TCP, et qui
échangent des informations de signalisation en UDP. Pour conclure :
seule votre imagination est une limite... 2) Les « web services » sont des mécanismes client/serveur dans lesquels
les flux échangés sont du XML ?
Vrai ( Faux ( Commentaire : les web services s'appuient sur le protocole HTTP ; autrement
dit, les données échangées sont encapsulées dans du HTTP. Mais rien n'est
dit sur la nature de ce qui est échangé : ça peut être du XML, mais aussi
tout autre chose (du HTML, un texte en ASCII, etc.). 3) Lors de l'évaluation de la sécurité de vos serveurs au niveau physique,
les constructeurs fournissent des informations statistiques pouvant vous
aider à prendre une décision ? Vrai ( Faux ( Commentaire : c'est le rôle du MTBF (Mean Time Between Failure). 4) Dans un réseau Ethernet utilisant le protocole spaning tree (STP v. 1),
faire une boucle entre tous les commutateurs augmente la redondance des
liens, donc, le niveau de sécurité ? Vrai ( Faux ( Commentaire : c'est effectivement ce qu'on pourrait penser : en faisant une
boucle, si un lien se casse, il suffit de passer par l'autre chemin de la
boucle. Mais en pratique, avec STP, faire une boucle a des conséquences
catastrophiques : les commutateurs n'arrivent plus à cartographier le
réseau, les tables d'adresses mac « rebondissent » entre tous les
commutateurs, et le réseau tombe en quelques instants. 5) Dans l'architecture CORBA, IDL est un langage de description des
interfaces des différents objets qui, une fois compilé, génère
automatiquement le squelette de certains programmes ? Vrai ( Faux
( Commentaire : c'est effectivement un des atouts de CORBA. Il est possible
de définir les APIs des différents objets dans ce langage IDL, et un
compilateur IDL génère le squelette de la future solution, dans le langage
que vous voulez (Cobol (, C, C++, ADA, etc.). 6) Il est possible de compiler du code écrit en JAVA dans l'environnement
de programmation Microsoft .NET ?
Vrai ( Faux ( Commentaire : tout à fait exact. Microsoft a sorti le compilateur J#
(prononcer « J chart ») à cet effet. Evidement, l'inverse est impossible
(compiler du C# ou du Visual Basic dans l'environnement de développement
Java). 7) Un middleware est un connecteur permettant de rendre un programme
utilisant des requêtes SQL indépendant du système de gestion de base de
données (SGBD) utilisé ? Vrai ( Faux ( Commentaire : c'est justement l'inverse. La phrase correcte est « Un
connecteur est un middleware permettant de rendre un programme utilisant
des requêtes SQL indépendant du SGBD utilisé ». Le connecteur est un
middleware, mais tous les middleware ne sont pas des connecteurs (de façon
générale, un middleware est un adaptateur de protocole entre un client et
un serveur). 8) Dans une architecture N-tiers, les composantes suivantes sont
indispensables (cochez les réponses vraies) :
Firewall ( Navigateur web ( SGBD ( Routeur (
Logiciel client ( Commentaire :
. le firewall n'est indiqué que si le client est sur un réseau public
(Internet par exemple). Il est déjà moins indispensable dans un LAN
isolé ;
. le navigateur web est un client possible. Mais il y a des
architectures ou le client n'est pas un navigateur, mais un programme
spécifique ;
. évidemment, SGBD et logiciel client sont deux couches du modèle 3-
tiers ; alors, à fortiori, du N-tiers.
. pas besoin de routeur si tous les éléments (clients, serveurs, SGBD)
sont sur le même réseau IP. D'ailleurs, de façon générale,
l'architecture N-tiers n'impose rien du point de vue réseau. 9) Un logiciel antivirus assurant une protection « temps réel » est capable
de bloquer toutes les attaques virales dont il possède la signature ?
Vrai ( Faux ( Commentaire : malheureusement non, pas *toutes* les attaques. Ils vérifient
les accès aux fichiers, les flux réseau, etc. Mais nous avons vu par
exemple les attaques par « dépassement de pile ». Les antivirus temps réel
ne savent pas détecter les infiltrations de ce type. Tout au plus, ils
détectent au bout d'un instant que la machine est infectée, ils arrivent
parfois même à éradiquer le virus. Mais il s'agit alors d'un traitement à
posteriori, pas d'une détection/blocage en temps réel. 10) L'utilisation du protocole XDR permet à des micro-ordinateurs PC ou
Macintosh de dialoguer avec des serveurs RS-6000 ? Vrai ( Faux
( Commentaire : pourquoi pas ? En effet, XDR permet les échanges de données
entre machines ayant des représentations internes différentes (couche
présentation du modèle OSI). Alors pourquoi pas PC/RS6000, ou
Macintosh/RS6000. PC, Mac, et RS6000 ne sont que 3 exemples parmi tant
d'autres possibles. Partie II : Questions ouvertes (5 points)
1) Faire un schéma illustrant le parallèle qu'il est possible de faire
entre le modèle OSI et l'utilisation des concepts RPC et XDR (1 pt). Dans
ce schéma, vu du programmeur, quelle est la différence entre l'appel aux
fonctions de la couche « XDR » et l'appel aux fonctions de toutes les
autres couches inférieures (1/2 pt) ? Pour le schéma, la question était simple, la réponse étant fournie dans le
tout premier cours (diapo 14). Il y avait juste à faire un peu de filtrage
(notez qu'il fallait bien mettre TCP et UDP en couche transport ; sinon, ½
pt) : La deuxième question faisait plus appel à votre réflexion : lorsque vous
programmez une application, et que vous faites appel aux fonctions de la
bibliothèque XDR, ces fonctions font le transcodage des données, puis vous
rendent la main. C'est alors à vous d'appeler ensuite les fonctions de la
couche inférieure (RPC). Alors que tous les autres appels aux fonctions des
couches 5 et inférieures font eux même appel à la couche inférieure, et ce,
de couche en couche, de façon automatique (RPC appelle UDP ou TCP qui
appelle IP qui utilise la carte réseau...). C'est d'ailleurs une des
raisons qui fait que souvent, les couches 5, 6, et 7 sont regroupées en une
seule. 2) Vous êtes nommé cadre supérieur dans une grande entreprise de production
de produits manufacturés. Après une brève analyse de l'existant, vous vous
rendez compte que votre société n'a pas de politique de sécurité de son
système d'information. Ayant suivi le cours NSY107, vous savez qu'une telle
situation est dangereuse. Aussi, vous décidez de mettre en place une
politique de sécurité. Quelles seront les 4 premières étapes de ce projet
(2 pts) ? Etape 1 : faire adhérer cette idée par l'équipe de direction, et leur faire
inscrire une ligne budgétaire (les décideurs doivent cautionner le projet,
et mettre les moyens en face ; sinon, inutile d'aller plus loin). Etape 2 : désigner le RSSI (responsable sécurité du système d'information).
C'est lui qui portera le projet. Etape 3 : évaluer les risques : faire l'inventaire exhaustif des
contraintes réglementaires et législatives entourant votre activité, et
voir les conséquences en terme de système d'information (traçabilité,
obligations d'archivage, etc.). Faire le même travail avec votre production
(en quelle mesure une panne informatique a des effets sur la production de
votre usine ? Sur les relations commerciales ? Sur la santé de votre
personnel, sur l'environnement, etc.). Etape 4 : plusieurs réponses/nuances sont possibles et seront acceptées :
bilan de l'existant, définir un schéma cible, définir un calendrier
d'actions, faire réaliser un audit externe, etc. 3) En général, les progiciels permettent l'édition d'états prédéfinis. Et
souvent, il est possible de faire des requêtes dans le système de gestion
de base de données utilisée par ces progiciels, vous permettant ainsi de
calculer certains indicateurs. Pourtant, une grande majorité d'entreprises
met en place des « datawarehouse » et utilise des langages de 4ème
génération (L4G) pour faire du « datamining ». Pourquoi - quels sont les
avantages de cette dernière solution - (1,5 pt) ? Trois bons arguments permettront de faire le plein des 1,5 points. En voici
3 (il y a certainement d'autres qui seront aussi acceptés) :
. faire des requêtes - qui peuvent être complexes - directement sur un
SGBD en production peut s'avérer gourmand en ressources machines, et
pénaliser les utilisateurs. Alors qu'en recopiant les données sur une
base annexe, il est alors possible de faire de gros traitement sur
cette base sans perturber le travail des utilisateurs ;
. les progiciels ne contiennent que les données de leur domaine de
compétences (le logiciel de compta ne contient que les données
financières, le logiciel de GRH que les données sur le personnel,
etc.). Or, les datawarehouse collectent des données depuis plusieurs
applicati