Thursday, 24 July 2014

Application programming interface (API)




Application programming interface (API)

In computer programming, an application programming interface (API) specifies how some software components should interact with each other.
In addition to accessing databases or computer hardware, such as hard disk drives or video cards, an API can be used to ease the work of programming graphical user interface components.
 In practice, many times an API comes in the form of a library that includes specifications for routines, data structures, object classes, and variables. In some other cases, notably for SOAP and REST services, an API comes as just a specification of remote calls exposed to the API consumers.
An API specification can take many forms such as,
including an International Standard such as POSIX,                                                                                   vendor documentation such as the Microsoft Windows API,                                                                                  the libraries of a programming language, e.g., Standard Template Library in C++ or Java API.
 Web APIs are also a vital component of today's web fabric. An API differs from an application binary interface (ABI) in that an API is source code based while an ABI is a binary interface. For instance POSIX is an API, while the Linux Standard Base is an ABI.

Java Applications Programming Interface (API)

Ø  First, the official core Java API, contained in the JDK or JRE, of one of the editions of the Java Platform.
Ø  Secondly, optional official APIs that can be downloaded separately.
The specification of these APIs are defined according to a Java Specification Request (JSR), and sometimes some of these APIs are later included in the core APIs of the platform (the most notable example of this kind is Swing).
Ø  And third one, unofficial APIs, developed by third parties, but not related to any JSRs.
Third parties can freely implement any JSR specifications for an official API (even for the core API of the language), providing that they conform to the Technology Compatibility Kit (TCK) for this JSR (the TCK is a suite of tests that checks conformance of implementations for a JSR). The result of this freedom is that many official APIs have more implementations than the Sun's Reference implementation (RI).
The following is a partial list of Application Programming Interfaces (APIs) for the Java Programming Language.


Official APIs
Java Platform, Standard Edition (Java SE)
Name
Description and Version History

JAI
A set of interfaces that support a high-level programming model allowing to manipulate images easily.
JDO
A specification of Java object persistence.
A full-featured, extensible help system that enables you to incorporate online help in applets, components, applications, operating systems, and devices.
JMF
An API that enables audio, video and other time-based media to be added to Java applications and applets.
JNDI
An API for directory services.
JSAPI
This API allows for speech synthesis and speech recognition.
J3D
scene graph-based 3D API.

JOGL
wrapper library for OpenGL.

Java USB for Windows
(none)
A USB communication of Java applications

Java Platform, Enterprise Edition (Java EE)
Bundled APIs (part of standard download)
Name
Java package(s) that contain the API
JAF
javax.activation
(none)
javax.mail
JMS
javax.jms
JSF
javax.faces
Optional APIs (downloaded separately)
Name
Available from
JAX-RPC

XQJ

Java Platform, Micro Edition (Java ME)
Name
Acronym
Available from
CLDC


Unofficial APIs (Released by third parties)
This list is very incomplete, as the number of APIs available for the Java platform is overwhelming.
Rich Client Platforms
·         NetBeans Platform
Office_compliant libraries
·         Apache POI
Compression
·         LZMA SDK, the Java implementation of the SDK used by the popular 7-Zip file archive software
Game engines
·         Slick
·         jMonkey Engine
·         JPCT Engine
·         LWJGL
Real-time libraries
·         Javolution
Windowing libraries
·         Standard Widget Toolkit (SWT)
Physics Libraries
·         JBox2D
·         JBullet

FOOT NOTE
The three editions of the Java Platform are 
1.      Java ME (Micro edition)
2.      Java SE (Standard edition), and 

What is SOAP?


  • SOAP stands for Simple Object Access Protocol
  • SOAP is a communication protocol
  • SOAP is for communication between applications
  • SOAP is a format for sending messages
  • SOAP communicates via Internet
  • SOAP is platform independent
  • SOAP is language independent
  • SOAP is based on XML
  • SOAP is simple and extensible
  • SOAP allows you to get around firewalls


 REST services

Representational state transfer (REST) is an abstraction of the architecture of the World Wide Web. More precisely, REST is an architectural style consisting of a coordinated set of architectural constraints applied to components, connectors, and data elements, within a distributed hypermedia system. REST ignores the details of component implementation and protocol syntax in order to focus on the roles of components, the constraints upon their interaction with other components, and their interpretation of significant data elements.
The term representational state transfer was introduced and defined in 2000 by Roy Fielding in his doctoral dissertation at UC Irvine. REST has been applied to describe desired web architecture, to identify existing problems, to compare alternative solutions and to ensure that protocol extensions would not violate the core constraints that make the web successful. Fielding used REST to design HTTP 1.1 and Uniform Resource Identifiers (URI).

POSIX is an API,



 while the Linux Standard Base is an ABI.