Accéder au contenu principal

Couche d’API

Permettant d’accéder à des données et/ou à des fonctionnalités d’une ou plusieurs applications à l’aide d’une interface découplée, une couche d’API REST ou de services Web offre un moyen courant d’interagir avec une application, indépendamment des langages utilisés. Les API de services Web reposent sur un langage bien défini, appelé WSDL, qui permet de décrire les opérations d’un service ainsi que les types de données utilisés pour échanger des informations. Les API REST ne sont généralement pas décrites avec ce langage et sont plutôt documentées à l’aide de bibliothèques clientes pour les langages les plus courants, notamment Ruby, Java, PHP et JavaScript. Traditionnellement, les entreprises utilisent des services Web SOAP pour publier des services internes et échanger des informations avec leurs partenaires dans le cadre de transactions B2B. Toutefois, le style d’architecture REST, initialement privilégié pour la publication d’API sur le Web, commence à s’imposer dans le milieu des entreprises.

Cas d'utilisation

Voici quelques cas d’utilisation classiques d’une couche d’API :

  • Connexion à une application legacy sans API REST. C’est par exemple nécessaire si vous souhaitez que vos collaborateurs puissent accéder à votre système CRM ou RH personnalisé via un portail.
  • Publication d’une API permettant à vos partenaires de communiquer avec vos systèmes via une interface bien définie. Dans ce cas, on crée généralement une API de services Web.
  • Connexion à plusieurs applications ou sources de données, agrégation des données, puis transmission des résultats à une application mobile. Ce cas se présente par exemple lorsque vous souhaitez enrichir des informations liées aux RH ou à vos clients avec des données disponibles sur des réseaux sociaux comme Facebook ou LinkedIn. Autre cas fréquent : vous souhaitez fournir une vue unifiée aux utilisateurs en déplacement qui ont besoin d’accéder aux données clients alors que vous utilisez plusieurs systèmes CRM.

Examinons maintenant un exemple d’interaction entre une application mobile et une application d’entreprise.

Intégration d’une application mobile

Une fois que vous avez pris la décision de développer une application mobile native (iOS/Android) ou basée sur HTML, le prochain défi majeur réside dans l’intégration de cette application avec vos applications back-end, comme votre système CRM ou ERP.

Les problèmes spécifiques que les développeurs d’applications mobiles doivent surmonter ont radicalement transformé le processus de création d’applications Web. Traditionnellement, le code HTML fait l’objet d’une requête émanant d’un serveur central, puis est interprété par un navigateur côté client. Le nouveau modèle d’application mobile implique la diffusion de contenu dynamique à l’aide du protocole HTTP et d’AJAX, la communication se matérialisant sous la forme de données JSON transmises via HTTP à l’aide de services REST.

Dans cette configuration, le défi de l’intégration consiste donc à exposer rapidement l’infrastructure existante à ce nouveau canal de diffusion mobile, tout en minimisant les modifications à apporter à l’infrastructure back-end. Plus les entreprises y parviennent rapidement, plus elles sont à même de toucher de nouveaux appareils et publics à travers leurs modèles économiques traditionnels. C’est là que réside l’intérêt de Mule, qui offre un mécanisme de communication simple faisant office de couche intermédiaire entre les services Web existants basés sur SOAP/XML et les applications REST/JSON. En outre, Mule vous permet d’orchestrer facilement des applications composites sophistiquées à partir de plusieurs services back-end, qu’il s’agisse de services REST ou non, sans avoir à exposer votre modèle d’objet interne aux utilisateurs externes.

Implémentation

Dans cet exemple, nous allons voir comment Mule facilite la « RESTification » d’une application existante. Le terme « RESTification » renvoie à la création d’un service Web REST front-end pour une application existante.

Supposons que vous souhaitez donner la possibilité à votre équipe commerciale de créer, à partir d’un appareil mobile, une opportunité de vente qui :

  • soit synchronisée avec l’implémentation de votre système CRM Salesforce ;
  • envoie une notification par e-mail à un manager lorsqu’elle dépasse une valeur donnée en dollars.

REST

L’API REST et le format de données JSON permettent à un plus grand nombre de langages et d’appareils d’accéder plus facilement aux systèmes back-end.

Salesforce

Les données de l’application sont interrogées via Salesforce. Mule propose des connecteurs prédéfinis pour Salesforce, y compris pour Bulk API et Streaming API.

SMTP

L’application envoie des alertes par e-mail. L’architecture modulaire de Mule permet d’envoyer facilement des messages via une multitude de technologies, notamment Apple Push, Android Notifications et Twilio (SMS).

Principes d'intégration fondamentaux

L’intégration d’une application mobile repose généralement sur les cinq principes fondamentaux suivants :

Transformation

Cette interface ayant vocation à être utilisée à partir d’une application mobile, le JSON constitue le meilleur choix pour le format de données. Il s’agit d’un format avec lequel il est facile de travailler aussi bien dans le cadre d’une application mobile que dans Mule. Dans notre exemple, le défi consiste à transformer dans un format compatible avec Salesforce les données JSON envoyées par l’appareil mobile. Un exemple d’objet de données JSON simple indiquant le type de données transmises par l’application mobile figure ci-dessous.

Transport

Il s’agit d’une négociation du protocole de transport entre un service basé sur REST qui interagit avec l’application mobile et, dans notre exemple, avec Salesforce via HTTP et une connexion e-mail supplémentaire utilisant le protocole SMTP.

Orchestration

L’orchestration consiste à réunir plusieurs composants sous-jacents en un service composite unifié de niveau supérieur. Dans le présent exemple, il s’agit d’agréger une mise à jour avec Salesforce via un service d’e-mail et de la présenter sous la forme d’une application mobile basée sur REST à l’aide d’un simple flux d’intégration Mule qui relie le tout.

Médiation

La médiation devient de plus en plus importante à mesure que le nombre de versions du service à prendre en charge augmente pour s’adapter à un large éventail d’utilisateurs. En outre, il est possible, si nécessaire, d’ajouter une interface SOAP à ce service REST en s’appuyant sur des composants de médiation faisant l’intermédiaire entre SOAP/XML et JSON.

Cohérence non fonctionnelle

Ces exigences sont par nature génériques et comprennent notamment l’implémentation commune de fonctions de sécurité, de journalisation, de déploiement et de gestion des composants d’exécution. Mule offre des fonctionnalités permettant de répondre à chacune de ces exigences.

Composants d’intégration Mule

Mule fournit une interface graphique conviviale pour composer ces types d’applications. Pour mettre en place la communication avec une application mobile, la première étape consiste à coupler un terminal HTTP avec un composant REST. Cette étape permet de surmonter la plupart des difficultés liées à la communication avec les applications mobiles ainsi qu’à l’utilisation d’objets JSON. Mule simplifie également le processus de communication avec le système CRM Salesforce en fournissant un connecteur cloud prédéfini. Il vous suffit de faire glisser le connecteur dans votre projet, d’indiquer votre nom d’utilisateur ainsi que votre jeton, puis de sélectionner la fonction que vous souhaitez appeler. Par ailleurs, il est tout aussi simple d’ajouter une logique de filtrage et de communiquer avec un serveur SMTP pour l’envoi d’e-mails.

Le projet suivant a été conçu à l’aide de Mule Studio.

Résumé

Quels résultats avons-nous finalement obtenus ? Nous avons vu qu’il est très facile, grâce à Mule, d’exploiter vos applications existantes et de les réunir pour former des services REST de niveau supérieur, ce qui simplifie l’intégration d’applications mobiles.

L’exemple nous a également montré que l’intégration entre une application mobile et Salesforce peut être simplifiée à travers l’utilisation d’un connecteur Mule prédéfini. Cette simplicité d’intégration est un atout précieux, étant donné que l’intégration représente l’un des principaux défis auxquels font face les entreprises lorsqu’elles adoptent des technologies cloud comme Salesforce.

L’essor des appareils mobiles a donné naissance à de nouveaux canaux de diffusion permettant de toucher des publics et des segments de population bien plus larges. Mule vous permet de vous adapter aux nouveaux modèles d’interaction imposés par ces appareils et s’intègre facilement à vos systèmes existants, vous offrant une solution simple d’utilisation, évolutive et fiable.