Developpez.com

Le Club des Développeurs et IT Pro

Google crée une API universelle d'interopérabilité entre applications Web

Web Intents intéresse aussi la fondation Mozilla

Le 2011-08-05 11:30:40, par Idelways, Expert éminent sénior
Mise à jour du 15/05/12

« Web Intent » est un projet qui veut faciliter les connexions entre applications Web en réduisant le plus possible le nombre de lignes de code nécessaires à ces dialogues. Une API universelle d'interopérabilité entre applications hébergées en quelque sorte (lire ci-avant).

Lancés par un ingénieur de Google sur une idée de la Fondation Mozilla, avec laquelle Google travaille de concert, les « Web Intents » viennent de gagner un nouveau soutien.

Les responsables du projet Webkit, le moteur de rendu de Safari (et de Chrome) ont fait savoir qu’ils étaient particulièrement intéressés et qu’ils soutenaient à présent ce standard.

Une bonne nouvelle, aussi bien pour les développeurs (à qui la balise <Intent> peut faciliter la vie) que pour les utilisateurs (qui bénéficieront d’applications/mash-up plus riches).

Ne reste plus qu’à espérer qu’Opera et Internet Explorer se joignent, eux aussi, au mouvement pour une API d’interopérabilité vraiment universelle.

Source : Webkit Project

Et vous ?

Pensez-vous qu'Opera et Internet Explorer vont se joindre au projet ?
« Web Intent » peut-il vous simplifier la vie ? Ou êtes-vous plutôt septique ?

Et aussi :

Exemples de Web Intents

MAJ de Gordon Fowler

Google crée une API universelle d'interopérabilité entre applications Web
Web Intents intéresse aussi la fondation Mozilla

L'ingénieur de Google James Hawkins révèle sur un billet de blog que sa compagnie travaille sur « Web Intents », un mécanisme qui devrait permettre aux applications Chrome (et Chrome OS) d'échanger des données sans être spécialement conçues pour coopérer.

L'idée est de créer une unique API que les applications Web peuvent toutes implémenter pour s'écouter mutuellement, échanger et traiter des données. Un concept très similaire au mode de communication inter-applications sur Android, la plateforme mobile de Google, et à un degré moindre (et plus abstrait) de la délégation en génie logiciel.

Pour illustrer cette ambitieuse entreprise, Google propose l'exemple d'un service de partage de photos qui peut donner la possibilité aux autres applications de les éditer à travers l'API Web Intents.
L'utilisateur pourra choisir l'application Web d'édition de photos d'une manière transparente pour le site de partage, ou même utiliser des générateurs pour modifier l'image.

« Avec Web Intents, vous serez capable de connecter votre application Web à un service avec à peine deux lignes de code, Chrome fera le plus gros travail pour vous », ainsi regrette-t-on que Google mène ce projet avec en vue, uniquement son navigateur et son OS-navigateur Chrome, et non avec l’intention de créer dès le départ un nouveau standard.

Toutefois, Hawkins souligne que la fondation Mozilla avait entrepris bien avant le travail sur un système similaire et que les deux acteurs incontournables du Web coopèrent pour créer une unique API Web Intents.

Comme pour les Intents sous Android, Web Intents prendra en charge un ensemble initial d'actions qui couvrent la majorité des cas de figure du Web d'aujourd'hui (édition, consultation, partage...). De nouveaux Intents pourront être proposés et documentés par les services Web. Google lancera un portail qui permettra de consulter la documentation des Intents existants et d'en créer d'autres.

Plus concrètement, le mécanisme fonctionnera de la sorte :

L'application de partage de photo peut « s'offrir » des fonctionnalités externes d'édition avec ce bout de code :

Code :
1
2
3
4
5
6
7
8
9
10
var intent = new Intent(Intent.EDIT, 'image/png', getImageDataURI());
window.navigator.startActivity(intent, loadEditedImage);

// Cette fonction de callback sera appelée quand l'édition est terminée,
// Elle reçoit en paramètre l'image traitée
function loadEditedImage(data) {
  var image = document.getElementById('image');
  setImageData(image, data);
}
Quand l'utilisateur visitera un service d'édition d'image, le site lui demandera d'autorisation d'opérer sur l'Intent EDIT pour les fichiers de type image/*, en intégrant simplement cette balise

Code :
1
2
3
4
5
<intent
action="http://webintents.org/edit"
type="image/*"
/>
Ainsi, quand une action d'édition est amorcée par l'utilisateur, l'application ainsi enregistré propose ses services, potentiellement parmi d'autres applications autorisés.

Quand l'un des services est sélectionné, il s'ouvre dans un autre contexte en emportant les données à éditer.

Une fois la méthode postResult de l'Intent appelée, le service se ferme et les données de sortie qu'il a généré sont renvoyées au client à travers l'évènement de startActivity sus-cité.

Code :
1
2
3
4
5
6
7
8
9
10
11
var intent = window.intent;
memeImg.src = intent.data;

memegenForm.onsubmit = function() {
  // Transform the image - meme it.
  addMemeTaglines(memeImg, memeTopText, memeBottomText);

  // Send the generated meme back to the client.
  intent.postResult(getImageData(memeImg));
};


Source : blog de Chromium

Et vous ?

Que pensez-vous de ce concept ?
Croyez-vous qu'il sera adopté par les développeurs d'applications ? Et transformé en standard ?
  Discussion forum
9 commentaires
  • On va encore devoir passer par les serveurs google pour traiter nos données ?
    Ça commence à être tentaculaire.
  • tomlev
    Rédacteur/Modérateur
    Intéressant... faudra voir avec le temps comment ça se développe.

    Et effectivement, ça ressemble pas mal au concept d'Intent d'Android...
  • GCSX_
    Membre confirmé
    C'est un peu le principe des bibliothèque dynamique, de COM+ et autres équivalents, mais en beaucoup plus synthétique. On n'a besoin de définir que le nom de l'action, ses paramètres et ce qu'on attend en retour (une déclaration de fonction) sauf que là, tout est référencé dans un annuaire global pour permettre à tout un chacun de voir ce qui existe et donc éviter que chacun refasse X versions de quelque-chose qui existe déjà. D'où l'interopérabilité.

    Ce concept pourrai facilement être appliqué à n'importe quel langage sur n'importe quelle plateforme.

    J'imagine que c'est ce qui finira par arriver, mais il est logique que Google veuille tester et fructifier un peu de son système (sous forme de notoriété pour Chrome et ChomeOS) avant de le partager, bien que ça aille à l'encontre des principe d'OpenSource qu'il prône sans arrêt.

    Et évidemment :
    On va encore devoir passer par les serveurs google pour traiter nos données ?
    Ça commence à être tentaculaire.
    Tu as tout à fait raison. Avec ce nouvel annuaire, Google connaitra chaque service proposé par chaque application qui utilise cette API.
  • Gordon Fowler
    Expert éminent sénior
    Le projet Webkit soutient à son tour « Web Intent »
    L'API universelle d'interopérabilité entre applications Web lancée par Google et Mozilla

    Mise à jour du 15/05/12

    « Web Intent » est un projet qui veut faciliter les connexions entre applications Web en réduisant le plus possible le nombre de lignes de code nécessaires à ces dialogues. Une API universelle d'interopérabilité entre applications hébergées en quelque sorte (lire ci-avant).

    Lancés par un ingénieur de Google sur une idée de la Fondation Mozilla, avec laquelle Google travaille de concert, les « Web Intents » viennent de gagner un nouveau soutien.

    Les responsables du projet Webkit, le moteur de rendu de Safari (et de Chrome) ont fait savoir qu’ils étaient particulièrement intéressés et qu’ils soutenaient à présent ce standard.

    Une bonne nouvelle, aussi bien pour les développeurs (à qui la balise <Intent> peut faciliter la vie) que pour les utilisateurs (qui bénéficieront d’applications/mash-up plus riches).

    Ne reste plus qu’à espérer qu’Opera et Internet Explorer se joignent, eux aussi, au mouvement pour une API d’interopérabilité vraiment universelle.

    Source : Webkit Project

    Et vous ?

    Pensez-vous qu'Opera et Internet Explorer vont se joindre au projet ?
    « Web Intent » peut-il vous simplifier la vie ? Ou êtes-vous plutôt septique ?

    Et aussi :

    Exemples de Web Intents

    MAJ de Gordon Fowler
  • kdmbella
    Expert éminent
    j'aurai aimé que ce concept soit implémenté en vue d'un standard pas seulement pour les produits google(Android, Chrome, Chrome os...) ça donne pas envie de ce lancer
  • leoz01
    Nouveau membre du Club
  • benibur
    Membre à l'essai
    euh, excusez moi mais je ne vois pas en quoi Google sera informé des services qu'on utilise.
    C'est le navigateur qui est informé du choix de l'utilisateur d'utiliser tel ou tel service pour une action donnée. Certes pour le moment le navigateur sera Chrome mais clairement cette solution sera reprise pour converger vers un standard que l'on retrouvera dans tous les navigateurs.
    D'habitude j'ai tendance à me méfier de Google, mais là je ne vois pas le pb, ai-je tort ?
  • iznogoudmc
    Membre habitué
    On va encore devoir passer par les serveurs google pour traiter nos données ?
    Ça commence à être tentaculaire.
    Ben non ! En tous cas pas si c'est géré comme sous Android : une application dit ce dont elle a besoin, et EN LOCAL un mécanisme cherche quelles applications se sont déclarées capables de fournir le service demandé. Tout simplement. Et quand plusieurs sont trouvées, l'utilisateur dit celle qu'il préfère via un menu (dans lequel il peut aussi demander à ce que l'application qu'il a choisie devienne celle par défaut pour cette action).

    Simple, élégant, efficace. Finies les usines à gaz à la Office : chaque application ne fait qu'une chose, mais elle le fait au mieux.
  • benibur
    Membre à l'essai
    Envoyé par iznogoudmc
    EN LOCAL un mécanisme cherche quelles applications se sont déclarées capables de fournir le service demandé. [...] chaque application ne fait qu'une chose, mais elle le fait au mieux.
    C'est bien ce que j'avais compris.
    Par contre, meme si Google ne sera pas informé du choix des services qu'on utilise, je pense que cela risque d'augmenter notre dépossession de nos données puisque cela revient à augmenter la facilité à ce que les services web - pratiques, commodes, pertinents, performant et tout tout, j'en suis d'accord - soient le support exclusif de nos informations.
    Plus de facilité = plus d'usages en ligne = plus de dépendances aux services web.
    Mais ma remarque ne reste vrai que si l'on considère les business modèles actuels des services web - essentiellement régie plublicitaires ou dépendances aux infra de l'hébergeur dont le service ne peut pas être changé d'hébergeur.
    Je suis en train de monter un service qui viserait à redonner la propriété de nos données tout en utilisant des services web.
    Je profite d'ailleurs de ce poste pour un appel : je recherche des associés sur mon projet, si ça vous intéresse, faites moi un mp (profils techniques recherchés, domaines = sys admin & techno web, projet sérieux).
    A+