Copyright © Philip M. Parker, INSEAD. Terms of Use.

APPLICATION PROGRAMMING INTERFACE

Specialty Definition: APPLICATION PROGRAMMING INTERFACE

DomainDefinition

Computing

Application Programming Interface Application Program Interface. Source: The Free On-line Dictionary of Computing.

Source: compiled by the editor from various references; see credits.

Top     

Specialty Definition: Application Programming Interface

(From Wikipedia, the free Encyclopedia)

An Application Programming Interface (API) is a set of definitions of the ways in which one piece of computer software communicates with another. It is a method of achieving abstraction, usually (but not necessarily) between lower-level and higher-level software. One of the primary purposes of an API is to provide a set of commonly-used functions—for example, to draw windows or icons on the screen. Programmers can then take advantage of the API by making use of its functionality, saving them the task of programming everything from scratch. APIs themselves are abstract: software which provides a certain API is often called the implementation of that API.

For example, one may look at the task of writing "Hello World" on a screen at increasing levels of abstraction:

  1. Do it all yourself:
    1. Draw, on graph paper, the shapes of the letters H, e, l, l, o, W, o, r, l, d.
    2. Work out a matrix of black and white squares that look like those letters.
    3. Devise a way to program the CPU to put this matrix into the display adapter's frame buffer.
    4. Set the graphics card up to scan its frame buffer to generate the correct signal.
  2. Use an operating system to do some of the work:
    1. Load a data structure called a "font" provided with the operating system.
    2. Have the operating system display a blank window.
    3. Have the operating system draw the text "Hello World" to the window with the font.
  3. Use an application program (which uses an operating system) to do all this hard work:
    1. Write an HTML document with the words "Hello World" so that a
    2. Web browser like Mozilla or Internet Explorer can present it.

Obviously, the first option requires more steps, each of them much more complicated than the steps in the subsequent options. In addition, it is impractical to use the first approach to present a substantial amount of information, like an encyclopedia article, on the screen, whereas the second approach makes the task easier by an order, and the third approach would basically just require you to type "Hello World." However, higher-level APIs often lose flexibility; for example, a it would be much more difficult in a Web browser to rotate text around a point with blinking outlines, something that could be done easily at the lower levels. This difference is a typical example of the trade-offs encountered by choosing to use an API.

APIs are as essential to computers as electrical standards are to the home. One can plug his toaster into the wall whether he is at home or at a neighbour's house, because both houses conform to the standard API for an electrical socket. If there wasn't an API standard, one would have to bring a power station along in order to make toast! Note that there is nothing stopping somebody else coming up with another standard; a European toaster will not work in the US without a transformer, just as a program written for Microsoft Windows will not work directly on a UNIX system without an intermediate API adapter.

There are various design models for APIs. Interfaces intended for the fastest execution often consist of sets of functions, procedures, variables and data structures. However other models exist as well, such as the interpreter used to evaluate expressions in ECMAScript. A good API is able to provide a "black box" or abstraction layer, which prevents the programmer from needing to know how the functions of the API relate to the lower levels of abstraction. This makes it possible to redesign or improve the functions within the API without breaking code that relies on it.

Two general lines of policies exist regarding publishing APIs:

Some APIs, such as the ones standard to an operating system, are implemented as separate code libraries that are distributed with the operating system. Others require software publishers to integrate the API functionality directly into the application. This forms another distinction in the examples above. Microsoft Windows APIs come with the operating system for anyone to use. Software for embedded systems such as video game consoles generally falls into the application-integrated category. While an official Playstation API document may be interesting to read, it is of little use without its corresponding implementation, in the form of a separate library or developer's kit.

An API which does not require royalties for access and usage is called "open". The APIs provided by Free software (such as software distributed under the GNU General Public License), are open by definition, since anyone can look into the source of the software and figure out the API. Although usually authoritative "reference implementations" exist for an API (such as Microsoft Windows for the Win32 API), there's nothing that prevents the creation of additional implementations. For example, most of the Win32 API can be provided under a UNIX system using software called WINE.

It is generally lawful to analyze API implementations in order to produce a compatible one. This technique is called reverse engineering for the purposes of interoperability. However, the legal situation is often ambiguous, so that care and legal counsel should be taken before the reverse engineering is carried out. For example, while APIs usually do not have an obvious legal status, they may include patents that may not be used until the patent holder gives permission.

Examples of APIs are:

Source: adapted by the editor from Wikipedia, the free encyclopedia under a copyleft GNU Free Documentation License (GFDL) from the article "Application Programming Interface."

Top     

Crosswords: APPLICATION PROGRAMMING INTERFACE

Specialty definitions using "APPLICATION PROGRAMMING INTERFACE": Applications Programming InterfaceBAPI, Business Application Programming InterfaceCalendar API, Calendar Application Programming Interface, CAPI, Common ISDN Application Programming Interface, Common-ISDN-APIGeneric Security Service Application Programming Interface, GSSAPI, GSS-APIHLLAPIInternet Server Application Programming Interface, ISAPIJava Database ConnectivityMail Application Programming Interface, MAPI, Messaging Application Programming Interface, Messaging Applications Programming Interface, Microsoft Mail Application Program InterfaceNSAPISAPI, Scheduling API, Scheduling Application Programming Interface, Speech Application Programming InterfaceTAPI, Telephone Application Program Interface, Telephony Application Programming Interfacevolume data transferWin32. (references)

Top     

Commercial Usage: APPLICATION PROGRAMMING INTERFACE

DomainTitle

Books

  • Application Programming Interface for Windows Volume 1 (reference)

  • Core Packages (The Java(TM) Application Programming Interface, Volume 1) (reference)

  • Ctos/Open Application Programming Interface Specification: Networking Services (reference)

  • Window Toolkit and Applets (The Java(TM) Application Programming Interface, Volume 2) (reference)

    (more book examples)

Source: compiled by the editor from various references; see credits.

Top     

Expressions: APPLICATION PROGRAMMING INTERFACE

Expressions using "APPLICATION PROGRAMMING INTERFACE": business Application Programming Interface calendar Application Programming Interface common ISDN Application Programming Interface generic Security Service Application Programming Interface internet Server Application Programming Interface mail Application Programming Interface messaging Application Programming Interface scheduling Application Programming Interface speech Application Programming Interface telephony Application Programming Interface. Additional references.

Source: compiled by the editor from various references; see credits.

Top     

Frequency of Internet Keywords: APPLICATION PROGRAMMING INTERFACE

The following statistics estimate the number of searches per day across the major English-language search engines as identified by various trade publications. Hyperlinks lead to commercial use of the expression at Amazon.com.
 
ExpressionFrequency
per Day

application programming interface

18
Source: compiled by the editor from various references; see credits.

Top     

Modern Translation: APPLICATION PROGRAMMING INTERFACE

Language Translations for "APPLICATION PROGRAMMING INTERFACE"; alternative meanings/domain in parentheses.

Chinese 

  

應"程式介面 (API). (various references)

   

Dutch

  

toepassingsprogrammaverbinding (Application Program Interface). (various references)

   

Finnish

  

sovellusliittymä (Application Program Interface). (various references)

   

French

  

interface de programme d'application (Application Program Interface), interface API (Application Program Interface). (various references)

   

Italian

  

interfaccia per programma applicativo (Application Program Interface). (various references)

   

Pig Latin

  

applicationay ogrammingpray interfaceay

Source: compiled by the editor from various translation references.

Top     



INDEX

1. Crosswords
2. Usage: Commercial
3. Expressions
4. Expressions: Internet
5. Translations: Modern
6. Bibliography


  

Copyright © Philip M. Parker, INSEAD. Terms of Use.