Page 1/3
ESTIA 2è année – Épreuve d’Informat ique – SI - N. Couture & G. Riviè re - Apprentis Estia 2017
Unité d’Enseignement en Informatique Année 2015-2016
2è année ESTIA – Apprentis -
Examen de Système d’Information – Première Session du 26 mai 2016
(durée 2h00, aucun document autorisé, aucun objet connecté autorisé, calculatrice interdite)
– – CORRECTION – –
Remarque : Ce document ne présente que des éléments de correction. Les variantes possibles sont nombreuses.
Exercice 3 : Topologie d’infrastructure logicielle
Une entreprise utilise 7 progiciels de gestion pour gérer son activité. La topologie du SI est représentée graphiquement ci-dessous.
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)
1) Afin de faire communiquer les deux progiciels de E-commerce et de Gestion Commerciale, deux connecteurs sont nécessaires.
a) Quel langage pouvez-vous utiliser pour écrire les deux scripts qui joueront le rôle de connecteur ?
Un langage de script, comme par exemple PHP, est un choix commun pour ce genre de connecteurs. L’avantage est un temps de développement relativement court. De plus, PHP
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
Page 2/3
ESTIA 2è année – Épreuve d’Informat ique – SI - N. Couture & G. Riviè re - Apprentis Estia 2017
permet de se connecter à des bases de données MySQL (avec MySQLi ou PDO) et de traiter des fichiers JSON.
b) Décrivez les grandes étapes du fonctionnement de chacun de ces deux scripts.
Le premier script fera des requêtes SELECT dans la base de données MySQL du progiciel de Gestion Commerciale puis, analysera les données. Ensuite, soit le script fera des requêtes INSERT, UPDATE ou DELETE dans la base de données MySQL du logiciel de E- Commerce ou bien écrire un fichier texte formaté en JSON avec les données destinées au logiciel de E-Commerce.
Dans le sens inverse, le deuxième script pourra obtenir des données soit en faisant des requêtes SELECT dans la base de données MySQL du progiciel de E-Commerce, soit en lisant un fichier texte JSON provenant du progiciel de E-commerce. Ensuite, le script fera des requêtes INSERT, UPDATE ou DELETE dans la base de données MySQL du logiciel de Gestion Commerciale.
2) De même, pour développer les connecteurs pour faire communiquer les deux progiciels de Conception Assistée par Ordinateur et de Gestion des données techniques :
a) Quel langage pouvez-vous utiliser pour écrire les deux scripts qui joueront le rôle de connecteur ?
De même, un langage de script comme par exemple PHP qui permet un temps de développement relativement court. De plus, PHP permet de lire de se connecter à des bases de données MySQL (avec MySQLi ou PDO) et de traiter des fichiers textes structurés en IGES ou en XML.
b) Décrivez les grandes étapes du fonctionnement de chacun de ces deux scripts.
Le premier connecteur va pouvoir, soit se connecter à la base de données MySQL du SGDT pour extraire des données, soit demander des données au webservice du SGDT. Après traitement des données, il pourra produire un fichier IGES que la CAO pourra ensuite importer.
Le deuxième connecteur lira et analysera le texte du fichier IGES pour en extraire les informations pertinantes. Après traitement, il pourra se connecter à la base de données MySQL du SGDT pour y charger des données ou bien envoyer des données au webservice du SGDT.
Exercice 4 : Des clients légers au restaurant
1) D’après le fichier utils.inc.php, que valent $NOM_HAMBURGER[0] et
$PRIX_HAMBURGER[3] ?
$NOM_HAMBURGER[0] vaut "Burger Plagiste"
$PRIX_HAMBURGER[3] vaut 10.50
2) Le formulaire carte.php est déjà écrit (voir page 3). Ecrivez le script commande.php qui affiche le récapitulatif de la commande et ajoute3 la commande dans le fichier4 commandes.txt.
Page 3/3
ESTIA 2è année – Épreuve d’Informat ique – SI - N. Couture & G. Riviè re - Apprentis Estia 2017 commande.php
<?php
include('utils.inc.php');
/** Recuperation des variables du formulaire **/
$t = $_POST['taille'] ;
$h = $_POST['hamburger'] ;
$b = $_POST['boisson'] ;
$d = $_POST['dessert'] ;
/** Calcul de la facture **/
$facture = $PRIX_HAMBURGER[$h] + $PRIX_BOISSON[$b] + $PRIX_DESSERT[$d] ; if ($t == 1) {
$facture = $facture + 1.50 ; // Moyen }
else if ($t == 2) {
$facture = $facture + 3.00 ; // Grand }
/** Ajout de la commande dans le fichier **/
$desc = fopen ("commandes.txt", "a+") ;
fputs ($desc, "Heure;".date("d/m/Y-H:m").";\r\n") ; fputs ($desc, "Formule;".$TAILLE[$t].";\r\n") ;
fputs ($desc, "Hamburger;".$NOM_HAMBURGER[$h].";\r\n") ; fputs ($desc, "Boisson;".$NOM_BOISSON[$b].";\r\n") ; fputs ($desc, "Dessert;".$NOM_DESSERT[$d].";\r\n") ; fclose ($desc) ;
/** Affichage de la page recapitulative **/
?>
<html>
<head>
<title>Commande</title>
</head>
<body>
<h1>Commande Burger Deuspi</h1>
<?php
echo '<p>Formule : '.$TAILLE[$t].'</p>' ;
echo '<p>Hamburger : '.$NOM_HAMBURGER[$h].' ('.$PRIX_HAMBURGER[$h].')</p>' ;
echo '<p>Boisson : '.$NOM_BOISSON[$h].' ('.$PRIX_BOISSON[$h].')</p>' ;
echo '<p>Dessert : '.$NOM_DESSERT[$h].' ('.$PRIX_DESSERT[$h].')</p>' ;
echo '<p>TOTAL : '.$facture.'€</p>' ;
?>
<p><a href="carte.php">Nouvelle commande</a></p>
</body>
</html>