Service provider interface (SPI) is an API intended to be implemented or extended by a third party. It can be used to enable framework extension and replaceable components.
Details From Java documentation:
The concept can be extended to other platforms using the corresponding tools. In the Java Runtime Environment, SPIs are used in:
Java Database Connectivity Java Cryptography Extension Java Naming and Directory Interface Java API for XML Processing Java Business Integration Java Sound Java Image I/O Java File Systems
See also Plug-in (computing) Java (programming language) Java (software platform)
References
External links Replaceable Components and the Service Provider Interface (.pdf at The Software Engineering Institute CMU) Official Java API documentation: java.util.class and [http://com/javase/4/docs/api/java/util/spi/package-estary.html java.util.spi package