Cahier des Charges du Projet Domotique. Choquet Mathieu Masson Jérôme Groupe 6. Domotique. p.1
|
|
- Amaury Meunier
- il y a 8 ans
- Total affichages :
Transcription
1 Choquet Mathieu Masson Jérôme Groupe 6 Domotique p.1
2 SOMMAIRE : Introduction I/ Envoi de SMS II/ Architecture III/ Serveur IV/ Détection de mouvement V/ Problème rencontré V/ Organisation du travail ANNEXES p.3 p.3 p.4 p.4 p.5 p.5 P;5 p.6 p.2
3 Ce projet a pour but de proposer dans un premier temps un service de sécurité pour les maisons. Par la suite il pourra s'étendre à un contrôle global des différents éléments d'une maison ( Télévision, stores électriques, lumière, etc...). Nous nous limitons pour cette année à la réalisation d'un serveur domotique offrant des services de sécurité. Une webcam tournera chez le client. En cas de détection d'intrusion (de mouvement ici), une alerte sera générée et traitée afin d'informer le client. Le client, ainsi alerté, pourra se connecter sur notre site afin de voir en temps réel ce qui se déroule chez lui. Il peut également à tout moment se connecter et observer ce qui se déroule chez lui. I/Envoi de SMS : Nous avons étudier trois techniques d'envoi de SMS résumé ici dans le tableau suivant. Technique Avantages Inconvénients Site spécialisé Pas de surcoût matériel Dépendance vis à vis du site proposant le service Délai entre l'envoi et la réception trop aléatoire Carte D41E Indépendance Prix relativement très élevé à l'achat (court terme) Modem + carte sim Indépendance Crédit de la carte sim à long terme Pour des raisons de coûts et de simplicité, nous retenons la première technique. En effet, les sites spécialisés offrent des tarifs avantageux. De plus, pour envoyer un sms, il leur suffit de recevoir un e mail ce qui est facile à implémenter en java. II/ Architecture : Voici résumé dans un tableau les deux architectures possibles. p.3
4 Architecture Avantages Inconvénients Serveur /Client Client Maintenance facile puisque site unique Si un client plante, le système reste opérationnel pour les autres En cas de crash du serveur, tout le système tombe Déplacement obligatoire pour chaque maintenance Coût matériel multiplié par chaque client supplémentaire Par Client, nous entendons le fait qu'il n'y ai pas de serveur central et que chaque client et indépendant des autres en tout point de vue. Pour des raisons de commodités (maintenance...), nous retenons la première architecture et implémenterons donc un serveur central qui comportera une application JAVA qui s'occupera de récupérer les alertes générés par les clients, d'envoyer un e mail pour déclencher l'envoi de sms. Le client quand à lui, ne s'occupera que de la détection de mouvement et, le cas échéant, de l'envoi d'une alerte au serveur. III/ Serveur : Le serveur principal sera donc accessible par le client à partir d'un site web, qui aura pour tâches l'authentification d'un client, la gestion de ses installations ainsi que la liaison entre le client et celles ci. Ce site comportera une base de données pour la création d'un lien entre le client et ses modules, la gestion de double l'authentification (Login+Pass et SSL pour la connexion entre le site et le serveur) d'un client pour éviter un piratage du serveur. Voici les tables qui seront dans notre bases de données : Table client Table house Table LM Id Nom Prénom Tél Mobile Mail Pass ( cryptage md5) Id Id_client Rue Code Postal Ville Id_house A terme, l'application devra être supportée sur le serveur web central sans besoin de redirection pour une plus grande sécurité ( serveur de secours au cas où ). Pour se faire, il y aura nécessité de trouver la technologie la mieux adaptée ( J2SE à priori ). p.4
5 IV/ Détection de mouvement : Cahier des Charges du Projet Domotique Il y a plusieurs techniques afin de détecter un mouvement mais le principe de base reste le même c a d des images sont prises à intervalles réguliers puis comparer entre elles. En C, on peut utiliser des vecteurs. Cependant ayant choisi le Java comme langage de programmation, nous sommes obligés de traiter par pixels. Après nous pouvons faire les moyennes de chaque couleur ( rouge, vert et bleu) et les comparer. Ou, comme nous l'avons choisi, comparer chaque pixel (x,y) avec son équivalent dans l'image suivante selon leur caractéristique ARGB. Il faut définir jusqu'à quel pourcentage un pixel peut «changer». Ceci est important car deux images consécutives ne sont jamais à 100% égales ne serait ce que par la variation de luminosité ( nuage qui passe devant le soleil par exemple). Enfin il faut définir le pourcentage général c a d le nombre de pixel à partir duquel nous pouvons considérer qu'il y a eu mouvement. Il est inutile de tout lancer pour un seul pixel qui change. V/ Problèmes rencontrés : Le principal problème rencontré se porte sur la détection de mouvement. En effet, il faut avoir une webcam de très bonne qualité car sinon entre deux prises successives, la différence est trop marquée et du coup est détectée comme un mouvement et une alerte est générée pour rien. Ensuite pour des raisons de temps, nous n'avons pas pu faire exactment le projet comme nous le voulions c a d avec une interface web et une gestion de base de données. Un autre problème rencontré qui, s'il n'est pas apparu clairement lors du développement et des tests sur la même machine, concerne l'envoi d'e mail. En effet, pour cela il faut disposer d'un serveur smtp accessible. En général le seul accessible est celuidu fournisseur d'accès mais il n'est accessible que depuis l'endroit où l'abonnement est pris c a d non accessible d'un autre réseau (Renater par exemple). Quand aux «accessibles», ils sont qualifiés de «relais ouverts» et sont en général blacklisté car utilisés par les spammeurs. Il est donc très important de connaître le FAI afin de pouvoir activer l'envoi de mail. V/ Organisation du travail: Choquet Mathieu s'est occupé de la partie Java comprenant la détection de mouvement et l'envoi d'e mail. Masson Jérôme s'est occupé de la partie site Internet comprenant l'interface web et la gestion de la base de donnée. p.5
6 Voici le code source du client : Cahier des Charges du Projet Domotique ANNEXES / Client Domotique Version finale Choquet Mathieu Masson Jérôme M2 RTM / import java.io.; import java.net.; import java.awt.graphics2d; import java.awt.image; import java.awt.image.; import javax.media.buffer; import javax.media.capturedeviceinfo; import javax.media.capturedevicemanager; import javax.media.manager; import javax.media.medialocator; import javax.media.nodatasourceexception; import javax.media.noplayerexception; import javax.media.noprocessorexception; import javax.media.player; import javax.media.control.framegrabbingcontrol; import javax.media.format.videoformat; import javax.media.protocol.datasource; import javax.media.util.buffertoimage; import javax.swing.imageicon; import com.sun.image.codec.jpeg.jpegcodec; import com.sun.image.codec.jpeg.jpegencodeparam; import com.sun.image.codec.jpeg.jpegimageencoder; public class Client extends Thread p.6
7 //Fonction permettant d'enregistrer les captures d'images de la webcam en JPEG public static void savejpg(image img, String s) BufferedImage bi = new BufferedImage(img.getWidth(null), img.getheight(null), BufferedImage.TYPE_INT_RGB); Graphics2D g2 = bi.creategraphics(); g2.drawimage(img, null, null); FileOutputStream out = null; try out = new FileOutputStream(s); catch (java.io.filenotfoundexception io) // création du fichier automatiquement si inexistant // encodeur JPEG JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out); // paramètres d'encodage JPEGEncodeParam param = encoder.getdefaultjpegencodeparam(bi); param.setquality(0.5f, false); // assignation des paramètres d'encodage encoder.setjpegencodeparam(param); try // encodage de l'image encoder.encode(bi); out.close(); catch (java.io.ioexception io) System.out.println("IOException"); public static void main(string[] args) throws IOException p.7
8 String addr = " "; Socket soc = null; PrintWriter out = null; BufferedReader in = null; String rec, mess; Image img1 = null,img2 = null; ImageIcon imgicon1 = null, imgicon2 = null; Buffer buf; FrameGrabbingControl fgc = null; BufferToImage btoi; BufferedImage bi1 = null, bi2 = null; int w = 0, h = 0, rgb1 = 0, rgb2 = 0, compteur = 0, total = 0, num = 2, blo = 0; float alpha1 = 0, rouge1 = 0, vert1 = 0, bleu1 = 0; float alpha2 = 0, rouge2 = 0, vert2 = 0, bleu2 = 0; try soc = new Socket (addr, 55333); out = new PrintWriter(soc.getOutputStream(),true); in = new BufferedReader (new InputStreamReader(soc.getInputStream())); catch(exception ex) ex.printstacktrace(); BufferedReader clavier = new BufferedReader(new InputStreamReader(System.in)); System.out.println("Veuillez entrer votre nom"); rec = clavier.readline(); out.println(rec); mess = in.readline(); p.8
9 System.out.println(mess); // récupération d'un périphérique à partir de son nom CaptureDeviceInfo capturedevice = CaptureDeviceManager.getDevice("vfw:Microsoft WDM Image Capture (Win32):0"); // récupération du MediaLocator lié au périphérique de capture MediaLocator medialocator = capturedevice.getlocator(); try // récupération d'une datasource à partir d'un MediaLocator DataSource ds = Manager.createDataSource(mediaLocator); // connexion sur la DataSource ds.connect(); // connexion d'un player sur la datasource Player player = Manager.createPlayer(ds); // préparation du player et du périphérique player.realize(); // démarrage de la lecture player.start(); // attend 2 secondes try Thread.sleep(2000); catch (InterruptedException e) e.printstacktrace(); // récupère un contrôle sur le flux fgc = (FrameGrabbingControl) player.getcontrol("javax.media.control.framegrabbingcontrol"); // récupère un Buffer contenant l'image demandée p.9
10 buf = fgc.grabframe(); // convertion du buffer en image (via BufferToImage) btoi = new BufferToImage((VideoFormat) buf.getformat()); // création de l'image et sauvegarde img1 = btoi.createimage(buf); imgicon1 = new ImageIcon(img1); bi1 = (BufferedImage)img1; System.out.println("Premiere image prise"); catch (NoDataSourceException e) e.printstacktrace(); catch (IOException e) e.printstacktrace(); catch (NoProcessorException e) e.printstacktrace(); catch (NoPlayerException e) e.printstacktrace(); while(mess.compareto("fin")!=0) // attend 1 minute entre chaque capture try Thread.sleep(10000); catch (InterruptedException e) p.10
11 e.printstacktrace(); // récupère un Buffer contenant l'image demandée buf = fgc.grabframe(); // convertion du buffer en image (via BufferToImage) btoi = new BufferToImage((VideoFormat) buf.getformat()); // création de l'image 2 et sauvegarde dans un fichier img2 = btoi.createimage(buf); imgicon2 = new ImageIcon(img2); bi2 = (BufferedImage)img2; System.out.println("Image "+num+" prise"); //comparaison //Récupération de la taille de l'image w = imgicon1.geticonwidth(); h = imgicon1.geticonheight(); //Récupération du nombre de pixels total total = w h; l'image 1 //Double boucle permettant de parcourir tous les pixels des images for(int i = 0 ; i < w ; i++) for(int j = 0 ; j < h ; j++) //Récupération des paramètres ARGB du pixel (i,j) de rgb1 = bi1.getrgb(i,j); alpha1 = ((rgb1 >>24 ) & 0xFF); rouge1 = ((rgb1 >>16 ) & 0xFF); vert1 = ((rgb1 >>8 ) & 0xFF); bleu1 = (rgb1 & 0xFF); //Récupération des paramètres ARGB du pixel (i,j) de l'image 2 rgb2 = bi2.getrgb(i,j); alpha2 = ((rgb2 >>24 ) & 0xFF); rouge2 = ((rgb2 >>16 ) & 0xFF); vert2 = ((rgb2 >>8 ) & 0xFF); bleu2 = (rgb2 & 0xFF); p.11
12 //Comparaison sur les paramètres de luminance, de rouge, de vert et de bleu //Ici variation tolérée à 80% de différence if( alpha2 < (alpha1 (alpha1 (float)0.8)) alpha2 > (alpha1 + (alpha1 (float)0.8)) rouge2 < (rouge1 (rouge1 (float)0.8)) rouge2 > (rouge1 + (rouge1 (float)0.8)) vert2 < (vert1 (vert1 (float)0.8)) vert2 > (vert1 + (vert1 (float)0.8)) bleu2 < (bleu1 (bleu1 (float)0.8)) bleu2 > (bleu1 + (bleu1 (float)0.8))) //Si il y a une variation de plus de 50%, incrémentation du compteur de pixels différents compteur++; alerte vers le serveur //Si le nombre de pixels différents est de plus de 50 % génération d'une if( compteur > (total 0.5) && blo == 0) savejpg(img2, "img"+num+".jpg"); System.out.println("Une intrusion a ete detectee "); out.println("alerte"); blo = 1; if(compteur < (total 0.5) && blo == 1) blo = 0; img1 = img2; imgicon1 = imgicon2; bi1 = bi2; compteur = 0; num++; soc.close(); Le code source du serveur : / p.12
13 Serveur Domotique Version finale Choquet Mathieu Masson Jérôme M2 RTM / import java.io.; import java.net.; public class Serveur extends Thread //initialisation d'une ServerSocket et acceptation de connexion entrante static Socket socketservice=null; public Serveur(Socket sock) this.socketservice=sock; public static void main(string args []) ServerSocket socketecoute; System.out.println("Bienvenu sur le serveur de Domotique"); System.out.println("En attente de connexion entrante"); try socketecoute=new ServerSocket(55333); while(true) socketservice=socketecoute.accept(); Serveur SE=new Serveur(socketService); //Lancement du multithread p.13
14 Cahier des Charges du Projet Domotique SE.start(); //gestion des erreurs catch(exception ex) ex.printstacktrace(); //menu d'exécution du multithread public void run() System.out.println("Nouvelle connexion: " +socketservice); InetAddress ip = socketservice.getinetaddress(); try //Initialisation de variables servant à la com entre le serveur et le client BufferedReader in = new BufferedReader (new InputStreamReader(socketService.getInputStream())); PrintWriter out = new PrintWriter(socketService.getOutputStream(),true); String input; input = in.readline(); System.out.println(input + " vient de se connecter"); out.println("ack"); //Condition de validité de la communication while(input.compareto("fin")!=0) //Le serveur est en attente du client input = in.readline(); p.14
15 //Si ALERTE est remontée par le client if(input.compareto("alerte") == 0) out.println("une intrusion a ete detectee "); smtp d'orange //TRES IMPORTANT //Faire attention à l'adresse du serveur SMTP //Ici ayant Orange pour FAI l'adresse est donc celui du serveur //Ne fonctionne que si votre FAI est Orange //Connexion au serveur smtp d'orange et envoi d'un mail Socket sock = new Socket("smtp.orange.fr",25); MailIo.sendMail(sock,"goula","mgoulamass@hotmail.com","Projetjava@hotmail.com","Intrusion"," Une intrusion a ete detectee"); //Fin de la com et fermeture de la socket out.println("fin"); socketservice.close(); //gestion des erreurs catch(exception ex) ex.printstacktrace(); Et enfin le code source de l'envoi d'e mail : / Envoi d'e mail Version finale Choquet Mathieu p.15
16 Masson Jérôme M2 RTM / import java.io.; import java.net.socket; import java.util.date; import java.util.stringtokenizer; public class MailIo public MailIo() public static boolean sendmail(socket sock, String localhost,string Destinataire, String from, String subject, String message) throws IOException //connection à la socket passée en paramètre out = new PrintWriter(sock.getOutputStream()); in = new BufferedReader(new InputStreamReader(sock.getInputStream())); //Vérification de la connection receive(); //on envoie la premiere ligne qui indique de qui elle provient send("helo " + localhost); //Accusé de réception receive(); //on envoie l'adresse de l'expediteur send("mail FROM: <" + from + ">"); //Accusé de réception receive(); //on envoie l'adresse du destinataire send("rcpt TO: <" + Destinataire + ">"); p.16
17 //Accusé de réception receive(); Cahier des Charges du Projet Domotique //On annonce que l'on va envoyer des données send("data"); //Accusé de réception receive(); //on remplit les différents champs send("subject: " + subject); send("date: " + new Date()); send("reply To:" + from); send("to: " + Destinataire); //on envoi chaque ligne séparément en utilisant \n comme délimitateur StringTokenizer tokenizer = new StringTokenizer(message, "\n"); //la ligne ci dessous se traduit par : tant qu'il y a encore des ligne, on envoi while (tokenizer.hasmoretokens()) send(tokenizer.nexttoken()); //pour finir l'envoi d'un mail il faut envoyer sur une ligne un seul point send("."); //Accusé de réception receive(); //on quitte send("quit"); //Accusé de réception receive(); //on ferme les flux in.close(); out.close(); sock.close(); return true; //methode qui recoit les information du serveur private static void receive() throws IOException String line = in.readline(); p.17
18 if (line!= null) System.out.println(line); System.out.println("\n"); //methode qui envoi des infos au serveur private static void send(string s) System.out.print(s); System.out.print("\r\n"); System.out.flush(); out.print(s); out.print("\r\n"); out.flush(); private static BufferedReader in; private static PrintWriter out; p.18
Pour plus de détails concernant le protocole TCP conférez vous à la présentation des protocoles Internet enseignée pendant.
Chapitre 7 Le mode de communication en connexion est, a priori, supporté par le protocole TCP. Ce protocole fournit une communication fiable; les données sont transmises comme chaînes d octets. Avant de
Plus en détailFlux de données Lecture/Ecriture Fichiers
Flux de données Lecture/Ecriture Fichiers 1 Un flux de données est un objet qui représente une suite d octets d un programme pour une certaine destination ou issus d une source pour un programme flux d
Plus en détailCommunication inter-processus (IPC) : tubes & sockets. exemples en C et en Java. F. Butelle
F. Butelle, E. Viennet, Système GTR2 IUT Paris 3 Communication inter-processus (IPC) : tubes & sockets exemples en C et en Java F. Butelle F. Butelle, E. Viennet, Système GTR2 IUT Paris 3 Java : implémentation
Plus en détailDis papa, c est quoi un bus logiciel réparti?
Dis papa, c est quoi un bus logiciel réparti? Raphael.Marvie@lifl.fr LIFL IRCICA Equipe GOAL Octobre 2006 10. Des sockets aux bus logiciels répartis 1 0. Une application répartie 2 Objectif Découvrir la
Plus en détailProgrammation Internet en Java
Chapitre 8 Programmation Internet en Java Vous avez déjà utilisé Internet, le plus connu des inter-réseaux mondiaux d ordinateurs et quelques-uns de ses services, en particulier le web et le courrier électronique.
Plus en détailDesktop Intégration. Rémi Forax
Desktop Intégration Rémi Forax 1 Intégration au bureau L intégration de l application au bureau de l utilisateur se fait en combinant plusieurs techniques L écran d annonce de l application (SplashScreen)
Plus en détailProgrammation Orientée Objet - Licence TIS CM8/9. Rappel sur la séance précédente. Lancelot Pecquet Lancelot.Pecquet@math.univ-poitiers.
Programmation Orientée Objet - Licence TIS CM8/9 Lancelot Pecquet Lancelot.Pecquet@math.univ-poitiers.fr Poitiers, le 13/03/2006 Rappel sur la séance précédente La fois précédente, nous avons vu : 1 UML
Plus en détailIntroduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf
Introduction à Java Matthieu Herrb CNRS-LAAS http://homepages.laas.fr/matthieu/cours/java/java.pdf Mars 2014 Plan 1 Concepts 2 Éléments du langage 3 Classes et objets 4 Packages 2/28 Histoire et motivations
Plus en détailProgrammer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr)
Programmer en JAVA par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Plan 1. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4. Documentation 5. Index des mots-clés 6. Les erreurs fréquentes
Plus en détailExceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;
CNAM NFP121 TP 10 19/11/2013 (Séance 5) Objectif Manipuler les exceptions ; 1 Entrées/sorties Exercice 1 : Lire un entier à partir du clavier Ajouter une méthode readint(string message) dans la classe
Plus en détailProgrammation client-serveur sockets - RPC
Master Informatique M Plan de la suite Programmation client-serveur sockets - RPC Sacha Krakowiak Université Joseph Fourier Projet Sardes (INRIA et IMAG-LSR) http://sardes.inrialpes.fr/people/krakowia
Plus en détailRMI le langage Java XII-1 JMF
Remote Method Invocation (RMI) XII-1 Introduction RMI est un ensemble de classes permettant de manipuler des objets sur des machines distantes (objets distants) de manière similaire aux objets sur la machine
Plus en détailDéveloppement Logiciel
Développement Logiciel Éxamen session 1-2012-2013 (Vendedi 25 mai, 9h-11h) Seuls les documents liés directement au cours sont autorisés (comme dit sur le site) : sujets de TD, notes de cours, notes personnelles
Plus en détailGestion distribuée (par sockets) de banque en Java
Gestion distribuée (par sockets) de banque en Java Université Paris Sud Rappel sur la solution locale de gestion simple de banque L objet de cet exercice était de créer une application java qui implante
Plus en détailPage 1 sur 5 TP3. Thèmes du TP : l la classe Object. l Vector<T> l tutorial Interfaces. l Stack<T>
Page 1 sur 5 TP3 Lectures préalables : l Java_II l tutorial Interfaces Thèmes du TP : l la classe Object l Vector l Stack Une pile d'objects Les éléments de la classe Pile sont maintenant des instances
Plus en détailProgrammation Réseau. Sécurité Java. Jean-Baptiste.Yunes@univ-paris-diderot.fr. UFR Informatique 2012-2013. jeudi 4 avril 13
Programmation Réseau Sécurité Java Jean-Baptiste.Yunes@univ-paris-diderot.fr UFR Informatique 2012-2013 Java Sécurité? différentes sécurités disponibles et contrôlables intégrité contrôle d accès signature/authentification/cryptographie
Plus en détailLe modèle client-serveur
Le modèle client-serveur Introduction Christian Bulfone christian.bulfone@gipsa-lab.fr www.gipsa-lab.fr/~christian.bulfone/ic2a-dciss Master IC2A/DCISS Année 2012/2013 Encapsulation : rappel Données Données
Plus en détailTP Composants Java ME - Java EE. Le serveur GereCompteBancaireServlet
TP Composants Java ME - Java EE Vous allez, dans ce TP, construire une architecture client serveur, plus précisément MIDlet cliente, servlet serveur. Pour cela, on va d'abord installer la partie serveur
Plus en détailCorrigé des exercices sur les références
Corrigé des exercices sur les références Exercice 3.1.1 dessin Pour cet exercice, vous allez dessiner des structures de données au moyen de petits schémas analogues à ceux du cours, comportant la pile
Plus en détailIntroduction : les processus. Introduction : les threads. Plan
IN328 Programmation distribuée avec Java et J2EE 2 - Threads en Java Introduction : les processus Un processus est un ensemble d instructions à exécuter, un espace mémoire réservé et éventuellement d autres
Plus en détailProjet de programmation (IK3) : TP n 1 Correction
Projet de programmation (IK3) : TP n 1 Correction Semaine du 20 septembre 2010 1 Entrées/sorties, types de bases et structures de contrôle Tests et types de bases Tests et types de bases (entiers) public
Plus en détailACTIVITÉ DE PROGRAMMATION
ACTIVITÉ DE PROGRAMMATION The purpose of the Implementation Process is to realize a specified system element. ISO/IEC 12207 Sébastien Adam Une introduction 2 Introduction Ø Contenu Utilité de l ordinateur,
Plus en détailINTRODUCTION A JAVA. Fichier en langage machine Exécutable
INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du
Plus en détailGénéralités sur le Langage Java et éléments syntaxiques.
Généralités sur le Langage Java et éléments syntaxiques. Généralités sur le Langage Java et éléments syntaxiques....1 Introduction...1 Genéralité sur le langage Java....1 Syntaxe de base du Langage...
Plus en détailDéveloppement d un logiciel de messagerie instantanée avec Dotnet (version simplifiée)
Développement d un logiciel de messagerie instantanée avec Dotnet (version simplifiée) Propriétés Description Intitulé long Formation concernée Matière Présentation Développement d un logiciel de messagerie
Plus en détailTD3: tableaux avancées, première classe et chaînes
TD3: tableaux avancées, première classe et chaînes de caractères 1 Lestableaux 1.1 Élémentsthéoriques Déclaration des tableaux Pour la déclaration des tableaux, deux notations sont possibles. La première
Plus en détailAuto-évaluation Programmation en Java
Auto-évaluation Programmation en Java Document: f0883test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTION AUTO-ÉVALUATION PROGRAMMATION EN
Plus en détailProgrammation Réseau SSH et TLS (aka SSL)
Programmation Réseau SSH et TLS (aka SSL) Jean-Baptiste.Yunes@liafa.jussieu.fr Coloriages: François Armand armand@informatique.univ-paris-diderot.fr UFR Informatique 2011-2012 Réseau et Sécurité Problèmes
Plus en détailSynchro et Threads Java TM
Synchro et Threads Java TM NICOD JEAN-MARC Master 2 Informatique Université de Franche-Comté UFR des Sciences et Techniques septembre 2008 NICOD JEAN-MARC Synchro et Threads avec Java TM 1 / 32 Sommaire
Plus en détailAPI04 Contribution. Apache Hadoop: Présentation et application dans le domaine des Data Warehouses. Introduction. Architecture
API04 Contribution Apache Hadoop: Présentation et application dans le domaine des Data Warehouses Introduction Cette publication a pour but de présenter le framework Java libre Apache Hadoop, permettant
Plus en détailhttp://www.jdl68160.com/informatique/yawcam.htm
Date de publication: le 11/05/2013 Date de modification le : 19/05/2013-20:45 Edition de la version PDF le 20/05/2013 Yawcam est un petit logiciel gratuit, mais très complet, permettant de diffuser/d'enregistrer
Plus en détailUn ordonnanceur stupide
Un ordonnanceur simple Université Paris Sud L objet des exercices qui suivent est de créer un ordonanceur implantant l algorithme du tourniquet ( round-robin scheduler ). La technique utilisée pour élire
Plus en détailRMI. Remote Method Invocation: permet d'invoquer des méthodes d'objets distants.
RMI Remote Method Invocation: permet d'invoquer des méthodes d'objets distants. Méthode proche de RPC. Outils et classes qui rendent l'implantation d'appels de méthodes d'objets distants aussi simples
Plus en détailTP3. Mail. Attention aux fausses manoeuvres lors de ce TP vous pouvez endommager votre mail sur ouindose.
Université Paris 7 M2 II Protocole Internet TP3 Mail Attention aux fausses manoeuvres lors de ce TP vous pouvez endommager votre mail sur ouindose. 1 Protocole SMTP 1. Le protocole SMTP est définit dans
Plus en détailINITIATION AU LANGAGE JAVA
INITIATION AU LANGAGE JAVA I. Présentation 1.1 Historique : Au début des années 90, Sun travaillait sur un projet visant à concevoir des logiciels simples et performants exécutés dans des PDA (Personnal
Plus en détailGestion de Chambres d'hôtes Logiciel GESTCHA
Gestion de Chambres d'hôtes Logiciel GESTCHA Le logiciel GESTCHA peut gérer les réservations de Chambres d'hôtes, Hôtel, Motel, Camping. Il est totalement paramétrable et évolutif. I - Menu Administrateur
Plus en détailTP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile
TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface
Plus en détailChapitre 10. Les interfaces Comparable et Comparator 1
Chapitre 10: Les interfaces Comparable et Comparator 1/5 Chapitre 10 Les interfaces Comparable et Comparator 1 1 Ce chapitre a été extrait du document "Objets, Algorithmes, Patterns" de [René Lalement],
Plus en détailProgrammation Par Objets
Programmation Par Objets Structures de données package java.util B. Carré Polytech Lille 1 Tableaux et structures de données Tableaux «Objets» taille fixe type des éléments : primitif (homogène) ou objets
Plus en détailInfo0604 Programmation multi-threadée. Cours 5. Programmation multi-threadée en Java
Info0604 Programmation multi-threadée Cours 5 Programmation multi-threadée en Java Pierre Delisle Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique 18 février 2015 Plan
Plus en détailas Architecture des Systèmes d Information
Plan Plan Programmation - Introduction - Nicolas Malandain March 14, 2005 Introduction à Java 1 Introduction Présentation Caractéristiques Le langage Java 2 Types et Variables Types simples Types complexes
Plus en détailJava Licence Professionnelle CISII, 2009-10
Java Licence Professionnelle CISII, 2009-10 Cours 4 : Programmation structurée (c) http://www.loria.fr/~tabbone/cours.html 1 Principe - Les méthodes sont structurées en blocs par les structures de la programmation
Plus en détailApplet pour visualiser les variables «automate» notifiées
Applet pour visualiser les variables «automate» notifiées Sommaire 1. Introduction...2 2. Lecture de variables «automate» notifiées...2 2.1. IHM servant au test :...2 2.2. Codage de l'applet :...2 3. Codage
Plus en détailPlan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7
Université Lumière Lyon 2 Faculté de Sciences Economiques et Gestion KHARKIV National University of Economic Introduction au Langage Java Master Informatique 1 ère année Julien Velcin http://mediamining.univ-lyon2.fr/velcin
Plus en détailRemote Method Invocation (RMI)
Remote Method Invocation (RMI) TP Réseau Université Paul Sabatier Master Informatique 1 ère Année Année 2006/2007 Plan Objectifs et Inconvénients de RMI Fonctionnement Définitions Architecture et principe
Plus en détailLe MSMQ. Version 1.0. Pierre-Franck Chauvet
Le MSMQ Version 1.0 Z Pierre-Franck Chauvet 2 [Le MSMQ] [Date : 10/10/09] Sommaire 1 Introduction... 3 2 Le Concept... 5 2.1 Les messages... 5 2.2 Les files d attentes... 5 2.3 WorkGroup... 7 2.4 Active
Plus en détailTP1 : Initiation à Java et Eclipse
TP1 : Initiation à Java et Eclipse 1 TP1 : Initiation à Java et Eclipse Systèmes d Exploitation Avancés I. Objectifs du TP Ce TP est une introduction au langage Java. Il vous permettra de comprendre les
Plus en détailCette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :
Développement d un client REST, l application Vélib 1. Présentation L application présentée permet de visualiser les disponibilités des vélos et des emplacements de parking à la disposition des parisiens
Plus en détailInfo0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java
Info0101 Intro. à l'algorithmique et à la programmation Cours 3 Le langage Java Pierre Delisle, Cyril Rabat et Christophe Jaillet Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique
Plus en détailTD Objets distribués n 3 : Windows XP et Visual Studio.NET. Introduction à.net Remoting
IUT Bordeaux 1 2005-2006 Département Informatique Licence Professionnelle ~ SI TD Objets distribués n 3 : Windows XP et Visual Studio.NET Introduction à.net Remoting Partie 1 : l'analyseur de performances
Plus en détailCours 14 Les fichiers
Cours 14 Les fichiers F. Gayral 1 Fichier : définition /media/travaux/documents/fgenseignement/java1/courstpsfgfc/14-fichiers/voirtypefichiers Fichier = ensemble d informations codées et stockées sur une
Plus en détailRemote Method Invocation Les classes implémentant Serializable
Parallélisme Architecture Eric Goubault Commissariat à l Energie Atomique Saclay Classe qui implémente la méthode distante (serveur): - dont les méthodes renvoient un objet serializable - ou plus généralement
Plus en détailLes connexions sans fil avec Android. JMF (Tous droits réservés) 1
Les connexions sans fil avec Android JMF (Tous droits réservés) 1 Plan de l'exposé Wi-Fi : un rappel Démo 1 : trouver les réseaux Wi-Fi Démo 2 : repérer les appareils connectés sur notre réseau Wi-Fi Démo
Plus en détailThreads. Threads. USTL http://www.lifl.fr/ routier 1
Threads USTL http://www.lifl.fr/ routier 1 Rappels - Définitions un Process est un programme qui tourne et dispose de ses propres ressources mémoire. OS multi-tâche plusieurs process en concurrence un
Plus en détailSTS SE. FreeRTOS. Programmation réseau WIFI. Programmation réseau. Socket Tcp. FlyPort smart Wi-Fi 802.11 module
François SCHNEIDER Lycée Victor-Hugo BESANÇON. STS SE FreeRTOS Programmation réseau WIFI Programmation réseau Socket Tcp FlyPort smart Wi-Fi 802.11 module Prérequis : langage C, connaissance réseau : Ip,
Plus en détailPremiers Pas en Programmation Objet : les Classes et les Objets
Chapitre 2 Premiers Pas en Programmation Objet : les Classes et les Objets Dans la première partie de ce cours, nous avons appris à manipuler des objets de type simple : entiers, doubles, caractères, booléens.
Plus en détailSHERLOCK 7. Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5
SHERLOCK 7 Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5 Cette note montre comment intégrer un script Java dans une investigation Sherlock et les différents aspects de Java script. S T E M M E R I M A G I N
Plus en détailStructure d un programme et Compilation Notions de classe et d objet Syntaxe
Cours1 Structure d un programme et Compilation Notions de classe et d objet Syntaxe POO 1 Programmation Orientée Objet Un ensemble d objet qui communiquent Pourquoi POO Conception abstraction sur les types
Plus en détailPour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère
L'héritage et le polymorphisme en Java Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère En java, toutes les classes sont dérivée de la
Plus en détailCours 6 : Programmation répartie
Cours 6 - PC2R - M2 STL - UPMC - 2008/2009 p. 1/49 Cours 6 : Programmation répartie modèle à mémoire répartie Interneteries Client/serveur Exemples en O Caml Classe Java clients/serveur multi-langages
Plus en détailPackage Java.util Classe générique
Package Java.util Classe générique 1 Classe Vector La taille est dynamique: dès qu un tableau vectoriel est plein, sa taille est doublée, triplée, etc. automatiquement Les cases sont de type Object add(object
Plus en détailMobyt Intégration par Webservice TABLE DES MATIERES
Mobyt Intégration par Webservice TABLE DES MATIERES INTRODUCTION... 2 CONFIGURATION DE LA LIBRAIRIE... 2 ENVOI DE SMS... 3 ÉTAT DES MESSAGES... 4 HISTORIQUE DES MESSAGES... 5 CRÉDIT SMS DISPONIBLE... 6
Plus en détailIntroduction au langage Java
Introduction au langage Java 1 Introduction : Langage développé par Sun et purement orienté objet. N a pas de rapport direct avec Javascript développé par Netscape. Les applications java peuvent être des
Plus en détail1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.
1. Structure d un programme C Un programme est un ensemble de fonctions. La fonction "main" constitue le point d entrée pour l exécution. Un exemple simple : #include int main() { printf ( this
Plus en détailDéveloppement mobile MIDP 2.0 Mobile 3D Graphics API (M3G) JSR 184. Frédéric BERTIN fbertin@neotilus.com
Développement mobile MIDP 2.0 Mobile 3D Graphics API (M3G) JSR 184 Frédéric BERTIN fbertin@neotilus.com Présentaion : Mobile 3D Graphics API JSR 184 M3G :présentation Package optionnel de l api J2ME. Prend
Plus en détailAndroid UIThread, Thread, Handler et AsyncTask
Android UIThread, Thread, Handler et AsyncTask jean-michel Douin, douin au cnam point fr version : 21 septembre 2012 Notes de cours 1 Bibliographie utilisée http://developer.android.com/resources/index.html
Plus en détailTD/TP PAC - Programmation n 3
Université Paris Sud Licence d informatique/iup-miage2 Année 2004-2005 Auteur : Frédéric Vernier Semaine : 11-16 octobre 2004 Conditions : sur machine avec les outils standards java web: http://vernier.frederic.free.fr/indexpac.html
Plus en détail2) Téléchargement de l'application pour contrôler vos caméras :
1) Mises en route : Connecter le câble RJ45 entre votre routeur / box et votre caméra IP. Connecter l'adaptateur secteur sur une prise secteur et sur le port alimentation de votre caméra IP. 2) Téléchargement
Plus en détailClasse ClInfoCGI. Fonctions membres principales. Gestion des erreurs
Utilisation des classes de PourCGI par Michel Michaud, version 2002-11-23 Les fichiers PourCGI.h et PourCGI.cpp rendent disponibles deux classes et une fonction libre qui permettent de faire facilement
Plus en détail[APPLICATON REPARTIE DE VENTE AUX ENCHERES]
2012 Polytech Nice- Sophia El Hajji Khalil Yousfi Hichem SI4 - Log [APPLICATON REPARTIE DE VENTE AUX ENCHERES] Sommaire Architecture de l application... 3 Le Serveur... 3 Le Client... 4 Passage en CORBA...
Plus en détailUtiliser un client de messagerie
Utiliser un client de messagerie A. Préliminaires 1. Qu est-ce qu un client de messagerie? Habituellement, pour consulter vos mails, vous devez vous rendre sur internet, sur le webmail de votre fournisseur
Plus en détailLier Erlang avec d autres langages de programmation
16 Lier Erlang avec d autres langages de programmation Les logiciels actuels, quelle que soit leur taille, sont souvent écrits dans plusieurs langages de programmation. Généralement, les pilotes de périphériques
Plus en détailCalcul Parallèle. Cours 5 - JAVA RMI
Calcul Parallèle Cours 5 - JAVA RMI Eric Goubault Commissariat à l Energie Atomique & Chaire Ecole Polytechnique/Thalès Saclay Le 28 février 2012 Eric Goubault 1 28 février 2012 Remote Method Invocation
Plus en détailServeur d'application Client HTML/JS. Apache Thrift Bootcamp
Serveur d'application Client HTML/JS Apache Thrift Bootcamp Pré-requis La liste ci-dessous de logiciels doit être installée et opérationnelle sur la machine des participants : Compilateur thrift http://thrift.apache.org/
Plus en détailLa persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1
La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1 Plan 1. Généralités sur la persistance des données dans les applications 2. La connection
Plus en détailUne introduction à Java
Une introduction à Java IFT 287 (Semaine 1) UNIVERSITÉ DE SHERBROOKE 1 Java - Historique Développé par Sun Microsystems en 1994 Inventeur James Gosling (canadien!) Objectif langage sûr (fortement typé)
Plus en détailMapReduce et Hadoop. Alexandre Denis Alexandre.Denis@inria.fr. Inria Bordeaux Sud-Ouest France ENSEIRB PG306
MapReduce et Hadoop Alexandre Denis Alexandre.Denis@inria.fr Inria Bordeaux Sud-Ouest France ENSEIRB PG306 Fouille de données Recherche & indexation de gros volumes Appliquer une opération simple à beaucoup
Plus en détailSolutions du chapitre 4
Solutions du chapitre 4 Structures de contrôle: première partie 4.9 Identifiez et corrigez les erreurs (il peut y en avoir plus d une par segment de code) de chacune des proposition suivantes: a) if (
Plus en détailJava DataBaseConnectivity
Java DataBaseConnectivity JDBC JDBC est une API Java (ensemble de classes et d interfaces défini par SUN et les acteurs du domaine des SGBD) permettant d accéder aux bases de données à l aide du langage
Plus en détailWEBSERVICES. Michael Fortier. Master Informatique 2ème année. fortier@lipn.univ-paris13.fr A308, Université de Paris 13
WEBSERVICES Michael Fortier Master Informatique 2ème année fortier@lipn.univ-paris13.fr A308, Université de Paris 13 https ://lipn.univ-paris13.fr/ fortier/enseignement/webservices/ Sommaire 1 Rappels
Plus en détailTD2 Programmation concurrentielle
TD2 Programmation concurrentielle Développement Logiciel (L2-S4) Lundi 10 février 2014 Exercice 1 (Au bar...) Trois clients se trouvent au bar. Il est tard, ils sont fatigués, et ils s endorment sur le
Plus en détailExclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011
Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr Université de Provence 9 février 2011 Arnaud Labourel (Université de Provence) Exclusion Mutuelle 9 février 2011 1 / 53 Contexte Epistémologique
Plus en détailJava Licence Professionnelle 2009-2010. Cours 7 : Classes et méthodes abstraites
Java Licence Professionnelle 2009-2010 Cours 7 : Classes et méthodes abstraites 1 Java Classes et méthodes abstraites - Le mécanisme des classes abstraites permet de définir des comportements (méthodes)
Plus en détailJava Licence Professionnelle CISII, 2009-2010. Cours 2 : Classes et Objets
Licence Professionnelle CISII, 2009-2010 Cours 2 : Classes et Objets 1 Classes et Objets Objectifs des LOO : - Manipuler des objets - Découper les programmes suivant les types des objets manipulés - Regrouper
Plus en détailDE LA CAMÉRA SOMMAIRE
PARAMÉTRAGE DE LA CAMÉRA HIKVISION ISION DS-2CD2732F-IS SOMMAIRE 1 : CONFIGURATION POUR DE L ENREGISTREMENT PERMANENT... 2 1.1Configuration de la caméra... 2 1.1.1 Paramétrage de l adresse IP de la caméra...
Plus en détailE-mail : contact@nqicorp.com - Web : http://www.nqicorp.com
- 5, rue Soutrane - 06560 Valbonne Sophia-Antipolis E-mail : contact@nqicorp.com - Web : http://www.nqicorp.com NQI Orchestra 3.3 - Guide d'installation Windows.................................................................
Plus en détailProjet de Veille Technologique
Projet de Veille Technologique Programmation carte à puce - JavaCard Ing. MZOUGHI Ines (i.mzoughi@gmail.com) Dr. MAHMOUDI Ramzi (mahmoudr@esiee.fr) TEST Sommaire Programmation JavaCard Les prérequis...
Plus en détailADO.NET. Ado.net propose deux modes d'accès, le mode connecté et le mode déconnecté.
ADO.NET Ado.net est une technologie d'accès aux données qui fournit un ensemble des classes permettant d'accéder aux données relationnelles. Même si Microsoft a repris le nom d'ado, déjà présent en VB6,
Plus en détailLMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour
LMI 2 Programmation Orientée Objet POO - Cours 9 Said Jabbour jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour CRIL UMR CNRS 8188 Faculté des Sciences - Univ. Artois Février 2011 Les collections
Plus en détailLangage à objets : JAVA (1)
DEUST Systèmes d information et Réseaux, Gestion et réalisation 1 ère année Langage à objets : JAVA (1) 2013-2014 1 INTRODUCTION... 3 Langages compilés et interprétés... 3 Java, compilé et interprété...
Plus en détailNotion de thread (1/2)
Notion de thread (1/2) La machine virtuelle java (JVM) permet d'exécuter plusieurs traitements en parallèle (en pratique, ils s'exécutent par tranche et en alternance sur le processeur). Ces traitements
Plus en détailVous y trouverez notamment les dernières versions Windows, MAC OS X et Linux de Thunderbird.
MAIL > configuration de mozilla thunderbird > SOMMAIRE Qu'est ce que Thunderbird? Téléchargement du logiciel Thunderbird Configuration Installation d'un compte POP Installation d'un compte IMAP En cas
Plus en détailProgrammation Objet Java Correction
INSA - 4 AE 2007 2008 Durée : 1H00 Contrôle Programmation Objet Java Correction Consignes Tous les documents sont autorisés, mais ils seront peu utiles. Indiquez vos nom et prénom sur chaque feuille. Le
Plus en détailEFIDEM easy messaging systems. EFIDEM SAS 3 rue de Téhéran 75008 Paris T : 01 46 40 10 86 F : 01 70 55 50 20 Email : info@efidem.
EFIDEM easy messaging systems 3 rue de Téhéran 75008 Paris T : 01 46 40 10 86 F : 01 70 55 50 20 Email : info@efidem.com Copyright 2012 Reproduction Interdite sans l accord écrit d EFIDEM Date du document
Plus en détail7 Développement d une application de MapReduce
7 Développement d une application de MapReduce Ecrire un programme d Hadoop demande un processus : écrire une fonction map, une fonction reduce et tester localement. Ecrire ensuite un programme pour lancer
Plus en détailModule http MMS AllMySMS.com Manuel d intégration
Module http MMS AllMySMS.com Manuel d intégration Objectif du document... 3 1 Envoi de MMS par requête http... 4 1.1 Format de la requête utilisée... 4 1.2 Arborescence et explication des balises du flux
Plus en détailIntégration d'un système d'audio-vidéo conférence sur un robot de téléprésence
Rapport de stage de 2ème année : Intégration d'un système d'audio-vidéo conférence sur un robot de téléprésence Gerontechnology Research Center, Yuan Ze University, Taiwan Kévin Ham Stage effectué du :
Plus en détailALGORITHMIQUE ET PROGRAMMATION ORIENTEE OBJET
ALGORITHMIQUE ET PROGRAMMATION ORIENTEE OBJET I. INTRODUCTION 1.1. HISTORIQUE 1991: Concepts Java pour Sun -conception d'un langage pour des appareils électroniques(code embarqué) -syntaxe proche du C++
Plus en détailModèle à composants. Daniel Hagimont. IRIT/ENSEEIHT 2 rue Charles Camichel - BP 7122 31071 TOULOUSE CEDEX 7. Remerciements
Modèle à composants Daniel Hagimont IRIT/ENSEEIHT 2 rue Charles Camichel - BP 7122 31071 TOULOUSE CEDEX 7 Daniel.Hagimont@enseeiht.fr http://www.enseeiht.fr/~hagimont Remerciements Eric Bruneton Sacha
Plus en détail