Privacy Policy Cookie Policy Terms and Conditions

[HOME PAGE] [STORES] [CLASSICISTRANIERI.COM] [FOTO] [YOUTUBE CHANNEL]


Interface de programmation

Interface de programmation

Page d'aide sur l'homonymie Pour les articles homonymes, voir API.

En informatique, une interface de programmation (souvent désignée par le terme API pour Application Programming Interface) est un ensemble normalisé de classes, de méthodes ou de fonctions qui sert de façade par laquelle un logiciel offre des services à d'autres logiciels. Elle est offerte par une bibliothèque logicielle ou un service web, le plus souvent accompagnée d'une description qui spécifie comment des programmes consommateurs peuvent se servir des fonctionnalités du programme fournisseur.

Dans l'industrie contemporaine du logiciel, les applications informatiques se servent de nombreuses interfaces de programmation, la programmation se fait en réutilisant des briques de fonctionnalités fournies par des logiciels tiers. Cette construction par assemblage nécessite pour le programmeur de connaître la manière d’interagir avec les autres logiciels, qui dépend de leur interface de programmation. Le programmeur n'a pas besoin de connaître les détails de la logique interne du logiciel tiers, et celle-ci n'est généralement pas documentée par le fournisseur.

Des logiciels tels que les systèmes d'exploitation, les systèmes de gestion de base de données, les langages de programmation, ou les serveurs d'applications comportent une interface de programmation.

Description

Une interface de programmation est une façade clairement délimitée par laquelle un logiciel offre des services à d'autres logiciels[1]. L'objectif est de fournir une porte d'accès à une fonctionnalité en cachant les détails de la mise en œuvre[1]. Une interface de programmation comporte typiquement des classes, des méthodes ou des fonctions, des types de données et des constantes[1]. Une interface de programmation est typiquement mise en œuvre par une bibliothèque logicielle qui fournit une solution à un problème informatique en faisant abstraction de son fonctionnement[1].

La description de l'interface de programmation spécifie comment des clients peuvent interagir avec un logiciel[1] en mettant l'accent sur les fonctionnalités offertes par le logiciel et en cachant les détails de son fonctionnement[1]. Une interface de programmation peut être utilisée dans de nombreux programmes et sert alors de jeu de construction, offrant des pièces de fonctionnalités qui peuvent être incorporées dans des applications[1]. Les programmeurs créent des interfaces de programmation pour les autres programmeurs, pour l'industrie informatique, mais aussi parfois pour leurs propres besoins[1].

Utilisation

La création et l'utilisation des interfaces de programmation est un sujet incontournable de la programmation contemporaine[1]. Une application se sert typiquement de nombreuses interfaces de programmation; mises en œuvre par des bibliothèques logicielles qui peuvent elles-mêmes se servir d'autres interfaces de programmation[1].

En architecture orientée services les applications peuvent dépendre de fonctionnalités tierces offertes par des logiciels via des interfaces de programmation mises en œuvre par des services web[1].

Les interfaces de programmation permettent de gagner du temps par la collaboration et la spécialisation des équipes de développement de logiciel. Par exemple aujourd'hui plus personne n'écrit un SGBD maison pour une application informatique. Les programmeurs réutilisent les SGBD existants dans le commerce, fournis par des entreprises spécialisées dans ce type de produit, et se concentrent sur la logique propre à leur application. De nombreux produits d'infrastructure sont ainsi disponibles sous forme de framework ou de bibliothèque[2].

Une interface de programmation permet par exemple à un programme d'accéder aux services offerts par le système d'exploitation qui héberge le programme. L'interface sockets est un exemple classique d'interface de programmation qui permet à un programme d'exploiter les possibilités de la couche réseau du système d'exploitation[3].

Une des interfaces les plus connues est la Windows API. C'est une collection de fonctions, de types de données et de constantes, en langage de programmation C, qui permet à des programmeurs de créer des applications pour les systèmes d'exploitation Windows. Elle offre la possibilité de manipuler des fichiers, des processus, communiquer par les réseaux et manipuler des interfaces graphiques[1].

Le marché

Dans l'industrie contemporaine du logiciel, les applications informatiques se servent typiquement de nombreux logiciels tiers tels que par exemple un système d'exploitation, des bibliothèques standard, des serveurs d'application. Chacun de ces produits a sa propre interface de programmation. Ainsi chaque programmeur impliqué dans le développement de tels produits est impliqué, consciemment ou non, dans le business des interfaces de programmation[2]. Du point de vue business une interface de programmation est un contrat par lequel un fournisseur de fonctionnalité décrit son offre, les fonctionnalités qu'il offre et les éventuelles limitations[4].

La construction par assemblage de logiciels nécessite pour le constructeur de savoir comment les pièces interagissent entre elles. Celui qui réalise l'assemblage n'a pas besoin de connaitre tous les détails des mécanismes internes d'une pièce, du moment qu'il connait son interface de programmation[2]. L'interface de programmation est le minimum qu'un programmeur a besoin de connaitre pour pouvoir se servir d'une pièce de logiciel tierce. Pour une fonction c'est le nom de celle-ci, les paramètres et le type du résultat, ainsi que les effets observables de la fonction[5].

Une interface de programmation est distribuée sur le marché comme un produit logiciel ordinaire, régulièrement amélioré. La mise en œuvre des fonctionnalités utilisables à travers l'interface de programmation peut changer régulièrement, tout en maintenant la façade conforme au contrat[4].

Exemples d'API

  • Graph API de Facebook
  • Google Maps API

Exemples en fonction du domaine applicatif

  • graphismes 3D : OpenGL, Direct3 (partie de DirectX), Mantle (AMD)
  • manipulation de documents XML : SAX (Simple API for XML) et DOM (Document Object Model)
  • accès à des bases de données : ODBC, JDBC
  • cartographie et SIG

Fonctions des interfaces de programmation en Java

Les interfaces de programmation peuvent avoir plusieurs fonctions. Par exemple, dans J2EE, on trouve les fonctions suivantes :

  • API de communication synchrone / asynchrone
  • API de connexions (annuaires, bases de données, progiciels de gestion intégrés)
  • API de gestion des transactions
  • API de gestion des courriels
  • API de sérialisation par XML
  • API d'analyse XML
  • API de gestion des registres XML (par exemple ebXML)

Des API peuvent servir à simplifier l'accès à d'autres API

  • API JAXP permet facilement l'accès à différentes implémentations des API SAX et DOM (XML4J, Apache Xerces).

Données véhiculées

Les interfaces de programmation peuvent véhiculer des métadonnées.

  • Dans les interfaces prévues par les progiciels de gestion intégrée
Exemples : Oracle 9i Metadata API et Relational metadata API de SAP
Exemple du langage Java : API d'accès et de traitement des données enregistrées dans une source de données
  • Dans les systèmes décisionnels
Exemple : Métadonnées dans les API de SAS
  • Dans les bases de données relationnelles
Exemple : DB2 Cube
  • Dans les applications d'ingénierie des connaissances
Exemple : Loading metadata to Livelink using Bulk Loader API's (en)
  • etc.

Notes et références

  1. 1 2 3 4 5 6 7 8 9 10 11 12 (en)Martin Reddy, API Design for C++, Elsevier - 2011,(ISBN 9780123850041)
  2. 1 2 3 (en)Jaroslav Tulach, Practical API Design: Confessions of a Java Framework Architect, Apress - 2008,(ISBN 9781430209744)
  3. (en)Joe Casad, Sams Teach Yourself Tcp/Ip in 24 Hours, Sams Publishing - 2004,(ISBN 9780672325656)
  4. 1 2 (en)Daniel Jacobson - Dan Woods - Greg Brail, APIs: A Strategy Guide, O'Reilly Media Inc. - 2011,(ISBN 9781449308926)
  5. (en)David A. Watt, Programming Language Design Concepts, John Wiley & Sons - 2004,(ISBN 9780470020470)

Voir aussi

Articles connexes

  • Java EE
  • Interface (informatique)

Liens externes

  • (en) SAX, Simple API for XML
  • (en) What is an API? Your guide to the Internet Business (R)evolution
  • Portail de la programmation informatique
  • Portail de l’informatique
This article is issued from Wikipédia - version of the Friday, October 23, 2015. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.
Contents Listing Alphabetical by Author:
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Unknown Other

Contents Listing Alphabetical by Title:
# A B C D E F G H I J K L M N O P Q R S T U V W Y Z Other

Medical Encyclopedia

Browse by first letter of topic:


A-Ag Ah-Ap Aq-Az B-Bk Bl-Bz C-Cg Ch-Co
Cp-Cz D-Di Dj-Dz E-Ep Eq-Ez F G
H-Hf Hg-Hz I-In Io-Iz J K L-Ln
Lo-Lz M-Mf Mg-Mz N O P-Pl Pm-Pz
Q R S-Sh Si-Sp Sq-Sz T-Tn To-Tz
U V W X Y Z 0-9

Biblioteca - SPANISH

Biblioteca Solidaria - SPANISH

Bugzilla

Ebooks Gratuits

Encyclopaedia Britannica 1911 - PDF

Project Gutenberg: DVD-ROM 2007

Project Gutenberg ENGLISH Selection

Project Gutenberg SPANISH Selection

Standard E-books

Wikipedia Articles Indexes

Wikipedia for Schools - ENGLISH

Wikipedia for Schools - FRENCH

Wikipedia for Schools - SPANISH

Wikipedia for Schools - PORTUGUESE

Wikipedia 2016 - FRENCH

Wikipedia HTML - CATALAN

Wikipedia Picture of the Year 2006

Wikipedia Picture of the Year 2007

Wikipedia Picture of the Year 2008

Wikipedia Picture of the Year 2009

Wikipedia Picture of the Year 2010

Wikipedia Picture of the Year 2011