vendredi, décembre 31, 2010

Cités royales françaises à l'heure du Cloud


L'intérêt récent des architectes du cloud computing, essentiellement américains, pour les villes royales et historiques françaises est pour le moins singulier. La fondation Dojo, curatrice de la plateforme éponyme de bibliothèques de développement Javascript, proposait naguère le protocole de Bayeux pour les transmissions asynchrones de messages entre serveur et clients Web. Telle l'armure de la fameuse tapisserie, le protocole de Bayeux serait le bergame moderne de la narration de l'avènement du Cloud !

 



Bayeux

 



Bayeux propose un modèle publish and subscribe adapté aux protocoles de communication du Web (HTTP et dérivés). Ainsi un navigateur Web client commence par « s'abonner » à un ou plusieurs canaux de communication qui l'intéressent. Dans l'implémentation fournie par Dojo, le code Javascript suivant est exécuté par le navigateur au chargement de la page Web qui le contient :

 




<script type="text/javascript">
dojo.require("dojo.io.cometd");

cometd.init({}, "cometd");

cometd.subscribe("/hello/world", false, "publishHandler");

publishHandler = function(msg) {
alert(msg.data.test);
}
</script>


Les deux premières lignes du script chargent et initialisent la bibliothèque cometd qui implémente le protocole de Bayeux dans la plateforme Dojo. La ligne suivante abonne la page au canal /hello/world en déclarant la fonction à rappeler lorsqu'un message y circule, ici publishHandler définie ensuite.

 



Le message, quant à lui, peut être envoyé à l'initiative du client ou à l'initiative du serveur. Depuis la page Web client, par exemple :

 




<input
type="button"
onclick="cometd.publish('/hello/world', { test: 'hello world' } )"
value="Click Me!">
Message
</input>


La commande publish émet les données du second argument (au format JSON) sur le canal désigné par le premier argument.

 



Les messages peuvent également être émis depuis le serveur. Par exemple, dans une JSP le code suivant :

 




<%
Bayeux b = (Bayeux)getServletContext().getAttribute(Bayeux.DOJOX_COMETD_BAYEUX);
Channel c = b.getChannel("/hello/world",false);

Map<String,Object> message = new HashMap<String,Object>();
message.put("test", "Voici un message !");

c.publish( b.newClient("server_user",null),
message,
"new server message");
%>


Calais

 



Notre seconde étape du Tour de France des villégiatures du Cloud est Calais. OpenCalais pour être plus précis. Rien de plus naturel, penseriez-vous, après la tapisserie que de s'intéresser à la dentelle. Mais il est plutôt ici question de Web sémantique que des fuseaux et bobines des ourdisseurs, tullistes et autres wappeurs. OpenCalais crée automatiquement un graphe sémantique à partir du contenu, HTML, texte ou XML, qui lui est soumis. Le service OpenCalais en extrait les entités nommées, noms propres, noms de lieux, de sociétés, de livres etc. ainsi que les événements qui y sont mentionnés.

 



OpenCalais est de plus en plus utilisé par les fournisseurs de contenus et les éditeurs en ligne pour classer et catégoriser leurs publications. Ce service, tels les microformats, fait partie d'une nouvelle vague de produits et de services Web, comme ceux mis en ligne, par exemple, par Freebase, par Powerset acquis par Microsoft, par Evri acquéreur de Radar Networks/Twine, par Zemanta et par GetGlue qui tous proposent une alternative légère et pragmatique aux standards et protocoles du Web sémantique promus par le W3C — et fort énergiquement par Sir Tim Berners-Lee — considérés comme trop lourds à l'usage.

 



Le service OpenCalais offre des APIs complètes pour de nombreux langages de programmation mais peut tout aussi bien être mis en oeuvre via un simple formulaire HTML comme dans l'exemple suivant :

 




<form action="http://api.opencalais.com/enlighten/rest/"
method="post" accept-charset="utf-8">
licenseID: <input type="text" name="licenseID" />
<input type="submit" /><br />
content: <br />
<textarea rows="15" cols="80" name="content" ></textarea>
<br/>
paramsXML: <br />
<textarea rows="15" cols="80" name="paramsXML"/>
</textarea>
<br/>
</form>


Ce fragment HTML soumet le champ content à l'analyse OpenCalais, après vérification de l'identité (licenseID) du client du service.

 



Orléans

 



Si ce cheminement de traverse des belles provinces françaises donne à voir les monuments modernes du Cloud dans le temps même de leur élévation, c'est évidemment dans la ville royale d'Orléans que ces élans verront leur couronnement. C'est là, avec Orleans, que Microsoft Rex a un grain persistant. Et même plusieurs ! Des milliers...

 



Orleans est un framework de Microsoft Research pour construire des applications « client +  cloud » qui simplifie la prise en charge de la concurrence des processus inhérente au cloud computing et de l'hétérogénéité des terminaux (du PC au smartphone) qui les utilisent.

 



Le modèle de programmation proposé par Orléans fragmente une application cloud en grains. Le grain est une unité de persistance des données, d'isolement au sens transactionnel, et de distribution sur un réseau de datacenters. Les grains communiquent entre eux par envoi asynchrone de messages — évoquant ici le protocole de Bayeux. Ces messages déclenchent alors des opérations transactionnelles chez d'autres grains. Plusieurs instances du même grain peuvent être simultanément actives pour traiter en parallèle des appels en nombre au même service. Les grains d'Orléans rappellent donc les objets CORBA de l'OMG de jadis — les transactions en plus et la mémoire partagée en moins. Le fameux « passage à l'échelle », qui rappelle immanquablement l'épreuve de l'échelle, torture médiévale qui fut sûrement déjà pratiquée dans la ville royale, est assuré par l'activation à la demande des grains.

 



Une des particularités intéressantes du modèle de programmation d'Orléans est la gestion de la communication asynchrone par l'intermédiaire de « promesses » qui sont ultérieurement tenues ou rompues. (On voit que l'on reste dans la solennité requise d'une visite de la cité royale !) C'est une idée qui remonte aux travaux de Barbara Liskov et Liuba Shrira (1988).

 



Les promesses d'Orléans, comme celle de la Pucelle de la même ville, sont de deux types : promesse d'une continuation ultérieure du calcul en cours ou promesse d'une valeur finale de ce calcul ultérieur, AsyncCompletion et AsyncValue respectivement. Ces promesses types sont intégrées à la plateforme .NET. Deux exemples pour illustrer :

 




// La promesse de calculer la valeur de A
AsyncValue<int> intPromise = GetA();

try{
// Attente synchrone (bloquante) que la promesse soit tenue
int A = intPromise.GetValue();
}
catch( Exception exc ){
// Relaps ! La promesse a été rompue.
Console.WriteLine( "Honte et apostasie. A ne sera pas connu :" +
exc.Message );
}


Cet exemple élémentaire montre la mise en oeuvre synchrone d'une promesse, ici celle de recevoir une valeur entière à un instant ultérieur. L'appel GetValue est bloquant et attend la bonne fin du calcul de cette valeur. Avec une continuation, en revanche, on rend la communication complètement asynchrone :

 




// La promesse de calculer la valeur de A
AsyncValue<int> intPromise = GetA();

intPromise.ContinueWith(
(int A) => {
// Promesse tenue, on reçoit bien un entier
Console.WriteLine( "Résultat A = " + A.toString() );
},
(Exception exc) => {
// Promesse rompue ! Malheur et dévastation.
Console.WriteLine( "Erreur : " + exc.Message );
}
).Ignore();


Dans ce dernier cas, la promesse est associée à une continuation, c'est-à-dire une fonction exécutée lors de la notification ultérieure du résultat (un entier) ou de la rupture de la promesse. L'appel ContinueWith n'est pas bloquant et son résultat est ici ignoré.

 



La classe d'un grain implémente une ou plusieurs de ses interfaces (qui dérivent de l'interface IGrain). Toutes les méthodes et les propriétés d'une interface d'un grain sont soit de type AsyncCompletion soit de type AsyncValue, ce qui expose directement l'asynchronie des communications. En conséquence l'implémentation de ces méthodes doit renvoyer soit une valeur, qui sera convertie en promesse tenue par le runtime Orléans, soit une promesse obtenue de l'appel à un autre grain. Par exemple, une méthode d'un grain pour le calcul d'un produit de deux valeurs pourrait prendre les formes suivantes :

 




AsyncValue<int> Get_A_times_B(){
int x = this.A * this.B;
return x;
}


ou :

 




AsyncValue<int> Get_A_times_B(){
AsyncValue<int> p = grainVoisin.Get_A_times_B();
return p;
}


Le runtime d'Orléans se charge de l'initialisation, de la sauvegarde, de la réplication et de la migration des grains à l'exécution. Les politiques de persistance, d'initialisation, de réplication, etc. sont spécifiées par des annotations optionnelles ajoutées par le programmeur. Le runtime gère également la nature transactionnelle de l'exécution des méthodes granuleuses et la réconciliation des activations variées du même grain. (Joli petit problème de parcours de graphe élégamment résolu par les chercheurs de Microsoft.)

 



Après Bayeux et Calais, Orléans sera-t-elle la voie royale vers le cloud computing ? À l'époque de Jeanne d'Arc justement, s'apprêtait à régner le gentil dauphin Charles VII pour qui elle bouta les Anglais hors de France. Celui qu'on surnomma « le petit roi de Bourges » ne régnait plus que sur une partie de ce que fut le royaume. La populace le moquait alors en chantant le « carillon de Vendôme » sur l'air de l'angélus :

 




Mes amis,
Que reste-t-il
A ce dauphin si gentil ?
Orléans, Beaugency,
Notre-Dame de Cléry,
Vendôme, Vendôme !


Las ! Une roadmap technologique du XVème siècle ! Relevons enfin le défi du cloud computing français et, de crainte de voir l'envahisseur faire une percée d'Orléans à Vendôme, à nous de développer fièrement la plateforme cloud « Beaugency », les bibliothèques de programmation « collégiale Notre-Dame de Cléry », et l'infrastructure as a service « Vendôme » dans le style abbatial monumental !

 



Bonne et heureuse année de programmation cloud à tous les fidèles lecteurs d'ITR Manager.

 



lundi, décembre 13, 2010

Linked Data : Killer App du Cloud ?


Semantic Web Wars: Un nouvel espoir?

Dans un fameux article de Wired publié en août dernier, Chris Anderson, son éditeur en chef, et Michael Wolff, célèbre chroniqueur et récent biographe acerbe de Rupert Murdoch, pronostiquaient, tels l'oracle de Iolcos annonçant à Pelias qu'il périrait de la main d'un descendant d'Éole, rien moins que la fin du World Wide Web tels que nous le connaissons.

 



Les quatre cavaliers de cette Apocalypse 2.0, selon les prophètes Anderson-Wolff, sont déjà apparus au ciel crépusculaire : (i) la multiplication de services Internet dédiés (vidéo, téléchargement, musique, jeux, actualités) ne reposant pas sur le Web ; (ii) la prolifération des maintenant fameuses apps et de leurs hypermarchés, les App Stores, enclaves propriétaires d'une grande distribution insoluble dans la Toile ; (iii) l'émergence de nouveaux moguls des médias en ligne (Yuri Milner, Jack Ma) qui, modernes Citizens Kane à contre-courant des entrepreneurs du Web toujours shootés à l'utopie collectiviste du chaos qui s'auto-organise, implémentent, quant à eux, une stratégie traditionnelle du Big Is Beautiful, arc-boutée sur la reconquête de médias verticaux, intégrés, traditionnels, sur un Web qui les avait naguère désintermédiés et délinéarisés ; (iv) le constat, enfin, de l'échec à transformer le Web en un véritable format de média face au tsunami de la « démocratisation » du marketing (Google Adwords et Facebook Ads en tête) et à la déification de l'audience au détriment du contenu (Demand Media).

 



Mais les nerds, les geeks, et le plus glorieux d'entre eux, Sir Berners-Lee répliquent dans la plus pure tradition du grand spectacle StarWarsien : la contre-attaque est à lire dans le prestigieux Scientific American — dont la caution scientifique, avec une Science majuscule dans le titre, devrait certainement pulvériser l'impudent Wired comme un Alderaan sous le feu du (désormais dévoilé) LOIC. (Prendre note néanmoins pour M. Besson : rien à voir avec notre propre arme Web nationale de destruction massive, secrètement exfiltrée en territoire américain, Loïc Le Meur.)

 



Ce plaidoyer pour les standards ouverts du Web figure comme une leçon de storytelling à l'ère de la fiction transmedia contributive. Le récit est poignant et personnel : ce cri du coeur paternel « Le Web est physiquement né sur mon bureau, à Genève, en décembre 1990 » ouvre cet évangile néo-christique, Tim en Joseph et un cube NeXt Computer en Marie sans doute, pour conclure, quelques psaumes plus loin, sur l'apothéose imminente du HTML 5 et du Web Sémantique victorieux.

 



Au passage, notons un glissement subtil de terminologie dans la vulgate prosélyte du pape du W3C, le Semantic Web y devient subrepticement les Linked Data. La substitution de l'anglais vulgaire « les données reliées » à la noblesse toute cybernétique de l'adjectif « sémantique » est loin d'être neutre. Lorsque Sir Berners-Lee déclara le Web Sémantique (toujours S majuscule, notez bien) ouvert pour le business en 2008, après sept ans de gestation au W3C, les critiques fusèrent, portant sur la complexité des standards — fussent-ils ouverts —, comme RDF (Resource Description Framework) et ses ancillaires OWL (les abscons Ontology Languages), SKOS (l'oxymore Simple Knowledge Organisation System), RDFS (le métamodèle RDF Schema), ou SPARQL (la prosodie interrogative du Query Language for RDF). Des inquiétudes existentielles furent formulées sur la difficulté concomitante de leur implémentation : Fallait-il que les programmeurs Java devinssent linguistes de surcroît ?

 



L'insoutenable légèreté du Web

 



Et pourtant, en 2009 et en 2010, les premiers efforts de publication de données reliées ont vu le jour. Les gouvernements américain et britannique, par exemple, ont ouvert des sites Web où sont publiées des données d'État, dans un souci de transparence citoyenne (http://www.data.gov/ et http://data.gov.uk/), suivant les standards du Web Sémantique. (En France, on a préféré donner la priorité aux fort utiles Hadopi et Loppsi, comme il sied à la vision d'une République Démocratique des Données.) La BBC et le New York Times leur emboîtent aujourd'hui le pas, qui mettent progressivement à la disposition du public leurs données au format RDF.

 



En parallèle, des projets souvent associatifs, parfois commerciaux, ont été lancés pour faciliter à tout internaute la publication de données reliées. En Angleterre par exemple, Swirrl offre une véritable plateforme de publication RDF, Publish My Data, où l'on navigue, interroge et publie un corpus de données aux formats sémantiquement corrects aussi simplement que l'on poste un billet sur son blog. Factual, une startup de Los Angeles, qui vient de lever $25m auprès d'Andreesen-Horowitz et d'Index Ventures, non seulement collecte et fournit les données mais offre également les précieux protocoles et APIs (REST et Javascript) pour y bâtir ses propres applications. Sous nos cieux http://www.nosdonnees.fr/ veut apporter plus de visibilité aux données publiques librement accessibles à chacun.

 



Le cours de cette banalisation des données reliées ne va cependant pas sans son lot de questions techniques. Publier des Linked Data par conversion automatique de bases de données déjà structurées, histoire de gagner du temps par exemple, reste difficile et semblerait plutôt donner raison aux critiques de la première heure du Web Sémantique. La désambiguïsation automatique des entités, noms propres, marques, lieux et adresses, dates, etc. a heureusement fait de grand progrès depuis trente ans. Une solide tradition linguistique française, en particulier, a donné naissance à quelques jeunes pousses hexagonales tout à fait exemplaires sur ces sujets, comme nos familiers Sinequa, Kwaga, Arisem (absorbé par Thales au nom du « patriotisme économique »), le célébrissime Exalead (absorbé par Dassault Systèmes, sans mobile apparent !), Lingway (dont l'équipe fondatrice a oeuvré chez l'antique — pour ne rien dire du ballet GSI, Tecsi, ADP et Steria — pionnier ERLI devenu Lexiquest avant d'être absorbé, lui aussi, par SPSS en 2002 pour un montant hélas étique !), Datops (absorbé en 2006 par LexisNexis), Semio Corp. (absorbé en 2002 par Entrieva rebaptisé Lucid Media depuis, mais inspirateur aujourd'hui de HotGrinds) et bien d'autres encore qui ont réellement fait avancer les solutions techniques.

 



Alors que souvent les solutions de ces éditeurs s'appliquent spécifiquement à un usage donné : moteur de recherches général ou vertical, intelligence économique, traitement des courriers électroniques, estimation des opinions exprimées et e-reputation (ici comme d'ailleurs Evri qui a racheté Radar Networks de Nova Spivack, l'inventeur prodige de Twine, et sérieux concurrent du Stephen Wolfram de Mathematica et Wolfram Alpha au titre de mégalomane cérébral du Net), des nouveaux-venus comme Zemanta et Open Calais se réclament plus explicitement des Linked Data. (Tout ceci ne paraît pas étranger à la levée de fonds de $3m bouclée en exprès par Zemanta le mois dernier...)

 



La connotation communautaire, quant à elle, brille dans le projet DBpedia qui vise à une traduction ontologiquement durable de Wikipedia — à quand celle de Wikileaks, qu'on passe aux choses sérieuses ! Il y a également Freebase. On aborde ici la constitution, collective ou automatique, des liens entre entités RDF, qui représente la deuxième étape naturelle après leur collecte. Avec le développement de ces référentiels de liens de données, il devient en effet critique de simplifier, voire d'automatiser, la mise en relation d'entités et de classifications d'un domaine à l'autre (par exemple, seuls 20% à 30% des termes employés par la BBC dans ses efforts internes de publication se retrouvent dans le vocabulaire de DBpedia). Comme jadis à la Tour de Babel, la fragmentation des dialectes empêche le grand-oeuvre.

 



Json et les internautes

 



Même chez les techies le débat bout ! La plateforme PHP Silk Framework vise les Linked Data comme différentiateur, au lendemain du très bruyant rachat de Heroku (plateforme Ruby) par Salesforce ($212m en cash, une broutille pour Benioff !). Des voix s'élèvent pour des standards ouverts de Linked Data. En effet, à l'heure où les plus grands sites sociaux comme Twitter, FourSquare et Facebook abandonnent discrètement leur interface XML au profit d'APIs en Json, quel programmeur accepterait, sans déchoir, de défroisser le XML amalgamé au RDF par :

 




var tweet = rdf['http://itrmanager.org/tweet/12343'];
var user = rdf[tweet['http://itrmanager.org/property/userid']];
var geoenabled = user['http://itrmanager.org/property/geo_enabled'];
if( Boolean(geoenabled.value) ) {
// Enfin ! On a déterminé que la géolocalisation est présente...
}


alors que l'on rêve évidemment d'écrire l'infiniment plus élégant :

 




var u = tweet.user; if(u.geo_enabled){...}


par le déréférencement direct typique de Javascript dans toute sa gloire ! (Mais remplacez ici Javascript par votre langage de programmation préféré pour goûter la même amertume grammaticale.)

 



Même la proposition récente de Manu Sporny, JSON-LD, pour l'utilisation de Json comme espéranto des microformats, serait aussi à améliorer si l'on en juge par :

 




var tweet, user;
for(o in json_document) {
if(json_document[o]["@"] == 'http://itrmanager.org/tweet/12343')
tweet = json_document[o];
}
for(o in json_document) {
if(json_document[o]["@"] == tweet['twit:userid'])
user = json_document[o];
}
if(user['twit:geo_enabled']) {
// Nous y voilà à nouveau...
}


qui est bien comparable au fragment RDF/JSON précédent en termes de complexité et de désespoir syntaxique. La discussion sur ce sujet est donc à peine entamée et promet d'intéressants développements dans les mois à venir.

 



Mais au final les barrières ne sont peut-être pas seulement techniques. Pour que les entreprises et les organisations consentent à des investissements importants de temps et d'argent dans les technologies des Linked Data, elles doivent évidemment se convaincre du coût et de l'impact réel des problèmes que ces dernières permettent de résoudre. (De quoi le Web Sémantique est-il la solution ?) La difficulté de leur vendre le concept d'un format universel pour les données Web est amplifiée par l'existence antérieure de nombreux formats d'annotations autour des bases de données relationnelles et des tableurs dont la réutilisation les satisfait à peu près. Comment quantifier l'information et les connaissances qui seraient enfouies, trésors cachés, dans les yottaoctets de données qu'elles engrangent ? Et que dire des questions de confidentialité et de sécurité des données ? Les Linked Data exposent encore plus vivement les problèmes de contrôle et de confiance auquel Web et Cloud Computing sont déjà confrontés.

 



samedi, novembre 20, 2010

La République Démocratique des Données


La donnée, dit le Littré, est un point sur lequel on fonde un raisonnement. (C'est également, dans un sens quelque peu désuet — quoique, voir la Loi de Finances 2011 —, une distribution d'argent faite aux pauvres : «  Plus la donnée avait été nombreuse, plus la charcutière était aise  », Saint-Simon.) Dans sa forme moderne, « la représentation d'une information sous une forme conventionnelle destinée à faciliter son traitement », la donnée se détache de la perception immédiate et du caractère d'observation incontestable qui étayait la raison. Dans la « convention » et la « facilitation du traitement » qui priment maintenant au dépens de l'exercice de la faculté rationnelle, point alors comme une sourde menace.

 



La facilitation du traitement était encore, il y a peu, un objectif considéré comme difficile à atteindre dans le contexte de l'explosion de la production de données liée à l'hypercroissance du Web et la multiplication des terminaux connectés. En comparaison, les tabulatrices de la Deutsche Hollerith-Maschinen Gesellschaft mbH (Dehomag), les trieuses de la Hollerith (« Übersicht mit Hollerith Lochkarten »), les interclasseuses et les perforatrices d'IBM étaient de bien meilleures « facilitatrices » de l'avènement des totalitarismes aux lendemains chantants du court vingtième siècle. Mais les technologues de l'époque contemporaine y travaillent activement.

 



Prenons Talend, l'éditeur français Open Source, qui vient de boucler une phénoménale levée de fonds de $34m — dans un marché du private equity early stage notoirement moribond — et annonce simultanément l'acquisition de l'allemand Sopera, un spécialiste de l'intégration d'applications d'entreprise. En janvier 2009, Talend avait déjà réussi le tour de force de lever $12m auprès des fonds de Balderton Capital et d'AGF Private Equity, et d'attirer à son Conseil d'administration Bernard Liautaud, jeune retraité de BO, bienheureusement préservé de la réforme nationale sous les dorures rassérénantes de Balderton sis dans les plus chics quartiers de la fiscalement accueillante capitale britannique. Talend est la star montante de la transformation des données (ETL), de la gestion des données de référence (Master Data Management, MDM, avec le rachat des actifs d'Amalto Technologies en 2009) et, depuis peu, de l'intégration des données. Comme Pentaho — $32m levés en quatre tours de financement depuis août 2005 — et Jaspersoft — $24,5m levés en 2007-8 pour son quatrième tour de table — Talend fait partie des pionniers des défenseurs de la démocratisation du traitement facilité des données, qui pratiquent un Open Source militant visant à une « facilitation » par et pour le plus grand nombre.

 



C'est également la démocratie qui est invoquée aux États-Unis comme auspices du site http://www.data.gov/ mis en place par l'administration américaine pour « faciliter l'accès du public aux jeux de données de grande valeur, tout prêts pour le traitement automatique, produits par la branche exécutive du gouvernement fédéral ». Là-bas le discours politique se drape des vertus de la transparence devenue inattaquable, quant aux principes, dans la bien-pensance narcotique de L'Empire du Bien. (Il est vrai que l'opacité semblait plutôt la règle que l'exception et depuis fort longtemps.) Mais la transparence n'est pas non plus sans le péril d'un intégrisme insidieux comme nous en alertait Lawrence Lessig, il y a déjà quelques années.

 



De plus, la touche sociale de rigueur du site invite les citoyens à participer au gouvernement en pratiquant leurs propres analyses de données, en conduisant leurs propres recherches et enquêtes sur la base des données fédérales facilement accessibles et mécanisables. À croire que la dissémination sur Internet d'outils techniques comme le langage R, les algorithmes de calcul massivement réparti comme Hadoop, Mahout, ou la Google Prediction API, les infrastructures de gestion de grands volumes de données sur le cloud, comme Azure, EC2/S3, BigQuery, et leurs indispensables outils de navigation/visualisation à la portée du simple mortel, le tout neuf Google Refine, DreamFace Interactive, ou encore Ormetis et le projet Crescent dans l'univers Silverlight de Microsoft, avaient instantanément transformé la population en un bataillon de statisticiens chevronnés entonnant en choeur l'aria du test de Breusch-Pagan de l'hypothèse nulle d'homoscédasticité ! (Bien qu'il y soit question d'analyse des résidus, ce n'est pas du tout ce qu'une perversité peccamineuse vous ferait imaginer !)

 



Pourtant la fin de l'aventure de Swivel, le site qui se présentait comme le premier outil de business intelligence collective — sociale dirait-on dans le mythe modernisé — présente un caractère admonestatoire qui a le goût de l'antidote à ces excès de délégation démocratique. En revanche, opéré par IBM — celui-là même des tabulatrices Dehomag — le site ManyEyes, quant à lui, continue de capturer et visualiser données et corrélations par et pour le bien de tous.

 



Dès la fin des années 1950, l'un des projets de la Staatssicherheitsdienst consistait à automatiser, grâce aux procédés mécanographiques, les archives de la sinistre NS-Archiv des Ministeriums für Staatssicherheit der Deutschen Demokratischen Republik. Les archives initiales de 1953 réunissent une collection de fragments de dossiers personnels et de dossiers d'affaires provenant particulièrement des temps du régime national-socialiste (de l'appareil administratif du Reich) et aussi des années d'après-guerre (de l'appareil administratif de la Zone d'occupation soviétique et de la R.D.A.). Le département XII de la SSD devait l'enrichir considérablement jusqu'en 1989 d'un corpus de données que l'on qualifie aujourd'hui données personnelles ou privées dans la propagande du prosélyte, mais éphémère, Secrétariat à la Prospective et au Développement de l'économie numérique récemment remanié.

 



Il n'est qu'à lire le dernier pamphlet d'O'Reilly, What Is Data Science?, — dans le cas des moteurs de recherche et des réseaux sociaux ne devrait-on pas parler de prises plutôt que de données ? — pour voir refleurir ces idées sous de modernes atours — mais c'est là-même la définition du 2.0 — et deviner derrière le propos irénique que le projet des pionniers au-delà du Rideau de fer a peut-être finalement abouti, un demi-siècle plus tard, mais pas à l'endroit de sa conception ni vraiment sous le nom envisagé, et encore à une échelle proprement inimaginable à l'époque. Nous n'avons plus ni la R.D.A., ni la mécanographie triomphante mais nous avons Facebook et ses API.



mercredi, novembre 10, 2010

Le réseau straussial


Il en est du réseau social comme de l'hystérie. Quand on s'est avisé de douter qu'on pût arbitrairement isoler certains phénomènes et les grouper entre eux, pour en faire les signes diagnostiques d'une maladie ou d'une institution objective, les symptômes eux-mêmes ont disparu, ou se sont montrés rebelles aux interprétations à visée unifiante. Chercherait-on de même à catégoriser les manifestations objectives du Web 2.0 — un terme semblant lui-même en voie d'obsolescence : plus trace même du terme Entreprise 2.0 dans les papiers la conférence Enterprise2.0 elle-même ! — que ces caractéristiques que l'on y associait naguère semblent être en vérité les plus banales et présentes à l'évidence dans le tissu existant des applications d'entreprises autant que des services Web grand public.

 



Considérons un instant cette forme inédite de totémisme sur les réseaux sociaux que l'on peut sans doute voir dans les systèmes de classification employés par les groupes même qui s'y forment : les fameux badges de FourSquare, ceux de MySpace, la nouvelle version des Groupes Facebook dévoilée le mois dernier, etc. Les réseaux sociaux encouragent leurs utilisateurs à y construire des représentations, réelles ou imaginées, d'eux-mêmes sous les habits desquelles ils sont alors invités à parader, comme rituellement. L'articulation des "listes d'amis" et des "groupes d'appartenance" servent alors de marqueur d'identité pour le propriétaire du profil correspondant.

 



De la réponse à la simple question "Est-ce mon ami ?" dépend ainsi l'inscription d'une communauté égocentrique dans une forme d'existence, numérique certes mais publique, sur le réseau social. Par le jeu combinatoire de ces communautés imaginaires, les membres du réseau affichent qui ils sont et se positionnent culturellement. Les groupes sont, à proprement parler, les mythes qui ont aujourd'hui cours dans le réseau social, construits, dans la plus pure veine structuraliste, pour être faits et défaits, assemblés et réassemblés au gré de la dynamique de leurs démographies.

 



Cet élan classificatoire qui vise à épuiser le graphe social serait, au fond, une nouvelle manifestation de la pensée sauvage brillamment analysée par Claude Levi-Strauss. Et, de fait, quelle différence vraiment entre les Algonquins Ojibwa ou les Wongaibon/Dangati d'Australie, d'une part, et les réseauteurs contemporains hypnotisés par leur Wall, d'autre part ? Le réseau social, rien moins que le Temps du Rêve de notre société numérique ?

 



Comme pour étayer l'approche structuraliste à la Levi-Strauss, qui a lui-même toujours été intéressé et au fait des travaux mathématiques de son temps, le sous-continent que constitue la théorie des réseaux dans la théorie des graphes, a connu ces dernières années de formidables développements théoriques et pratiques. Parmi les explorateurs-découvreurs de cette faune mathématique encore inconnue il y a dix ans mentionnons des auteurs indispensables comme, par exemple, Duncan Watts et Steven Strogatz, Albert-Lászlo Barabási et Réka Albert, Stuart Kauffmann, Sergey Dorogovtsev, Mark Newman, ou encore Eric Bonabeau qui les premiers ont produit les taxinomies de ces espèces sauvages inédites que sont les scale-free networks, les small-world networks, ou le farouche et monumental Composant Géant du graphe aléatoire dont l'attachement préférentiel peut vous étouffer dans son étreinte !

 



Ce bestiaire combinatoire est la matière même de la dynamique structurante des réseaux sociaux. Il peut jouer le rôle démystificateur des réseaux sociaux, comme en leur temps les (plus simples) oppositions et permutations dévoilaient les structures analogues dans la comparaison des mythes menée par Levi-Strauss.

 



Dans un renversement remarquable, la pensée sauvage qui trouvait dans la Nature le jeu de construction de ses mythologies classificatrices du monde s'empare maintenant des abstractions culturelles du réseau social comme matériau de construction du monde numérique.



dimanche, octobre 24, 2010

Le Cloud programmable


Les clodoaldiens de stricte obédience, y compris les schismatiques Libres clodoaldiens, sont peut-être, comme leurs précurseurs du XVIIe siècle — les Boyle, Hooke, Wallis, Wren et Newton, qui établirent la Royal Society — les premiers à défricher le champ d'une nouvelle Science des données. En tout cas, suivant la devise des pionniers : *nullius in verba*, ils affirment ne vouloir chercher la vérité des nouvelles architectures de l'informatique, des nouveaux modèles de programmation et de leurs nouveaux langages, des nouvelles divisions sociales du développement des applications Cloud Computing, non dans les professions ex cathedra de la scolastique des acteurs établis de l'industrie mais en se fondant exclusivement sur l'expérience et la pratique. Le radicalisme assumé de cette position nous donne aujourd'hui une prolifération de projets exploratoires dont les principes rompent systématiquement d'avec les doctrines prévalentes : mouvement « NoSQL » dans le domaine des bases de données, renouveau des langages de programmation fonctionnels pour les applications Web, parallélisation pour les multicoeurs, virtualisation, distribution et répartition pour les datacenters, toilettage en profondeur de l'architecture des compilateurs et des machines virtuelles, etc.



Nous évoquions encore ces sujets d'actualité avec mes amies observatrices attentives de l'industrie, Cassandra Klowd — chef de projet à la NASA de passage à Paris en pleine grève — et Claude Conputaing, aveyronnaise pur jus, en sortant de la séance en matinée du film The Social Network. Cassandra se plaignait bien sûr de la confusion générale dans les transports français et Claude racontait comment, cet été, elle avait échappé à la déchéance de la nationalité française, arrêtée qu'elle fut sur une nationale ensoleillée au volant d'une grosse cylindrée (donc suspecte) tractant son inséparable datacenter en conteneur, par une brigade de gendarmes tout aussi hortefeux que sourcilleux. Elle ne dut son salut patriotique qu'à la rassurante démonstration que son étrange caravane n'était pas pleine de ROMs mais bien de RAMs (et de mémoires Flash) — celles-ci ne sont, en effet, pas mentionnées dans la fameuse circulaire aux préfets. Le voyage estival de Claude à la recherche d'un camping adéquatement localisé pour y installer son conteneur datacenter — peu fréquenté et discret pour parer aux menaces de terrorisme, de préférence à proximité d'un barrage hydro-électrique ou d'une centrale nucléaire pour un accès facile et peu coûteux à une énergie toujours disponible, dans le méandre d'une rivière pour le refroidissement à eau, au voisinage de centres universitaires et académiques bien classés Shanghaï — l'avait menée à parcourir notre beau pays de long en large (Luzech, Cajarc, Golinhac, le confluent du Church et de la Rosser, et Couesque l'avaient particulièrement séduite). Sa position de principe, en tout cas, appelle carrément au renversement du dogme architectural actuel qui voit le cloud principalement utilisé à agréger le stack de nos applications existantes et leur système d'exploitation pour augmenter — à la demande — l'emprise de nos sites Web.



L'enfer, c'est les strates !



« Car, enfin, macarel ! L'enfer c'est les strates ! Maprédious ! », me dit-elle passablement irritée. L'économie de réduction des coûts d'hébergement amenée par le cloud computing et son déploiement de plateformes de virtualisation permet maintenant au consommateur de louer, à prix abordable, leur puissance de calcul. Mais c'est précisément la migration « tels quels » des empilements rigides de couches logicielles qui, du système d'exploitation, aux processus utilisateurs, aux machines virtuelles et runtimes de nos langages de programmation traditionnels, aux threads et, enfin, aux applications métiers juchées sur cet échafaudage, qui est cause des grandes difficultés de la transition vers la nouvelle architecture. Cette stratification, souvent solidifiée par des années de développement et d'intégration, importe avec elle tout le poids de ses complexités de configuration , d'implémentation et de déploiement, d'administration et de sécurisation dans les villes nouvelles du cloud. Le résultat est alors souvent antithétique à la fluidité et à la dynamique offerte naturellement aux données et calculs par l'essence même du cloud computing.



La résurrection de la recherche sur les systèmes d'exploitation constitue donc un premier mot d'ordre. Exokernel au MIT, Barrelfish de Microsoft Research et l'ETH de Zürich avec l'application de l'idée des Domain Specific Languages (DSL) à la programmation des systèmes d'exploitation et la vérification formelle des micronoyaux d'OS, les travaux pionniers sur L4 et EROS à John Hopkins (qui nous ramènent invariablement à Rick Rashid et Mach à CMU), ou encore KeyKOS à U. Penn, inspirent des travaux actuels comme Mirage, par exemple.



Un des principes directeurs est de considérer le hardware virtualisé du cloud comme une cible, comme une autre, des compilateurs et de traduire le plus directement possible un langage de programmation de haut niveau vers un micronoyau spécialisé tournant sur l'hyperviseur — court-circuitant au passage toutes les couches habituelles du stack applicatif. Des variantes expérimentales permettent ensuite de prendre en compte les impératifs habituels :




  • Efficacité. L'usage économe du cloud exige de pouvoir instancier et détruire rapidement des machines virtuelles avec peu de latence, exercice rendu difficile par l'articulation rigide et le poids des stacks applicatifs courants.


  • Sécurité. Dans cette approche directe, les applications sont des images bootables compilées d'après un code source écrit dans un langage de programmation qui soit idéalement fortement typé et sujet à des preuves formelles (cf. plus bas, la résurgence des langages fonctionnels). Le niveau de sécurité est dès lors bien plus élevé, comparé à celui des applications d'entreprises traditionnelles.


  • Simplicité. Oubliée la sémantique circonvoluée des interfaces des systèmes d'exploitation, héritage de l'obligation de compatibilité avec une variété foisonnante d'applications (réseaux, systèmes de fichiers, bases de données...) élargie au fil des années !


  • Spécialisation. Là où certains systèmes d'exploitation essayent de subvenir à tous les besoins : PC, mobile, routeur, serveur, consoles de jeux, l'idée est ici au contraire de spécialiser des micronoyaux pour les entrées/sorties et le calcul intensif, caractéristiques du cloud programming.


  • Coûts de déploiement. Il est curieux de constater que bien souvent des approches radicalement rénovatrices dans le développement de noyaux et de systèmes d'exploitation ont parfois été victimes d'obsolescence rapide, dépassées avant même d'être achevées, par les avances encore plus rapides sur le matériel. (Que l'on considère aujourd'hui ce qui se passe sur les processeurs graphiques.) Les hyperviseurs, tout complexes et de bas niveau qu'ils soient, offrent opportunément un standard pour se concentrer sur le design de l'OS et moins sur les tâches ancillaires de la gestion de détail de l'infrastructure matérielle.



Le dilemme de l'hyperviseur



Les hyperviseurs sont parfois présentés comme l'étouffoir de la recherche sur les systèmes d'exploitation et, en cela, le succès de la virtualisation freinerait en fait le développement de l'architecture cloud computing. À ce propos, Claude Conputaing pense que ces hyperviseurs, qui la déçoivent par le peu d'innovation technique qu'ils apportent à la recherche sur les noyaux d'OS, sont peut-être paradoxalement les catalyseurs de nouvelles directions de recherche bien différentes des sujets canoniques de l'état de l'art actuel. Au plan du partage et de la protection des ressources, les hyperviseurs modernes utilisent en effet des techniques de scheduling bien connues — souvent étudiées naguère en vue de systèmes multimédia puis laissées en déshérence (qui se souvient de QLinux ?) devant le peu de traction commerciale à l'époque. De même, les mécanismes de protection des données (un état de la MMU par machine virtuelle) ne sont pas éloignés de la protection des espaces d'adresse dans un noyau conventionnel. Au plan des communications inter-processus (IPC), si les premiers designs d'hyperviseurs considéraient qu'elles étaient de la responsabilité de l'OS invité et n'offraient en conséquence que peu de support, les développements récents, à la recherche de meilleures performances, enrichissent leur IPC en déléguant l'exécution des drivers à leurs OS invités. Dans les récentes versions de Xen, par exemple, les drivers tournent dans leurs domaines séparés qui sont comme des « serveurs de drivers » pour le client hyperviseur. Cette architecture rappelle celle des micronoyaux et ne saurait non plus être qualifiée de novatrice.



Pour Claude, la recherche sur les OS est donc face à un choix autour des hyperviseurs. Soit l'on continue à chercher de meilleures implémentations de ces interfaces bien connues, à améliorer les techniques de paravirtualisation dans l'OS invité, à affiner l'implémentation de l'hyperviseur lui-même ce qui, pour n'être pas bouleversant, a le mérite considérable de trouver une application à court-terme et un impact commercial indéniable. Soit l'on constate hardiment que les techniques de virtualisation n'imposent en aucun cas une interface de VM matérielle ou d'OS invité « paravirtualisé », qui sont les formes actuelles des API de tous les hyperviseurs, et que, débarrassé des soucis du support des applications historiques (legacy) et de la douleur de l'écriture des drivers, le chercheur peut enfin explorer dans l'hyperviseur de nouvelles méthodes d'ingénierie, l'application de méthodes formelles, le support de nouveaux langages de programmation (échapper à l'ombre portée de POSIX et de C !), des nouvelles architectures de processeurs, et définir les métriques indispensables à l'évaluation de systèmes radicalement nouveaux.



La résurgence du lambda



En attendant le coup de fouet à la recherche prophétisé par Claude, certaines équipes se penchent déjà sur la question des OS spécialisés pour les applications « dans le nuage ». L'émergence de frameworks pour le calcul réparti comme MapReduce (Google), Hadoop (Fondation Apache), Dryad (Microsoft) facilitent en effet l'exploitation de groupes d'ordinateurs en parallèle. Et l'idée de spécialiser un noyau — voire d'unifier ces plateformes en les faisant tourner virtualisées sur un OS léger dans des conteneurs isolés — pour l'exécution de ces plateformes commence à voir le jour.



Le système Spark de l'Université de Berkeley, développé pour l'OS spécialisé cluster Nexus, installe la prise en compte d'un même jeu (volumineux) de données dans un grand nombre de calculs exécutés en parallèle comme abstraction principale. Cette articulation autour du jeu de données (working data set) est particulièrement adaptée aux classes d'applications pour lesquelles MapReduce et Hadoop sont notoirement moins efficaces qu'espérés : les tâches itératives — qui nécessitent, dans MapReduce/Hadoop, de recharger à chaque itération la totalité des données — et les analyses interactives ou les simulations, par exemple — qui, là aussi, induisent une forte latence puisque, dans MapReduce/Hadoop, chaque requête sur le même jeu de données est finalement traduite en tâches MapReduce distinctes.



De même, c'est le langage fonctionnel OCaml qui est employé pour coder les noyaux d'OS spécialisés cloud de Mirage. Et c'est une bonne nouvelle, ajoute Claude Conputaing, puisque la France s'enorgueillit d'héberger le véritable couvent des Camlites, l'INRIA, dont les branches apostolique et contemplative sont à l'origine du langage.



Peut-être plus novateur encore que le développement de noyaux spécialisés pour le cloud, les avancées sur de véritables nouveaux langages de programmation du cloud que Claude Conputaing invoque de plus en plus souvent pour illustrer un de ses thèmes favoris : la résurgence des langages de programmation fonctionnelle. (Une vie de Lispeur n'est jamais mise qu'entre parenthèses.)



Dans la nouvelle génération de plateformes de calcul cloud, l'utilisateur est libéré des considérations de programmation de sockets, de RPC, de transfert de données et de gestion des défaillances des machines. En revanche, il doit spécifier les traitements à effectuer dans un langage de coordination qui est généralement différent du langage de programmation employé pour coder ces traitements. Ainsi Sawzall pour MapReduce chez Google — alors que le papier laisse à penser que Awk et Python sont localement préférés pour les traitements eux-mêmes —, Hive (batch processing) et Pig (!) pour la plateforme Hadoop, alors que Java est le langage naturel pour implémenter les fonctions map() et reduce() des traitements, DryadLINQ, un jeu d'extension des langages de programmation, basé sur LINQ de Microsoft, pour les applications à répartition de données sur la plateforme Dryad, sont autant d'exemples de cette dichotomie actuelle.



Certains furent prompts à noter que ces langages de coordination ne sont pas aussi expressifs que de véritables langages de programmation généraux et, comme déjà mentionné, rendent difficile l'expression d'algorithmes itératifs (par exemple, PageRank) ou de programmes de simulation et d'analyse interactive de données. D'où une première voie de recherche : l'élévation du langage de coordination au rang de langage de programmation par l'adjonction d'une sémantique fonctionnelle, puisque l'on veut traiter sur un pied d'égalité données et calculs sur ces données. Skywriting, développé au Computer Lab. de l'Université de Cambridge, est un langage de coordination à la syntaxe inspirée de Javascript qui permet d'exécuter un graphe de tâches quelconque, qui n'est donc plus limité aux seuls graphes directs acycliques (DAG) caractéristiques des outils d'aujourd'hui. En particulier, un script Skywriting peut créer de nouvelles tâches asynchrones au vol, détecter les dépendances entre jeux de données et exécuter des itérations sans connaissance a priori de leur nombre. Skywriting est aussi un langage fonctionnel au typage dynamique qui, pour décrire les manipulation de lourds volumes de données sans en charger la mémoire, utilise un niveau d'indirection, la fonction ref() qui joue un rôle comparable au nom de fichier dans le Google File System, et à l'objet DryadTable dans DryadLINQ. Skywriting dispose ensuite d'une fonction spawn() qui prend comme argument la fonction a exécuter et ses arguments — cette dernière impliquant éventuellement du code écrit dans un autre langage de programmation — et renvoie une référence. L'opérateur de déréférencement (« * » comme en C) permet de synchroniser l'exécution des tâches, par exemple lorsque le traitement des données n'est pas terminé.




function process_chunk(chunk, prev_result) {
// Exécution du traitement sur les données
// Renvoie un résultat partiel pour le bloc donné
};

function is_converged(curr_result, prev_result) {
// Exécution du test de convergence entre les résultats de
// deux étapes successives. Renvoie un booléen
};

function iterative_alg(data_chunks) {
curr = ...; // Valeur initiale
do {
prev = curr;
curr = [];
for (chunk in data_chunks) {
// Lance le traitement des blocs de données en parallèle
curr += spawn(process_chunk, [chunk, prev]);
}
// Déréférence le résultat du test de convergence
// Bloque en attendant la fin de l'exécution des tâches précédentes
converged = *spawn(is_converged, [curr, prev]);
} while (!converged);
return curr;
};

input_data = [ ref("file://cluster-1-37/input0"),
ref("file://cluster-2-23/input1"),
...];

return iterative_alg(input_data);


Dans l'exemple ci-dessus on effectue un traitement itératif sur le cloud d'un grand volume de données divisé en blocs (la liste de références input_data) jusqu'à ce qu'un critère de convergence soit satisfait. À chaque itération, ce critère ne peut être vérifié que si tous les traitements bloc par bloc sont terminés, c'est le déréférencement *spawn(...) qui synchronise les flux de données. Le programmeur écrit une boucle while comme il en a l'habitude et le provisioning des tâches — dont le nombre est inconnu à l'avance — est pris en compte automatiquement pour les placer soit sur Hadoop, soit sur DryadLINQ.



Le retour en grâce des langages de programmation fonctionnelle n'est pas sensible uniquement dans la recherche d'une plus grande expressivité des langages de coordination pour les plateformes de cloud computing, on en trouve également le témoignage dans le renouveau du vénérable et quasi-oublié Datalog proposé récemment pour développer les applications de type cloud. À l'ère paléohistorique des années 70, Datalog fut un langage de requête et de règles pour les bases de données dites déductives, à la fois fonctionnel et déclaratif. C'est d'ailleurs à ce double titre qu'il présente une aubaine pour la programmation cloud : fonctionnel, il manipule à l'identique données et traitements, déclaratif, il se prête admirablement aux preuves formelles. (Il est aussi l'occasion d'un cocorico national et patriotique puisque sous-ensemble de Prolog, que nous devons à Alain Colmerauer et Philippe Roussel au début des années 1970, et qui devait alimenter le fantasme du péril jaune de la Cinquième génération aux États-Unis au milieu des années 1980 : rappelez-vous, une invasion de bases de données déductives, à la logique infaillible, issues des profondeurs d'un Japon qui peut dire « Non ! » devait mettre à mal la suprématie reaganienne triomphante des USA à l'apex de la guerre froide...)



En partant de cet avant-poste, très daté, des guérillas théoriques que l'histoire a drapé depuis du manteau de l'oubli, l'équipe de Joseph Hellerstein à Berkeley se livre à un dépoussiérage de Datalog — et de sa postérité innombrable — le dotant d'une part d'une gestion de la persistance et d'un véritable état évolutif (mutable state) et, d'autre part, de la prise en compte déclarative du temps avec des prédicats synchrones et asynchrones. Le langage ainsi obtenu, Dedalus, devient opérationnel dans l'espace-temps du cloud. C'est la première étape vers un langage de programmation cloud pour le commun des mortels, Bloom, qui devrait mettre le développement des applications intensives en données à la portée de tous. Dans Dedalus on distingue ainsi plusieurs types de règles :




  • Les règles déductives : reports_to( X, Y ) :- works_in_deptmt( X, Z ), runs_deptmt( Y, Z ); qui sont du Datalog classique ;


  • Les règles inductives : reports_to( X, Y )@next :- works_in_deptmt( X, Z ), runs_deptmt( Y, Z ); dont la conclusion est vraie mais à l'instant suivant sur une échelle de temps discret ;


  • Les règles asynchrones : reports_to( X, Y )@async :- works_in_deptmt( X, Z ), runs_deptmt( Y, Z ); dont la conclusion devient vraie (arbitrairement) plus tard et qui permettent de capturer la latence du cloud.



Des procédures d'évaluation — dites savamment de stratification temporelle — permettent de démontrer formellement que le calcul logique de la répartition l'état du programme et de son évolution dans le temps sont corrects. Ces primitives permettent alors de programmer des applications ciblées dès l'abord pour une exécution sur le cloud dans la plus grande généralité.




Tout ceci constitue au final un véritable programme de recherche et développement dont les applications industrielles n'attendent que les premiers résultats pour rénover le calcul scientifique et ses applications, la gestion des données et des processus d'entreprises devenus volumineux et pressés à l'ère du Web, et ouvrir la voie à la production massive de Services Web de grande consommation à l'échelle des Google, Microsoft, Yahoo! et Facebook...






dimanche, octobre 17, 2010

Le Droit à l'oublie numérique


Inutile de chercher sur la belle photo de groupe du 14 octobre dernier dans les riches salons du Secrétariat d'Etat à la prospective et au développement de l'économie numérique, ni Google, ni Facebook ne s'affichent aux côtés d'une rayonnante Nathalie Kosciusko-Morizet brandissant l'indispensable Charte du droit à l'oubli dans les sites collaboratifs et les moteurs de recherche.

Nous eussions préféré une Charte du droit à l'oublie numérique qui confirmât la doctrine de transsubstantiation numérique qui semble tant préocupper notre gouvernement — au moins depuis France Numérique 2012 : littéralement la transformation d'une substance en une autre, la transformation (consubstantielle, donc) de l'identité du citoyen en avatar numérique lors de son raccordement ADSL à Internet. (On s'est quand même posé la question en 2009 : l'accès à Internet est-il un droit fondamental ? Dans sa glose, la théologue Christine Albanel se prononçait à l'époque contre cet excès de simonie; elle prêche maintenant la contre-réforme comme Directrice de la communication chez Orange.)

En effet, l'internaute français moderne, tel la goûteuse oublie du Moyen-Âge, est cuit entre deux fers, celui de l'accès triple-play dont la hausse des tarifs est programmée et celui de la Nouvelle surveillance des archanges Lopsi et Hadopi (en attendant la seconde cuisson de la neutralité du Net). L'oublie était habituellement roulée en cylindre creux comme le câble Ethernet Cat-5, certainement pour rappeler sans relâche le rite de la connexion à haut débit. (Cependant, lorsque les Ragueneau la roulent en cornet, l'oublie prend le nom de plaisir, précise le Littré.)La Charte se préoccupe de la gestion des données publiées intentionnellement par les internautes. Cette précaution liminaire exclut donc fort heureusement toutes celles qui le sont involontairement ou au mépris des intentions du dit internaute: les données utilisateurs liées aux nombreux protocoles de communication comme IP, UDP, BitTorrent, DNS, SSDP, TCP, IGMP, ICMP, par exemple, cette nourriture indispensable à la deep packet inspection discrète jusque-là des opérateurs et aujourd'hui sanctuarisée au grand jour par Hadopi.

Facebook qui n'en finit pas de se prendre les pieds dans le tapis de la protection des données privées, était probablement trop empêtré dans l'annonce de son dernier changement de politique de gestion des données utilisateur pour se rendre à l'invitation au prosélytisme du Secrétariat d'Etat. Quant à Google, il n'est en France pas en odeur de sainteté ! Rappelons qu'il y a, à ce jour, deux affaires Google qui chatouillent l'Exception culturelle Française. D'une part, il y a la procédure lancée aux États-Unis en septembre 2009 par l'Authors Guild, la plus grande association d'écrivains américains, contre Google accusé de vouloir exploiter des oeuvres numérisées sans l'autorisation des ayants droit. À la suite d'une forte mobilisation des auteurs et des éditeurs, le règlement léonin de cette procédure ne s'étend plus, comme à l'origine, à tous les livres étrangers présents sur le territoire américain. D'autre part, il y a, en France, la procédure initiée par le groupe La Martinière en juin 2006. Le Tribunal de grande instance de Paris s'est prononcé le 18 décembre 2009, condamnant Google pour atteinte aux droits patrimoniaux et au droit moral. Google a fait appel de ce jugement et rien n'est encore définitif aujourd'hui. Ce même 14 octobre qui vit la révélation de la Charte, Frédéric Mitterand concluait le colloque Les enjeux de la gestion collective pour l'écrit sur un ardent plaidoyer pour la défense de la gestion collective des droits, toujours sur ce même thème. On comprend donc qu'avec pas moins d'un ministre et d'une secrétaire d'Etat au four et au moulin oblayers de circonstance, Google, l'hérétique assumé, ait jugé prudent de s'abstenir !

Quant aux prosélytes de la Charte, promis à figurer aux premières pages d'une Histoire ecclésiatique du numérique dont on attend un nouvel Eusèbe pour l'écrire, à eux, les bienheureux, les oublies, fougasses, tourtillons, brassardeaux, échaudés, fouaces, pepelins, gaufres et autres cachemuseaux...



jeudi, septembre 16, 2010

Java : un air empli de douceur qui fait tourner les têtes (et chavirer les coeurs)


Larry Ellison lui devait bien ça, qui, en solide compagnon pratiquant de la gaudriole de conseil d'administration, était accouru à la défense de Mark Hurd, limogé pour ses frasques « inappropriées » lors de sa podestature chez HP : le voici depuis une semaine coprésident — rien que ça ! — d'Oracle. La raison chavire à calculer l'addition du « golden parachute » de l'un au « golden handshake » de l'autre : des privautés fort rentables. Safra Catz devrait se méfier...



HP, piqué au vif, poursuit dûment en justice. Mais cet étalage revendiqué des concupiscences peccamineuses de CEOs insatiables ne fait qu'évoquer les dérèglements de la télé-réalité. Cependant un peu en deçà des webcams de cette « Maison des secrets », Oracle semble bien avoir plus discrètement mis en marche une machine infernale visant cette fois-ci Google.



Le 12 août dernier, Oracle attaque Google en justice en Californie. En jeu : tout le développement d'Android par Google déclaré en violation de sept brevets et dans le non respect d'un copyright. Comme toujours, le contexte du dépôt de la plainte n'est évidemment pas neutre. Le Gartner Group vient de déclarer Android et Symbian les deux systèmes d'exploitation dominants de la téléphonie mobile dans sa dernière étude de marché. La part de marché d'Android serait passée de la dérisoire insignifiance (3,9% en 2009) à la seconde place (17,7% en 2010) derrière Symbian, dépassant brutalement RIM (Blackberry) en quelques mois et, surtout, Apple. C'est une véritable course à émarger à la longue liste des OEM Android (8.317 produits sur le seul site de recherche chinois Alibaba) qui s'engage ainsi chez tous les fabricants. Que voilà riche promesse de contrevenants solvables, se signalant de surcroît volontairement taillables et corvéables, aux yeux d'Oracle !



Ces brevets et ce copyright étaient bien sûr dans la dot de Sun Microsystems épousaillée en janvier dernier pour 7,38 milliards de dollars par l'ogre de Redwood City. Rappelons, pour ceux que l'agitation gesticulatoire sur les « investissements d'avenir pour la société numérique » viendraient de tirer inopinément d'un sommeil paradoxal de plus de quinze ans, que Sun avait créé Java mais n'avait guère eu de succès à en tirer de substantiels revenus au-delà des (confortables) ventes de licences en leur temps à IBM, Microsoft, Oracle (!), HP — pardon Florence mais qui se souvient encore de Chai ? — et à Netscape. (Sujet de perplexité récurrent des observateurs de l'industrie, depuis la création même du langage de programmation.)



Au début du siècle Sun avait obtenu des réparations de Microsoft dans un premier procès qui les avait opposés sur Java. En 2002, Sun, certainement mis en appétit, avait repassé le plat et attaqué à nouveau pour obtenir gain de cause en 2004 et un dédommagement de 1,6 milliards de dollars avec des accords de fidélité prononcés la main sur le coeur.



De même on pourrait penser a posteriori que le passage de Java en Open Source a été soigneusement planifié par Sun. En choisissant la licence GPL, Sun ne se serait-il pas assuré que les fabricants d'équipements et les constructeurs, qui utilisent, eux, une version embarquée de Java — notamment Java Micro Edition (Java ME) — auraient à négocier des termes et des conditions de licences spécifiques ?



Bien avant qu'Oracle ne dévore Sun, les négociations d'un contrat OEM Java avec Google pour le développement d'Android devaient donc certainement aller bon train. Du coup, le développement d'une machine virtuelle complètement neuve, Dalvik, par Google, expressément pour Android, serait-elle la conséquence de la rupture de ces négociations de l'époque que l'on peut supposer particulièrement houleuses ?



Quoiqu'il en soit, le développement d'applications Android se fait en Java, ou plutôt dans un langage dont la syntaxe est celle de Java puisque le résultat de la compilation n'est pas destiné à une exécution sur la machine virtuelle Java. Ces programmes sont ensuite compilés en bytecode Java qui est traduit en bytecode Dalvik et installé sur l'équipement Android pour être exécuté. De toute évidence, Google a pris un soin extrême à ré-implémenter de novo une machine virtuelle suffisamment différente — mais modérément compatible — de la machine virtuelle Java pour se sentir à l'abri de revendications éventuelles de Sun — celles-là même qu'Oracle vient de décider de faire valoir contre le moteur de recherches. Dalvik met en oeuvre les bibliothèques Open Source du projet Apache Harmony (qui est sous Apache Licence v2) et vise seulement (et prudemment dirons-nous à la lueur des faits récents) la compatibilité avec Java SE 5 JDK.



Inutile de dire que Sun n'a donc pas du apprécier Dalvik (mais alors, pas du tout !), lorsque fin 2007 Google annonçait Android et Open Handset Alliance, une fédération de constructeurs et d'équipementiers, OEM actifs du nouveau système d'exploitation. Ironiquement, tout ce positionnement de Google dans l'univers en explosion du mobile était mené de main de maître par Eric Schmidt qui fut, avant de prendre les rênes Google en 2001, CTO et Directeur général de Sun, plus particulièrement en charge du développement de... Java ! Extraordinaire Silicon Valley !



À moins de vaticiner dans une confondante et rafraîchissante naïveté, il est difficile de ne pas imaginer qu'ici aussi la considération de la valeur d'un éventuel procès contre le triomphant — et indécemment pécunieux — Google sur une base solide de brevets et de copyright anciens n'ait pas été prépondérante dans le road show de l'opération de cession de Sun ! Ce qu'un Sun à la trésorerie exsangue et au cours de bourse en chute libre en 2008 ne pouvait faire, un troll hargneux aux coffres pleins pourrait, relevant ce glaive, menacer de dynamiter toute l'industrie.



Si la justice donne raison à Oracle, toute utilisation de Java hors de la doctrine sera sujette à caution ou à examen juridique sourcilleux. Qu'en sera-t-il par exemple de la fratrie de plus en plus nombreuse (Scala, JRuby, Jython, Rhino, etc.) des langages de programmation exécutés sur la machine virtuelle Java ? Qu'en sera-t-il des remarquables projets d'ateliers de design de compilateurs comme LLVM de Chris Lattner chez Apple, si d'aventure une nappe de bytecode s'échappait dans une vaste zone de compatibilité avec Java ? Qu'en serait-il, plus près de chez nous, à l'Université Paris VI Pierre et Marie Curie, de la machine virtuelle virtuelle VMKit de Bertil Folliot qui peut, à la demande, personnifier ou la Java VM ou la CLR VM de Microsoft ? (Faudra-t-il la déchoir de la nationalité Java, d'autant plus que sa cylindrée surpuissante semble particulièrement suspecte ?)



James Gosling, l'inventeur de Java, trouve ce procès dérisoire. Quant à Paul Allen, le cofondateur de Microsoft, il attaque tout le monde pour faire bonne mesure (Google, Apple, AOL, eBay, Facebook, Netflix, Office Depot, Officemax, Staples, Yahoo! et YouTube, rien moins) : c'est Interval Research, le défunt think tank d'Allen et Liddle lancé en 1992, qui avait tout inventé !



ShareThis