TME S3
Préparation
installer le kit AWS pour java
- comprendre l'exemple se trouvant dans : aws-java-sdk-1.3.25/samples/AmazonS3
- Lire l'API java de tous les services d'AWS (ou localement dans aws-java-sdk-1.2.12/documentation/javadoc/index.html)
- disposer des clés d'accès, envoyées par mail.
configurer l'accès pour se connecter à S3 en passant par le proxy de l'UFR.
- host="proxy" et port=3128
- voir l'exemple S3Sample.java avec le proxy correctement configuré (lignes 26 puis 63 à 67)
Référencer les librairies jar nécessaires pour exécuter les exemples
Modifier l'environnement linux:
- copier le fichier config-java-classpath dans le répertoire de travail contenant les exemples.
- source config-java-classpath
- dans Eclipse: aller dans les propriétés du projet, puis java build path, puis add external jar. Ajouter tous les jars se trouvant dans tous les sous-dossiers de third-party ainsi que tous les jars se trouvant dans le dossier lib.
Exercice 1
Proposer des éléments de solution pour stocker dans S3 les données suivantes :
- une relation quelconque (l'équivalent d'une table SQL)
- un réseau d'amis
- un flux de données RSS
Illustrer l'utilisation de S3 pour gérer le stock des produits d'un magasin :
- Magasin(magasinID, produitID, quantité)
Exercice 2 : Cohérence des données
Mettre en évidence des situations d'accès incohérent aux données.
- lecture d'un état obsolète de la donnée.
- perte d'écriture lorsque 2 utilisateurs modifient la même donnée en même temps.
- Illustrer en montrant l'accès à l'objet (magasinID=i, produitID=1, quantité=100)
Chaque étudiant choisit un numéro de magasin différent. La modification consiste à ajouter 1 à la quantité. La séquence est : lire l'objet, modifier la quantité, écrire l'objet modifié).
Chronométrer la durée pour répéter N fois la séquence d'opératiosn. Vérifier à la fin de l'exécution que la quantité restante est exacte.
Exercice 3 : Comparaison S3 / SimpleDB
Comparer le niveau de cohérence proposé par S3 avec ceux proposées par le service SimpleDB
Télécharger l'exemple SimpleDB.java, puis adapter l'exemple (le domaine à utiliser s'appelle Test) pour montrer que SimpleDB offre davantage de cohérence
- Remarque, vous avez les droits pour lire et écrire des données dans le domaine nommé Test, mais vous n'avez pas les droits pour créer un domaine ni lister les domaines existants.
- Lire la notice d'utilisation des lectures et écritures cohérentes : SimpleDB Consistency Enhancements
Documentation
- Le guide de développement pour S3, en anglais
- les concepts principaux de S3
- Lecture/modification conditionnelle de données : SimpleDB Consistency Enhancements
- Lire l'API java de tous les services AWS.