Gettting ready for the summer school!

July 4th, 2007

In two weeks, the Summer School jointly organized by HEIG-VD (Switzerland), San José State University, California State University Long Beach and California State University Fullerton is starting.


California map

I have the privilege to teach a course on ubiquitous computing, which I am really looking forward to! I am preparing a program with a mix of lectures (introduction to ubicomp, ambient interfaces, context-aware computing, middleware & dynamic service architectures, RFID, wireless sensor networks), design exercises and prototype implementations.

I hope it will be both informative and fun for the students, who will work in “mixed” teams (which is a great opportunity for our students to practice their english)!

Busy week at Jazoon 07

June 27th, 2007

This week, I am at the International Conference on Java Technologies, aka Jazoon 07. It’s the first time that this conference is organized (in Zürich). It is sort of a European version of the Java One conference. The program is full of technical sessions, demonstrations & BOFs - really good stuff!!

Jazoon Logo

The University of Applied Sciences of Western Switzerland, and more specifically the HEIG-VD, is well represented at the conference:

  • It started on Sunday: together with my friend Patrick Fuhrer, I gave a tutorial entitled “Developing Rich Applications with the NetBeans Platform”. During this full-day session, we showed how a complete application could be built on top of the platform. The tutorial will soon be published on-line. In the meantime, if you’re interested in this topic, you can reach us at netbeans [at] wasabi-tech.com.
  • On Monday, we finished the setup of our booth in the exhibition space. We were at the conference to present our R&D activities and highlight our collaboration with industrial partners. Transforming ideas into working systems and products is what makes working at the HEIG-VD so exciting!!
  • Still on Monday, my friends Dominique Guinard and Patrik Fuhrer were on stage to present the “RFIDLocator”, an asset tracking application that uses RFID to detect the movements of objects. It is a project that we started together, when I was still working for Sun Microsystems.
  • On Wednesday, I had a session entitled “Managing Wireless Sensor Networks with Java“, where we presented our joint project with Shockfish. We gave an overview of the management platform that we are currently building, together with my colleague David Johannot.
  • On Tuesday and Wednesday, my colleagues Markus Jaton and Mark Vincent from the HEIG-VD presented a demonstration of the IMINET system, which is a framework designed for the easy implementation of applications in the field of telemedicine or medical-oriented applications.
  • This afternoon, there are no sessions - I have decided to skip the “Die Hard 4″ avant-première projection to do an overdue update to my blog and do some work…
  • Tomorrow is already the final day - still got a very interesting sessions to attend and interesting people to meet!!

Wireless Sensor Networks & Java

March 16th, 2007

While I have been interested in ubiquitous computing for a long time, I have just started a project with a technology that I have never had the occasion to work with: Wireless Sensor Networks (WSN). That’s very exciting!

The project is done in collaboration between Shockfish SA (a start-up based at the EPFL campus) and the Institute for Information and Communication Technologies (IICT) at the University of Applied Sciences of Western Switzerland (HEIG-VD), where I work.

Shockfish has developed a great WSN platform: the TinyNode. Both sensor nodes and control stations are available, which makes it possible to communicate with the WSN across the Internet.


The Mighty TinyNode

All sorts of applications can be built with the TinyNodes - just think about domotics, logistics or environmental monitoring.

Applications are very diverse, yet there are common services that always need to be provided to developers: remote access management, event processing, data management, device management, monitoring, logging, etc. These services should be packaged into a middleware layer (that’s an idea that has been around for quite some time in the related field of RFID).

That’s more or less the focus of our project: we are building a distributed management platform for WSN. On one hand, it will allow system administrators to manage the sensor networks (monitor state, send commands, upgrade firmware, etc.). On the other hand, it will analysts to extract and visualize information from the data sent by the sensor nodes.

In that sense, the project is not purely an infrastructure project, but also important has human-computer interaction aspects (interactive visualization). That makes it even more interesting!

We are currently working on the analysis and design of the system. We know that we will use open source Java technologies and are currently looking at AppFuse - which looks very promising! We’ll certainly share our experience with this “project booster”.


AppFuse Logo

The implementation of the management platform is part of a larger project, which is supported by the Swiss Confederation’s Innovation Promotion Agency (CTI). My colleague Stephan Robert lead a previous project phase, in which (among other things) Java ME components were developed for the TinyNode control station.


LogoCTI

Tempête de méninges

February 5th, 2007

Un “mind map” est un type de diagramme, qui permet de représenter graphiquement les relations entre des concepts. En partant d’une idée centrale, on ajoute progressivement des mots clés autour du centre. Le résultat est une structure radiale, hiérarchique et non-linéaire, qui peut être annotée de différentes manières: couleurs, images, etc.

Créer un mind map aide à structurer, classifier et organiser ses idées.

MindMap

Depuis quelques années, les mind maps sont utilisés dans de nombreuses entreprises et organisations. Ils sont notamment utiles pendant les séances de brainstorming, au cours de workshops et plus généralement pour la prise de notes.

Plusieurs logiciels permettent l’édition électronique de mind maps. La liste est longue et inclut aussi bien des produits commerciaux que des logiciels libres.

Le projet MindShare est réalisé dans le cadre de nos recherches dans le domaine de l’informatique communautaire (social computing). Notre objectif est de concevoir et d’implémenter un éditeur de mind maps en appliquant certains principes du “Web 2.0″:

  • Nous voulons créer un éditeur qui soit accessible depuis n’importe quel poste de travail. Nous pouvons donc imaginer une implémentation AJAX, même si d’autres technologies “légères” et “riches” sont aussi envisageables. Notre but est de faire aux minds maps, ce que d’autres ont fait aux tableurs, aux clients de messagerie ou aux traitements de texte.
  • Nous voulons permettre l’édition de diagrammes en mode déconnecté. Si certaines solutions à ce problème ont déjà été proposées, elles ne sont pas toutes satisfaisantes. Il sera donc nécessaire de les évaluer, voire d’en proposer une nouvelle.
  • Nous voulons faciliter la collaboration et la coordination entre les utilisateurs. Contrairement aux éditeurs de mind maps traditionnels, nous voulons permettre l’édition d’un diagramme par plusieurs utilisateurs. Pour cela, nous devrons mettre en oeuvre des techniques d’interaction homme-machine particulières (en considérant aussi bien la coordination synchrone que la coordination asynchrone). De telles techniques sont connues sous le terme de workspace awareness et ont fait l’objet de travaux de recherche. Notre contribution consistera à faire une implémentation AJAX de ces techniques. Les composants pourront être réutilisés pour développer d’autres applications collaboratives.
  • Nous voulons concevoir un service qui soit capable d’accueillir une grande population d’utilisateurs. Nous devrons donc convevoir l’architecture du système de manière à garantir des qualités de service: scalabilité, performances, disponibilité, robustesse, sécurité, ergonomie.

L’objectif du travail de diplôme est de réaliser la première implémentation du système, avec une attention particulière sur les questions liées à l’interaction homme-machine.

Si vous êtes étudiant et que ce projet vous intéresse, n’hésitez pas à nous contacter pour en savoir plus, ou à vous inscrire sur le site b2s.

uBike: le Web 2.0 au service des cyclo-sportifs

February 5th, 2007

Dans le cadre de nos activités de recherche en informatique diffuse (ubiquitous computing) et en informatique communautaire (social computing), nous avons initié un projet intitulé uBike. Notre but est d’étudier comment l’utilisation de périphériques divers (capteurs, équipements mobiles, etc.) permet de changer la manière avec laquelle nous interagissons avec la technologie, et la manière avec laquelle nous interagissons avec d’autres personnes.

Notre objectif est de concevoir un service innovant, de construire un système permettant de le réaliser (en assurant les qualités de service requises) et finalement de l’évaluer auprès d’une communauté d’utilisateurs importante.

uBike est un service interactif, destiné à la communauté des cyclo-sportifs. Il vise à enrichir la pratique du sport, en exploitant des données récoltées pendant les séances d’entraînement (initialement, il s’agira de données spatiales et temporelles). Une palette de fonctions sera offerte aux utilisateurs. On distinguera les fonctions personnelles (utilisées de manière indépendante par chaque utilisateur), les fonctions collaboratives (utilisées conjointement par un groupe restreint d’utilisateurs) et les fonctions communautaires (utilisées conjointement par un grand nombre d’utilisateurs).

Le service est conçu selon un mode de fonctionnement asynchrone, dans le sens où les utilisateurs n’ont pas d’interaction avec le service pendant l’entraînement, mais entre les séances. Les données n’ont donc pas besoin d’être transmises en temps réel, mais peuvent l’être de manière périodique. Le service est particulièrement intéressant quand il est utilisé sur une période assez longue – de plusieurs mois à plusieurs années.

Nous voulons développer des stratégies pour augmenter la motivation et la satisfaction des sportifs. Nous voulons également encourager et faciliter les séances d’entraînement en groupe. Les dimensions communautaire et ludique du service sont donc importantes. L’ergonomie du service et sa simplicité d’utilisation sont également des facteurs primordiaux pour l’adoption du service.

Sur le plan technique, le service est destiné à une population d’utilisateurs importante et doit être capable de traiter une grande quantité des données, sujette à une croissance rapide. L’architecture du système doit en tenir compte et intégrer la notion de grille de calcul (grid computing) et en utilisant les technologies Jini et JavaSpaces.

Le travail de diplôme consiste à implémenter une partie du système, en apportant des réponses à des questions fonctionnelles, architecturales, technologiques et ergonomiques.

Pour les questions d’architecture, nous prévoyons de collaborer avec l’entreprise Sun Microsystems.

Pendant l’été, des tests de matériel auront été réalisés par des cyclistes volontaires et des données auront été récoltées.

Si ce sujet vous intéresse, n’hésitez à contacter Olivier Liechti et à vous inscrire sur le site b2s.

L’interopérabilité des “web services” en pratique

January 26th, 2007

La promesse des standards “web services” est d’assurer l’interopérabilité des systèmes, quelle que soit les plate-formes sous-jacentes. Un client implémenté sur la plate-forme de Microsoft devrait pouvoir échanger des messages avec un service implémenté sur la plate-forme Java. Un client implémenté avec la pile Axis devrait pouvoir échanger des messages avec un service implémenté avec la pile xfire.

La réalité n’est pas aussi simple. D’abord, parce que si on va au-delà d’exemples triviaux, le terme “échanger des messages” doit être abordé sous l’angle des qualités de service. Du point de vue du développeur, quand on échange des messages, on a besoin de certaines garanties:

  • garantie de fiabilité (le message ne sera pas perdu et sera délivré avec certitude)
  • garantie d’intégrité (le message ne sera pas modifié pendant la transmission)
  • garantie de confidentialité (le message ne sera pas intercepté et compris par un tiers malveillant pendant la transmission)
  • garanties transactionnelles
  • etc.

Des standards ont été, ou sont en train d’être, définis pour traiter ces différents aspects. Ils évoluent rapidement et il est difficile pour les éditeurs de “piles” web services de fournir une implémentation complète des standards. Une approche consiste donc à définir des sous-ensembles (on parle de profils) de standards, qui peuvent être ratifiés par les éditeurs. Chaque profil couvre un ensemble de problématiques et intègre les standards associés. On peut ensuite évaluer et juger l’interopérabilité de deux piles qui se déclarent comme des implémentations du profil.

Un autre problème est lié à la qualité des implémentations. En pratique, deux piles qui déclarent implémenter les mêmes standards ne sont pas souvent pas compatibles à 100%. Une collaboration entre les éditeurs et une phase de qualification sont nécessaires pour améliorer cette situation.

L’interopérabilité entre web services fait l’objet du projet PRESTO (”PRotocole d’Echanges Standard et Ouvert”). L’objectif du projet est de définir un ensemble de standards qui serviront de base aux échanges électroniques dans l’administration française. Le projet inclut la réalisation de prototypes, en collaboration avec plusieurs éditeurs. Ces prototypes permettent de vérifier le degré d’interopérabilité entre les différentes implémentations.

Dans ce billet, Alexis Moussine-Pouchkine présente sa participation au projet. Il évoque deux technologies importantes développées chez Sun.

Trac

January 21st, 2007

Last week, a student of mine showed me a pretty interesting project management tool (designed for software development projects). Its name is Trac. It integrates a wiki, a timeline manager, an issue tracking system and an interface to subversion.


trac logo

What I liked most about it is that it is very lightweight. The UI is not cluttered, the system is very responsive. It just does not get in the way of the developers.

What’s great about the tool is that you can very easily link elements in the different sub-systems (e.g. link an issue with a source file). With special tags, you can also generate dynamic reports within wiki pages (list of open bugs, etc.).

A quick search indicates that Trac is already used extensively in the open source community.

Technology, Entertainment, Design

January 21st, 2007

La conférence TED (Technology, Entertainment, Design) réunit près de 1′000 personnes influentes pour aborder la technologie avec une perspective très large. On y aborde des thèmes aussi variés que l’environnement, l’innovation, le design, l’art. Le site web de la conférence donne accès à des webcasts des années précédentes. On y trouve par exemple:

  • un exposé de Nicholas Negroponte sur l’ordinateur à 100 dollars,
  • une présentation de Hans Rosling sur le projet Gapminder,
  • une démonstration de Jeff Han sur une interface homme-machine révolutionaire, qui n’est pas sans faire penser à celle d’un certain téléphone.

TED Talk - Ken Robinson

J’ai particulièrement apprécié l’exposé de Sir Ken Robinson, consacré à la créativité. Le ton de la présentation est un vrai régal.

La Madeleine de Proust

January 19th, 2007

Les interfaces ambiantes s’inscrivent dans la notion d’informatique diffuse (ubiquitous computing), avec l’objectif de rentre l’interaction homme machine plus naturelle, plus “transparente”. En 1995, Marc Weiser et John Seely Brown ont introduit la notion de technologie “calme“. L’interaction avec une technologie “calme” se déroule en grande partie à la périphérie de l’attention de l’utilisateur, qui en bénéficie donc sans fournir d’effort particulier. Les interfaces ambiantes sont particulièrement efficaces dans le domaine de la téléprésence.
Depuis une dizaine d’années, de nombreux travaux de recherche ont été réalisés dans ce domaine. Plus récemment, des sociétés ont commercialisé des produits inspirés de ces travaux. Ils permettent de connecter des sources d’information (cours de la bourse, arrivée d’un message électronique) à des représentations abstraites (changement de couleur d’une lampe, émission de sons).

Par contre, une question demeure à explorer: quels outils devrait-on offrir aux utilisateurs pour configurer et contrôler un système composé de plusieurs périphériques ambiants? La réponse varie en fonction du type d’utilisateurs concernés. Certains utilisateurs préféreront une interface très simple (une espèce de télécommande). D’autres privilégieront une interface très expressive (un environnement de développement visuel).

Dans le cadre de cette démarche, nous proposons un travail de diplôme à la Haute Ecole d’Ingénieurs et de Gestion du Canton de Vaud. Il consiste à concevoir et à implémenter un ensemble de composants logiciels dans le cadre du projet SWANN, consacré aux méthodes de contrôle pour interfaces ambiantes.

Le candidat sera notamment amené à:

  • Concevoir l’architecture globale du système. Un système ambiant est constitué de composants matériels et logiciels. Dans les deux cas, on peut imaginer aussi bien des capteurs et des actuateurs. Initialement, nous nous intéresserons à des capteurs logiciels (p.ex. pour mesurer du trafic sur un site web communautaire) et des actuateurs matériels (p.ex. pour représenter les variations de trafic de manière visuelle). Le candidat devra concevoir un modèle orienté objet et spécifier une API permettant de créer des composants et de gérer leurs interactions.
  • Proposer un modèle de services pour le système. Pour cela, il devra étudier les standards existants (Jini, OSGi, UPnP, X10, etc.) et faire un choix. Le modèle devra entre autres prendre en charge la gestion du cycle de vie des services, la découverte dynamique des services et la gestion des événements.
  • Implémenter un environnement de simulation, sous la forme d’un éditeur graphique qui permet de modéliser une pièce, d’y placer des représentations de périphériques ambiants et de visualiser l’état de ces périphériques. L’éditeur permettra également de modéliser et de configurer des capteurs logiciels. Finalement, l’éditeur permettra de router et de transformer les messages émis par les capteurs pour les acheminer vers les actuateurs.
  • Implémenter une bibliothèque de capteurs logiciels de base (détection de l’arrivée d’un message, mesure du trafic sur un site web, détection d’événements applicatifs). Cette bibliothèque sera utilisée dans l’environnement de simulation.

Au terme du travail de diplôme, nous disposerons ainsi d’un premier type d’outil pour configurer des environnements ambiants. L’outil sera destiné à des utilisateurs avancés, mais sera suffisamment convivial pour permettre le développement rapide d’applications.

Si vous êtes étudiant et que ce sujet vous intéresse, n’hésitez pas à nous contacter pour en savoir plus et à vous inscrire sur le site b2s.

Murmures…

January 19th, 2007

Le couplage faible est un principe de conception bien connu de la programmation orientée objets. Réduire les dépendances entre les composants d’une application (objets, classes, paquetages) permet de faire évoluer le code plus facilement, encourage la réutilisation et facilite la maintenance.

Plus le couplage entre deux composants est fort, plus les modifications sur l’un ont un impact sur l’autre.

La réduction du couplage est également important à une autre échelle: celle du système informatique de l’entreprise. Dans ce cas, ce sont les dépendances entre les applications que l’on cherche à réduire. Il s’agit d’une problématique d’intégration plus que de développement, même si la frontière entre ces deux disciplines est floue.

C’est un aspect important de la notion d’architecture orientée services (SOA). Face à un ensemble de systèmes hétérogènes, on veut éviter de réaliser une multitude d’intégrations point à point (qui augmentent le couplage). Pour cela, on expose la logique métier des systèmes sous la forme de services. Chaque service remplit une fonction, chaque service peut être invoqué à distance, grâce à une infrastructure d’échange de messages.

Différents services peuvent ensuite être combinés et de coordonnés, ce qui permet d’implémenter de la logique applicative à un niveau supérieur, de manière transversales aux applications. Par exemple, un processus de “traitement d’une commande client” est implémenté en orchestrant un service de “gestion des clients”, un service de “gestion du stock”, un service de “calculation de rabais” et un service de “facturation”.

Un point important à relever, c’est que les principes d’une architecture orientée services sont génériques, et donc indépendants d’une technologie particulière. Beaucoup d’éditeurs logiciels insistent sur l’utilisation de standards “web services”, mais il existe des alternatives.

On peut par exemple penser à Jini, une technologie particulièrement élégante qui fournit des mécanismes pour publier, découvrir et invoquer des services au sein d’une infrastructure distribuée. On peut également penser aux middlewares orientés messages (MOM), qui fournissent une infrastructure de communication inter-applicative fiable et performante. Les MOMs sont utilisés depuis de nombreuses années dans des environnements critiques (notamment dans les applications financières) et ont démontré leur valeur. Beaucoup de MOMs implémentent l’API standardisée Java Message Service (JMS).

Il existe pourtant beaucoup d’organisations qui n’utilisent pas de MOM, souvent parce que l’intégration a été faite de manière ad-hoc (connections point à point). Conscientes du besoin d’urbaniser leur système informatique, elles considèrent les solutions logicielles estampillées “SOA” comme la solution à leurs besoins. L’introduction d’un MOM est une alternative qu’elles devraient considérer, car elle présente plusieurs avantages: elle est éprouvée, “légère”, simple à appréhender par les développeurs, introduit peu de complexité dans l’infrastructure, etc.

Convaincus des avantages des MOMs, nous pensons qu’il existe un besoin pour des outils de conception, de développement et de gestion spécialement conçus à leur effet. C’est une thématique que nous nous proposons d’investiguer dans le projet MURMURES à l’IICT.

Si vous êtes intéressés par cette problématique - parce que vous utilisez déjà un MOM ou parce que vous envisagez d’en utiliser à l’avenir, n’hésitez pas à nous contacter. Nous sommes intéressés par différentes formes de collaboration.

Pour les étudiants, un travail de diplôme est proposé dans le cadre du projet MURMURES. N’hésitez pas à nous contacter pour en discuter. Plus d’informations sont disponibles sur le site b2s.