Page 1/4
ESTIA 2è année – Épreuve d’Informat ique – SI - G. Rivière - Étudiants Estia 2017
Unité d’Enseignement en Informatique Année 2015-2016
2è année ESTIA – Étudiants
Examen de Système d’Information – Première Session du 11 Mars 2016 (durée 2h00, aucun document autorisé)
Exercice 1 : Culture générale SI (5 points)
1) Selon l’analyse systémique de l’entreprise, quelles sont les trois composantes de l’entreprise ? 2) Que veut dire l’acronyme ERP ? Quel est l’acronyme correspondant en français ? Comment définiriez- vous l’ERP ?
3) Qu’est-ce qui permet de déterminer si une application est "1 tiers", "2 tiers", "3 tiers" ou "n tiers" ? 4) Combien de niveaux d’abstraction trouve-t-on dans une architecture n tiers ?
4) Avec lequel de ces langages développe-t-on des clients lourds ? a) HTML5
b) PHP c) JAVA
5) Chez Bouygues Construction (« Bouygues Structis ») la virtualisation des serveurs a permis de diminuer le nombre de serveurs ?
a) Non, la charge à compenser était trop importante (52 000 collaborateurs à l’international) b) Oui, de 96% en passant de 150 machines obsolètes à 6 serveurs récents
c) Seulement pour le siège du groupe à Guyancourt (France)
d) Une fois que la version 2 de l’hyperviseur Microsoft (Hyper-v) sera disponible
Exercice 2 : Transfert de données (10 points) Partie 1. Topologie d’infrastructure logicielle (5 points)
Une entreprise utilise 7 progiciels de gestion pour gérer son activité. Cette entreprise hésite entre deux topologies possibles pour moderniser son système d’information. Ces deux topologies sont représentées graphiquement ci-dessous.
Page 2/4
ESTIA 2è année – Épreuve d’Informat ique – SI - G. Rivière - Étudiants Estia 2017
Les possibilités de stockage et d’échange d’information de ces 7 progiciels sont les suivants :
Progiciel S tockage Export Import Echange
Comptabilité, Achats, Paie, Facturation Fichiers PNM XLSX XLSX
Gestion de production Base de données (Oracle) Webservice (XM L-RPC)
Gestion des données techniques Base de données (M ySQL) Webservice (XM L)
Conception Assistée par Ordinateur Fichiers PRT IGES IGES
Gestion Commerciale Base de données (M ySQL)
Gestion de stock Base de données (PostgreSQL) XLSX ; CSV
E-commerce Base de données (M ySQL) Webservice (JSON)
Conn.
E-commerce Conn.
Conn.
Conn.
Comptabilité, Achats, Paie,
Facturation
Conn.
Conn.
Conn.
Conn.
Conn.
Conn.
Conn.
Gestion de production
Gestion de stock Gestion
commerciale
Conn.
Conn. Conn. Conn.
Gestion des données techniques
Conception assistée par ordinateur
Topologie 2
Conn.
Gestion de production
E-commerce Conn.
Conn.
Conn.
Gestion de stock Conn.
Conn.
Conn.
Conn.
Conn.
Conn.
Concentrateur E.A.I.
Comptabilité, Achats, Paie,
Facturation
Conn.
Gestion commerciale
Conn.
Conception assistée par ordinateur Gestion des
données techniques
Conn.
Conn.
Topologie 1
Page 3/4
ESTIA 2è année – Épreuve d’Informat ique – SI - G. Rivière - Étudiants Estia 2017
1) Dans la topologie 2, afin de faire communiquer les deux progiciels de E-commerce et de Gestion Commerciale, deux connecteurs sont nécessaires. Quel langage pouvez-vous utiliser pour écrire les deux scripts qui joueront le rôle de connecteur ? Décrivez les grandes étapes du fonctionnement de chacun de ces scripts.
2) Toujours dans la topologie 2, comment développer les connecteurs pour faire communiquer les deux progiciels de Conception Assistée par Ordinateur et de Gestion des données techniques ? 3) Avec la topologie 1, combien d’écritures et de lectures sont nécessaires pour transférer un bon de commande entre le progiciel de E-commerce et le progiciel de Gestion commerciale ? Et avec la topologie 2 ?
4) Quelle topologie est la plus efficace en termes de nombre de calculs pour transférer une donnée ? Justifiez.
5) Quels seraient les avantages à programmer un logiciel concentrateur de type E.A.I ?
Exercice 3 : Service web XML
Partie 1. Développement d’un service web (8 points) Vous avez appris à utiliser PHP
pour différentes utilisations (script en ligne de commande, traitement d’un formulaire, traitement d’un fichier, consulter une base de données) et notamment pour générer un flux HTML depuis un serveur web.
Aussi, il n’y a qu’un pas à franchir pour réutiliser cette compétence pour mettre en place un service web. La seule différence étant qu’au lieu de produire des balises HTML, ce sont des balises XML qui sont produites.
Considérons un progiciel de Gestion des stocks propose une fonctionnalité d’exportation des données au format CSV. Chaque ligne de ce fichier correspond à un produit en stock, décrit par son numéro (id), son libellé (label) et la quantité en stock (quantity). Chaque information est séparée par un point-virgule. Ce qui donne par exemple :
Nous souhaitons rendre ces informations accessibles au travers d’un service web. Ainsi, elles pourront être consultées par les employés depuis un smartphone grâce à l’application de l’entreprise.
Nous allons écrire le script en_stock.php qui fournit une réponse dans un format XML qui sera stock.csv - Bloc notes
12;Boulon acier zingue 10x40;2500;
14;Ecrou acier zingue 10;6500;
80;Tige filetee laiton 4;800;
84;Tige filetee laiton 8;900;
140;Entretoise acier inox 8-10x4;100;
141;Entretoise acier inox 8-10x6;80;
160;Rondelle acier zingue 8-12;8000;
230;Circlips interieur acier brut 12;0;
240;Circlips exterieur acier brut 12;2;
Page 4/4
ESTIA 2è année – Épreuve d’Informat ique – SI - G. Rivière - Étudiants Estia 2017
compréhensible par l’application smartphone. Par exemple, pour retrouver les informations sur le produit avec le numéro 160, le script (hébergé sur le serveur web de l’entreprise) sera appelé comme suit par l’application smartphone :
https://www.monentreprise.fr/webservices/en_stock.php?id=160
et la réponse au format XML reçue par le smartphone sera :
<?xml version="1.0"?>
<product id="160">
<label type="string">Rondelle acier zingue 8-12</label>
<quantity type="integer">8000</quantity>
</product>
NB : Remarquez bien les 3 informations qui ont été insérées dans la réponse.
Dans le cas où le produit recherché n’est pas trouvé dans le fichier CSV, la réponse sera alors :
<?xml version="1.0"?>
<product id="400">
<error/>
</product>
1) D’après ce que vous venez de lire, par quelle méthode le id du produit recherché sera-t-il communiqué au script en_stock.php ?
2) Si WAMP est installé sur le serveur de l’entreprise, dans quel répertoire allez-vous enregistrer le script en_stock.php ?
3) Ecrivez le script en_stock.php qui va retrouver dans le fichier stock.csv la ligne qui correspond au produit recherché et envoyer la réponse (en écrivant avec des echo) formatée en XML. Attention de ne pas oublier de gérer le cas où le produit n’est pas trouvé dans le fichier (et d’envoyer la réponse XML adaptée).
MÉMENTO : Voici quelques éléments de PHP pour vous aider à mener à bien ce travail
La fonction fopen permet d’obtenir un descripteur (type resource) d’un fichier $filepath ouvert en lecture quand $mode vaut "r" et en écriture quand $mode vaut "w". La valeur retournée par fopen est le descripteur qui a été ouvert, ou faux si l’ouverture a échoué (par exemple en cas de fichier inexistant).
resource fopen ( string $filepath , string $mode ) ; La fonction fclose permet de libérer le descripteur de fichier $fid.
bool fclose ( resource $fid ) ;
La fonction feof permet de tester si le descripteur de fichier $fid a atteint la fin du fichier. La valeur retournée est vrai si la fin de fichier a été atteinte, faux sinon.
bool feof ( resource $fid ) ;
La fonction fgets permet de lire une ligne dans le fichier décrit par le descripteur $fid. La valeur retournée est une chaîne de caractères contenant la ligne du fichier.
string fgets ( resource $fid ) ;
La fonction explode permet de décomposer une chaîne de caractères en plusieurs morceaux dans un tableau selon un délimiteur spécifié.
array explode ( string $delimiter, string $line ) ;