1. La couche physique des données (CPD)

Documents pareils
TD Objets distribués n 3 : Windows XP et Visual Studio.NET. Introduction à.net Remoting

Programme Compte bancaire (code)

Corrigé des exercices sur les références

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1

Java DataBaseConnectivity

Java Licence Professionnelle CISII,

Chapitre 10. Les interfaces Comparable et Comparator 1

PHP 5. La base de données MySql. A. Belaïd 1

Le MSMQ. Version 1.0. Pierre-Franck Chauvet

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Programmer en JAVA. par Tama

Package Java.util Classe générique

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

Auto-évaluation Programmation en Java

Faculté des sciences de gestion et sciences économiques BASE DE DONNEES

Projet de programmation (IK3) : TP n 1 Correction

Développement Logiciel

ETUDE DE CAS en UML : GESTION DES COMMANDES DE PIECES FABRIQUEES PAR LA SOCIETE C

TP3. Mail. Attention aux fausses manoeuvres lors de ce TP vous pouvez endommager votre mail sur ouindose.

Programmation d application Bases de données avec Java

Architecture Orientée Service, JSON et API REST

TD3: tableaux avancées, première classe et chaînes

RMI le langage Java XII-1 JMF

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Langage SQL : créer et interroger une base

Plan. Accès aux données dans le framework.net. ADO.NET Entity Framework LINQ ADO.NET ADO.NET. 1. ADO.NET Mode connecté Mode non connecté

ACTIVITÉ DE PROGRAMMATION

Application BdD et JDBC. Introduction 1/28. I Dans tout les cas, une seule problématique. I Quelques alternatives :

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr

Création d une application JEE

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :

Débuter avec EXPRESS. Alain Plantec. 1 Schema 2

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Bases de données relationnelles

Introduction à JDBC. Accès aux bases de données en Java

Le langage SQL Rappels

Rappel sur les bases de données

Premiers Pas en Programmation Objet : les Classes et les Objets

Extension SSO Java. Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java.

RMI. Remote Method Invocation: permet d'invoquer des méthodes d'objets distants.

1. Langage de programmation Java

Sommaire. 2 LINQ to Objects

Tutoriel d installation de Hibernate avec Eclipse

Applet pour visualiser les variables «automate» notifiées

Synchro et Threads Java TM

PROJET 1 : BASE DE DONNÉES REPARTIES

Utilisation d objets : String et ArrayList

Programmation Objet Java Correction

OpenPaaS Le réseau social d'entreprise

TD/TP PAC - Programmation n 3

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)

Java Licence Professionnelle Cours 7 : Classes et méthodes abstraites

Mise en œuvre des serveurs d application

Cours 1: Java et les objets

Utilitaires méconnus de StrataFrame

Introduction à ADO.NET

TP Programmation Java / JDBC / Oracle

Programmation Réseau. Sécurité Java. UFR Informatique jeudi 4 avril 13

1. Base de données SQLite

Application web de gestion de comptes en banques

Gestion distribuée (par sockets) de banque en Java

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

TD/TP PAC - Programmation n 3

Un ordonnanceur stupide

Les Threads. Sommaire. 1 Les Threads

Rafraichissement conditionné d'une page en.net

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Page 1 sur 5 TP3. Thèmes du TP : l la classe Object. l Vector<T> l tutorial Interfaces. l Stack<T>

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Module.NET 3 Les Assemblys.NET

Gestion du cache dans les applications ASP.NET

Bases de données cours 1

Remote Method Invocation en Java (RMI)

CREATION WEB DYNAMIQUE

Licence Bio Informatique Année Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

Technologies du Web. Ludovic DENOYER - ludovic.denoyer@lip6.fr. Février 2014 UPMC

Notions fondamentales du langage C# Version 1.0

Convers3 Documentation version Par Eric DAVID : vtopo@free.fr

PHP. PHP et bases de données

Gestion de base de données

ISC Système d Information Architecture et Administration d un SGBD Compléments SQL

Optimisations des SGBDR. Étude de cas : MySQL

BASE DE DONNÉES XML NATIVE

Paginer les données côté serveur, mettre en cache côté client

Programmation Par Objets

Connaître la version de SharePoint installée

Serveur d'archivage 2007 Installation et utilisation de la BD exist

Construire une application marketing Facebook sur la plateforme Windows Azure

Flux de données Lecture/Ecriture Fichiers

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

I4 : Bases de Données

Structure fonctionnelle d un SGBD

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Remote Method Invocation Les classes implémentant Serializable

Bases de Données. Plan

Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées

Transcription:

IUT Bordeaux 1 2008-2009 Département Informatique Licence Professionnelle ~ SI TD Objets distribués : un service de gestion de scores en.net Remoting avec persistance des données Ce TD devra aboutir sur une extension de votre réalisation Jeu. Le produit final devra être rendu en fin de séance par mail. On se propose d écrire une application distribuée en.net Remoting réalisant un service de gestion de scores. Vous avez déjà implémenté ce service (TopTen de votre application Jeu ) sans se soucier de la persistance des données. Pour des raisons de simplicité, nous ne traiterons pas les aspects authentification et suivi de connexion. Votre travail se décomposera en deux parties : Réalisation du service Intégration du service dans votre application Jeu. Le service permettra de gérer des scores (AjouterScore, SuppressionScore, etc.) et de les rendre accessibles (ConsulterScore). On vous demande de réaliser le client et le serveur. Ce document vous donne quelques morceaux de code avec des fonctionnalités restreintes (gestion minimale des exceptions, etc.) 1. La couche physique des données (CPD) 1.1. ACCESS En exploitant votre SGBD ACCESS, créer une base de données LesScores avec une seule table Score(Numero,Nom,Prénom,Score). Alimenter votre table Score de quelques lignes. 1.2. MySQL 1.3. SQL-SERVER 2. La couche d accès aux données (CAD) Cette couche devra permettre d accéder aux données persistantes sans connaître la technologie de stockage des données (fichiers, base de données, etc.). Fichier ScoresCAD.cs : using System.Data; using System.Data.OleDb; public class ScoresCAD public ScoresCAD() void AjouterScoreSQL(string n, string p, int v) //n:nom, p:prenom, v:valeur

System.Data.OleDb.OleDbConnection Connection; Connection = new System.Data.OleDb.OleDbConnection(); Connection.ConnectionString = "Provider=microsoft.jet.oledb.4.0;Data Source=../../../Scores.mdb;"; Connection.Open(); // Requête d'insertion et son exécution //A FAIRE // Fermeture de la connexion Connection.Close(); DataSet ExtraireScoreSQL(string nom) System.Data.OleDb.OleDbConnection Connection; Connection = new System.Data.OleDb.OleDbConnection(); Connection.ConnectionString = "Provider=microsoft.jet.oledb.4.0;Data Source=../../../Scores.mdb;"; Connection.Open(); String Requete = "SELECT Nom,Prenom,Valeur FROM Score WHERE Nom = '" + nom + "'"; OleDbDataAdapter da = new OleDbDataAdapter(Requete,Connection); // Préparation du DataSet ds DataSet ds = new DataSet(); da.fill(ds, "ListeScores"); // Fermeture de la connexion Connection.Close(); return ds; /** Recherche d'un score dans la BD **/ public Score ExtraireScore(string nomrecherche) Score score = new Score(); System.Data.DataSet requete = ExtraireScoreSQL(nomRecherche); score.nom = (string)requete.tables["listescores"].rows[0]["nom"]; score.valeur = (int)requete.tables["listescores"].rows[0]["valeur"]; try score.prenom = (string)requete.tables["listescores"].rows[0]["prenom"]; catch (Exception e) score.prenom = ""; return score; public void AjouterScore(Score score) AjouterScoreSQL(score.Nom, score.prenom, score.valeur); 3. La couche métier On doit spécifier à ce niveau les services, ce qui se traduit naturellement par la spécification des interfaces du service.

Fichier IScoreService.cs : public interface IScoresService Score Rechercher(string nom); void Ajouter(Score score); L implémentation de ces services utilisera la couche d accès aux données (CAD). Fichier ScoresService.cs : public class ScoresAdminService : IScoresService public ScoresAdminService() public Score Rechercher(string nom) ScoresCAD cad = new ScoresCAD(); Score S = cad.extrairescore(nom); return S; public void Ajouter(Score score) ScoresCAD cad = new ScoresCAD(); Score Doublon = cad.extrairescore(score.nom); if (Doublon == null) cad.ajouterscore(score); else Console.WriteLine(" Ce nom a déjà un score : il faut le remplacer!");// AFAIRE! 4. L objet Score Fichier Score.cs : [Serializable] public class Score public string Nom; public string Prenom; public int Valeur; 5. Accès des services via.net Remoting De manière similaire aux précédentes séances, nous distinguerons l objet publié (ScoreServiceRemoting.cs) du code qui publiera cet objet (Serveur.cs)

ScoreServiceRemoting.cs : using System.Runtime.Remoting; using System.Runtime.Remoting.Channels; using TD_Scores; namespace MesScoresRemoting public class ScoresServiceRemoting : MarshalByRefObject, IScoresService IScoresService les_scores = new ScoresAdminService(); public Score Rechercher(string nom) Score S = les_scores.rechercher(nom); return S; public void Ajouter(Score score) les_scores.ajouter(score); Serveur.cs : using System ; using System.Runtime.Remoting ; using System.Runtime.Remoting.Channels ; using MesScoresRemoting ; public class Server [STAThread] static void Main ( string [] args ) IChannel chan = new TcpChannel (5555); ChannelServices.RegisterChannel(chan,true); RemotingConfiguration.RegisterWellKnownServiceType (typeof (ScoresServiceRemoting), "TcpService", WellKnownObjectMode.Singleton ); Console.WriteLine ("Appuyer une touche pour arrêter le service"); Console.ReadLine (); 6. Client.Net Remoting Similaire aux précédentes séances. Client.cs : using TD_Scores ; using System.Runtime.Remoting; using System.Runtime.Remoting.Channels; class ClientRemoting static void Main ( string [] args )

TcpChannel channel = new TcpChannel (); ChannelServices. RegisterChannel ( channel,true ); IScoresService les_scores =(IScoresService)Activator.GetObject(typeof(IScoresService),"tcp://127.0.0. 1:5555/TcpService"); Score S = les_scores.rechercher("harrison"); Console.WriteLine("Le nom de HARRISON est "+S.Nom); Console.WriteLine("Le prénom de HARRISON est "+S.Prenom); Console.WriteLine("Le score de HARRISON est "+S.Valeur.ToString()); Console.Read(); 7. Intégration du service dans votre application Jeu Dans votre application Jeu, remplacer votre service TopTen sans persistance des par ce service LesScores. données 8. Extensions 8.1. Utiliser un autre SGBD pour le stockage des données MySQL par exemple. 8.2. Utiliser un service web pour accéder au service 8.3. Utiliser un page ASP.NET pour accéder aux données 8.4. Utiliser localement l objet Scores