Raising your level of abstraction

In the last week of June, the Homerton College in Cambridge, UK, was home of the Code Generation 2008 conference. The aim was to bring together experts, developers, architects and people who are trying to get to know more about the concepts of model-driven software development (MDSD). This software development paradigm has its roots in software product line engineering, which is the discipline of designing and building families of applications for a specific purpose or market segment, through the creation of domain-specific models.

The conference had a quite diverse team of speakers: people from the Microsoft world, including Jean-Marc Prieur and the well-known Steve Cook, some guys from the Eclipse Modeling Project, other relevant players in this market like MetaCase and NT/e, and some academic researchers like Eelco Visser from the Delft University of Technology.

During the quite intensive three days of conference, we had the opportunity to listen, learn, discuss, meet great people and have a lot of fun. The main topics were textual and graphical DSLs, product lines and quality-of-service constrained software, with great presentations that should soon be available at the conference’s website.

The Microsoft approach provides a lot of off-the-shelf features and a well-defined roadmap to get you up to speed fairly quickly. By the way, in the French-speaking environment Microsoft seems to be quite ahead with an active community of developers. On the other hand, the Eclipse tools (and the open-source initiatives in general) are more flexible (and you don’t have to worry about licenses), but have a steeper learning curve and it’s sometimes hard to find out what’s the best approach to take midst so many options. Other commercial solutions seemed to be a little bit outdated – as one of the speakers mentioned, it’s hard to follow all the emerging frameworks and new technologies and be able to generate code for most of them – and that’s one of the reasons why JeeWiz, for example, just went open-source.

MDSD is certainly a hot topic in the ever-changing world of Web 2.0, as it allows companies to respond more dynamically to market changes and we’ll certainly continue to keep an eye on it and share our impressions here.

SFR SpeedStartup Dating: une belle occasion pour (re)découvrir les technologies de demain

SFR a annoncé hier via son blog les lauréats du SpeedStartingUp n°3, un concours de Startup basé sur le principe du Speed Dating. C’est une belle occasion pour nous de (re)découvrir les futures technologies qui vont très certainement arriver demain et commencer à réfléchir aux futures applications qui pourront naître de ces innovations (technologies mobiles, tactiles et sans contact, …).

IntuiLab, grand gagnante de cette dernière édition avec IntuiFace, a bien pour vocation de concurrencer Surface, la très célèbre table interactive de Microsoft. Pour rappel, Surface est une interface révolutionnaire qui repousse les limites de l’expérience utilisateur. Jusqu’alors, les interfaces tactiles traditionnelles souffraient de nombreux défauts, dont celui de ne pouvoir suivre que le mouvement d’un seul doigt! Microsoft a résolu le problème avec une approche totalement différente. L’écran n’est plus sensible au toucher, mais ce sont 5 caméras infrarouges dissimulées dans son contour qui suivent en permanence les mouvements des doigts des utilisateurs et calculent leurs positionnement par rapport à l’écran. Outre les nouvelles interactions possibles, on peut penser aux développement d’applications collaboratives, à l’exploration virtuelle, aux échanges et visualisation de données via l’interaction avec de nombreux autres dispositifs, tels que les téléphones mobiles, les Tablets PC, les tags RFID, … Sachant que tant pour Surface que IntuiFace, les premières applications ont d’ores et déjà été développées autour des technologies riches WPF (Silverlight) de Microsoft et AIR/Flex d’Adobe. Ces technologies riches sont donc belle et bien promues à un bel avenir.

D’autres Startup ont été mises en valeur. En terme de technologies “sans contact”, on peut notamment parler de Twinlinx, qui intègre les technologies NFC et RFID dans une même puce (“protocole double”) permettant le développement de nouvelles applications sur des distances comprises entre 10 cm et 1 mètre et Connecthings, la solution de gestion de tags géolocalisés. Une des principales différences entre RFID et NFC est que la technologie NFC est non intrusive. Elle ne peut être utilisée que sur de courtes distances (10cm) et elle suppose une démarche volontaire de l’utilisateur.

Ces puces “sans contact” envahissent peu à peu notre quotidien. Elles sont déjà présentes dans les titres de transports, les badges d’accès , les passeports et les portes-monnaies électroniques, les clés de contact de voitures, la logistique pour la gestion des bagages dans les aéroports. Elles pourront être implémentées dans les magasins avec des solutions applicatives pour la démonstration de produits (vidéos sur mobiles).

Les puces RFID permettront demain de connaître le contenu d’un caddie, d’identifier les contrefaçons, de payer ses achats avec son mobile NFC via un lecteur “sans contact”, de suivre le parcours des médicaments, de contrôler l’identité des patients d’une clinique…

Google Gears: le Web en mode déconnecté

Après Firefox et Internet Explorer, c’est au tour d’Opera d’annoncer qu’il supportera Google Gears dans sa version 9.5 et dans sa version pour mobiles, Opera Mini. Concrètement, Google Gears se présente sous forme de plug-in open source qui étend Ajax pour les applications Web fonctionnant en mode déconnecté.

Pour ce faire, le plug-in va incorporer:

- SQLite, une base de données locale (DataBase) pour enregistrer les données localement;
- Un cache de ressources (LocalServer) qui remplace le serveur HTTP;
- Un moteur d’exécution de processus asynchrones (WorkerPool) qui est une extension d’Ajax.

Google Gears modifie donc le fonctionnement du navigateur afin d’exécuter en local des applications Ajax et conserver le résultat de ses traitements. La synchronisation des données reste toujours possible avec le serveur si le réseau est disponible. Google Docs a été la première application Google Apps a offrir une utilisation en mode déconnecté. Cela permet de travailler sur ses fichiers textes sans liaison Internet, et ainsi éviter toute coupure du réseau (transports, panne à domicile, …).

Seul hic, Gears n’est pas encore standardisé, mais cela ne saurait tardé… Google prend donc une sacré option sur une technologie qui tend à être de plus en plus sollicitée pour répondre à la croissance impressionnante des applications développées en mode SaaS.

Adobe et Microsoft devrait eux aussi permettre la gestion du mode déconnecté à travers leur offre respective RIA/RDA, Flex & Silverlight. Le premier a mis en place sa plateforme AIR, qui étend les applications riches sur le desktop. La synchronisation des données est alors rendue possible par les outils BlazeDS (open source) ou encore LiveCycle Data. Il y a fort à parier que de son côté Microsoft va intégrer dans SilverLight les outils de synchronisation déjà déployés dans sa toute nouvelle plateforme de services (Software + Service), Live Mesh.

Mais que se passe-t-il si plusieurs personnes éditent le même document en mode déconnecté? On a bien compris que de nombreux efforts au niveau de la synchronisation restent encore à être accompli afin de rendre les applications collaboratives disponibles en mode déconnecté.

Le Web 2.0 ne génère pas encore de cash

Le Web 2.0 a contribué avec certitude à changer les comportements online. En revanche la génération de revenus n’est pas encore au rendez-vous après déjà quatre ans d’expérimentation. C’est le constat établit par la communauté des entrepreneurs et des financiers du secteur et repris dans un article du Financial Times daté du 26 mai 2008. Après une vague forte d’investissements dans des start up du Web 2.0, un vent de consolidation approche mais la tendance du réseau social s’est installée durablement.

LeWeb’08 à Paris: premiers tickets à prix réduits

Considéré comme le plus grand évènement du Web en Europe, LeWEB’08 Paris ouvrira ses portes le 9 décembre. Les tickets d’entrée sont désormais en vente. Il faut en profiter. Il y a 250 billets avec 50% de réduction à acquérir très vite. Si vous souhaitez y participer cliquez ici.

Saas: Révolution en cours du logiciel

Saas ou “Software as a Service” est le nouveau thème à la mode. On connaissait l’ASP mais voilà le web est arrivé et la possibilité d’offrir un service 24/7 dans le monde entier Révolutionne les usages. Selon le Gartner le marché du SaaS devrait quintupler dans les cinq ans à venir. Cette tendance de fond est aussi une opportunité pour rendre les TPE/PME plus compétitives sur leurs marchés. L’apport de solutions logicielles complètes sans nécessité d’infrastructure IT onéreuse est un réel avantage pour les petites entreprises afin de gagner en efficacité et se concentrer sur leur métier. C’est une réelle opportunité et de nombreuses applications apparaissent sur le marché chaque jour. Les éléments stratégiques pour réussir sont la robustesse des produits (”zéro bug”), la fiabilité de l’hébergement et de la disponibilité machine, une maintenance très réactive et efficace. Le plus grand succès à ce jour est SalesForce bien sûr spécialisé dans le CRM mais d’autres géants fourbissent leurs armes comme Microsoft, IBM, Google et bien d’autres encore. A suivre…

Outils de développement pour l’iphone

Apple a lancé en début d’année une roadmap précise pour les développements sur l’Iphone avec notamment le Iphone Development Software kit (téléchargé 100,000 fois en 4 jours sur le site d’Apple après son lancement !).

Un autre programme en Béta destiné aux entreprises a été initié pour concurrencer les fonctions du Blackberry.

Le site d’Apple a un espace dédié pour les développeurs Iphone : Iphone Dev Center

Pour revenir aux SDKs de développement pour Iphone il existe plusieurs options :

- le SDK officiel vu précédemment,

- Aptana qui supporte le framework Ajax et intègre un plug-in Iphone,

- Le SDK des pirates qu’on fait soi même (open SDK)

Ci-dessous une analyse de l’officiel et du pirate :

Officiel :

Pour :

- Officiel Apple, installation via Itunes, pas besoin d’un Iphone “jailbraké” (cracké)

- Support, quand il sera disponible. Grosse documentation, simple,claire.

- Applications signées numériquement. Possibilités de revenus par téléchargement.

- IDE (XCode) parfaitement intégré, un plaisir à utiliser (= un petit wizard et on a notre premiere appli qui tourne)

Contre :

- Disponible, mais pas exploitable. En effet, le SDK est sorti et permet de faire des applications qui tournent sur l’émulateur fourni.

Cependant, pour déployer l’application sur l’iphone lui meme, il faut signer l’application via le site Apple (comprendre : l’outil sur le site n’est pas encore disponible, on ne peut donc pas signer l’application) et l’installer via Itunes ( comprendre : il faut un téléphone non piraté ). En fait, les applications développées avec le SDK officiel sont compilées pour le

firmware 2.0 qui n’est pas encore sorti (1.4 actuellement).

- Les API disponibles dans le SDK officiel sont un poil limitatives, par ex, on ne peut pas faire communiquer facilement le Javascript avec

l’application native.

Non Officiel :

Pour :

- Possible d’utiliser des API non officielles, à plus bas niveau, qui permettent de faire communiquer tres facilement le Javascript avec l’application native, ce qui permet de développer tres rapidement des UI en HTML/JS et d’avoir la puissance des transitions (par ex) natives de l’appareil.

- On peut tester dès maintenant sur le device !

Contre :

- Pas de vraie documentation. Beaucoup de taton, de recherche etc

- Impossible d’installer sur un Iphone légal, non jailbraké

- Difficile à obtenir : Il faut backuper l’Iphone sur le mac, sortir les librairies partagées (grosso modo les DLL) et exécuter un outil qui va générer des .h . Une fois qu’on à tout ca, il faut écrire le programme et faire le makefile qui va pouvoir le compiler. Une fois compilé, il faut l’installer sur l’iphone.

Android: a quick overview

Google Android is an open and free mobile platform. Android has been developed by over 30 companies (the union of them is called Open Handset Alliance) belonging to different fields such as telecommunications, semiconductors, software companies etc. The objective of those companies is to develop open standards for mobile devices. Some of them are (The complete list can be found at http://www.openhandsetalliance.com/oha_members.html):

HTC

Google

Samsung

LG

Ebay

Intel

Nvidia

Android is a complete stack that includes operative system, middle-ware and applications. Some interesting features are:

Optimized graphics powered by a custom 2D graphics library 3D graphics based on the OpenGL ES 1.0 specification

Media support for common audio, video, and still image formats (MPEG4, H264, MP3, AAC, AMR, JPG, PNG, GIF)

GSM Telephony

Bluetooth, EDGE, 3G, and WiFi

Camera, GPS, compass, and accelerometer

A bottom-up, shallow overview of the Architecture

Bottom layer. Linux 2.6 kernel. Why?

(a) The Linux kernel is used as an hardware abstraction layer. Want to bring up Android on a new device? First, bring Linux kernel on it.

(b) Linux has already a proven driver model, process management, networking, security model etc. Sometimes, drivers are already available.

(c) Linux is improved over time by a huge community. Android will benefit of this.

Middle layer: Libraries (C++) . At this level we have some libraries that constitute the core of Android. Libraries for Surface management based on SGL and OpenGLjES. Possibility to mix 2D and 3D within the same application. Then libraries for Media management, FreeType library for font management, SQLLite as a data storage, WebKit (a browser engine - the same engine that is at the basis of Safari). WebKit is modified in order to render well on small screens.

Middle layer: Runtime. At the basis of the runtime there is the “Dalvik virtual machine,” a special JVM that is developed for devices running with limited CPU power, battery and amount of memory. This virtual machine runs .Dex files that are the result (bytecode) of compiling .class files through a specific (for mobile devices) compilation process (e.g. data structures are designed to be shared among processes).

Middle layer: Java Core Libraries (On top of runtime). Here we find I/O libraries, collections, utilities and everything that is expected to be provided to the layer above.

Application layer framework (SDK). Here we find all the API provided by Google in order to build new applications. Some components of the Application layer framework are:

(a) The Window manager which is built on top of libraries for Surface management.

(b) The package manager (package installation, handling,etc).

(c) Content providers: the framework that allows to share contacts among different applications.

(d) Extensible Messaging and Presence Protocol (XMPP) service.

(e) An Activity Manager that manages the life cycle of applications and provides a common navigation backstack

3 Strenghts and weaknesses

Pros:

Potentially, a big market because it runs on different hardware devices (Devices running Google Android expected in the second half of 2008).

First big attempt to provide mobile phones with an innovative UI (alternative to the IPhone).

Low-tier handset manufacturers could make cheap touchscreen phones using Android.

Tight integration with Google products (huge customer base), tracking systems (GPS) and hardware in general.

Cons:

Android only reuses the Java language syntax but does not provide the full class libraries and APIs bundled with Java SE or ME.

Some parts of the SDK are still proprietary and closed source, and some believe it is a conscious decision to control the platform by Google.

Android is, by default, an open system: good for end-users, bad for mobile network providers?

Google Android vs OpenMoko (http://en.wikipedia.org/wiki/OpenMoko) . Which is the best open source solution?

What are Widsets?

WidSets is a mobile runtime technology, and a mobile service powered by the said technology, based on the Java MIDP 2.0 platform, from the Finnish mobile giant Nokia. It is both a widget engine and a widget deployment service where mini-applications called widgets can be uploaded to WidSets servers to be compiled and then automatically deployed to MIDP 2.0 compliant mobile phones running the WidSets client software. The widgets are created using Extensible Markup Language (XML), Cascading Style Sheets (CSS), and Helium scripting language.[1]

WidSets was officially launched on October 2006, it worked on all Java MIDP 2.0 phones, including non-Nokia ones, and was regarded as a mobile counterpart to Netvibes.[2] The current version as of May 2008 is version 2.0.0 for both the client and the SDK.

What can Widsets do?

In essence the widsets application allows the vast majority of mobile phones currently on the market to request information from web services and the web. Tiny applications can be downloaded to their handset which can perform functions ranging from getting the news from their favorite media source via RSS feeds to accessing their email easily on the go. Clients can use either their mobile handset or login to the widsets homepage and add widgets to their own dashboard which is then downloaded the next time they load the dashboard on their mobile handset.

One innovation of widsets is that it requires the dashboard to connect to a server that is controlled directly by Nokia. This could be seen as a negative aspect but really it is a fantastic benefit for portability. The users’ dashboard is saved on Nokia’s servers so it is easy for the user to access their own personal dashboard using any phone they wish.

Also the server process the information sent back to the client and removes any that is un-viewable not needed or not wanted by the user. This reduces the cost of sending the information and also enables the client to properly view the information they request. The user can also specify type of information they do not wish to download such as images and therefore save money. This allows non-3G phones to browse the internet without being overwhelmed with information, navigate the internet in an effective manor as well as reducing the time needed to access content over a GPRS network.

Another aspect of widsets that is very intriguing is that it uses XML for portability and accessibility. In fact any website that has its information in a RSS or ATOM feed fashion can be easily retrieved and view by the user. What’s interesting here is that many large business applications such as ERP systems (SAP, PeopleSoft) utilize XML for transferring data between their various modules. In theory a widsets widget could access information from ERP systems and deliver it to a mobile handset efficiently. Individuals could simply launch a widget from their dashboard and be able to view all sorts of statistics and information from their systems in real time on their mobile handset.

There are several limitations of widsets however. Nokia will not sell, lease or loan any of their servers that the dashboard connects to.

While the widsets API contains a lot of functionality, many aspects of it is either not implemented yet, unable to implement effectively due to restrictions on J2ME or not implemented very well. This limits some applications for the widsets framework.

Another aspect is that in order for widsets to be available to the majority of handsets on the market, limits were placed on the framework. These include not being able to save information on the phones internal memory(however an external memory card can be used for the applications to save information), no access to the phone book for privacy purposes, limiting the memory size of widgets and some graphical limitations. These was done as many phones still currently being used have limited internal memory and are not able to render some aspects of the UI effectively.

Interesting feature coming in the near future is video integration with video mobile handsets.

Premier jour !

Nous sommes le 8 mai 2008. C’est un jour férié en France qui me donne du temps d’écrire ce premier article pour lancer officiellement le blog du Lab d’innovation GFI de Sophia Antipolis. Son objectif sera de communiquer sur nos travaux mais aussi de suivre l’actualité sur les nouvelles technologies, particulièrement celles du web et de la mobilité. Ci-dessous une illustration qui résume l’organisation du Lab: