# Application composite

Une application composite (ou mashup ou encore mash-up) est une application qui combine du contenu ou du service provenant de plusieurs applications plus ou moins hétérogènes.
On parle de mashup dans le cadre d'une superposition de deux images provenant de sources différentes, superposition de données visuelles et sonores différentes par exemple dans le but de créer une expérience nouvelle.
Dans le cas de site web, le principe d'un mashup est donc d'agréger du contenu provenant d'autres sites, afin de créer un site nouveau.
Pour ce faire, on utilise le plus souvent l'objet XMLHttpRequest, RSS, AJAX du côté client, et les API (ou les Services Web) des sites dont on mixe le contenu.
De plus en plus d'éditeurs de contenu proposent gratuitement des API, afin d'encourager la communauté des développeurs à créer des mashup utilisant leur contenu. Les applications composites se basent sur la programmation évènementielle.
C'est le cas de Google, de Yahoo!, de Amazon, de eBay, ou de FedEx (qui permet à un commerçant de présenter sur son propre site web l'état d'avancement d'une livraison qu'il a sous-traitée au logisticien), leur intérêt étant d'inciter les développeurs à répandre et à diffuser leur contenu.
Les mashups sauvages ne sont pas toujours les bienvenus et leur situation commerciale est fragile puisqu'ils exploitent des données qui ne leur appartiennent pas. Par contre, le mashup en entreprise est une technologie en plein boom, car elle s'appuie sur des produits qui prennent en compte la gouvernance et la sécurité. Le but est d'assembler de manière concertée des applications métiers internes ou externes pour créer de la valeur.

## Typologie

Actuellement, les applications composites apparaissent sous quatre formes générales qui concernent la présentation, les données, le grand public et enfin l'entreprise.
Les applications composites de présentation constituent le type le plus connu, dont le meilleur exemple est donné par les nombreuses applications Google Maps. Elles combinent des éléments provenant de sources multiples en masquant ce fait derrière une interface graphique unifiée simple.
Le deuxième type courant concerne les données. Une application relative aux données mélange des données provenant de différentes sources, par exemple en combinant plusieurs flux RSS ou Services Web pour créer un résultat final présenté ou non sous forme graphique. Dans le cas où il n'y a pas d'interface graphique le résultat peut être par exemple réinjecté dans un système tiers toujours via Services Web. Le déclenchement du Mashup de données peut se faire par un appel d'un service Web exposé par l'Application composite elle-même.
Concernant le commerce et le grand public, une application hybride combine ce qui précède (données et présentation), en se concentrant à la fois sur la fusion et sur la présentation des données, adaptant ainsi le résultat final à une application commerciale ou grand public.
Enfin une application hybride d’entreprise mashup (ou Business Mashup) combine également ce qui précède (données et présentation) en ajoutant une couche collaborative (Workflow). Les sources peuvent être internes et/ou externes. Le Workflow permet de valider les données par différents acteurs. L'objectif d'un mashup d'entreprise est de produire des applications répondant à des problématique métiers. Par exemple, on peut créer un Workflow permettant de valider une remise accordée sur la vente d'une maison. Dans la fiche de validation on retrouvera une Google Maps situant la maison mais on visualisera et tracera également la validation de la remise de ce bien. Enfin on pourra créer un rapport sur les parts de marché en combinant une liste externe de toutes les maisons vendues la semaine dernière avec des données internes sur les maisons vendues par une agence particulière.

## Applications dans le domaine des télécommunications

L'utilisation de mashup est également envisagée par les opérateurs de télécommunications traditionnels (BT, Verizon Communications, ...) et par de nouveaux venus (type Yahoo, Google, ...) afin de pouvoir créer et offrir plus rapidement des services de communications innovants. De même ce type de technologie est envisagé dans les réseaux de télécommunications privés afin de pouvoir combiner plus rapidement les applications et les process de l'entreprise (ex relation client) avec des micro-applications (« briques ») communicantes telles que « click-to-connect », présence, localisation, voix sur IP etc.
Le principe est de réduire le niveau d'expertise nécessaire et la complexité de développement en mettant une couche « d'abstraction » entre les briques de communications et l'infrastructure télécom existante, ce qui permet de les rendre accessibles à une communauté de développeurs élargie via le nouvel environnement web:
* Des interfaces qui donnent une ouverture sur le « juste » niveau de fonctionnalité requis à partir des différents composants du réseau
* Des interfaces qui donnent accès à certains composants du réseau, avec les droits adaptés pour les utilisateurs/développeurs de confiance et pour les autres
* Des interfaces qui permettent d'accéder aux fonctions IT classiques comme la facturation, le "provisioning", la mesure des performances et de la qualité de service...

## Les exemples les plus courants

* L'API la plus utilisée est sans aucun doute celle de Google Maps. On trouve d’ailleurs plusieurs sites ou blog spécialisés dans le recensement de ces mashup.
* L'API Google Maps permet de mettre en place divers services de géolocalisation. On trouve par exemple un site permettant de piloter un avion au-dessus de la GoogleMap.
* On peut également citer les API d’e-commerces tels que celles d’eBay ou autre Alapage pour permettre aux utilisateurs du site mashup de consulter le catalogue d’article ou encore d’analyser ou de suivre les ventes.
* On trouve aussi plusieurs sites permettant de trouver le carburant le moins cher proche de chez vous (par exemple Carbéo).

## Avantages et inconvénients

Les mashups présentent un potentiel d'innovation important grâce à la fusion de multiples services Internet. Ils offrent en outre la possibilité de livrer des applications Web rapidement, à un faible coût et avec des composants réutilisables.
Les avantages sont assez clairs en ce qui concerne les fournisseurs d'API :
* Leurs API permettent au plus grand nombre de diffuser leurs contenus en l'adaptant à des besoins qu'ils n'auraient jamais pu identifier auparavant et dont le développement leur couterait beaucoup de temps.
Bref plus de clients en dépensant le minimum d'argent.
* De plus les mashups présentent pour la communauté web un potentiel d'innovation important grâce à la fusion de multiples services Internet. En effet, ils offrent la possibilité de livrer des applications Web rapidement, à un faible coût et avec des composants réutilisables. Toutefois, malgré tous ces points positifs pour le web en général on parle de plus en plus de problèmes de sécurité en ce qui concerne cette technologie.
* Un premier problème intervient quand on crée des agrégations entre son site internet et une application provenant d’une personne inconnue, qui peut soit injecter du code JavaScript mal formé, soit essayer de prendre le contrôle de la machine.
* De plus on peut parler d’un autre type de sécurité : celle du bon fonctionnement des sites internet Mashup. Ainsi la sécurité des développements réalisés est très faible du fait de la facilité avec laquelle les briques fournies (API, bibliothèques, applications open source...) sont rendues manipulables. Les développeurs débutants peuvent créer des Mashup sans même comprendre le code utilisé ce qui peut tout de même poser un problème.