This section is not meant to provide a comprehensive introduction to each of the programmatic APIs in the J2EE platform. Instead, we will talk about the core components of the Java 2 Enterprise Edition (J2EE) platform as they relate to certain aspects of the WAS containers meant to run in a J2EE Application Server. J2EE is a specification that defines a set of technologies. The vision is such that any J2EE-compliant application can be deployed and run in any J2EE application server. As a practical matter, many applications are not completely portable. Nonetheless, a J2EE application is in a better position than other non-J2EE applications to be moved from one J2EE platform implementation to another.