Etude de cas DA, 2011, Métropole :
Cas Atlantik.
Réponse AJAX

CAS ATLANTIK

Matériels et documents autorisés :

Barème :

Présentation du contexte

La compagnie Atlantik est une compagnie maritime implantée sur la côte ouest de la France. Ayant obtenu plusieurs contrats avec des conseils généraux, la compagnie assure la desserte maritime d'îles du littoral français par délégation de service public.

Parmi les îles desservies à partir du continent, on trouve, par exemple, Belle-Île-en-mer, Houat, Ile de Groix, Ouessant, Molène, Sein, Bréhat, Batz, Aix ou encore Yeu.

L'activité de la compagnie se décompose en deux pôles :

Dossier 1 - Informations diffusées sur le site web

Documents à utiliser : annexes 1A, 1B, 1C, 1D.

Pour son activité de transport de voyageurs, la compagnie Atlantik souhaite présenter toute l'information concernant les liaisons maritimes qu'elle assure sur un même portail internet. Les informations du site seront générées dynamiquement à partir d'une base de données. Ce portail doit notamment proposer aux internautes les services suivants :

a) Organisation des liaisons

La compagnie assure la desserte maritime de plusieurs secteurs. Les liaisons sont regroupées par secteur pour faciliter l'accès aux informations. Un extrait des liaisons est présenté en annexe 1A.

b) Tarifs

Un extrait des tarifs est présenté en annexe 1B. Les tarifs dépendent de la liaison, de la période du voyage, et du type du passager ou du véhicule transporté. Les types sont classés en 3 catégories principales susceptibles d'évolution :

c) Horaires des traversées

La maquette présentée en annexe 1C montre comment un internaute visualise les traversées disponibles pour une liaison et pour une date précise. Une planification des traversées est effectuée : chaque traversée est enregistrée avec un numéro identifiant, une date et une heure de départ, et un bateau prévu.

Pour éviter qu'un internaute ne commence inutilement une démarche de réservation sur une traversée dont le nombre de places serait insuffisant, on affiche en temps réel le nombre de places disponibles sur chaque bateau. Cet affichage est mis à jour après chaque réservation enregistrée. Pour chaque bateau, il faut donc mémoriser la capacité maximale dans chacune des catégories ; exemple : la capacité maximale de la catégorie "Passager" sur le bateau "Maëllys" est 250.

d) Réservation en ligne

Après que l'internaute ait choisi sa traversée, il aboutit à l'écran de réservation présenté en annexe 1D. Sur cet écran, il doit préciser les informations relatives à sa réservation et notamment les types de places réservées et leur nombre. Après enregistrement, le numéro identifiant de la réservation et un récapitulatif sont communiqués à l'internaute. La mise en paiement sort du cadre de cette étude.

1.1. Proposer une modélisation des données nécessaires à la gestion des quatre domaines décrits : organisation des liaisons, tarifs, horaires des traversées et réservation en ligne.

Votre réponse n°1

Dossier 2 - Mise en place d'un serveur DNS

Documents à utiliser : annexes 2A, 2B.

La compagnie Atlantik a réorganisé l'infrastructure matérielle et logicielle de son réseau. L'ensemble du service informatique et les serveurs sont implantés au siège social de la compagnie, à Lorient. Le réseau de la compagnie s'étend également sur le site de Quiberon qui héberge un point de vente des billets et un service de maintenance des bateaux.

Les ultimes travaux pour rendre cette infrastructure opérationnelle portent sur l'installation et le paramétrage d'un nouveau serveur DNS (servdns) pour la compagnie.

L'annexe 2A présente un extrait du schéma du réseau de la compagnie.

Étude du réseau de la compagnie

2.1. Indiquer la passerelle par défaut des stations du site de Quiberon.

Votre réponse n°2

Des erreurs, dans la configuration de la table de routage du routeur R2, empêchent le serveur DNS de répondre aux demandes émises par les stations du site de Quiberon.

Extrait de la table de routage du routeur R2 :
Réseau de destinationMasque sous-réseauInterfacePasserelle
192.168.75.0255.255.255.0172.16.0.100192.168.75.248

2.2. Identifier et corriger les erreurs de la table de routage du routeur R2.

Votre réponse n°3

Configuration du serveur DNS

Le serveur DNS répond aux requêtes DNS des machines (serveurs et stations) du réseau de la compagnie qui souhaitent connaître :

Pour assurer cette correspondance entre une adresse IP et un nom de machine, le serveur DNS utilise 2 fichiers de zone :

La déclaration inverse est importante sur les adresses IP puisque l'absence d'une résolution inverse peut entraîner le refus d'accès à un service pour des raisons de sécurité. Par exemple, un serveur de messagerie électronique se présentant en envoi avec une adresse IP n'ayant pas de nom associé, a de grandes chances de se voir refuser la transmission du courrier par l'hôte distant.

L'annexe 2B présente un extrait des fichiers de recherche des zones directe et inverse du serveur DNS.

Une nouvelle station doit être installée sur le site de Quiberon. Elle portera le nom quib-13.

2.3. Indiquer la configuration IP (adresse IP, masque de sous-réseau, adresse de passerelle par défaut et adresse du serveur DNS) à attribuer à la station quib-13.

Votre réponse n°4

2.4. Compléter les fichiers de recherche de zone directe et inverse du serveur DNS pour identifier cette station sur le domaine DNS atlantik.fr.

Votre réponse n°5

La compagnie Atlantik souhaite mettre en place une solution pour maintenir le fonctionnement de la résolution de noms en cas de panne du serveur DNS « servdns ».

2.5. Proposer une solution pour assurer le fonctionnement de la résolution de noms en cas d'arrêt complet du serveur DNS « servdns ».

Votre réponse n°6

Dossier 3 - Édition d'une brochure au format PDF

Documents à utiliser : annexes 3A, 3B, 3C, 3D, 3E.

Dans le cadre de son activité de transport de voyageurs, la compagnie Atlantik souhaite éditer une brochure au format PDF, destinée à sa clientèle, présentant les caractéristiques des bateaux réservés aux voyageurs.

Un extrait de cette brochure est fourni en annexe 3A. Vous êtes chargé(e) de l'automatisation de l'édition de ce document au format PDF.

Le diagramme partiel des classes métiers est présenté en annexe 3B et la description textuelle associée est présentée en annexe 3C. Une classe technique Collection est également fournie en annexe 3D.

3.1. Écrire le constructeur de la classe BateauVoyageur.

Votre réponse n°7

3.2. Écrire la méthode versChaine() de la classe BateauVoyageur.

Votre réponse n°8

Un document PDF, dont un extrait est présenté en annexe 3A, référence tous les bateaux voyageurs, avec leurs équipements. Un extrait de la classe PDF est fourni en annexe 3D.

Une classe technique Passerelle est utilisée pour instancier les objets métiers à partir des données issues de la base de données "dbBat", dont un extrait du schéma relationnel est présenté en annexe 3E. Une classe technique JeuEnregistrement est utilisée pour accéder à la base de données. La description textuelle de ces deux classes techniques est présentée en annexe 3D.

L'application de gestion des traversées utilise une procédure nommée BrochurePDF qui édite le document BateauVoyageur.pdf contenant le détail des bateaux voyageurs avec leurs équipements.

3.3. Écrire la procédure BrochurePDF.

Votre réponse n°9

3.4. Écrire la méthode chargerLesBateauxVoyageurs de la classe Passerelle.

Votre réponse n°10

Dossier 4 - Rentabilité du fret

Document à utiliser : annexe 4.

La compagnie Atlantik propose également une activité de fret. Cette activité correspond au transport de marchandises (denrées alimentaires, matériaux de construction ou encore combustibles) en utilisant des bateaux spécifiques.

Ce dossier concerne plus particulièrement la rentabilité d'une des liaisons de fret pour laquelle on dispose d'informations issues de la base de données "dbFret" (annexe 4). Plusieurs affrètements sont planifiés par semaine. Un affrètement correspond au départ d'un bateau de fret à une date et une heure précises. Ce service est facturé aux clients en fonction des lots transportés, chacun des lots étant associé à une tranche tarifaire.

Dans un premier temps, on s'intéresse à la rentabilité de l'affrètement n°459629, représentatif de l'ensemble des affrètements. On dispose pour celui-ci de son chiffre d'affaires, ainsi que du montant total des charges qui lui sont imputées.

4.1. Écrire la requête SQL permettant de connaître le chiffre d'affaires de l'affrètement n°459629.

Votre réponse n°11

Cette requête retourne un chiffre d'affaires de 4 000 euros pour l'affrètement n°459629. Le total des charges imputées à cet affrètement étant supérieur, il présente donc une rentabilité négative. Pour améliorer la rentabilité des affrètements, la compagnie Atlantik émet l'hypothèse d'augmenter ses tarifs de 5%.

4.2. Écrire la requête SQL permettant d'augmenter l'ensemble des tarifs de 5%.

Votre réponse n°12

Il semble que tous les affrètements du mois de mars 2011 n'ont pas été enregistrés dans la base de données.

4.3. Écrire la requête SQL permettant de connaître les identifiants des bateaux pour lesquels aucun affrètement n'a été enregistré au mois de mars 2011.

Votre réponse n°13

Ayant observé que le taux de remplissage moyen des affrètements était d'environ 40%, une autre hypothèse étudiée serait l'optimisation du taux de remplissage des affrètements. Le taux de remplissage d'un affrètement est calculé en divisant le poids total affrété par le poids maximum autorisé de chargement du bateau.

4.4. Écrire l'ensemble des requêtes SQL permettant de connaître la moyenne des taux de remplissage des affrètements de 2010. Le candidat s'appuiera sur l'écriture d'une vue intermédiaire pour la résolution de cette question.

Votre réponse n°14

Dossier 5 - Valorisation du service informatique
d'horodatage et de paiement en ligne

Document à utiliser : annexe 5.

L'édition de documents contractuels à partir du site de la compagnie ATLANTIK est un projet de grande envergure dont la création de brochures au format PDF était la première étape.

Il s'agit d'un projet plus global qui traite du processus de réservation en ligne des traversées et du fret. C'est la direction commerciale de l'entreprise qui a commandé ce service à la direction des systèmes d'information d'ATLANTIK.

Le processus de réservation en ligne se déroule schématiquement en 3 étapes :

La fourniture des services de réalisation des documents contractuels, d'horodatage, et de paiement en ligne fait l'objet d'une mise en concurrence avec une SSII.
On vous demande donc de comparer avec la fourniture de ces services en interne.

5.1. Présenter le calcul du coût de traitement d'une réservation de passager en ligne, sur la base de la répartition présentée en annexe 5.

Votre réponse n°15

5.2. Présenter le calcul du montant du budget global à allouer aux services de paiement en ligne, compte tenu de la volumétrie de l'activité.

Votre réponse n°16

5.3. Calculer le budget global à allouer aux services de réalisation des documents contractuels et horodatage compte tenu des volumes constatés de l'activité.

Votre réponse n°17

Un prestataire extérieur propose la prise en charge des services d'horodatage et de paiement en ligne, pour les trois processus présentés pour un montant de 300 000 € sur la base des volumes d'activités constatés.

5.4. Présenter les avantages et les inconvénients de chacun des modes de fourniture de ces services.

Votre réponse n°18

Annexes

Annexe 1A - Extrait des liaisons proposées par secteur

SecteurLiaison
Code LiaisonDistance en milles marinPort de départPort d'arrivée
Belle-Ile-en-Mer158.3QuiberonLe Palais
249Le PalaisQuiberon
168.0QuiberonSauzon
177.9SauzonQuiberon
1923.7VannesLe Palais
1125.1Le PalaisVannes
Houat258.8QuiberonPort St Gildas
308.8Port St GildasQuiberon
Ile de Groix217.7LorientPort-Tudy
227.4Port-TudyLorient
etc...

Annexe 1B - Extrait des tarifs

Annexe 1C - Écran de visualisation des horaires des traversées

La partie gauche de l'écran présente les secteurs. En cliquant sur le secteur souhaité, la liste déroulante des liaisons est alors remise à jour en fonction du secteur sélectionné.

Annexe 1D - Écrans de réservation

Annexe 2A - Extrait du schéma du réseau de la compagnie

Annexe 2B - Extrait des fichiers de recherche des zones directe et inverse

Extrait de fichier de recherche directe de la zone atlantik.fr
;  Enregistrements NS : zone des serveurs
@		NS	servdns.atlantik.fr

;  Enregistrements A : zone des machines
servweb	A	192.168. 50.200
servbd	A	192.168. 50.210
servdns		A	192.168. 50.220

quib-10	A	192.168.75.10
quib-11	A	192.168. 75.11
quib-12	A	192.168. 75.12
@ : Variable contenant le nom de la zone, soit atlantik.fr

NS : Enregistrement indiquant le nom d'un serveur DNS du réseau local.

A : Enregistrement indiquant l'adresse IP d'une machine (serveur ou station) du réseau local.

; : Indique un commentaire.

Extrait de fichier de recherche de zone inverse
;  Enregistrements PTR : réseau 192.168.50.0
200.50.168.192	PTR	servweb.atlantik.fr.
210.50.168.192	PTR	servbd. atlantik.fr.
220.50.168.192	PTR	servdns. atlantik.fr.

;  Enregistrements PTR : réseau 192.168.75.0
10.75.168.192	PTR	quib-10. atlantik.fr.
11.75.168.192	PTR	quib-11. atlantik.fr.
12.75.168.192	PTR	quib-12. atlantik.fr.
PTR : Enregistrement indiquant le nom d'une machine du réseau local associée à une adresse IP.

Annexe 3A - Extrait de la brochure PDF présentant les bateaux voyageurs

Annexe 3B - Diagramme partiel des classes métiers

Remarque : Les constructeurs et paramètres des méthodes ne sont pas présentés sur ce diagramme.

Annexe 3C - Extrait de la description textuelle des classes métier

Classe Bateau
  Privé :
	idBat : Chaîne
	nomBat : Chaîne
	longueurBat : Réel
	largeurBat : Réel 

  Public :
	Bateau(unId : Chaîne, unNom : Chaîne, uneLongueur : Réel, uneLargeur : Réel) 
		// Constructeur de la classe.
	Fonction versChaine()  : Chaîne	
		// Retourne sous la forme d'une chaîne de caractères toutes les valeurs concaténées 
		// des attributs de la classe précédées de leurs libellés.
		// Exemple :
				Nom du bateau : Luce isle
				Longueur : 37,20 mètres
				Largeur : 8,60 mètres
FinClasse
Classe  BateauVoyageur hérite de Bateau
  Privé :
	vitesseBatVoy : Réel
		// Indique la vitesse moyenne en noeuds du bateau.
	imageBatVoy : Chaîne
		// Contient le chemin d'accès vers le fichier représentant l'image du bateau.
		// Exemple : /images/bateauvoyageur/luceisle.jpg
	lesEquipements :  Collection de Equipement  
		// Indique tous les équipements présents sur le bateau.

  Public :
	BateauVoyageur (unId : Chaîne, unNom : Chaîne, uneLongueur : Réel, uneLargeur : Réel, 
			uneVitesse : Réel, uneImage : Chaîne, uneCollEquip : Collection de Equipement) 
		// Constructeur
	Fonction versChaine()  : Chaîne	
		// Retourne sous la forme d'une chaîne toutes les valeurs concaténées des attributs de la
		// classe, sauf l'attribut imageBatVoy qui n'est pas inséré dans la chaîne concaténée.
		// Chaque valeur est précédée de son libellé.
		// Exemple :
			Nom du bateau : Luce isle
			Longueur : 37,20 mètres
			Largeur : 8,60 mètres
			Vitesse : 26 noeuds
			Liste des équipements du bateau :
			- Accès Handicapé
			- Bar 
			- Pont Promenade
			- Salon Vidéo
		// On utilisera l'opérateur "+" pour concaténer des valeurs de type Chaîne et 
		// le mot-clé "SautLigne" pour marquer une fin de ligne.
		// Exemple : str ← "Liste des équipements du bateau : " + SautLigne
	Fonction getImageBatVoy() : Chaîne	
		// Retourne l'attribut privé imageBatVoy.
FinClasse
Classe  Equipement
  Privé :
	idEquip : Chaîne
	libEquip :  Chaîne 

  Public :
	Equipement(unId : Chaîne, unLib : Chaîne) 
		// Constructeur de la classe.
	Fonction versChaine()  : Chaîne	
		// Retourne sous la forme d'une chaîne la valeur de l'attribut libEquip de la classe.
		// L'identifiant de l'équipement n'est pas inséré dans la chaîne.
FinClasse

Annexe 3D - Description textuelle des classes techniques

Classe Collection de <nom de la classe>
  Public :
	Fonction cardinal() : Entier     
		// Renvoie le nombre d'objets de la collection. 
	Fonction obtenirObjet(unIndex : Entier) : <nom de la classe>
		// Retourne l'objet d'index unIndex, le premier objet de la collection a pour index 1. 
	Procédure ajouter(unObjet : <nom de la classe>)
		// Ajoute un objet à la collection. 
FinClasse
Pour instancier une collection :
uneCollection : Collection de <classe>
uneCollection ← new Collection() de <classe>

 

Pour parcourir par itération
les éléments d'une collection :
Pour chaque <objet> dans <collection> faire
	// Instructions avec <objet>
FinPour
Classe JeuEnregistrement
  Public :
	JeuEnregistrement(chaîneSQL : Chaîne)
		// Constructeur de la classe. Positionne le curseur sur le premier enregistrement.
	Procédure suivant()	
		// Avance le curseur sur l'enregistrement suivant.
	Fonction fin() : Booléen	
		// Indique si la marque de fin est atteinte.
	Fonction getValeur(nomChamp : Chaîne) : Variant
		// Renvoie la valeur du champ nomChamp de l'enregistrement courant. Variant est un type 
		// générique pouvant contenir tout type de valeur. On peut utiliser l'opérateur "+" pour
		// concaténer des valeurs ou variables de type Chaîne ou Variant.
	Procédure fermer()				
		// Ferme le curseur et libère les ressources.
FinClasse 
Pour instancier un JeuEnregistrement :
jeu : JeuEnregistrement
jeu ← new JeuEnregistrement ("select ...")
Classe Passerelle
  Public à portée de classe  (statique)
	Fonction chargerLesEquipements(unIdBateau : Entier) : Collection d'Equipement
		// Retourne la collection des Equipements du bateau dont l'identifiant est passé en paramètre.
	Fonction chargerLesBateauxVoyageurs() : Collection de BateauVoyageur
		// Instancie et retourne une collection d'objets de la classe BateauVoyageur, à partir des
		// données lues dans la base de données "dbBat". Cette méthode instancie également 
		// la collection lesEquipements de chaque objet de la classe BateauVoyageur.
FinClasse
Classe PDF
  Public :
	PDF(nomDocument : Chaîne)
		// Constructeur de la classe. Crée le document PDF vierge  "nomDocument"
	Procédure ecrireTexte(leTexte : Chaîne)
		// Écrit le contenu de la chaîne de caractères leTexte dans le document PDF
	Procédure chargerImage(chemin : Chaîne)
		// Insère dans le document l'image dont le chemin d'accès est passé en paramètre
	Procédure fermer()      // Ferme le document
FinClasse 

Annexe 3E - Extrait du schéma relationnel de la base de données "dbBat"

BATEAU (id, nom, longueur, largeur, vitesse, image, poidsMax, type)
Clé primaire : id

image : chemin d'accès vers le fichier représentant l'image du bateau voyageur
type : type du bateau, 'f' pour fret ou 'v' pour voyageur

EQUIPEMENT (id, lib)
Clé primaire : id

lib : libellé de l'équipement

POSSEDER (idBat, idEquip)
Clé primaire : idBat, idEquip
Clé étrangère : idBat en référence à id de BATEAU
Clé étrangère : idEquip en référence à id de EQUIPEMENT

Annexe 4 - Extrait du schéma relationnel de la base de données "dbFret"

BATEAUFRET (id, poidsMax)
Clé primaire : id

poidsMax : poids maximum autorisé de chargement du bateau (exprimé en Kg)

AFFRETEMENT (id, date, heure, idBatFret)
Clé primaire : id
Clé étrangère : idBatFret en référence à id de BATEAUFRET

date : date de départ du bateau affrété
heure : heure de départ du bateau affrété

TRANCHE (id, tarifunit)
Clé primaire : id

tarifunit : tarif unitaire du kg transporté (exprimé en euros), permettant le calcul de la facturation des lots.

LOT (idAff, idLot, poids, idTran)
Clé primaire : idAff, idLot
Clé étrangère : idAff en référence à id de AFFRETEMENT
Clé étrangère : idTran en référence à id de TRANCHE

poids : poids du lot à transporter (exprimé en kg)

Annexe 5 - Extrait de l'évaluation du coût des processus

 
Logistique
DSI
Finance et Comptabilité
Services rendus Chargement des consommables Acheminement
des passagers
Utilisation
d’applications
métier
Maintenance et
surveillance de
l’infrastructure
réseau
Réalisation des
documents
contractuels et
horodatage
Paiement en ligne Suivi comptabilité
client
Contrôle
Unité de mesure (UO)
retenue
Nombre de
tonnes chargées
Nombre de
personnes
acheminées
Nombre
d’heures
d’utilisation
Nombre
d’heures de
fonctionnement
Nombre de
documents
Nombre de
paiements
Nombre
d’écritures
Nombre
d’heures
Coût de revient complet
d’une UO
5 € 10 € 15 € 15 € 5 € 5 € 1 € 25 €
Processus étudié                
Traitement d’une
réservation passager en
ligne
    1 UO 1 UO 1 UO 1 UO 5 UO 0,1 UO
Traitement d’une
réservation fret en ligne
    2 UO 1,5 UO 8 UO 1 UO 10 UO 2 UO
Réception d’un passager   1 0,5 UO 3 UO 4 UO      
BUDGET TOTAL
A RÉPARTIR
        ? 32 500,00 €    

Calcul des coûts associés
Processus Logistique DSI Finance et comptabilité Total
Traitement d’une réservation passager en ligne
A présenter
47,50 €
Traitement d’une réservation fret en ligne     30 22,5 40 5 10 50 157,50 €
Réception d’un passager   10 7,50 45 20       82,50 €

Volumes constatés :
Processus Volume annuel
- Traitement d’une réservation passager en ligne 5 000
- Traitement d’une réservation fret en ligne 1 500
- Réception d’un passager 7 500