OBJETS COMMUNICANTS FILIÈRE INFORMATIQUE AMBIANTE ET MOBILE SI5 MASTER IFI

Documents pareils
Création d objet imbriqué sous PowerShell.

Java Licence Professionnelle CISII,

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

Le hub d entreprise est une application de déploiement des applications mais aussi un outil de communication

Alfstore workflow framework Spécification technique

Le MSMQ. Version 1.0. Pierre-Franck Chauvet

Programmation Par Objets

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

Rafraichissement conditionné d'une page en.net

Utilisation d objets : String et ArrayList

Programmer en JAVA. par Tama

Arbres binaires de recherche

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

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

TP1 : Initiation à Java et Eclipse

Programme Compte bancaire (code)

Une introduction à Java

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

ACTIVITÉ DE PROGRAMMATION

Projet de programmation (IK3) : TP n 1 Correction

Les processus métiers : concepts, modèles et systèmes

Premiers Pas en Programmation Objet : les Classes et les Objets

as Architecture des Systèmes d Information

ADO.NET. Ado.net propose deux modes d'accès, le mode connecté et le mode déconnecté.

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

Bases Java - Eclipse / Netbeans

Programmation avec des objets : Cours 7. Menu du jour

RMI le langage Java XII-1 JMF

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Package Java.util Classe générique

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

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

Programmation en Java IUT GEII (MC-II1) 1

Chapitre 10. Les interfaces Comparable et Comparator 1

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

Programmation VBA/Excel. Programmation VBA. Pierre BONNET. Masters SMaRT & GSI - Supervision Industrielle P. Bonnet

Langage Java. Classe de première SI

Chapitre VI- La validation de la composition.

Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e

Développement Logiciel

Construire des plug-ins pour SAS Management Console SAS 9.1

Utilitaires méconnus de StrataFrame

INFO-F-105 Language de programmation I Séance VI

Manuel d'installation

Auto-évaluation Programmation en Java

Cours d initiation à la programmation en C++ Johann Cuenin

Introduction au langage C

Développement d un logiciel de messagerie instantanée avec Dotnet (version simplifiée)

Module.NET 3 Les Assemblys.NET

Lambda! Rémi Forax Univ Paris-Est Marne-la-Vallée

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

Plan du cours. Historique du langage Nouveautés de Java 7

Création d un service web avec NetBeans 5.5 et SJAS 9

Gestion du cache dans les applications ASP.NET

4. Groupement d objets

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

[APPLICATON REPARTIE DE VENTE AUX ENCHERES]

JADE : Java Agent DEvelopment framework. Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry.

RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION)

TP1. Outils Java Eléments de correction

Corrigé des exercices sur les références

A DESTINATION DES SERVICES TIERS. Editeurs d applications et ressources pédagogiques connectées à l ENT

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

Les arbres binaires de recherche

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

Composants Logiciels. Le modèle de composant de CORBA. Plan

Cours 1: Java et les objets

OpenPaaS Le réseau social d'entreprise

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

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

Cours 14 Les fichiers

Rapport de Mini-Projet en ArcGIS Engine

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa Novembre 2008

Corrigés des premiers exercices sur les classes

Derrière toi Une machine virtuelle!

.NET - Classe de Log

Machines virtuelles fonctionnelles (suite) Compilation ML Java

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie

Généralités. javadoc. Format des commentaires. Format des commentaires. Caractères spéciaux. Insérer du code

Les structures de données. Rajae El Ouazzani

Classes et Objets en Ocaml.

HMI target Visu / PLC HMI. Pour réaliser une interface homme machine avec PLC control

Approche Contract First

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Flex. Lire les données de manière contrôlée. Programmation Flex 4 Aurélien VANNIEUWENHUYZE

Principes. 2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA. Programmation en Corba. Stéphane Vialle

TD/TP PAC - Programmation n 3

STAGE IREM 0- Premiers pas en Python

Dis papa, c est quoi un bus logiciel réparti?

Généralités sur le Langage Java et éléments syntaxiques.

Notions fondamentales du langage C# Version 1.0

Cours de C++ François Laroussinie. 2 novembre Dept. d Informatique, ENS de Cachan

Mise en œuvre des serveurs d application

Programmation Objet Java Correction

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

API04 Contribution. Apache Hadoop: Présentation et application dans le domaine des Data Warehouses. Introduction. Architecture

Transcription:

OBJETS COMMUNICANTS FILIÈRE INFORMATIQUE AMBIANTE ET MOBILE SI5 MASTER IFI "RENDEZ VOS OBJETS COMMUNICANTS ET INTERACTIFS AVEC DES PHIDGETS" Jean-Yves Tigli, http://www.tigli.fr Email : tigli@polytech.unice.fr Tel : 0492081676 Bureau : 408

PLATEFORME LOGICIELLE WCOMP DE PROTOTYPAGE Design d Objet Communicant Conception d Objet Communicant Chaîne logicielle de services intégrant l Objet Communicant Architecture Matérielle de l Objet Communicant Prototypage matériel /logiciel sur PC Architecture Logicielle de l Objet Communicant Application distante Multiservices Multidispositifs Portage sur cible embarquée

3 Avec le middleware WComp Avantage : Architecture orientée composant Composition dynamique au runtime Modèle du Middleware (LCA) Modèle de Bean WComp (Propriété / Méthodes /Evénements) Connecteurs WComp Créer / Gérer votre application par assemblage de composants

4 Avec le middleware WComp : Modèle LCA LCA : Lightweight Components Architecture 1. L Application est un Assemblage de Composants légers 2. Composition par flots d'événements 3. Nœud d exécution et distribution explicite Proche de la notion d orchestration

5 Avec le middleware WComp : Des composants légers BeanWComp Composant BeanWComp méthodes Evénement Get /Set propriétés Liaisons Liaisons simples --- Liaisons Complexes ---

6 Avec le middleware WComp : Modèles de connecteurs : Event et Event Complexe Connecteur Event Simple C1.Event (param) => C2.Methode (param) Connecteur Event Complexe C1.Event (param) => C2.Methode (C1.GetProp())

7 Exemple de BeanWComp.Net Evénements sous C# basés sur le modèle du delegate Attribut personnalisé using System; using System.ComponentModel; using WComp.Beans; namespace Bean4 /// <summary> /// Description rsume de Class1. /// </summary> [Bean(Category="MyCategory")] Evénement public class Class1 // delegate implicite de void EventHandler(object sender, EventArgs e) public event EventHandler MyEvent; // graphiquement ce qui sera fait : // MyEvent += new EventHandler(func) // avec private void func(object sender, EventArgs e)

8 Exemple de BeanWComp.Net Propriétés // Nom de la propriété avec minuscule // variable de sauvegarde propriété protected int myprop = 1; //meta donnée : valeur par défaut propriété [DefaultValue(1)] // déclaration propriété : public <type> Nom public int Myprop get return myprop; Propriété set if (myprop < 1) throw new ArgumentException("positif!"); // mot clef value myprop = value;

9 Exemple de BeanWComp.Net Méthodes // méthodes public void MyStep(int val1, int val2) if (myprop >= max) myprop=1; MyEvent(this, null); else myprop++; Méthode Polytech Master IFI/IAM - Jean-Yves Tigli - Stephane Lavirotte - <prenom>.<nom>@unice.fr

10 Mise en oeuvre de WComp PC (container SharpDevelop) Faire une application sous WComp (assemblage dynamique de composants BeanWComp) Créer un Bean WComp

11 Annexe 1 : Delegate et Event en C# /.Net Presque tout le monde connaît les événements. A chaque fois que vous cliquez sur un bouton dans une application Windows vous déclenchez un événement. Ici, le but est de créer des événements qui vont être propres à votre application. C'est-à-dire déclencher une action dans votre application lorsque quelque chose se produit et informer les objets abonnés à cet événement.

12 Annexe 1 : Delegate et Event en C# /.Net Notre événement va nous servir à afficher un message toutes les secondes. Nous allons déclarer la classe comme ceci : Langage C# using System; namespace TutoEvent /// <summary> /// A la responsabilité de contenir le text de l'évenement et de le rendre accessible /// </summary> public class GenerateTextEventArgs : EventArgs private string myeventtext = null; public GenerateTextEventArgs(string theeventtext) if (theeventtext == null) throw new NullReferenceException(); myeventtext = theeventtext; public string EventText get return this.myeventtext;

13 Annexe 1 : Delegate et Event en C# /.Net http://freddyboy.developpez.com/dotnet/articles/events/ Il n'est pas possible de parler des événements sans parler des delegate. Un delegate est un objet qui permet d'appeler une fonction ou une série de fonction. Un delegate est similaire aux pointeurs de fonctions du C/C++. Une variable delegate va permettre d'exécuter une fonction ou plusieurs fonctions. Pour cela le delegate va stocker des références sur des méthodes (que nous appellerons un gestionnaire d'évenéments ("Event handler")).

14 Annexe 1 : Delegate et Event en C# /.Net La signature des méthodes référencées devra respecter les règles suivantes : retourner void prendre comme premier paramètre un type object que nous appellerons généralement sender prendre comme second paramètre un objet héritant de EventArgs, donc dans notre cas un objet GenerateTextEventArgs. Note : il est possible de voir des delegate déclarer autrement. Ici on montre simplement la méthode généralement utilisée pour les événements. Pour déclarer un delegate, nous utilisons la syntaxe suivante : public delegate void TextGeneratedEventHandler (object sender, GenerateTextEventArgs e);

15 Event Il nous faut ensuite déclarer un objet event du type du delegate déclaré plus haut. Le mot clé event vous permet de spécifier un délégué à appeler lors de l'occurrence d'un certain événement dans votre code. Pour déclarer un event, nous utilisons la syntaxe suivante: public event TextGeneratedEventHandler OnTextChanged;

16 Générer l'événement Pour générer un événement il suffit d'appeler son constructeur avec les paramètres éventuels comme ceci : GenerateTextEventArgs e = new GenerateTextEventArgs("Compteur = " + i.tostring()); Puis il nous reste à envoyer cet événement à tout le monde : Langage C# if (e!= null) OnTextChanged(this,e);

17 Classe complète using System; using System.Threading; namespace TutoEvent /// <summary> /// A la responsabilité d'envoyer un evenement GenerateTextEvent toutes les secondes i.tostring()); /// </summary> public class GenerateText /// <summary> /// Declare un delegate /// </summary> public delegate void TextGeneratedEventHandler(object sender, GenerateTextEventArgs e); /// <summary> /// Declare un evenement qui va contenir les informations que nous souhaitons envoyer /// </summary> public event TextGeneratedEventHandler OnTextChanged; public GenerateText() public void Start(int thenumber) int i = 0; while (i < thenumber) GenerateTextEventArgs e = new GenerateTextEventArgs("Compteur = " + if (e!= null) OnTextChanged(this,e); Thread.Sleep(1000); i++;

18 Récupérer un événement dans un gestionnaire d'événements Un gestionnaire d'évenéments ("Event Handler") est la méthode qui va s'exécuter en réponse à l'événement. Un Event hanlder retourne normalement void et accepte 2 paramètres qui sont : - le sender : l'objet dans lequel l'événement s'est produit. - Un argument de type EventArgs qui contient les informations relatives à l'événement. Pour récupérer un événement, la première chose à faire est de se placer à l'écoute de cet événement. C'est là que le delegate que nous avons déclaré plus haut trouve toute son utilité.