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 Technical communication Application programming interfaces